@matter/general 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250820-24939dd26
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
|
@@ -21,6 +21,7 @@ __export(RetrySchedule_exports, {
|
|
|
21
21
|
RetrySchedule: () => RetrySchedule
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(RetrySchedule_exports);
|
|
24
|
+
var import_TimeUnit = require("#time/TimeUnit.js");
|
|
24
25
|
/**
|
|
25
26
|
* @license
|
|
26
27
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -44,26 +45,26 @@ class RetrySchedule {
|
|
|
44
45
|
maximumInterval,
|
|
45
46
|
maximumCount,
|
|
46
47
|
jitterFactor = 0,
|
|
47
|
-
initialInterval =
|
|
48
|
+
initialInterval = import_TimeUnit.Seconds.one,
|
|
48
49
|
backoffFactor = 2
|
|
49
50
|
} = this.config;
|
|
50
51
|
let count = 0;
|
|
51
52
|
let baseInterval = initialInterval;
|
|
52
|
-
let timeSoFar =
|
|
53
|
+
let timeSoFar = import_TimeUnit.Instant;
|
|
53
54
|
while ((timeout === void 0 || timeSoFar < timeout) && (maximumCount === void 0 || maximumCount > count)) {
|
|
54
55
|
count++;
|
|
55
56
|
const maxJitter = jitterFactor * baseInterval;
|
|
56
|
-
const jitter =
|
|
57
|
-
let interval = baseInterval + jitter;
|
|
57
|
+
const jitter = import_TimeUnit.Millis.floor((0, import_TimeUnit.Millis)(maxJitter * this.#crypto.randomUint32 / Math.pow(2, 32)));
|
|
58
|
+
let interval = (0, import_TimeUnit.Millis)(baseInterval + jitter);
|
|
58
59
|
if (timeout !== void 0 && timeSoFar + interval > timeout) {
|
|
59
|
-
interval = timeout - timeSoFar;
|
|
60
|
+
interval = (0, import_TimeUnit.Millis)(timeout - timeSoFar);
|
|
60
61
|
}
|
|
61
62
|
if (maximumInterval !== void 0 && interval > maximumInterval) {
|
|
62
63
|
interval = maximumInterval;
|
|
63
64
|
}
|
|
64
65
|
yield interval;
|
|
65
|
-
timeSoFar
|
|
66
|
-
baseInterval
|
|
66
|
+
timeSoFar = (0, import_TimeUnit.Millis)(timeSoFar + interval);
|
|
67
|
+
baseInterval = (0, import_TimeUnit.Millis)(baseInterval * backoffFactor);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/RetrySchedule.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,sBAAyC;AARzC;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,cAAc;AAAA,EACvB;AAAA,EACS;AAAA,EAET,YAAY,QAAgB,QAAqC;AAC7D,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,EAAE,OAAO,QAAQ,IAAI;AACjB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,kBAAkB,wBAAQ;AAAA,MAC1B,gBAAgB;AAAA,IACpB,IAAI,KAAK;AAET,QAAI,QAAQ;AACZ,QAAI,eAAe;AACnB,QAAI,YAAY;AAEhB,YAAQ,YAAY,UAAa,YAAY,aAAa,iBAAiB,UAAa,eAAe,QAAQ;AAC3G;AACA,YAAM,YAAY,eAAe;AACjC,YAAM,SAAS,uBAAO,UAAM,wBAAQ,YAAY,KAAK,QAAQ,eAAgB,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAC7F,UAAI,eAAW,wBAAO,eAAe,MAAM;AAE3C,UAAI,YAAY,UAAa,YAAY,WAAW,SAAS;AACzD,uBAAW,wBAAO,UAAU,SAAS;AAAA,MACzC;AACA,UAAI,oBAAoB,UAAa,WAAW,iBAAiB;AAC7D,mBAAW;AAAA,MACf;AAEA,YAAM;AACN,sBAAY,wBAAO,YAAY,QAAQ;AAEvC,yBAAe,wBAAO,eAAe,aAAa;AAAA,IACtD;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,mBAAV;AAmDI,WAAS,cAAc,UAAyB,QAAwB;AAC3E,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AAAA,EACJ;AALO,EAAAA,eAAS;AAAA,GAnDH;",
|
|
5
5
|
"names": ["RetrySchedule"]
|
|
6
6
|
}
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Diagnostic } from "#log/Diagnostic.js";
|
|
7
|
+
import { Duration } from "#time/Duration.js";
|
|
8
|
+
import { Timestamp } from "#time/Timestamp.js";
|
|
6
9
|
export type ServerAddressIp = {
|
|
7
10
|
type: "udp";
|
|
8
11
|
ip: string;
|
|
@@ -14,10 +17,18 @@ export type ServerAddressBle = {
|
|
|
14
17
|
};
|
|
15
18
|
export interface Lifespan {
|
|
16
19
|
/** Beginning of lifespan (system time in milliseconds) */
|
|
17
|
-
discoveredAt:
|
|
18
|
-
/** Length of lifespan, if known (
|
|
19
|
-
ttl:
|
|
20
|
+
discoveredAt: Timestamp;
|
|
21
|
+
/** Length of lifespan, if known (seconds) */
|
|
22
|
+
ttl: Duration;
|
|
20
23
|
}
|
|
21
24
|
export type ServerAddress = (ServerAddressIp | ServerAddressBle) & Partial<Lifespan>;
|
|
22
|
-
export declare function
|
|
25
|
+
export declare function ServerAddress(definition: ServerAddress.Definition): ServerAddress;
|
|
26
|
+
export declare namespace ServerAddress {
|
|
27
|
+
function urlFor(address: ServerAddress): string;
|
|
28
|
+
function diagnosticFor(address: ServerAddress): Diagnostic;
|
|
29
|
+
function definitionOf(address: ServerAddress): Definition;
|
|
30
|
+
interface Definition extends Omit<ServerAddress, "ttl"> {
|
|
31
|
+
ttl?: Duration;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
23
34
|
//# sourceMappingURL=ServerAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACrB,0DAA0D;IAC1D,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACrB,0DAA0D;IAC1D,YAAY,EAAE,SAAS,CAAC;IAExB,6CAA6C;IAC7C,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,eAAe,GAAG,gBAAgB,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErF,wBAAgB,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,GAKzD,aAAa,CACrB;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAErD;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,cAcnD;IAED,SAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,CAE/D;IAED,UAAiB,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;QAC1D,GAAG,CAAC,EAAE,QAAQ,CAAC;KAClB;CACJ"}
|
|
@@ -18,15 +18,45 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var ServerAddress_exports = {};
|
|
20
20
|
__export(ServerAddress_exports, {
|
|
21
|
-
|
|
21
|
+
ServerAddress: () => ServerAddress
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ServerAddress_exports);
|
|
24
|
+
var import_Diagnostic = require("#log/Diagnostic.js");
|
|
25
|
+
var import_Duration = require("#time/Duration.js");
|
|
26
|
+
var import_TimeUnit = require("#time/TimeUnit.js");
|
|
24
27
|
/**
|
|
25
28
|
* @license
|
|
26
29
|
* Copyright 2022-2025 Matter.js Authors
|
|
27
30
|
* SPDX-License-Identifier: Apache-2.0
|
|
28
31
|
*/
|
|
29
|
-
function
|
|
30
|
-
return
|
|
32
|
+
function ServerAddress(definition) {
|
|
33
|
+
return {
|
|
34
|
+
discoveredAt: void 0,
|
|
35
|
+
...definition,
|
|
36
|
+
ttl: (0, import_TimeUnit.Seconds)(definition.ttl)
|
|
37
|
+
};
|
|
31
38
|
}
|
|
39
|
+
((ServerAddress2) => {
|
|
40
|
+
function urlFor(address) {
|
|
41
|
+
return address.type === "udp" ? `udp://[${address.ip}]:${address.port}` : `ble://${address.peripheralAddress}`;
|
|
42
|
+
}
|
|
43
|
+
ServerAddress2.urlFor = urlFor;
|
|
44
|
+
function diagnosticFor(address) {
|
|
45
|
+
const diagnostic = Array();
|
|
46
|
+
if (address.type === "udp") {
|
|
47
|
+
diagnostic.push("udp://", import_Diagnostic.Diagnostic.strong(address.ip), ":", address.port);
|
|
48
|
+
} else {
|
|
49
|
+
diagnostic.push("ble://", import_Diagnostic.Diagnostic.strong(address.peripheralAddress));
|
|
50
|
+
}
|
|
51
|
+
if ("ttl" in address && typeof address.ttl === "number") {
|
|
52
|
+
diagnostic.push(" ttl ", import_Duration.Duration.format(address.ttl));
|
|
53
|
+
}
|
|
54
|
+
return import_Diagnostic.Diagnostic.squash(...diagnostic);
|
|
55
|
+
}
|
|
56
|
+
ServerAddress2.diagnosticFor = diagnosticFor;
|
|
57
|
+
function definitionOf(address) {
|
|
58
|
+
return address;
|
|
59
|
+
}
|
|
60
|
+
ServerAddress2.definitionOf = definitionOf;
|
|
61
|
+
})(ServerAddress || (ServerAddress = {}));
|
|
32
62
|
//# sourceMappingURL=ServerAddress.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/ServerAddress.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAA2B;AAC3B,sBAAyB;AAEzB,sBAAwB;AATxB;AAAA;AAAA;AAAA;AAAA;AAgCO,SAAS,cAAc,YAAsC;AAChE,SAAO;AAAA,IACH,cAAc;AAAA,IACd,GAAG;AAAA,IACH,SAAK,yBAAQ,WAAW,GAAG;AAAA,EAC/B;AACJ;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAgC;AACnD,WAAO,QAAQ,SAAS,QAAQ,UAAU,QAAQ,EAAE,KAAK,QAAQ,IAAI,KAAK,SAAS,QAAQ,iBAAiB;AAAA,EAChH;AAFO,EAAAA,eAAS;AAIT,WAAS,cAAc,SAAwB;AAClD,UAAM,aAAa,MAAe;AAElC,QAAI,QAAQ,SAAS,OAAO;AACxB,iBAAW,KAAK,UAAU,6BAAW,OAAO,QAAQ,EAAE,GAAG,KAAK,QAAQ,IAAI;AAAA,IAC9E,OAAO;AACH,iBAAW,KAAK,UAAU,6BAAW,OAAO,QAAQ,iBAAiB,CAAC;AAAA,IAC1E;AAEA,QAAI,SAAS,WAAW,OAAO,QAAQ,QAAQ,UAAU;AACrD,iBAAW,KAAK,SAAS,yBAAS,OAAO,QAAQ,GAAG,CAAC;AAAA,IACzD;AAEA,WAAO,6BAAW,OAAO,GAAG,UAAU;AAAA,EAC1C;AAdO,EAAAA,eAAS;AAgBT,WAAS,aAAa,SAAoC;AAC7D,WAAO;AAAA,EACX;AAFO,EAAAA,eAAS;AAAA,GArBH;",
|
|
5
|
+
"names": ["ServerAddress"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../src/net/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../src/net/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,OAAO,EAA2B,MAAM,cAAc,CAAC;AAKhE,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAsDvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;WA3DhC,MAAM,CAAC,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACV,EAAE,yBAAyB;IAuC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO;IAUP,IAAI,YAAY,YAEf;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI;IAiBjF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;YA+C1D,sBAAsB;IAQ9B,KAAK;CAKd"}
|
|
@@ -22,6 +22,7 @@ __export(UdpMulticastServer_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(UdpMulticastServer_exports);
|
|
24
24
|
var import_MatterError = require("#MatterError.js");
|
|
25
|
+
var import_TimeUnit = require("#time/TimeUnit.js");
|
|
25
26
|
var import_Logger = require("../log/Logger.js");
|
|
26
27
|
var import_Cache = require("../util/Cache.js");
|
|
27
28
|
var import_Error = require("../util/Error.js");
|
|
@@ -89,7 +90,7 @@ class UdpMulticastServer {
|
|
|
89
90
|
broadcastChannels = new import_Cache.Cache(
|
|
90
91
|
"UDP broadcast channel",
|
|
91
92
|
(netInterface, iPv4) => this.createBroadcastChannel(netInterface, iPv4),
|
|
92
|
-
5
|
|
93
|
+
(0, import_TimeUnit.Minutes)(5),
|
|
93
94
|
async (_netInterface, channel) => (await channel).close()
|
|
94
95
|
);
|
|
95
96
|
get supportsIpv4() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/UdpMulticastServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAqC;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["netInterface"]
|
|
6
6
|
}
|
|
@@ -3,13 +3,14 @@
|
|
|
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
|
import { Bytes } from "../util/Bytes.js";
|
|
7
8
|
/** Supported base types to stringify the data for the storage that can be used as keys and also values. */
|
|
8
9
|
type SupportedStorageBaseTypes = string | number | boolean | bigint | Bytes;
|
|
9
10
|
/** Supported combined types to stringify the data for the storage that can be used as values. */
|
|
10
11
|
type SupportedComplexStorageTypes = Array<SupportedStorageBaseTypes | SupportedComplexStorageTypes> | {
|
|
11
12
|
[key: string]: SupportedStorageBaseTypes | SupportedComplexStorageTypes | null | undefined;
|
|
12
|
-
} | Array<[SupportedStorageBaseTypes, SupportedStorageBaseTypes | SupportedComplexStorageTypes | null | undefined]> | Map<SupportedStorageBaseTypes, SupportedStorageBaseTypes | SupportedComplexStorageTypes> | null | undefined;
|
|
13
|
+
} | Array<[SupportedStorageBaseTypes, SupportedStorageBaseTypes | SupportedComplexStorageTypes | null | undefined]> | Map<SupportedStorageBaseTypes, SupportedStorageBaseTypes | SupportedComplexStorageTypes> | Duration | null | undefined;
|
|
13
14
|
export type SupportedStorageTypes = SupportedStorageBaseTypes | SupportedComplexStorageTypes;
|
|
14
15
|
export declare function toJson(object: SupportedStorageTypes, spaces?: number): string;
|
|
15
16
|
export declare function fromJson(json: string): SupportedStorageTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringifyTools.d.ts","sourceRoot":"","sources":["../../../src/storage/StringifyTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"StringifyTools.d.ts","sourceRoot":"","sources":["../../../src/storage/StringifyTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,2GAA2G;AAC3G,KAAK,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5E,iGAAiG;AACjG,KAAK,4BAA4B,GAC3B,KAAK,CAAC,yBAAyB,GAAG,4BAA4B,CAAC,GAC/D;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,GAAG,4BAA4B,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAC9F,KAAK,CAAC,CAAC,yBAAyB,EAAE,yBAAyB,GAAG,4BAA4B,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAC/G,GAAG,CAAC,yBAAyB,EAAE,yBAAyB,GAAG,4BAA4B,CAAC,GACxF,QAAQ,GACR,IAAI,GACJ,SAAS,CAAC;AAEhB,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG,4BAA4B,CAAC;AAQ7F,wBAAgB,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA4B7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAgD5D"}
|
|
@@ -22,6 +22,7 @@ __export(StringifyTools_exports, {
|
|
|
22
22
|
toJson: () => toJson
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(StringifyTools_exports);
|
|
25
|
+
var import_TimeUnit = require("#time/TimeUnit.js");
|
|
25
26
|
var import_MatterError = require("../MatterError.js");
|
|
26
27
|
var import_Bytes = require("../util/Bytes.js");
|
|
27
28
|
var import_Type = require("../util/Type.js");
|
|
@@ -76,6 +77,8 @@ function fromJson(json) {
|
|
|
76
77
|
return new Map(
|
|
77
78
|
fromJson(data[JSON_SPECIAL_KEY_VALUE])
|
|
78
79
|
);
|
|
80
|
+
case "Interval":
|
|
81
|
+
return (0, import_TimeUnit.Millis)(data);
|
|
79
82
|
// TODO Remove in the future, leave here for now for backward compatibility?
|
|
80
83
|
case "AttributeId":
|
|
81
84
|
case "CaseAuthenticatedTag":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/storage/StringifyTools.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAAuB;AACvB,yBAAoC;AACpC,mBAAsB;AACtB,kBAAyB;AAVzB;AAAA;AAAA;AAAA;AAAA;AA4BA,MAAM,wBAAwB;AAG9B,MAAM,yBAAyB;AAExB,SAAS,OAAO,QAA+B,QAAyB;AAC3E,SAAO,KAAK;AAAA,IACR;AAAA,IACA,CAAC,MAAM,UAAU;AACb,UAAI,UAAU,QAAW;AACrB,eAAO,KAAK,qBAAqB;AAAA,MACrC;AACA,UAAI,OAAO,UAAU,UAAU;AAC3B,eAAO,KAAK,qBAAqB,eAAe,sBAAsB,MAAM,MAAM,SAAS,CAAC;AAAA,MAChG;AACA,UAAI,mBAAM,QAAQ,KAAK,GAAG;AACtB,eAAO,KAAK,qBAAqB,mBAAmB,sBAAsB,MAAM,mBAAM,MAAM,KAAK,CAAC;AAAA,MACtG;AAEA,cAAI,sBAAS,KAAK,KAAK,MAAM,SAAS,YAAY,MAAM,QAAQ,MAAM,IAAI,GAAG;AACzE,eAAO,KAAK,qBAAqB,mBAAmB,sBAAsB,MAAM,mBAAM;AAAA,UAClF,WAAW,KAAK,MAAM,IAAI;AAAA,QAC9B,CAAC;AAAA,MACL;AACA,UAAI,iBAAiB,KAAK;AACtB,eAAO,KAAK,qBAAqB,YAAY,sBAAsB,KAAK,KAAK;AAAA,UACzE,OAAO,MAAM,KAAK,MAAM,QAAQ,CAAC,CAAC;AAAA,QACtC,CAAC;AAAA,MACL;AACA,aAAO;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AACJ;AAEO,SAAS,SAAS,MAAqC;AAC1D,SAAO,KAAK,MAAM,MAAM,CAAC,MAAM,UAAU;AACrC,QAAI,OAAO,UAAU,YAAY,MAAM,WAAW,KAAK,qBAAqB,KAAK,KAAK,MAAM,SAAS,GAAG,GAAG;AACvG,YAAM,OAAO,KAAK,MAAM,KAAK;AAC7B,YAAM,SAAS,KAAK,qBAAqB;AACzC,cAAQ,QAAQ;AAAA,QACZ,KAAK;AACD,iBAAO;AAAA,QACX,KAAK;AACD,iBAAO,OAAO,KAAK,sBAAsB,CAAC;AAAA,QAC9C,KAAK;AACD,iBAAO,mBAAM,QAAQ,KAAK,sBAAsB,CAAC;AAAA,QACrD,KAAK;AACD,iBAAO,IAAI;AAAA,YACP,SAAS,KAAK,sBAAsB,CAAC;AAAA,UAIzC;AAAA,QACJ,KAAK;AACD,qBAAO,wBAAO,IAAI;AAAA;AAAA,QAGtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,iBAAO,KAAK,sBAAsB;AAAA,QACtC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,iBAAO,OAAO,KAAK,sBAAsB,CAAC;AAAA,QAE9C;AACI,gBAAM,IAAI,uCAAoB,wBAAwB,MAAM,EAAE;AAAA,MACtE;AAAA,IACJ;AACA,WAAO;AAAA,EACX,CAAC;AACL;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { UnexpectedDataError } from "#MatterError.js";
|
|
7
|
+
import { Branded } from "#util/Type.js";
|
|
8
|
+
/**
|
|
9
|
+
* A time interval.
|
|
10
|
+
*
|
|
11
|
+
* You can create an interval using a {@link TimeUnit} factory such as {@link Seconds}.
|
|
12
|
+
*
|
|
13
|
+
* Regardless of the input unit, intervals are stored as milliseconds. You can use {@link TimeUnit#of} to convert an
|
|
14
|
+
* interval to the correct unit.
|
|
15
|
+
*
|
|
16
|
+
* Math operators always result in millisecond values and can thus be converted back to an interval using
|
|
17
|
+
* {@link Millis}. For example, `Millisecs(Hours(1) + Minutes(30))` would produce a 90 minute {@link Duration}.
|
|
18
|
+
*/
|
|
19
|
+
export type Duration = Branded<number, "Interval"> | 0;
|
|
20
|
+
/**
|
|
21
|
+
* Create an interval from a number or string.
|
|
22
|
+
*/
|
|
23
|
+
export declare function Duration<T extends Duration | string>(source: T): Duration;
|
|
24
|
+
/**
|
|
25
|
+
* Thrown when a textual duration cannot be parsed.
|
|
26
|
+
*/
|
|
27
|
+
export declare class DurationFormatError extends UnexpectedDataError {
|
|
28
|
+
}
|
|
29
|
+
export declare namespace Duration {
|
|
30
|
+
/**
|
|
31
|
+
* Determine the greater of two intervals.
|
|
32
|
+
*/
|
|
33
|
+
function max(a: Duration, b: Duration): Duration;
|
|
34
|
+
/**
|
|
35
|
+
* Determine the lesser of two intervals.
|
|
36
|
+
*/
|
|
37
|
+
function min(a: Duration, b: Duration): Duration;
|
|
38
|
+
/**
|
|
39
|
+
* Convert an interval to a compact human readable string.
|
|
40
|
+
*/
|
|
41
|
+
function format<T extends Duration | undefined>(duration: T): T extends undefined ? string | undefined : string;
|
|
42
|
+
/**
|
|
43
|
+
* Parse a string into an interval.
|
|
44
|
+
*/
|
|
45
|
+
function parse(text: string): Duration;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Duration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Duration.d.ts","sourceRoot":"","sources":["../../../src/time/Duration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAazE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;CAAG;AAE/D,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EACjD,QAAQ,EAAE,CAAC,GACZ,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAmDnD;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GA8CX,QAAQ,CAC9B;CACJ"}
|
|
@@ -0,0 +1,145 @@
|
|
|
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 Duration_exports = {};
|
|
20
|
+
__export(Duration_exports, {
|
|
21
|
+
Duration: () => Duration,
|
|
22
|
+
DurationFormatError: () => DurationFormatError
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(Duration_exports);
|
|
25
|
+
var import_MatterError = require("#MatterError.js");
|
|
26
|
+
/**
|
|
27
|
+
* @license
|
|
28
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
29
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
+
*/
|
|
31
|
+
function Duration(source) {
|
|
32
|
+
if (typeof source === "string") {
|
|
33
|
+
return Duration.parse(source);
|
|
34
|
+
}
|
|
35
|
+
if (typeof source === "number") {
|
|
36
|
+
if (Number.isNaN(source)) {
|
|
37
|
+
throw new DurationFormatError(`A duration may not be NaN`);
|
|
38
|
+
}
|
|
39
|
+
return source;
|
|
40
|
+
}
|
|
41
|
+
throw new DurationFormatError(`Interval value is not a number (received ${typeof source})`);
|
|
42
|
+
}
|
|
43
|
+
class DurationFormatError extends import_MatterError.UnexpectedDataError {
|
|
44
|
+
}
|
|
45
|
+
((Duration2) => {
|
|
46
|
+
function max(a, b) {
|
|
47
|
+
if (b > a) {
|
|
48
|
+
return b;
|
|
49
|
+
}
|
|
50
|
+
return a;
|
|
51
|
+
}
|
|
52
|
+
Duration2.max = max;
|
|
53
|
+
function min(a, b) {
|
|
54
|
+
if (b < a) {
|
|
55
|
+
return b;
|
|
56
|
+
}
|
|
57
|
+
return a;
|
|
58
|
+
}
|
|
59
|
+
Duration2.min = min;
|
|
60
|
+
function format(duration) {
|
|
61
|
+
let ms = duration;
|
|
62
|
+
if (typeof ms !== "number" || Number.isNaN(ms)) {
|
|
63
|
+
return "invalid";
|
|
64
|
+
}
|
|
65
|
+
switch (ms) {
|
|
66
|
+
case 0:
|
|
67
|
+
return "0";
|
|
68
|
+
case Infinity:
|
|
69
|
+
return "forever";
|
|
70
|
+
case -Infinity:
|
|
71
|
+
return "until now";
|
|
72
|
+
}
|
|
73
|
+
if (ms < 0) {
|
|
74
|
+
return `${toPrecision(ms * 1e3, 3)}\u03BCs`;
|
|
75
|
+
} else if (ms < 1e3) {
|
|
76
|
+
return `${toPrecision(ms, 3)}ms`;
|
|
77
|
+
} else if (ms < 6e4) {
|
|
78
|
+
return `${toPrecision(ms / 1e3, 3)}s`;
|
|
79
|
+
}
|
|
80
|
+
const parts = Array();
|
|
81
|
+
if (ms > 864e5) {
|
|
82
|
+
parts.push(`${Math.floor(ms / 864e5)}d`);
|
|
83
|
+
ms %= 864e5;
|
|
84
|
+
}
|
|
85
|
+
const hours = Math.floor(ms / 36e5);
|
|
86
|
+
if (hours) {
|
|
87
|
+
parts.push(`${hours}h`);
|
|
88
|
+
}
|
|
89
|
+
ms %= 36e5;
|
|
90
|
+
const minutes = Math.floor(ms / 6e4);
|
|
91
|
+
if (minutes) {
|
|
92
|
+
parts.push(`${minutes}m`);
|
|
93
|
+
}
|
|
94
|
+
ms %= 6e4;
|
|
95
|
+
const seconds = Math.floor(ms / 1e3);
|
|
96
|
+
if (seconds) {
|
|
97
|
+
parts.push(`${seconds}s`);
|
|
98
|
+
}
|
|
99
|
+
return parts.join(" ");
|
|
100
|
+
}
|
|
101
|
+
Duration2.format = format;
|
|
102
|
+
function parse(text) {
|
|
103
|
+
const parts = text.split(/\s+/).filter((part) => part !== "");
|
|
104
|
+
let interval = 0;
|
|
105
|
+
for (const part of parts) {
|
|
106
|
+
const suffix = text.match(/[a-zμ]+/i)?.[1];
|
|
107
|
+
if (suffix === void 0) {
|
|
108
|
+
throw new DurationFormatError(`Interval component "${part}" is missing an time suffix`);
|
|
109
|
+
}
|
|
110
|
+
const value = Number(text.slice(text.length - suffix.length));
|
|
111
|
+
if (Number.isNaN(value)) {
|
|
112
|
+
throw new DurationFormatError(`Interval component "${part}" contains no numeric component`);
|
|
113
|
+
}
|
|
114
|
+
switch (suffix.toLowerCase()) {
|
|
115
|
+
case "\u03BCs":
|
|
116
|
+
case "us":
|
|
117
|
+
interval += value / 1e3;
|
|
118
|
+
break;
|
|
119
|
+
case "ms":
|
|
120
|
+
interval += value;
|
|
121
|
+
break;
|
|
122
|
+
case "s":
|
|
123
|
+
interval += value * 1e3;
|
|
124
|
+
break;
|
|
125
|
+
case "m":
|
|
126
|
+
interval += value * 6e4;
|
|
127
|
+
break;
|
|
128
|
+
case "h":
|
|
129
|
+
interval += value * 36e5;
|
|
130
|
+
break;
|
|
131
|
+
case "d":
|
|
132
|
+
interval += value * 864e5;
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
throw new DurationFormatError(`Interval component ${part} contains an unsupported unit suffix`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return interval;
|
|
139
|
+
}
|
|
140
|
+
Duration2.parse = parse;
|
|
141
|
+
})(Duration || (Duration = {}));
|
|
142
|
+
function toPrecision(number, precision) {
|
|
143
|
+
return number.toPrecision(precision).replace(/\.?0+/, "");
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=Duration.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/Duration.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["Duration"]
|
|
6
|
+
}
|
package/dist/cjs/time/Time.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CancelablePromise } from "#util/Cancelable.js";
|
|
7
7
|
import { Diagnostic } from "../log/Diagnostic.js";
|
|
8
|
+
import { Duration } from "./Duration.js";
|
|
9
|
+
import type { Timestamp } from "./Timestamp.js";
|
|
8
10
|
/**
|
|
9
11
|
* Timer and date/time management interface.
|
|
10
12
|
*
|
|
@@ -12,32 +14,32 @@ import { Diagnostic } from "../log/Diagnostic.js";
|
|
|
12
14
|
* environment.
|
|
13
15
|
*/
|
|
14
16
|
export declare class Time {
|
|
15
|
-
static
|
|
17
|
+
static default: Time;
|
|
16
18
|
static startup: {
|
|
17
|
-
systemMs:
|
|
18
|
-
processMs:
|
|
19
|
+
systemMs: Timestamp;
|
|
20
|
+
processMs: Timestamp;
|
|
19
21
|
};
|
|
20
|
-
now(): Date;
|
|
21
|
-
static
|
|
22
|
-
nowMs(): number;
|
|
23
|
-
static
|
|
24
|
-
nowUs():
|
|
25
|
-
static
|
|
22
|
+
get now(): Date;
|
|
23
|
+
static get now(): Date;
|
|
24
|
+
get nowMs(): number;
|
|
25
|
+
static get nowMs(): Timestamp;
|
|
26
|
+
get nowUs(): Timestamp;
|
|
27
|
+
static get nowUs(): Timestamp;
|
|
26
28
|
/**
|
|
27
29
|
* Create a timer that will call callback after durationMs has passed.
|
|
28
30
|
*/
|
|
29
|
-
getTimer(name: string,
|
|
30
|
-
static readonly getTimer: (name: string,
|
|
31
|
+
getTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
|
|
32
|
+
static readonly getTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
31
33
|
/**
|
|
32
34
|
* Create a timer that will periodically call callback at intervalMs intervals.
|
|
33
35
|
*/
|
|
34
|
-
getPeriodicTimer(name: string,
|
|
35
|
-
static readonly getPeriodicTimer: (name: string,
|
|
36
|
+
getPeriodicTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
|
|
37
|
+
static readonly getPeriodicTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
36
38
|
/**
|
|
37
39
|
* Create a promise that resolves after a specific interval or when canceled, whichever comes first.
|
|
38
40
|
*/
|
|
39
|
-
sleep(name: string,
|
|
40
|
-
static sleep(name: string,
|
|
41
|
+
sleep(name: string, duration: Duration): CancelablePromise;
|
|
42
|
+
static sleep(name: string, duration: Duration): CancelablePromise<void>;
|
|
41
43
|
static register(timer: Timer): void;
|
|
42
44
|
static unregister(timer: Timer): void;
|
|
43
45
|
static get timers(): Set<Timer>;
|
|
@@ -50,7 +52,7 @@ export interface Timer {
|
|
|
50
52
|
/** System ID (diagnostics) */
|
|
51
53
|
systemId: unknown;
|
|
52
54
|
/** Interval (diagnostics) */
|
|
53
|
-
|
|
55
|
+
interval: Duration;
|
|
54
56
|
/** Is the timer periodic? (diagnostics) */
|
|
55
57
|
isPeriodic: boolean;
|
|
56
58
|
/** Amount of time interval has been active (diagnostics) */
|
|
@@ -72,14 +74,14 @@ export declare class StandardTimer implements Timer {
|
|
|
72
74
|
readonly isPeriodic: boolean;
|
|
73
75
|
isRunning: boolean;
|
|
74
76
|
get systemId(): number;
|
|
75
|
-
constructor(name: string,
|
|
77
|
+
constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
|
|
76
78
|
/**
|
|
77
79
|
* The timer's interval.
|
|
78
80
|
*
|
|
79
81
|
* You can change this value but changes have no effect until the timer restarts.
|
|
80
82
|
*/
|
|
81
|
-
set
|
|
82
|
-
get
|
|
83
|
+
set interval(interval: Duration);
|
|
84
|
+
get interval(): Duration;
|
|
83
85
|
get utility(): boolean;
|
|
84
86
|
set utility(utility: boolean);
|
|
85
87
|
start(): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"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"}
|