@matter/general 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250819-0a388db8b
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/codec/DnsCodec.d.ts +8 -6
- package/dist/cjs/codec/DnsCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DnsCodec.js +10 -7
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/crypto/Crypto.d.ts +32 -36
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js +2 -1
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/log/Diagnostic.d.ts +4 -6
- package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
- package/dist/cjs/log/Diagnostic.js +6 -26
- package/dist/cjs/log/Diagnostic.js.map +1 -1
- package/dist/cjs/log/Logger.js +1 -1
- package/dist/cjs/log/Logger.js.map +1 -1
- package/dist/cjs/net/RetrySchedule.d.ts +10 -11
- package/dist/cjs/net/RetrySchedule.d.ts.map +1 -1
- package/dist/cjs/net/RetrySchedule.js +8 -7
- package/dist/cjs/net/RetrySchedule.js.map +1 -1
- package/dist/cjs/net/ServerAddress.d.ts +15 -4
- package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
- package/dist/cjs/net/ServerAddress.js +33 -3
- package/dist/cjs/net/ServerAddress.js.map +2 -2
- package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/UdpMulticastServer.js +2 -1
- package/dist/cjs/net/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/storage/StringifyTools.d.ts +2 -1
- package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
- package/dist/cjs/storage/StringifyTools.js +3 -0
- package/dist/cjs/storage/StringifyTools.js.map +1 -1
- package/dist/cjs/time/Duration.d.ts +47 -0
- package/dist/cjs/time/Duration.d.ts.map +1 -0
- package/dist/cjs/time/Duration.js +145 -0
- package/dist/cjs/time/Duration.js.map +6 -0
- package/dist/cjs/time/Time.d.ts +21 -19
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +44 -33
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/time/TimeUnit.d.ts +87 -0
- package/dist/cjs/time/TimeUnit.d.ts.map +1 -0
- package/dist/cjs/time/TimeUnit.js +88 -0
- package/dist/cjs/time/TimeUnit.js.map +6 -0
- package/dist/cjs/time/Timespan.d.ts +26 -0
- package/dist/cjs/time/Timespan.d.ts.map +1 -0
- package/dist/cjs/time/Timespan.js +52 -0
- package/dist/cjs/time/Timespan.js.map +6 -0
- package/dist/cjs/time/Timestamp.d.ts +47 -0
- package/dist/cjs/time/Timestamp.d.ts.map +1 -0
- package/dist/cjs/time/Timestamp.js +78 -0
- package/dist/cjs/time/Timestamp.js.map +6 -0
- package/dist/cjs/time/index.d.ts +4 -0
- package/dist/cjs/time/index.d.ts.map +1 -1
- package/dist/cjs/time/index.js +4 -0
- package/dist/cjs/time/index.js.map +1 -1
- package/dist/cjs/transaction/Status.d.ts +1 -1
- package/dist/cjs/transaction/Status.d.ts.map +1 -1
- package/dist/cjs/transaction/Status.js +2 -1
- package/dist/cjs/transaction/Status.js.map +1 -1
- package/dist/cjs/transaction/Tx.d.ts.map +1 -1
- package/dist/cjs/transaction/Tx.js +10 -8
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Cache.d.ts +5 -4
- package/dist/cjs/util/Cache.d.ts.map +1 -1
- package/dist/cjs/util/Cache.js +11 -11
- package/dist/cjs/util/Cache.js.map +1 -1
- package/dist/cjs/util/DataReadQueue.d.ts +2 -1
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +9 -3
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/DeepEqual.d.ts +13 -1
- package/dist/cjs/util/DeepEqual.d.ts.map +1 -1
- package/dist/cjs/util/DeepEqual.js +24 -5
- package/dist/cjs/util/DeepEqual.js.map +2 -2
- package/dist/cjs/util/Observable.d.ts +4 -3
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +16 -15
- package/dist/cjs/util/Observable.js.map +1 -1
- package/dist/cjs/util/PromiseQueue.d.ts +2 -1
- package/dist/cjs/util/PromiseQueue.d.ts.map +1 -1
- package/dist/cjs/util/PromiseQueue.js +2 -1
- package/dist/cjs/util/PromiseQueue.js.map +1 -1
- package/dist/cjs/util/Promises.d.ts +3 -2
- package/dist/cjs/util/Promises.d.ts.map +1 -1
- package/dist/cjs/util/Promises.js +4 -4
- package/dist/cjs/util/Promises.js.map +1 -1
- package/dist/esm/codec/DnsCodec.d.ts +8 -6
- package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
- package/dist/esm/codec/DnsCodec.js +10 -7
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/crypto/Crypto.d.ts +32 -36
- package/dist/esm/crypto/Crypto.d.ts.map +1 -1
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js +2 -1
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/log/Diagnostic.d.ts +4 -6
- package/dist/esm/log/Diagnostic.d.ts.map +1 -1
- package/dist/esm/log/Diagnostic.js +6 -26
- package/dist/esm/log/Diagnostic.js.map +1 -1
- package/dist/esm/log/Logger.js +1 -1
- package/dist/esm/log/Logger.js.map +1 -1
- package/dist/esm/net/RetrySchedule.d.ts +10 -11
- package/dist/esm/net/RetrySchedule.d.ts.map +1 -1
- package/dist/esm/net/RetrySchedule.js +8 -7
- package/dist/esm/net/RetrySchedule.js.map +1 -1
- package/dist/esm/net/ServerAddress.d.ts +15 -4
- package/dist/esm/net/ServerAddress.d.ts.map +1 -1
- package/dist/esm/net/ServerAddress.js +33 -3
- package/dist/esm/net/ServerAddress.js.map +2 -2
- package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/UdpMulticastServer.js +2 -1
- package/dist/esm/net/UdpMulticastServer.js.map +1 -1
- package/dist/esm/storage/StringifyTools.d.ts +2 -1
- package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
- package/dist/esm/storage/StringifyTools.js +3 -0
- package/dist/esm/storage/StringifyTools.js.map +1 -1
- package/dist/esm/time/Duration.d.ts +47 -0
- package/dist/esm/time/Duration.d.ts.map +1 -0
- package/dist/esm/time/Duration.js +125 -0
- package/dist/esm/time/Duration.js.map +6 -0
- package/dist/esm/time/Time.d.ts +21 -19
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +44 -33
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/time/TimeUnit.d.ts +87 -0
- package/dist/esm/time/TimeUnit.d.ts.map +1 -0
- package/dist/esm/time/TimeUnit.js +68 -0
- package/dist/esm/time/TimeUnit.js.map +6 -0
- package/dist/esm/time/Timespan.d.ts +26 -0
- package/dist/esm/time/Timespan.d.ts.map +1 -0
- package/dist/esm/time/Timespan.js +32 -0
- package/dist/esm/time/Timespan.js.map +6 -0
- package/dist/esm/time/Timestamp.d.ts +47 -0
- package/dist/esm/time/Timestamp.d.ts.map +1 -0
- package/dist/esm/time/Timestamp.js +58 -0
- package/dist/esm/time/Timestamp.js.map +6 -0
- package/dist/esm/time/index.d.ts +4 -0
- package/dist/esm/time/index.d.ts.map +1 -1
- package/dist/esm/time/index.js +4 -0
- package/dist/esm/time/index.js.map +1 -1
- package/dist/esm/transaction/Status.d.ts +1 -1
- package/dist/esm/transaction/Status.d.ts.map +1 -1
- package/dist/esm/transaction/Status.js +2 -1
- package/dist/esm/transaction/Status.js.map +1 -1
- package/dist/esm/transaction/Tx.d.ts.map +1 -1
- package/dist/esm/transaction/Tx.js +10 -8
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Cache.d.ts +5 -4
- package/dist/esm/util/Cache.d.ts.map +1 -1
- package/dist/esm/util/Cache.js +11 -11
- package/dist/esm/util/Cache.js.map +1 -1
- package/dist/esm/util/DataReadQueue.d.ts +2 -1
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +9 -3
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/DeepEqual.d.ts +13 -1
- package/dist/esm/util/DeepEqual.d.ts.map +1 -1
- package/dist/esm/util/DeepEqual.js +24 -5
- package/dist/esm/util/DeepEqual.js.map +2 -2
- package/dist/esm/util/Observable.d.ts +4 -3
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +16 -15
- package/dist/esm/util/Observable.js.map +1 -1
- package/dist/esm/util/PromiseQueue.d.ts +2 -1
- package/dist/esm/util/PromiseQueue.d.ts.map +1 -1
- package/dist/esm/util/PromiseQueue.js +2 -1
- package/dist/esm/util/PromiseQueue.js.map +1 -1
- package/dist/esm/util/Promises.d.ts +3 -2
- package/dist/esm/util/Promises.d.ts.map +1 -1
- package/dist/esm/util/Promises.js +4 -4
- package/dist/esm/util/Promises.js.map +1 -1
- package/package.json +3 -3
- package/src/codec/DnsCodec.ts +27 -8
- package/src/environment/Environment.ts +2 -1
- package/src/log/Diagnostic.ts +9 -37
- package/src/log/Logger.ts +1 -1
- package/src/net/RetrySchedule.ts +14 -14
- package/src/net/ServerAddress.ts +44 -5
- package/src/net/UdpMulticastServer.ts +2 -1
- package/src/storage/StringifyTools.ts +5 -0
- package/src/time/Duration.ts +181 -0
- package/src/time/Time.ts +50 -39
- package/src/time/TimeUnit.ts +159 -0
- package/src/time/Timespan.ts +52 -0
- package/src/time/Timestamp.ts +94 -0
- package/src/time/index.ts +4 -0
- package/src/transaction/Status.ts +2 -1
- package/src/transaction/Tx.ts +9 -7
- package/src/util/Cache.ts +11 -10
- package/src/util/DataReadQueue.ts +9 -3
- package/src/util/DeepEqual.ts +38 -13
- package/src/util/Observable.ts +19 -17
- package/src/util/PromiseQueue.ts +4 -2
- package/src/util/Promises.ts +6 -5
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Time } from "#time/Time.js";
|
|
7
|
+
import { Instant, Millis, Seconds } from "#time/TimeUnit.js";
|
|
7
8
|
import { ImplementationError } from "../MatterError.js";
|
|
8
9
|
import { Logger } from "../log/Logger.js";
|
|
9
10
|
import "../polyfills/disposable.js";
|
|
@@ -360,7 +361,7 @@ class ObserverGroup {
|
|
|
360
361
|
class QuietObservable extends BasicObservable {
|
|
361
362
|
#emitAutomatically = QuietObservable.defaults.emitAutomatically;
|
|
362
363
|
#suppressionEnabled = QuietObservable.defaults.suppressionEnabled;
|
|
363
|
-
#
|
|
364
|
+
#minimumEmitInterval = QuietObservable.defaults.minimumEmitInterval;
|
|
364
365
|
#shouldEmit;
|
|
365
366
|
#source;
|
|
366
367
|
#sink;
|
|
@@ -379,15 +380,15 @@ class QuietObservable extends BasicObservable {
|
|
|
379
380
|
return this;
|
|
380
381
|
}
|
|
381
382
|
set config(config) {
|
|
382
|
-
const { suppressionEnabled,
|
|
383
|
+
const { suppressionEnabled, minimumEmitInterval, emitAutomatically } = config;
|
|
383
384
|
if (emitAutomatically !== void 0) {
|
|
384
385
|
this.emitAutomatically = emitAutomatically;
|
|
385
386
|
}
|
|
386
387
|
if (suppressionEnabled !== void 0) {
|
|
387
388
|
this.suppressionEnabled = suppressionEnabled;
|
|
388
389
|
}
|
|
389
|
-
if (
|
|
390
|
-
this.
|
|
390
|
+
if (minimumEmitInterval !== void 0) {
|
|
391
|
+
this.minimumEmitInterval = minimumEmitInterval;
|
|
391
392
|
}
|
|
392
393
|
if ("shouldEmit" in config) {
|
|
393
394
|
this.shouldEmit = config.shouldEmit;
|
|
@@ -424,18 +425,18 @@ class QuietObservable extends BasicObservable {
|
|
|
424
425
|
set suppressionEnabled(value) {
|
|
425
426
|
this.#suppressionEnabled = value;
|
|
426
427
|
}
|
|
427
|
-
get
|
|
428
|
-
return this.#
|
|
428
|
+
get minimumEmitInterval() {
|
|
429
|
+
return this.#minimumEmitInterval;
|
|
429
430
|
}
|
|
430
|
-
set
|
|
431
|
-
if (this.#
|
|
431
|
+
set minimumEmitInterval(value) {
|
|
432
|
+
if (this.#minimumEmitInterval === value) {
|
|
432
433
|
return;
|
|
433
434
|
}
|
|
434
435
|
const needStart = this.#emitTimer !== void 0;
|
|
435
436
|
if (needStart) {
|
|
436
437
|
this.#stop();
|
|
437
438
|
}
|
|
438
|
-
this.#
|
|
439
|
+
this.#minimumEmitInterval = value;
|
|
439
440
|
if (needStart) {
|
|
440
441
|
this.#start();
|
|
441
442
|
}
|
|
@@ -500,8 +501,8 @@ class QuietObservable extends BasicObservable {
|
|
|
500
501
|
this.#deferredPayload = payload;
|
|
501
502
|
return;
|
|
502
503
|
}
|
|
503
|
-
const now = Time.nowMs
|
|
504
|
-
if (immediate || !this.#suppressionEnabled || this.#lastEmitAt === void 0 || this.#lastEmitAt + this.#
|
|
504
|
+
const now = Time.nowMs;
|
|
505
|
+
if (immediate || !this.#suppressionEnabled || this.#lastEmitAt === void 0 || this.#lastEmitAt + this.#minimumEmitInterval < now) {
|
|
505
506
|
return this.#emit(payload, now);
|
|
506
507
|
}
|
|
507
508
|
this.#deferredPayload = payload;
|
|
@@ -530,7 +531,7 @@ class QuietObservable extends BasicObservable {
|
|
|
530
531
|
}
|
|
531
532
|
#emit(payload, now) {
|
|
532
533
|
this.#deferredPayload = void 0;
|
|
533
|
-
this.#lastEmitAt = now ?? Time.nowMs
|
|
534
|
+
this.#lastEmitAt = now ?? Time.nowMs;
|
|
534
535
|
this.#stop();
|
|
535
536
|
super.emit(...payload);
|
|
536
537
|
}
|
|
@@ -540,9 +541,9 @@ class QuietObservable extends BasicObservable {
|
|
|
540
541
|
}
|
|
541
542
|
let timeout;
|
|
542
543
|
if (this.#lastEmitAt === void 0) {
|
|
543
|
-
timeout =
|
|
544
|
+
timeout = Instant;
|
|
544
545
|
} else {
|
|
545
|
-
timeout = this.#
|
|
546
|
+
timeout = Millis(this.#minimumEmitInterval - ((now ?? Time.nowMs) - this.#lastEmitAt));
|
|
546
547
|
}
|
|
547
548
|
if (timeout <= 0) {
|
|
548
549
|
this.emitNow();
|
|
@@ -563,7 +564,7 @@ class QuietObservable extends BasicObservable {
|
|
|
563
564
|
QuietObservable2.defaults = {
|
|
564
565
|
emitAutomatically: true,
|
|
565
566
|
suppressionEnabled: true,
|
|
566
|
-
|
|
567
|
+
minimumEmitInterval: Seconds.one
|
|
567
568
|
};
|
|
568
569
|
})(QuietObservable || (QuietObservable = {}));
|
|
569
570
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Observable.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["result", "event", "observers", "QuietObservable"]
|
|
6
6
|
}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Duration } from "#time/Duration.js";
|
|
6
7
|
/**
|
|
7
8
|
* A queue that processes promises with a given concurrency and delays after each promise if desired.
|
|
8
9
|
*/
|
|
9
10
|
export declare class PromiseQueue {
|
|
10
11
|
#private;
|
|
11
|
-
constructor(concurrency?: number, delay?:
|
|
12
|
+
constructor(concurrency?: number, delay?: Duration);
|
|
12
13
|
/**
|
|
13
14
|
* Add a promise to the queue. It returns a promise that can be awaited.
|
|
14
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromiseQueue.d.ts","sourceRoot":"","sources":["../../../src/util/PromiseQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"PromiseQueue.d.ts","sourceRoot":"","sources":["../../../src/util/PromiseQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQ7C;;GAEG;AACH,qBAAa,YAAY;;gBAMT,WAAW,SAAI,EAAE,KAAK,WAAU;IAK5C;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsD9C;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAS5B,+CAA+C;IAC/C,IAAI,KAAK,WAER;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Time } from "#time/Time.js";
|
|
7
|
+
import { Instant } from "#time/TimeUnit.js";
|
|
7
8
|
import { Logger } from "../log/Logger.js";
|
|
8
9
|
import { createPromise } from "./Promises.js";
|
|
9
10
|
const logger = Logger.get("PromiseQueue");
|
|
@@ -12,7 +13,7 @@ class PromiseQueue {
|
|
|
12
13
|
#queue = new Array();
|
|
13
14
|
#concurrency;
|
|
14
15
|
#runningCount = 0;
|
|
15
|
-
constructor(concurrency = 1, delay =
|
|
16
|
+
constructor(concurrency = 1, delay = Instant) {
|
|
16
17
|
this.#concurrency = concurrency;
|
|
17
18
|
this.#delay = delay;
|
|
18
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/PromiseQueue.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,cAAc;AAKjC,MAAM,aAAa;AAAA,EACb;AAAA,EACA,SAAS,IAAI,MAAsE;AAAA,EACnF;AAAA,EACT,gBAAgB;AAAA,EAEhB,YAAY,cAAc,GAAG,QAAQ,SAAS;AAC1C,SAAK,eAAe;AACpB,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAO,UAAwC;AAC3C,UAAM,EAAE,SAAS,UAAU,SAAS,IAAI,cAAiB;AAEzD,WAAO,MAAM,iCAAiC,KAAK,OAAO,SAAS,CAAC;AACpE,SAAK,OAAO,KAAK;AAAA,MACb,MAAM,MAAM,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ;AAAA,MACpD;AAAA,IACJ,CAAC;AACD,SAAK,KAAK;AACV,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,OAAa;AACT,QAAI,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,OAAO,WAAW,GAAG;AACrE;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,MACA,KAAK,OAAO;AAAA,MACZ;AAAA,MACA,KAAK;AAAA,IACT;AACA,UAAM,EAAE,KAAK,IAAI,KAAK,OAAO,MAAM,KAAK,CAAC;AACzC,QAAI,SAAS,QAAW;AACpB,WAAK;AACL,WAAK,EACA,MAAM,WAAS;AACZ,cAAM;AAAA,MACV,CAAC,EACA,QAAQ,MAAM;AACX,eAAO,MAAM,wCAAwC,KAAK,gBAAgB,CAAC;AAC3E,YAAI,KAAK,SAAS,GAAG;AAEjB,eAAK,MAAM,eAAe,KAAK,MAAM,EAChC,KAAK,MAAM,KAAK,SAAS,CAAC,EAC1B,MAAM,WAAS;AACZ,kBAAM;AAAA,UACV,CAAC;AAAA,QACT,OAAO;AACH,eAAK,SAAS;AAAA,QAClB;AAAA,MACJ,CAAC;AAAA,IACT;AAAA,EACJ;AAAA,EAEA,WAAiB;AACb,SAAK;AACL,SAAK,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAuB;AACzB,QAAI,QAAQ;AACR,iBAAW,EAAE,SAAS,KAAK,KAAK,QAAQ;AACpC,iBAAS;AAAA,MACb;AAAA,IACJ;AACA,SAAK,OAAO,SAAS;AAAA,EACzB;AAAA;AAAA,EAGA,IAAI,QAAQ;AACR,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACV,SAAK,MAAM,KAAK;AAAA,EACpB;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Copyright 2022-2025 Matter.js Authors
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
|
+
import { Duration } from "#time/Duration.js";
|
|
8
9
|
import { TimeoutError } from "../MatterError.js";
|
|
9
10
|
/**
|
|
10
11
|
* Obtain a promise with functions to resolve and reject.
|
|
@@ -29,11 +30,11 @@ export declare class PromiseTimeoutError extends TimeoutError {
|
|
|
29
30
|
*
|
|
30
31
|
* By default, rejects with {@link PromiseTimeoutError} on timeout but you can override by supplying {@link cancel}.
|
|
31
32
|
*
|
|
32
|
-
* @param
|
|
33
|
+
* @param timeout the timeout in milliseconds
|
|
33
34
|
* @param promise a promise that resolves or rejects when the timed task completes
|
|
34
35
|
* @param cancel invoked on timeout (default implementation throws {@link PromiseTimeoutError})
|
|
35
36
|
*/
|
|
36
|
-
export declare function withTimeout<T>(
|
|
37
|
+
export declare function withTimeout<T>(timeout: Duration, promise: Promise<T>, cancel?: AbortController | (() => void)): Promise<T>;
|
|
37
38
|
/**
|
|
38
39
|
* Return type for functions that are optionally asynchronous.
|
|
39
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Promises.d.ts","sourceRoot":"","sources":["../../../src/util/Promises.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"Promises.d.ts","sourceRoot":"","sources":["../../../src/util/Promises.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAiB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGhE;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,KAAK;IAChC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC,CAiBA;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAsBvF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AAExD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,EAAE,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAmDZ;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5D,eAAO,MAAM,YAAY;IACrB;;OAEG;OACA,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC;IAUtD;;;OAGG;SACE,CAAC,EAAE,EAAE,UAAU,EAAE,oBACR,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,YACzC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,WACxC,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GACnD,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IAsCxB;;OAEG;UACG,CAAC,EAAE,OAAO,oBACF,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,eACtC,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAKhE;;OAEG;YACK,CAAC,YACK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,cACvC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAC9C,YAAY,CAAC,CAAC,CAAC;;CA4DrB,CAAC"}
|
|
@@ -45,7 +45,7 @@ function anyPromise(promises) {
|
|
|
45
45
|
}
|
|
46
46
|
class PromiseTimeoutError extends TimeoutError {
|
|
47
47
|
}
|
|
48
|
-
async function withTimeout(
|
|
48
|
+
async function withTimeout(timeout, promise, cancel) {
|
|
49
49
|
let cancelFn;
|
|
50
50
|
if (typeof cancel === "function") {
|
|
51
51
|
cancelFn = cancel;
|
|
@@ -57,8 +57,8 @@ async function withTimeout(timeoutMs, promise, cancel) {
|
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
let cancelTimer;
|
|
60
|
-
const
|
|
61
|
-
const timer = Time.getTimer("promise-timeout",
|
|
60
|
+
const timedOut = new Promise((resolve, reject) => {
|
|
61
|
+
const timer = Time.getTimer("promise-timeout", timeout, () => {
|
|
62
62
|
try {
|
|
63
63
|
cancelFn();
|
|
64
64
|
} catch (e) {
|
|
@@ -83,7 +83,7 @@ async function withTimeout(timeoutMs, promise, cancel) {
|
|
|
83
83
|
throw e;
|
|
84
84
|
}
|
|
85
85
|
);
|
|
86
|
-
await Promise.all([
|
|
86
|
+
await Promise.all([timedOut, producer]);
|
|
87
87
|
return result;
|
|
88
88
|
}
|
|
89
89
|
const MaybePromise = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Promises.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20250819-0a388db8b",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@noble/curves": "^1.9.
|
|
36
|
+
"@noble/curves": "^1.9.7"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
39
|
+
"@matter/testing": "0.16.0-alpha.0-20250819-0a388db8b"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/codec/DnsCodec.ts
CHANGED
|
@@ -4,19 +4,28 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Duration } from "#time/Duration.js";
|
|
8
|
+
import { Seconds } from "#time/TimeUnit.js";
|
|
7
9
|
import { InternalError, NotImplementedError, UnexpectedDataError } from "../MatterError.js";
|
|
8
10
|
import { Bytes, Endian } from "../util/Bytes.js";
|
|
9
11
|
import { DataReader } from "../util/DataReader.js";
|
|
10
12
|
import { DataWriter } from "../util/DataWriter.js";
|
|
11
13
|
import { ipv4BytesToString, ipv4ToBytes, ipv6BytesToString, ipv6ToBytes, isIPv4, isIPv6 } from "../util/Ip.js";
|
|
12
14
|
|
|
15
|
+
export const DEFAULT_MDNS_TTL = Seconds(120);
|
|
16
|
+
|
|
13
17
|
/**
|
|
14
18
|
* The maximum MDNS message size to usually fit into one UDP network MTU packet. Data are split into multiple messages
|
|
15
19
|
* when needed.
|
|
16
20
|
*/
|
|
17
21
|
export const MAX_MDNS_MESSAGE_SIZE = 1232; // 1280bytes (IPv6 packet size) - 8bytes (UDP header) - 40bytes (IPv6 IP header, IPv4 is only 20bytes)
|
|
18
22
|
|
|
19
|
-
export const PtrRecord = (
|
|
23
|
+
export const PtrRecord = (
|
|
24
|
+
name: string,
|
|
25
|
+
ptr: string,
|
|
26
|
+
ttl = DEFAULT_MDNS_TTL,
|
|
27
|
+
flushCache = false,
|
|
28
|
+
): DnsRecord<string> => ({
|
|
20
29
|
name,
|
|
21
30
|
value: ptr,
|
|
22
31
|
ttl,
|
|
@@ -24,7 +33,7 @@ export const PtrRecord = (name: string, ptr: string, ttl = 120, flushCache = fal
|
|
|
24
33
|
recordClass: DnsRecordClass.IN,
|
|
25
34
|
flushCache,
|
|
26
35
|
});
|
|
27
|
-
export const ARecord = (name: string, ip: string, ttl =
|
|
36
|
+
export const ARecord = (name: string, ip: string, ttl = DEFAULT_MDNS_TTL, flushCache = false): DnsRecord<string> => ({
|
|
28
37
|
name,
|
|
29
38
|
value: ip,
|
|
30
39
|
ttl,
|
|
@@ -32,7 +41,12 @@ export const ARecord = (name: string, ip: string, ttl = 120, flushCache = false)
|
|
|
32
41
|
recordClass: DnsRecordClass.IN,
|
|
33
42
|
flushCache,
|
|
34
43
|
});
|
|
35
|
-
export const AAAARecord = (
|
|
44
|
+
export const AAAARecord = (
|
|
45
|
+
name: string,
|
|
46
|
+
ip: string,
|
|
47
|
+
ttl = DEFAULT_MDNS_TTL,
|
|
48
|
+
flushCache = false,
|
|
49
|
+
): DnsRecord<string> => ({
|
|
36
50
|
name,
|
|
37
51
|
value: ip,
|
|
38
52
|
ttl,
|
|
@@ -40,7 +54,12 @@ export const AAAARecord = (name: string, ip: string, ttl = 120, flushCache = fal
|
|
|
40
54
|
recordClass: DnsRecordClass.IN,
|
|
41
55
|
flushCache,
|
|
42
56
|
});
|
|
43
|
-
export const TxtRecord = (
|
|
57
|
+
export const TxtRecord = (
|
|
58
|
+
name: string,
|
|
59
|
+
entries: string[],
|
|
60
|
+
ttl = DEFAULT_MDNS_TTL,
|
|
61
|
+
flushCache = false,
|
|
62
|
+
): DnsRecord<string[]> => ({
|
|
44
63
|
name,
|
|
45
64
|
value: entries,
|
|
46
65
|
ttl,
|
|
@@ -51,7 +70,7 @@ export const TxtRecord = (name: string, entries: string[], ttl = 120, flushCache
|
|
|
51
70
|
export const SrvRecord = (
|
|
52
71
|
name: string,
|
|
53
72
|
srv: SrvRecordValue,
|
|
54
|
-
ttl =
|
|
73
|
+
ttl = DEFAULT_MDNS_TTL,
|
|
55
74
|
flushCache = false,
|
|
56
75
|
): DnsRecord<SrvRecordValue> => ({
|
|
57
76
|
name,
|
|
@@ -81,7 +100,7 @@ export type DnsRecord<T = unknown> = {
|
|
|
81
100
|
recordType: DnsRecordType;
|
|
82
101
|
recordClass: DnsRecordClass;
|
|
83
102
|
flushCache?: boolean;
|
|
84
|
-
ttl:
|
|
103
|
+
ttl: Duration;
|
|
85
104
|
value: T;
|
|
86
105
|
};
|
|
87
106
|
|
|
@@ -168,7 +187,7 @@ export class DnsCodec {
|
|
|
168
187
|
const classInt = reader.readUInt16();
|
|
169
188
|
const flushCache = (classInt & 0x8000) !== 0;
|
|
170
189
|
const recordClass = classInt & 0x7fff;
|
|
171
|
-
const ttl = reader.readUInt32();
|
|
190
|
+
const ttl = Seconds(reader.readUInt32());
|
|
172
191
|
const valueLength = reader.readUInt16();
|
|
173
192
|
const valueBytes = reader.readByteArray(valueLength);
|
|
174
193
|
const value = this.decodeRecordValue(valueBytes, recordType, message);
|
|
@@ -298,7 +317,7 @@ export class DnsCodec {
|
|
|
298
317
|
writer.writeByteArray(this.encodeQName(name));
|
|
299
318
|
writer.writeUInt16(recordType);
|
|
300
319
|
writer.writeUInt16(recordClass | (flushCache ? 0x8000 : 0));
|
|
301
|
-
writer.writeUInt32(ttl);
|
|
320
|
+
writer.writeUInt32(Seconds.of(ttl));
|
|
302
321
|
const encodedValue = this.encodeRecordValue(value, recordType);
|
|
303
322
|
writer.writeUInt16(encodedValue.byteLength);
|
|
304
323
|
writer.writeByteArray(encodedValue);
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Instant } from "#time/TimeUnit.js";
|
|
7
8
|
import { MaybePromise } from "#util/Promises.js";
|
|
8
9
|
import { DiagnosticSource } from "../log/DiagnosticSource.js";
|
|
9
10
|
import { Logger } from "../log/Logger.js";
|
|
@@ -227,7 +228,7 @@ export class Environment {
|
|
|
227
228
|
* Display tasks that supply diagnostics.
|
|
228
229
|
*/
|
|
229
230
|
diagnose() {
|
|
230
|
-
Time.getTimer("Diagnostics",
|
|
231
|
+
Time.getTimer("Diagnostics", Instant, () => {
|
|
231
232
|
try {
|
|
232
233
|
logger.notice("Diagnostics follow", DiagnosticSource);
|
|
233
234
|
} catch (e) {
|
package/src/log/Diagnostic.ts
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Duration } from "#time/Duration.js";
|
|
8
|
+
import { Time } from "#time/Time.js";
|
|
9
|
+
import { Timestamp } from "#time/Timestamp.js";
|
|
10
|
+
import { Millis } from "#time/TimeUnit.js";
|
|
7
11
|
import { Bytes } from "#util/Bytes.js";
|
|
8
12
|
import type { Lifecycle } from "../util/Lifecycle.js";
|
|
9
13
|
import { LogLevel } from "./LogLevel.js";
|
|
@@ -302,56 +306,24 @@ export namespace Diagnostic {
|
|
|
302
306
|
}
|
|
303
307
|
|
|
304
308
|
export interface Elapsed {
|
|
305
|
-
readonly startedAt:
|
|
306
|
-
readonly time:
|
|
309
|
+
readonly startedAt: Timestamp;
|
|
310
|
+
readonly time: Duration;
|
|
307
311
|
toString(): string;
|
|
308
312
|
}
|
|
309
313
|
|
|
310
|
-
/**
|
|
311
|
-
* Convert an interval to text.
|
|
312
|
-
*/
|
|
313
|
-
export function interval(ms: number) {
|
|
314
|
-
if (ms < 0) {
|
|
315
|
-
return `${(ms * 1000).toPrecision(3)}μs`;
|
|
316
|
-
} else if (ms < 1000) {
|
|
317
|
-
return `${ms.toPrecision(3)}ms`;
|
|
318
|
-
} else if (ms < 60000) {
|
|
319
|
-
return `${(ms / 1000).toPrecision(3)}s`;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
let days;
|
|
323
|
-
if (ms > 86_400_000) {
|
|
324
|
-
days = `${Math.floor(ms / 86_400_000)}d `;
|
|
325
|
-
ms %= 86_400_000;
|
|
326
|
-
} else {
|
|
327
|
-
days = "";
|
|
328
|
-
}
|
|
329
|
-
const hours = Math.floor(ms / 3_600_000)
|
|
330
|
-
.toString()
|
|
331
|
-
.padStart(2, "0");
|
|
332
|
-
ms %= 3_600_000;
|
|
333
|
-
const minutes = Math.floor(ms / 60_000)
|
|
334
|
-
.toString()
|
|
335
|
-
.padStart(2, "0");
|
|
336
|
-
ms %= 60_000;
|
|
337
|
-
const seconds = Math.floor(ms).toString().padStart(2, "0");
|
|
338
|
-
|
|
339
|
-
return `${days}${hours}:${minutes}:${seconds}`;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
314
|
/**
|
|
343
315
|
* Create a diagnostic that renders as elapsed time since creation.
|
|
344
316
|
*/
|
|
345
317
|
export function elapsed(): Elapsed {
|
|
346
318
|
return {
|
|
347
|
-
startedAt:
|
|
319
|
+
startedAt: Time.nowUs,
|
|
348
320
|
|
|
349
321
|
get time() {
|
|
350
|
-
return
|
|
322
|
+
return Millis(Time.nowUs - this.startedAt);
|
|
351
323
|
},
|
|
352
324
|
|
|
353
325
|
toString() {
|
|
354
|
-
return
|
|
326
|
+
return Duration.format(this.time);
|
|
355
327
|
},
|
|
356
328
|
};
|
|
357
329
|
}
|
package/src/log/Logger.ts
CHANGED
package/src/net/RetrySchedule.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Crypto } from "#crypto/Crypto.js";
|
|
8
|
+
import { Duration } from "#time/Duration.js";
|
|
9
|
+
import { Instant, Millis, Seconds } from "#time/TimeUnit.js";
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* An iterable of retry values based on a scheduling configuration.
|
|
@@ -29,31 +31,31 @@ export class RetrySchedule {
|
|
|
29
31
|
maximumInterval,
|
|
30
32
|
maximumCount,
|
|
31
33
|
jitterFactor = 0,
|
|
32
|
-
initialInterval =
|
|
34
|
+
initialInterval = Seconds.one,
|
|
33
35
|
backoffFactor = 2,
|
|
34
36
|
} = this.config;
|
|
35
37
|
|
|
36
38
|
let count = 0;
|
|
37
39
|
let baseInterval = initialInterval;
|
|
38
|
-
let timeSoFar =
|
|
40
|
+
let timeSoFar = Instant;
|
|
39
41
|
|
|
40
42
|
while ((timeout === undefined || timeSoFar < timeout) && (maximumCount === undefined || maximumCount > count)) {
|
|
41
43
|
count++;
|
|
42
44
|
const maxJitter = jitterFactor * baseInterval;
|
|
43
|
-
const jitter =
|
|
44
|
-
let interval = baseInterval + jitter;
|
|
45
|
+
const jitter = Millis.floor(Millis((maxJitter * this.#crypto.randomUint32) / Math.pow(2, 32)));
|
|
46
|
+
let interval = Millis(baseInterval + jitter);
|
|
45
47
|
|
|
46
48
|
if (timeout !== undefined && timeSoFar + interval > timeout) {
|
|
47
|
-
interval = timeout - timeSoFar;
|
|
49
|
+
interval = Millis(timeout - timeSoFar);
|
|
48
50
|
}
|
|
49
51
|
if (maximumInterval !== undefined && interval > maximumInterval) {
|
|
50
52
|
interval = maximumInterval;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
yield interval;
|
|
54
|
-
timeSoFar
|
|
56
|
+
timeSoFar = Millis(timeSoFar + interval);
|
|
55
57
|
|
|
56
|
-
baseInterval
|
|
58
|
+
baseInterval = Millis(baseInterval * backoffFactor);
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -61,16 +63,14 @@ export class RetrySchedule {
|
|
|
61
63
|
export namespace RetrySchedule {
|
|
62
64
|
/**
|
|
63
65
|
* Configuration parameters for retry schedule.
|
|
64
|
-
*
|
|
65
|
-
* All intervals are in milliseconds.
|
|
66
66
|
*/
|
|
67
67
|
export interface Configuration {
|
|
68
68
|
/**
|
|
69
|
-
* Overall timeout
|
|
69
|
+
* Overall timeout.
|
|
70
70
|
*
|
|
71
71
|
* Leave undefined to allow indefinite transmission.
|
|
72
72
|
*/
|
|
73
|
-
readonly timeout?:
|
|
73
|
+
readonly timeout?: Duration;
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* Maximum number of occurrences (including first).
|
|
@@ -82,9 +82,9 @@ export namespace RetrySchedule {
|
|
|
82
82
|
/**
|
|
83
83
|
* Interval between first request and final interval.
|
|
84
84
|
*
|
|
85
|
-
* Defaults to
|
|
85
|
+
* Defaults to 1s.
|
|
86
86
|
*/
|
|
87
|
-
readonly initialInterval?:
|
|
87
|
+
readonly initialInterval?: Duration;
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
90
|
* Multiplier for subsequent retries.
|
|
@@ -98,7 +98,7 @@ export namespace RetrySchedule {
|
|
|
98
98
|
*
|
|
99
99
|
* Leave undefined for interval to allow interval to grow continuously.
|
|
100
100
|
*/
|
|
101
|
-
readonly maximumInterval?:
|
|
101
|
+
readonly maximumInterval?: Duration;
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* Multiplier for retry jitter.
|