@matter/protocol 0.13.0 → 0.13.1-alpha.0-20250501-80c86b03e
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/action/response/ReadResult.d.ts +4 -0
- package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeResponse.d.ts +1 -1
- package/dist/cjs/action/server/AttributeResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeResponse.js +37 -17
- package/dist/cjs/action/server/AttributeResponse.js.map +2 -2
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +37 -1
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionEndpointStructure.js +34 -15
- package/dist/cjs/interaction/InteractionEndpointStructure.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/ServerSubscription.d.ts +1 -2
- package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -1
- package/dist/cjs/interaction/ServerSubscription.js +20 -20
- package/dist/cjs/interaction/ServerSubscription.js.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts +2 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +2 -1
- package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
- package/dist/cjs/interaction/index.d.ts +0 -1
- package/dist/cjs/interaction/index.d.ts.map +1 -1
- package/dist/cjs/interaction/index.js +0 -1
- package/dist/cjs/interaction/index.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +7 -2
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/ProtocolHandler.d.ts +1 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +1 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.d.ts +1 -0
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +1 -0
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts +1 -0
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +1 -0
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/action/response/ReadResult.d.ts +4 -0
- package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeResponse.d.ts +1 -1
- package/dist/esm/action/server/AttributeResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeResponse.js +37 -17
- package/dist/esm/action/server/AttributeResponse.js.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts +37 -1
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionEndpointStructure.js +21 -7
- package/dist/esm/interaction/InteractionEndpointStructure.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +1 -1
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/ServerSubscription.d.ts +1 -2
- package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -1
- package/dist/esm/interaction/ServerSubscription.js +4 -4
- package/dist/esm/interaction/ServerSubscription.js.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts +2 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +2 -1
- package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
- package/dist/esm/interaction/index.d.ts +0 -1
- package/dist/esm/interaction/index.d.ts.map +1 -1
- package/dist/esm/interaction/index.js +0 -1
- package/dist/esm/interaction/index.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +7 -2
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/ProtocolHandler.d.ts +1 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts +1 -0
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +1 -0
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/session/case/CaseServer.d.ts +1 -0
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
- package/dist/esm/session/case/CaseServer.js +1 -0
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts +1 -0
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +1 -0
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/action/response/ReadResult.ts +4 -0
- package/src/action/server/AttributeResponse.ts +40 -17
- package/src/interaction/AttributeDataEncoder.ts +1 -1
- package/src/interaction/InteractionEndpointStructure.ts +62 -12
- package/src/interaction/InteractionMessenger.ts +1 -1
- package/src/interaction/ServerSubscription.ts +5 -5
- package/src/interaction/SubscriptionClient.ts +2 -2
- package/src/interaction/index.ts +0 -1
- package/src/protocol/ExchangeManager.ts +15 -2
- package/src/protocol/ProtocolHandler.ts +1 -0
- package/src/securechannel/SecureChannelProtocol.ts +1 -0
- package/src/session/case/CaseServer.ts +1 -0
- package/src/session/pase/PaseServer.ts +1 -0
- package/dist/cjs/interaction/InteractionServer.d.ts +0 -132
- package/dist/cjs/interaction/InteractionServer.d.ts.map +0 -1
- package/dist/cjs/interaction/InteractionServer.js +0 -1166
- package/dist/cjs/interaction/InteractionServer.js.map +0 -6
- package/dist/esm/interaction/InteractionServer.d.ts +0 -132
- package/dist/esm/interaction/InteractionServer.d.ts.map +0 -1
- package/dist/esm/interaction/InteractionServer.js +0 -1177
- package/dist/esm/interaction/InteractionServer.js.map +0 -6
- package/src/interaction/InteractionServer.ts +0 -1649
|
@@ -238,7 +238,7 @@ export class ExchangeManager {
|
|
|
238
238
|
|
|
239
239
|
let isDuplicate;
|
|
240
240
|
try {
|
|
241
|
-
session
|
|
241
|
+
session.updateMessageCounter(packet.header.messageId, packet.header.sourceNodeId);
|
|
242
242
|
isDuplicate = false;
|
|
243
243
|
} catch (e) {
|
|
244
244
|
DuplicateMessageError.accept(e);
|
|
@@ -271,7 +271,20 @@ export class ExchangeManager {
|
|
|
271
271
|
|
|
272
272
|
const protocolHandler = this.#protocols.get(message.payloadHeader.protocolId);
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
// Having a "Secure Session" means it is encrypted in our internal working
|
|
275
|
+
// TODO When adding Group sessions, we need to check how to adjust that handling
|
|
276
|
+
if (protocolHandler !== undefined && protocolHandler.requiresSecureSession !== session.isSecure) {
|
|
277
|
+
logger.debug(
|
|
278
|
+
`Ignoring message ${messageId} for protocol ${message.payloadHeader.protocolId} and exchange id ${message.payloadHeader.exchangeId} on channel ${channel.name} because not matching the security requirements.`,
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (
|
|
283
|
+
protocolHandler !== undefined &&
|
|
284
|
+
message.payloadHeader.isInitiatorMessage &&
|
|
285
|
+
!isDuplicate &&
|
|
286
|
+
protocolHandler.requiresSecureSession === session.isSecure
|
|
287
|
+
) {
|
|
275
288
|
if (
|
|
276
289
|
message.payloadHeader.messageType == SecureMessageType.StandaloneAck &&
|
|
277
290
|
!message.payloadHeader.requiresAck
|
|
@@ -9,6 +9,7 @@ import { MessageExchange } from "./MessageExchange.js";
|
|
|
9
9
|
|
|
10
10
|
export interface ProtocolHandler {
|
|
11
11
|
readonly id: number;
|
|
12
|
+
readonly requiresSecureSession: boolean;
|
|
12
13
|
onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
|
|
13
14
|
close(): Promise<void>;
|
|
14
15
|
}
|
|
@@ -29,6 +29,7 @@ const logger = Logger.get("SecureChannelProtocol");
|
|
|
29
29
|
|
|
30
30
|
export class StatusReportOnlySecureChannelProtocol implements ProtocolHandler {
|
|
31
31
|
readonly id = SECURE_CHANNEL_PROTOCOL_ID;
|
|
32
|
+
readonly requiresSecureSession = false;
|
|
32
33
|
|
|
33
34
|
async onNewExchange(exchange: MessageExchange, message: Message) {
|
|
34
35
|
const messageType = message.payloadHeader.messageType;
|
|
@@ -34,6 +34,7 @@ export class MaximumPasePairingErrorsReachedError extends MatterFlowError {}
|
|
|
34
34
|
|
|
35
35
|
export class PaseServer implements ProtocolHandler {
|
|
36
36
|
readonly id = SECURE_CHANNEL_PROTOCOL_ID;
|
|
37
|
+
readonly requiresSecureSession = false;
|
|
37
38
|
|
|
38
39
|
#pairingTimer: Timer | undefined;
|
|
39
40
|
#pairingErrors = 0;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Observable, ServerAddressIp } from "#general";
|
|
7
|
-
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
8
|
-
import { SessionManager } from "#session/SessionManager.js";
|
|
9
|
-
import { AttributeId, ClusterId, CommandId, EndpointNumber, EventId, NodeId, StatusCode, TlvAttributePath, TlvClusterPath, TlvEventFilter, TlvEventPath, TypeFromSchema } from "#types";
|
|
10
|
-
import { AnyAttributeServer, AttributeServer } from "../cluster/server/AttributeServer.js";
|
|
11
|
-
import { CommandServer } from "../cluster/server/CommandServer.js";
|
|
12
|
-
import { AnyEventServer } from "../cluster/server/EventServer.js";
|
|
13
|
-
import { Message } from "../codec/MessageCodec.js";
|
|
14
|
-
import { EndpointInterface } from "../endpoint/EndpointInterface.js";
|
|
15
|
-
import { MessageExchange } from "../protocol/MessageExchange.js";
|
|
16
|
-
import { ProtocolHandler } from "../protocol/ProtocolHandler.js";
|
|
17
|
-
import { SecureSession } from "../session/SecureSession.js";
|
|
18
|
-
import { DataReportPayloadIterator } from "./AttributeDataEncoder.js";
|
|
19
|
-
import { InteractionEndpointStructure } from "./InteractionEndpointStructure.js";
|
|
20
|
-
import { DataReport, InteractionRecipient, InteractionServerMessenger, InvokeRequest, ReadRequest, SubscribeRequest, TimedRequest, WriteRequest, WriteResponse } from "./InteractionMessenger.js";
|
|
21
|
-
import { ServerSubscription } from "./ServerSubscription.js";
|
|
22
|
-
import { ServerSubscriptionConfig } from "./SubscriptionOptions.js";
|
|
23
|
-
export interface PeerSubscription {
|
|
24
|
-
subscriptionId: number;
|
|
25
|
-
peerAddress: PeerAddress;
|
|
26
|
-
minIntervalFloorSeconds: number;
|
|
27
|
-
maxIntervalCeilingSeconds: number;
|
|
28
|
-
attributeRequests?: TypeFromSchema<typeof TlvAttributePath>[];
|
|
29
|
-
eventRequests?: TypeFromSchema<typeof TlvEventPath>[];
|
|
30
|
-
isFabricFiltered: boolean;
|
|
31
|
-
maxInterval: number;
|
|
32
|
-
sendInterval: number;
|
|
33
|
-
operationalAddress?: ServerAddressIp;
|
|
34
|
-
}
|
|
35
|
-
export interface CommandPath {
|
|
36
|
-
nodeId?: NodeId;
|
|
37
|
-
endpointId: EndpointNumber;
|
|
38
|
-
clusterId: ClusterId;
|
|
39
|
-
commandId: CommandId;
|
|
40
|
-
}
|
|
41
|
-
export interface AttributePath {
|
|
42
|
-
nodeId?: NodeId;
|
|
43
|
-
endpointId: EndpointNumber;
|
|
44
|
-
clusterId: ClusterId;
|
|
45
|
-
attributeId: AttributeId;
|
|
46
|
-
}
|
|
47
|
-
export interface EventPath {
|
|
48
|
-
nodeId?: NodeId;
|
|
49
|
-
endpointId: EndpointNumber;
|
|
50
|
-
clusterId: ClusterId;
|
|
51
|
-
eventId: EventId;
|
|
52
|
-
isUrgent?: boolean;
|
|
53
|
-
}
|
|
54
|
-
export interface AttributeWithPath {
|
|
55
|
-
path: AttributePath;
|
|
56
|
-
attribute: AnyAttributeServer<any>;
|
|
57
|
-
}
|
|
58
|
-
export interface EventWithPath {
|
|
59
|
-
path: EventPath;
|
|
60
|
-
event: AnyEventServer<any, any>;
|
|
61
|
-
}
|
|
62
|
-
export interface CommandWithPath {
|
|
63
|
-
path: CommandPath;
|
|
64
|
-
command: CommandServer<any, any>;
|
|
65
|
-
}
|
|
66
|
-
export declare function genericElementPathToId(endpointId: EndpointNumber | undefined, clusterId: ClusterId | undefined, elementId: number | undefined): string;
|
|
67
|
-
export declare function commandPathToId({ endpointId, clusterId, commandId }: CommandPath): string;
|
|
68
|
-
export declare function attributePathToId({ endpointId, clusterId, attributeId }: TypeFromSchema<typeof TlvAttributePath>): string;
|
|
69
|
-
export declare function eventPathToId({ endpointId, clusterId, eventId }: TypeFromSchema<typeof TlvEventPath>): string;
|
|
70
|
-
export declare function clusterPathToId({ nodeId, endpointId, clusterId }: TypeFromSchema<typeof TlvClusterPath>): string;
|
|
71
|
-
export declare function validateReadAttributesPath(path: TypeFromSchema<typeof TlvAttributePath>, isGroupSession?: boolean): void;
|
|
72
|
-
export declare function validateReadEventPath(path: TypeFromSchema<typeof TlvEventPath>, isGroupSession?: boolean): void;
|
|
73
|
-
/**
|
|
74
|
-
* Interfaces {@link InteractionServer} with other components.
|
|
75
|
-
*/
|
|
76
|
-
export interface InteractionContext {
|
|
77
|
-
readonly sessions: SessionManager;
|
|
78
|
-
readonly structure: InteractionEndpointStructure;
|
|
79
|
-
readonly subscriptionOptions?: Partial<ServerSubscriptionConfig>;
|
|
80
|
-
readonly maxPathsPerInvoke?: number;
|
|
81
|
-
initiateExchange(address: PeerAddress, protocolId: number): MessageExchange;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Translates interactions from the Matter protocol to matter.js APIs.
|
|
85
|
-
*/
|
|
86
|
-
export declare class InteractionServer implements ProtocolHandler, InteractionRecipient {
|
|
87
|
-
#private;
|
|
88
|
-
readonly id = 1;
|
|
89
|
-
constructor(context: InteractionContext);
|
|
90
|
-
protected get isClosing(): boolean;
|
|
91
|
-
get maxPathsPerInvoke(): number;
|
|
92
|
-
get subscriptionEstablishmentStarted(): Observable<[peerAddress: PeerAddress], void>;
|
|
93
|
-
onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
|
|
94
|
-
get clientHandler(): ProtocolHandler | undefined;
|
|
95
|
-
set clientHandler(clientHandler: ProtocolHandler);
|
|
96
|
-
handleReadRequest(exchange: MessageExchange, readRequest: ReadRequest, message: Message): Promise<{
|
|
97
|
-
dataReport: DataReport;
|
|
98
|
-
payload?: DataReportPayloadIterator;
|
|
99
|
-
}>;
|
|
100
|
-
protected readAttribute(_path: AttributePath, attribute: AnyAttributeServer<any>, exchange: MessageExchange, isFabricFiltered: boolean, message: Message, offline?: boolean): {
|
|
101
|
-
version: number;
|
|
102
|
-
value: any;
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* Reads the attributes for the given endpoint.
|
|
106
|
-
* This can currently only be used for subscriptions because errors are ignored!
|
|
107
|
-
*/
|
|
108
|
-
protected readEndpointAttributesForSubscription(attributes: {
|
|
109
|
-
path: AttributePath;
|
|
110
|
-
attribute: AnyAttributeServer<any>;
|
|
111
|
-
}[], exchange: MessageExchange, isFabricFiltered: boolean, message: Message, offline?: boolean): {
|
|
112
|
-
path: AttributePath;
|
|
113
|
-
attribute: AnyAttributeServer<unknown>;
|
|
114
|
-
value: any;
|
|
115
|
-
version: number;
|
|
116
|
-
}[];
|
|
117
|
-
protected readEvent(_path: EventPath, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined, event: AnyEventServer<any, any>, exchange: MessageExchange, isFabricFiltered: boolean, message: Message): Promise<import("../index.js").NumberedOccurrence[]>;
|
|
118
|
-
handleWriteRequest(exchange: MessageExchange, { suppressResponse, timedRequest, writeRequests, interactionModelRevision, moreChunkedMessages }: WriteRequest, message: Message): Promise<WriteResponse>;
|
|
119
|
-
protected writeAttribute(_path: AttributePath, attribute: AttributeServer<any>, value: any, exchange: MessageExchange, message: Message, _endpoint: EndpointInterface, _receivedWithinTimedInteraction?: boolean, isListWrite?: boolean): Promise<void>;
|
|
120
|
-
handleSubscribeRequest(exchange: MessageExchange, request: SubscribeRequest, messenger: InteractionServerMessenger, message: Message): Promise<void>;
|
|
121
|
-
establishFormerSubscription({ subscriptionId, attributeRequests, eventRequests, isFabricFiltered, minIntervalFloorSeconds, maxIntervalCeilingSeconds, maxInterval, sendInterval, }: PeerSubscription, session: SecureSession): Promise<ServerSubscription>;
|
|
122
|
-
handleInvokeRequest(exchange: MessageExchange, { invokeRequests, timedRequest, suppressResponse, interactionModelRevision }: InvokeRequest, messenger: InteractionServerMessenger, message: Message): Promise<void>;
|
|
123
|
-
protected invokeCommand(_path: CommandPath, command: CommandServer<any, any>, exchange: MessageExchange, commandFields: any, message: Message, endpoint: EndpointInterface, _receivedWithinTimedInteraction?: boolean): Promise<{
|
|
124
|
-
code: StatusCode;
|
|
125
|
-
clusterCode?: number;
|
|
126
|
-
responseId: CommandId;
|
|
127
|
-
response: import("#types").TlvStream;
|
|
128
|
-
}>;
|
|
129
|
-
handleTimedRequest(exchange: MessageExchange, { timeout, interactionModelRevision }: TimedRequest): void;
|
|
130
|
-
close(): Promise<void>;
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=InteractionServer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionServer.d.ts","sourceRoot":"","sources":["../../../src/interaction/InteractionServer.ts"],"names":[],"mappings":"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"}
|