@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.
Files changed (193) hide show
  1. package/dist/cjs/codec/DnsCodec.d.ts +8 -6
  2. package/dist/cjs/codec/DnsCodec.d.ts.map +1 -1
  3. package/dist/cjs/codec/DnsCodec.js +10 -7
  4. package/dist/cjs/codec/DnsCodec.js.map +1 -1
  5. package/dist/cjs/crypto/Crypto.d.ts +32 -36
  6. package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
  7. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  8. package/dist/cjs/environment/Environment.js +2 -1
  9. package/dist/cjs/environment/Environment.js.map +1 -1
  10. package/dist/cjs/log/Diagnostic.d.ts +4 -6
  11. package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
  12. package/dist/cjs/log/Diagnostic.js +6 -26
  13. package/dist/cjs/log/Diagnostic.js.map +1 -1
  14. package/dist/cjs/log/Logger.js +1 -1
  15. package/dist/cjs/log/Logger.js.map +1 -1
  16. package/dist/cjs/net/RetrySchedule.d.ts +10 -11
  17. package/dist/cjs/net/RetrySchedule.d.ts.map +1 -1
  18. package/dist/cjs/net/RetrySchedule.js +8 -7
  19. package/dist/cjs/net/RetrySchedule.js.map +1 -1
  20. package/dist/cjs/net/ServerAddress.d.ts +15 -4
  21. package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
  22. package/dist/cjs/net/ServerAddress.js +33 -3
  23. package/dist/cjs/net/ServerAddress.js.map +2 -2
  24. package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -1
  25. package/dist/cjs/net/UdpMulticastServer.js +2 -1
  26. package/dist/cjs/net/UdpMulticastServer.js.map +1 -1
  27. package/dist/cjs/storage/StringifyTools.d.ts +2 -1
  28. package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
  29. package/dist/cjs/storage/StringifyTools.js +3 -0
  30. package/dist/cjs/storage/StringifyTools.js.map +1 -1
  31. package/dist/cjs/time/Duration.d.ts +47 -0
  32. package/dist/cjs/time/Duration.d.ts.map +1 -0
  33. package/dist/cjs/time/Duration.js +145 -0
  34. package/dist/cjs/time/Duration.js.map +6 -0
  35. package/dist/cjs/time/Time.d.ts +21 -19
  36. package/dist/cjs/time/Time.d.ts.map +1 -1
  37. package/dist/cjs/time/Time.js +44 -33
  38. package/dist/cjs/time/Time.js.map +1 -1
  39. package/dist/cjs/time/TimeUnit.d.ts +87 -0
  40. package/dist/cjs/time/TimeUnit.d.ts.map +1 -0
  41. package/dist/cjs/time/TimeUnit.js +88 -0
  42. package/dist/cjs/time/TimeUnit.js.map +6 -0
  43. package/dist/cjs/time/Timespan.d.ts +26 -0
  44. package/dist/cjs/time/Timespan.d.ts.map +1 -0
  45. package/dist/cjs/time/Timespan.js +52 -0
  46. package/dist/cjs/time/Timespan.js.map +6 -0
  47. package/dist/cjs/time/Timestamp.d.ts +47 -0
  48. package/dist/cjs/time/Timestamp.d.ts.map +1 -0
  49. package/dist/cjs/time/Timestamp.js +78 -0
  50. package/dist/cjs/time/Timestamp.js.map +6 -0
  51. package/dist/cjs/time/index.d.ts +4 -0
  52. package/dist/cjs/time/index.d.ts.map +1 -1
  53. package/dist/cjs/time/index.js +4 -0
  54. package/dist/cjs/time/index.js.map +1 -1
  55. package/dist/cjs/transaction/Status.d.ts +1 -1
  56. package/dist/cjs/transaction/Status.d.ts.map +1 -1
  57. package/dist/cjs/transaction/Status.js +2 -1
  58. package/dist/cjs/transaction/Status.js.map +1 -1
  59. package/dist/cjs/transaction/Tx.d.ts.map +1 -1
  60. package/dist/cjs/transaction/Tx.js +10 -8
  61. package/dist/cjs/transaction/Tx.js.map +1 -1
  62. package/dist/cjs/util/Cache.d.ts +5 -4
  63. package/dist/cjs/util/Cache.d.ts.map +1 -1
  64. package/dist/cjs/util/Cache.js +11 -11
  65. package/dist/cjs/util/Cache.js.map +1 -1
  66. package/dist/cjs/util/DataReadQueue.d.ts +2 -1
  67. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
  68. package/dist/cjs/util/DataReadQueue.js +9 -3
  69. package/dist/cjs/util/DataReadQueue.js.map +1 -1
  70. package/dist/cjs/util/DeepEqual.d.ts +13 -1
  71. package/dist/cjs/util/DeepEqual.d.ts.map +1 -1
  72. package/dist/cjs/util/DeepEqual.js +24 -5
  73. package/dist/cjs/util/DeepEqual.js.map +2 -2
  74. package/dist/cjs/util/Observable.d.ts +4 -3
  75. package/dist/cjs/util/Observable.d.ts.map +1 -1
  76. package/dist/cjs/util/Observable.js +16 -15
  77. package/dist/cjs/util/Observable.js.map +1 -1
  78. package/dist/cjs/util/PromiseQueue.d.ts +2 -1
  79. package/dist/cjs/util/PromiseQueue.d.ts.map +1 -1
  80. package/dist/cjs/util/PromiseQueue.js +2 -1
  81. package/dist/cjs/util/PromiseQueue.js.map +1 -1
  82. package/dist/cjs/util/Promises.d.ts +3 -2
  83. package/dist/cjs/util/Promises.d.ts.map +1 -1
  84. package/dist/cjs/util/Promises.js +4 -4
  85. package/dist/cjs/util/Promises.js.map +1 -1
  86. package/dist/esm/codec/DnsCodec.d.ts +8 -6
  87. package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
  88. package/dist/esm/codec/DnsCodec.js +10 -7
  89. package/dist/esm/codec/DnsCodec.js.map +1 -1
  90. package/dist/esm/crypto/Crypto.d.ts +32 -36
  91. package/dist/esm/crypto/Crypto.d.ts.map +1 -1
  92. package/dist/esm/environment/Environment.d.ts.map +1 -1
  93. package/dist/esm/environment/Environment.js +2 -1
  94. package/dist/esm/environment/Environment.js.map +1 -1
  95. package/dist/esm/log/Diagnostic.d.ts +4 -6
  96. package/dist/esm/log/Diagnostic.d.ts.map +1 -1
  97. package/dist/esm/log/Diagnostic.js +6 -26
  98. package/dist/esm/log/Diagnostic.js.map +1 -1
  99. package/dist/esm/log/Logger.js +1 -1
  100. package/dist/esm/log/Logger.js.map +1 -1
  101. package/dist/esm/net/RetrySchedule.d.ts +10 -11
  102. package/dist/esm/net/RetrySchedule.d.ts.map +1 -1
  103. package/dist/esm/net/RetrySchedule.js +8 -7
  104. package/dist/esm/net/RetrySchedule.js.map +1 -1
  105. package/dist/esm/net/ServerAddress.d.ts +15 -4
  106. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  107. package/dist/esm/net/ServerAddress.js +33 -3
  108. package/dist/esm/net/ServerAddress.js.map +2 -2
  109. package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
  110. package/dist/esm/net/UdpMulticastServer.js +2 -1
  111. package/dist/esm/net/UdpMulticastServer.js.map +1 -1
  112. package/dist/esm/storage/StringifyTools.d.ts +2 -1
  113. package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
  114. package/dist/esm/storage/StringifyTools.js +3 -0
  115. package/dist/esm/storage/StringifyTools.js.map +1 -1
  116. package/dist/esm/time/Duration.d.ts +47 -0
  117. package/dist/esm/time/Duration.d.ts.map +1 -0
  118. package/dist/esm/time/Duration.js +125 -0
  119. package/dist/esm/time/Duration.js.map +6 -0
  120. package/dist/esm/time/Time.d.ts +21 -19
  121. package/dist/esm/time/Time.d.ts.map +1 -1
  122. package/dist/esm/time/Time.js +44 -33
  123. package/dist/esm/time/Time.js.map +1 -1
  124. package/dist/esm/time/TimeUnit.d.ts +87 -0
  125. package/dist/esm/time/TimeUnit.d.ts.map +1 -0
  126. package/dist/esm/time/TimeUnit.js +68 -0
  127. package/dist/esm/time/TimeUnit.js.map +6 -0
  128. package/dist/esm/time/Timespan.d.ts +26 -0
  129. package/dist/esm/time/Timespan.d.ts.map +1 -0
  130. package/dist/esm/time/Timespan.js +32 -0
  131. package/dist/esm/time/Timespan.js.map +6 -0
  132. package/dist/esm/time/Timestamp.d.ts +47 -0
  133. package/dist/esm/time/Timestamp.d.ts.map +1 -0
  134. package/dist/esm/time/Timestamp.js +58 -0
  135. package/dist/esm/time/Timestamp.js.map +6 -0
  136. package/dist/esm/time/index.d.ts +4 -0
  137. package/dist/esm/time/index.d.ts.map +1 -1
  138. package/dist/esm/time/index.js +4 -0
  139. package/dist/esm/time/index.js.map +1 -1
  140. package/dist/esm/transaction/Status.d.ts +1 -1
  141. package/dist/esm/transaction/Status.d.ts.map +1 -1
  142. package/dist/esm/transaction/Status.js +2 -1
  143. package/dist/esm/transaction/Status.js.map +1 -1
  144. package/dist/esm/transaction/Tx.d.ts.map +1 -1
  145. package/dist/esm/transaction/Tx.js +10 -8
  146. package/dist/esm/transaction/Tx.js.map +1 -1
  147. package/dist/esm/util/Cache.d.ts +5 -4
  148. package/dist/esm/util/Cache.d.ts.map +1 -1
  149. package/dist/esm/util/Cache.js +11 -11
  150. package/dist/esm/util/Cache.js.map +1 -1
  151. package/dist/esm/util/DataReadQueue.d.ts +2 -1
  152. package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
  153. package/dist/esm/util/DataReadQueue.js +9 -3
  154. package/dist/esm/util/DataReadQueue.js.map +1 -1
  155. package/dist/esm/util/DeepEqual.d.ts +13 -1
  156. package/dist/esm/util/DeepEqual.d.ts.map +1 -1
  157. package/dist/esm/util/DeepEqual.js +24 -5
  158. package/dist/esm/util/DeepEqual.js.map +2 -2
  159. package/dist/esm/util/Observable.d.ts +4 -3
  160. package/dist/esm/util/Observable.d.ts.map +1 -1
  161. package/dist/esm/util/Observable.js +16 -15
  162. package/dist/esm/util/Observable.js.map +1 -1
  163. package/dist/esm/util/PromiseQueue.d.ts +2 -1
  164. package/dist/esm/util/PromiseQueue.d.ts.map +1 -1
  165. package/dist/esm/util/PromiseQueue.js +2 -1
  166. package/dist/esm/util/PromiseQueue.js.map +1 -1
  167. package/dist/esm/util/Promises.d.ts +3 -2
  168. package/dist/esm/util/Promises.d.ts.map +1 -1
  169. package/dist/esm/util/Promises.js +4 -4
  170. package/dist/esm/util/Promises.js.map +1 -1
  171. package/package.json +3 -3
  172. package/src/codec/DnsCodec.ts +27 -8
  173. package/src/environment/Environment.ts +2 -1
  174. package/src/log/Diagnostic.ts +9 -37
  175. package/src/log/Logger.ts +1 -1
  176. package/src/net/RetrySchedule.ts +14 -14
  177. package/src/net/ServerAddress.ts +44 -5
  178. package/src/net/UdpMulticastServer.ts +2 -1
  179. package/src/storage/StringifyTools.ts +5 -0
  180. package/src/time/Duration.ts +181 -0
  181. package/src/time/Time.ts +50 -39
  182. package/src/time/TimeUnit.ts +159 -0
  183. package/src/time/Timespan.ts +52 -0
  184. package/src/time/Timestamp.ts +94 -0
  185. package/src/time/index.ts +4 -0
  186. package/src/transaction/Status.ts +2 -1
  187. package/src/transaction/Tx.ts +9 -7
  188. package/src/util/Cache.ts +11 -10
  189. package/src/util/DataReadQueue.ts +9 -3
  190. package/src/util/DeepEqual.ts +38 -13
  191. package/src/util/Observable.ts +19 -17
  192. package/src/util/PromiseQueue.ts +4 -2
  193. package/src/util/Promises.ts +6 -5
