@matter/node 0.12.4 → 0.12.5
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/system/sessions/SessionsBehavior.d.ts +2 -1
- package/dist/cjs/behavior/system/sessions/SessionsBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/system/sessions/SessionsBehavior.js +2 -2
- package/dist/cjs/behavior/system/sessions/SessionsBehavior.js.map +1 -1
- package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.d.ts +1 -2
- package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.js +5 -3
- package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.js.map +1 -1
- package/dist/esm/behavior/system/sessions/SessionsBehavior.d.ts +2 -1
- package/dist/esm/behavior/system/sessions/SessionsBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/system/sessions/SessionsBehavior.js +2 -2
- package/dist/esm/behavior/system/sessions/SessionsBehavior.js.map +1 -1
- package/dist/esm/behavior/system/subscription/SubscriptionBehavior.d.ts +1 -2
- package/dist/esm/behavior/system/subscription/SubscriptionBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/system/subscription/SubscriptionBehavior.js +5 -3
- package/dist/esm/behavior/system/subscription/SubscriptionBehavior.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/system/sessions/SessionsBehavior.ts +2 -2
- package/src/behavior/system/subscription/SubscriptionBehavior.ts +6 -3
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { EventEmitter, Observable } from "#general";
|
|
7
|
-
import { ExposedFabricInformation } from "#protocol";
|
|
7
|
+
import { ExposedFabricInformation, Subscription } from "#protocol";
|
|
8
8
|
import { NodeId } from "#types";
|
|
9
9
|
import { Behavior } from "../../Behavior.js";
|
|
10
10
|
/**
|
|
@@ -35,6 +35,7 @@ export declare namespace SessionsBehavior {
|
|
|
35
35
|
opened: Observable<[session: Session], void>;
|
|
36
36
|
closed: Observable<[session: Session], void>;
|
|
37
37
|
subscriptionsChanged: Observable<[session: Session], void>;
|
|
38
|
+
subscriptionAdded: Observable<[subscription: Subscription], void>;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=SessionsBehavior.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionsBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"SessionsBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAiC,YAAY,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;;IAC1C,gBAAyB,EAAE,cAAc;IAEjC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;IAC9B,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAE/B,UAAU;CAsEtB;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,OAAO;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,wBAAwB,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7C,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,2BAA2B,EAAE,MAAM,CAAC;KACvC;IAED,MAAa,KAAK;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;KAC1C;IAED,MAAa,MAAO,SAAQ,YAAY;QACpC,MAAM,uCAAoC;QAC1C,MAAM,uCAAoC;QAC1C,oBAAoB,uCAAoC;QACxD,iBAAiB,iDAA8C;KAClE;CACJ"}
|
|
@@ -24,7 +24,6 @@ module.exports = __toCommonJS(SessionsBehavior_exports);
|
|
|
24
24
|
var import_general = require("#general");
|
|
25
25
|
var import_protocol = require("#protocol");
|
|
26
26
|
var import_Behavior = require("../../Behavior.js");
|
|
27
|
-
var import_SubscriptionBehavior = require("../subscription/SubscriptionBehavior.js");
|
|
28
27
|
/**
|
|
29
28
|
* @license
|
|
30
29
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -76,7 +75,7 @@ class SessionsBehavior extends import_Behavior.Behavior {
|
|
|
76
75
|
return;
|
|
77
76
|
}
|
|
78
77
|
if (session.subscriptions.has(subscription)) {
|
|
79
|
-
this.
|
|
78
|
+
this.events.subscriptionAdded.emit(subscription);
|
|
80
79
|
}
|
|
81
80
|
const sessionEntry = this.state.sessions[session.id];
|
|
82
81
|
if (sessionEntry === void 0) {
|
|
@@ -99,6 +98,7 @@ class SessionsBehavior extends import_Behavior.Behavior {
|
|
|
99
98
|
opened = (0, import_general.Observable)();
|
|
100
99
|
closed = (0, import_general.Observable)();
|
|
101
100
|
subscriptionsChanged = (0, import_general.Observable)();
|
|
101
|
+
subscriptionAdded = (0, import_general.Observable)();
|
|
102
102
|
}
|
|
103
103
|
SessionsBehavior2.Events = Events;
|
|
104
104
|
})(SessionsBehavior || (SessionsBehavior = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAyC;AAEzC,sBAAsF;AAGtF,sBAAyB;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAyC;AAEzC,sBAAsF;AAGtF,sBAAyB;AAXzB;AAAA;AAAA;AAAA;AAAA;AAgBO,MAAM,yBAAyB,yBAAS;AAAA,EAC3C,OAAyB,KAAK;AAAA,EAKrB,aAAa;AAClB,UAAM,MAAM,KAAK;AACjB,QAAI,IAAI,IAAI,8BAAc,GAAG;AACzB,WAAK,iBAAiB,IAAI,IAAI,8BAAc,CAAC;AAAA,IACjD;AACA,SAAK,QAAS,KAAK,SAAS,UAA4B,SAAS,KAAK,iBAAiB;AAAA,EAC3F;AAAA,EAEA,yBAAyB,SAAkD;AACvE,WAAO;AAAA,MACH,MAAM,QAAQ;AAAA,MACd,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,QAAQ,QAAQ,QAAQ;AAAA,MACxB,cAAc,QAAQ,aAAa;AAAA,MACnC,0BAA0B,QAAQ;AAAA,MAClC,qBAAqB,QAAQ;AAAA,MAC7B,6BAA6B,QAAQ,cAAc;AAAA,IACvD;AAAA,EACJ;AAAA,EAEA,iBAAiB,UAA0B;AACvC,SAAK,QAAQ,SAAS,SAAS,OAAO,KAAK,cAAc;AAEzD,SAAK,QAAQ,SAAS,SAAS,SAAS,KAAK,cAAc;AAE3D,SAAK,QAAQ,SAAS,sBAAsB,KAAK,uBAAuB,EAAE,MAAM,KAAK,CAAC;AAAA,EAC1F;AAAA,EAEA,eAAe,SAAwB;AACnC,QAAI,QAAQ,QAAQ;AAChB;AAAA,IACJ;AACA,UAAM,iBAAiB,KAAK,yBAAyB,OAAO;AAC5D,SAAK,MAAM,SAAS,QAAQ,EAAE,IAAI;AAClC,SAAK,OAAO,OAAO,KAAK,cAAc;AAAA,EAC1C;AAAA,EAEA,eAAe,SAAwB;AACnC,QAAI,EAAE,QAAQ,MAAM,KAAK,MAAM,WAAW;AACtC;AAAA,IACJ;AAEA,WAAO,KAAK,MAAM,SAAS,QAAQ,EAAE;AACrC,SAAK,OAAO,OAAO,KAAK,KAAK,yBAAyB,OAAO,CAAC;AAAA,EAClE;AAAA,EAEA,sBAAsB,SAAwB,cAA4B;AACtE,QAAI,QAAQ,QAAQ;AAChB;AAAA,IACJ;AAGA,QAAI,QAAQ,cAAc,IAAI,YAAY,GAAG;AACzC,WAAK,OAAO,kBAAkB,KAAK,YAAY;AAAA,IACnD;AAEA,UAAM,eAAe,KAAK,MAAM,SAAS,QAAQ,EAAE;AACnD,QAAI,iBAAiB,QAAW;AAC5B;AAAA,IACJ;AAEA,iBAAa,8BAA8B,QAAQ,cAAc;AACjE,SAAK,MAAM,SAAS,QAAQ,EAAE,IAAI;AAClC,SAAK,OAAO,qBAAqB,KAAK,YAAY;AAAA,EACtD;AAAA,EAEA,oBAAoB;AAChB,SAAK,MAAM,WAAW,CAAC;AAAA,EAC3B;AACJ;AAAA,CAEO,CAAUA,sBAAV;AAAA,EAYI,MAAM,MAAM;AAAA,IACf,WAAoC,CAAC;AAAA,EACzC;AAFO,EAAAA,kBAAM;AAAA,EAIN,MAAM,eAAe,4BAAa;AAAA,IACrC,aAAS,2BAA+B;AAAA,IACxC,aAAS,2BAA+B;AAAA,IACxC,2BAAuB,2BAA+B;AAAA,IACtD,wBAAoB,2BAAyC;AAAA,EACjE;AALO,EAAAA,kBAAM;AAAA,GAhBA;",
|
|
5
5
|
"names": ["SessionsBehavior"]
|
|
6
6
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { DatatypeModel } from "#model";
|
|
7
7
|
import { TransactionalInteractionServer } from "#node/index.js";
|
|
8
|
-
import { PeerSubscription
|
|
8
|
+
import { PeerSubscription } from "#protocol";
|
|
9
9
|
import { Behavior } from "../../Behavior.js";
|
|
10
10
|
/**
|
|
11
11
|
* Subscriptions Persistence handling.
|
|
@@ -21,7 +21,6 @@ export declare class SubscriptionBehavior extends Behavior {
|
|
|
21
21
|
internal: SubscriptionBehavior.Internal;
|
|
22
22
|
initialize(): void;
|
|
23
23
|
static schema: DatatypeModel;
|
|
24
|
-
addSubscription(subscription: Subscription): void;
|
|
25
24
|
reestablishFormerSubscriptions(interactionServer: TransactionalInteractionServer): Promise<void>;
|
|
26
25
|
}
|
|
27
26
|
export declare namespace SubscriptionBehavior {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAOH,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SubscriptionBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAOH,gBAAgB,EAInB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;;IAC9C,gBAAyB,EAAE,kBAAkB;IAErC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;IAEvC,UAAU;IAUnB,OAAgB,MAAM,gBAkFpB;IAkEI,8BAA8B,CAAC,iBAAiB,EAAE,8BAA8B;CAmFzF;AAED,yBAAiB,oBAAoB,CAAC;IAClC,MAAa,KAAK;QACd,sEAAsE;QACtE,kBAAkB,UAAQ;QAE1B;;;WAGG;QACH,aAAa,EAAG,gBAAgB,EAAE,CAAC;KACtC;IAED,MAAa,QAAQ;QACjB;;;WAGG;QACH,mBAAmB,qBAA6B;KACnD;CACJ"}
|
|
@@ -26,6 +26,7 @@ var import_model = require("#model");
|
|
|
26
26
|
var import_protocol = require("#protocol");
|
|
27
27
|
var import_types = require("#types");
|
|
28
28
|
var import_Behavior = require("../../Behavior.js");
|
|
29
|
+
var import_SessionsBehavior = require("../sessions/SessionsBehavior.js");
|
|
29
30
|
/**
|
|
30
31
|
* @license
|
|
31
32
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -40,6 +41,8 @@ class SubscriptionBehavior extends import_Behavior.Behavior {
|
|
|
40
41
|
this.internal.formerSubscriptions = (0, import_general.deepCopy)(this.state.subscriptions);
|
|
41
42
|
}
|
|
42
43
|
this.state.subscriptions = [];
|
|
44
|
+
const sessions = this.agent.get(import_SessionsBehavior.SessionsBehavior);
|
|
45
|
+
this.reactTo(sessions.events.subscriptionAdded, this.#addSubscription, { lock: true });
|
|
43
46
|
}
|
|
44
47
|
static schema = new import_model.DatatypeModel(
|
|
45
48
|
{
|
|
@@ -124,7 +127,7 @@ class SubscriptionBehavior extends import_Behavior.Behavior {
|
|
|
124
127
|
)
|
|
125
128
|
)
|
|
126
129
|
);
|
|
127
|
-
addSubscription(subscription) {
|
|
130
|
+
#addSubscription(subscription) {
|
|
128
131
|
if (this.state.persistenceEnabled === false || !(subscription instanceof import_protocol.ServerSubscription)) return;
|
|
129
132
|
const {
|
|
130
133
|
criteria: { attributeRequests, eventRequests, isFabricFiltered },
|
|
@@ -165,8 +168,7 @@ class SubscriptionBehavior extends import_Behavior.Behavior {
|
|
|
165
168
|
this.state.subscriptions.push(peerSubscription);
|
|
166
169
|
}
|
|
167
170
|
#subscriptionCancelled(subscription) {
|
|
168
|
-
if (subscription.isCanceledByPeer) {
|
|
169
|
-
if (this.state.persistenceEnabled === false) return;
|
|
171
|
+
if (subscription.isCanceledByPeer && this.state.persistenceEnabled !== false) {
|
|
170
172
|
const { id } = subscription;
|
|
171
173
|
const subscriptionIndex = this.state.subscriptions.findIndex(({ subscriptionId }) => id === subscriptionId);
|
|
172
174
|
if (subscriptionIndex !== -1) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAiG;AACjG,mBAA4C;AAE5C,sBAWO;AACP,mBAAgD;AAChD,sBAAyB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["SubscriptionBehavior"]
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { EventEmitter, Observable } from "#general";
|
|
7
|
-
import { ExposedFabricInformation } from "#protocol";
|
|
7
|
+
import { ExposedFabricInformation, Subscription } from "#protocol";
|
|
8
8
|
import { NodeId } from "#types";
|
|
9
9
|
import { Behavior } from "../../Behavior.js";
|
|
10
10
|
/**
|
|
@@ -35,6 +35,7 @@ export declare namespace SessionsBehavior {
|
|
|
35
35
|
opened: Observable<[session: Session], void>;
|
|
36
36
|
closed: Observable<[session: Session], void>;
|
|
37
37
|
subscriptionsChanged: Observable<[session: Session], void>;
|
|
38
|
+
subscriptionAdded: Observable<[subscription: Subscription], void>;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=SessionsBehavior.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionsBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"SessionsBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAiC,YAAY,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;;IAC1C,gBAAyB,EAAE,cAAc;IAEjC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;IAC9B,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAE/B,UAAU;CAsEtB;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,OAAO;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,wBAAwB,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7C,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,2BAA2B,EAAE,MAAM,CAAC;KACvC;IAED,MAAa,KAAK;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;KAC1C;IAED,MAAa,MAAO,SAAQ,YAAY;QACpC,MAAM,uCAAoC;QAC1C,MAAM,uCAAoC;QAC1C,oBAAoB,uCAAoC;QACxD,iBAAiB,iDAA8C;KAClE;CACJ"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
import { EventEmitter, Observable } from "#general";
|
|
7
7
|
import { SessionManager } from "#protocol";
|
|
8
8
|
import { Behavior } from "../../Behavior.js";
|
|
9
|
-
import { SubscriptionBehavior } from "../subscription/SubscriptionBehavior.js";
|
|
10
9
|
class SessionsBehavior extends Behavior {
|
|
11
10
|
static id = "sessions";
|
|
12
11
|
initialize() {
|
|
@@ -53,7 +52,7 @@ class SessionsBehavior extends Behavior {
|
|
|
53
52
|
return;
|
|
54
53
|
}
|
|
55
54
|
if (session.subscriptions.has(subscription)) {
|
|
56
|
-
this.
|
|
55
|
+
this.events.subscriptionAdded.emit(subscription);
|
|
57
56
|
}
|
|
58
57
|
const sessionEntry = this.state.sessions[session.id];
|
|
59
58
|
if (sessionEntry === void 0) {
|
|
@@ -76,6 +75,7 @@ class SessionsBehavior extends Behavior {
|
|
|
76
75
|
opened = Observable();
|
|
77
76
|
closed = Observable();
|
|
78
77
|
subscriptionsChanged = Observable();
|
|
78
|
+
subscriptionAdded = Observable();
|
|
79
79
|
}
|
|
80
80
|
SessionsBehavior2.Events = Events;
|
|
81
81
|
})(SessionsBehavior || (SessionsBehavior = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/system/sessions/SessionsBehavior.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc,kBAAkB;AAEzC,SAAkD,sBAAoC;AAGtF,SAAS,gBAAgB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc,kBAAkB;AAEzC,SAAkD,sBAAoC;AAGtF,SAAS,gBAAgB;AAKlB,MAAM,yBAAyB,SAAS;AAAA,EAC3C,OAAyB,KAAK;AAAA,EAKrB,aAAa;AAClB,UAAM,MAAM,KAAK;AACjB,QAAI,IAAI,IAAI,cAAc,GAAG;AACzB,WAAK,iBAAiB,IAAI,IAAI,cAAc,CAAC;AAAA,IACjD;AACA,SAAK,QAAS,KAAK,SAAS,UAA4B,SAAS,KAAK,iBAAiB;AAAA,EAC3F;AAAA,EAEA,yBAAyB,SAAkD;AACvE,WAAO;AAAA,MACH,MAAM,QAAQ;AAAA,MACd,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,QAAQ,QAAQ,QAAQ;AAAA,MACxB,cAAc,QAAQ,aAAa;AAAA,MACnC,0BAA0B,QAAQ;AAAA,MAClC,qBAAqB,QAAQ;AAAA,MAC7B,6BAA6B,QAAQ,cAAc;AAAA,IACvD;AAAA,EACJ;AAAA,EAEA,iBAAiB,UAA0B;AACvC,SAAK,QAAQ,SAAS,SAAS,OAAO,KAAK,cAAc;AAEzD,SAAK,QAAQ,SAAS,SAAS,SAAS,KAAK,cAAc;AAE3D,SAAK,QAAQ,SAAS,sBAAsB,KAAK,uBAAuB,EAAE,MAAM,KAAK,CAAC;AAAA,EAC1F;AAAA,EAEA,eAAe,SAAwB;AACnC,QAAI,QAAQ,QAAQ;AAChB;AAAA,IACJ;AACA,UAAM,iBAAiB,KAAK,yBAAyB,OAAO;AAC5D,SAAK,MAAM,SAAS,QAAQ,EAAE,IAAI;AAClC,SAAK,OAAO,OAAO,KAAK,cAAc;AAAA,EAC1C;AAAA,EAEA,eAAe,SAAwB;AACnC,QAAI,EAAE,QAAQ,MAAM,KAAK,MAAM,WAAW;AACtC;AAAA,IACJ;AAEA,WAAO,KAAK,MAAM,SAAS,QAAQ,EAAE;AACrC,SAAK,OAAO,OAAO,KAAK,KAAK,yBAAyB,OAAO,CAAC;AAAA,EAClE;AAAA,EAEA,sBAAsB,SAAwB,cAA4B;AACtE,QAAI,QAAQ,QAAQ;AAChB;AAAA,IACJ;AAGA,QAAI,QAAQ,cAAc,IAAI,YAAY,GAAG;AACzC,WAAK,OAAO,kBAAkB,KAAK,YAAY;AAAA,IACnD;AAEA,UAAM,eAAe,KAAK,MAAM,SAAS,QAAQ,EAAE;AACnD,QAAI,iBAAiB,QAAW;AAC5B;AAAA,IACJ;AAEA,iBAAa,8BAA8B,QAAQ,cAAc;AACjE,SAAK,MAAM,SAAS,QAAQ,EAAE,IAAI;AAClC,SAAK,OAAO,qBAAqB,KAAK,YAAY;AAAA,EACtD;AAAA,EAEA,oBAAoB;AAChB,SAAK,MAAM,WAAW,CAAC;AAAA,EAC3B;AACJ;AAAA,CAEO,CAAUA,sBAAV;AAAA,EAYI,MAAM,MAAM;AAAA,IACf,WAAoC,CAAC;AAAA,EACzC;AAFO,EAAAA,kBAAM;AAAA,EAIN,MAAM,eAAe,aAAa;AAAA,IACrC,SAAS,WAA+B;AAAA,IACxC,SAAS,WAA+B;AAAA,IACxC,uBAAuB,WAA+B;AAAA,IACtD,oBAAoB,WAAyC;AAAA,EACjE;AALO,EAAAA,kBAAM;AAAA,GAhBA;",
|
|
5
5
|
"names": ["SessionsBehavior"]
|
|
6
6
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { DatatypeModel } from "#model";
|
|
7
7
|
import { TransactionalInteractionServer } from "#node/index.js";
|
|
8
|
-
import { PeerSubscription
|
|
8
|
+
import { PeerSubscription } from "#protocol";
|
|
9
9
|
import { Behavior } from "../../Behavior.js";
|
|
10
10
|
/**
|
|
11
11
|
* Subscriptions Persistence handling.
|
|
@@ -21,7 +21,6 @@ export declare class SubscriptionBehavior extends Behavior {
|
|
|
21
21
|
internal: SubscriptionBehavior.Internal;
|
|
22
22
|
initialize(): void;
|
|
23
23
|
static schema: DatatypeModel;
|
|
24
|
-
addSubscription(subscription: Subscription): void;
|
|
25
24
|
reestablishFormerSubscriptions(interactionServer: TransactionalInteractionServer): Promise<void>;
|
|
26
25
|
}
|
|
27
26
|
export declare namespace SubscriptionBehavior {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAOH,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SubscriptionBehavior.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAOH,gBAAgB,EAInB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;;IAC9C,gBAAyB,EAAE,kBAAkB;IAErC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;IAEvC,UAAU;IAUnB,OAAgB,MAAM,gBAkFpB;IAkEI,8BAA8B,CAAC,iBAAiB,EAAE,8BAA8B;CAmFzF;AAED,yBAAiB,oBAAoB,CAAC;IAClC,MAAa,KAAK;QACd,sEAAsE;QACtE,kBAAkB,UAAQ;QAE1B;;;WAGG;QACH,aAAa,EAAG,gBAAgB,EAAE,CAAC;KACtC;IAED,MAAa,QAAQ;QACjB;;;WAGG;QACH,mBAAmB,qBAA6B;KACnD;CACJ"}
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
} from "#protocol";
|
|
18
18
|
import { StatusCode, StatusResponseError } from "#types";
|
|
19
19
|
import { Behavior } from "../../Behavior.js";
|
|
20
|
+
import { SessionsBehavior } from "../sessions/SessionsBehavior.js";
|
|
20
21
|
const logger = Logger.get("SubscriptionBehavior");
|
|
21
22
|
const REESTABLISH_SUBSCRIPTIONS_TIMEOUT_S = 2;
|
|
22
23
|
class SubscriptionBehavior extends Behavior {
|
|
@@ -26,6 +27,8 @@ class SubscriptionBehavior extends Behavior {
|
|
|
26
27
|
this.internal.formerSubscriptions = deepCopy(this.state.subscriptions);
|
|
27
28
|
}
|
|
28
29
|
this.state.subscriptions = [];
|
|
30
|
+
const sessions = this.agent.get(SessionsBehavior);
|
|
31
|
+
this.reactTo(sessions.events.subscriptionAdded, this.#addSubscription, { lock: true });
|
|
29
32
|
}
|
|
30
33
|
static schema = new DatatypeModel(
|
|
31
34
|
{
|
|
@@ -110,7 +113,7 @@ class SubscriptionBehavior extends Behavior {
|
|
|
110
113
|
)
|
|
111
114
|
)
|
|
112
115
|
);
|
|
113
|
-
addSubscription(subscription) {
|
|
116
|
+
#addSubscription(subscription) {
|
|
114
117
|
if (this.state.persistenceEnabled === false || !(subscription instanceof ServerSubscription)) return;
|
|
115
118
|
const {
|
|
116
119
|
criteria: { attributeRequests, eventRequests, isFabricFiltered },
|
|
@@ -151,8 +154,7 @@ class SubscriptionBehavior extends Behavior {
|
|
|
151
154
|
this.state.subscriptions.push(peerSubscription);
|
|
152
155
|
}
|
|
153
156
|
#subscriptionCancelled(subscription) {
|
|
154
|
-
if (subscription.isCanceledByPeer) {
|
|
155
|
-
if (this.state.persistenceEnabled === false) return;
|
|
157
|
+
if (subscription.isCanceledByPeer && this.state.persistenceEnabled !== false) {
|
|
156
158
|
const { id } = subscription;
|
|
157
159
|
const subscriptionIndex = this.state.subscriptions.findIndex(({ subscriptionId }) => id === subscriptionId);
|
|
158
160
|
if (subscriptionIndex !== -1) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/system/subscription/SubscriptionBehavior.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,oBAAoB,QAAQ,mBAAkD;AACjG,SAAS,eAAe,oBAAoB;AAE5C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OAEG;AACP,SAAS,YAAY,2BAA2B;AAChD,SAAS,gBAAgB;AACzB,MAAM,SAAS,OAAO,IAAI,sBAAsB;AAGhD,MAAM,sCAAsC;AASrC,MAAM,6BAA6B,SAAS;AAAA,EAC/C,OAAyB,KAAK;AAAA,EAKrB,aAAa;AAClB,QAAI,KAAK,MAAM,kBAAkB,UAAa,KAAK,MAAM,uBAAuB,OAAO;AACnF,WAAK,SAAS,sBAAsB,SAAS,KAAK,MAAM,aAAa;AAAA,IACzE;AACA,SAAK,MAAM,gBAAgB,CAAC;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["SubscriptionBehavior"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.5",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@noble/curves": "^1.8.1",
|
|
46
|
-
"@matter/general": "0.12.
|
|
47
|
-
"@matter/model": "0.12.
|
|
48
|
-
"@matter/types": "0.12.
|
|
49
|
-
"@matter/protocol": "0.12.
|
|
46
|
+
"@matter/general": "0.12.5",
|
|
47
|
+
"@matter/model": "0.12.5",
|
|
48
|
+
"@matter/types": "0.12.5",
|
|
49
|
+
"@matter/protocol": "0.12.5"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@matter/tools": "0.12.
|
|
53
|
-
"@matter/testing": "0.12.
|
|
52
|
+
"@matter/tools": "0.12.5",
|
|
53
|
+
"@matter/testing": "0.12.5"
|
|
54
54
|
},
|
|
55
55
|
"files": [
|
|
56
56
|
"dist/**/*",
|
|
@@ -10,7 +10,6 @@ import { ExposedFabricInformation, SecureSession, SessionManager, Subscription }
|
|
|
10
10
|
import { NodeId } from "#types";
|
|
11
11
|
import { NodeLifecycle } from "../../../node/NodeLifecycle.js";
|
|
12
12
|
import { Behavior } from "../../Behavior.js";
|
|
13
|
-
import { SubscriptionBehavior } from "../subscription/SubscriptionBehavior.js";
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Active {@link ServerNode} client sessions.
|
|
@@ -75,7 +74,7 @@ export class SessionsBehavior extends Behavior {
|
|
|
75
74
|
|
|
76
75
|
// When subscription was added then inform SubscriptionBehavior
|
|
77
76
|
if (session.subscriptions.has(subscription)) {
|
|
78
|
-
this.
|
|
77
|
+
this.events.subscriptionAdded.emit(subscription);
|
|
79
78
|
}
|
|
80
79
|
|
|
81
80
|
const sessionEntry = this.state.sessions[session.id];
|
|
@@ -113,5 +112,6 @@ export namespace SessionsBehavior {
|
|
|
113
112
|
opened = Observable<[session: Session]>();
|
|
114
113
|
closed = Observable<[session: Session]>();
|
|
115
114
|
subscriptionsChanged = Observable<[session: Session]>();
|
|
115
|
+
subscriptionAdded = Observable<[subscription: Subscription]>();
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
} from "#protocol";
|
|
22
22
|
import { StatusCode, StatusResponseError } from "#types";
|
|
23
23
|
import { Behavior } from "../../Behavior.js";
|
|
24
|
+
import { SessionsBehavior } from "../sessions/SessionsBehavior.js";
|
|
24
25
|
const logger = Logger.get("SubscriptionBehavior");
|
|
25
26
|
|
|
26
27
|
/** Timeout in seconds to wait for responses or discovery of the peer node when trying to re-establish a subscription. */
|
|
@@ -44,6 +45,9 @@ export class SubscriptionBehavior extends Behavior {
|
|
|
44
45
|
this.internal.formerSubscriptions = deepCopy(this.state.subscriptions);
|
|
45
46
|
}
|
|
46
47
|
this.state.subscriptions = [];
|
|
48
|
+
|
|
49
|
+
const sessions = this.agent.get(SessionsBehavior);
|
|
50
|
+
this.reactTo(sessions.events.subscriptionAdded, this.#addSubscription, { lock: true });
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
static override schema = new DatatypeModel(
|
|
@@ -130,7 +134,7 @@ export class SubscriptionBehavior extends Behavior {
|
|
|
130
134
|
),
|
|
131
135
|
);
|
|
132
136
|
|
|
133
|
-
addSubscription(subscription: Subscription) {
|
|
137
|
+
#addSubscription(subscription: Subscription) {
|
|
134
138
|
if (this.state.persistenceEnabled === false || !(subscription instanceof ServerSubscription)) return;
|
|
135
139
|
|
|
136
140
|
const {
|
|
@@ -178,8 +182,7 @@ export class SubscriptionBehavior extends Behavior {
|
|
|
178
182
|
}
|
|
179
183
|
|
|
180
184
|
#subscriptionCancelled(subscription: Subscription): MaybePromise {
|
|
181
|
-
if (subscription.isCanceledByPeer) {
|
|
182
|
-
if (this.state.persistenceEnabled === false) return;
|
|
185
|
+
if (subscription.isCanceledByPeer && this.state.persistenceEnabled !== false) {
|
|
183
186
|
const { id } = subscription;
|
|
184
187
|
const subscriptionIndex = this.state.subscriptions.findIndex(({ subscriptionId }) => id === subscriptionId);
|
|
185
188
|
if (subscriptionIndex !== -1) {
|