@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
|
@@ -1,18 +0,0 @@
|
|
|
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 { ActiveSubscription } from "#action/response/SubscribeResult.js";
|
|
8
|
-
import { Timestamp } from "#general";
|
|
9
|
-
/**
|
|
10
|
-
* The client view of an established Matter subscription.
|
|
11
|
-
*/
|
|
12
|
-
export interface ClientSubscription extends ActiveSubscription {
|
|
13
|
-
request: Subscribe;
|
|
14
|
-
timeoutAt?: Timestamp;
|
|
15
|
-
isClosed: boolean;
|
|
16
|
-
isReading: boolean;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=ClientSubscription.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscription.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscriptionHandler.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscriptionHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;;IAC7D,EAAE,SAA2B;IAC7B,qBAAqB,UAAQ;gBAIjB,aAAa,EAAE,mBAAmB;IAIxC,aAAa,CAAC,QAAQ,EAAE,eAAe;IAuDvC,KAAK;CACd"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/action/client/ClientSubscriptionHandler.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAkD;AAClD,+BAAkC;AAClC,kCAAmD;AAInD,mBAA4D;AAE5D,wBAA2B;AAf3B;AAAA;AAAA;AAAA;AAAA;AAiBA,MAAM,SAAS,sBAAO,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,+DAAmC,QAAQ;AAEjE,UAAM,UAAU,UAAU,gBAAgB;AAE1C,UAAM,mBAAmB,MAAM,QAAQ,KAAK;AAC5C,QAAI,iBAAiB,MAAM;AACvB,YAAM,IAAI,6BAAc,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,KAAK,eAAe,IAAI,cAAc;AAC3D,QAAI,iBAAiB,QAAW;AAC5B,aAAO,MAAM,oDAAoD,0BAAW,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,oBAAO,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,YAAM,8BAAW,aAAa;AAE9B,QAAM,EAAE,eAAe,IAAI;AAE3B,mBAAiB,UAAU,cAAc;AACrC,UAAM,cAAU,4CAAkB,MAAM;AAExC,QAAI,QAAQ,mBAAmB,QAAW;AACtC,aAAO;AAAA,QACH;AAAA,QACA,0BAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AAAA,IACvD;AAEA,QAAI,QAAQ,mBAAmB,gBAAgB;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,0BAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,cAAM,8BAAW,MAAM;AAAA,EAC3B;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAIH,WAAW,EACX,aAAa,EAOhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,mBAAmB;;IAK5B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB;IAgBxE;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,cAAc;IAItB;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAUX;;OAEG;IACH,UAAU;CA4Eb;AAMD,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var ClientSubscriptions_exports = {};
|
|
20
|
-
__export(ClientSubscriptions_exports, {
|
|
21
|
-
ClientSubscriptions: () => ClientSubscriptions
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(ClientSubscriptions_exports);
|
|
24
|
-
var import_general = require("#general");
|
|
25
|
-
/**
|
|
26
|
-
* @license
|
|
27
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
28
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
-
*/
|
|
30
|
-
const logger = import_general.Logger.get("ClientSubscriptions");
|
|
31
|
-
class ClientSubscriptions {
|
|
32
|
-
#subscriptions = new import_general.BasicSet();
|
|
33
|
-
#timeout;
|
|
34
|
-
#nextTimeoutAt;
|
|
35
|
-
static [import_general.Environmental.create](env) {
|
|
36
|
-
const instance = new ClientSubscriptions();
|
|
37
|
-
env.set(ClientSubscriptions, instance);
|
|
38
|
-
return instance;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Register an active subscription.
|
|
42
|
-
*/
|
|
43
|
-
add(request, response) {
|
|
44
|
-
const subscription = {
|
|
45
|
-
...response,
|
|
46
|
-
request,
|
|
47
|
-
close: () => this.#closeOne(subscription, new import_general.CanceledError()),
|
|
48
|
-
timeoutAt: void 0,
|
|
49
|
-
isClosed: false,
|
|
50
|
-
isReading: true
|
|
51
|
-
};
|
|
52
|
-
this.#subscriptions.add(subscription);
|
|
53
|
-
this.resetTimer();
|
|
54
|
-
return subscription;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Retrieve a subscription by ID.
|
|
58
|
-
*/
|
|
59
|
-
get(id) {
|
|
60
|
-
return this.#subscriptions.get("subscriptionId", id);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Iterate over active subscriptions.
|
|
64
|
-
*/
|
|
65
|
-
[Symbol.iterator]() {
|
|
66
|
-
return this.#subscriptions[Symbol.iterator]();
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Terminate all subscriptions.
|
|
70
|
-
*/
|
|
71
|
-
async close() {
|
|
72
|
-
if (this.#timeout) {
|
|
73
|
-
this.#timeout.stop();
|
|
74
|
-
this.#timeout = void 0;
|
|
75
|
-
}
|
|
76
|
-
for (const subscription of this.#subscriptions) {
|
|
77
|
-
subscription.close();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Restart the timeout timer for the current set of active subscriptions.
|
|
82
|
-
*/
|
|
83
|
-
resetTimer() {
|
|
84
|
-
const now = import_general.Time.nowMs;
|
|
85
|
-
let nextTimeoutAt;
|
|
86
|
-
for (const subscription of this.#subscriptions) {
|
|
87
|
-
if (subscription.isReading) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
let { timeoutAt: timeoutAtMs } = subscription;
|
|
91
|
-
if (timeoutAtMs === void 0) {
|
|
92
|
-
timeoutAtMs = subscription.timeoutAt = timeoutFor(subscription);
|
|
93
|
-
} else if (timeoutAtMs < now) {
|
|
94
|
-
this.#timeOut(subscription);
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
if (nextTimeoutAt === void 0 || nextTimeoutAt > timeoutAtMs) {
|
|
98
|
-
nextTimeoutAt = timeoutAtMs;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (nextTimeoutAt === void 0) {
|
|
102
|
-
this.#nextTimeoutAt = void 0;
|
|
103
|
-
this.#timeout?.stop();
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
if (nextTimeoutAt !== this.#nextTimeoutAt) {
|
|
107
|
-
this.#nextTimeoutAt = nextTimeoutAt;
|
|
108
|
-
if (this.#timeout) {
|
|
109
|
-
this.#timeout?.stop();
|
|
110
|
-
this.#timeout.interval = (0, import_general.Millis)(nextTimeoutAt - now);
|
|
111
|
-
} else {
|
|
112
|
-
this.#timeout = import_general.Time.getTimer(
|
|
113
|
-
"SubscriptionTimeout",
|
|
114
|
-
(0, import_general.Millis)(nextTimeoutAt - now),
|
|
115
|
-
this.resetTimer.bind(this)
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
#closeOne(subscription, cause) {
|
|
121
|
-
if (subscription.isClosed) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
subscription.isClosed = true;
|
|
125
|
-
this.#subscriptions.delete(subscription);
|
|
126
|
-
try {
|
|
127
|
-
subscription.request.closed?.(cause);
|
|
128
|
-
} catch (e) {
|
|
129
|
-
logger.error("Error canceling subscription", import_general.Diagnostic.strong(subscription.subscriptionId), e);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
#timeOut(registration) {
|
|
133
|
-
logger.info(
|
|
134
|
-
"Subscription",
|
|
135
|
-
import_general.Diagnostic.strong(registration.subscriptionId),
|
|
136
|
-
"timed out after",
|
|
137
|
-
import_general.Diagnostic.strong(`${timeoutFor(registration)}ms`)
|
|
138
|
-
);
|
|
139
|
-
this.#closeOne(registration, new import_general.TimeoutError());
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
function timeoutFor(subscription) {
|
|
143
|
-
return (0, import_general.Timestamp)(subscription.maxInterval * 1e3 + (subscription.request.maxPeerResponseTime ?? 0));
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=ClientSubscriptions.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/action/client/ClientSubscriptions.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
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 { ActiveSubscription } from "#action/response/SubscribeResult.js";
|
|
8
|
-
import { Timestamp } from "#general";
|
|
9
|
-
/**
|
|
10
|
-
* The client view of an established Matter subscription.
|
|
11
|
-
*/
|
|
12
|
-
export interface ClientSubscription extends ActiveSubscription {
|
|
13
|
-
request: Subscribe;
|
|
14
|
-
timeoutAt?: Timestamp;
|
|
15
|
-
isClosed: boolean;
|
|
16
|
-
isReading: boolean;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=ClientSubscription.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscription.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscriptionHandler.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscriptionHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;;IAC7D,EAAE,SAA2B;IAC7B,qBAAqB,UAAQ;gBAIjB,aAAa,EAAE,mBAAmB;IAIxC,aAAa,CAAC,QAAQ,EAAE,eAAe;IAuDvC,KAAK;CACd"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/action/client/ClientSubscriptionHandler.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,eAAe,cAAc;AAClD,SAAS,yBAAyB;AAClC,SAAS,0CAA0C;AAInD,SAAqB,yBAAyB,cAAc;AAE5D,SAAS,kBAAkB;AAE3B,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,KAAK,eAAe,IAAI,cAAc;AAC3D,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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAIH,WAAW,EACX,aAAa,EAOhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,mBAAmB;;IAK5B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB;IAgBxE;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,cAAc;IAItB;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAUX;;OAEG;IACH,UAAU;CA4Eb;AAMD,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import {
|
|
7
|
-
BasicSet,
|
|
8
|
-
CanceledError,
|
|
9
|
-
Diagnostic,
|
|
10
|
-
Environmental,
|
|
11
|
-
Logger,
|
|
12
|
-
Millis,
|
|
13
|
-
Time,
|
|
14
|
-
TimeoutError,
|
|
15
|
-
Timestamp
|
|
16
|
-
} from "#general";
|
|
17
|
-
const logger = Logger.get("ClientSubscriptions");
|
|
18
|
-
class ClientSubscriptions {
|
|
19
|
-
#subscriptions = new BasicSet();
|
|
20
|
-
#timeout;
|
|
21
|
-
#nextTimeoutAt;
|
|
22
|
-
static [Environmental.create](env) {
|
|
23
|
-
const instance = new ClientSubscriptions();
|
|
24
|
-
env.set(ClientSubscriptions, instance);
|
|
25
|
-
return instance;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Register an active subscription.
|
|
29
|
-
*/
|
|
30
|
-
add(request, response) {
|
|
31
|
-
const subscription = {
|
|
32
|
-
...response,
|
|
33
|
-
request,
|
|
34
|
-
close: () => this.#closeOne(subscription, new CanceledError()),
|
|
35
|
-
timeoutAt: void 0,
|
|
36
|
-
isClosed: false,
|
|
37
|
-
isReading: true
|
|
38
|
-
};
|
|
39
|
-
this.#subscriptions.add(subscription);
|
|
40
|
-
this.resetTimer();
|
|
41
|
-
return subscription;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Retrieve a subscription by ID.
|
|
45
|
-
*/
|
|
46
|
-
get(id) {
|
|
47
|
-
return this.#subscriptions.get("subscriptionId", id);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Iterate over active subscriptions.
|
|
51
|
-
*/
|
|
52
|
-
[Symbol.iterator]() {
|
|
53
|
-
return this.#subscriptions[Symbol.iterator]();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Terminate all subscriptions.
|
|
57
|
-
*/
|
|
58
|
-
async close() {
|
|
59
|
-
if (this.#timeout) {
|
|
60
|
-
this.#timeout.stop();
|
|
61
|
-
this.#timeout = void 0;
|
|
62
|
-
}
|
|
63
|
-
for (const subscription of this.#subscriptions) {
|
|
64
|
-
subscription.close();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Restart the timeout timer for the current set of active subscriptions.
|
|
69
|
-
*/
|
|
70
|
-
resetTimer() {
|
|
71
|
-
const now = Time.nowMs;
|
|
72
|
-
let nextTimeoutAt;
|
|
73
|
-
for (const subscription of this.#subscriptions) {
|
|
74
|
-
if (subscription.isReading) {
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
let { timeoutAt: timeoutAtMs } = subscription;
|
|
78
|
-
if (timeoutAtMs === void 0) {
|
|
79
|
-
timeoutAtMs = subscription.timeoutAt = timeoutFor(subscription);
|
|
80
|
-
} else if (timeoutAtMs < now) {
|
|
81
|
-
this.#timeOut(subscription);
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
if (nextTimeoutAt === void 0 || nextTimeoutAt > timeoutAtMs) {
|
|
85
|
-
nextTimeoutAt = timeoutAtMs;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (nextTimeoutAt === void 0) {
|
|
89
|
-
this.#nextTimeoutAt = void 0;
|
|
90
|
-
this.#timeout?.stop();
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (nextTimeoutAt !== this.#nextTimeoutAt) {
|
|
94
|
-
this.#nextTimeoutAt = nextTimeoutAt;
|
|
95
|
-
if (this.#timeout) {
|
|
96
|
-
this.#timeout?.stop();
|
|
97
|
-
this.#timeout.interval = Millis(nextTimeoutAt - now);
|
|
98
|
-
} else {
|
|
99
|
-
this.#timeout = Time.getTimer(
|
|
100
|
-
"SubscriptionTimeout",
|
|
101
|
-
Millis(nextTimeoutAt - now),
|
|
102
|
-
this.resetTimer.bind(this)
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
#closeOne(subscription, cause) {
|
|
108
|
-
if (subscription.isClosed) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
subscription.isClosed = true;
|
|
112
|
-
this.#subscriptions.delete(subscription);
|
|
113
|
-
try {
|
|
114
|
-
subscription.request.closed?.(cause);
|
|
115
|
-
} catch (e) {
|
|
116
|
-
logger.error("Error canceling subscription", Diagnostic.strong(subscription.subscriptionId), e);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
#timeOut(registration) {
|
|
120
|
-
logger.info(
|
|
121
|
-
"Subscription",
|
|
122
|
-
Diagnostic.strong(registration.subscriptionId),
|
|
123
|
-
"timed out after",
|
|
124
|
-
Diagnostic.strong(`${timeoutFor(registration)}ms`)
|
|
125
|
-
);
|
|
126
|
-
this.#closeOne(registration, new TimeoutError());
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
function timeoutFor(subscription) {
|
|
130
|
-
return Timestamp(subscription.maxInterval * 1e3 + (subscription.request.maxPeerResponseTime ?? 0));
|
|
131
|
-
}
|
|
132
|
-
export {
|
|
133
|
-
ClientSubscriptions
|
|
134
|
-
};
|
|
135
|
-
//# sourceMappingURL=ClientSubscriptions.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/action/client/ClientSubscriptions.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Subscribe } from "#action/request/Subscribe.js";
|
|
8
|
-
import { ActiveSubscription } from "#action/response/SubscribeResult.js";
|
|
9
|
-
import { Timestamp } from "#general";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The client view of an established Matter subscription.
|
|
13
|
-
*/
|
|
14
|
-
export interface ClientSubscription extends ActiveSubscription {
|
|
15
|
-
request: Subscribe;
|
|
16
|
-
timeoutAt?: Timestamp;
|
|
17
|
-
isClosed: boolean;
|
|
18
|
-
isReading: boolean;
|
|
19
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Subscribe } from "#action/request/Subscribe.js";
|
|
8
|
-
import { ReadResult } from "#action/response/ReadResult.js";
|
|
9
|
-
import { ActiveSubscription } from "#action/response/SubscribeResult.js";
|
|
10
|
-
import {
|
|
11
|
-
BasicSet,
|
|
12
|
-
CanceledError,
|
|
13
|
-
Diagnostic,
|
|
14
|
-
Environment,
|
|
15
|
-
Environmental,
|
|
16
|
-
Logger,
|
|
17
|
-
Millis,
|
|
18
|
-
Time,
|
|
19
|
-
TimeoutError,
|
|
20
|
-
Timer,
|
|
21
|
-
Timestamp,
|
|
22
|
-
} from "#general";
|
|
23
|
-
import { SubscriptionId } from "#interaction/Subscription.js";
|
|
24
|
-
import { SubscribeResponse } from "#types";
|
|
25
|
-
import { ClientSubscription } from "./ClientSubscription.js";
|
|
26
|
-
|
|
27
|
-
const logger = Logger.get("ClientSubscriptions");
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* A managed set of {@link ClientSubscription} instances.
|
|
31
|
-
*/
|
|
32
|
-
export class ClientSubscriptions {
|
|
33
|
-
#subscriptions = new BasicSet<ClientSubscription>();
|
|
34
|
-
#timeout?: Timer;
|
|
35
|
-
#nextTimeoutAt?: number;
|
|
36
|
-
|
|
37
|
-
static [Environmental.create](env: Environment) {
|
|
38
|
-
const instance = new ClientSubscriptions();
|
|
39
|
-
env.set(ClientSubscriptions, instance);
|
|
40
|
-
return instance;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Register an active subscription.
|
|
45
|
-
*/
|
|
46
|
-
add(request: Subscribe, response: SubscribeResponse): ActiveSubscription {
|
|
47
|
-
const subscription: ClientSubscription = {
|
|
48
|
-
...response,
|
|
49
|
-
request,
|
|
50
|
-
close: () => this.#closeOne(subscription, new CanceledError()),
|
|
51
|
-
timeoutAt: undefined,
|
|
52
|
-
isClosed: false,
|
|
53
|
-
isReading: true,
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
this.#subscriptions.add(subscription);
|
|
57
|
-
this.resetTimer();
|
|
58
|
-
|
|
59
|
-
return subscription;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Retrieve a subscription by ID.
|
|
64
|
-
*/
|
|
65
|
-
get(id: SubscriptionId) {
|
|
66
|
-
return this.#subscriptions.get("subscriptionId", id);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Iterate over active subscriptions.
|
|
71
|
-
*/
|
|
72
|
-
[Symbol.iterator]() {
|
|
73
|
-
return this.#subscriptions[Symbol.iterator]();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Terminate all subscriptions.
|
|
78
|
-
*/
|
|
79
|
-
async close() {
|
|
80
|
-
if (this.#timeout) {
|
|
81
|
-
this.#timeout.stop();
|
|
82
|
-
this.#timeout = undefined;
|
|
83
|
-
}
|
|
84
|
-
for (const subscription of this.#subscriptions) {
|
|
85
|
-
subscription.close();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Restart the timeout timer for the current set of active subscriptions.
|
|
91
|
-
*/
|
|
92
|
-
resetTimer() {
|
|
93
|
-
const now = Time.nowMs;
|
|
94
|
-
let nextTimeoutAt: Timestamp | undefined;
|
|
95
|
-
|
|
96
|
-
// Process each subscription
|
|
97
|
-
for (const subscription of this.#subscriptions) {
|
|
98
|
-
// If reading data reports, ignore for timeout purposes
|
|
99
|
-
if (subscription.isReading) {
|
|
100
|
-
continue;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Update timeout or expire if timed out
|
|
104
|
-
let { timeoutAt: timeoutAtMs } = subscription;
|
|
105
|
-
if (timeoutAtMs === undefined) {
|
|
106
|
-
// Set timeout time
|
|
107
|
-
timeoutAtMs = subscription.timeoutAt = timeoutFor(subscription);
|
|
108
|
-
} else if (timeoutAtMs < now) {
|
|
109
|
-
// Timeout
|
|
110
|
-
this.#timeOut(subscription);
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// If this is the earliest timeout, record
|
|
115
|
-
if (nextTimeoutAt === undefined || nextTimeoutAt > timeoutAtMs) {
|
|
116
|
-
nextTimeoutAt = timeoutAtMs;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// If no subscriptions require timeout, disable timer
|
|
121
|
-
if (nextTimeoutAt === undefined) {
|
|
122
|
-
this.#nextTimeoutAt = undefined;
|
|
123
|
-
this.#timeout?.stop();
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Create or update timer if not set for correct interval
|
|
128
|
-
if (nextTimeoutAt !== this.#nextTimeoutAt) {
|
|
129
|
-
this.#nextTimeoutAt = nextTimeoutAt;
|
|
130
|
-
if (this.#timeout) {
|
|
131
|
-
this.#timeout?.stop();
|
|
132
|
-
this.#timeout.interval = Millis(nextTimeoutAt - now);
|
|
133
|
-
} else {
|
|
134
|
-
this.#timeout = Time.getTimer(
|
|
135
|
-
"SubscriptionTimeout",
|
|
136
|
-
Millis(nextTimeoutAt - now),
|
|
137
|
-
this.resetTimer.bind(this),
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
#closeOne(subscription: ClientSubscription, cause: CanceledError | TimeoutError) {
|
|
144
|
-
if (subscription.isClosed) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
subscription.isClosed = true;
|
|
148
|
-
this.#subscriptions.delete(subscription);
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
subscription.request.closed?.(cause);
|
|
152
|
-
} catch (e) {
|
|
153
|
-
logger.error("Error canceling subscription", Diagnostic.strong(subscription.subscriptionId), e);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
#timeOut(registration: ClientSubscription) {
|
|
158
|
-
logger.info(
|
|
159
|
-
"Subscription",
|
|
160
|
-
Diagnostic.strong(registration.subscriptionId),
|
|
161
|
-
"timed out after",
|
|
162
|
-
Diagnostic.strong(`${timeoutFor(registration)}ms`),
|
|
163
|
-
);
|
|
164
|
-
|
|
165
|
-
// TODO - rather than closing, put into dormant state and resubscribe when connection reestablishes
|
|
166
|
-
this.#closeOne(registration, new TimeoutError());
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function timeoutFor(subscription: ClientSubscription) {
|
|
171
|
-
return Timestamp(subscription.maxInterval * 1000 + (subscription.request.maxPeerResponseTime ?? 0));
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export namespace ClientSubscriptions {
|
|
175
|
-
export interface Listener {
|
|
176
|
-
(reports: AsyncIterable<ReadResult.Chunk>): Promise<void>;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
File without changes
|
|
File without changes
|