@matter/protocol 0.16.0-alpha.0-20250810-5c91a95d2 → 0.16.0-alpha.0-20250814-484abe647

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 (51) hide show
  1. package/dist/cjs/ble/BleConsts.d.ts +2 -1
  2. package/dist/cjs/ble/BleConsts.d.ts.map +1 -1
  3. package/dist/cjs/ble/BleConsts.js +3 -1
  4. package/dist/cjs/ble/BleConsts.js.map +1 -1
  5. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  6. package/dist/cjs/mdns/MdnsServer.js +10 -22
  7. package/dist/cjs/mdns/MdnsServer.js.map +1 -1
  8. package/dist/cjs/protocol/ProtocolHandler.d.ts +4 -0
  9. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
  10. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +8 -4
  11. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  12. package/dist/cjs/protocol/ProtocolStatusMessage.js +23 -8
  13. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
  14. package/dist/cjs/securechannel/SecureChannelMessenger.js +2 -2
  15. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  16. package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -1
  17. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  18. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  19. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  20. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  21. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  22. package/dist/esm/ble/BleConsts.d.ts +2 -1
  23. package/dist/esm/ble/BleConsts.d.ts.map +1 -1
  24. package/dist/esm/ble/BleConsts.js +3 -1
  25. package/dist/esm/ble/BleConsts.js.map +1 -1
  26. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  27. package/dist/esm/mdns/MdnsServer.js +10 -22
  28. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  29. package/dist/esm/protocol/ProtocolHandler.d.ts +4 -0
  30. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
  31. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +8 -4
  32. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  33. package/dist/esm/protocol/ProtocolStatusMessage.js +24 -9
  34. package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
  35. package/dist/esm/securechannel/SecureChannelMessenger.js +3 -3
  36. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  37. package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
  38. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  39. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  40. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  41. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  42. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  43. package/package.json +6 -6
  44. package/src/ble/BleConsts.ts +2 -1
  45. package/src/mdns/MdnsServer.ts +9 -26
  46. package/src/mdns/MdnsSocket.ts +1 -1
  47. package/src/protocol/ProtocolHandler.ts +7 -0
  48. package/src/protocol/ProtocolStatusMessage.ts +26 -10
  49. package/src/securechannel/SecureChannelMessenger.ts +3 -3
  50. package/src/securechannel/SecureChannelProtocol.ts +2 -2
  51. package/src/securechannel/SecureChannelStatusMessageSchema.ts +3 -3
@@ -4,7 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /** @see {@link MatterSpecification.v11.Core} § 4.17.3.2 */
7
- export declare const BLE_MATTER_SERVICE_UUID = "fff6";
7
+ export declare const BLE_MATTER_SERVICE_UUID_SHORT = "fff6";
8
+ export declare const BLE_MATTER_SERVICE_UUID = "0000FFF6-0000-1000-8000-00805F9B34FB";
8
9
  export declare const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
9
10
  export declare const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
10
11
  export declare const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
