@matter/general 0.16.0-alpha.0-20251205-dfb1e1556 → 0.16.0-alpha.0-20251209-d6072d23e
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/MatterError.js +2 -2
- package/dist/cjs/MatterError.js.map +1 -1
- package/dist/cjs/codec/DerTypes.d.ts.map +1 -1
- package/dist/cjs/codec/DerTypes.js +2 -1
- package/dist/cjs/codec/DerTypes.js.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/cjs/environment/Environment.d.ts +4 -1
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js +83 -3
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/environment/Environmental.js +1 -1
- package/dist/cjs/environment/Environmental.js.map +1 -1
- package/dist/cjs/environment/RuntimeService.d.ts +3 -44
- package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
- package/dist/cjs/environment/RuntimeService.js +65 -10
- package/dist/cjs/environment/RuntimeService.js.map +2 -2
- package/dist/cjs/environment/Worker.d.ts +56 -0
- package/dist/cjs/environment/Worker.d.ts.map +1 -0
- package/dist/cjs/environment/Worker.js +44 -0
- package/dist/cjs/environment/Worker.js.map +6 -0
- package/dist/cjs/environment/index.d.ts +1 -0
- package/dist/cjs/environment/index.d.ts.map +1 -1
- package/dist/cjs/environment/index.js +1 -0
- package/dist/cjs/environment/index.js.map +1 -1
- package/dist/cjs/log/Diagnostic.d.ts +11 -1
- package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
- package/dist/cjs/log/Diagnostic.js +3 -0
- package/dist/cjs/log/Diagnostic.js.map +1 -1
- package/dist/cjs/log/DiagnosticPresentation.d.ts +4 -0
- package/dist/cjs/log/DiagnosticPresentation.d.ts.map +1 -1
- package/dist/cjs/log/DiagnosticPresentation.js +3 -2
- package/dist/cjs/log/DiagnosticPresentation.js.map +1 -1
- package/dist/cjs/log/DiagnosticSource.d.ts +1 -1
- package/dist/cjs/log/DiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/log/DiagnosticSource.js +5 -1
- package/dist/cjs/log/DiagnosticSource.js.map +1 -1
- package/dist/cjs/log/LogFormat.js +2 -2
- package/dist/cjs/log/LogFormat.js.map +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/cjs/net/Channel.d.ts +1 -1
- package/dist/cjs/net/Channel.d.ts.map +1 -1
- package/dist/cjs/net/Channel.js +1 -1
- package/dist/cjs/net/Channel.js.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.js +2 -1
- package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/cjs/net/udp/UdpChannel.d.ts +5 -1
- package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts +4 -6
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.js +114 -37
- package/dist/cjs/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/polyfills/disposable.js +2 -2
- package/dist/cjs/polyfills/disposable.js.map +1 -1
- package/dist/cjs/polyfills/metadata.js +1 -1
- package/dist/cjs/polyfills/metadata.js.map +1 -1
- package/dist/cjs/time/StandardTime.d.ts +38 -0
- package/dist/cjs/time/StandardTime.d.ts.map +1 -0
- package/dist/cjs/time/StandardTime.js +172 -0
- package/dist/cjs/time/StandardTime.js.map +6 -0
- package/dist/cjs/time/Time.d.ts +4 -23
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +12 -88
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/time/Timestamp.d.ts +5 -0
- package/dist/cjs/time/Timestamp.d.ts.map +1 -1
- package/dist/cjs/time/Timestamp.js +4 -0
- package/dist/cjs/time/Timestamp.js.map +1 -1
- package/dist/cjs/time/index.d.ts +1 -0
- package/dist/cjs/time/index.d.ts.map +1 -1
- package/dist/cjs/time/index.js +1 -0
- package/dist/cjs/time/index.js.map +1 -1
- package/dist/cjs/transaction/Resource.js +1 -1
- package/dist/cjs/transaction/Resource.js.map +1 -1
- package/dist/cjs/transaction/Transaction.d.ts +12 -4
- package/dist/cjs/transaction/Transaction.d.ts.map +1 -1
- package/dist/cjs/transaction/Transaction.js +4 -4
- package/dist/cjs/transaction/Transaction.js.map +1 -1
- package/dist/cjs/transaction/Tx.d.ts +2 -1
- package/dist/cjs/transaction/Tx.d.ts.map +1 -1
- package/dist/cjs/transaction/Tx.js +92 -6
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Abort.js +1 -1
- package/dist/cjs/util/Abort.js.map +1 -1
- package/dist/cjs/util/Construction.d.ts +2 -1
- package/dist/cjs/util/Construction.d.ts.map +1 -1
- package/dist/cjs/util/Construction.js +62 -18
- package/dist/cjs/util/Construction.js.map +2 -2
- package/dist/cjs/util/DataReadQueue.d.ts +1 -5
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +12 -11
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/Decorator.js +1 -1
- package/dist/cjs/util/Decorator.js.map +1 -1
- package/dist/cjs/util/DeepEqual.js +1 -1
- package/dist/cjs/util/DeepEqual.js.map +1 -1
- package/dist/cjs/util/FormattedText.d.ts +1 -1
- package/dist/cjs/util/FormattedText.d.ts.map +1 -1
- package/dist/cjs/util/FormattedText.js +1 -3
- package/dist/cjs/util/FormattedText.js.map +1 -1
- package/dist/cjs/util/Lifetime.d.ts +97 -0
- package/dist/cjs/util/Lifetime.d.ts.map +1 -0
- package/dist/cjs/util/Lifetime.js +166 -0
- package/dist/cjs/util/Lifetime.js.map +6 -0
- package/dist/cjs/util/Multiplex.js +2 -2
- package/dist/cjs/util/Multiplex.js.map +1 -1
- package/dist/cjs/util/Observable.d.ts +27 -26
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +78 -37
- package/dist/cjs/util/Observable.js.map +2 -2
- package/dist/cjs/util/String.d.ts +5 -29
- package/dist/cjs/util/String.d.ts.map +1 -1
- package/dist/cjs/util/String.js +16 -158
- package/dist/cjs/util/String.js.map +2 -2
- package/dist/cjs/util/identifier-case.d.ts +19 -0
- package/dist/cjs/util/identifier-case.d.ts.map +1 -0
- package/dist/cjs/util/identifier-case.js +99 -0
- package/dist/cjs/util/identifier-case.js.map +6 -0
- package/dist/cjs/util/index.d.ts +3 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +3 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/serialize.d.ts +25 -0
- package/dist/cjs/util/serialize.d.ts.map +1 -0
- package/dist/cjs/util/serialize.js +116 -0
- package/dist/cjs/util/serialize.js.map +6 -0
- package/dist/esm/MatterError.js +1 -1
- package/dist/esm/codec/DerTypes.d.ts.map +1 -1
- package/dist/esm/codec/DerTypes.js +2 -1
- package/dist/esm/codec/DerTypes.js.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/esm/environment/Environment.d.ts +4 -1
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js +83 -3
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/environment/Environmental.js +1 -1
- package/dist/esm/environment/Environmental.js.map +1 -1
- package/dist/esm/environment/RuntimeService.d.ts +3 -44
- package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
- package/dist/esm/environment/RuntimeService.js +65 -10
- package/dist/esm/environment/RuntimeService.js.map +2 -2
- package/dist/esm/environment/Worker.d.ts +56 -0
- package/dist/esm/environment/Worker.d.ts.map +1 -0
- package/dist/esm/environment/Worker.js +24 -0
- package/dist/esm/environment/Worker.js.map +6 -0
- package/dist/esm/environment/index.d.ts +1 -0
- package/dist/esm/environment/index.d.ts.map +1 -1
- package/dist/esm/environment/index.js +1 -0
- package/dist/esm/environment/index.js.map +1 -1
- package/dist/esm/log/Diagnostic.d.ts +11 -1
- package/dist/esm/log/Diagnostic.d.ts.map +1 -1
- package/dist/esm/log/Diagnostic.js +3 -0
- package/dist/esm/log/Diagnostic.js.map +1 -1
- package/dist/esm/log/DiagnosticPresentation.d.ts +4 -0
- package/dist/esm/log/DiagnosticPresentation.d.ts.map +1 -1
- package/dist/esm/log/DiagnosticPresentation.js +3 -2
- package/dist/esm/log/DiagnosticPresentation.js.map +1 -1
- package/dist/esm/log/DiagnosticSource.d.ts +1 -1
- package/dist/esm/log/DiagnosticSource.d.ts.map +1 -1
- package/dist/esm/log/DiagnosticSource.js +5 -1
- package/dist/esm/log/DiagnosticSource.js.map +1 -1
- package/dist/esm/log/LogFormat.js +1 -1
- package/dist/esm/log/LogFormat.js.map +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/esm/net/Channel.d.ts +1 -1
- package/dist/esm/net/Channel.d.ts.map +1 -1
- package/dist/esm/net/Channel.js +1 -1
- package/dist/esm/net/Channel.js.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.js +2 -1
- package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/esm/net/udp/UdpChannel.d.ts +5 -1
- package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.d.ts +4 -6
- package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.js +114 -37
- package/dist/esm/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/esm/polyfills/disposable.js +2 -2
- package/dist/esm/polyfills/disposable.js.map +1 -1
- package/dist/esm/polyfills/metadata.js +1 -1
- package/dist/esm/polyfills/metadata.js.map +1 -1
- package/dist/esm/time/StandardTime.d.ts +38 -0
- package/dist/esm/time/StandardTime.d.ts.map +1 -0
- package/dist/esm/time/StandardTime.js +152 -0
- package/dist/esm/time/StandardTime.js.map +6 -0
- package/dist/esm/time/Time.d.ts +4 -23
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +12 -88
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/time/Timestamp.d.ts +5 -0
- package/dist/esm/time/Timestamp.d.ts.map +1 -1
- package/dist/esm/time/Timestamp.js +4 -0
- package/dist/esm/time/Timestamp.js.map +1 -1
- package/dist/esm/time/index.d.ts +1 -0
- package/dist/esm/time/index.d.ts.map +1 -1
- package/dist/esm/time/index.js +1 -0
- package/dist/esm/time/index.js.map +1 -1
- package/dist/esm/transaction/Resource.js +1 -1
- package/dist/esm/transaction/Resource.js.map +1 -1
- package/dist/esm/transaction/Transaction.d.ts +12 -4
- package/dist/esm/transaction/Transaction.d.ts.map +1 -1
- package/dist/esm/transaction/Transaction.js +4 -4
- package/dist/esm/transaction/Transaction.js.map +1 -1
- package/dist/esm/transaction/Tx.d.ts +2 -1
- package/dist/esm/transaction/Tx.d.ts.map +1 -1
- package/dist/esm/transaction/Tx.js +92 -6
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Abort.js +1 -1
- package/dist/esm/util/Abort.js.map +1 -1
- package/dist/esm/util/Construction.d.ts +2 -1
- package/dist/esm/util/Construction.d.ts.map +1 -1
- package/dist/esm/util/Construction.js +62 -18
- package/dist/esm/util/Construction.js.map +2 -2
- package/dist/esm/util/DataReadQueue.d.ts +1 -5
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +12 -11
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/Decorator.js +1 -1
- package/dist/esm/util/Decorator.js.map +1 -1
- package/dist/esm/util/DeepEqual.js +1 -1
- package/dist/esm/util/DeepEqual.js.map +1 -1
- package/dist/esm/util/FormattedText.d.ts +1 -1
- package/dist/esm/util/FormattedText.d.ts.map +1 -1
- package/dist/esm/util/FormattedText.js +2 -4
- package/dist/esm/util/FormattedText.js.map +1 -1
- package/dist/esm/util/Lifetime.d.ts +97 -0
- package/dist/esm/util/Lifetime.d.ts.map +1 -0
- package/dist/esm/util/Lifetime.js +146 -0
- package/dist/esm/util/Lifetime.js.map +6 -0
- package/dist/esm/util/Multiplex.js +2 -2
- package/dist/esm/util/Multiplex.js.map +1 -1
- package/dist/esm/util/Observable.d.ts +27 -26
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +78 -37
- package/dist/esm/util/Observable.js.map +2 -2
- package/dist/esm/util/String.d.ts +5 -29
- package/dist/esm/util/String.d.ts.map +1 -1
- package/dist/esm/util/String.js +16 -158
- package/dist/esm/util/String.js.map +2 -2
- package/dist/esm/util/identifier-case.d.ts +19 -0
- package/dist/esm/util/identifier-case.d.ts.map +1 -0
- package/dist/esm/util/identifier-case.js +79 -0
- package/dist/esm/util/identifier-case.js.map +6 -0
- package/dist/esm/util/index.d.ts +3 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +3 -0
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/serialize.d.ts +25 -0
- package/dist/esm/util/serialize.d.ts.map +1 -0
- package/dist/esm/util/serialize.js +96 -0
- package/dist/esm/util/serialize.js.map +6 -0
- package/package.json +2 -2
- package/src/MatterError.ts +1 -1
- package/src/codec/DerTypes.ts +2 -1
- package/src/crypto/NodeJsStyleCrypto.ts +98 -6
- package/src/environment/Environment.ts +29 -4
- package/src/environment/RuntimeService.ts +19 -55
- package/src/environment/Worker.ts +75 -0
- package/src/environment/index.ts +1 -0
- package/src/log/Diagnostic.ts +15 -1
- package/src/log/DiagnosticPresentation.ts +7 -2
- package/src/log/DiagnosticSource.ts +5 -1
- package/src/log/LogFormat.ts +1 -1
- package/src/net/Channel.ts +2 -2
- package/src/net/mock/MockUdpChannel.ts +1 -1
- package/src/net/mock/NetworkSimulator.ts +2 -1
- package/src/net/udp/UdpChannel.ts +6 -1
- package/src/net/udp/UdpMulticastServer.ts +72 -34
- package/src/time/StandardTime.ts +122 -0
- package/src/time/Time.ts +13 -105
- package/src/time/Timestamp.ts +8 -0
- package/src/time/index.ts +1 -0
- package/src/transaction/Transaction.ts +19 -6
- package/src/transaction/Tx.ts +49 -2
- package/src/util/Abort.ts +1 -1
- package/src/util/Construction.ts +76 -18
- package/src/util/DataReadQueue.ts +14 -12
- package/src/util/FormattedText.ts +1 -1
- package/src/util/Lifetime.ts +284 -0
- package/src/util/Multiplex.ts +2 -2
- package/src/util/Observable.ts +133 -54
- package/src/util/String.ts +14 -215
- package/src/util/identifier-case.ts +101 -0
- package/src/util/index.ts +3 -0
- package/src/util/serialize.ts +129 -0
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
|
|
2
|
+
var __typeError = (msg) => {
|
|
3
|
+
throw TypeError(msg);
|
|
4
|
+
};
|
|
5
|
+
var __using = (stack, value, async) => {
|
|
6
|
+
if (value != null) {
|
|
7
|
+
if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
|
|
8
|
+
var dispose, inner;
|
|
9
|
+
if (async) dispose = value[__knownSymbol("asyncDispose")];
|
|
10
|
+
if (dispose === void 0) {
|
|
11
|
+
dispose = value[__knownSymbol("dispose")];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") __typeError("Object not disposable");
|
|
15
|
+
if (inner) dispose = function() {
|
|
16
|
+
try {
|
|
17
|
+
inner.call(this);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return Promise.reject(e);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
stack.push([async, dispose, value]);
|
|
23
|
+
} else if (async) {
|
|
24
|
+
stack.push([async]);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
var __callDispose = (stack, error, hasError) => {
|
|
29
|
+
var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
|
|
30
|
+
return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
|
|
31
|
+
};
|
|
32
|
+
var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
|
|
33
|
+
var next = (it) => {
|
|
34
|
+
while (it = stack.pop()) {
|
|
35
|
+
try {
|
|
36
|
+
var result = it[1] && it[1].call(it[2]);
|
|
37
|
+
if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
fail(e);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (hasError) throw error;
|
|
43
|
+
};
|
|
44
|
+
return next();
|
|
45
|
+
};
|
|
1
46
|
/**
|
|
2
47
|
* @license
|
|
3
48
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -5,6 +50,7 @@
|
|
|
5
50
|
*/
|
|
6
51
|
import { MatterAggregateError } from "#MatterError.js";
|
|
7
52
|
import { Minutes } from "#time/TimeUnit.js";
|
|
53
|
+
import { Lifetime } from "#util/Lifetime.js";
|
|
8
54
|
import { Logger } from "../../log/Logger.js";
|
|
9
55
|
import { Cache } from "../../util/Cache.js";
|
|
10
56
|
import { asError } from "../../util/Error.js";
|
|
@@ -12,46 +58,59 @@ import { isIPv4 } from "../../util/Ip.js";
|
|
|
12
58
|
import { NoAddressAvailableError } from "../Network.js";
|
|
13
59
|
const logger = Logger.get("UdpMulticastServer");
|
|
14
60
|
class UdpMulticastServer {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
61
|
+
#lifetime;
|
|
62
|
+
network;
|
|
63
|
+
netInterface;
|
|
64
|
+
#broadcastAddressIpv4;
|
|
65
|
+
#broadcastAddressIpv6;
|
|
66
|
+
#broadcastPort;
|
|
67
|
+
#serverIpv4;
|
|
68
|
+
#serverIpv6;
|
|
24
69
|
static async create({
|
|
25
70
|
netInterface,
|
|
26
71
|
broadcastAddressIpv4,
|
|
27
72
|
broadcastAddressIpv6,
|
|
28
73
|
listeningPort,
|
|
29
|
-
network
|
|
74
|
+
network,
|
|
75
|
+
lifetime: lifetimeOwner
|
|
30
76
|
}) {
|
|
31
|
-
|
|
32
|
-
|
|
77
|
+
const lifetime = (lifetimeOwner || Lifetime.process)?.join("multicast server");
|
|
78
|
+
try {
|
|
79
|
+
let ipv4UdpChannel = void 0;
|
|
80
|
+
if (broadcastAddressIpv4 !== void 0) {
|
|
81
|
+
try {
|
|
82
|
+
ipv4UdpChannel = await network.createUdpChannel({
|
|
83
|
+
lifetime,
|
|
84
|
+
type: "udp4",
|
|
85
|
+
netInterface,
|
|
86
|
+
listeningPort,
|
|
87
|
+
reuseAddress: true
|
|
88
|
+
});
|
|
89
|
+
await ipv4UdpChannel.addMembership(broadcastAddressIpv4);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
NoAddressAvailableError.accept(error);
|
|
92
|
+
logger.info(
|
|
93
|
+
`IPv4 UDP channel not created because IPv4 is not available: ${asError(error).message}`
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
let ipv6UdpChannel;
|
|
33
98
|
try {
|
|
34
|
-
|
|
35
|
-
|
|
99
|
+
ipv6UdpChannel = await network.createUdpChannel({
|
|
100
|
+
lifetime,
|
|
101
|
+
type: "udp6",
|
|
36
102
|
netInterface,
|
|
37
103
|
listeningPort,
|
|
38
104
|
reuseAddress: true
|
|
39
105
|
});
|
|
40
|
-
await
|
|
106
|
+
await ipv6UdpChannel.addMembership(broadcastAddressIpv6);
|
|
41
107
|
} catch (error) {
|
|
42
108
|
NoAddressAvailableError.accept(error);
|
|
43
|
-
logger.info(`
|
|
109
|
+
logger.info(`IPv6 UDP interface not created because IPv6 is not available, but required my Matter`);
|
|
110
|
+
throw error;
|
|
44
111
|
}
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
const ipv6UdpChannel = await network.createUdpChannel({
|
|
48
|
-
type: "udp6",
|
|
49
|
-
netInterface,
|
|
50
|
-
listeningPort,
|
|
51
|
-
reuseAddress: true
|
|
52
|
-
});
|
|
53
|
-
await ipv6UdpChannel.addMembership(broadcastAddressIpv6);
|
|
54
112
|
return new UdpMulticastServer(
|
|
113
|
+
lifetime,
|
|
55
114
|
network,
|
|
56
115
|
broadcastAddressIpv4,
|
|
57
116
|
broadcastAddressIpv6,
|
|
@@ -61,8 +120,7 @@ class UdpMulticastServer {
|
|
|
61
120
|
netInterface
|
|
62
121
|
);
|
|
63
122
|
} catch (error) {
|
|
64
|
-
|
|
65
|
-
logger.info(`IPv6 UDP interface not created because IPv6 is not available, but required my Matter.`);
|
|
123
|
+
lifetime[Symbol.dispose]();
|
|
66
124
|
throw error;
|
|
67
125
|
}
|
|
68
126
|
}
|
|
@@ -72,17 +130,27 @@ class UdpMulticastServer {
|
|
|
72
130
|
Minutes(5),
|
|
73
131
|
async (_netInterface, channel) => (await channel).close()
|
|
74
132
|
);
|
|
133
|
+
constructor(lifetime, network, broadcastAddressIpv4, broadcastAddressIpv6, broadcastPort, serverIpv4, serverIpv6, netInterface) {
|
|
134
|
+
this.#lifetime = lifetime;
|
|
135
|
+
this.network = network;
|
|
136
|
+
this.#broadcastAddressIpv4 = broadcastAddressIpv4;
|
|
137
|
+
this.#broadcastAddressIpv6 = broadcastAddressIpv6;
|
|
138
|
+
this.#broadcastPort = broadcastPort;
|
|
139
|
+
this.#serverIpv4 = serverIpv4;
|
|
140
|
+
this.#serverIpv6 = serverIpv6;
|
|
141
|
+
this.netInterface = netInterface;
|
|
142
|
+
}
|
|
75
143
|
get supportsIpv4() {
|
|
76
|
-
return this
|
|
144
|
+
return this.#serverIpv4 !== void 0;
|
|
77
145
|
}
|
|
78
146
|
onMessage(listener) {
|
|
79
|
-
this
|
|
147
|
+
this.#serverIpv4?.onData((netInterface, peerAddress, _port, message) => {
|
|
80
148
|
if (netInterface === void 0) {
|
|
81
149
|
return;
|
|
82
150
|
}
|
|
83
151
|
listener(message, peerAddress, netInterface);
|
|
84
152
|
});
|
|
85
|
-
this
|
|
153
|
+
this.#serverIpv6.onData((netInterface, peerAddress, _port, message) => {
|
|
86
154
|
if (netInterface === void 0) {
|
|
87
155
|
return;
|
|
88
156
|
}
|
|
@@ -93,7 +161,7 @@ class UdpMulticastServer {
|
|
|
93
161
|
netInterface = netInterface ?? this.netInterface;
|
|
94
162
|
if (uniCastTarget !== void 0 && netInterface !== void 0) {
|
|
95
163
|
try {
|
|
96
|
-
await (await this.broadcastChannels.get(netInterface, isIPv4(uniCastTarget))).send(uniCastTarget, this
|
|
164
|
+
await (await this.broadcastChannels.get(netInterface, isIPv4(uniCastTarget))).send(uniCastTarget, this.#broadcastPort, message);
|
|
97
165
|
} catch (error) {
|
|
98
166
|
logger.info(`${netInterface} ${uniCastTarget}: ${asError(error).message}`);
|
|
99
167
|
}
|
|
@@ -110,12 +178,12 @@ class UdpMulticastServer {
|
|
|
110
178
|
await MatterAggregateError.allSettled(
|
|
111
179
|
ips.map(async (ip) => {
|
|
112
180
|
const iPv4 = ipV4.includes(ip);
|
|
113
|
-
const broadcastTarget = iPv4 ? this
|
|
181
|
+
const broadcastTarget = iPv4 ? this.#broadcastAddressIpv4 : this.#broadcastAddressIpv6;
|
|
114
182
|
if (broadcastTarget === void 0) {
|
|
115
183
|
return;
|
|
116
184
|
}
|
|
117
185
|
try {
|
|
118
|
-
await (await this.broadcastChannels.get(netInterface2, iPv4)).send(broadcastTarget, this
|
|
186
|
+
await (await this.broadcastChannels.get(netInterface2, iPv4)).send(broadcastTarget, this.#broadcastPort, message);
|
|
119
187
|
} catch (error) {
|
|
120
188
|
logger.info(`${netInterface2}: ${asError(error).message}`);
|
|
121
189
|
}
|
|
@@ -129,16 +197,25 @@ class UdpMulticastServer {
|
|
|
129
197
|
}
|
|
130
198
|
async createBroadcastChannel(netInterface, iPv4) {
|
|
131
199
|
return await this.network.createUdpChannel({
|
|
200
|
+
lifetime: this.#lifetime,
|
|
132
201
|
type: iPv4 ? "udp4" : "udp6",
|
|
133
|
-
listeningPort: this
|
|
202
|
+
listeningPort: this.#broadcastPort,
|
|
134
203
|
netInterface,
|
|
135
204
|
reuseAddress: true
|
|
136
205
|
});
|
|
137
206
|
}
|
|
138
207
|
async close() {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
208
|
+
var _stack = [];
|
|
209
|
+
try {
|
|
210
|
+
const _closing = __using(_stack, this.#lifetime.closing());
|
|
211
|
+
await this.#serverIpv4?.close();
|
|
212
|
+
await this.#serverIpv6.close();
|
|
213
|
+
await this.broadcastChannels.close();
|
|
214
|
+
} catch (_) {
|
|
215
|
+
var _error = _, _hasError = true;
|
|
216
|
+
} finally {
|
|
217
|
+
__callDispose(_stack, _error, _hasError);
|
|
218
|
+
}
|
|
142
219
|
}
|
|
143
220
|
}
|
|
144
221
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/net/udp/UdpMulticastServer.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC,SAAS,eAAe;AAExB,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAkB,+BAA+B;AAGjD,MAAM,SAAS,OAAO,IAAI,oBAAoB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["netInterface"]
|
|
6
6
|
}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
if (typeof Symbol.dispose !== "symbol") {
|
|
7
|
-
Symbol.dispose = Symbol("dispose");
|
|
7
|
+
Symbol.dispose = /* @__PURE__ */ Symbol("dispose");
|
|
8
8
|
if (typeof Symbol.dispose !== "symbol") {
|
|
9
9
|
throw new Error("Symbol.dispose is undefined and polyfill installation failed");
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
if (typeof Symbol.asyncDispose !== "symbol") {
|
|
13
|
-
Symbol.asyncDispose = Symbol("asyncDispose");
|
|
13
|
+
Symbol.asyncDispose = /* @__PURE__ */ Symbol("asyncDispose");
|
|
14
14
|
if (typeof Symbol.asyncDispose !== "symbol") {
|
|
15
15
|
throw new Error("Symbol.asyncDispose is undefined and polyfill installation failed");
|
|
16
16
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/polyfills/disposable.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,IAAI,OAAO,OAAO,YAAY,UAAU;AACpC,EAAC,OAA+B,UAAU,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,IAAI,OAAO,OAAO,YAAY,UAAU;AACpC,EAAC,OAA+B,UAAU,uBAAO,SAAS;AAC1D,MAAI,OAAO,OAAO,YAAY,UAAU;AACpC,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAClF;AACJ;AAEA,IAAI,OAAO,OAAO,iBAAiB,UAAU;AACzC,EAAC,OAAoC,eAAe,uBAAO,cAAc;AACzE,MAAI,OAAO,OAAO,iBAAiB,UAAU;AACzC,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACvF;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/polyfills/metadata.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,IAAI,EAAG,cAAc,SAAiB;AAClC,EAAC,OAAgC,WAAW,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,IAAI,EAAG,cAAc,SAAiB;AAClC,EAAC,OAAgC,WAAW,uBAAO,IAAI,iBAAiB;AAC5E;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Duration } from "./Duration.js";
|
|
7
|
+
import { Time, Timer } from "./Time.js";
|
|
8
|
+
/**
|
|
9
|
+
* A {@link Timer} implementation that uses standard JavaScript timers.
|
|
10
|
+
*/
|
|
11
|
+
export declare class StandardTime extends Time {
|
|
12
|
+
getTimer(name: string, duration: Duration, callback: Timer.Callback): StandardTimer;
|
|
13
|
+
getPeriodicTimer(name: string, duration: Duration, callback: Timer.Callback): StandardTimer;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A {@link Timer} implementation that uses standard JavaScript functions.
|
|
17
|
+
*/
|
|
18
|
+
export declare class StandardTimer implements Timer {
|
|
19
|
+
#private;
|
|
20
|
+
readonly name: string;
|
|
21
|
+
private readonly callback;
|
|
22
|
+
readonly isPeriodic: boolean;
|
|
23
|
+
isRunning: boolean;
|
|
24
|
+
get systemId(): number;
|
|
25
|
+
constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
|
|
26
|
+
/**
|
|
27
|
+
* The timer's interval.
|
|
28
|
+
*
|
|
29
|
+
* You can change this value but changes have no effect until the timer restarts.
|
|
30
|
+
*/
|
|
31
|
+
set interval(interval: Duration);
|
|
32
|
+
get interval(): Duration;
|
|
33
|
+
get utility(): boolean;
|
|
34
|
+
set utility(utility: boolean);
|
|
35
|
+
start(): this;
|
|
36
|
+
stop(): this;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=StandardTime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardTime.d.ts","sourceRoot":"","sources":["../../../src/time/StandardTime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGxC;;GAEG;AACH,qBAAa,YAAa,SAAQ,IAAI;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAInE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;CAGvF;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,KAAK;;IAWnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAVhC,SAAS,UAAS;IAElB,IAAI,QAAQ,WAEX;gBAGY,IAAI,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAChC,UAAU,EAAE,OAAO;IAKhC;;;;OAIG;IACH,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAO9B;IAED,IAAI,QAAQ,IATW,QAAQ,CAW9B;IAED,IAAI,OAAO,IAIU,OAAO,CAF3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAgB3B;IAED,KAAK;IAeL,IAAI;CAMP"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
|
|
2
|
+
var __typeError = (msg) => {
|
|
3
|
+
throw TypeError(msg);
|
|
4
|
+
};
|
|
5
|
+
var __using = (stack, value, async) => {
|
|
6
|
+
if (value != null) {
|
|
7
|
+
if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
|
|
8
|
+
var dispose, inner;
|
|
9
|
+
if (async) dispose = value[__knownSymbol("asyncDispose")];
|
|
10
|
+
if (dispose === void 0) {
|
|
11
|
+
dispose = value[__knownSymbol("dispose")];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") __typeError("Object not disposable");
|
|
15
|
+
if (inner) dispose = function() {
|
|
16
|
+
try {
|
|
17
|
+
inner.call(this);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return Promise.reject(e);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
stack.push([async, dispose, value]);
|
|
23
|
+
} else if (async) {
|
|
24
|
+
stack.push([async]);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
var __callDispose = (stack, error, hasError) => {
|
|
29
|
+
var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
|
|
30
|
+
return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
|
|
31
|
+
};
|
|
32
|
+
var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
|
|
33
|
+
var next = (it) => {
|
|
34
|
+
while (it = stack.pop()) {
|
|
35
|
+
try {
|
|
36
|
+
var result = it[1] && it[1].call(it[2]);
|
|
37
|
+
if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
fail(e);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (hasError) throw error;
|
|
43
|
+
};
|
|
44
|
+
return next();
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* @license
|
|
48
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
49
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
50
|
+
*/
|
|
51
|
+
import { ImplementationError } from "#MatterError.js";
|
|
52
|
+
import { Boot } from "#util/Boot.js";
|
|
53
|
+
import { decamelize } from "#util/identifier-case.js";
|
|
54
|
+
import { Lifetime } from "#util/Lifetime.js";
|
|
55
|
+
import { Time } from "./Time.js";
|
|
56
|
+
import { Instant } from "./TimeUnit.js";
|
|
57
|
+
class StandardTime extends Time {
|
|
58
|
+
getTimer(name, duration, callback) {
|
|
59
|
+
return new StandardTimer(name, duration, callback, false);
|
|
60
|
+
}
|
|
61
|
+
getPeriodicTimer(name, duration, callback) {
|
|
62
|
+
return new StandardTimer(name, duration, callback, true);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
class StandardTimer {
|
|
66
|
+
constructor(name, duration, callback, isPeriodic) {
|
|
67
|
+
this.name = name;
|
|
68
|
+
this.callback = callback;
|
|
69
|
+
this.isPeriodic = isPeriodic;
|
|
70
|
+
this.interval = duration;
|
|
71
|
+
}
|
|
72
|
+
#timerId;
|
|
73
|
+
#utility = false;
|
|
74
|
+
#interval = Instant;
|
|
75
|
+
// Real value installed in constructor
|
|
76
|
+
isRunning = false;
|
|
77
|
+
get systemId() {
|
|
78
|
+
return Number(this.#timerId);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The timer's interval.
|
|
82
|
+
*
|
|
83
|
+
* You can change this value but changes have no effect until the timer restarts.
|
|
84
|
+
*/
|
|
85
|
+
set interval(interval) {
|
|
86
|
+
if (interval < 0 || interval > 2147483647) {
|
|
87
|
+
throw new ImplementationError(
|
|
88
|
+
`Invalid intervalMs: ${interval}. The value must be between 0 and 32-bit maximum value (2147483647)`
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
this.#interval = interval;
|
|
92
|
+
}
|
|
93
|
+
get interval() {
|
|
94
|
+
return this.#interval;
|
|
95
|
+
}
|
|
96
|
+
get utility() {
|
|
97
|
+
return this.#utility;
|
|
98
|
+
}
|
|
99
|
+
set utility(utility) {
|
|
100
|
+
if (utility === this.#utility) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (this.#timerId !== void 0) {
|
|
104
|
+
const timerId = this.#timerId;
|
|
105
|
+
if (utility) {
|
|
106
|
+
timerId.unref?.();
|
|
107
|
+
} else {
|
|
108
|
+
timerId.ref?.();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.#utility = utility;
|
|
112
|
+
}
|
|
113
|
+
start() {
|
|
114
|
+
if (this.isRunning) this.stop();
|
|
115
|
+
Time.register(this);
|
|
116
|
+
this.isRunning = true;
|
|
117
|
+
this.#timerId = (this.isPeriodic ? setInterval : setTimeout)(() => {
|
|
118
|
+
var _stack = [];
|
|
119
|
+
try {
|
|
120
|
+
const lifetime = __using(_stack, Lifetime(decamelize(this.name, " ")));
|
|
121
|
+
if (!this.isPeriodic) {
|
|
122
|
+
Time.unregister(this);
|
|
123
|
+
this.isRunning = false;
|
|
124
|
+
}
|
|
125
|
+
this.callback(lifetime);
|
|
126
|
+
} catch (_) {
|
|
127
|
+
var _error = _, _hasError = true;
|
|
128
|
+
} finally {
|
|
129
|
+
__callDispose(_stack, _error, _hasError);
|
|
130
|
+
}
|
|
131
|
+
}, this.interval);
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
stop() {
|
|
135
|
+
(this.isPeriodic ? clearInterval : clearTimeout)(this.#timerId);
|
|
136
|
+
Time.unregister(this);
|
|
137
|
+
this.isRunning = false;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
Boot.init(() => {
|
|
142
|
+
Time.default = new StandardTime();
|
|
143
|
+
Time.startup.systemMs = Time.startup.processMs = Time.nowMs;
|
|
144
|
+
if (typeof MatterHooks !== "undefined") {
|
|
145
|
+
MatterHooks?.timeSetup?.(Time);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
export {
|
|
149
|
+
StandardTime,
|
|
150
|
+
StandardTimer
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=StandardTime.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/StandardTime.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAEzB,SAAS,YAAmB;AAC5B,SAAS,eAAe;AAKjB,MAAM,qBAAqB,KAAK;AAAA,EAC1B,SAAS,MAAc,UAAoB,UAA0B;AAC1E,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,KAAK;AAAA,EAC5D;AAAA,EAES,iBAAiB,MAAc,UAAoB,UAA0B;AAClF,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,IAAI;AAAA,EAC3D;AACJ;AAKO,MAAM,cAA+B;AAAA,EAUxC,YACa,MACT,UACiB,UACR,YACX;AAJW;AAEQ;AACR;AAET,SAAK,WAAW;AAAA,EACpB;AAAA,EAhBA;AAAA,EACA,WAAW;AAAA,EACX,YAAY;AAAA;AAAA,EACZ,YAAY;AAAA,EAEZ,IAAI,WAAW;AACX,WAAO,OAAO,KAAK,QAAQ;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,IAAI,SAAS,UAAoB;AAC7B,QAAI,WAAW,KAAK,WAAW,YAAY;AACvC,YAAM,IAAI;AAAA,QACN,uBAAuB,QAAQ;AAAA,MACnC;AAAA,IACJ;AACA,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ,SAAkB;AAC1B,QAAI,YAAY,KAAK,UAAU;AAC3B;AAAA,IACJ;AAGA,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,UAAU,KAAK;AACrB,UAAI,SAAS;AACT,gBAAQ,QAAQ;AAAA,MACpB,OAAO;AACH,gBAAQ,MAAM;AAAA,MAClB;AAAA,IACJ;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,UAAW,MAAK,KAAK;AAC9B,SAAK,SAAS,IAAI;AAClB,SAAK,YAAY;AACjB,SAAK,YAAY,KAAK,aAAa,cAAc,YAAY,MAAM;AAC/D;AAAA;AAAA,cAAM,WAAW,yBAAS,WAAW,KAAK,MAAM,GAAG,CAAC;AACpD,YAAI,CAAC,KAAK,YAAY;AAClB,eAAK,WAAW,IAAI;AACpB,eAAK,YAAY;AAAA,QACrB;AACA,aAAK,SAAS,QAAQ;AAAA,eALtB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMJ,GAAG,KAAK,QAAQ;AAChB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO;AACH,KAAC,KAAK,aAAa,gBAAgB,cAAc,KAAK,QAAyC;AAC/F,SAAK,WAAW,IAAI;AACpB,SAAK,YAAY;AACjB,WAAO;AAAA,EACX;AACJ;AAEA,KAAK,KAAK,MAAM;AACZ,OAAK,UAAU,IAAI,aAAa;AAEhC,OAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY,KAAK;AAGtD,MAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAa,YAAY,IAAI;AAAA,EACjC;AACJ,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/esm/time/Time.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CancelablePromise } from "#util/Cancelable.js";
|
|
7
|
+
import type { Lifetime } from "#util/Lifetime.js";
|
|
7
8
|
import { Diagnostic } from "../log/Diagnostic.js";
|
|
8
9
|
import { Duration } from "./Duration.js";
|
|
9
10
|
import type { Timestamp } from "./Timestamp.js";
|
|
@@ -28,12 +29,12 @@ export declare class Time {
|
|
|
28
29
|
/**
|
|
29
30
|
* Create a timer that will call callback after durationMs has passed.
|
|
30
31
|
*/
|
|
31
|
-
getTimer(
|
|
32
|
+
getTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
|
|
32
33
|
static readonly getTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
33
34
|
/**
|
|
34
35
|
* Create a timer that will periodically call callback at intervalMs intervals.
|
|
35
36
|
*/
|
|
36
|
-
getPeriodicTimer(
|
|
37
|
+
getPeriodicTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
|
|
37
38
|
static readonly getPeriodicTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
38
39
|
/**
|
|
39
40
|
* Create a promise that resolves after a specific interval or when canceled, whichever comes first.
|
|
@@ -65,26 +66,6 @@ export interface Timer {
|
|
|
65
66
|
stop(): Timer;
|
|
66
67
|
}
|
|
67
68
|
export declare namespace Timer {
|
|
68
|
-
type Callback = () => any;
|
|
69
|
-
}
|
|
70
|
-
export declare class StandardTimer implements Timer {
|
|
71
|
-
#private;
|
|
72
|
-
readonly name: string;
|
|
73
|
-
private readonly callback;
|
|
74
|
-
readonly isPeriodic: boolean;
|
|
75
|
-
isRunning: boolean;
|
|
76
|
-
get systemId(): number;
|
|
77
|
-
constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
|
|
78
|
-
/**
|
|
79
|
-
* The timer's interval.
|
|
80
|
-
*
|
|
81
|
-
* You can change this value but changes have no effect until the timer restarts.
|
|
82
|
-
*/
|
|
83
|
-
set interval(interval: Duration);
|
|
84
|
-
get interval(): Duration;
|
|
85
|
-
get utility(): boolean;
|
|
86
|
-
set utility(utility: boolean);
|
|
87
|
-
start(): this;
|
|
88
|
-
stop(): this;
|
|
69
|
+
type Callback = (lifetime: Lifetime) => any;
|
|
89
70
|
}
|
|
90
71
|
//# sourceMappingURL=Time.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IAErB,MAAM,CAAC,OAAO;kBACK,SAAS;mBACR,SAAS;MAC3B;IAEF,IAAI,GAAG,SAEN;IACD,MAAM,KAAK,GAAG,SAEb;IAED,IAAI,KAAK,WAER;IACD,MAAM,KAAK,KAAK,IACiB,SAAS,CACzC;IAED,IAAI,KAAK,IAC4D,SAAS,CAC7E;IACD,MAAM,KAAK,KAAK,cAEf;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGtF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;AAWD,MAAM,WAAW,KAAK;IAClB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IAEpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAE7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,KAAK,IAAI,KAAK,CAAC;IAEf,mCAAmC;IACnC,IAAI,IAAI,KAAK,CAAC;CACjB;AAED,yBAAiB,KAAK,CAAC;IACnB,KAAY,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC;CACtD"}
|