@matter/protocol 0.12.0-alpha.0-20250108-7ae2a767d → 0.12.0-alpha.0-20250112-2972cf298

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 (59) hide show
  1. package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -1
  2. package/dist/cjs/interaction/ServerSubscription.js +7 -3
  3. package/dist/cjs/interaction/ServerSubscription.js.map +1 -1
  4. package/dist/cjs/mdns/MdnsBroadcaster.d.ts +3 -3
  5. package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +1 -1
  6. package/dist/cjs/mdns/MdnsBroadcaster.js +55 -31
  7. package/dist/cjs/mdns/MdnsBroadcaster.js.map +1 -1
  8. package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
  9. package/dist/cjs/mdns/MdnsScanner.js +226 -28
  10. package/dist/cjs/mdns/MdnsScanner.js.map +1 -1
  11. package/dist/cjs/mdns/MdnsServer.d.ts +5 -1
  12. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  13. package/dist/cjs/mdns/MdnsServer.js +12 -7
  14. package/dist/cjs/mdns/MdnsServer.js.map +1 -1
  15. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  16. package/dist/cjs/peer/ControllerCommissioningFlow.js +35 -2
  17. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  18. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
  19. package/dist/cjs/protocol/DeviceAdvertiser.js +6 -1
  20. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  21. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  22. package/dist/cjs/protocol/DeviceCommissioner.js +5 -1
  23. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  24. package/dist/cjs/protocol/ExchangeManager.js +1 -1
  25. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  26. package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -1
  27. package/dist/esm/interaction/ServerSubscription.js +7 -3
  28. package/dist/esm/interaction/ServerSubscription.js.map +1 -1
  29. package/dist/esm/mdns/MdnsBroadcaster.d.ts +3 -3
  30. package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +1 -1
  31. package/dist/esm/mdns/MdnsBroadcaster.js +56 -31
  32. package/dist/esm/mdns/MdnsBroadcaster.js.map +1 -1
  33. package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
  34. package/dist/esm/mdns/MdnsScanner.js +226 -28
  35. package/dist/esm/mdns/MdnsScanner.js.map +1 -1
  36. package/dist/esm/mdns/MdnsServer.d.ts +5 -1
  37. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  38. package/dist/esm/mdns/MdnsServer.js +12 -7
  39. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  40. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  41. package/dist/esm/peer/ControllerCommissioningFlow.js +36 -3
  42. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  43. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
  44. package/dist/esm/protocol/DeviceAdvertiser.js +6 -1
  45. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  46. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  47. package/dist/esm/protocol/DeviceCommissioner.js +5 -1
  48. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  49. package/dist/esm/protocol/ExchangeManager.js +1 -1
  50. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  51. package/package.json +6 -6
  52. package/src/interaction/ServerSubscription.ts +7 -3
  53. package/src/mdns/MdnsBroadcaster.ts +63 -35
  54. package/src/mdns/MdnsScanner.ts +264 -43
  55. package/src/mdns/MdnsServer.ts +20 -7
  56. package/src/peer/ControllerCommissioningFlow.ts +48 -3
  57. package/src/protocol/DeviceAdvertiser.ts +7 -1
  58. package/src/protocol/DeviceCommissioner.ts +11 -2
  59. package/src/protocol/ExchangeManager.ts +1 -1
@@ -65,6 +65,9 @@ export class DeviceAdvertiser {
65
65
  if (this.#context.fabrics.length === 0) {
66
66
  // Last fabric got removed, so expire all announcements
67
67
  await this.#exitOperationalMode();
68
+ } else {
69
+ // At least one fabric is still present, so re-announce
70
+ await this.advertise(true);
68
71
  }
69
72
  });
70
73
 
@@ -164,7 +167,10 @@ export class DeviceAdvertiser {
164
167
  const session = this.#context.sessions.getSessionForNode(fabric.addressOf(fabric.rootNodeId));
165
168
  if (session === undefined || !session.isSecure || session.subscriptions.size === 0) {
166
169
  fabricsWithoutSessions++;
167
- logger.debug("Announcing", Diagnostic.dict({ fabric: fabric.fabricId }));
170
+ logger.debug(
171
+ "Announcing",
172
+ Diagnostic.dict({ fabricIndex: fabric.fabricIndex, fabricId: fabric.fabricId }),
173
+ );
168
174
  }
169
175
  }
170
176
  for (const broadcaster of this.#broadcasters) {
@@ -65,8 +65,17 @@ export class DeviceCommissioner {
65
65
 
66
66
  this.#observers.on(this.#context.advertiser.timedOut, this.endCommissioning);
67
67
 
68
- // If a commissioning window is open then we reannounce this because it was ended as fabric got added
69
- this.#observers.on(this.#context.fabrics.events.deleted, this.reactivateAdvertiser);
68
+ // If a commissioning window is open then we re-announce this because it was ended as fabric got added
69
+ this.#observers.on(this.#context.fabrics.events.deleted, async () => {
70
+ // If a commissioning window is open, or we removed the last fabric, then we re-announce this
71
+ // because it was ended as fabric got added
72
+ if (
73
+ this.#context.fabrics.length === 0 ||
74
+ this.#windowStatus !== AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen
75
+ ) {
76
+ this.reactivateAdvertiser();
77
+ }
78
+ });
70
79
 
71
80
  // No fabric paired yet, so announce as "ready for commissioning"
72
81
  this.#observers.on(this.#context.advertiser.operationalModeEnded, this.allowBasicCommissioning);
@@ -352,8 +352,8 @@ export class ExchangeManager {
352
352
  logger.debug(`Channel for session ${session.name} is ${channel?.name}`);
353
353
  if (channel !== undefined) {
354
354
  const exchange = this.initiateExchangeWithChannel(channel, SECURE_CHANNEL_PROTOCOL_ID);
355
- logger.debug(`Initiated exchange ${!!exchange} to close session ${sessionName}`);
356
355
  if (exchange !== undefined) {
356
+ logger.debug(`Initiated exchange ${exchange.id} to close session ${sessionName}`);
357
357
  try {
358
358
  const messenger = new SecureChannelMessenger(exchange);
359
359
  await messenger.sendCloseSession();