@matter/general 0.16.0-alpha.0-20250816-d22ad240d → 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/net/mock/MockRouter.d.ts +2 -1
- package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockRouter.js.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +2 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts +2 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/cjs/storage/Storage.d.ts +2 -1
- package/dist/cjs/storage/Storage.d.ts.map +1 -1
- package/dist/cjs/storage/Storage.js.map +1 -1
- package/dist/cjs/storage/StorageBackendMemory.d.ts +2 -1
- package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/cjs/storage/StorageBackendMemory.js +1 -1
- package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
- package/dist/cjs/storage/StorageContext.d.ts +2 -1
- package/dist/cjs/storage/StorageContext.d.ts.map +1 -1
- package/dist/cjs/storage/StorageContext.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/net/mock/MockRouter.d.ts +2 -1
- package/dist/esm/net/mock/MockRouter.d.ts.map +1 -1
- package/dist/esm/net/mock/MockRouter.js.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +2 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts +2 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/esm/storage/Storage.d.ts +2 -1
- package/dist/esm/storage/Storage.d.ts.map +1 -1
- package/dist/esm/storage/Storage.js.map +1 -1
- package/dist/esm/storage/StorageBackendMemory.d.ts +2 -1
- package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/esm/storage/StorageBackendMemory.js +1 -1
- package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
- package/dist/esm/storage/StorageContext.d.ts +2 -1
- package/dist/esm/storage/StorageContext.d.ts.map +1 -1
- package/dist/esm/storage/StorageContext.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/net/mock/MockRouter.ts +2 -1
- package/src/net/mock/MockUdpChannel.ts +2 -1
- package/src/net/mock/NetworkSimulator.ts +2 -1
- package/src/storage/Storage.ts +2 -5
- package/src/storage/StorageBackendMemory.ts +2 -2
- package/src/storage/StorageContext.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
package/dist/esm/time/Time.js
CHANGED
|
@@ -8,49 +8,56 @@ import { CancelablePromise } from "#util/Cancelable.js";
|
|
|
8
8
|
import { ImplementationError } from "../MatterError.js";
|
|
9
9
|
import { Diagnostic } from "../log/Diagnostic.js";
|
|
10
10
|
import { DiagnosticSource } from "../log/DiagnosticSource.js";
|
|
11
|
+
import { Instant } from "./TimeUnit.js";
|
|
11
12
|
const registry = /* @__PURE__ */ new Set();
|
|
12
13
|
class Time {
|
|
13
|
-
static
|
|
14
|
+
static default;
|
|
14
15
|
static startup = {
|
|
15
16
|
systemMs: 0,
|
|
16
17
|
processMs: 0
|
|
17
18
|
};
|
|
18
|
-
now() {
|
|
19
|
+
get now() {
|
|
19
20
|
return /* @__PURE__ */ new Date();
|
|
20
21
|
}
|
|
21
|
-
static now
|
|
22
|
-
|
|
22
|
+
static get now() {
|
|
23
|
+
return Time.default.now;
|
|
24
|
+
}
|
|
25
|
+
get nowMs() {
|
|
23
26
|
return Date.now();
|
|
24
27
|
}
|
|
25
|
-
static nowMs
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
static get nowMs() {
|
|
29
|
+
return Time.default.nowMs;
|
|
30
|
+
}
|
|
31
|
+
get nowUs() {
|
|
32
|
+
return Math.floor(performance.now() + performance.timeOrigin);
|
|
33
|
+
}
|
|
34
|
+
static get nowUs() {
|
|
35
|
+
return Time.default.nowUs;
|
|
28
36
|
}
|
|
29
|
-
static nowUs = () => Time.get().nowUs();
|
|
30
37
|
/**
|
|
31
38
|
* Create a timer that will call callback after durationMs has passed.
|
|
32
39
|
*/
|
|
33
|
-
getTimer(name,
|
|
34
|
-
return new StandardTimer(name,
|
|
40
|
+
getTimer(name, duration, callback) {
|
|
41
|
+
return new StandardTimer(name, duration, callback, false);
|
|
35
42
|
}
|
|
36
|
-
static getTimer = (name,
|
|
43
|
+
static getTimer = (name, duration, callback) => Time.default.getTimer(name, duration, callback);
|
|
37
44
|
/**
|
|
38
45
|
* Create a timer that will periodically call callback at intervalMs intervals.
|
|
39
46
|
*/
|
|
40
|
-
getPeriodicTimer(name,
|
|
41
|
-
return new StandardTimer(name,
|
|
47
|
+
getPeriodicTimer(name, duration, callback) {
|
|
48
|
+
return new StandardTimer(name, duration, callback, true);
|
|
42
49
|
}
|
|
43
|
-
static getPeriodicTimer = (name,
|
|
50
|
+
static getPeriodicTimer = (name, duration, callback) => Time.default.getPeriodicTimer(name, duration, callback);
|
|
44
51
|
/**
|
|
45
52
|
* Create a promise that resolves after a specific interval or when canceled, whichever comes first.
|
|
46
53
|
*/
|
|
47
|
-
sleep(name,
|
|
54
|
+
sleep(name, duration) {
|
|
48
55
|
let timer;
|
|
49
56
|
let resolver;
|
|
50
57
|
return new CancelablePromise(
|
|
51
58
|
(resolve) => {
|
|
52
59
|
resolver = resolve;
|
|
53
|
-
timer = Time.getTimer(name,
|
|
60
|
+
timer = Time.getTimer(name, duration, resolve);
|
|
54
61
|
timer.start();
|
|
55
62
|
},
|
|
56
63
|
() => {
|
|
@@ -59,8 +66,8 @@ class Time {
|
|
|
59
66
|
}
|
|
60
67
|
);
|
|
61
68
|
}
|
|
62
|
-
static sleep(name,
|
|
63
|
-
return Time.
|
|
69
|
+
static sleep(name, duration) {
|
|
70
|
+
return Time.default.sleep(name, duration);
|
|
64
71
|
}
|
|
65
72
|
static register(timer) {
|
|
66
73
|
registry.add(timer);
|
|
@@ -74,18 +81,23 @@ class Time {
|
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
if (!performance || typeof performance.now !== "function" || typeof performance.timeOrigin !== "number") {
|
|
77
|
-
Time.prototype.nowUs
|
|
84
|
+
Object.defineProperty(Time.prototype.nowUs, "nowUs", {
|
|
85
|
+
get() {
|
|
86
|
+
return Time.nowMs;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
78
89
|
}
|
|
79
90
|
class StandardTimer {
|
|
80
|
-
constructor(name,
|
|
91
|
+
constructor(name, duration, callback, isPeriodic) {
|
|
81
92
|
this.name = name;
|
|
82
93
|
this.callback = callback;
|
|
83
94
|
this.isPeriodic = isPeriodic;
|
|
84
|
-
this.
|
|
95
|
+
this.interval = duration;
|
|
85
96
|
}
|
|
86
97
|
#timerId;
|
|
87
98
|
#utility = false;
|
|
88
|
-
#
|
|
99
|
+
#interval = Instant;
|
|
100
|
+
// Real value installed in constructor
|
|
89
101
|
isRunning = false;
|
|
90
102
|
get systemId() {
|
|
91
103
|
return Number(this.#timerId);
|
|
@@ -95,16 +107,16 @@ class StandardTimer {
|
|
|
95
107
|
*
|
|
96
108
|
* You can change this value but changes have no effect until the timer restarts.
|
|
97
109
|
*/
|
|
98
|
-
set
|
|
99
|
-
if (
|
|
110
|
+
set interval(interval) {
|
|
111
|
+
if (interval < 0 || interval > 2147483647) {
|
|
100
112
|
throw new ImplementationError(
|
|
101
|
-
`Invalid intervalMs: ${
|
|
113
|
+
`Invalid intervalMs: ${interval}. The value must be between 0 and 32-bit maximum value (2147483647)`
|
|
102
114
|
);
|
|
103
115
|
}
|
|
104
|
-
this.#
|
|
116
|
+
this.#interval = interval;
|
|
105
117
|
}
|
|
106
|
-
get
|
|
107
|
-
return this.#
|
|
118
|
+
get interval() {
|
|
119
|
+
return this.#interval;
|
|
108
120
|
}
|
|
109
121
|
get utility() {
|
|
110
122
|
return this.#utility;
|
|
@@ -133,7 +145,7 @@ class StandardTimer {
|
|
|
133
145
|
this.isRunning = false;
|
|
134
146
|
}
|
|
135
147
|
this.callback();
|
|
136
|
-
}, this.
|
|
148
|
+
}, this.interval);
|
|
137
149
|
return this;
|
|
138
150
|
}
|
|
139
151
|
stop() {
|
|
@@ -150,7 +162,7 @@ DiagnosticSource.add({
|
|
|
150
162
|
timer.name,
|
|
151
163
|
Diagnostic.dict({
|
|
152
164
|
periodic: timer.isPeriodic,
|
|
153
|
-
interval:
|
|
165
|
+
interval: timer.interval,
|
|
154
166
|
system: timer.systemId,
|
|
155
167
|
elapsed: timer.elapsed
|
|
156
168
|
})
|
|
@@ -159,9 +171,8 @@ DiagnosticSource.add({
|
|
|
159
171
|
}
|
|
160
172
|
});
|
|
161
173
|
Boot.init(() => {
|
|
162
|
-
|
|
163
|
-
Time.startup.systemMs = Time.startup.processMs =
|
|
164
|
-
Time.get = () => time;
|
|
174
|
+
Time.default = new Time();
|
|
175
|
+
Time.startup.systemMs = Time.startup.processMs = Time.nowMs;
|
|
165
176
|
if (typeof MatterHooks !== "undefined") {
|
|
166
177
|
MatterHooks?.timeSetup?.(Time);
|
|
167
178
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/time/Time.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AACrB,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AAEjC,MAAM,WAAW,oBAAI,IAAW;AAQzB,MAAM,KAAK;AAAA,EACd,OAAO;AAAA,EAEP,OAAO,UAAU;AAAA,IACb,UAAU;AAAA,IACV,WAAW;AAAA,EACf;AAAA,EAEA,MAAM;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* Details of a specific unit of time.
|
|
9
|
+
*/
|
|
10
|
+
export interface TimeUnit {
|
|
11
|
+
(scale: number | bigint): Duration;
|
|
12
|
+
(scale: undefined | number | bigint): undefined | Duration;
|
|
13
|
+
/**
|
|
14
|
+
* Long name of the unit.
|
|
15
|
+
*/
|
|
16
|
+
readonly kind: TimeUnit.Kind;
|
|
17
|
+
/**
|
|
18
|
+
* Abbreviated name of the unit.
|
|
19
|
+
*/
|
|
20
|
+
readonly abbrev: string;
|
|
21
|
+
/**
|
|
22
|
+
* An interval representing a single unit.
|
|
23
|
+
*/
|
|
24
|
+
readonly one: Duration;
|
|
25
|
+
/**
|
|
26
|
+
* Convert an interval to an integer of this unit.
|
|
27
|
+
*
|
|
28
|
+
* Produces an even integer result. Use {@link fractionalOf} to retain any fractional component.
|
|
29
|
+
*/
|
|
30
|
+
of<T extends Duration | undefined>(interval: T): T extends undefined ? number | undefined : number;
|
|
31
|
+
/**
|
|
32
|
+
* Convert an interval to this unit, retaining fractional component.
|
|
33
|
+
*/
|
|
34
|
+
fractionalOf<T extends Duration | undefined>(interval: T): T extends undefined ? number | undefined : number;
|
|
35
|
+
/**
|
|
36
|
+
* Compute the ceiling of an interval in this unit.
|
|
37
|
+
*/
|
|
38
|
+
ceil(duration: Duration): Duration;
|
|
39
|
+
/**
|
|
40
|
+
* Compute the floor of an interval in this unit.
|
|
41
|
+
*/
|
|
42
|
+
floor(duration: Duration): Duration;
|
|
43
|
+
/**
|
|
44
|
+
* Round an interval to this unit.
|
|
45
|
+
*/
|
|
46
|
+
round(duration: Duration): Duration;
|
|
47
|
+
length: never;
|
|
48
|
+
}
|
|
49
|
+
export declare namespace TimeUnit {
|
|
50
|
+
/**
|
|
51
|
+
* Standard time units.
|
|
52
|
+
*/
|
|
53
|
+
type Kind = "microsecond" | "millisecond" | "second" | "minute" | "hour" | "day";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Implement a {@link TimeUnit}.
|
|
57
|
+
*/
|
|
58
|
+
export declare function TimeUnit<T = {}>(kind: TimeUnit.Kind, abbrev: string, one: number, props?: T): TimeUnit & T;
|
|
59
|
+
/**
|
|
60
|
+
* Create an interval in microseconds.
|
|
61
|
+
*/
|
|
62
|
+
export declare const Microseconds: TimeUnit;
|
|
63
|
+
/**
|
|
64
|
+
* Create an interval in milliseconds.
|
|
65
|
+
*/
|
|
66
|
+
export declare const Millis: TimeUnit;
|
|
67
|
+
/**
|
|
68
|
+
* Create an interval in seconds.
|
|
69
|
+
*/
|
|
70
|
+
export declare const Seconds: TimeUnit;
|
|
71
|
+
/**
|
|
72
|
+
* Create an interval in minutes.
|
|
73
|
+
*/
|
|
74
|
+
export declare const Minutes: TimeUnit;
|
|
75
|
+
/**
|
|
76
|
+
* Create an interval in hours.
|
|
77
|
+
*/
|
|
78
|
+
export declare const Hours: TimeUnit;
|
|
79
|
+
/**
|
|
80
|
+
* Create an interval in days.
|
|
81
|
+
*/
|
|
82
|
+
export declare const Days: TimeUnit;
|
|
83
|
+
/**
|
|
84
|
+
* A zero-length interval.
|
|
85
|
+
*/
|
|
86
|
+
export declare const Instant: Duration;
|
|
87
|
+
//# sourceMappingURL=TimeUnit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeUnit.d.ts","sourceRoot":"","sources":["../../../src/time/TimeUnit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAEvB;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnG;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAE7G;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEpC,MAAM,EAAE,KAAK,CAAC;CACjB;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,KAAY,IAAI,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;CAC3F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAS,CAAC,GAAG,QAAQ,GAAG,CAAC,CA6BhH;AA0BD;;GAEG;AACH,eAAO,MAAM,YAAY,UAAuC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,MAAM,UAAmC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,OAAO,UAAiC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,OAAO,UAAkC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,KAAK,UAAmC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,IAAI,UAAmC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,OAAO,UAAY,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
function TimeUnit(kind, abbrev, one, props = {}) {
|
|
7
|
+
const unit = {
|
|
8
|
+
[kind]: (scale) => {
|
|
9
|
+
if (scale === void 0) {
|
|
10
|
+
return void 0;
|
|
11
|
+
}
|
|
12
|
+
if (typeof scale === "bigint") {
|
|
13
|
+
scale = Number(scale);
|
|
14
|
+
}
|
|
15
|
+
return scale * one;
|
|
16
|
+
}
|
|
17
|
+
}[kind];
|
|
18
|
+
Object.assign(unit, {
|
|
19
|
+
...props,
|
|
20
|
+
kind,
|
|
21
|
+
abbrev,
|
|
22
|
+
one,
|
|
23
|
+
of,
|
|
24
|
+
fractionalOf,
|
|
25
|
+
ceil,
|
|
26
|
+
floor,
|
|
27
|
+
round,
|
|
28
|
+
toString: kindOf,
|
|
29
|
+
[Symbol.for("nodejs.util.inspect.custom")]: kindOf
|
|
30
|
+
});
|
|
31
|
+
return unit;
|
|
32
|
+
}
|
|
33
|
+
function of(duration) {
|
|
34
|
+
return Math.floor(duration / this.one);
|
|
35
|
+
}
|
|
36
|
+
function fractionalOf(duration) {
|
|
37
|
+
return duration / this.one;
|
|
38
|
+
}
|
|
39
|
+
function ceil(duration) {
|
|
40
|
+
return Math.ceil(duration / this.one) * this.one;
|
|
41
|
+
}
|
|
42
|
+
function floor(duration) {
|
|
43
|
+
return Math.floor(duration / this.one) * this.one;
|
|
44
|
+
}
|
|
45
|
+
function round(duration) {
|
|
46
|
+
return Math.round(duration / this.one) * this.one;
|
|
47
|
+
}
|
|
48
|
+
function kindOf() {
|
|
49
|
+
return this.kind;
|
|
50
|
+
}
|
|
51
|
+
const Microseconds = TimeUnit("microsecond", "\u03BCs", 1e-3);
|
|
52
|
+
const Millis = TimeUnit("millisecond", "ms", 1);
|
|
53
|
+
const Seconds = TimeUnit("second", "s", 1e3);
|
|
54
|
+
const Minutes = TimeUnit("minute", "m", 6e4);
|
|
55
|
+
const Hours = TimeUnit("hour", "h", 36e5);
|
|
56
|
+
const Days = TimeUnit("day", "d", 864e5);
|
|
57
|
+
const Instant = Millis(0);
|
|
58
|
+
export {
|
|
59
|
+
Days,
|
|
60
|
+
Hours,
|
|
61
|
+
Instant,
|
|
62
|
+
Microseconds,
|
|
63
|
+
Millis,
|
|
64
|
+
Minutes,
|
|
65
|
+
Seconds,
|
|
66
|
+
TimeUnit
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=TimeUnit.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/TimeUnit.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAsEO,SAAS,SAAiB,MAAqB,QAAgB,KAAa,QAAQ,CAAC,GAAsB;AAC9G,QAAM,OAAO;AAAA,IACT,CAAC,IAAI,GAAG,CAAC,UAAuC;AAC5C,UAAI,UAAU,QAAW;AACrB,eAAO;AAAA,MACX;AACA,UAAI,OAAO,UAAU,UAAU;AAC3B,gBAAQ,OAAO,KAAK;AAAA,MACxB;AACA,aAAQ,QAAQ;AAAA,IACpB;AAAA,EACJ,EAAE,IAAI;AAGN,SAAO,OAAO,MAAM;AAAA,IAChB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAG;AAAA,EAChD,CAAC;AAED,SAAO;AACX;AAEA,SAAS,GAAmB,UAAoB;AAC5C,SAAO,KAAK,MAAM,WAAW,KAAK,GAAG;AACzC;AAEA,SAAS,aAA6B,UAAoB;AACtD,SAAO,WAAW,KAAK;AAC3B;AAEA,SAAS,KAAqB,UAAoB;AAC9C,SAAO,KAAK,KAAK,WAAW,KAAK,GAAG,IAAI,KAAK;AACjD;AAEA,SAAS,MAAsB,UAAoB;AAC/C,SAAO,KAAK,MAAM,WAAW,KAAK,GAAG,IAAI,KAAK;AAClD;AAEA,SAAS,MAAsB,UAAoB;AAC/C,SAAO,KAAK,MAAM,WAAW,KAAK,GAAG,IAAI,KAAK;AAClD;AAEA,SAAS,SAAuB;AAC5B,SAAO,KAAK;AAChB;AAKO,MAAM,eAAe,SAAS,eAAe,WAAM,IAAK;AAKxD,MAAM,SAAS,SAAS,eAAe,MAAM,CAAC;AAK9C,MAAM,UAAU,SAAS,UAAU,KAAK,GAAK;AAK7C,MAAM,UAAU,SAAS,UAAU,KAAK,GAAM;AAK9C,MAAM,QAAQ,SAAS,QAAQ,KAAK,IAAS;AAK7C,MAAM,OAAO,SAAS,OAAO,KAAK,KAAU;AAK5C,MAAM,UAAU,OAAO,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 { Timestamp } from "./Timestamp.js";
|
|
8
|
+
/**
|
|
9
|
+
* A period between two {@link Timestamp}s.
|
|
10
|
+
*/
|
|
11
|
+
export interface Timespan {
|
|
12
|
+
start: Timestamp;
|
|
13
|
+
stop: Timestamp;
|
|
14
|
+
duration: Duration;
|
|
15
|
+
from(newStart: Timestamp.Definition): Timespan;
|
|
16
|
+
to(newStart: Timestamp.Definition): Timespan;
|
|
17
|
+
valueOf(): {
|
|
18
|
+
start: Timestamp;
|
|
19
|
+
stop: Timestamp;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a new timespan representing time between {@link start} and {@link stop}.
|
|
24
|
+
*/
|
|
25
|
+
export declare function Timespan(start: Timestamp.Definition, stop: Timestamp.Definition): Timespan;
|
|
26
|
+
//# sourceMappingURL=Timespan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timespan.d.ts","sourceRoot":"","sources":["../../../src/time/Timespan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/C,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC7C,OAAO,IAAI;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,GAItE,QAAQ,CACjB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Timestamp } from "./Timestamp.js";
|
|
7
|
+
function Timespan(start, stop) {
|
|
8
|
+
return Object.create(prototype, {
|
|
9
|
+
start: { value: Timestamp(start), enumerable: true },
|
|
10
|
+
stop: { value: Timestamp(stop), enumerable: true }
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
const prototype = {
|
|
14
|
+
start: 0,
|
|
15
|
+
stop: 0,
|
|
16
|
+
get duration() {
|
|
17
|
+
return this.stop - this.start;
|
|
18
|
+
},
|
|
19
|
+
from(newStart) {
|
|
20
|
+
return Timespan(newStart, this.stop);
|
|
21
|
+
},
|
|
22
|
+
to(newStop) {
|
|
23
|
+
return Timespan(this.start, newStop);
|
|
24
|
+
},
|
|
25
|
+
valueOf() {
|
|
26
|
+
return { start: this.start, stop: this.stop };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
Timespan
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=Timespan.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/Timespan.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,iBAAiB;AAkBnB,SAAS,SAAS,OAA6B,MAA4B;AAC9E,SAAO,OAAO,OAAO,WAAW;AAAA,IAC5B,OAAO,EAAE,OAAO,UAAU,KAAK,GAAG,YAAY,KAAK;AAAA,IACnD,MAAM,EAAE,OAAO,UAAU,IAAI,GAAG,YAAY,KAAK;AAAA,EACrD,CAAC;AACL;AAEA,MAAM,YAAsB;AAAA,EACxB,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,IAAI,WAAW;AACX,WAAQ,KAAK,OAAO,KAAK;AAAA,EAC7B;AAAA,EAEA,KAAqB,UAAU;AAC3B,WAAO,SAAS,UAAU,KAAK,IAAI;AAAA,EACvC;AAAA,EAEA,GAAmB,SAAS;AACxB,WAAO,SAAS,KAAK,OAAO,OAAO;AAAA,EACvC;AAAA,EAEA,UAAwB;AACpB,WAAO,EAAE,OAAO,KAAK,OAAO,MAAM,KAAK,KAAK;AAAA,EAChD;AACJ;",
|
|
5
|
+
"names": []
|
|
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 UNIX epoch timestamp in milliseconds.
|
|
10
|
+
*
|
|
11
|
+
* Note that the precision of the timestamp may be greater than milliseconds but is limited to floating point precision.
|
|
12
|
+
*/
|
|
13
|
+
export type Timestamp = Branded<number, "Timestamp"> | 0;
|
|
14
|
+
/**
|
|
15
|
+
* Create a timestamp.
|
|
16
|
+
*
|
|
17
|
+
* Input may be a UNIX epoch value in milliseconds, a parseable date string, or a {@link Date}.
|
|
18
|
+
*/
|
|
19
|
+
export declare function Timestamp<T extends undefined | Timestamp.Definition>(source: T): T extends undefined ? undefined | Timestamp : Timestamp;
|
|
20
|
+
/**
|
|
21
|
+
* Thrown when a textual timestamp cannot be parsed.
|
|
22
|
+
*/
|
|
23
|
+
export declare class TimestampFormatError extends UnexpectedDataError {
|
|
24
|
+
}
|
|
25
|
+
export declare namespace Timestamp {
|
|
26
|
+
/**
|
|
27
|
+
* Values that may be used to initialize a timestamp.
|
|
28
|
+
*/
|
|
29
|
+
type Definition = number | bigint | string | Date;
|
|
30
|
+
/**
|
|
31
|
+
* Create a low-resolution timestamp from a seconds value.
|
|
32
|
+
*/
|
|
33
|
+
function fromSeconds(source: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Create a high-resolution timestamp from a microsecond value.
|
|
36
|
+
*/
|
|
37
|
+
function fromMicroseconds(source: number | bigint): Timestamp;
|
|
38
|
+
/**
|
|
39
|
+
* The UNIX epoch.
|
|
40
|
+
*/
|
|
41
|
+
const zero: Timestamp;
|
|
42
|
+
/**
|
|
43
|
+
* Obtain a {@link Date} for a {@link Timestamp}.
|
|
44
|
+
*/
|
|
45
|
+
function dateOf(timestamp: Timestamp): Date;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/time/Timestamp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,UAAU,EAChE,MAAM,EAAE,CAAC,GACV,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CA4BzD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;CAAG;AAEhE,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACH,KAAY,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,UAEzC;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,aAKvD;IAED;;OAEG;IACI,MAAM,IAAI,WAAe,CAAC;IAEjC;;OAEG;IACH,SAAgB,MAAM,CAAC,SAAS,EAAE,SAAS,QAE1C;CACJ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 { Time } from "./Time.js";
|
|
8
|
+
function Timestamp(source) {
|
|
9
|
+
if (source === void 0) {
|
|
10
|
+
return Time.nowMs;
|
|
11
|
+
}
|
|
12
|
+
if (typeof source === "string") {
|
|
13
|
+
const date = Date.parse(source);
|
|
14
|
+
if (Number.isNaN(date.valueOf())) {
|
|
15
|
+
throw new TimestampFormatError("Invalid timestamp format");
|
|
16
|
+
}
|
|
17
|
+
} else if (typeof source === "object" && source !== null && source instanceof Date) {
|
|
18
|
+
if (Number.isNaN(source.valueOf())) {
|
|
19
|
+
throw new TimestampFormatError("Cannot convert date to timestamp because it is invalid");
|
|
20
|
+
}
|
|
21
|
+
source = source.getTime();
|
|
22
|
+
} else if (typeof source === "bigint") {
|
|
23
|
+
source = Number(source);
|
|
24
|
+
}
|
|
25
|
+
if (typeof source === "number") {
|
|
26
|
+
if (Number.isNaN(source)) {
|
|
27
|
+
throw new TimestampFormatError("A timestamp may not be NaN");
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
throw new TimestampFormatError(`Timestamp is not a number (received ${typeof source})`);
|
|
31
|
+
}
|
|
32
|
+
return source;
|
|
33
|
+
}
|
|
34
|
+
class TimestampFormatError extends UnexpectedDataError {
|
|
35
|
+
}
|
|
36
|
+
((Timestamp2) => {
|
|
37
|
+
function fromSeconds(source) {
|
|
38
|
+
return Math.floor(source * 1e3);
|
|
39
|
+
}
|
|
40
|
+
Timestamp2.fromSeconds = fromSeconds;
|
|
41
|
+
function fromMicroseconds(source) {
|
|
42
|
+
if (typeof source === "bigint") {
|
|
43
|
+
source = Number(source);
|
|
44
|
+
}
|
|
45
|
+
return Timestamp2(source / 1e3);
|
|
46
|
+
}
|
|
47
|
+
Timestamp2.fromMicroseconds = fromMicroseconds;
|
|
48
|
+
Timestamp2.zero = Timestamp2(0);
|
|
49
|
+
function dateOf(timestamp) {
|
|
50
|
+
return new Date(timestamp);
|
|
51
|
+
}
|
|
52
|
+
Timestamp2.dateOf = dateOf;
|
|
53
|
+
})(Timestamp || (Timestamp = {}));
|
|
54
|
+
export {
|
|
55
|
+
Timestamp,
|
|
56
|
+
TimestampFormatError
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=Timestamp.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/Timestamp.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,YAAY;AAcd,SAAS,UACZ,QACuD;AACvD,MAAI,WAAW,QAAW;AACtB,WAAO,KAAK;AAAA,EAChB;AAEA,MAAI,OAAO,WAAW,UAAU;AAC5B,UAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,QAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,GAAG;AAC9B,YAAM,IAAI,qBAAqB,0BAA0B;AAAA,IAC7D;AAAA,EACJ,WAAW,OAAO,WAAW,YAAY,WAAW,QAAQ,kBAAkB,MAAM;AAChF,QAAI,OAAO,MAAM,OAAO,QAAQ,CAAC,GAAG;AAChC,YAAM,IAAI,qBAAqB,wDAAwD;AAAA,IAC3F;AACA,aAAS,OAAO,QAAQ;AAAA,EAC5B,WAAW,OAAO,WAAW,UAAU;AACnC,aAAS,OAAO,MAAM;AAAA,EAC1B;AAEA,MAAI,OAAO,WAAW,UAAU;AAC5B,QAAI,OAAO,MAAM,MAAM,GAAG;AACtB,YAAM,IAAI,qBAAqB,4BAA4B;AAAA,IAC/D;AAAA,EACJ,OAAO;AACH,UAAM,IAAI,qBAAqB,uCAAuC,OAAO,MAAM,GAAG;AAAA,EAC1F;AAEA,SAAO;AACX;AAKO,MAAM,6BAA6B,oBAAoB;AAAC;AAAA,CAExD,CAAUA,eAAV;AASI,WAAS,YAAY,QAAgB;AACxC,WAAO,KAAK,MAAM,SAAS,GAAI;AAAA,EACnC;AAFO,EAAAA,WAAS;AAOT,WAAS,iBAAiB,QAAyB;AACtD,QAAI,OAAO,WAAW,UAAU;AAC5B,eAAS,OAAO,MAAM;AAAA,IAC1B;AACA,WAAOA,WAAU,SAAS,GAAI;AAAA,EAClC;AALO,EAAAA,WAAS;AAUT,EAAMA,WAAA,OAAOA,WAAU,CAAC;AAKxB,WAAS,OAAO,WAAsB;AACzC,WAAO,IAAI,KAAK,SAAS;AAAA,EAC7B;AAFO,EAAAA,WAAS;AAAA,GA/BH;",
|
|
5
|
+
"names": ["Timestamp"]
|
|
6
|
+
}
|
package/dist/esm/time/index.d.ts
CHANGED
|
@@ -3,5 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
export * from "./Duration.js";
|
|
6
7
|
export * from "./Time.js";
|
|
8
|
+
export * from "./Timespan.js";
|
|
9
|
+
export * from "./Timestamp.js";
|
|
10
|
+
export * from "./TimeUnit.js";
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
package/dist/esm/time/index.js
CHANGED
|
@@ -3,5 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
export * from "./Duration.js";
|
|
6
7
|
export * from "./Time.js";
|
|
8
|
+
export * from "./Timespan.js";
|
|
9
|
+
export * from "./Timestamp.js";
|
|
10
|
+
export * from "./TimeUnit.js";
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -52,7 +52,7 @@ export declare namespace Status {
|
|
|
52
52
|
*
|
|
53
53
|
* A value of 0 forces lock reports for all async transactions; a negative value disables reporting.
|
|
54
54
|
*/
|
|
55
|
-
let
|
|
55
|
+
let slowTransactionTime: import("../index.js").Duration;
|
|
56
56
|
/**
|
|
57
57
|
* The log level for slow transaction reporting.
|
|
58
58
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Status.d.ts","sourceRoot":"","sources":["../../../src/transaction/Status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Status.d.ts","sourceRoot":"","sources":["../../../src/transaction/Status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,oBAAY,MAAM;IACd;;OAEG;IACH,QAAQ,cAAc;IAEtB;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,kBAAkB,yBAAyB;IAE3C;;OAEG;IACH,kBAAkB,yBAAyB;IAE3C;;OAEG;IACH,WAAW,iBAAiB;IAE5B;;OAEG;IACH,SAAS,cAAc;CAC1B;AAED,yBAAiB,MAAM,CAAC;IACpB,SAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,QAMpF;IAED,SAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,UAE1C;IAED;;;;;OAKG;IAEI,IAAI,mBAAmB,gCAAc,CAAC;IAE7C;;OAEG;IAEI,IAAI,YAAY,UAAgB,CAAC;CAC3C"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { LogLevel } from "#log/LogLevel.js";
|
|
7
|
+
import { Millis } from "#time/TimeUnit.js";
|
|
7
8
|
import { TransactionFlowError } from "./errors.js";
|
|
8
9
|
var Status = /* @__PURE__ */ ((Status2) => {
|
|
9
10
|
Status2["ReadOnly"] = "read only";
|
|
@@ -29,7 +30,7 @@ var Status = /* @__PURE__ */ ((Status2) => {
|
|
|
29
30
|
return `<${status}>`;
|
|
30
31
|
}
|
|
31
32
|
Status2.formatStatus = formatStatus;
|
|
32
|
-
Status2.
|
|
33
|
+
Status2.slowTransactionTime = Millis(200);
|
|
33
34
|
Status2.slowLogLevel = LogLevel.INFO;
|
|
34
35
|
})(Status || (Status = {}));
|
|
35
36
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transaction/Status.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,gBAAgB;AACzB,SAAS,4BAA4B;AAM9B,IAAK,SAAL,kBAAKA,YAAL;AAIH,EAAAA,QAAA,cAAW;AAKX,EAAAA,QAAA,YAAS;AAKT,EAAAA,QAAA,aAAU;AAMV,EAAAA,QAAA,eAAY;AAKZ,EAAAA,QAAA,wBAAqB;AAKrB,EAAAA,QAAA,wBAAqB;AAKrB,EAAAA,QAAA,iBAAc;AAKd,EAAAA,QAAA,eAAY;AAxCJ,SAAAA;AAAA,GAAA;AAAA,CA2CL,CAAUA,YAAV;AACI,WAAS,OAAO,aAA0B,YAAsB,QAAgB;AACnF,QAAI,CAAC,WAAW,SAAS,YAAY,MAAM,GAAG;AAC1C,YAAM,IAAI;AAAA,QACN,sCAAsC,aAAa,YAAY,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC;AAAA,MACrG;AAAA,IACJ;AAAA,EACJ;AANO,EAAAA,QAAS;AAQT,WAAS,aAAa,QAAgB;AACzC,WAAO,IAAI,MAAM;AAAA,EACrB;AAFO,EAAAA,QAAS;AAWT,EAAIA,QAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,4BAA4B;AAM9B,IAAK,SAAL,kBAAKA,YAAL;AAIH,EAAAA,QAAA,cAAW;AAKX,EAAAA,QAAA,YAAS;AAKT,EAAAA,QAAA,aAAU;AAMV,EAAAA,QAAA,eAAY;AAKZ,EAAAA,QAAA,wBAAqB;AAKrB,EAAAA,QAAA,wBAAqB;AAKrB,EAAAA,QAAA,iBAAc;AAKd,EAAAA,QAAA,eAAY;AAxCJ,SAAAA;AAAA,GAAA;AAAA,CA2CL,CAAUA,YAAV;AACI,WAAS,OAAO,aAA0B,YAAsB,QAAgB;AACnF,QAAI,CAAC,WAAW,SAAS,YAAY,MAAM,GAAG;AAC1C,YAAM,IAAI;AAAA,QACN,sCAAsC,aAAa,YAAY,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC;AAAA,MACrG;AAAA,IACJ;AAAA,EACJ;AANO,EAAAA,QAAS;AAQT,WAAS,aAAa,QAAgB;AACzC,WAAO,IAAI,MAAM;AAAA,EACrB;AAFO,EAAAA,QAAS;AAWT,EAAIA,QAAA,sBAAsB,OAAO,GAAG;AAMpC,EAAIA,QAAA,eAAe,SAAS;AAAA,GA1BtB;",
|
|
5
5
|
"names": ["Status"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tx.d.ts","sourceRoot":"","sources":["../../../src/transaction/Tx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Tx.d.ts","sourceRoot":"","sources":["../../../src/transaction/Tx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD;;GAEG;AACH,wBAAgB,IAAI,CAChB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,WAAW,CAAC,cAAqB,GAC7C,WAAW,GAAG,WAAW,CAAC,YAAY,CAExC"}
|