@@ -27,6 +27,7 @@ var import_Cancelable = require("#util/Cancelable.js");
27
27
  var import_MatterError = require("../MatterError.js");
28
28
  var import_Diagnostic = require("../log/Diagnostic.js");
29
29
  var import_DiagnosticSource = require("../log/DiagnosticSource.js");
30
+ var import_TimeUnit = require("./TimeUnit.js");
30
31
  /**
31
32
  * @license
32
33
  * Copyright 2022-2025 Matter.js Authors
@@ -34,47 +35,53 @@ var import_DiagnosticSource = require("../log/DiagnosticSource.js");
34
35
  */
35
36
  const registry = /* @__PURE__ */ new Set();
36
37
  class Time {
37
- static get;
38
+ static default;
38
39
  static startup = {
39
40
  systemMs: 0,
40
41
  processMs: 0
41
42
  };
42
- now() {
43
+ get now() {
43
44
  return /* @__PURE__ */ new Date();
44
45
  }
45
- static now = () => Time.get().now();
46
- nowMs() {
46
+ static get now() {
47
+ return Time.default.now;
48
+ }
49
+ get nowMs() {
47
50
  return Date.now();
48
51
  }
49
- static nowMs = () => Time.get().nowMs();
50
- nowUs() {
51
- return Math.floor(performance.now() + performance.timeOrigin) * 1e3;
52
+ static get nowMs() {
53
+ return Time.default.nowMs;
54
+ }
55
+ get nowUs() {
56
+ return Math.floor(performance.now() + performance.timeOrigin);
57
+ }
58
+ static get nowUs() {
59
+ return Time.default.nowUs;
52
60
  }
53
- static nowUs = () => Time.get().nowUs();
54
61
  /**
55
62
  * Create a timer that will call callback after durationMs has passed.
56
63
  */
57
- getTimer(name, durationMs, callback) {
58
- return new StandardTimer(name, durationMs, callback, false);
64
+ getTimer(name, duration, callback) {
65
+ return new StandardTimer(name, duration, callback, false);
59
66
  }
60
- static getTimer = (name, durationMs, callback) => Time.get().getTimer(name, durationMs, callback);
67
+ static getTimer = (name, duration, callback) => Time.default.getTimer(name, duration, callback);
61
68
  /**
62
69
  * Create a timer that will periodically call callback at intervalMs intervals.
63
70
  */
64
- getPeriodicTimer(name, intervalMs, callback) {
65
- return new StandardTimer(name, intervalMs, callback, true);
71
+ getPeriodicTimer(name, duration, callback) {
72
+ return new StandardTimer(name, duration, callback, true);
66
73
  }
67
- static getPeriodicTimer = (name, intervalMs, callback) => Time.get().getPeriodicTimer(name, intervalMs, callback);
74
+ static getPeriodicTimer = (name, duration, callback) => Time.default.getPeriodicTimer(name, duration, callback);
68
75
  /**
69
76
  * Create a promise that resolves after a specific interval or when canceled, whichever comes first.
70
77
  */
71
- sleep(name, durationMs) {
78
+ sleep(name, duration) {
72
79
  let timer;
73
80
  let resolver;
74
81
  return new import_Cancelable.CancelablePromise(
75
82
  (resolve) => {
76
83
  resolver = resolve;
77
- timer = Time.getTimer(name, durationMs, resolve);
84
+ timer = Time.getTimer(name, duration, resolve);
78
85
  timer.start();
79
86
  },
80
87
  () => {
@@ -83,8 +90,8 @@ class Time {
83
90
  }
84
91
  );
85
92
  }
86
- static sleep(name, durationMs) {
87
- return Time.get().sleep(name, durationMs);
93
+ static sleep(name, duration) {
94
+ return Time.default.sleep(name, duration);
88
95
  }
89
96
  static register(timer) {
90
97
  registry.add(timer);
@@ -98,18 +105,23 @@ class Time {
98
105
  }
99
106
  }
100
107
  if (!performance || typeof performance.now !== "function" || typeof performance.timeOrigin !== "number") {
101
- Time.prototype.nowUs = () => Time.nowMs() * 1e3;
108
+ Object.defineProperty(Time.prototype, "nowUs", {
109
+ get() {
110
+ return Time.nowMs;
111
+ }
112
+ });
102
113
  }
103
114
  class StandardTimer {
104
- constructor(name, intervalMs, callback, isPeriodic) {
115
+ constructor(name, duration, callback, isPeriodic) {
105
116
  this.name = name;
106
117
  this.callback = callback;
107
118
  this.isPeriodic = isPeriodic;
108
- this.intervalMs = intervalMs;
119
+ this.interval = duration;
109
120
  }
110
121
  #timerId;
111
122
  #utility = false;
112
- #intervalMs = -1;
123
+ #interval = import_TimeUnit.Instant;
124
+ // Real value installed in constructor
113
125
  isRunning = false;
114
126
  get systemId() {
115
127
  return Number(this.#timerId);
@@ -119,16 +131,16 @@ class StandardTimer {
119
131
  *
120
132
  * You can change this value but changes have no effect until the timer restarts.
121
133
  */
122
- set intervalMs(intervalMs) {
123
- if (intervalMs < 0 || intervalMs > 2147483647) {
134
+ set interval(interval) {
135
+ if (interval < 0 || interval > 2147483647) {
124
136
  throw new import_MatterError.ImplementationError(
125
- `Invalid intervalMs: ${intervalMs}. The value must be between 0 and 32-bit maximum value (2147483647)`
137
+ `Invalid intervalMs: ${interval}. The value must be between 0 and 32-bit maximum value (2147483647)`
126
138
  );
127
139
  }
128
- this.#intervalMs = intervalMs;
140
+ this.#interval = interval;
129
141
  }
130
- get intervalMs() {
131
- return this.#intervalMs;
142
+ get interval() {
143
+ return this.#interval;
132
144
  }
133
145
  get utility() {
134
146
  return this.#utility;
@@ -157,7 +169,7 @@ class StandardTimer {
157
169
  this.isRunning = false;
158
170
  }
159
171
  this.callback();
160
- }, this.intervalMs);
172
+ }, this.interval);
161
173
  return this;
162
174
  }
163
175
  stop() {
@@ -174,7 +186,7 @@ import_DiagnosticSource.DiagnosticSource.add({
174
186
  timer.name,
175
187
  import_Diagnostic.Diagnostic.dict({
176
188
  periodic: timer.isPeriodic,
177
- interval: import_Diagnostic.Diagnostic.interval(timer.intervalMs),
189
+ interval: timer.interval,
178
190
  system: timer.systemId,
179
191
  elapsed: timer.elapsed
180
192
  })
@@ -183,9 +195,8 @@ import_DiagnosticSource.DiagnosticSource.add({
183
195
  }
184
196
  });
185
197
  import_Boot.Boot.init(() => {
186
- const time = new Time();
187
- Time.startup.systemMs = Time.startup.processMs = time.nowMs();
188
- Time.get = () => time;
198
+ Time.default = new Time();
199
+ Time.startup.systemMs = Time.startup.processMs = Time.nowMs;
189
200
  if (typeof MatterHooks !== "undefined") {
190
201
  MatterHooks?.timeSetup?.(Time);
191
202
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/time/Time.ts"],
4
- "mappings": "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",
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,88 @@
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 TimeUnit_exports = {};
20
+ __export(TimeUnit_exports, {
21
+ Days: () => Days,
22
+ Hours: () => Hours,
23
+ Instant: () => Instant,
24
+ Microseconds: () => Microseconds,
25
+ Millis: () => Millis,
26
+ Minutes: () => Minutes,
27
+ Seconds: () => Seconds,
28
+ TimeUnit: () => TimeUnit
29
+ });
30
+ module.exports = __toCommonJS(TimeUnit_exports);
31
+ /**
32
+ * @license
33
+ * Copyright 2022-2025 Matter.js Authors
34
+ * SPDX-License-Identifier: Apache-2.0
35
+ */
36
+ function TimeUnit(kind, abbrev, one, props = {}) {
37
+ const unit = {
38
+ [kind]: (scale) => {
39
+ if (scale === void 0) {
40
+ return void 0;
41
+ }
42
+ if (typeof scale === "bigint") {
43
+ scale = Number(scale);
44
+ }
45
+ return scale * one;
46
+ }
47
+ }[kind];
48
+ Object.assign(unit, {
49
+ ...props,
50
+ kind,
51
+ abbrev,
52
+ one,
53
+ of,
54
+ fractionalOf,
55
+ ceil,
56
+ floor,
57
+ round,
58
+ toString: kindOf,
59
+ [Symbol.for("nodejs.util.inspect.custom")]: kindOf
60
+ });
61
+ return unit;
62
+ }
63
+ function of(duration) {
64
+ return Math.floor(duration / this.one);
65
+ }
66
+ function fractionalOf(duration) {
67
+ return duration / this.one;
68
+ }
69
+ function ceil(duration) {
70
+ return Math.ceil(duration / this.one) * this.one;
71
+ }
72
+ function floor(duration) {
73
+ return Math.floor(duration / this.one) * this.one;
74
+ }
75
+ function round(duration) {
76
+ return Math.round(duration / this.one) * this.one;
77
+ }
78
+ function kindOf() {
79
+ return this.kind;
80
+ }
81
+ const Microseconds = TimeUnit("microsecond", "\u03BCs", 1e-3);
82
+ const Millis = TimeUnit("millisecond", "ms", 1);
83
+ const Seconds = TimeUnit("second", "s", 1e3);
84
+ const Minutes = TimeUnit("minute", "m", 6e4);
85
+ const Hours = TimeUnit("hour", "h", 36e5);
86
+ const Days = TimeUnit("day", "d", 864e5);
87
+ const Instant = Millis(0);
88
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,52 @@
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 Timespan_exports = {};
20
+ __export(Timespan_exports, {
21
+ Timespan: () => Timespan
22
+ });
23
+ module.exports = __toCommonJS(Timespan_exports);
24
+ var import_Timestamp = require("./Timestamp.js");
25
+ /**
26
+ * @license
27
+ * Copyright 2022-2025 Matter.js Authors
28
+ * SPDX-License-Identifier: Apache-2.0
29
+ */
30
+ function Timespan(start, stop) {
31
+ return Object.create(prototype, {
32
+ start: { value: (0, import_Timestamp.Timestamp)(start), enumerable: true },
33
+ stop: { value: (0, import_Timestamp.Timestamp)(stop), enumerable: true }
34
+ });
35
+ }
36
+ const prototype = {
37
+ start: 0,
38
+ stop: 0,
39
+ get duration() {
40
+ return this.stop - this.start;
41
+ },
42
+ from(newStart) {
43
+ return Timespan(newStart, this.stop);
44
+ },
45
+ to(newStop) {
46
+ return Timespan(this.start, newStop);
47
+ },
48
+ valueOf() {
49
+ return { start: this.start, stop: this.stop };
50
+ }
51
+ };
52
+ //# 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,uBAA0B;AAP1B;AAAA;AAAA;AAAA;AAAA;AAyBO,SAAS,SAAS,OAA6B,MAA4B;AAC9E,SAAO,OAAO,OAAO,WAAW;AAAA,IAC5B,OAAO,EAAE,WAAO,4BAAU,KAAK,GAAG,YAAY,KAAK;AAAA,IACnD,MAAM,EAAE,WAAO,4BAAU,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,78 @@
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 Timestamp_exports = {};
20
+ __export(Timestamp_exports, {
21
+ Timestamp: () => Timestamp,
22
+ TimestampFormatError: () => TimestampFormatError
23
+ });
24
+ module.exports = __toCommonJS(Timestamp_exports);
25
+ var import_MatterError = require("#MatterError.js");
26
+ var import_Time = require("./Time.js");
27
+ /**
28
+ * @license
29
+ * Copyright 2022-2025 Matter.js Authors
30
+ * SPDX-License-Identifier: Apache-2.0
31
+ */
32
+ function Timestamp(source) {
33
+ if (source === void 0) {
34
+ return import_Time.Time.nowMs;
35
+ }
36
+ if (typeof source === "string") {
37
+ const date = Date.parse(source);
38
+ if (Number.isNaN(date.valueOf())) {
39
+ throw new TimestampFormatError("Invalid timestamp format");
40
+ }
41
+ } else if (typeof source === "object" && source !== null && source instanceof Date) {
42
+ if (Number.isNaN(source.valueOf())) {
43
+ throw new TimestampFormatError("Cannot convert date to timestamp because it is invalid");
44
+ }
45
+ source = source.getTime();
46
+ } else if (typeof source === "bigint") {
47
+ source = Number(source);
48
+ }
49
+ if (typeof source === "number") {
50
+ if (Number.isNaN(source)) {
51
+ throw new TimestampFormatError("A timestamp may not be NaN");
52
+ }
53
+ } else {
54
+ throw new TimestampFormatError(`Timestamp is not a number (received ${typeof source})`);
55
+ }
56
+ return source;
57
+ }
58
+ class TimestampFormatError extends import_MatterError.UnexpectedDataError {
59
+ }
60
+ ((Timestamp2) => {
61
+ function fromSeconds(source) {
62
+ return Math.floor(source * 1e3);
63
+ }
64
+ Timestamp2.fromSeconds = fromSeconds;
65
+ function fromMicroseconds(source) {
66
+ if (typeof source === "bigint") {
67
+ source = Number(source);
68
+ }
69
+ return Timestamp2(source / 1e3);
70
+ }
71
+ Timestamp2.fromMicroseconds = fromMicroseconds;
72
+ Timestamp2.zero = Timestamp2(0);
73
+ function dateOf(timestamp) {
74
+ return new Date(timestamp);
75
+ }
76
+ Timestamp2.dateOf = dateOf;
77
+ })(Timestamp || (Timestamp = {}));
78
+ //# 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;AAAA;AAMA,yBAAoC;AAEpC,kBAAqB;AARrB;AAAA;AAAA;AAAA;AAAA;AAsBO,SAAS,UACZ,QACuD;AACvD,MAAI,WAAW,QAAW;AACtB,WAAO,iBAAK;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,uCAAoB;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
+ }
@@ -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"}
@@ -15,7 +15,11 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
16
  var time_exports = {};
17
17
  module.exports = __toCommonJS(time_exports);
18
+ __reExport(time_exports, require("./Duration.js"), module.exports);
18
19
  __reExport(time_exports, require("./Time.js"), module.exports);
20
+ __reExport(time_exports, require("./Timespan.js"), module.exports);
21
+ __reExport(time_exports, require("./Timestamp.js"), module.exports);
22
+ __reExport(time_exports, require("./TimeUnit.js"), module.exports);
19
23
  /**
20
24
  * @license
21
25
  * Copyright 2022-2025 Matter.js Authors
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/time/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,sBANd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,0BANd;AAOA,yBAAc,sBAPd;AAQA,yBAAc,0BARd;AASA,yBAAc,2BATd;AAUA,yBAAc,0BAVd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -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 slowTransactionMs: number;
55
+ let slowTransactionTime: import("../index.js").Duration;
56
56
  /**
57
57
  * The log level for slow transaction reporting.
58
58
  */