@matter/protocol 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/action/Interactable.d.ts +1 -0
- package/dist/cjs/action/Interactable.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.d.ts +25 -19
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +198 -94
- package/dist/cjs/action/client/ClientInteraction.js.map +2 -2
- package/dist/cjs/action/client/index.d.ts +1 -3
- package/dist/cjs/action/client/index.d.ts.map +1 -1
- package/dist/cjs/action/client/index.js +1 -3
- package/dist/cjs/action/client/index.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts +8 -0
- package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts.map +1 -0
- package/dist/cjs/action/client/{ClientSubscription.js → subscription/ClientSubscribe.js} +3 -8
- package/dist/cjs/action/client/subscription/ClientSubscribe.js.map +6 -0
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts +38 -0
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts.map +1 -0
- package/dist/cjs/action/client/subscription/ClientSubscription.js +79 -0
- package/dist/cjs/action/client/subscription/ClientSubscription.js.map +6 -0
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -0
- package/dist/cjs/action/client/{ClientSubscriptionHandler.js → subscription/ClientSubscriptionHandler.js} +5 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +6 -0
- package/dist/{esm/action/client → cjs/action/client/subscription}/ClientSubscriptions.d.ts +15 -8
- package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts.map +1 -0
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js +133 -0
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +6 -0
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +27 -0
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -0
- package/dist/cjs/action/client/subscription/PeerSubscription.js +57 -0
- package/dist/cjs/action/client/subscription/PeerSubscription.js.map +6 -0
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +57 -0
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -0
- package/dist/cjs/action/client/subscription/SustainedSubscription.js +143 -0
- package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +6 -0
- package/dist/cjs/action/client/subscription/index.d.ts +12 -0
- package/dist/cjs/action/client/subscription/index.d.ts.map +1 -0
- package/dist/cjs/action/client/subscription/index.js +29 -0
- package/dist/cjs/action/client/subscription/index.js.map +6 -0
- package/dist/cjs/action/errors.d.ts +7 -2
- package/dist/cjs/action/errors.d.ts.map +1 -1
- package/dist/cjs/action/errors.js +6 -3
- package/dist/cjs/action/errors.js.map +1 -1
- package/dist/cjs/action/request/Subscribe.d.ts +2 -2
- package/dist/cjs/action/request/Subscribe.d.ts.map +1 -1
- package/dist/cjs/action/request/Subscribe.js.map +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
- package/dist/cjs/action/response/SubscribeResult.d.ts +2 -1
- package/dist/cjs/action/response/SubscribeResult.d.ts.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.d.ts +0 -1
- package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.js +0 -3
- package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
- package/dist/cjs/bdx/flow/InboundFlow.js +1 -1
- package/dist/cjs/bdx/flow/InboundFlow.js.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts +3 -3
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +0 -7
- package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts +1 -1
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +1 -1
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/action/Interactable.d.ts +1 -0
- package/dist/esm/action/Interactable.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +25 -19
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +201 -95
- package/dist/esm/action/client/ClientInteraction.js.map +2 -2
- package/dist/esm/action/client/index.d.ts +1 -3
- package/dist/esm/action/client/index.d.ts.map +1 -1
- package/dist/esm/action/client/index.js +1 -3
- package/dist/esm/action/client/index.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscribe.d.ts +8 -0
- package/dist/esm/action/client/subscription/ClientSubscribe.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/ClientSubscribe.js +1 -0
- package/dist/esm/action/client/subscription/ClientSubscribe.js.map +6 -0
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts +38 -0
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/ClientSubscription.js +59 -0
- package/dist/esm/action/client/subscription/ClientSubscription.js.map +6 -0
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -0
- package/dist/esm/action/client/{ClientSubscriptionHandler.js → subscription/ClientSubscriptionHandler.js} +5 -2
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +6 -0
- package/dist/{cjs/action/client → esm/action/client/subscription}/ClientSubscriptions.d.ts +15 -8
- package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/ClientSubscriptions.js +113 -0
- package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +6 -0
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts +27 -0
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/PeerSubscription.js +37 -0
- package/dist/esm/action/client/subscription/PeerSubscription.js.map +6 -0
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +57 -0
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/SustainedSubscription.js +133 -0
- package/dist/esm/action/client/subscription/SustainedSubscription.js.map +6 -0
- package/dist/esm/action/client/subscription/index.d.ts +12 -0
- package/dist/esm/action/client/subscription/index.d.ts.map +1 -0
- package/dist/esm/action/client/subscription/index.js +12 -0
- package/dist/esm/action/client/subscription/index.js.map +6 -0
- package/dist/esm/action/errors.d.ts +7 -2
- package/dist/esm/action/errors.d.ts.map +1 -1
- package/dist/esm/action/errors.js +6 -3
- package/dist/esm/action/errors.js.map +1 -1
- package/dist/esm/action/request/Subscribe.d.ts +2 -2
- package/dist/esm/action/request/Subscribe.d.ts.map +1 -1
- package/dist/esm/action/request/Subscribe.js.map +1 -1
- package/dist/esm/action/response/ReadResult.d.ts +1 -1
- package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
- package/dist/esm/action/response/SubscribeResult.d.ts +2 -1
- package/dist/esm/action/response/SubscribeResult.d.ts.map +1 -1
- package/dist/esm/action/server/ServerInteraction.d.ts +0 -1
- package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/esm/action/server/ServerInteraction.js +0 -3
- package/dist/esm/action/server/ServerInteraction.js.map +1 -1
- package/dist/esm/bdx/flow/InboundFlow.js +1 -1
- package/dist/esm/bdx/flow/InboundFlow.js.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts +3 -3
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +1 -8
- package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts +1 -1
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +1 -1
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/package.json +6 -6
- package/src/action/Interactable.ts +1 -0
- package/src/action/client/ClientInteraction.ts +273 -235
- package/src/action/client/index.ts +1 -3
- package/src/action/client/subscription/ClientSubscribe.ts +8 -0
- package/src/action/client/subscription/ClientSubscription.ts +88 -0
- package/src/action/client/{ClientSubscriptionHandler.ts → subscription/ClientSubscriptionHandler.ts} +5 -2
- package/src/action/client/subscription/ClientSubscriptions.ts +150 -0
- package/src/action/client/subscription/PeerSubscription.ts +51 -0
- package/src/action/client/subscription/SustainedSubscription.ts +199 -0
- package/src/action/client/subscription/index.ts +12 -0
- package/src/action/errors.ts +11 -6
- package/src/action/request/Subscribe.ts +2 -2
- package/src/action/response/ReadResult.ts +1 -1
- package/src/action/response/SubscribeResult.ts +2 -1
- package/src/action/server/ServerInteraction.ts +0 -5
- package/src/bdx/flow/InboundFlow.ts +1 -1
- package/src/interaction/SubscriptionClient.ts +4 -9
- package/src/protocol/MessageExchange.ts +1 -1
- package/dist/cjs/action/client/ClientSubscription.d.ts +0 -18
- package/dist/cjs/action/client/ClientSubscription.d.ts.map +0 -1
- package/dist/cjs/action/client/ClientSubscription.js.map +0 -6
- package/dist/cjs/action/client/ClientSubscriptionHandler.d.ts.map +0 -1
- package/dist/cjs/action/client/ClientSubscriptionHandler.js.map +0 -6
- package/dist/cjs/action/client/ClientSubscriptions.d.ts.map +0 -1
- package/dist/cjs/action/client/ClientSubscriptions.js +0 -145
- package/dist/cjs/action/client/ClientSubscriptions.js.map +0 -6
- package/dist/esm/action/client/ClientSubscription.d.ts +0 -18
- package/dist/esm/action/client/ClientSubscription.d.ts.map +0 -1
- package/dist/esm/action/client/ClientSubscription.js +0 -6
- package/dist/esm/action/client/ClientSubscription.js.map +0 -6
- package/dist/esm/action/client/ClientSubscriptionHandler.d.ts.map +0 -1
- package/dist/esm/action/client/ClientSubscriptionHandler.js.map +0 -6
- package/dist/esm/action/client/ClientSubscriptions.d.ts.map +0 -1
- package/dist/esm/action/client/ClientSubscriptions.js +0 -135
- package/dist/esm/action/client/ClientSubscriptions.js.map +0 -6
- package/src/action/client/ClientSubscription.ts +0 -19
- package/src/action/client/ClientSubscriptions.ts +0 -178
- /package/dist/cjs/action/client/{ClientSubscriptionHandler.d.ts → subscription/ClientSubscriptionHandler.d.ts} +0 -0
- /package/dist/esm/action/client/{ClientSubscriptionHandler.d.ts → subscription/ClientSubscriptionHandler.d.ts} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/action/client/subscription/ClientSubscriptionHandler.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,eAAe,cAAc;AAClD,SAAS,yBAAyB;AAClC,SAAS,0CAA0C;AAInD,SAAS,qBAAqB;AAC9B,SAAqB,yBAAyB,cAAc;AAC5D,SAAS,kBAAkB;AAG3B,MAAM,SAAS,OAAO,IAAI,2BAA2B;AAK9C,MAAM,0BAAqD;AAAA,EAC9D,KAAK;AAAA,EACL,wBAAwB;AAAA,EAExB;AAAA,EAEA,YAAY,eAAoC;AAC5C,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEA,MAAM,cAAc,UAA2B;AAC3C,UAAM,YAAY,IAAI,mCAAmC,QAAQ;AAEjE,UAAM,UAAU,UAAU,gBAAgB;AAE1C,UAAM,mBAAmB,MAAM,QAAQ,KAAK;AAC5C,QAAI,iBAAiB,MAAM;AACvB,YAAM,IAAI,cAAc,4CAA4C;AAAA,IACxE;AACA,UAAM,gBAAgB,iBAAiB;AAGvC,UAAM,EAAE,eAAe,IAAI;AAC3B,QAAI,mBAAmB,QAAW;AAC9B,aAAO,MAAM,0DAA0D;AACvE,YAAM,YAAY,WAAW,MAAS;AACtC;AAAA,IACJ;AAGA,UAAM,EAAE,QAAQ,IAAI,SAAS;AAC7B,kBAAc,OAAO,OAAO;AAC5B,UAAM,eAAe,KAAK,eAAe,QAAQ,QAAQ,aAAa,cAAc;AACpF,QAAI,iBAAiB,QAAW;AAC5B,aAAO,MAAM,oDAAoD,WAAW,OAAO,cAAc,CAAC;AAClG,YAAM,YAAY,WAAW,cAAc;AAC3C;AAAA,IACJ;AAGA,QAAI,CAAC,cAAc,kBAAkB,UAAU,CAAC,cAAc,cAAc,QAAQ;AAChF,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AACrB;AAAA,IACJ;AAGA,QAAI;AACA,mBAAa,YAAY;AAEzB,UAAI,aAAa,QAAQ,SAAS;AAC9B,cAAM,aAAa,QAAQ,QAAQ,eAAe,eAAe,SAAS,SAAS,CAAC;AAAA,MACxF,OAAO;AAIH,yBAAiB,UAAU,QAAQ;AAAA,MACvC;AAAA,IACJ,UAAE;AACE,mBAAa,YAAY;AACzB,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AAAA,EAAC;AACnB;AAEA,eAAe,YAAY,WAA+C,gBAAiC;AACvG,QAAM,UAAU,WAAW,OAAO,qBAAqB;AAAA,IACnD,4BAA4B;AAAA,IAC5B,YAAY;AAAA,MACR,OAAO;AAAA,IACX;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM;AAC1B;AAOA,gBAAgB,eACZ,eACA,cACA,WACU;AACV,QAAM,WAAW,aAAa;AAE9B,QAAM,EAAE,eAAe,IAAI;AAE3B,mBAAiB,UAAU,cAAc;AACrC,UAAM,UAAU,kBAAkB,MAAM;AAExC,QAAI,QAAQ,mBAAmB,QAAW;AACtC,aAAO;AAAA,QACH;AAAA,QACA,WAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AAAA,IACvD;AAEA,QAAI,QAAQ,mBAAmB,gBAAgB;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,WAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM;AAAA,EAC3B;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -3,27 +3,34 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Subscribe } from "#action/request/Subscribe.js";
|
|
7
6
|
import { ReadResult } from "#action/response/ReadResult.js";
|
|
8
|
-
import { ActiveSubscription } from "#action/response/SubscribeResult.js";
|
|
9
7
|
import { Environment, Environmental } from "#general";
|
|
10
8
|
import { SubscriptionId } from "#interaction/Subscription.js";
|
|
11
|
-
import {
|
|
9
|
+
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
12
10
|
import { ClientSubscription } from "./ClientSubscription.js";
|
|
11
|
+
import type { PeerSubscription } from "./PeerSubscription.js";
|
|
13
12
|
/**
|
|
14
|
-
* A managed set of {@link
|
|
13
|
+
* A managed set of {@link ActiveSubscription} instances.
|
|
15
14
|
*/
|
|
16
15
|
export declare class ClientSubscriptions {
|
|
17
16
|
#private;
|
|
18
17
|
static [Environmental.create](env: Environment): ClientSubscriptions;
|
|
19
18
|
/**
|
|
20
|
-
* Register
|
|
19
|
+
* Register a user-facing {@link ClientSubscription}.
|
|
21
20
|
*/
|
|
22
|
-
|
|
21
|
+
addActive(subscription: ClientSubscription): void;
|
|
23
22
|
/**
|
|
24
|
-
*
|
|
23
|
+
* Register a {@link PeerSubscription}.
|
|
25
24
|
*/
|
|
26
|
-
|
|
25
|
+
addPeer(subscription: PeerSubscription): void;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieve a {@link PeerSubscription} by ID.
|
|
28
|
+
*/
|
|
29
|
+
getPeer(address: PeerAddress, id: SubscriptionId): PeerSubscription | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Unregister a {@link PeerSubscription}.
|
|
32
|
+
*/
|
|
33
|
+
delete(subscription: ClientSubscription): void;
|
|
27
34
|
/**
|
|
28
35
|
* Iterate over active subscriptions.
|
|
29
36
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAY,WAAW,EAAE,aAAa,EAAkC,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAmB;;IAK5B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,kBAAkB;IAI1C;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,gBAAgB;IAUtC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc;IAIhD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,kBAAkB;IAUvC;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAaX;;OAEG;IACH,UAAU;CAiDb;AAED,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BasicSet, Environmental, Millis, Time, Timestamp } from "#general";
|
|
7
|
+
class ClientSubscriptions {
|
|
8
|
+
#active = new BasicSet();
|
|
9
|
+
#peers = /* @__PURE__ */ new Map();
|
|
10
|
+
#timeout;
|
|
11
|
+
static [Environmental.create](env) {
|
|
12
|
+
const instance = new ClientSubscriptions();
|
|
13
|
+
env.set(ClientSubscriptions, instance);
|
|
14
|
+
return instance;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Register a user-facing {@link ClientSubscription}.
|
|
18
|
+
*/
|
|
19
|
+
addActive(subscription) {
|
|
20
|
+
this.#active.add(subscription);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Register a {@link PeerSubscription}.
|
|
24
|
+
*/
|
|
25
|
+
addPeer(subscription) {
|
|
26
|
+
let forPeer = this.#peers.get(subscription.peer);
|
|
27
|
+
if (forPeer === void 0) {
|
|
28
|
+
this.#peers.set(subscription.peer, forPeer = /* @__PURE__ */ new Map());
|
|
29
|
+
}
|
|
30
|
+
forPeer.set(subscription.subscriptionId, subscription);
|
|
31
|
+
this.resetTimer();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Retrieve a {@link PeerSubscription} by ID.
|
|
35
|
+
*/
|
|
36
|
+
getPeer(address, id) {
|
|
37
|
+
return this.#peers.get(address)?.get(id);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Unregister a {@link PeerSubscription}.
|
|
41
|
+
*/
|
|
42
|
+
delete(subscription) {
|
|
43
|
+
const forPeer = this.#peers.get(subscription.peer);
|
|
44
|
+
if (forPeer?.delete(subscription.subscriptionId)) {
|
|
45
|
+
if (!forPeer.size) {
|
|
46
|
+
this.#peers.delete(subscription.peer);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
this.#active.delete(subscription);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Iterate over active subscriptions.
|
|
53
|
+
*/
|
|
54
|
+
[Symbol.iterator]() {
|
|
55
|
+
return this.#active[Symbol.iterator]();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Terminate all subscriptions.
|
|
59
|
+
*/
|
|
60
|
+
async close() {
|
|
61
|
+
if (this.#timeout) {
|
|
62
|
+
this.#timeout.stop();
|
|
63
|
+
this.#timeout = void 0;
|
|
64
|
+
}
|
|
65
|
+
for (const subscription of this.#active) {
|
|
66
|
+
subscription.close();
|
|
67
|
+
}
|
|
68
|
+
await this.#active.empty;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Restart the timeout timer for the current set of active subscriptions.
|
|
72
|
+
*/
|
|
73
|
+
resetTimer() {
|
|
74
|
+
const now = Time.nowMs;
|
|
75
|
+
let nextTimeoutAt;
|
|
76
|
+
for (const peer of this.#peers.values()) {
|
|
77
|
+
for (const subscription of peer.values()) {
|
|
78
|
+
if (subscription.isReading) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
let { timeoutAt } = subscription;
|
|
82
|
+
if (timeoutAt === void 0) {
|
|
83
|
+
timeoutAt = subscription.timeoutAt = Timestamp(now + subscription.timeout);
|
|
84
|
+
} else if (timeoutAt < now) {
|
|
85
|
+
subscription.timedOut();
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (nextTimeoutAt === void 0 || nextTimeoutAt > timeoutAt) {
|
|
89
|
+
nextTimeoutAt = timeoutAt;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (nextTimeoutAt === void 0) {
|
|
94
|
+
this.#timeout?.stop();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this.#timeout) {
|
|
98
|
+
this.#timeout?.stop();
|
|
99
|
+
this.#timeout.interval = Millis(nextTimeoutAt - now);
|
|
100
|
+
} else {
|
|
101
|
+
this.#timeout = Time.getTimer(
|
|
102
|
+
"Subscription timeout",
|
|
103
|
+
Millis(nextTimeoutAt - now),
|
|
104
|
+
this.resetTimer.bind(this)
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
this.#timeout.start();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export {
|
|
111
|
+
ClientSubscriptions
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=ClientSubscriptions.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,UAAuB,eAAe,QAAQ,MAAa,iBAAiB;AAS9E,MAAM,oBAAoB;AAAA,EAC7B,UAAU,IAAI,SAA6B;AAAA,EAC3C,SAAS,oBAAI,IAAgD;AAAA,EAC7D;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,oBAAoB;AACzC,QAAI,IAAI,qBAAqB,QAAQ;AACrC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,cAAkC;AACxC,SAAK,QAAQ,IAAI,YAAY;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,cAAgC;AACpC,QAAI,UAAU,KAAK,OAAO,IAAI,aAAa,IAAI;AAC/C,QAAI,YAAY,QAAW;AACvB,WAAK,OAAO,IAAI,aAAa,MAAO,UAAU,oBAAI,IAAI,CAAE;AAAA,IAC5D;AACA,YAAQ,IAAI,aAAa,gBAAgB,YAAY;AAErD,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,SAAsB,IAAoB;AAC9C,WAAO,KAAK,OAAO,IAAI,OAAO,GAAG,IAAI,EAAE;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,cAAkC;AACrC,UAAM,UAAU,KAAK,OAAO,IAAI,aAAa,IAAI;AACjD,QAAI,SAAS,OAAO,aAAa,cAAc,GAAG;AAC9C,UAAI,CAAC,QAAQ,MAAM;AACf,aAAK,OAAO,OAAO,aAAa,IAAI;AAAA,MACxC;AAAA,IACJ;AACA,SAAK,QAAQ,OAAO,YAAY;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,KAAK,QAAQ,OAAO,QAAQ,EAAE;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU;AACf,WAAK,SAAS,KAAK;AACnB,WAAK,WAAW;AAAA,IACpB;AAEA,eAAW,gBAAgB,KAAK,SAAS;AACrC,mBAAa,MAAM;AAAA,IACvB;AAEA,UAAM,KAAK,QAAQ;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa;AACT,UAAM,MAAM,KAAK;AACjB,QAAI;AAGJ,eAAW,QAAQ,KAAK,OAAO,OAAO,GAAG;AACrC,iBAAW,gBAAgB,KAAK,OAAO,GAAG;AAEtC,YAAI,aAAa,WAAW;AACxB;AAAA,QACJ;AAGA,YAAI,EAAE,UAAU,IAAI;AACpB,YAAI,cAAc,QAAW;AAEzB,sBAAY,aAAa,YAAY,UAAU,MAAM,aAAa,OAAO;AAAA,QAC7E,WAAW,YAAY,KAAK;AAExB,uBAAa,SAAS;AACtB;AAAA,QACJ;AAGA,YAAI,kBAAkB,UAAa,gBAAgB,WAAW;AAC1D,0BAAgB;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,kBAAkB,QAAW;AAC7B,WAAK,UAAU,KAAK;AACpB;AAAA,IACJ;AAGA,QAAI,KAAK,UAAU;AACf,WAAK,UAAU,KAAK;AACpB,WAAK,SAAS,WAAW,OAAO,gBAAgB,GAAG;AAAA,IACvD,OAAO;AACH,WAAK,WAAW,KAAK;AAAA,QACjB;AAAA,QACA,OAAO,gBAAgB,GAAG;AAAA,QAC1B,KAAK,WAAW,KAAK,IAAI;AAAA,MAC7B;AAAA,IACJ;AACA,SAAK,SAAS,MAAM;AAAA,EACxB;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Duration, Timestamp } from "#general";
|
|
7
|
+
import type { SubscribeResponse } from "#types";
|
|
8
|
+
import { ClientSubscription } from "./ClientSubscription.js";
|
|
9
|
+
/**
|
|
10
|
+
* A Matter protocol-level subscription established with a peer.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PeerSubscription extends ClientSubscription {
|
|
13
|
+
readonly interactionModelRevision: number;
|
|
14
|
+
readonly maxInterval: number;
|
|
15
|
+
readonly subscriptionId: number;
|
|
16
|
+
isReading: boolean;
|
|
17
|
+
timeoutAt?: Timestamp;
|
|
18
|
+
constructor(config: PeerSubscription.Configuration);
|
|
19
|
+
get timeout(): Duration;
|
|
20
|
+
timedOut(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare namespace PeerSubscription {
|
|
23
|
+
interface Configuration extends ClientSubscription.Configuration {
|
|
24
|
+
response: SubscribeResponse;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=PeerSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeerSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/PeerSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,QAAQ,EAAmB,SAAS,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,SAAS,UAAS;IAElB,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,MAAM,EAAE,gBAAgB,CAAC,aAAa;IASlD,IAAI,OAAO,aAEV;IAED,QAAQ;CAUX;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE,QAAQ,EAAE,iBAAiB,CAAC;KAC/B;CACJ"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic, Duration, Millis, Seconds } from "#general";
|
|
7
|
+
import { ClientSubscription } from "./ClientSubscription.js";
|
|
8
|
+
class PeerSubscription extends ClientSubscription {
|
|
9
|
+
interactionModelRevision;
|
|
10
|
+
maxInterval;
|
|
11
|
+
subscriptionId;
|
|
12
|
+
isReading = false;
|
|
13
|
+
timeoutAt;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
super(config);
|
|
16
|
+
const { subscriptionId, interactionModelRevision, maxInterval } = config.response;
|
|
17
|
+
this.subscriptionId = subscriptionId;
|
|
18
|
+
this.interactionModelRevision = interactionModelRevision;
|
|
19
|
+
this.maxInterval = maxInterval;
|
|
20
|
+
}
|
|
21
|
+
get timeout() {
|
|
22
|
+
return Millis(Seconds(this.maxInterval) + (this.request.maxPeerResponseTime ?? 0));
|
|
23
|
+
}
|
|
24
|
+
timedOut() {
|
|
25
|
+
this.logger.info(
|
|
26
|
+
"Subscription",
|
|
27
|
+
Diagnostic.strong(this.subscriptionId),
|
|
28
|
+
"timed out after",
|
|
29
|
+
Diagnostic.strong(Duration.format(this.timeout))
|
|
30
|
+
);
|
|
31
|
+
this.close();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
PeerSubscription
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=PeerSubscription.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/action/client/subscription/PeerSubscription.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,UAAU,QAAQ,eAA0B;AAEjE,SAAS,0BAA0B;AAK5B,MAAM,yBAAyB,mBAAmB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ;AAAA,EAEA,YAAY,QAAwC;AAChD,UAAM,MAAM;AAEZ,UAAM,EAAE,gBAAgB,0BAA0B,YAAY,IAAI,OAAO;AACzE,SAAK,iBAAiB;AACtB,SAAK,2BAA2B;AAChC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,OAAO,QAAQ,KAAK,WAAW,KAAK,KAAK,QAAQ,uBAAuB,EAAE;AAAA,EACrF;AAAA,EAEA,WAAW;AACP,SAAK,OAAO;AAAA,MACR;AAAA,MACA,WAAW,OAAO,KAAK,cAAc;AAAA,MACrC;AAAA,MACA,WAAW,OAAO,SAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,SAAK,MAAM;AAAA,EACf;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Subscribe } from "#action/request/Subscribe.js";
|
|
7
|
+
import { AsyncObservableValue, RetrySchedule } from "#general";
|
|
8
|
+
import { SubscribeResponse } from "#types";
|
|
9
|
+
import { ClientSubscription } from "./ClientSubscription.js";
|
|
10
|
+
import { PeerSubscription } from "./PeerSubscription.js";
|
|
11
|
+
/**
|
|
12
|
+
* An {@link ActiveSubscription} that remains active regardless of the state of the peer.
|
|
13
|
+
*
|
|
14
|
+
* This class performs retries in response to connection errors and timeouts. The underlying Matter subscription and
|
|
15
|
+
* thus {@link ActiveSubscription#subscriptionId} may change if the peer goes offline or experiences transient errors.
|
|
16
|
+
*
|
|
17
|
+
* TODO - need to make underlying exchange provider abortable and work out how the retry schedule at this level
|
|
18
|
+
* interacts with the MDNS and secure protocol retries. Will require some refactoring at lower levels. Leaving
|
|
19
|
+
* retries at this level relatively conservative for now
|
|
20
|
+
*/
|
|
21
|
+
export declare class SustainedSubscription extends ClientSubscription {
|
|
22
|
+
#private;
|
|
23
|
+
constructor(config: SustainedSubscription.Configuration);
|
|
24
|
+
/**
|
|
25
|
+
* Emits when active state changes.
|
|
26
|
+
*/
|
|
27
|
+
get active(): AsyncObservableValue<[any, ...any[]]>;
|
|
28
|
+
/**
|
|
29
|
+
* Emits when inactive state changes.
|
|
30
|
+
*/
|
|
31
|
+
get inactive(): AsyncObservableValue<[any, ...any[]]>;
|
|
32
|
+
get interactionModelRevision(): number;
|
|
33
|
+
get maxInterval(): number;
|
|
34
|
+
get subscriptionId(): number;
|
|
35
|
+
}
|
|
36
|
+
export declare namespace SustainedSubscription {
|
|
37
|
+
/**
|
|
38
|
+
* Configuration for {@link SustainedSubscription}.
|
|
39
|
+
*/
|
|
40
|
+
interface Configuration extends ClientSubscription.Configuration {
|
|
41
|
+
/**
|
|
42
|
+
* Function to establish underlying subscription.
|
|
43
|
+
*/
|
|
44
|
+
subscribe: (request: Subscribe) => Promise<PeerSubscription>;
|
|
45
|
+
/**
|
|
46
|
+
* The schedule we use for retrying subscription connections.
|
|
47
|
+
*
|
|
48
|
+
* We handle reconnection separately at the exchange level. This retry schedule only applies to establishing a
|
|
49
|
+
* subscription once we have an active exchange. Exchange reconnection is handled by lower-level components.
|
|
50
|
+
*/
|
|
51
|
+
retries: RetrySchedule;
|
|
52
|
+
}
|
|
53
|
+
function assert(subscription: SubscribeResponse): asserts subscription is SustainedSubscription;
|
|
54
|
+
const NO_SUBSCRIPTION = -1;
|
|
55
|
+
const DefaultRetrySchedule: RetrySchedule.Configuration;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=SustainedSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SustainedSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/SustainedSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAEH,oBAAoB,EAMpB,aAAa,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;;gBAQ7C,MAAM,EAAE,qBAAqB,CAAC,aAAa;IAWvD;;OAEG;IACH,IAAI,MAAM,0CAET;IAED;;OAEG;IACH,IAAI,QAAQ,0CAEX;IAwED,IAAI,wBAAwB,WAE3B;IAED,IAAI,WAAW,WAEd;IAED,IAAI,cAAc,WAEjB;CACJ;AAED,yBAAiB,qBAAqB,CAAC;IACnC;;OAEG;IACH,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE;;WAEG;QACH,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE7D;;;;;WAKG;QACH,OAAO,EAAE,aAAa,CAAC;KAC1B;IAED,SAAgB,MAAM,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAIrG;IAEM,MAAM,eAAe,KAAK,CAAC;IAE3B,MAAM,oBAAoB,EAAE,aAAa,CAAC,aAgBhD,CAAC;CACL"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
asError,
|
|
8
|
+
AsyncObservableValue,
|
|
9
|
+
Diagnostic,
|
|
10
|
+
Duration,
|
|
11
|
+
Hours,
|
|
12
|
+
ImplementationError,
|
|
13
|
+
Logger,
|
|
14
|
+
Seconds,
|
|
15
|
+
Time
|
|
16
|
+
} from "#general";
|
|
17
|
+
import { Specification } from "#model";
|
|
18
|
+
import { ClientSubscription } from "./ClientSubscription.js";
|
|
19
|
+
const logger = Logger.get("ClientSubscription");
|
|
20
|
+
class SustainedSubscription extends ClientSubscription {
|
|
21
|
+
#request;
|
|
22
|
+
#subscription;
|
|
23
|
+
#retries;
|
|
24
|
+
#subscribe;
|
|
25
|
+
#active = AsyncObservableValue(false);
|
|
26
|
+
#inactive = AsyncObservableValue(true);
|
|
27
|
+
constructor(config) {
|
|
28
|
+
super(config);
|
|
29
|
+
const { request, retries, subscribe } = config;
|
|
30
|
+
this.#request = request;
|
|
31
|
+
this.#retries = retries;
|
|
32
|
+
this.#subscribe = subscribe;
|
|
33
|
+
this.done = this.#run();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Emits when active state changes.
|
|
37
|
+
*/
|
|
38
|
+
get active() {
|
|
39
|
+
return this.#active;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Emits when inactive state changes.
|
|
43
|
+
*/
|
|
44
|
+
get inactive() {
|
|
45
|
+
return this.#inactive;
|
|
46
|
+
}
|
|
47
|
+
async #run() {
|
|
48
|
+
const updated = this.#request.updated?.bind(this.#request);
|
|
49
|
+
while (true) {
|
|
50
|
+
const request = { ...this.#request, updated };
|
|
51
|
+
if (this.#request.updated) {
|
|
52
|
+
request.updated = this.#request.updated.bind(request);
|
|
53
|
+
}
|
|
54
|
+
const closed = new Promise((resolve) => {
|
|
55
|
+
request.closed = () => {
|
|
56
|
+
this.#subscription = void 0;
|
|
57
|
+
resolve();
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
for (const retry of this.#retries) {
|
|
61
|
+
try {
|
|
62
|
+
this.#subscription = await this.#subscribe(request);
|
|
63
|
+
break;
|
|
64
|
+
} catch (e) {
|
|
65
|
+
if (this.abort.aborted) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
logger.error(
|
|
69
|
+
`Failed to establish subscription to ${this.peer}, retry in ${Duration.format(retry)}:`,
|
|
70
|
+
Diagnostic.errorMessage(asError(e))
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
const readyForRetry = Time.sleep("subscription retry", retry);
|
|
74
|
+
await this.abort.race(readyForRetry);
|
|
75
|
+
readyForRetry.cancel();
|
|
76
|
+
if (this.abort.aborted) {
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
await this.#inactive.emit(false);
|
|
81
|
+
await this.#active.emit(true);
|
|
82
|
+
if (this.abort.aborted) {
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
await closed;
|
|
86
|
+
await this.#active.emit(false);
|
|
87
|
+
await this.#inactive.emit(true);
|
|
88
|
+
if (this.abort.aborted) {
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
if (this.abort.aborted) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
logger.error(`Replacing subscription to ${this.peer} due to timeout`);
|
|
95
|
+
}
|
|
96
|
+
this.#request.closed?.();
|
|
97
|
+
}
|
|
98
|
+
get interactionModelRevision() {
|
|
99
|
+
return this.#subscription?.interactionModelRevision ?? Specification.INTERACTION_MODEL_REVISION;
|
|
100
|
+
}
|
|
101
|
+
get maxInterval() {
|
|
102
|
+
return this.#subscription?.maxInterval ?? Hours.one;
|
|
103
|
+
}
|
|
104
|
+
get subscriptionId() {
|
|
105
|
+
return this.#subscription?.subscriptionId ?? SustainedSubscription.NO_SUBSCRIPTION;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
((SustainedSubscription2) => {
|
|
109
|
+
function assert(subscription) {
|
|
110
|
+
if (!(subscription instanceof SustainedSubscription2)) {
|
|
111
|
+
throw new ImplementationError(`Non-sustained subscription provided where sustained subscription required`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
SustainedSubscription2.assert = assert;
|
|
115
|
+
SustainedSubscription2.NO_SUBSCRIPTION = -1;
|
|
116
|
+
SustainedSubscription2.DefaultRetrySchedule = {
|
|
117
|
+
// Protocol-level level happens at the exchange level and is faster; this is an application-level retry. Retry
|
|
118
|
+
// more slowly so we do not hammer devices that are experiencing transient errors
|
|
119
|
+
initialInterval: Seconds(15),
|
|
120
|
+
// Similarly, we have an exchange. If a device repeatedly fails to establish a subscription, give it plenty of
|
|
121
|
+
// time to recover. It's even possible our subscription attempt is invalid for some reason, in which case we
|
|
122
|
+
// an aggressive interval would be particularly bad form
|
|
123
|
+
maximumInterval: Hours(1),
|
|
124
|
+
// No timeout; we run until aborted
|
|
125
|
+
timeout: void 0,
|
|
126
|
+
backoffFactor: 2,
|
|
127
|
+
jitterFactor: 0.25
|
|
128
|
+
};
|
|
129
|
+
})(SustainedSubscription || (SustainedSubscription = {}));
|
|
130
|
+
export {
|
|
131
|
+
SustainedSubscription
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=SustainedSubscription.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/action/client/subscription/SustainedSubscription.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["SustainedSubscription"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from "./ClientSubscribe.js";
|
|
7
|
+
export * from "./ClientSubscription.js";
|
|
8
|
+
export * from "./ClientSubscriptionHandler.js";
|
|
9
|
+
export * from "./ClientSubscriptions.js";
|
|
10
|
+
export * from "./PeerSubscription.js";
|
|
11
|
+
export * from "./SustainedSubscription.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from "./ClientSubscribe.js";
|
|
7
|
+
export * from "./ClientSubscription.js";
|
|
8
|
+
export * from "./ClientSubscriptionHandler.js";
|
|
9
|
+
export * from "./ClientSubscriptions.js";
|
|
10
|
+
export * from "./PeerSubscription.js";
|
|
11
|
+
export * from "./SustainedSubscription.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -7,7 +7,7 @@ import { Schema, SchemaErrorPath } from "#model";
|
|
|
7
7
|
import { Status, StatusResponseError } from "#types";
|
|
8
8
|
export { SchemaImplementationError } from "#model";
|
|
9
9
|
/**
|
|
10
|
-
* Thrown due operational schema
|
|
10
|
+
* Thrown due operational schema violation.
|
|
11
11
|
*/
|
|
12
12
|
export declare class SchemaViolationError extends StatusResponseError {
|
|
13
13
|
constructor(prefix: string, path: SchemaErrorPath, message: string, code: Status);
|
|
@@ -48,6 +48,12 @@ export declare class DatatypeError extends ValidateError {
|
|
|
48
48
|
export declare class ConstraintError extends ValidateError {
|
|
49
49
|
constructor(schema: Schema, path: SchemaErrorPath, message: string);
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Thrown when a numeric value can't fit in an integer type.
|
|
53
|
+
*/
|
|
54
|
+
export declare class IntegerRangeError extends ValidateError {
|
|
55
|
+
constructor(path: SchemaErrorPath, message: string);
|
|
56
|
+
}
|
|
51
57
|
/**
|
|
52
58
|
* Thrown when an enum value is not known based on Matter specification
|
|
53
59
|
*/
|
|
@@ -64,7 +70,6 @@ export declare class ConformanceError extends ValidateError {
|
|
|
64
70
|
* Thrown when an enum value is not valid based on conformance definitions
|
|
65
71
|
*/
|
|
66
72
|
export declare class EnumValueConformanceError extends ConformanceError {
|
|
67
|
-
constructor(schema: Schema, path: SchemaErrorPath, message: string);
|
|
68
73
|
}
|
|
69
74
|
/**
|
|
70
75
|
* Thrown for access attempts against a managed value that is no longer valid.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/action/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAc,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAEnD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC7C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAOnF;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,oBAAoB;gBACnC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;gBACpC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,oBAAoB;gBACrC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,oBAAoB;gBACvC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;gBAChC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM;CAOjF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAGrE;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;gBACxC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;gBACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAStF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/action/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAc,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAEnD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC7C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAOnF;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,oBAAoB;gBACnC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;gBACpC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,oBAAoB;gBACrC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,oBAAoB;gBACvC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAGpE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;gBAChC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM;CAOjF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAGrE;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;gBACpC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;gBACxC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;gBACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAStF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;CAAG;AAElE;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;gBAC/C,IAAI,EAAE,eAAe;CAGpC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;gBAC/C,IAAI,EAAE,eAAe;CAGpC"}
|
|
@@ -46,6 +46,11 @@ class ConstraintError extends ValidateError {
|
|
|
46
46
|
super(path, `Constraint "${schema.constraint}": ${message}`, Status.ConstraintError);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
class IntegerRangeError extends ValidateError {
|
|
50
|
+
constructor(path, message) {
|
|
51
|
+
super(path, message, Status.ConstraintError);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
49
54
|
class UnknownEnumValueError extends ValidateError {
|
|
50
55
|
constructor(path, message) {
|
|
51
56
|
super(path, message, Status.ConstraintError);
|
|
@@ -63,9 +68,6 @@ class ConformanceError extends ValidateError {
|
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
class EnumValueConformanceError extends ConformanceError {
|
|
66
|
-
constructor(schema, path, message) {
|
|
67
|
-
super(schema, path, message);
|
|
68
|
-
}
|
|
69
71
|
}
|
|
70
72
|
class ExpiredReferenceError extends SchemaViolationError {
|
|
71
73
|
constructor(path) {
|
|
@@ -83,6 +85,7 @@ export {
|
|
|
83
85
|
DatatypeError,
|
|
84
86
|
EnumValueConformanceError,
|
|
85
87
|
ExpiredReferenceError,
|
|
88
|
+
IntegerRangeError,
|
|
86
89
|
InvokeError,
|
|
87
90
|
PhantomReferenceError,
|
|
88
91
|
ReadError,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/action/errors.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,QAAQ,2BAA2B;AAE5C,SAAS,iCAAiC;AAKnC,MAAM,6BAA6B,oBAAoB;AAAA,EAC1D,YAAY,QAAgB,MAAuB,SAAiB,MAAc;AAC9E,UAAM,OAAO,GAAG,MAAM,IAAI,KAAK,QAAQ,IAAI,KAAK,OAAO,KAAK,IAAI;AAChE,UAAM,MAAM,IAAI;AAGhB,SAAK,UAAU;AAAA,EACnB;AACJ;AAKO,MAAM,kBAAkB,qBAAqB;AAAA,EAChD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,WAAW,MAAM,SAAS,QAAQ,OAAO,eAAe;AAAA,EAClE;AACJ;AAKO,MAAM,mBAAmB,qBAAqB;AAAA,EACjD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,WAAW,MAAM,SAAS,QAAQ,OAAO,gBAAgB;AAAA,EACnE;AACJ;AAKO,MAAM,oBAAoB,qBAAqB;AAAA,EAClD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,YAAY,MAAM,SAAS,QAAQ,OAAO,iBAAiB;AAAA,EACrE;AACJ;AAKO,MAAM,sBAAsB,qBAAqB;AAAA,EACpD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,cAAc,MAAM,SAAS,QAAQ,OAAO,eAAe;AAAA,EACrE;AACJ;AAKO,MAAM,sBAAsB,cAAc;AAAA,EAC7C,YAAY,MAAuB,MAAc,OAAgB,MAAe;AAC5E,QAAI,MAAM,GAAG,KAAK;AAClB,QAAI,IAAI,SAAS,IAAI;AACjB,YAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAAA,IAC9B;AACA,UAAM,MAAM,UAAU,GAAG,YAAY,IAAI,IAAI,IAAI;AAAA,EACrD;AACJ;AAKO,MAAM,wBAAwB,cAAc;AAAA,EAC/C,YAAY,QAAgB,MAAuB,SAAiB;AAChE,UAAM,MAAM,eAAgB,OAAsB,UAAU,MAAM,OAAO,IAAI,OAAO,eAAe;AAAA,EACvG;AACJ;AAKO,MAAM,8BAA8B,cAAc;AAAA,EACrD,YAAY,MAAuB,SAAiB;AAChD,UAAM,MAAM,SAAS,OAAO,eAAe;AAAA,EAC/C;AACJ;AAKO,MAAM,yBAAyB,cAAc;AAAA,EAChD,YAAY,QAAgB,MAAuB,SAAiB,QAAiB;AACjF,QAAI;AACJ,QAAI,QAAQ;AACR,eAAS,uBAAuB,MAAM;AAAA,IAC1C,OAAO;AACH,eAAS,gBAAiB,OAAsB,WAAW;AAAA,IAC/D;AACA,UAAM,MAAM,GAAG,MAAM,KAAK,OAAO,IAAI,OAAO,eAAe;AAAA,EAC/D;AACJ;AAKO,MAAM,kCAAkC,iBAAiB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,QAAQ,2BAA2B;AAE5C,SAAS,iCAAiC;AAKnC,MAAM,6BAA6B,oBAAoB;AAAA,EAC1D,YAAY,QAAgB,MAAuB,SAAiB,MAAc;AAC9E,UAAM,OAAO,GAAG,MAAM,IAAI,KAAK,QAAQ,IAAI,KAAK,OAAO,KAAK,IAAI;AAChE,UAAM,MAAM,IAAI;AAGhB,SAAK,UAAU;AAAA,EACnB;AACJ;AAKO,MAAM,kBAAkB,qBAAqB;AAAA,EAChD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,WAAW,MAAM,SAAS,QAAQ,OAAO,eAAe;AAAA,EAClE;AACJ;AAKO,MAAM,mBAAmB,qBAAqB;AAAA,EACjD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,WAAW,MAAM,SAAS,QAAQ,OAAO,gBAAgB;AAAA,EACnE;AACJ;AAKO,MAAM,oBAAoB,qBAAqB;AAAA,EAClD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,YAAY,MAAM,SAAS,QAAQ,OAAO,iBAAiB;AAAA,EACrE;AACJ;AAKO,MAAM,sBAAsB,qBAAqB;AAAA,EACpD,YAAY,MAAuB,SAAiB,MAAe;AAC/D,UAAM,cAAc,MAAM,SAAS,QAAQ,OAAO,eAAe;AAAA,EACrE;AACJ;AAKO,MAAM,sBAAsB,cAAc;AAAA,EAC7C,YAAY,MAAuB,MAAc,OAAgB,MAAe;AAC5E,QAAI,MAAM,GAAG,KAAK;AAClB,QAAI,IAAI,SAAS,IAAI;AACjB,YAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAAA,IAC9B;AACA,UAAM,MAAM,UAAU,GAAG,YAAY,IAAI,IAAI,IAAI;AAAA,EACrD;AACJ;AAKO,MAAM,wBAAwB,cAAc;AAAA,EAC/C,YAAY,QAAgB,MAAuB,SAAiB;AAChE,UAAM,MAAM,eAAgB,OAAsB,UAAU,MAAM,OAAO,IAAI,OAAO,eAAe;AAAA,EACvG;AACJ;AAKO,MAAM,0BAA0B,cAAc;AAAA,EACjD,YAAY,MAAuB,SAAiB;AAChD,UAAM,MAAM,SAAS,OAAO,eAAe;AAAA,EAC/C;AACJ;AAKO,MAAM,8BAA8B,cAAc;AAAA,EACrD,YAAY,MAAuB,SAAiB;AAChD,UAAM,MAAM,SAAS,OAAO,eAAe;AAAA,EAC/C;AACJ;AAKO,MAAM,yBAAyB,cAAc;AAAA,EAChD,YAAY,QAAgB,MAAuB,SAAiB,QAAiB;AACjF,QAAI;AACJ,QAAI,QAAQ;AACR,eAAS,uBAAuB,MAAM;AAAA,IAC1C,OAAO;AACH,eAAS,gBAAiB,OAAsB,WAAW;AAAA,IAC/D;AACA,UAAM,MAAM,GAAG,MAAM,KAAK,OAAO,IAAI,OAAO,eAAe;AAAA,EAC/D;AACJ;AAKO,MAAM,kCAAkC,iBAAiB;AAAC;AAK1D,MAAM,8BAA8B,qBAAqB;AAAA,EAC5D,YAAY,MAAuB;AAC/B,UAAM,eAAe,MAAM,oEAAoE,OAAO,OAAO;AAAA,EACjH;AACJ;AAKO,MAAM,8BAA8B,qBAAqB;AAAA,EAC5D,YAAY,MAAuB;AAC/B,UAAM,eAAe,MAAM,yBAAyB,OAAO,OAAO;AAAA,EACtE;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { ReadResult } from "#action/response/ReadResult.js";
|
|
7
|
-
import {
|
|
7
|
+
import { Duration } from "#general";
|
|
8
8
|
import { Read } from "./Read.js";
|
|
9
9
|
/**
|
|
10
10
|
* Defines a subscription.
|
|
@@ -24,7 +24,7 @@ export interface Subscribe extends Read {
|
|
|
24
24
|
/**
|
|
25
25
|
* Invoked when the subscription is no longer active.
|
|
26
26
|
*/
|
|
27
|
-
closed?: (
|
|
27
|
+
closed?: () => void;
|
|
28
28
|
}
|
|
29
29
|
export declare function Subscribe(options: Subscribe.Options, ...selectors: Read.Selector[]): Subscribe;
|
|
30
30
|
export declare namespace Subscribe {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscribe.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Subscribe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Subscribe.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Subscribe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAuB,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,mBAAmB,CAAC,EAAE,QAAQ,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAuB9F;AAED,yBAAiB,SAAS,CAAC;IACvB,UAAiB,OAAQ,SAAQ,IAAI,CAAC,OAAO;QACzC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,gBAAgB,CAAC,EAAE,QAAQ,CAAC;QAC5B,kBAAkB,CAAC,EAAE,QAAQ,CAAC;QAC9B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;KAChC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/action/request/Subscribe.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAmB,SAAS,kBAAkB;AAC9C,SAAS,6BAA6B;AACtC,SAAS,YAAY;AAyBd,SAAS,UAAU,YAA+B,WAAuC;AAC5F,QAAM,YAAY,KAAK,SAAS,GAAG,SAAS;AAE5C,QAAM,EAAE,mBAAmB,kBAAkB,mBAAmB,IAAI;AACpE,YAAU,oBAAoB,qBAAqB;AAEnD,MAAI,qBAAqB,QAAW;AAChC,QAAI,mBAAmB,KAAK,QAAQ,GAAG,gBAAgB,IAAI,YAAY;AACnE,YAAM,IAAI,sBAAsB,0BAA0B,QAAQ,GAAG,gBAAgB,CAAC,kBAAkB;AAAA,IAC5G;AACA,cAAU,mBAAmB;AAAA,EACjC;AAEA,MAAI,uBAAuB,QAAW;AAClC,QAAI,qBAAqB,KAAK,QAAQ,GAAG,kBAAkB,IAAI,YAAY;AACvE,YAAM,IAAI;AAAA,QACN,4BAA4B,QAAQ,GAAG,kBAAkB,CAAC;AAAA,MAC9D;AAAA,IACJ;AACA,cAAU,qBAAqB;AAAA,EACnC;AAEA,SAAO;AACX;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -13,7 +13,7 @@ import type { AttributeId, AttributePath, ClusterId, EndpointNumber, EventId, Ev
|
|
|
13
13
|
* Iteration occurs in chunks for performance reasons. A chunk is an iterable of reports, one per output attribute or
|
|
14
14
|
* event.
|
|
15
15
|
*/
|
|
16
|
-
export interface ReadResult<Chunk = ReadResult.Chunk> extends
|
|
16
|
+
export interface ReadResult<Chunk = ReadResult.Chunk> extends AsyncIterableIterator<ReadResult.Chunk> {
|
|
17
17
|
}
|
|
18
18
|
export declare namespace ReadResult {
|
|
19
19
|
type Chunk = Iterable<Report>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/ReadResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAE,SAAQ,
|
|
1
|
+
{"version":3,"file":"ReadResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/ReadResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAE,SAAQ,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC;CAAG;AAExG,yBAAiB,UAAU,CAAC;IACxB,KAAY,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErC,KAAY,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,CAAC;IAEjF,UAAiB,qBAAsB,SAAQ,aAAa;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;KAC5B;IAED,UAAiB,cAAc;QAC3B,IAAI,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC3B;IAED,UAAiB,eAAe;QAC5B,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B;IAED,UAAiB,iBAAkB,SAAQ,SAAS;QAChD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KACpB;IAED,UAAiB,UAAU;QACvB,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,QAAQ,CAAC;QACnB,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC3B;IAED,UAAiB,WAAW;QACxB,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B;CACJ"}
|