@matter/node 0.16.0-alpha.0-20251030-e9ca79f93 → 0.16.0-alpha.0-20251101-70c8d51d7
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/behavior/state/managed/Datasource.js +13 -13
- package/dist/cjs/behavior/state/managed/Datasource.js.map +2 -2
- package/dist/cjs/behavior/state/managed/values/ListManager.js +2 -2
- package/dist/cjs/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/ValuePatcher.js +10 -3
- package/dist/cjs/behavior/state/managed/values/ValuePatcher.js.map +1 -1
- package/dist/cjs/behavior/state/validation/ValueValidator.d.ts.map +1 -1
- package/dist/cjs/behavior/state/validation/ValueValidator.js +18 -4
- package/dist/cjs/behavior/state/validation/ValueValidator.js.map +1 -1
- package/dist/cjs/behavior/state/validation/assertions.d.ts +13 -0
- package/dist/cjs/behavior/state/validation/assertions.d.ts.map +1 -1
- package/dist/cjs/behavior/state/validation/assertions.js +44 -0
- package/dist/cjs/behavior/state/validation/assertions.js.map +2 -2
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +4 -0
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +3 -3
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts +0 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js +3 -4
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts +8 -13
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.js +20 -35
- package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.d.ts +1 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.js +5 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts +0 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +4 -4
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/remote/RemoteInterface.d.ts.map +1 -1
- package/dist/cjs/behavior/system/remote/RemoteInterface.js +3 -3
- package/dist/cjs/behavior/system/remote/RemoteInterface.js.map +1 -1
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js +1 -1
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/cjs/behaviors/color-control/ColorConversionUtils.js +2 -2
- package/dist/cjs/behaviors/color-control/ColorConversionUtils.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js +1 -1
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientEventEmitter.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientEventEmitter.js +11 -10
- package/dist/cjs/node/client/ClientEventEmitter.js.map +2 -2
- package/dist/cjs/node/client/ClientNodeInteraction.d.ts +8 -5
- package/dist/cjs/node/client/ClientNodeInteraction.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientNodeInteraction.js +9 -13
- package/dist/cjs/node/client/ClientNodeInteraction.js.map +1 -1
- package/dist/cjs/node/integration/ChangeNotificationService.js +1 -1
- package/dist/cjs/node/integration/ChangeNotificationService.js.map +1 -1
- package/dist/cjs/node/server/InteractionServer.js +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts +0 -1
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.js +0 -3
- package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.js +13 -13
- package/dist/esm/behavior/state/managed/Datasource.js.map +2 -2
- package/dist/esm/behavior/state/managed/values/ListManager.js +2 -2
- package/dist/esm/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/ValuePatcher.js +10 -3
- package/dist/esm/behavior/state/managed/values/ValuePatcher.js.map +1 -1
- package/dist/esm/behavior/state/validation/ValueValidator.d.ts.map +1 -1
- package/dist/esm/behavior/state/validation/ValueValidator.js +21 -6
- package/dist/esm/behavior/state/validation/ValueValidator.js.map +1 -1
- package/dist/esm/behavior/state/validation/assertions.d.ts +13 -0
- package/dist/esm/behavior/state/validation/assertions.d.ts.map +1 -1
- package/dist/esm/behavior/state/validation/assertions.js +45 -1
- package/dist/esm/behavior/state/validation/assertions.js.map +2 -2
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +4 -0
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +3 -3
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts +0 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js +3 -4
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.d.ts +8 -13
- package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.js +21 -36
- package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.d.ts +1 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.js +6 -2
- package/dist/esm/behavior/system/network/NetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts +0 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +4 -4
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/remote/RemoteInterface.d.ts.map +1 -1
- package/dist/esm/behavior/system/remote/RemoteInterface.js +4 -4
- package/dist/esm/behavior/system/remote/RemoteInterface.js.map +1 -1
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js +1 -1
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/esm/behaviors/color-control/ColorConversionUtils.js +2 -2
- package/dist/esm/behaviors/color-control/ColorConversionUtils.js.map +1 -1
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js +1 -1
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/esm/node/client/ClientEventEmitter.d.ts.map +1 -1
- package/dist/esm/node/client/ClientEventEmitter.js +12 -11
- package/dist/esm/node/client/ClientEventEmitter.js.map +2 -2
- package/dist/esm/node/client/ClientNodeInteraction.d.ts +8 -5
- package/dist/esm/node/client/ClientNodeInteraction.d.ts.map +1 -1
- package/dist/esm/node/client/ClientNodeInteraction.js +9 -13
- package/dist/esm/node/client/ClientNodeInteraction.js.map +1 -1
- package/dist/esm/node/integration/ChangeNotificationService.js +1 -1
- package/dist/esm/node/integration/ChangeNotificationService.js.map +1 -1
- package/dist/esm/node/server/InteractionServer.js +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.d.ts +0 -1
- package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.js +0 -3
- package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/Transitions.ts +1 -1
- package/src/behavior/state/managed/Datasource.ts +17 -14
- package/src/behavior/state/managed/values/ListManager.ts +2 -2
- package/src/behavior/state/managed/values/ValuePatcher.ts +15 -6
- package/src/behavior/state/validation/ValueValidator.ts +25 -6
- package/src/behavior/state/validation/assertions.ts +54 -1
- package/src/behavior/supervision/ValueSupervisor.ts +5 -0
- package/src/behavior/system/commissioning/CommissioningClient.ts +3 -3
- package/src/behavior/system/network/ClientNetworkRuntime.ts +5 -5
- package/src/behavior/system/network/NetworkClient.ts +25 -43
- package/src/behavior/system/network/NetworkRuntime.ts +7 -4
- package/src/behavior/system/network/ServerNetworkRuntime.ts +5 -6
- package/src/behavior/system/remote/RemoteInterface.ts +4 -4
- package/src/behavior/system/subscriptions/SubscriptionsServer.ts +1 -1
- package/src/behaviors/color-control/ColorConversionUtils.ts +2 -2
- package/src/behaviors/thermostat/AtomicWriteHandler.ts +1 -1
- package/src/behaviors/thermostat/ThermostatServer.ts +1 -1
- package/src/node/client/ClientEventEmitter.ts +12 -11
- package/src/node/client/ClientNodeInteraction.ts +13 -17
- package/src/node/integration/ChangeNotificationService.ts +1 -1
- package/src/node/server/InteractionServer.ts +1 -1
- package/src/node/server/OnlineServerInteraction.ts +0 -4
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import type { ElementEvent, Events } from "#behavior/Events.js";
|
|
8
|
-
import { camelize, Logger } from "#general";
|
|
8
|
+
import { camelize, Diagnostic, Logger } from "#general";
|
|
9
9
|
import { ClusterModel, EventModel, MatterModel } from "#model";
|
|
10
10
|
import type { ClientNode } from "#node/ClientNode.js";
|
|
11
11
|
import type { ReadResult } from "#protocol";
|
|
@@ -46,7 +46,7 @@ export function ClientEventEmitter(node: ClientNode, structure: ClientStructure)
|
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
const event = getEvent(occurrence.path.endpointId, names.cluster, names.event);
|
|
49
|
+
const event = getEvent(node, occurrence.path.endpointId, names.cluster, names.event);
|
|
50
50
|
if (event) {
|
|
51
51
|
node.act(agent => {
|
|
52
52
|
// Current ActionContext is not writable, could skip act() but meh, see TODO above
|
|
@@ -56,26 +56,27 @@ export function ClientEventEmitter(node: ClientNode, structure: ClientStructure)
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
function getEvent(endpointId: EndpointNumber, clusterName: string, eventName: string) {
|
|
59
|
+
function getEvent(node: ClientNode, endpointId: EndpointNumber, clusterName: string, eventName: string) {
|
|
60
60
|
const endpoint = structure.endpointFor(endpointId);
|
|
61
61
|
if (endpoint === undefined) {
|
|
62
|
-
logger.
|
|
62
|
+
logger.warn(`Received event for unsupported endpoint #${endpointId} on ${node}`);
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
const events = (endpoint.events as Events.Generic<ElementEvent>)[clusterName];
|
|
67
67
|
if (events === undefined) {
|
|
68
|
-
logger.
|
|
68
|
+
logger.warn(`Received event ${eventName} for unsupported cluster ${clusterName} on ${endpoint}`);
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
logger.info(
|
|
73
|
+
"Received event",
|
|
74
|
+
Diagnostic.strong(`${clusterName}.${eventName}`),
|
|
75
|
+
" on ",
|
|
76
|
+
Diagnostic.strong(endpoint.toString()),
|
|
77
|
+
);
|
|
77
78
|
|
|
78
|
-
return
|
|
79
|
+
return events[eventName];
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -10,11 +10,11 @@ import type { ClientNode } from "#node/ClientNode.js";
|
|
|
10
10
|
import {
|
|
11
11
|
ClientInteraction,
|
|
12
12
|
ClientInvoke,
|
|
13
|
+
ClientSubscribe,
|
|
13
14
|
DecodedInvokeResult,
|
|
14
15
|
Interactable,
|
|
15
16
|
Read,
|
|
16
17
|
ReadResult,
|
|
17
|
-
Subscribe,
|
|
18
18
|
SubscribeResult,
|
|
19
19
|
Write,
|
|
20
20
|
WriteResult,
|
|
@@ -45,13 +45,19 @@ export class ClientNodeInteraction implements Interactable<ActionContext> {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* Subscribe to
|
|
49
|
-
*
|
|
48
|
+
* Subscribe to remote events and attributes as defined by {@link request}.
|
|
49
|
+
*
|
|
50
|
+
* matter.js updates local state
|
|
51
|
+
*
|
|
52
|
+
* By default matter.js subscribes to all attributes and events of the peer and updates {@link ClientNode} state
|
|
53
|
+
* automatically. So you normally do not need to subscribe manually.
|
|
50
54
|
*/
|
|
51
|
-
async subscribe(request:
|
|
52
|
-
const intermediateRequest:
|
|
55
|
+
async subscribe(request: ClientSubscribe, context?: ActionContext): SubscribeResult {
|
|
56
|
+
const intermediateRequest: ClientSubscribe = {
|
|
53
57
|
...this.structure.injectVersionFilters(request),
|
|
54
58
|
|
|
59
|
+
sustain: request.sustain === undefined ? true : request.sustain,
|
|
60
|
+
|
|
55
61
|
updated: async data => {
|
|
56
62
|
const result = this.structure.mutate(request, data);
|
|
57
63
|
if (request.updated) {
|
|
@@ -61,20 +67,10 @@ export class ClientNodeInteraction implements Interactable<ActionContext> {
|
|
|
61
67
|
}
|
|
62
68
|
},
|
|
63
69
|
|
|
64
|
-
closed(
|
|
65
|
-
// TODO - log cause?
|
|
66
|
-
request.closed?.(cause);
|
|
67
|
-
},
|
|
70
|
+
closed: request.closed?.bind(request),
|
|
68
71
|
};
|
|
69
|
-
const interaction = await this.#connect();
|
|
70
|
-
return interaction.subscribe(intermediateRequest, context);
|
|
71
|
-
}
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
if (!this.#node.lifecycle.isOnline) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.#node.env.get(ClientInteraction).cancelSubscription(id);
|
|
73
|
+
return (await this.#connect()).subscribe(intermediateRequest, context);
|
|
78
74
|
}
|
|
79
75
|
|
|
80
76
|
/**
|
|
@@ -518,7 +518,7 @@ export class InteractionServer implements ProtocolHandler, InteractionRecipient
|
|
|
518
518
|
);
|
|
519
519
|
} catch (error) {
|
|
520
520
|
logger.error(
|
|
521
|
-
`Subscription ${subscriptionId} for Session ${session.id}: Error while sending initial data reports
|
|
521
|
+
`Subscription ${subscriptionId} for Session ${session.id}: Error while sending initial data reports:`,
|
|
522
522
|
error instanceof MatterError ? error.message : error,
|
|
523
523
|
);
|
|
524
524
|
if (error instanceof StatusResponseError && !(error instanceof ReceivedStatusResponseError)) {
|
|
@@ -35,10 +35,6 @@ export class OnlineServerInteraction implements Interactable<RemoteActorContext.
|
|
|
35
35
|
throw new NotImplementedError("subscribe not implemented");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
cancelSubscription(_id: number): void {
|
|
39
|
-
throw new NotImplementedError("cancelSubscription not implemented");
|
|
40
|
-
}
|
|
41
|
-
|
|
42
38
|
async write<T extends Write>(request: T, context: RemoteActorContext.Options): WriteResult<T> {
|
|
43
39
|
return RemoteActorContext(context).act(session => this.#interaction.write(request, session));
|
|
44
40
|
}
|