@@ -1 +1 @@
1
- {"version":3,"file":"BleConsts.d.ts","sourceRoot":"","sources":["../../../src/ble/BleConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAuB,CAAC"}
1
+ {"version":3,"file":"BleConsts.d.ts","sourceRoot":"","sources":["../../../src/ble/BleConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,SAAS,CAAC;AACpD,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAuB,CAAC"}
@@ -22,6 +22,7 @@ __export(BleConsts_exports, {
22
22
  BLE_MATTER_C2_CHARACTERISTIC_UUID: () => BLE_MATTER_C2_CHARACTERISTIC_UUID,
23
23
  BLE_MATTER_C3_CHARACTERISTIC_UUID: () => BLE_MATTER_C3_CHARACTERISTIC_UUID,
24
24
  BLE_MATTER_SERVICE_UUID: () => BLE_MATTER_SERVICE_UUID,
25
+ BLE_MATTER_SERVICE_UUID_SHORT: () => BLE_MATTER_SERVICE_UUID_SHORT,
25
26
  BLE_MAXIMUM_BTP_MTU: () => BLE_MAXIMUM_BTP_MTU,
26
27
  BLE_MAX_MATTER_PAYLOAD_SIZE: () => BLE_MAX_MATTER_PAYLOAD_SIZE,
27
28
  BLE_MINIMUM_ATT_MTU: () => BLE_MINIMUM_ATT_MTU,
@@ -38,7 +39,8 @@ var import_general = require("#general");
38
39
  * Copyright 2022-2025 Matter.js Authors
39
40
  * SPDX-License-Identifier: Apache-2.0
40
41
  */
41
- const BLE_MATTER_SERVICE_UUID = "fff6";
42
+ const BLE_MATTER_SERVICE_UUID_SHORT = "fff6";
43
+ const BLE_MATTER_SERVICE_UUID = "0000FFF6-0000-1000-8000-00805F9B34FB";
42
44
  const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
43
45
  const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
44
46
  const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ble/BleConsts.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqC;AANrC;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,0BAA0B;AAChC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAE1C,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAMhC,MAAM,0BAA0B;AAGhC,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,qBAAqB;AAMrD,MAAM,wBAAwB;AAM9B,MAAM,8BAA8B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqC;AANrC;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAE1C,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAMhC,MAAM,0BAA0B;AAGhC,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,qBAAqB;AAMrD,MAAM,wBAAwB;AAM9B,MAAM,8BAA8B;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAyBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IA2GjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAe1E,KAAK;CAmBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
1
+ {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAwBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAgGjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAW1E,KAAK;CAkBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
@@ -47,7 +47,6 @@ class MdnsServer {
47
47
  15 * 60 * 1e3
48
48
  );
49
49
  #recordLastSentAsMulticastAnswer = /* @__PURE__ */ new Map();
50
- #recordLastSentAsUnicastAnswer = /* @__PURE__ */ new Map();
51
50
  #socket;
52
51
  constructor(socket) {
53
52
  this.#socket = socket;
@@ -92,25 +91,19 @@ class MdnsServer {
92
91
  let uniCastResponse = queries.filter((query) => !query.uniCastResponse).length === 0;
93
92
  const answersTimeSinceLastSent = answers.map((answer) => ({
94
93
  timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf)) ?? 0),
95
- timeSinceLastUniCast: now - (this.#recordLastSentAsUnicastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf, sourceIp)) ?? 0),
96
- ttl: answer.ttl
94
+ ttl: answer.ttl * 1e3
97
95
  }));
98
- if (uniCastResponse && answersTimeSinceLastSent.some(
99
- ({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4 * 1e3
100
- )) {
96
+ if (uniCastResponse && answersTimeSinceLastSent.some(({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4)) {
101
97
  uniCastResponse = false;
102
98
  }
103
99
  if (!uniCastResponse) {
104
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast > 1e3);
105
- if (answers.length === 0) continue;
106
- answers.forEach(
107
- (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
100
+ answers = answers.filter(
101
+ (_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= 900
102
+ // The last time sent as multicast was more than 900 ms ago
108
103
  );
109
- } else {
110
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastUniCast > 1e3);
111
104
  if (answers.length === 0) continue;
112
105
  answers.forEach(
113
- (answer) => this.#recordLastSentAsUnicastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf, sourceIp), now)
106
+ (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
114
107
  );
115
108
  }
116
109
  this.#socket.send(
@@ -173,26 +166,21 @@ class MdnsServer {
173
166
  }),
174
167
  "Error happened when expiring MDNS announcements"
175
168
  ).catch((error) => logger.error(error));
176
- await this.#resetServices(services);
169
+ await this.#resetServices();
177
170
  }
178
171
  async setRecordsGenerator(service, generator) {
179
172
  await this.#records.clear();
180
173
  this.#recordLastSentAsMulticastAnswer.clear();
181
- this.#recordLastSentAsUnicastAnswer.clear();
182
174
  this.#recordsGenerator.set(service, generator);
183
175
  }
184
- async #resetServices(services) {
185
- for (const service of services) {
186
- await this.#records.delete(service);
187
- this.#recordLastSentAsMulticastAnswer.delete(service);
188
- this.#recordLastSentAsUnicastAnswer.delete(service);
189
- }
176
+ async #resetServices() {
177
+ await this.#records.clear();
178
+ this.#recordLastSentAsMulticastAnswer.clear();
190
179
  }
191
180
  async close() {
192
181
  this.#observers.close();
193
182
  await this.#records.close();
194
183
  this.#recordLastSentAsMulticastAnswer.clear();
195
- this.#recordLastSentAsUnicastAnswer.clear();
196
184
  }
197
185
  #getMulticastInterfacesForAnnounce() {
198
186
  const { netInterface } = this.#socket;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -6,9 +6,13 @@
6
6
  import { Message } from "../codec/MessageCodec.js";
7
7
  import { MessageExchange } from "./MessageExchange.js";
8
8
  export interface ProtocolHandler {
9
+ /** Protocol ID that this handler implements */
9
10
  readonly id: number;
11
+ /** Indicates whether this protocol requires a secure session to be established before it can be used */
10
12
  readonly requiresSecureSession: boolean;
13
+ /** Called on a new exchange that uses this protocol. The message is the first message of the exchange. */
11
14
  onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
15
+ /** Called when the protocol handler is no longer needed and can clean up resources. */
12
16
  close(): Promise<void>;
13
17
  }
14
18
  //# sourceMappingURL=ProtocolHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolHandler.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"ProtocolHandler.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,wGAAwG;IACxG,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IAExC,0GAA0G;IAC1G,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,uFAAuF;IACvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -3,18 +3,22 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GeneralStatusCode, Schema } from "#types";
6
+ import { GeneralStatusCode, Schema, VendorId } from "#types";
7
7
  export type ProtocolStatusMessage<T> = {
8
8
  generalStatus: GeneralStatusCode;
9
9
  protocolId: number;
10
+ vendorId: VendorId;
10
11
  protocolStatus: T;
11
12
  protocolData?: Uint8Array;
12
13
  };
13
14
  export declare abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessage<any>> extends Schema<T, Uint8Array> {
14
15
  #private;
15
- constructor(protocolId: number, protocolSpecificDataAllowed?: boolean);
16
- encode(message: Omit<T, "protocolId">): Uint8Array;
17
- encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }: T): Uint8Array<ArrayBuffer>;
16
+ constructor(protocol: number | {
17
+ protocolId: number;
18
+ vendorId: number;
19
+ }, protocolSpecificDataAllowed?: boolean);
20
+ encode(message: Omit<T, "protocolId" | "vendorId">): Uint8Array;
21
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData, vendorId }: T): Uint8Array<ArrayBuffer>;
18
22
  decodeInternal(bytes: Uint8Array): T;
19
23
  }
20
24
  //# sourceMappingURL=ProtocolStatusMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolStatusMessage.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolStatusMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,8BAAsB,2BAA2B,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;;gBAIrG,UAAU,EAAE,MAAM,EAAE,2BAA2B,UAAO;IAMzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,UAAU;IAI3D,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAW7E,cAAc,CAAC,KAAK,EAAE,UAAU,GAOuD,CAAC;CAE3F"}
1
+ {"version":3,"file":"ProtocolStatusMessage.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolStatusMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE7D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,8BAAsB,2BAA2B,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;;gBAKrG,QAAQ,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,2BAA2B,UAAO;IAYlG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG,UAAU;IAIxE,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;IAWvF,cAAc,CAAC,KAAK,EAAE,UAAU,GAeZ,CAAC;CAExB"}
@@ -30,19 +30,26 @@ var import_types = require("#types");
30
30
  */
31
31
  class ProtocolStatusMessageSchema extends import_types.Schema {
32
32
  #protocolId;
33
+ #vendorId;
33
34
  #protocolSpecificDataAllowed;
34
- constructor(protocolId, protocolSpecificDataAllowed = true) {
35
+ constructor(protocol, protocolSpecificDataAllowed = true) {
35
36
  super();
36
- this.#protocolId = protocolId;
37
+ if (typeof protocol === "number") {
38
+ this.#protocolId = protocol;
39
+ this.#vendorId = 0;
40
+ } else {
41
+ this.#protocolId = protocol.protocolId;
42
+ this.#vendorId = protocol.vendorId;
43
+ }
37
44
  this.#protocolSpecificDataAllowed = protocolSpecificDataAllowed;
38
45
  }
39
46
  encode(message) {
40
- return super.encode({ ...message, protocolId: this.#protocolId });
47
+ return super.encode({ ...message, protocolId: this.#protocolId, vendorId: this.#vendorId });
41
48
  }
42
- encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }) {
49
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData, vendorId }) {
43
50
  const writer = new import_general.DataWriter(import_general.Endian.Little);
44
51
  writer.writeUInt16(generalStatus);
45
- writer.writeUInt32(protocolId);
52
+ writer.writeUInt32(vendorId << 16 | protocolId);
46
53
  writer.writeUInt16(protocolStatus);
47
54
  if (this.#protocolSpecificDataAllowed && protocolData !== void 0 && protocolData.length > 0) {
48
55
  writer.writeByteArray(protocolData);
@@ -52,10 +59,18 @@ class ProtocolStatusMessageSchema extends import_types.Schema {
52
59
  decodeInternal(bytes) {
53
60
  const reader = new import_general.DataReader(bytes, import_general.Endian.Little);
54
61
  const generalStatus = reader.readUInt16();
55
- const protocolId = reader.readUInt32();
62
+ const vendorProtocolId = reader.readUInt32();
56
63
  const protocolStatus = reader.readUInt16();
57
- const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
58
- return { generalStatus, protocolId, protocolStatus, remainingBytes };
64
+ const protocolData = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
65
+ const protocolId = vendorProtocolId & 65535;
66
+ const vendorId = (0, import_types.VendorId)(vendorProtocolId >>> 16);
67
+ return {
68
+ generalStatus,
69
+ protocolId,
70
+ protocolStatus,
71
+ protocolData,
72
+ vendorId
73
+ };
59
74
  }
60
75
  }
61
76
  //# sourceMappingURL=ProtocolStatusMessage.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/ProtocolStatusMessage.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA+C;AAC/C,mBAA0C;AAP1C;AAAA;AAAA;AAAA;AAAA;AAgBO,MAAe,oCAA0E,oBAAsB;AAAA,EAClH;AAAA,EACA;AAAA,EAEA,YAAY,YAAoB,8BAA8B,MAAM;AAChE,UAAM;AACN,SAAK,cAAc;AACnB,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAES,OAAO,SAA4C;AACxD,WAAO,MAAM,OAAO,EAAE,GAAG,SAAS,YAAY,KAAK,YAAY,CAAM;AAAA,EACzE;AAAA,EAEA,eAAe,EAAE,eAAe,gBAAgB,YAAY,aAAa,GAAM;AAC3E,UAAM,SAAS,IAAI,0BAAW,sBAAO,MAAM;AAC3C,WAAO,YAAY,aAAa;AAChC,WAAO,YAAY,UAAU;AAC7B,WAAO,YAAY,cAAc;AACjC,QAAI,KAAK,gCAAgC,iBAAiB,UAAa,aAAa,SAAS,GAAG;AAC5F,aAAO,eAAe,YAAY;AAAA,IACtC;AACA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAmB;AAC9B,UAAM,SAAS,IAAI,0BAAW,OAAO,sBAAO,MAAM;AAClD,UAAM,gBAAgB,OAAO,WAAW;AACxC,UAAM,aAAa,OAAO,WAAW;AACrC,UAAM,iBAAiB,OAAO,WAAW;AACzC,UAAM,iBAAiB,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAEhF,WAAO,EAAE,eAAe,YAAY,gBAAgB,eAAe;AAAA,EACvE;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA+C;AAC/C,mBAAoD;AAPpD;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAe,oCAA0E,oBAAsB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,UAA6D,8BAA8B,MAAM;AACzG,UAAM;AACN,QAAI,OAAO,aAAa,UAAU;AAC9B,WAAK,cAAc;AACnB,WAAK,YAAY;AAAA,IACrB,OAAO;AACH,WAAK,cAAc,SAAS;AAC5B,WAAK,YAAY,SAAS;AAAA,IAC9B;AACA,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAES,OAAO,SAAyD;AACrE,WAAO,MAAM,OAAO,EAAE,GAAG,SAAS,YAAY,KAAK,aAAa,UAAU,KAAK,UAAU,CAAM;AAAA,EACnG;AAAA,EAEA,eAAe,EAAE,eAAe,gBAAgB,YAAY,cAAc,SAAS,GAAM;AACrF,UAAM,SAAS,IAAI,0BAAW,sBAAO,MAAM;AAC3C,WAAO,YAAY,aAAa;AAChC,WAAO,YAAa,YAAY,KAAM,UAAU;AAChD,WAAO,YAAY,cAAc;AACjC,QAAI,KAAK,gCAAgC,iBAAiB,UAAa,aAAa,SAAS,GAAG;AAC5F,aAAO,eAAe,YAAY;AAAA,IACtC;AACA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAmB;AAC9B,UAAM,SAAS,IAAI,0BAAW,OAAO,sBAAO,MAAM;AAClD,UAAM,gBAAgB,OAAO,WAAW;AACxC,UAAM,mBAAmB,OAAO,WAAW;AAC3C,UAAM,iBAAiB,OAAO,WAAW;AACzC,UAAM,eAAe,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAE9E,UAAM,aAAa,mBAAmB;AACtC,UAAM,eAAW,uBAAS,qBAAqB,EAAE;AACjD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -125,7 +125,7 @@ class SecureChannelMessenger {
125
125
  async #sendStatusReport(generalStatus, protocolStatus, requiresAck) {
126
126
  await this.exchange.send(
127
127
  import_types.SecureMessageType.StatusReport,
128
- import_SecureChannelStatusMessageSchema.TlvSecureChannelStatusMessage.encode({
128
+ import_SecureChannelStatusMessageSchema.SecureChannelStatusMessage.encode({
129
129
  generalStatus,
130
130
  protocolStatus
131
131
  }),
@@ -144,7 +144,7 @@ class SecureChannelMessenger {
144
144
  payload
145
145
  } = message;
146
146
  if (messageType !== import_types.SecureMessageType.StatusReport) return;
147
- const { generalStatus, protocolId, protocolStatus } = import_SecureChannelStatusMessageSchema.TlvSecureChannelStatusMessage.decode(payload);
147
+ const { generalStatus, protocolId, protocolStatus } = import_SecureChannelStatusMessageSchema.SecureChannelStatusMessage.decode(payload);
148
148
  if (generalStatus !== import_types.GeneralStatusCode.Success) {
149
149
  throw new ChannelStatusResponseError(
150
150
  `Received general error status for protocol ${protocolId}${logHint ? ` (${logHint})` : ""}`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelMessenger.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -68,7 +68,7 @@ class StatusReportOnlySecureChannelProtocol {
68
68
  )}`
69
69
  );
70
70
  }
71
- const { generalStatus, protocolId, protocolStatus } = import_SecureChannelStatusMessageSchema.TlvSecureChannelStatusMessage.decode(payload);
71
+ const { generalStatus, protocolId, protocolStatus } = import_SecureChannelStatusMessageSchema.SecureChannelStatusMessage.decode(payload);
72
72
  if (generalStatus !== import_types.GeneralStatusCode.Success) {
73
73
  throw new import_SecureChannelMessenger.ChannelStatusResponseError(
74
74
  `Received general error status (${protocolId})`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelProtocol.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
7
7
  import { SecureChannelStatusCode } from "#types";
8
- export type SecureChannelStatusMessage = ProtocolStatusMessage<SecureChannelStatusCode>;
9
- export declare class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatusMessage> {
8
+ export type SecureChannelStatus = ProtocolStatusMessage<SecureChannelStatusCode>;
9
+ export declare class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatus> {
10
10
  }
11
- export declare const TlvSecureChannelStatusMessage: SecureChannelStatusMessageSchema;
11
+ export declare const SecureChannelStatusMessage: SecureChannelStatusMessageSchema;
12
12
  //# sourceMappingURL=SecureChannelStatusMessageSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecureChannelStatusMessageSchema.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAA8B,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAE7E,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAExF,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,0BAA0B,CAAC;CAAG;AAEhH,eAAO,MAAM,6BAA6B,kCAAmE,CAAC"}
1
+ {"version":3,"file":"SecureChannelStatusMessageSchema.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAA8B,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAEjF,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,mBAAmB,CAAC;CAAG;AAEzG,eAAO,MAAM,0BAA0B,kCAAmE,CAAC"}
@@ -18,8 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var SecureChannelStatusMessageSchema_exports = {};
20
20
  __export(SecureChannelStatusMessageSchema_exports, {
21
- SecureChannelStatusMessageSchema: () => SecureChannelStatusMessageSchema,
22
- TlvSecureChannelStatusMessage: () => TlvSecureChannelStatusMessage
21
+ SecureChannelStatusMessage: () => SecureChannelStatusMessage,
22
+ SecureChannelStatusMessageSchema: () => SecureChannelStatusMessageSchema
23
23
  });
24
24
  module.exports = __toCommonJS(SecureChannelStatusMessageSchema_exports);
25
25
  var import_ProtocolStatusMessage = require("#protocol/ProtocolStatusMessage.js");
@@ -31,5 +31,5 @@ var import_types = require("#types");
31
31
  */
32
32
  class SecureChannelStatusMessageSchema extends import_ProtocolStatusMessage.ProtocolStatusMessageSchema {
33
33
  }
34
- const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema(import_types.SECURE_CHANNEL_PROTOCOL_ID);
34
+ const SecureChannelStatusMessage = new SecureChannelStatusMessageSchema(import_types.SECURE_CHANNEL_PROTOCOL_ID);
35
35
  //# sourceMappingURL=SecureChannelStatusMessageSchema.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mCAAmE;AACnE,mBAAoE;AAPpE;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,yCAAyC,yDAAwD;AAAC;AAExG,MAAM,gCAAgC,IAAI,iCAAiC,uCAA0B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mCAAmE;AACnE,mBAAoE;AAPpE;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,yCAAyC,yDAAiD;AAAC;AAEjG,MAAM,6BAA6B,IAAI,iCAAiC,uCAA0B;",
5
5
  "names": []
6
6
  }
@@ -4,7 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /** @see {@link MatterSpecification.v11.Core} § 4.17.3.2 */
7
- export declare const BLE_MATTER_SERVICE_UUID = "fff6";
7
+ export declare const BLE_MATTER_SERVICE_UUID_SHORT = "fff6";
8
+ export declare const BLE_MATTER_SERVICE_UUID = "0000FFF6-0000-1000-8000-00805F9B34FB";
8
9
  export declare const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
9
10
  export declare const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
10
11
  export declare const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
@@ -1 +1 @@
1
- {"version":3,"file":"BleConsts.d.ts","sourceRoot":"","sources":["../../../src/ble/BleConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAuB,CAAC"}
1
+ {"version":3,"file":"BleConsts.d.ts","sourceRoot":"","sources":["../../../src/ble/BleConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,SAAS,CAAC;AACpD,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAuB,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { MAX_UDP_MESSAGE_SIZE } from "#general";
7
- const BLE_MATTER_SERVICE_UUID = "fff6";
7
+ const BLE_MATTER_SERVICE_UUID_SHORT = "fff6";
8
+ const BLE_MATTER_SERVICE_UUID = "0000FFF6-0000-1000-8000-00805F9B34FB";
8
9
  const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
9
10
  const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
10
11
  const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
@@ -21,6 +22,7 @@ export {
21
22
  BLE_MATTER_C2_CHARACTERISTIC_UUID,
22
23
  BLE_MATTER_C3_CHARACTERISTIC_UUID,
23
24
  BLE_MATTER_SERVICE_UUID,
25
+ BLE_MATTER_SERVICE_UUID_SHORT,
24
26
  BLE_MAXIMUM_BTP_MTU,
25
27
  BLE_MAX_MATTER_PAYLOAD_SIZE,
26
28
  BLE_MINIMUM_ATT_MTU,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ble/BleConsts.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AAG9B,MAAM,0BAA0B;AAChC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAE1C,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAMhC,MAAM,0BAA0B;AAGhC,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,qBAAqB;AAMrD,MAAM,wBAAwB;AAM9B,MAAM,8BAA8B;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AAG9B,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAE1C,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAMhC,MAAM,0BAA0B;AAGhC,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,qBAAqB;AAMrD,MAAM,wBAAwB;AAM9B,MAAM,8BAA8B;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAyBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IA2GjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAe1E,KAAK;CAmBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
1
+ {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAwBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAgGjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAW1E,KAAK;CAkBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
@@ -33,7 +33,6 @@ class MdnsServer {
33
33
  15 * 60 * 1e3
34
34
  );
35
35
  #recordLastSentAsMulticastAnswer = /* @__PURE__ */ new Map();
36
- #recordLastSentAsUnicastAnswer = /* @__PURE__ */ new Map();
37
36
  #socket;
38
37
  constructor(socket) {
39
38
  this.#socket = socket;
@@ -78,25 +77,19 @@ class MdnsServer {
78
77
  let uniCastResponse = queries.filter((query) => !query.uniCastResponse).length === 0;
79
78
  const answersTimeSinceLastSent = answers.map((answer) => ({
80
79
  timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf)) ?? 0),
81
- timeSinceLastUniCast: now - (this.#recordLastSentAsUnicastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf, sourceIp)) ?? 0),
82
- ttl: answer.ttl
80
+ ttl: answer.ttl * 1e3
83
81
  }));
84
- if (uniCastResponse && answersTimeSinceLastSent.some(
85
- ({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4 * 1e3
86
- )) {
82
+ if (uniCastResponse && answersTimeSinceLastSent.some(({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4)) {
87
83
  uniCastResponse = false;
88
84
  }
89
85
  if (!uniCastResponse) {
90
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast > 1e3);
91
- if (answers.length === 0) continue;
92
- answers.forEach(
93
- (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
86
+ answers = answers.filter(
87
+ (_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= 900
88
+ // The last time sent as multicast was more than 900 ms ago
94
89
  );
95
- } else {
96
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastUniCast > 1e3);
97
90
  if (answers.length === 0) continue;
98
91
  answers.forEach(
99
- (answer) => this.#recordLastSentAsUnicastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf, sourceIp), now)
92
+ (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
100
93
  );
101
94
  }
102
95
  this.#socket.send(
@@ -159,26 +152,21 @@ class MdnsServer {
159
152
  }),
160
153
  "Error happened when expiring MDNS announcements"
161
154
  ).catch((error) => logger.error(error));
162
- await this.#resetServices(services);
155
+ await this.#resetServices();
163
156
  }
164
157
  async setRecordsGenerator(service, generator) {
165
158
  await this.#records.clear();
166
159
  this.#recordLastSentAsMulticastAnswer.clear();
167
- this.#recordLastSentAsUnicastAnswer.clear();
168
160
  this.#recordsGenerator.set(service, generator);
169
161
  }
170
- async #resetServices(services) {
171
- for (const service of services) {
172
- await this.#records.delete(service);
173
- this.#recordLastSentAsMulticastAnswer.delete(service);
174
- this.#recordLastSentAsUnicastAnswer.delete(service);
175
- }
162
+ async #resetServices() {
163
+ await this.#records.clear();
164
+ this.#recordLastSentAsMulticastAnswer.clear();
176
165
  }
177
166
  async close() {
178
167
  this.#observers.close();
179
168
  await this.#records.close();
180
169
  this.#recordLastSentAsMulticastAnswer.clear();
181
- this.#recordLastSentAsUnicastAnswer.clear();
182
170
  }
183
171
  #getMulticastInterfacesForAnnounce() {
184
172
  const { netInterface } = this.#socket;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -6,9 +6,13 @@
6
6
  import { Message } from "../codec/MessageCodec.js";
7
7
  import { MessageExchange } from "./MessageExchange.js";
8
8
  export interface ProtocolHandler {
9
+ /** Protocol ID that this handler implements */
9
10
  readonly id: number;
11
+ /** Indicates whether this protocol requires a secure session to be established before it can be used */
10
12
  readonly requiresSecureSession: boolean;
13
+ /** Called on a new exchange that uses this protocol. The message is the first message of the exchange. */
11
14
  onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
15
+ /** Called when the protocol handler is no longer needed and can clean up resources. */
12
16
  close(): Promise<void>;
13
17
  }
14
18
  //# sourceMappingURL=ProtocolHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolHandler.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"ProtocolHandler.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,wGAAwG;IACxG,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IAExC,0GAA0G;IAC1G,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,uFAAuF;IACvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -3,18 +3,22 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GeneralStatusCode, Schema } from "#types";
6
+ import { GeneralStatusCode, Schema, VendorId } from "#types";
7
7
  export type ProtocolStatusMessage<T> = {
8
8
  generalStatus: GeneralStatusCode;
9
9
  protocolId: number;
10
+ vendorId: VendorId;
10
11
  protocolStatus: T;
11
12
  protocolData?: Uint8Array;
12
13
  };
13
14
  export declare abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessage<any>> extends Schema<T, Uint8Array> {
14
15
  #private;
15
- constructor(protocolId: number, protocolSpecificDataAllowed?: boolean);
16
- encode(message: Omit<T, "protocolId">): Uint8Array;
17
- encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }: T): Uint8Array<ArrayBuffer>;
16
+ constructor(protocol: number | {
17
+ protocolId: number;
18
+ vendorId: number;
19
+ }, protocolSpecificDataAllowed?: boolean);
20
+ encode(message: Omit<T, "protocolId" | "vendorId">): Uint8Array;
21
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData, vendorId }: T): Uint8Array<ArrayBuffer>;
18
22
  decodeInternal(bytes: Uint8Array): T;
19
23
  }
20
24
  //# sourceMappingURL=ProtocolStatusMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolStatusMessage.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolStatusMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,8BAAsB,2BAA2B,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;;gBAIrG,UAAU,EAAE,MAAM,EAAE,2BAA2B,UAAO;IAMzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,UAAU;IAI3D,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAW7E,cAAc,CAAC,KAAK,EAAE,UAAU,GAOuD,CAAC;CAE3F"}
1
+ {"version":3,"file":"ProtocolStatusMessage.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolStatusMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE7D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,8BAAsB,2BAA2B,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;;gBAKrG,QAAQ,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,2BAA2B,UAAO;IAYlG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG,UAAU;IAIxE,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;IAWvF,cAAc,CAAC,KAAK,EAAE,UAAU,GAeZ,CAAC;CAExB"}
@@ -4,22 +4,29 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { DataReader, DataWriter, Endian } from "#general";
7
- import { Schema } from "#types";
7
+ import { Schema, VendorId } from "#types";
8
8
  class ProtocolStatusMessageSchema extends Schema {
9
9
  #protocolId;
10
+ #vendorId;
10
11
  #protocolSpecificDataAllowed;
11
- constructor(protocolId, protocolSpecificDataAllowed = true) {
12
+ constructor(protocol, protocolSpecificDataAllowed = true) {
12
13
  super();
13
- this.#protocolId = protocolId;
14
+ if (typeof protocol === "number") {
15
+ this.#protocolId = protocol;
16
+ this.#vendorId = 0;
17
+ } else {
18
+ this.#protocolId = protocol.protocolId;
19
+ this.#vendorId = protocol.vendorId;
20
+ }
14
21
  this.#protocolSpecificDataAllowed = protocolSpecificDataAllowed;
15
22
  }
16
23
  encode(message) {
17
- return super.encode({ ...message, protocolId: this.#protocolId });
24
+ return super.encode({ ...message, protocolId: this.#protocolId, vendorId: this.#vendorId });
18
25
  }
19
- encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }) {
26
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData, vendorId }) {
20
27
  const writer = new DataWriter(Endian.Little);
21
28
  writer.writeUInt16(generalStatus);
22
- writer.writeUInt32(protocolId);
29
+ writer.writeUInt32(vendorId << 16 | protocolId);
23
30
  writer.writeUInt16(protocolStatus);
24
31
  if (this.#protocolSpecificDataAllowed && protocolData !== void 0 && protocolData.length > 0) {
25
32
  writer.writeByteArray(protocolData);
@@ -29,10 +36,18 @@ class ProtocolStatusMessageSchema extends Schema {
29
36
  decodeInternal(bytes) {
30
37
  const reader = new DataReader(bytes, Endian.Little);
31
38
  const generalStatus = reader.readUInt16();
32
- const protocolId = reader.readUInt32();
39
+ const vendorProtocolId = reader.readUInt32();
33
40
  const protocolStatus = reader.readUInt16();
34
- const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
35
- return { generalStatus, protocolId, protocolStatus, remainingBytes };
41
+ const protocolData = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
42
+ const protocolId = vendorProtocolId & 65535;
43
+ const vendorId = VendorId(vendorProtocolId >>> 16);
44
+ return {
45
+ generalStatus,
46
+ protocolId,
47
+ protocolStatus,
48
+ protocolData,
49
+ vendorId
50
+ };
36
51
  }
37
52
  }
38
53
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/ProtocolStatusMessage.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,YAAY,cAAc;AAC/C,SAA4B,cAAc;AASnC,MAAe,oCAA0E,OAAsB;AAAA,EAClH;AAAA,EACA;AAAA,EAEA,YAAY,YAAoB,8BAA8B,MAAM;AAChE,UAAM;AACN,SAAK,cAAc;AACnB,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAES,OAAO,SAA4C;AACxD,WAAO,MAAM,OAAO,EAAE,GAAG,SAAS,YAAY,KAAK,YAAY,CAAM;AAAA,EACzE;AAAA,EAEA,eAAe,EAAE,eAAe,gBAAgB,YAAY,aAAa,GAAM;AAC3E,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,aAAa;AAChC,WAAO,YAAY,UAAU;AAC7B,WAAO,YAAY,cAAc;AACjC,QAAI,KAAK,gCAAgC,iBAAiB,UAAa,aAAa,SAAS,GAAG;AAC5F,aAAO,eAAe,YAAY;AAAA,IACtC;AACA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAmB;AAC9B,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,UAAM,gBAAgB,OAAO,WAAW;AACxC,UAAM,aAAa,OAAO,WAAW;AACrC,UAAM,iBAAiB,OAAO,WAAW;AACzC,UAAM,iBAAiB,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAEhF,WAAO,EAAE,eAAe,YAAY,gBAAgB,eAAe;AAAA,EACvE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,YAAY,cAAc;AAC/C,SAA4B,QAAQ,gBAAgB;AAU7C,MAAe,oCAA0E,OAAsB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,UAA6D,8BAA8B,MAAM;AACzG,UAAM;AACN,QAAI,OAAO,aAAa,UAAU;AAC9B,WAAK,cAAc;AACnB,WAAK,YAAY;AAAA,IACrB,OAAO;AACH,WAAK,cAAc,SAAS;AAC5B,WAAK,YAAY,SAAS;AAAA,IAC9B;AACA,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAES,OAAO,SAAyD;AACrE,WAAO,MAAM,OAAO,EAAE,GAAG,SAAS,YAAY,KAAK,aAAa,UAAU,KAAK,UAAU,CAAM;AAAA,EACnG;AAAA,EAEA,eAAe,EAAE,eAAe,gBAAgB,YAAY,cAAc,SAAS,GAAM;AACrF,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,aAAa;AAChC,WAAO,YAAa,YAAY,KAAM,UAAU;AAChD,WAAO,YAAY,cAAc;AACjC,QAAI,KAAK,gCAAgC,iBAAiB,UAAa,aAAa,SAAS,GAAG;AAC5F,aAAO,eAAe,YAAY;AAAA,IACtC;AACA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAmB;AAC9B,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,UAAM,gBAAgB,OAAO,WAAW;AACxC,UAAM,mBAAmB,OAAO,WAAW;AAC3C,UAAM,iBAAiB,OAAO,WAAW;AACzC,UAAM,eAAe,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAE9E,UAAM,aAAa,mBAAmB;AACtC,UAAM,WAAW,SAAS,qBAAqB,EAAE;AACjD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { Diagnostic, MatterError, UnexpectedDataError } from "#general";
7
7
  import { GeneralStatusCode, SecureChannelStatusCode, SecureMessageType } from "#types";
8
- import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
8
+ import { SecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
9
9
  class ChannelStatusResponseError extends MatterError {
10
10
  constructor(message, generalStatusCode, protocolStatusCode) {
11
11
  super(
@@ -99,7 +99,7 @@ class SecureChannelMessenger {
99
99
  async #sendStatusReport(generalStatus, protocolStatus, requiresAck) {
100
100
  await this.exchange.send(
101
101
  SecureMessageType.StatusReport,
102
- TlvSecureChannelStatusMessage.encode({
102
+ SecureChannelStatusMessage.encode({
103
103
  generalStatus,
104
104
  protocolStatus
105
105
  }),
@@ -118,7 +118,7 @@ class SecureChannelMessenger {
118
118
  payload
119
119
  } = message;
120
120
  if (messageType !== SecureMessageType.StatusReport) return;
121
- const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
121
+ const { generalStatus, protocolId, protocolStatus } = SecureChannelStatusMessage.decode(payload);
122
122
  if (generalStatus !== GeneralStatusCode.Success) {
123
123
  throw new ChannelStatusResponseError(
124
124
  `Received general error status for protocol ${protocolId}${logHint ? ` (${logHint})` : ""}`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelMessenger.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -19,7 +19,7 @@ import { SecureSession } from "../session/SecureSession.js";
19
19
  import { CaseServer } from "../session/case/CaseServer.js";
20
20
  import { MaximumPasePairingErrorsReachedError } from "../session/pase/PaseServer.js";
21
21
  import { ChannelStatusResponseError, SecureChannelMessenger } from "./SecureChannelMessenger.js";
22
- import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
22
+ import { SecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
23
23
  const logger = Logger.get("SecureChannelProtocol");
24
24
  class StatusReportOnlySecureChannelProtocol {
25
25
  id = SECURE_CHANNEL_PROTOCOL_ID;
@@ -51,7 +51,7 @@ class StatusReportOnlySecureChannelProtocol {
51
51
  )}`
52
52
  );
53
53
  }
54
- const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
54
+ const { generalStatus, protocolId, protocolStatus } = SecureChannelStatusMessage.decode(payload);
55
55
  if (generalStatus !== GeneralStatusCode.Success) {
56
56
  throw new ChannelStatusResponseError(
57
57
  `Received general error status (${protocolId})`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelProtocol.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
7
7
  import { SecureChannelStatusCode } from "#types";
8
- export type SecureChannelStatusMessage = ProtocolStatusMessage<SecureChannelStatusCode>;
9
- export declare class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatusMessage> {
8
+ export type SecureChannelStatus = ProtocolStatusMessage<SecureChannelStatusCode>;
9
+ export declare class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatus> {
10
10
  }
11
- export declare const TlvSecureChannelStatusMessage: SecureChannelStatusMessageSchema;
11
+ export declare const SecureChannelStatusMessage: SecureChannelStatusMessageSchema;
12
12
  //# sourceMappingURL=SecureChannelStatusMessageSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecureChannelStatusMessageSchema.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAA8B,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAE7E,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAExF,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,0BAA0B,CAAC;CAAG;AAEhH,eAAO,MAAM,6BAA6B,kCAAmE,CAAC"}
1
+ {"version":3,"file":"SecureChannelStatusMessageSchema.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAA8B,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AAEjF,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,mBAAmB,CAAC;CAAG;AAEzG,eAAO,MAAM,0BAA0B,kCAAmE,CAAC"}
@@ -7,9 +7,9 @@ import { ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js"
7
7
  import { SECURE_CHANNEL_PROTOCOL_ID } from "#types";
8
8
  class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema {
9
9
  }
10
- const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema(SECURE_CHANNEL_PROTOCOL_ID);
10
+ const SecureChannelStatusMessage = new SecureChannelStatusMessageSchema(SECURE_CHANNEL_PROTOCOL_ID);
11
11
  export {
12
- SecureChannelStatusMessageSchema,
13
- TlvSecureChannelStatusMessage
12
+ SecureChannelStatusMessage,
13
+ SecureChannelStatusMessageSchema
14
14
  };
15
15
  //# sourceMappingURL=SecureChannelStatusMessageSchema.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelStatusMessageSchema.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgC,mCAAmC;AACnE,SAAS,kCAA2D;AAI7D,MAAM,yCAAyC,4BAAwD;AAAC;AAExG,MAAM,gCAAgC,IAAI,iCAAiC,0BAA0B;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgC,mCAAmC;AACnE,SAAS,kCAA2D;AAI7D,MAAM,yCAAyC,4BAAiD;AAAC;AAEjG,MAAM,6BAA6B,IAAI,iCAAiC,0BAA0B;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.16.0-alpha.0-20250810-5c91a95d2",
3
+ "version": "0.16.0-alpha.0-20250814-484abe647",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -40,13 +40,13 @@
40
40
  "#*": "./src/*"
41
41
  },
42
42
  "dependencies": {
43
- "@matter/general": "0.16.0-alpha.0-20250810-5c91a95d2",
44
- "@matter/model": "0.16.0-alpha.0-20250810-5c91a95d2",
45
- "@matter/types": "0.16.0-alpha.0-20250810-5c91a95d2"
43
+ "@matter/general": "0.16.0-alpha.0-20250814-484abe647",
44
+ "@matter/model": "0.16.0-alpha.0-20250814-484abe647",
45
+ "@matter/types": "0.16.0-alpha.0-20250814-484abe647"
46
46
  },
47
47
  "devDependencies": {
48
- "@matter/tools": "0.16.0-alpha.0-20250810-5c91a95d2",
49
- "@matter/testing": "0.16.0-alpha.0-20250810-5c91a95d2"
48
+ "@matter/tools": "0.16.0-alpha.0-20250814-484abe647",
49
+ "@matter/testing": "0.16.0-alpha.0-20250814-484abe647"
50
50
  },
51
51
  "files": [
52
52
  "dist/**/*",
@@ -7,7 +7,8 @@
7
7
  import { MAX_UDP_MESSAGE_SIZE } from "#general";
8
8
 
9
9
  /** @see {@link MatterSpecification.v11.Core} § 4.17.3.2 */
10
- export const BLE_MATTER_SERVICE_UUID = "fff6";
10
+ export const BLE_MATTER_SERVICE_UUID_SHORT = "fff6";
11
+ export const BLE_MATTER_SERVICE_UUID = "0000FFF6-0000-1000-8000-00805F9B34FB";
11
12
  export const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
12
13
  export const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
13
14
  export const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
@@ -41,7 +41,6 @@ export class MdnsServer {
41
41
  15 * 60 * 1000 /* 15mn - also matches maximum commissioning window time. */,
42
42
  );
43
43
  readonly #recordLastSentAsMulticastAnswer = new Map<string, number>();
44
- readonly #recordLastSentAsUnicastAnswer = new Map<string, number>();
45
44
 
46
45
  readonly #socket: MdnsSocket;
47
46
 
@@ -102,34 +101,23 @@ export class MdnsServer {
102
101
  const answersTimeSinceLastSent = answers.map(answer => ({
103
102
  timeSinceLastMultiCast:
104
103
  now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf)) ?? 0),
105
- timeSinceLastUniCast:
106
- now -
107
- (this.#recordLastSentAsUnicastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf, sourceIp)) ??
108
- 0),
109
- ttl: answer.ttl,
104
+ ttl: answer.ttl * 1000,
110
105
  }));
111
106
  if (
112
107
  uniCastResponse &&
113
- answersTimeSinceLastSent.some(
114
- ({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > (ttl / 4) * 1000,
115
- )
108
+ answersTimeSinceLastSent.some(({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4)
116
109
  ) {
117
110
  // If the query is for unicast response, still send as multicast if they were last sent as multicast longer then 1/4 of their ttl
118
111
  uniCastResponse = false;
119
112
  }
120
113
  if (!uniCastResponse) {
121
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast > 1000);
122
- if (answers.length === 0) continue; // Nothing to send
123
-
124
- answers.forEach(answer =>
125
- this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now),
114
+ answers = answers.filter(
115
+ (_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= 900, // The last time sent as multicast was more than 900 ms ago
126
116
  );
127
- } else {
128
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastUniCast > 1000);
129
117
  if (answers.length === 0) continue; // Nothing to send
130
118
 
131
119
  answers.forEach(answer =>
132
- this.#recordLastSentAsUnicastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf, sourceIp), now),
120
+ this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now),
133
121
  );
134
122
  }
135
123
 
@@ -203,29 +191,24 @@ export class MdnsServer {
203
191
  }),
204
192
  "Error happened when expiring MDNS announcements",
205
193
  ).catch(error => logger.error(error));
206
- await this.#resetServices(services);
194
+ await this.#resetServices();
207
195
  }
208
196
 
209
197
  async setRecordsGenerator(service: string, generator: MdnsServer.RecordGenerator) {
210
198
  await this.#records.clear();
211
199
  this.#recordLastSentAsMulticastAnswer.clear();
212
- this.#recordLastSentAsUnicastAnswer.clear();
213
200
  this.#recordsGenerator.set(service, generator);
214
201
  }
215
202
 
216
- async #resetServices(services: string[]) {
217
- for (const service of services) {
218
- await this.#records.delete(service);
219
- this.#recordLastSentAsMulticastAnswer.delete(service);
220
- this.#recordLastSentAsUnicastAnswer.delete(service);
221
- }
203
+ async #resetServices() {
204
+ await this.#records.clear();
205
+ this.#recordLastSentAsMulticastAnswer.clear();
222
206
  }
223
207
 
224
208
  async close() {
225
209
  this.#observers.close();
226
210
  await this.#records.close();
227
211
  this.#recordLastSentAsMulticastAnswer.clear();
228
- this.#recordLastSentAsUnicastAnswer.clear();
229
212
  }
230
213
 
231
214
  #getMulticastInterfacesForAnnounce() {
@@ -99,7 +99,7 @@ export class MdnsSocket {
99
99
  );
100
100
  }
101
101
 
102
- // New answer do not fit anymore, send out the message
102
+ // New answer does not fit anymore, send out the message
103
103
  await this.#send(chunk, intf, unicastDest);
104
104
 
105
105
  // Reset the message, length counter and included answers to count for next message
@@ -8,8 +8,15 @@ import { Message } from "../codec/MessageCodec.js";
8
8
  import { MessageExchange } from "./MessageExchange.js";
9
9
 
10
10
  export interface ProtocolHandler {
11
+ /** Protocol ID that this handler implements */
11
12
  readonly id: number;
13
+
14
+ /** Indicates whether this protocol requires a secure session to be established before it can be used */
12
15
  readonly requiresSecureSession: boolean;
16
+
17
+ /** Called on a new exchange that uses this protocol. The message is the first message of the exchange. */
13
18
  onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
19
+
20
+ /** Called when the protocol handler is no longer needed and can clean up resources. */
14
21
  close(): Promise<void>;
15
22
  }
@@ -5,33 +5,41 @@
5
5
  */
6
6
 
7
7
  import { DataReader, DataWriter, Endian } from "#general";
8
- import { GeneralStatusCode, Schema } from "#types";
8
+ import { GeneralStatusCode, Schema, VendorId } from "#types";
9
9
 
10
10
  export type ProtocolStatusMessage<T> = {
11
11
  generalStatus: GeneralStatusCode;
12
12
  protocolId: number;
13
+ vendorId: VendorId;
13
14
  protocolStatus: T;
14
15
  protocolData?: Uint8Array;
15
16
  };
16
17
 
17
18
  export abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessage<any>> extends Schema<T, Uint8Array> {
18
19
  #protocolId: number;
20
+ #vendorId: number;
19
21
  #protocolSpecificDataAllowed: boolean;
20
22
 
21
- constructor(protocolId: number, protocolSpecificDataAllowed = true) {
23
+ constructor(protocol: number | { protocolId: number; vendorId: number }, protocolSpecificDataAllowed = true) {
22
24
  super();
23
- this.#protocolId = protocolId;
25
+ if (typeof protocol === "number") {
26
+ this.#protocolId = protocol;
27
+ this.#vendorId = 0;
28
+ } else {
29
+ this.#protocolId = protocol.protocolId;
30
+ this.#vendorId = protocol.vendorId;
31
+ }
24
32
  this.#protocolSpecificDataAllowed = protocolSpecificDataAllowed;
25
33
  }
26
34
 
27
- override encode(message: Omit<T, "protocolId">): Uint8Array {
28
- return super.encode({ ...message, protocolId: this.#protocolId } as T);
35
+ override encode(message: Omit<T, "protocolId" | "vendorId">): Uint8Array {
36
+ return super.encode({ ...message, protocolId: this.#protocolId, vendorId: this.#vendorId } as T);
29
37
  }
30
38
 
31
- encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }: T) {
39
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData, vendorId }: T) {
32
40
  const writer = new DataWriter(Endian.Little);
33
41
  writer.writeUInt16(generalStatus);
34
- writer.writeUInt32(protocolId);
42
+ writer.writeUInt32((vendorId << 16) | protocolId);
35
43
  writer.writeUInt16(protocolStatus);
36
44
  if (this.#protocolSpecificDataAllowed && protocolData !== undefined && protocolData.length > 0) {
37
45
  writer.writeByteArray(protocolData);
@@ -42,10 +50,18 @@ export abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessag
42
50
  decodeInternal(bytes: Uint8Array) {
43
51
  const reader = new DataReader(bytes, Endian.Little);
44
52
  const generalStatus = reader.readUInt16();
45
- const protocolId = reader.readUInt32();
53
+ const vendorProtocolId = reader.readUInt32();
46
54
  const protocolStatus = reader.readUInt16();
47
- const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : undefined;
55
+ const protocolData = reader.remainingBytesCount > 0 ? reader.remainingBytes : undefined;
48
56
 
49
- return { generalStatus, protocolId, protocolStatus, remainingBytes } as unknown as T;
57
+ const protocolId = vendorProtocolId & 0xffff;
58
+ const vendorId = VendorId(vendorProtocolId >>> 16);
59
+ return {
60
+ generalStatus,
61
+ protocolId,
62
+ protocolStatus,
63
+ protocolData,
64
+ vendorId,
65
+ } as unknown as T;
50
66
  }
51
67
  }
@@ -8,7 +8,7 @@ import { Diagnostic, MatterError, UnexpectedDataError } from "#general";
8
8
  import { GeneralStatusCode, SecureChannelStatusCode, SecureMessageType, TlvSchema } from "#types";
9
9
  import { Message } from "../codec/MessageCodec.js";
10
10
  import { ExchangeSendOptions, MessageExchange } from "../protocol/MessageExchange.js";
11
- import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
11
+ import { SecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
12
12
 
13
13
  /** Error base Class for all errors related to the status response messages. */
14
14
  export class ChannelStatusResponseError extends MatterError {
@@ -150,7 +150,7 @@ export class SecureChannelMessenger {
150
150
  ) {
151
151
  await this.exchange.send(
152
152
  SecureMessageType.StatusReport,
153
- TlvSecureChannelStatusMessage.encode({
153
+ SecureChannelStatusMessage.encode({
154
154
  generalStatus,
155
155
  protocolStatus,
156
156
  }),
@@ -171,7 +171,7 @@ export class SecureChannelMessenger {
171
171
  } = message;
172
172
  if (messageType !== SecureMessageType.StatusReport) return;
173
173
 
174
- const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
174
+ const { generalStatus, protocolId, protocolStatus } = SecureChannelStatusMessage.decode(payload);
175
175
  if (generalStatus !== GeneralStatusCode.Success) {
176
176
  throw new ChannelStatusResponseError(
177
177
  `Received general error status for protocol ${protocolId}${logHint ? ` (${logHint})` : ""}`,
@@ -23,7 +23,7 @@ import { SecureSession } from "../session/SecureSession.js";
23
23
  import { CaseServer } from "../session/case/CaseServer.js";
24
24
  import { MaximumPasePairingErrorsReachedError, PaseServer } from "../session/pase/PaseServer.js";
25
25
  import { ChannelStatusResponseError, SecureChannelMessenger } from "./SecureChannelMessenger.js";
26
- import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
26
+ import { SecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
27
27
 
28
28
  const logger = Logger.get("SecureChannelProtocol");
29
29
 
@@ -62,7 +62,7 @@ export class StatusReportOnlySecureChannelProtocol implements ProtocolHandler {
62
62
  );
63
63
  }
64
64
 
65
- const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
65
+ const { generalStatus, protocolId, protocolStatus } = SecureChannelStatusMessage.decode(payload);
66
66
  if (generalStatus !== GeneralStatusCode.Success) {
67
67
  throw new ChannelStatusResponseError(
68
68
  `Received general error status (${protocolId})`,
@@ -7,8 +7,8 @@
7
7
  import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
8
8
  import { SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode } from "#types";
9
9
 
10
- export type SecureChannelStatusMessage = ProtocolStatusMessage<SecureChannelStatusCode>;
10
+ export type SecureChannelStatus = ProtocolStatusMessage<SecureChannelStatusCode>;
11
11
 
12
- export class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatusMessage> {}
12
+ export class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatus> {}
13
13
 
14
- export const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema(SECURE_CHANNEL_PROTOCOL_ID);
14
+ export const SecureChannelStatusMessage = new SecureChannelStatusMessageSchema(SECURE_CHANNEL_PROTOCOL_ID);