homebridge 2.0.0-alpha.40 → 2.0.0-alpha.41

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 (92) hide show
  1. package/config-sample.json +1 -12
  2. package/dist/api.d.ts +4 -20
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +1 -27
  5. package/dist/api.js.map +1 -1
  6. package/dist/bridgeService.d.ts +12 -15
  7. package/dist/bridgeService.d.ts.map +1 -1
  8. package/dist/bridgeService.js +7 -7
  9. package/dist/bridgeService.js.map +1 -1
  10. package/dist/childBridgeService.d.ts +1 -0
  11. package/dist/childBridgeService.d.ts.map +1 -1
  12. package/dist/childBridgeService.js +1 -0
  13. package/dist/childBridgeService.js.map +1 -1
  14. package/dist/childMatterBridgeFork.d.ts +108 -0
  15. package/dist/childMatterBridgeFork.d.ts.map +1 -0
  16. package/dist/childMatterBridgeFork.js +330 -0
  17. package/dist/childMatterBridgeFork.js.map +1 -0
  18. package/dist/childMatterBridgeService.d.ts +166 -0
  19. package/dist/childMatterBridgeService.d.ts.map +1 -0
  20. package/dist/childMatterBridgeService.js +623 -0
  21. package/dist/childMatterBridgeService.js.map +1 -0
  22. package/dist/index.d.ts +8 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/ipcService.d.ts +19 -3
  27. package/dist/ipcService.d.ts.map +1 -1
  28. package/dist/ipcService.js +13 -0
  29. package/dist/ipcService.js.map +1 -1
  30. package/dist/matter/index.d.ts +13 -0
  31. package/dist/matter/index.d.ts.map +1 -0
  32. package/dist/matter/index.js +12 -0
  33. package/dist/matter/index.js.map +1 -0
  34. package/dist/matter/matterBridge.d.ts +64 -0
  35. package/dist/matter/matterBridge.d.ts.map +1 -0
  36. package/dist/matter/matterBridge.js +154 -0
  37. package/dist/matter/matterBridge.js.map +1 -0
  38. package/dist/matter/matterConfigValidator.d.ts +27 -0
  39. package/dist/matter/matterConfigValidator.d.ts.map +1 -0
  40. package/dist/matter/matterConfigValidator.js +162 -0
  41. package/dist/matter/matterConfigValidator.js.map +1 -0
  42. package/dist/matter/matterDevice.d.ts +107 -0
  43. package/dist/matter/matterDevice.d.ts.map +1 -0
  44. package/dist/matter/matterDevice.js +913 -0
  45. package/dist/matter/matterDevice.js.map +1 -0
  46. package/dist/matter/matterDiagnostics.d.ts +121 -0
  47. package/dist/matter/matterDiagnostics.d.ts.map +1 -0
  48. package/dist/matter/matterDiagnostics.js +323 -0
  49. package/dist/matter/matterDiagnostics.js.map +1 -0
  50. package/dist/matter/matterErrorHandler.d.ts +113 -0
  51. package/dist/matter/matterErrorHandler.d.ts.map +1 -0
  52. package/dist/matter/matterErrorHandler.js +482 -0
  53. package/dist/matter/matterErrorHandler.js.map +1 -0
  54. package/dist/matter/matterNetworkMonitor.d.ts +65 -0
  55. package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
  56. package/dist/matter/matterNetworkMonitor.js +227 -0
  57. package/dist/matter/matterNetworkMonitor.js.map +1 -0
  58. package/dist/matter/matterServer.d.ts +110 -0
  59. package/dist/matter/matterServer.d.ts.map +1 -0
  60. package/dist/matter/matterServer.js +584 -0
  61. package/dist/matter/matterServer.js.map +1 -0
  62. package/dist/matter/matterSharedTypes.d.ts +167 -0
  63. package/dist/matter/matterSharedTypes.d.ts.map +1 -0
  64. package/dist/matter/matterSharedTypes.js +55 -0
  65. package/dist/matter/matterSharedTypes.js.map +1 -0
  66. package/dist/{matterTypes.d.ts → matter/matterTypes.d.ts} +15 -0
  67. package/dist/matter/matterTypes.d.ts.map +1 -0
  68. package/dist/{matterTypes.js → matter/matterTypes.js} +4 -4
  69. package/dist/matter/matterTypes.js.map +1 -0
  70. package/dist/matter/portAllocator.d.ts +85 -0
  71. package/dist/matter/portAllocator.d.ts.map +1 -0
  72. package/dist/matter/portAllocator.js +296 -0
  73. package/dist/matter/portAllocator.js.map +1 -0
  74. package/dist/server.d.ts +9 -3
  75. package/dist/server.d.ts.map +1 -1
  76. package/dist/server.js +363 -31
  77. package/dist/server.js.map +1 -1
  78. package/package.json +10 -10
  79. package/dist/matterConfigValidator.d.ts +0 -34
  80. package/dist/matterConfigValidator.d.ts.map +0 -1
  81. package/dist/matterConfigValidator.js +0 -249
  82. package/dist/matterConfigValidator.js.map +0 -1
  83. package/dist/matterService.d.ts +0 -168
  84. package/dist/matterService.d.ts.map +0 -1
  85. package/dist/matterService.js +0 -677
  86. package/dist/matterService.js.map +0 -1
  87. package/dist/matterTypes.d.ts.map +0 -1
  88. package/dist/matterTypes.js.map +0 -1
  89. package/dist/util/matter-cli.d.ts +0 -3
  90. package/dist/util/matter-cli.d.ts.map +0 -1
  91. package/dist/util/matter-cli.js +0 -211
  92. package/dist/util/matter-cli.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,7 +6,8 @@ export { APIEvent, PluginType } from './api.js';
