@matter/protocol 0.13.0-alpha.0-20250318-c1aa38b08 → 0.13.0-alpha.0-20250323-770919c6a
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.
- package/dist/cjs/ble/BtpSessionHandler.js +2 -2
- package/dist/cjs/ble/BtpSessionHandler.js.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.d.ts +1 -0
- package/dist/cjs/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.js.map +1 -1
- package/dist/cjs/certificate/CertificateManager.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificateManager.js +21 -19
- package/dist/cjs/certificate/CertificateManager.js.map +1 -1
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/ClusterClient.js +3 -0
- package/dist/cjs/cluster/client/ClusterClient.js.map +1 -1
- package/dist/cjs/cluster/server/AttributeServer.d.ts.map +1 -1
- package/dist/cjs/cluster/server/AttributeServer.js +5 -5
- package/dist/cjs/cluster/server/AttributeServer.js.map +1 -1
- package/dist/cjs/cluster/server/CommandServer.js +2 -2
- package/dist/cjs/cluster/server/CommandServer.js.map +1 -1
- package/dist/cjs/common/FailsafeContext.js +1 -1
- package/dist/cjs/common/FailsafeContext.js.map +1 -1
- package/dist/cjs/endpoint/EndpointStructureLogger.js +1 -1
- package/dist/cjs/endpoint/EndpointStructureLogger.js.map +1 -1
- package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/cjs/events/OccurrenceManager.js +2 -2
- package/dist/cjs/events/OccurrenceManager.js.map +1 -1
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts +21 -4
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -1
- package/dist/cjs/interaction/AttributeDataDecoder.js +41 -2
- package/dist/cjs/interaction/AttributeDataDecoder.js.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.js +3 -3
- package/dist/cjs/interaction/AttributeDataEncoder.js.map +1 -1
- package/dist/cjs/interaction/DecodedDataReport.d.ts +4 -2
- package/dist/cjs/interaction/DecodedDataReport.d.ts.map +1 -1
- package/dist/cjs/interaction/DecodedDataReport.js +6 -2
- package/dist/cjs/interaction/DecodedDataReport.js.map +1 -1
- package/dist/cjs/interaction/EventDataDecoder.d.ts +15 -3
- package/dist/cjs/interaction/EventDataDecoder.d.ts.map +1 -1
- package/dist/cjs/interaction/EventDataDecoder.js +39 -2
- package/dist/cjs/interaction/EventDataDecoder.js.map +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts +44 -4
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +71 -18
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +7 -4
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionServer.js +7 -7
- package/dist/cjs/interaction/InteractionServer.js.map +1 -1
- package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -1
- package/dist/cjs/interaction/ServerSubscription.js +1 -1
- package/dist/cjs/interaction/ServerSubscription.js.map +1 -1
- package/dist/cjs/mdns/MdnsScanner.js +2 -2
- package/dist/cjs/mdns/MdnsScanner.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.d.ts +15 -3
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +17 -6
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +47 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +136 -136
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.js +4 -4
- package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts +2 -2
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +6 -1
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ChannelManager.js +11 -4
- package/dist/cjs/protocol/ChannelManager.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +1 -2
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/ble/BtpSessionHandler.js +2 -2
- package/dist/esm/ble/BtpSessionHandler.js.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.d.ts +1 -0
- package/dist/esm/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
- package/dist/esm/certificate/CertificateManager.d.ts.map +1 -1
- package/dist/esm/certificate/CertificateManager.js +22 -19
- package/dist/esm/certificate/CertificateManager.js.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.js +3 -0
- package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
- package/dist/esm/cluster/server/AttributeServer.d.ts.map +1 -1
- package/dist/esm/cluster/server/AttributeServer.js +15 -6
- package/dist/esm/cluster/server/AttributeServer.js.map +1 -1
- package/dist/esm/cluster/server/CommandServer.js +3 -3
- package/dist/esm/cluster/server/CommandServer.js.map +1 -1
- package/dist/esm/common/FailsafeContext.js +1 -1
- package/dist/esm/common/FailsafeContext.js.map +1 -1
- package/dist/esm/endpoint/EndpointStructureLogger.js +1 -1
- package/dist/esm/endpoint/EndpointStructureLogger.js.map +1 -1
- package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/esm/events/OccurrenceManager.js +3 -2
- package/dist/esm/events/OccurrenceManager.js.map +1 -1
- package/dist/esm/interaction/AttributeDataDecoder.d.ts +21 -4
- package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -1
- package/dist/esm/interaction/AttributeDataDecoder.js +41 -2
- package/dist/esm/interaction/AttributeDataDecoder.js.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.js +4 -4
- package/dist/esm/interaction/AttributeDataEncoder.js.map +1 -1
- package/dist/esm/interaction/DecodedDataReport.d.ts +4 -2
- package/dist/esm/interaction/DecodedDataReport.d.ts.map +1 -1
- package/dist/esm/interaction/DecodedDataReport.js +12 -4
- package/dist/esm/interaction/DecodedDataReport.js.map +1 -1
- package/dist/esm/interaction/EventDataDecoder.d.ts +15 -3
- package/dist/esm/interaction/EventDataDecoder.d.ts.map +1 -1
- package/dist/esm/interaction/EventDataDecoder.js +39 -2
- package/dist/esm/interaction/EventDataDecoder.js.map +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts +44 -4
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +74 -18
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +8 -4
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/InteractionServer.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionServer.js +17 -8
- package/dist/esm/interaction/InteractionServer.js.map +1 -1
- package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -1
- package/dist/esm/interaction/ServerSubscription.js +2 -1
- package/dist/esm/interaction/ServerSubscription.js.map +1 -1
- package/dist/esm/mdns/MdnsScanner.js +2 -2
- package/dist/esm/mdns/MdnsScanner.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.d.ts +15 -3
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +18 -6
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +47 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +147 -137
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.js +5 -5
- package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts +2 -2
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +7 -2
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/esm/protocol/ChannelManager.js +11 -4
- package/dist/esm/protocol/ChannelManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +2 -2
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/package.json +6 -6
- package/src/ble/BtpSessionHandler.ts +2 -2
- package/src/certificate/CertificateAuthority.ts +1 -0
- package/src/certificate/CertificateManager.ts +22 -19
- package/src/cluster/client/ClusterClient.ts +3 -0
- package/src/cluster/server/AttributeServer.ts +15 -6
- package/src/cluster/server/CommandServer.ts +3 -3
- package/src/common/FailsafeContext.ts +1 -1
- package/src/endpoint/EndpointStructureLogger.ts +1 -1
- package/src/events/OccurrenceManager.ts +3 -2
- package/src/interaction/AttributeDataDecoder.ts +67 -7
- package/src/interaction/AttributeDataEncoder.ts +4 -4
- package/src/interaction/DecodedDataReport.ts +24 -5
- package/src/interaction/EventDataDecoder.ts +57 -5
- package/src/interaction/InteractionClient.ts +112 -18
- package/src/interaction/InteractionMessenger.ts +8 -4
- package/src/interaction/InteractionServer.ts +19 -9
- package/src/interaction/ServerSubscription.ts +2 -1
- package/src/mdns/MdnsScanner.ts +2 -2
- package/src/peer/ControllerCommissioner.ts +32 -7
- package/src/peer/ControllerCommissioningFlow.ts +160 -146
- package/src/peer/ControllerDiscovery.ts +5 -5
- package/src/peer/PeerSet.ts +7 -2
- package/src/protocol/ChannelManager.ts +11 -4
- package/src/protocol/ExchangeManager.ts +2 -2
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { anyPromise, ClassExtends, Logger, NoResponseTimeoutError, serverAddressToString } from "#general";
|
|
7
|
+
import { anyPromise, ClassExtends, Diagnostic, Logger, NoResponseTimeoutError, serverAddressToString } from "#general";
|
|
8
8
|
import { NodeId } from "#types";
|
|
9
9
|
import {
|
|
10
10
|
AddressTypeFromDevice,
|
|
@@ -40,7 +40,7 @@ export class ControllerDiscovery {
|
|
|
40
40
|
identifier: CommissionableDeviceIdentifiers,
|
|
41
41
|
timeoutSeconds = 30,
|
|
42
42
|
): Promise<CommissionableDevice[]> {
|
|
43
|
-
logger.info(`Start Discovering devices using identifier ${
|
|
43
|
+
logger.info(`Start Discovering devices using identifier ${Diagnostic.json(identifier)} ...`);
|
|
44
44
|
|
|
45
45
|
const scanResults = scanners.map(async scanner => {
|
|
46
46
|
const foundDevices = await scanner.findCommissionableDevices(
|
|
@@ -48,10 +48,10 @@ export class ControllerDiscovery {
|
|
|
48
48
|
timeoutSeconds,
|
|
49
49
|
scanner.type === "ble", // Force rediscovery for BLE
|
|
50
50
|
);
|
|
51
|
-
logger.info(`Found ${foundDevices.length} devices using identifier ${
|
|
51
|
+
logger.info(`Found ${foundDevices.length} devices using identifier ${Diagnostic.json(identifier)}`);
|
|
52
52
|
if (foundDevices.length === 0) {
|
|
53
53
|
throw new CommissioningError(
|
|
54
|
-
`No device discovered using identifier ${
|
|
54
|
+
`No device discovered using identifier ${Diagnostic.json(
|
|
55
55
|
identifier,
|
|
56
56
|
)}! Please check that the relevant device is online.`,
|
|
57
57
|
);
|
|
@@ -60,7 +60,7 @@ export class ControllerDiscovery {
|
|
|
60
60
|
const devices = foundDevices.filter(device => device.addresses.length > 0);
|
|
61
61
|
if (devices.length === 0) {
|
|
62
62
|
throw new CommissioningError(
|
|
63
|
-
`Device discovered using identifier ${
|
|
63
|
+
`Device discovered using identifier ${Diagnostic.json(
|
|
64
64
|
identifier,
|
|
65
65
|
)}, but no Network addresses discovered.`,
|
|
66
66
|
);
|
package/src/peer/PeerSet.ts
CHANGED
|
@@ -36,7 +36,7 @@ import { SessionManager } from "#session/SessionManager.js";
|
|
|
36
36
|
import { SECURE_CHANNEL_PROTOCOL_ID } from "@matter/types";
|
|
37
37
|
import { ChannelManager } from "../protocol/ChannelManager.js";
|
|
38
38
|
import { ChannelNotConnectedError, ExchangeManager, MessageChannel } from "../protocol/ExchangeManager.js";
|
|
39
|
-
import { ReconnectableExchangeProvider } from "../protocol/ExchangeProvider.js";
|
|
39
|
+
import { DedicatedChannelExchangeProvider, ReconnectableExchangeProvider } from "../protocol/ExchangeProvider.js";
|
|
40
40
|
import { RetransmissionLimitReachedError } from "../protocol/MessageExchange.js";
|
|
41
41
|
import { ControllerDiscovery, DiscoveryError, PairRetransmissionLimitReachedError } from "./ControllerDiscovery.js";
|
|
42
42
|
import { InteractionQueue } from "./InteractionQueue.js";
|
|
@@ -272,7 +272,11 @@ export class PeerSet implements ImmutableSet<OperationalPeer>, ObservableSet<Ope
|
|
|
272
272
|
/**
|
|
273
273
|
* Obtain an exchange provider for the designated peer.
|
|
274
274
|
*/
|
|
275
|
-
async exchangeProviderFor(
|
|
275
|
+
async exchangeProviderFor(addressOrChannel: PeerAddress | MessageChannel, discoveryOptions?: DiscoveryOptions) {
|
|
276
|
+
if (addressOrChannel instanceof MessageChannel) {
|
|
277
|
+
return new DedicatedChannelExchangeProvider(this.#exchanges, addressOrChannel);
|
|
278
|
+
}
|
|
279
|
+
const address: PeerAddress = addressOrChannel;
|
|
276
280
|
let initiallyConnected = this.#channels.hasChannel(address);
|
|
277
281
|
return new ReconnectableExchangeProvider(this.#exchanges, this.#channels, address, async () => {
|
|
278
282
|
if (!initiallyConnected && !this.#channels.hasChannel(address)) {
|
|
@@ -622,6 +626,7 @@ export class PeerSet implements ImmutableSet<OperationalPeer>, ObservableSet<Ope
|
|
|
622
626
|
discoveryData?: DiscoveryData,
|
|
623
627
|
expectedProcessingTimeMs?: number,
|
|
624
628
|
) {
|
|
629
|
+
logger.debug(`Pair with ${address} at ${serverAddressToString(operationalServerAddress)}`);
|
|
625
630
|
const { ip, port } = operationalServerAddress;
|
|
626
631
|
// Do CASE pairing
|
|
627
632
|
const isIpv6Address = isIPv6(ip);
|
|
@@ -69,7 +69,9 @@ export class ChannelManager {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
hasChannel(address: PeerAddress) {
|
|
72
|
-
return !!this.#channels
|
|
72
|
+
return !!this.#channels
|
|
73
|
+
.get(address)
|
|
74
|
+
?.filter(channel => !channel.closed && !channel.session.closingAfterExchangeFinished).length;
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
getChannel(address: PeerAddress, session?: Session) {
|
|
@@ -77,6 +79,7 @@ export class ChannelManager {
|
|
|
77
79
|
if (session !== undefined) {
|
|
78
80
|
results = results.filter(channel => channel.session.id === session.id);
|
|
79
81
|
}
|
|
82
|
+
results = results.filter(channel => !channel.closed && !channel.session.closingAfterExchangeFinished);
|
|
80
83
|
if (results.length === 0)
|
|
81
84
|
throw new NoChannelError(
|
|
82
85
|
`Can't find a channel to ${PeerAddress(address)}${session !== undefined ? ` session ${session.id}` : ""}`,
|
|
@@ -131,6 +134,7 @@ export class ChannelManager {
|
|
|
131
134
|
async () => void this.#paseChannels.delete(session),
|
|
132
135
|
);
|
|
133
136
|
this.#paseChannels.set(session, msgChannel);
|
|
137
|
+
session.destroyed.on(() => msgChannel.close());
|
|
134
138
|
return msgChannel;
|
|
135
139
|
}
|
|
136
140
|
|
|
@@ -154,9 +158,12 @@ export class ChannelManager {
|
|
|
154
158
|
}
|
|
155
159
|
|
|
156
160
|
// Need to create
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
161
|
+
const msgChannel = new MessageChannel(byteArrayChannel, session, async () =>
|
|
162
|
+
this.removeChannel(address, session),
|
|
163
|
+
);
|
|
164
|
+
await this.setChannel(address, msgChannel);
|
|
165
|
+
session.destroyed.on(() => msgChannel.close());
|
|
166
|
+
return msgChannel;
|
|
160
167
|
}
|
|
161
168
|
|
|
162
169
|
async close() {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import {
|
|
8
8
|
Channel,
|
|
9
9
|
Crypto,
|
|
10
|
+
Diagnostic,
|
|
10
11
|
Environment,
|
|
11
12
|
Environmental,
|
|
12
13
|
ImplementationError,
|
|
@@ -48,7 +49,6 @@ export class MessageChannel implements Channel<Message> {
|
|
|
48
49
|
closeCallback?: () => Promise<void>,
|
|
49
50
|
) {
|
|
50
51
|
this.#closeCallback = closeCallback;
|
|
51
|
-
this.session.destroyed.on(() => this.close());
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
set closeCallback(callback: () => Promise<void>) {
|
|
@@ -315,7 +315,7 @@ export class ExchangeManager {
|
|
|
315
315
|
logger.info(
|
|
316
316
|
`Discarding unexpected message ${messageId} for protocol ${
|
|
317
317
|
message.payloadHeader.protocolId
|
|
318
|
-
}, exchangeIndex ${exchangeIndex} and sessionId ${session.id} on channel ${channel.name}: ${
|
|
318
|
+
}, exchangeIndex ${exchangeIndex} and sessionId ${session.id} on channel ${channel.name}: ${Diagnostic.json(message)}`,
|
|
319
319
|
);
|
|
320
320
|
}
|
|
321
321
|
}
|