@matter/protocol 0.13.0-alpha.0-20250311-3eb0af5f2 → 0.13.0-alpha.0-20250322-f085fa576
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/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/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/common/FailsafeContext.js +1 -1
- package/dist/cjs/common/FailsafeContext.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 +40 -1
- package/dist/cjs/interaction/AttributeDataDecoder.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 +65 -12
- 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 +5 -2
- 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 +2 -2
- package/dist/cjs/interaction/InteractionServer.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 +133 -133
- package/dist/cjs/peer/ControllerCommissioningFlow.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 +0 -1
- package/dist/cjs/protocol/ExchangeManager.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/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/common/FailsafeContext.js +1 -1
- package/dist/esm/common/FailsafeContext.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 +40 -1
- package/dist/esm/interaction/AttributeDataDecoder.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 +67 -12
- 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 +6 -2
- 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 +12 -3
- package/dist/esm/interaction/InteractionServer.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 +17 -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 +133 -133
- package/dist/esm/peer/ControllerCommissioningFlow.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 +0 -1
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/package.json +6 -6
- package/src/certificate/CertificateAuthority.ts +1 -0
- package/src/cluster/client/ClusterClient.ts +3 -0
- package/src/common/FailsafeContext.ts +1 -1
- package/src/interaction/AttributeDataDecoder.ts +66 -6
- package/src/interaction/DecodedDataReport.ts +24 -5
- package/src/interaction/EventDataDecoder.ts +57 -5
- package/src/interaction/InteractionClient.ts +105 -12
- package/src/interaction/InteractionMessenger.ts +6 -2
- package/src/interaction/InteractionServer.ts +14 -4
- package/src/peer/ControllerCommissioner.ts +30 -6
- package/src/peer/ControllerCommissioningFlow.ts +144 -140
- package/src/peer/PeerSet.ts +7 -2
- package/src/protocol/ChannelManager.ts +11 -4
- package/src/protocol/ExchangeManager.ts +0 -1
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() {
|