6
6
  * Export Logger const enums
7
7
  */
8
8
  export { LogLevel } from './logger.js';
9
- export { getMatterClustersForHAPService, getMatterDeviceTypeForHAPService, MatterClusters, MatterDeviceTypes, } from './matterTypes.js';
9
+ export { ChildMatterMessageType, MatterBridgeStatus, } from './matter/matterSharedTypes.js';
10
+ export { getMatterClustersForHAPService, getMatterDeviceTypeForHAPService, MatterClusters, MatterDeviceTypes, } from './matter/matterTypes.js';
10
11
  /**
11
12
  * Export Platform Accessory const enums
12
13
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAiB/C;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAiBtC,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AAEzB;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D;;;;GAIG;AACH,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,8BAA8B,EAC9B,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,MAAM,EACN,KAAK,GACN,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAiB/C;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAmBtC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,cAAc,EACd,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAEhC;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D;;;;GAIG;AACH,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,8BAA8B,EAC9B,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,MAAM,EACN,KAAK,GACN,MAAM,YAAY,CAAA"}
@@ -3,15 +3,31 @@ export declare const enum IpcIncomingEvent {
3
3
  RESTART_CHILD_BRIDGE = "restartChildBridge",
4
4
  STOP_CHILD_BRIDGE = "stopChildBridge",
5
5
  START_CHILD_BRIDGE = "startChildBridge",
6
- CHILD_BRIDGE_METADATA_REQUEST = "childBridgeMetadataRequest"
6
+ CHILD_BRIDGE_METADATA_REQUEST = "childBridgeMetadataRequest",
7
+ RESTART_MATTER_BRIDGE = "restartMatterBridge",
8
+ STOP_MATTER_BRIDGE = "stopMatterBridge",
9
+ START_MATTER_BRIDGE = "startMatterBridge",
10
+ MATTER_BRIDGE_METADATA_REQUEST = "matterBridgeMetadataRequest",
11
+ MATTER_ACCESSORIES_REQUEST = "matterAccessoriesRequest",
12
+ TOGGLE_MATTER_DEVICE = "toggleMatterDevice",
13
+ MATTER_COMMISSIONING_INFO_REQUEST = "matterCommissioningInfoRequest"
7
14
  }
8
15
  export declare const enum IpcOutgoingEvent {
9
16
  SERVER_STATUS_UPDATE = "serverStatusUpdate",
10
17
  CHILD_BRIDGE_METADATA_RESPONSE = "childBridgeMetadataResponse",
11
- CHILD_BRIDGE_STATUS_UPDATE = "childBridgeStatusUpdate"
18
+ CHILD_BRIDGE_STATUS_UPDATE = "childBridgeStatusUpdate",
19
+ MATTER_BRIDGE_METADATA_RESPONSE = "matterBridgeMetadataResponse",
20
+ MATTER_BRIDGE_STATUS_UPDATE = "matterBridgeStatusUpdate",
21
+ MATTER_ACCESSORIES_RESPONSE = "matterAccessoriesResponse",
22
+ MATTER_DEVICE_STATUS_UPDATE = "matterDeviceStatusUpdate",
23
+ MATTER_COMMISSIONING_STATUS = "matterCommissioningStatus",
24
+ MATTER_COMMISSIONING_INFO_RESPONSE = "matterCommissioningInfoResponse"
12
25
  }
13
26
  export declare interface IpcService {
14
- on: ((event: IpcIncomingEvent.RESTART_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.STOP_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.START_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.CHILD_BRIDGE_METADATA_REQUEST, listener: () => void) => this);
27
+ on: ((event: IpcIncomingEvent.RESTART_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.STOP_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.START_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.CHILD_BRIDGE_METADATA_REQUEST, listener: () => void) => this) & ((event: IpcIncomingEvent.RESTART_MATTER_BRIDGE, listener: (matterBridgeId: string) => void) => this) & ((event: IpcIncomingEvent.STOP_MATTER_BRIDGE, listener: (matterBridgeId: string) => void) => this) & ((event: IpcIncomingEvent.START_MATTER_BRIDGE, listener: (matterBridgeId: string) => void) => this) & ((event: IpcIncomingEvent.MATTER_BRIDGE_METADATA_REQUEST, listener: () => void) => this) & ((event: IpcIncomingEvent.MATTER_ACCESSORIES_REQUEST, listener: () => void) => this) & ((event: IpcIncomingEvent.TOGGLE_MATTER_DEVICE, listener: (data: {
28
+ uuid: string;
29
+ enabled: boolean;
30
+ }) => void) => this) & ((event: IpcIncomingEvent.MATTER_COMMISSIONING_INFO_REQUEST, listener: (matterBridgeId: string) => void) => this);
15
31
  }
16
32
  export declare class IpcService extends EventEmitter {
17
33
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;IACvC,6BAA6B,+BAA+B;CAC7D;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,8BAA8B,gCAAgC;IAC9D,0BAA0B,4BAA4B;CACvD;AAGD,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,CAAA;CAC3Z;AAGD,qBAAa,UAAW,SAAQ,YAAY;;IAK1C;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ9D"}
1
+ {"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;IACvC,6BAA6B,+BAA+B;IAC5D,qBAAqB,wBAAwB;IAC7C,kBAAkB,qBAAqB;IACvC,mBAAmB,sBAAsB;IACzC,8BAA8B,gCAAgC;IAC9D,0BAA0B,6BAA6B;IACvD,oBAAoB,uBAAuB;IAC3C,iCAAiC,mCAAmC;CACrE;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,8BAA8B,gCAAgC;IAC9D,0BAA0B,4BAA4B;IACtD,+BAA+B,iCAAiC;IAChE,2BAA2B,6BAA6B;IACxD,2BAA2B,8BAA8B;IACzD,2BAA2B,6BAA6B;IACxD,2BAA2B,8BAA8B;IACzD,kCAAkC,oCAAoC;CACvE;AAGD,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,qBAAqB,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,8BAA8B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,0BAA0B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iCAAiC,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,CAAA;CAC7mC;AAGD,qBAAa,UAAW,SAAQ,YAAY;;IAK1C;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ9D"}
@@ -7,6 +7,13 @@ export var IpcIncomingEvent;
7
7
  IpcIncomingEvent["STOP_CHILD_BRIDGE"] = "stopChildBridge";
8
8
  IpcIncomingEvent["START_CHILD_BRIDGE"] = "startChildBridge";
9
9
  IpcIncomingEvent["CHILD_BRIDGE_METADATA_REQUEST"] = "childBridgeMetadataRequest";
10
+ IpcIncomingEvent["RESTART_MATTER_BRIDGE"] = "restartMatterBridge";
11
+ IpcIncomingEvent["STOP_MATTER_BRIDGE"] = "stopMatterBridge";
12
+ IpcIncomingEvent["START_MATTER_BRIDGE"] = "startMatterBridge";
13
+ IpcIncomingEvent["MATTER_BRIDGE_METADATA_REQUEST"] = "matterBridgeMetadataRequest";
14
+ IpcIncomingEvent["MATTER_ACCESSORIES_REQUEST"] = "matterAccessoriesRequest";
15
+ IpcIncomingEvent["TOGGLE_MATTER_DEVICE"] = "toggleMatterDevice";
16
+ IpcIncomingEvent["MATTER_COMMISSIONING_INFO_REQUEST"] = "matterCommissioningInfoRequest";
10
17
  })(IpcIncomingEvent || (IpcIncomingEvent = {}));
11
18
  // eslint-disable-next-line no-restricted-syntax
12
19
  export var IpcOutgoingEvent;
@@ -14,6 +21,12 @@ export var IpcOutgoingEvent;
14
21
  IpcOutgoingEvent["SERVER_STATUS_UPDATE"] = "serverStatusUpdate";
15
22
  IpcOutgoingEvent["CHILD_BRIDGE_METADATA_RESPONSE"] = "childBridgeMetadataResponse";
16
23
  IpcOutgoingEvent["CHILD_BRIDGE_STATUS_UPDATE"] = "childBridgeStatusUpdate";
24
+ IpcOutgoingEvent["MATTER_BRIDGE_METADATA_RESPONSE"] = "matterBridgeMetadataResponse";
25
+ IpcOutgoingEvent["MATTER_BRIDGE_STATUS_UPDATE"] = "matterBridgeStatusUpdate";
26
+ IpcOutgoingEvent["MATTER_ACCESSORIES_RESPONSE"] = "matterAccessoriesResponse";
27
+ IpcOutgoingEvent["MATTER_DEVICE_STATUS_UPDATE"] = "matterDeviceStatusUpdate";
28
+ IpcOutgoingEvent["MATTER_COMMISSIONING_STATUS"] = "matterCommissioningStatus";
29
+ IpcOutgoingEvent["MATTER_COMMISSIONING_INFO_RESPONSE"] = "matterCommissioningInfoResponse";
17
30
  })(IpcOutgoingEvent || (IpcOutgoingEvent = {}));
18
31
  // eslint-disable-next-line ts/no-unsafe-declaration-merging
19
32
  export class IpcService extends EventEmitter {
@@ -1 +1 @@
1
- {"version":3,"file":"ipcService.js","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAKjB;AALD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;AAC9D,CAAC,EALiB,gBAAgB,KAAhB,gBAAgB,QAKjC;AAED,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAIjB;AAJD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;AACxD,CAAC,EAJiB,gBAAgB,KAAhB,gBAAgB,QAIjC;AAOD,4DAA4D;AAC5D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAoC,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAoB,EAAE,IAAa;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ipcService.js","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAYjB;AAZD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;IAC5D,iEAA6C,CAAA;IAC7C,2DAAuC,CAAA;IACvC,6DAAyC,CAAA;IACzC,kFAA8D,CAAA;IAC9D,2EAAuD,CAAA;IACvD,+DAA2C,CAAA;IAC3C,wFAAoE,CAAA;AACtE,CAAC,EAZiB,gBAAgB,KAAhB,gBAAgB,QAYjC;AAED,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAUjB;AAVD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;IACtD,oFAAgE,CAAA;IAChE,4EAAwD,CAAA;IACxD,6EAAyD,CAAA;IACzD,4EAAwD,CAAA;IACxD,6EAAyD,CAAA;IACzD,0FAAsE,CAAA;AACxE,CAAC,EAViB,gBAAgB,KAAhB,gBAAgB,QAUjC;AAOD,4DAA4D;AAC5D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAoC,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAoB,EAAE,IAAa;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Matter Protocol Support for Homebridge
3
+ *
4
+ * This module provides Matter protocol support alongside the existing HAP bridge,
5
+ * allowing Homebridge accessories to be exposed to Matter-compatible controllers.
6
+ */
7
+ export { MatterBridge } from './matterBridge.js';
8
+ export { type MatterConfigValidationResult, MatterConfigValidator } from './matterConfigValidator.js';
9
+ export { MatterDevice } from './matterDevice.js';
10
+ export { MatterServer } from './matterServer.js';
11
+ export { type MatterBridgeOptions, type MatterConfiguration } from './matterTypes.js';
12
+ export { getMatterClustersForHAPService, getMatterDeviceTypeForHAPService, HAPToMatterClusterMapping, HAPToMatterDeviceMapping, MatterClusters, MatterDeviceTypes, } from './matterTypes.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,KAAK,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Matter Protocol Support for Homebridge
3
+ *
4
+ * This module provides Matter protocol support alongside the existing HAP bridge,
5
+ * allowing Homebridge accessories to be exposed to Matter-compatible controllers.
6
+ */
7
+ export { MatterBridge } from './matterBridge.js';
8
+ export { MatterConfigValidator } from './matterConfigValidator.js';
9
+ export { MatterDevice } from './matterDevice.js';
10
+ export { MatterServer } from './matterServer.js';
11
+ export { getMatterClustersForHAPService, getMatterDeviceTypeForHAPService, HAPToMatterClusterMapping, HAPToMatterDeviceMapping, MatterClusters, MatterDeviceTypes, } from './matterTypes.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAqC,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Matter Bridge Implementation
3
+ *
4
+ * Main interface for Homebridge to interact with Matter.js
5
+ * Manages the Matter server and device lifecycle
6
+ */
7
+ import { PlatformAccessory } from '../platformAccessory.js';
8
+ import { MatterDevice } from './matterDevice.js';
9
+ import { MatterServerConfig } from './matterServer.js';
10
+ /**
11
+ * Main Matter bridge class that manages the Matter integration
12
+ */
13
+ export declare class MatterBridge {
14
+ private matterServer;
15
+ private isInitialized;
16
+ constructor(config?: MatterServerConfig);
17
+ /**
18
+ * Initialize and start the Matter server
19
+ */
20
+ initialize(): Promise<void>;
21
+ /**
22
+ * Add a HAP accessory to the Matter bridge
23
+ */
24
+ createBridgedEndpoint(accessory: PlatformAccessory): Promise<MatterDevice | null>;
25
+ /**
26
+ * Remove a bridged accessory from Matter
27
+ */
28
+ removeBridgedEndpoint(accessory: PlatformAccessory): Promise<void>;
29
+ /**
30
+ * Get Matter server information
31
+ */
32
+ getServerInfo(): any;
33
+ /**
34
+ * Get all bridged devices
35
+ */
36
+ getBridgedEndpoints(): Map<string, MatterDevice>;
37
+ /**
38
+ * Check if using real Matter implementation
39
+ */
40
+ isUsingRealMatter(): boolean;
41
+ /**
42
+ * Get the port the Matter server is running on
43
+ */
44
+ getPort(): number;
45
+ /**
46
+ * Check if the Matter bridge is commissioned
47
+ */
48
+ isCommissioned(): boolean;
49
+ /**
50
+ * Get commissioning information for the Matter bridge
51
+ */
52
+ getCommissioningInfo(): {
53
+ qrCode?: string;
54
+ manualPairingCode?: string;
55
+ passcode?: number;
56
+ discriminator?: number;
57
+ commissioned: boolean;
58
+ };
59
+ /**
60
+ * Clean up and stop the Matter bridge
61
+ */
62
+ cleanup(): Promise<void>;
63
+ }
64
+ //# sourceMappingURL=matterBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterBridge.d.ts","sourceRoot":"","sources":["../../src/matter/matterBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAIpE;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAQ;gBAEjB,MAAM,GAAE,kBAAuB;IAK3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;IACG,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqBvF;;OAEG;IACG,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxE;;OAEG;IACH,aAAa,IAAI,GAAG;IAcpB;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAQhD;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,OAAO,IAAI,MAAM;IAOjB;;OAEG;IACH,cAAc,IAAI,OAAO;IAOzB;;OAEG;IACH,oBAAoB,IAAI;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,EAAE,OAAO,CAAA;KACtB;IASD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Matter Bridge Implementation
3
+ *
4
+ * Main interface for Homebridge to interact with Matter.js
5
+ * Manages the Matter server and device lifecycle
6
+ */
7
+ import { Logger } from '../logger.js';
8
+ import { MatterServer } from './matterServer.js';
9
+ const log = Logger.withPrefix('Matter');
10
+ /**
11
+ * Main Matter bridge class that manages the Matter integration
12
+ */
13
+ export class MatterBridge {
14
+ matterServer = null;
15
+ isInitialized = false;
16
+ constructor(config = {}) {
17
+ // Create Matter server with provided config
18
+ this.matterServer = new MatterServer(config);
19
+ }
20
+ /**
21
+ * Initialize and start the Matter server
22
+ */
23
+ async initialize() {
24
+ if (this.isInitialized) {
25
+ log.warn('Matter bridge already initialized');
26
+ return;
27
+ }
28
+ if (!this.matterServer) {
29
+ throw new Error('Matter server not created');
30
+ }
31
+ try {
32
+ log.info('Initializing Matter bridge...');
33
+ // Start the Matter server
34
+ await this.matterServer.start();
35
+ this.isInitialized = true;
36
+ const info = this.matterServer.getInfo();
37
+ log.info(`Matter bridge initialized on port ${info.port}`);
38
+ log.info('Homebridge is now ready to bridge accessories to Matter');
39
+ }
40
+ catch (error) {
41
+ log.error('Failed to initialize Matter bridge:', error);
42
+ throw error;
43
+ }
44
+ }
45
+ /**
46
+ * Add a HAP accessory to the Matter bridge
47
+ */
48
+ async createBridgedEndpoint(accessory) {
49
+ if (!this.isInitialized || !this.matterServer) {
50
+ log.error('Matter bridge not initialized');
51
+ return null;
52
+ }
53
+ try {
54
+ // Add accessory to Matter server
55
+ const device = await this.matterServer.addAccessory(accessory);
56
+ if (device) {
57
+ log.info(`Successfully bridged ${accessory.displayName} to Matter`);
58
+ }
59
+ return device;
60
+ }
61
+ catch (error) {
62
+ log.error(`Failed to bridge accessory ${accessory.displayName}:`, error);
63
+ return null;
64
+ }
65
+ }
66
+ /**
67
+ * Remove a bridged accessory from Matter
68
+ */
69
+ async removeBridgedEndpoint(accessory) {
70
+ if (!this.isInitialized || !this.matterServer) {
71
+ log.error('Matter bridge not initialized');
72
+ return;
73
+ }
74
+ try {
75
+ await this.matterServer.removeAccessory(accessory);
76
+ log.info(`Removed ${accessory.displayName} from Matter bridge`);
77
+ }
78
+ catch (error) {
79
+ log.error(`Failed to remove accessory ${accessory.displayName}:`, error);
80
+ }
81
+ }
82
+ /**
83
+ * Get Matter server information
84
+ */
85
+ getServerInfo() {
86
+ if (!this.matterServer) {
87
+ return {
88
+ running: false,
89
+ initialized: false,
90
+ };
91
+ }
92
+ return {
93
+ initialized: this.isInitialized,
94
+ ...this.matterServer.getInfo(),
95
+ };
96
+ }
97
+ /**
98
+ * Get all bridged devices
99
+ */
100
+ getBridgedEndpoints() {
101
+ if (!this.matterServer) {
102
+ return new Map();
103
+ }
104
+ return this.matterServer.getDevices();
105
+ }
106
+ /**
107
+ * Check if using real Matter implementation
108
+ */
109
+ isUsingRealMatter() {
110
+ return true; // This is the real implementation
111
+ }
112
+ /**
113
+ * Get the port the Matter server is running on
114
+ */
115
+ getPort() {
116
+ if (!this.matterServer) {
117
+ return 0;
118
+ }
119
+ return this.matterServer.getInfo().port;
120
+ }
121
+ /**
122
+ * Check if the Matter bridge is commissioned
123
+ */
124
+ isCommissioned() {
125
+ if (!this.matterServer) {
126
+ return false;
127
+ }
128
+ return this.matterServer.isCommissioned();
129
+ }
130
+ /**
131
+ * Get commissioning information for the Matter bridge
132
+ */
133
+ getCommissioningInfo() {
134
+ if (!this.matterServer) {
135
+ return {
136
+ commissioned: false,
137
+ };
138
+ }
139
+ return this.matterServer.getCommissioningInfo();
140
+ }
141
+ /**
142
+ * Clean up and stop the Matter bridge
143
+ */
144
+ async cleanup() {
145
+ log.info('Cleaning up Matter bridge...');
146
+ if (this.matterServer) {
147
+ await this.matterServer.stop();
148
+ }
149
+ this.isInitialized = false;
150
+ this.matterServer = null;
151
+ log.info('Matter bridge cleanup completed');
152
+ }
153
+ }
154
+ //# sourceMappingURL=matterBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterBridge.js","sourceRoot":"","sources":["../../src/matter/matterBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { AccessoryConfig, PlatformConfig } from '../bridgeService.js';
2
+ import { MatterConfiguration } from './matterTypes.js';
3
+ export interface MatterConfigValidationResult {
4
+ isValid: boolean;
5
+ errors: string[];
6
+ warnings: string[];
7
+ }
8
+ /**
9
+ * Validate Matter configuration for production readiness
10
+ */
11
+ export declare class MatterConfigValidator {
12
+ /**
13
+ * Validate a Matter configuration object
14
+ */
15
+ static validate(config: MatterConfiguration): MatterConfigValidationResult;
16
+ private static validatePort;
17
+ private static validateDeviceName;
18
+ /**
19
+ * Validate child Matter configuration (_matter property)
20
+ */
21
+ static validateChildMatterConfig(config: PlatformConfig | AccessoryConfig, configType: 'platform' | 'accessory', identifier: string): MatterConfigValidationResult;
22
+ /**
23
+ * Validate all child Matter configurations in a config
24
+ */
25
+ static validateAllChildMatterConfigs(platforms: PlatformConfig[], accessories: AccessoryConfig[]): MatterConfigValidationResult;
26
+ }
27
+ //# sourceMappingURL=matterConfigValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterConfigValidator.d.ts","sourceRoot":"","sources":["../../src/matter/matterConfigValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAG1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAItD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,4BAA4B;IA4B1E,OAAO,CAAC,MAAM,CAAC,YAAY;IAgB3B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoBjC;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,GACjB,4BAA4B;IA4D/B;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAClC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,eAAe,EAAE,GAC7B,4BAA4B;CA2DhC"}
@@ -0,0 +1,162 @@
1
+ import { Logger } from '../logger.js';
2
+ const log = Logger.withPrefix('Matter');
3
+ /**
4
+ * Validate Matter configuration for production readiness
5
+ */
6
+ export class MatterConfigValidator {
7
+ /**
8
+ * Validate a Matter configuration object
9
+ */
10
+ static validate(config) {
11
+ const result = {
12
+ isValid: true,
13
+ errors: [],
14
+ warnings: [],
15
+ };
16
+ // Validate port configuration
17
+ this.validatePort(config, result);
18
+ // Validate device name
19
+ this.validateDeviceName(config, result);
20
+ result.isValid = result.errors.length === 0;
21
+ if (result.warnings.length > 0) {
22
+ log.warn('Matter configuration warnings:');
23
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
24
+ }
25
+ if (result.errors.length > 0) {
26
+ log.error('Matter configuration errors:');
27
+ result.errors.forEach(error => log.error(` - ${error}`));
28
+ }
29
+ return result;
30
+ }
31
+ static validatePort(config, result) {
32
+ const port = config.port;
33
+ if (port !== undefined) {
34
+ if (!Number.isInteger(port) || port < 1024 || port > 65535) {
35
+ result.errors.push(`Port ${port} is invalid. Must be an integer between 1024-65535.`);
36
+ }
37
+ // Check for common conflicts
38
+ const conflictPorts = [5353, 8080, 8443]; // mDNS, common HTTP ports
39
+ if (conflictPorts.includes(port)) {
40
+ result.warnings.push(`Port ${port} may conflict with other services. Consider using a different port.`);
41
+ }
42
+ }
43
+ }
44
+ static validateDeviceName(config, result) {
45
+ const deviceName = config.name;
46
+ if (deviceName !== undefined) {
47
+ if (deviceName.length === 0) {
48
+ result.errors.push('Device name cannot be empty.');
49
+ return;
50
+ }
51
+ if (deviceName.length > 32) {
52
+ result.errors.push(`Device name "${deviceName}" is too long. Must be 32 characters or less.`);
53
+ }
54
+ // Check for invalid characters
55
+ if (!/^[\x20-\x7E]*$/.test(deviceName)) {
56
+ result.errors.push(`Device name "${deviceName}" contains invalid characters. Use only printable ASCII characters.`);
57
+ }
58
+ }
59
+ }
60
+ /**
61
+ * Validate child Matter configuration (_matter property)
62
+ */
63
+ static validateChildMatterConfig(config, configType, identifier) {
64
+ const result = {
65
+ isValid: true,
66
+ errors: [],
67
+ warnings: [],
68
+ };
69
+ // If no _matter property, no validation needed
70
+ if (!config._matter) {
71
+ return result;
72
+ }
73
+ const matterConfig = config._matter;
74
+ const prefix = `Child Matter bridge for ${configType} "${identifier}"`;
75
+ // Validate port if specified
76
+ if (matterConfig.port !== undefined) {
77
+ if (!Number.isInteger(matterConfig.port) || matterConfig.port < 1024 || matterConfig.port > 65535) {
78
+ result.errors.push(`${prefix}: Port ${matterConfig.port} is invalid. Must be between 1024-65535.`);
79
+ result.isValid = false;
80
+ }
81
+ }
82
+ else {
83
+ result.warnings.push(`${prefix}: No port specified. Port will be auto-allocated.`);
84
+ }
85
+ // Validate name if specified
86
+ if (matterConfig.name !== undefined) {
87
+ if (matterConfig.name.length === 0) {
88
+ result.errors.push(`${prefix}: Name cannot be empty.`);
89
+ result.isValid = false;
90
+ }
91
+ else if (matterConfig.name.length > 32) {
92
+ result.errors.push(`${prefix}: Name "${matterConfig.name}" is too long. Must be 32 characters or less.`);
93
+ result.isValid = false;
94
+ }
95
+ }
96
+ // Check for conflicts with HAP bridge
97
+ if (config._bridge && config._matter) {
98
+ result.warnings.push(`${prefix}: Both _bridge and _matter are configured. Accessories will be exposed via both HAP and Matter protocols.`);
99
+ // Ensure ports don't conflict
100
+ if (config._bridge.port && matterConfig.port && Math.abs(config._bridge.port - matterConfig.port) < 10) {
101
+ result.warnings.push(`${prefix}: HAP and Matter ports are very close. Consider spacing them further apart.`);
102
+ }
103
+ }
104
+ // Log validation results
105
+ if (result.errors.length > 0) {
106
+ log.error(`${prefix} validation errors:`);
107
+ result.errors.forEach(error => log.error(` - ${error}`));
108
+ }
109
+ if (result.warnings.length > 0) {
110
+ log.warn(`${prefix} validation warnings:`);
111
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
112
+ }
113
+ return result;
114
+ }
115
+ /**
116
+ * Validate all child Matter configurations in a config
117
+ */
118
+ static validateAllChildMatterConfigs(platforms, accessories) {
119
+ const result = {
120
+ isValid: true,
121
+ errors: [],
122
+ warnings: [],
123
+ };
124
+ const usedPorts = new Set();
125
+ // Validate platform _matter configs
126
+ for (const platform of platforms) {
127
+ if (platform._matter) {
128
+ const validation = this.validateChildMatterConfig(platform, 'platform', platform.platform || 'unknown');
129
+ result.errors.push(...validation.errors);
130
+ result.warnings.push(...validation.warnings);
131
+ result.isValid = result.isValid && validation.isValid;
132
+ // Check for port conflicts
133
+ if (platform._matter.port) {
134
+ if (usedPorts.has(platform._matter.port)) {
135
+ result.errors.push(`Duplicate Matter port ${platform._matter.port} detected. Each Matter bridge must use a unique port.`);
136
+ result.isValid = false;
137
+ }
138
+ usedPorts.add(platform._matter.port);
139
+ }
140
+ }
141
+ }
142
+ // Validate accessory _matter configs
143
+ for (const accessory of accessories) {
144
+ if (accessory._matter) {
145
+ const validation = this.validateChildMatterConfig(accessory, 'accessory', accessory.accessory || 'unknown');
146
+ result.errors.push(...validation.errors);
147
+ result.warnings.push(...validation.warnings);
148
+ result.isValid = result.isValid && validation.isValid;
149
+ // Check for port conflicts
150
+ if (accessory._matter.port) {
151
+ if (usedPorts.has(accessory._matter.port)) {
152
+ result.errors.push(`Duplicate Matter port ${accessory._matter.port} detected. Each Matter bridge must use a unique port.`);
153
+ result.isValid = false;
154
+ }
155
+ usedPorts.add(accessory._matter.port);
156
+ }
157
+ }
158
+ }
159
+ return result;
160
+ }
161
+ }
162
+ //# sourceMappingURL=matterConfigValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterConfigValidator.js","sourceRoot":"","sources":["../../src/matter/matterConfigValidator.ts"],"names":[],"mappings":"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"}