@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.
Files changed (237) 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/net/mock/MockRouter.d.ts +2 -1
  28. package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -1
  29. package/dist/cjs/net/mock/MockRouter.js.map +1 -1
  30. package/dist/cjs/net/mock/MockUdpChannel.d.ts +2 -1
  31. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  32. package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
  33. package/dist/cjs/net/mock/NetworkSimulator.d.ts +2 -1
  34. package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
  35. package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
  36. package/dist/cjs/storage/Storage.d.ts +2 -1
  37. package/dist/cjs/storage/Storage.d.ts.map +1 -1
  38. package/dist/cjs/storage/Storage.js.map +1 -1
  39. package/dist/cjs/storage/StorageBackendMemory.d.ts +2 -1
  40. package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
  41. package/dist/cjs/storage/StorageBackendMemory.js +1 -1
  42. package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
  43. package/dist/cjs/storage/StorageContext.d.ts +2 -1
  44. package/dist/cjs/storage/StorageContext.d.ts.map +1 -1
  45. package/dist/cjs/storage/StorageContext.js.map +1 -1
  46. package/dist/cjs/storage/StringifyTools.d.ts +2 -1
  47. package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
  48. package/dist/cjs/storage/StringifyTools.js +3 -0
  49. package/dist/cjs/storage/StringifyTools.js.map +1 -1
  50. package/dist/cjs/time/Duration.d.ts +47 -0
  51. package/dist/cjs/time/Duration.d.ts.map +1 -0
  52. package/dist/cjs/time/Duration.js +145 -0
  53. package/dist/cjs/time/Duration.js.map +6 -0
  54. package/dist/cjs/time/Time.d.ts +21 -19
  55. package/dist/cjs/time/Time.d.ts.map +1 -1
  56. package/dist/cjs/time/Time.js +44 -33
  57. package/dist/cjs/time/Time.js.map +1 -1
  58. package/dist/cjs/time/TimeUnit.d.ts +87 -0
  59. package/dist/cjs/time/TimeUnit.d.ts.map +1 -0
  60. package/dist/cjs/time/TimeUnit.js +88 -0
  61. package/dist/cjs/time/TimeUnit.js.map +6 -0
  62. package/dist/cjs/time/Timespan.d.ts +26 -0
  63. package/dist/cjs/time/Timespan.d.ts.map +1 -0
  64. package/dist/cjs/time/Timespan.js +52 -0
  65. package/dist/cjs/time/Timespan.js.map +6 -0
  66. package/dist/cjs/time/Timestamp.d.ts +47 -0
  67. package/dist/cjs/time/Timestamp.d.ts.map +1 -0
  68. package/dist/cjs/time/Timestamp.js +78 -0
  69. package/dist/cjs/time/Timestamp.js.map +6 -0
  70. package/dist/cjs/time/index.d.ts +4 -0
  71. package/dist/cjs/time/index.d.ts.map +1 -1
  72. package/dist/cjs/time/index.js +4 -0
  73. package/dist/cjs/time/index.js.map +1 -1
  74. package/dist/cjs/transaction/Status.d.ts +1 -1
  75. package/dist/cjs/transaction/Status.d.ts.map +1 -1
  76. package/dist/cjs/transaction/Status.js +2 -1
  77. package/dist/cjs/transaction/Status.js.map +1 -1
  78. package/dist/cjs/transaction/Tx.d.ts.map +1 -1
  79. package/dist/cjs/transaction/Tx.js +10 -8
  80. package/dist/cjs/transaction/Tx.js.map +1 -1
  81. package/dist/cjs/util/Cache.d.ts +5 -4
  82. package/dist/cjs/util/Cache.d.ts.map +1 -1
  83. package/dist/cjs/util/Cache.js +11 -11
  84. package/dist/cjs/util/Cache.js.map +1 -1
  85. package/dist/cjs/util/DataReadQueue.d.ts +2 -1
  86. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
  87. package/dist/cjs/util/DataReadQueue.js +9 -3
  88. package/dist/cjs/util/DataReadQueue.js.map +1 -1
  89. package/dist/cjs/util/DeepEqual.d.ts +13 -1
  90. package/dist/cjs/util/DeepEqual.d.ts.map +1 -1
  91. package/dist/cjs/util/DeepEqual.js +24 -5
  92. package/dist/cjs/util/DeepEqual.js.map +2 -2
  93. package/dist/cjs/util/Observable.d.ts +4 -3
  94. package/dist/cjs/util/Observable.d.ts.map +1 -1
  95. package/dist/cjs/util/Observable.js +16 -15
  96. package/dist/cjs/util/Observable.js.map +1 -1
  97. package/dist/cjs/util/PromiseQueue.d.ts +2 -1
  98. package/dist/cjs/util/PromiseQueue.d.ts.map +1 -1
  99. package/dist/cjs/util/PromiseQueue.js +2 -1
  100. package/dist/cjs/util/PromiseQueue.js.map +1 -1
  101. package/dist/cjs/util/Promises.d.ts +3 -2
  102. package/dist/cjs/util/Promises.d.ts.map +1 -1
  103. package/dist/cjs/util/Promises.js +4 -4
  104. package/dist/cjs/util/Promises.js.map +1 -1
  105. package/dist/esm/codec/DnsCodec.d.ts +8 -6
  106. package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
  107. package/dist/esm/codec/DnsCodec.js +10 -7
  108. package/dist/esm/codec/DnsCodec.js.map +1 -1
  109. package/dist/esm/crypto/Crypto.d.ts +32 -36
  110. package/dist/esm/crypto/Crypto.d.ts.map +1 -1
  111. package/dist/esm/environment/Environment.d.ts.map +1 -1
  112. package/dist/esm/environment/Environment.js +2 -1
  113. package/dist/esm/environment/Environment.js.map +1 -1
  114. package/dist/esm/log/Diagnostic.d.ts +4 -6
  115. package/dist/esm/log/Diagnostic.d.ts.map +1 -1
  116. package/dist/esm/log/Diagnostic.js +6 -26
  117. package/dist/esm/log/Diagnostic.js.map +1 -1
  118. package/dist/esm/log/Logger.js +1 -1
  119. package/dist/esm/log/Logger.js.map +1 -1
  120. package/dist/esm/net/RetrySchedule.d.ts +10 -11
  121. package/dist/esm/net/RetrySchedule.d.ts.map +1 -1
  122. package/dist/esm/net/RetrySchedule.js +8 -7
  123. package/dist/esm/net/RetrySchedule.js.map +1 -1
  124. package/dist/esm/net/ServerAddress.d.ts +15 -4
  125. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  126. package/dist/esm/net/ServerAddress.js +33 -3
  127. package/dist/esm/net/ServerAddress.js.map +2 -2
  128. package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
  129. package/dist/esm/net/UdpMulticastServer.js +2 -1
  130. package/dist/esm/net/UdpMulticastServer.js.map +1 -1
  131. package/dist/esm/net/mock/MockRouter.d.ts +2 -1
  132. package/dist/esm/net/mock/MockRouter.d.ts.map +1 -1
  133. package/dist/esm/net/mock/MockRouter.js.map +1 -1
  134. package/dist/esm/net/mock/MockUdpChannel.d.ts +2 -1
  135. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  136. package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
  137. package/dist/esm/net/mock/NetworkSimulator.d.ts +2 -1
  138. package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
  139. package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
  140. package/dist/esm/storage/Storage.d.ts +2 -1
  141. package/dist/esm/storage/Storage.d.ts.map +1 -1
  142. package/dist/esm/storage/Storage.js.map +1 -1
  143. package/dist/esm/storage/StorageBackendMemory.d.ts +2 -1
  144. package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
  145. package/dist/esm/storage/StorageBackendMemory.js +1 -1
  146. package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
  147. package/dist/esm/storage/StorageContext.d.ts +2 -1
  148. package/dist/esm/storage/StorageContext.d.ts.map +1 -1
  149. package/dist/esm/storage/StorageContext.js.map +1 -1
  150. package/dist/esm/storage/StringifyTools.d.ts +2 -1
  151. package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
  152. package/dist/esm/storage/StringifyTools.js +3 -0
  153. package/dist/esm/storage/StringifyTools.js.map +1 -1
  154. package/dist/esm/time/Duration.d.ts +47 -0
  155. package/dist/esm/time/Duration.d.ts.map +1 -0
  156. package/dist/esm/time/Duration.js +125 -0
  157. package/dist/esm/time/Duration.js.map +6 -0
  158. package/dist/esm/time/Time.d.ts +21 -19
  159. package/dist/esm/time/Time.d.ts.map +1 -1
  160. package/dist/esm/time/Time.js +44 -33
  161. package/dist/esm/time/Time.js.map +1 -1
  162. package/dist/esm/time/TimeUnit.d.ts +87 -0
  163. package/dist/esm/time/TimeUnit.d.ts.map +1 -0
  164. package/dist/esm/time/TimeUnit.js +68 -0
  165. package/dist/esm/time/TimeUnit.js.map +6 -0
  166. package/dist/esm/time/Timespan.d.ts +26 -0
  167. package/dist/esm/time/Timespan.d.ts.map +1 -0
  168. package/dist/esm/time/Timespan.js +32 -0
  169. package/dist/esm/time/Timespan.js.map +6 -0
  170. package/dist/esm/time/Timestamp.d.ts +47 -0
  171. package/dist/esm/time/Timestamp.d.ts.map +1 -0
  172. package/dist/esm/time/Timestamp.js +58 -0
  173. package/dist/esm/time/Timestamp.js.map +6 -0
  174. package/dist/esm/time/index.d.ts +4 -0
  175. package/dist/esm/time/index.d.ts.map +1 -1
  176. package/dist/esm/time/index.js +4 -0
  177. package/dist/esm/time/index.js.map +1 -1
  178. package/dist/esm/transaction/Status.d.ts +1 -1
  179. package/dist/esm/transaction/Status.d.ts.map +1 -1
  180. package/dist/esm/transaction/Status.js +2 -1
  181. package/dist/esm/transaction/Status.js.map +1 -1
  182. package/dist/esm/transaction/Tx.d.ts.map +1 -1
  183. package/dist/esm/transaction/Tx.js +10 -8
  184. package/dist/esm/transaction/Tx.js.map +1 -1
  185. package/dist/esm/util/Cache.d.ts +5 -4
  186. package/dist/esm/util/Cache.d.ts.map +1 -1
  187. package/dist/esm/util/Cache.js +11 -11
  188. package/dist/esm/util/Cache.js.map +1 -1
  189. package/dist/esm/util/DataReadQueue.d.ts +2 -1
  190. package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
  191. package/dist/esm/util/DataReadQueue.js +9 -3
  192. package/dist/esm/util/DataReadQueue.js.map +1 -1
  193. package/dist/esm/util/DeepEqual.d.ts +13 -1
  194. package/dist/esm/util/DeepEqual.d.ts.map +1 -1
  195. package/dist/esm/util/DeepEqual.js +24 -5
  196. package/dist/esm/util/DeepEqual.js.map +2 -2
  197. package/dist/esm/util/Observable.d.ts +4 -3
  198. package/dist/esm/util/Observable.d.ts.map +1 -1
  199. package/dist/esm/util/Observable.js +16 -15
  200. package/dist/esm/util/Observable.js.map +1 -1
  201. package/dist/esm/util/PromiseQueue.d.ts +2 -1
  202. package/dist/esm/util/PromiseQueue.d.ts.map +1 -1
  203. package/dist/esm/util/PromiseQueue.js +2 -1
  204. package/dist/esm/util/PromiseQueue.js.map +1 -1
  205. package/dist/esm/util/Promises.d.ts +3 -2
  206. package/dist/esm/util/Promises.d.ts.map +1 -1
  207. package/dist/esm/util/Promises.js +4 -4
  208. package/dist/esm/util/Promises.js.map +1 -1
  209. package/package.json +3 -3
  210. package/src/codec/DnsCodec.ts +27 -8
  211. package/src/environment/Environment.ts +2 -1
  212. package/src/log/Diagnostic.ts +9 -37
  213. package/src/log/Logger.ts +1 -1
  214. package/src/net/RetrySchedule.ts +14 -14
  215. package/src/net/ServerAddress.ts +44 -5
  216. package/src/net/UdpMulticastServer.ts +2 -1
  217. package/src/net/mock/MockRouter.ts +2 -1
  218. package/src/net/mock/MockUdpChannel.ts +2 -1
  219. package/src/net/mock/NetworkSimulator.ts +2 -1
  220. package/src/storage/Storage.ts +2 -5
  221. package/src/storage/StorageBackendMemory.ts +2 -2
  222. package/src/storage/StorageContext.ts +2 -1
  223. package/src/storage/StringifyTools.ts +5 -0
  224. package/src/time/Duration.ts +181 -0
  225. package/src/time/Time.ts +50 -39
  226. package/src/time/TimeUnit.ts +159 -0
  227. package/src/time/Timespan.ts +52 -0
  228. package/src/time/Timestamp.ts +94 -0
  229. package/src/time/index.ts +4 -0
  230. package/src/transaction/Status.ts +2 -1
  231. package/src/transaction/Tx.ts +9 -7
  232. package/src/util/Cache.ts +11 -10
  233. package/src/util/DataReadQueue.ts +9 -3
  234. package/src/util/DeepEqual.ts +38 -13
  235. package/src/util/Observable.ts +19 -17
  236. package/src/util/PromiseQueue.ts +4 -2
  237. package/src/util/Promises.ts +6 -5
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var Duration_exports = {};
20
+ __export(Duration_exports, {
21
+ Duration: () => Duration,
22
+ DurationFormatError: () => DurationFormatError
23
+ });
24
+ module.exports = __toCommonJS(Duration_exports);
25
+ var import_MatterError = require("#MatterError.js");
26
+ /**
27
+ * @license
28
+ * Copyright 2022-2025 Matter.js Authors
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ function Duration(source) {
32
+ if (typeof source === "string") {
33
+ return Duration.parse(source);
34
+ }
35
+ if (typeof source === "number") {
36
+ if (Number.isNaN(source)) {
37
+ throw new DurationFormatError(`A duration may not be NaN`);
38
+ }
39
+ return source;
40
+ }
41
+ throw new DurationFormatError(`Interval value is not a number (received ${typeof source})`);
42
+ }
43
+ class DurationFormatError extends import_MatterError.UnexpectedDataError {
44
+ }
45
+ ((Duration2) => {
46
+ function max(a, b) {
47
+ if (b > a) {
48
+ return b;
49
+ }
50
+ return a;
51
+ }
52
+ Duration2.max = max;
53
+ function min(a, b) {
54
+ if (b < a) {
55
+ return b;
56
+ }
57
+ return a;
58
+ }
59
+ Duration2.min = min;
60
+ function format(duration) {
61
+ let ms = duration;
62
+ if (typeof ms !== "number" || Number.isNaN(ms)) {
63
+ return "invalid";
64
+ }
65
+ switch (ms) {
66
+ case 0:
67
+ return "0";
68
+ case Infinity:
69
+ return "forever";
70
+ case -Infinity:
71
+ return "until now";
72
+ }
73
+ if (ms < 0) {
74
+ return `${toPrecision(ms * 1e3, 3)}\u03BCs`;
75
+ } else if (ms < 1e3) {
76
+ return `${toPrecision(ms, 3)}ms`;
77
+ } else if (ms < 6e4) {
78
+ return `${toPrecision(ms / 1e3, 3)}s`;
79
+ }
80
+ const parts = Array();
81
+ if (ms > 864e5) {
82
+ parts.push(`${Math.floor(ms / 864e5)}d`);
83
+ ms %= 864e5;
84
+ }
85
+ const hours = Math.floor(ms / 36e5);
86
+ if (hours) {
87
+ parts.push(`${hours}h`);
88
+ }
89
+ ms %= 36e5;
90
+ const minutes = Math.floor(ms / 6e4);
91
+ if (minutes) {
92
+ parts.push(`${minutes}m`);
93
+ }
94
+ ms %= 6e4;
95
+ const seconds = Math.floor(ms / 1e3);
96
+ if (seconds) {
97
+ parts.push(`${seconds}s`);
98
+ }
99
+ return parts.join(" ");
100
+ }
101
+ Duration2.format = format;
102
+ function parse(text) {
103
+ const parts = text.split(/\s+/).filter((part) => part !== "");
104
+ let interval = 0;
105
+ for (const part of parts) {
106
+ const suffix = text.match(/[a-zμ]+/i)?.[1];
107
+ if (suffix === void 0) {
108
+ throw new DurationFormatError(`Interval component "${part}" is missing an time suffix`);
109
+ }
110
+ const value = Number(text.slice(text.length - suffix.length));
111
+ if (Number.isNaN(value)) {
112
+ throw new DurationFormatError(`Interval component "${part}" contains no numeric component`);
113
+ }
114
+ switch (suffix.toLowerCase()) {
115
+ case "\u03BCs":
116
+ case "us":
117
+ interval += value / 1e3;
118
+ break;
119
+ case "ms":
120
+ interval += value;
121
+ break;
122
+ case "s":
123
+ interval += value * 1e3;
124
+ break;
125
+ case "m":
126
+ interval += value * 6e4;
127
+ break;
128
+ case "h":
129
+ interval += value * 36e5;
130
+ break;
131
+ case "d":
132
+ interval += value * 864e5;
133
+ break;
134
+ default:
135
+ throw new DurationFormatError(`Interval component ${part} contains an unsupported unit suffix`);
136
+ }
137
+ }
138
+ return interval;
139
+ }
140
+ Duration2.parse = parse;
141
+ })(Duration || (Duration = {}));
142
+ function toPrecision(number, precision) {
143
+ return number.toPrecision(precision).replace(/\.?0+/, "");
144
+ }
145
+ //# sourceMappingURL=Duration.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/time/Duration.ts"],
4
+ "mappings": "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",
5
+ "names": ["Duration"]
6
+ }
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import { CancelablePromise } from "#util/Cancelable.js";
7
7
  import { Diagnostic } from "../log/Diagnostic.js";
8
+ import { Duration } from "./Duration.js";
9
+ import type { Timestamp } from "./Timestamp.js";
8
10
  /**
9
11
  * Timer and date/time management interface.
10
12
  *
@@ -12,32 +14,32 @@ import { Diagnostic } from "../log/Diagnostic.js";
12
14
  * environment.
13
15
  */
14
16
  export declare class Time {
15
- static get: () => Time;
17
+ static default: Time;
16
18
  static startup: {
17
- systemMs: number;
18
- processMs: number;
19
+ systemMs: Timestamp;
20
+ processMs: Timestamp;
19
21
  };
20
- now(): Date;
21
- static readonly now: () => Date;
22
- nowMs(): number;
23
- static readonly nowMs: () => number;
24
- nowUs(): number;
25
- static readonly nowUs: () => number;
22
+ get now(): Date;
23
+ static get now(): Date;
24
+ get nowMs(): number;
25
+ static get nowMs(): Timestamp;
26
+ get nowUs(): Timestamp;
27
+ static get nowUs(): Timestamp;
26
28
  /**
27
29
  * Create a timer that will call callback after durationMs has passed.
28
30
  */
29
- getTimer(name: string, durationMs: number, callback: Timer.Callback): Timer;
30
- static readonly getTimer: (name: string, durationMs: number, callback: Timer.Callback) => Timer;
31
+ getTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
32
+ static readonly getTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
31
33
  /**
32
34
  * Create a timer that will periodically call callback at intervalMs intervals.
33
35
  */
34
- getPeriodicTimer(name: string, intervalMs: number, callback: Timer.Callback): Timer;
35
- static readonly getPeriodicTimer: (name: string, intervalMs: number, callback: Timer.Callback) => Timer;
36
+ getPeriodicTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
37
+ static readonly getPeriodicTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
36
38
  /**
37
39
  * Create a promise that resolves after a specific interval or when canceled, whichever comes first.
38
40
  */
39
- sleep(name: string, durationMs: number): CancelablePromise;
40
- static sleep(name: string, durationMs: number): CancelablePromise<void>;
41
+ sleep(name: string, duration: Duration): CancelablePromise;
42
+ static sleep(name: string, duration: Duration): CancelablePromise<void>;
41
43
  static register(timer: Timer): void;
42
44
  static unregister(timer: Timer): void;
43
45
  static get timers(): Set<Timer>;
@@ -50,7 +52,7 @@ export interface Timer {
50
52
  /** System ID (diagnostics) */
51
53
  systemId: unknown;
52
54
  /** Interval (diagnostics) */
53
- intervalMs: number;
55
+ interval: Duration;
54
56
  /** Is the timer periodic? (diagnostics) */
55
57
  isPeriodic: boolean;
56
58
  /** Amount of time interval has been active (diagnostics) */
@@ -72,14 +74,14 @@ export declare class StandardTimer implements Timer {
72
74
  readonly isPeriodic: boolean;
73
75
  isRunning: boolean;
74
76
  get systemId(): number;
75
- constructor(name: string, intervalMs: number, callback: Timer.Callback, isPeriodic: boolean);
77
+ constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
76
78
  /**
77
79
  * The timer's interval.
78
80
  *
79
81
  * You can change this value but changes have no effect until the timer restarts.
80
82
  */
81
- set intervalMs(intervalMs: number);
82
- get intervalMs(): number;
83
+ set interval(interval: Duration);
84
+ get interval(): Duration;
83
85
  get utility(): boolean;
84
86
  set utility(utility: boolean);
85
87
  start(): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IAEvB,MAAM,CAAC,OAAO;;;MAGZ;IAEF,GAAG;IAGH,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAO,IAAI,CAAqB;IAEnD,KAAK;IAGL,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAO,MAAM,CAAuB;IAEzD,KAAK;IAGL,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAO,MAAM,CAAuB;IAEzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG3E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGnF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;AAOD,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,UAAU,EAAE,MAAM,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,MAAM,GAAG,CAAC;CACpC;AAED,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,UAAU,EAAE,MAAM,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAChC,UAAU,EAAE,OAAO;IAKhC;;;;OAIG;IACH,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAOhC;IAED,IAAI,UAAU,IATa,MAAM,CAWhC;IAED,IAAI,OAAO,IAIU,OAAO,CAF3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAgB3B;IAED,KAAK;IAcL,IAAI;CAMP"}
1
+ {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"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"}
@@ -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, "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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAAqB;AACrB,wBAAkC;AAClC,yBAAoC;AACpC,wBAA2B;AAC3B,8BAAiC;AAVjC;AAAA;AAAA;AAAA;AAAA;AAYA,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;AACF,WAAO,oBAAI,KAAK;AAAA,EACpB;AAAA,EACA,OAAgB,MAAM,MAAY,KAAK,IAAI,EAAE,IAAI;AAAA,EAEjD,QAAQ;AACJ,WAAO,KAAK,IAAI;AAAA,EACpB;AAAA,EACA,OAAgB,QAAQ,MAAc,KAAK,IAAI,EAAE,MAAM;AAAA,EAEvD,QAAQ;AACJ,WAAO,KAAK,MAAM,YAAY,IAAI,IAAI,YAAY,UAAU,IAAI;AAAA,EACpE;AAAA,EACA,OAAgB,QAAQ,MAAc,KAAK,IAAI,EAAE,MAAM;AAAA;AAAA;AAAA;AAAA,EAKvD,SAAS,MAAc,YAAoB,UAAiC;AACxE,WAAO,IAAI,cAAc,MAAM,YAAY,UAAU,KAAK;AAAA,EAC9D;AAAA,EACA,OAAgB,WAAW,CAAC,MAAc,YAAoB,aAC1D,KAAK,IAAI,EAAE,SAAS,MAAM,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKlD,iBAAiB,MAAc,YAAoB,UAAiC;AAChF,WAAO,IAAI,cAAc,MAAM,YAAY,UAAU,IAAI;AAAA,EAC7D;AAAA,EACA,OAAgB,mBAAmB,CAAC,MAAc,YAAoB,aAClE,KAAK,IAAI,EAAE,iBAAiB,MAAM,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK1D,MAAM,MAAc,YAAuC;AACvD,QAAI;AACJ,QAAI;AACJ,WAAO,IAAI;AAAA,MACP,aAAW;AACP,mBAAW;AACX,gBAAQ,KAAK,SAAS,MAAM,YAAY,OAAO;AAC/C,cAAM,MAAM;AAAA,MAChB;AAAA,MAEA,MAAM;AACF,cAAM,KAAK;AACX,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,OAAO,MAAM,MAAc,YAAoB;AAC3C,WAAO,KAAK,IAAI,EAAE,MAAM,MAAM,UAAU;AAAA,EAC5C;AAAA,EAEA,OAAO,SAAS,OAAc;AAC1B,aAAS,IAAI,KAAK;AAClB,UAAM,UAAU,6BAAW,QAAQ;AAAA,EACvC;AAAA,EAEA,OAAO,WAAW,OAAc;AAC5B,aAAS,OAAO,KAAK;AAAA,EACzB;AAAA,EAEA,WAAW,SAAS;AAChB,WAAO;AAAA,EACX;AACJ;AAGA,IAAI,CAAC,eAAe,OAAO,YAAY,QAAQ,cAAc,OAAO,YAAY,eAAe,UAAU;AACrG,OAAK,UAAU,QAAQ,MAAM,KAAK,MAAM,IAAI;AAChD;AAmCO,MAAM,cAA+B;AAAA,EAUxC,YACa,MACT,YACiB,UACR,YACX;AAJW;AAEQ;AACR;AAET,SAAK,aAAa;AAAA,EACtB;AAAA,EAhBA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EAEZ,IAAI,WAAW;AACX,WAAO,OAAO,KAAK,QAAQ;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,IAAI,WAAW,YAAoB;AAC/B,QAAI,aAAa,KAAK,aAAa,YAAY;AAC3C,YAAM,IAAI;AAAA,QACN,uBAAuB,UAAU;AAAA,MACrC;AAAA,IACJ;AACA,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,aAAa;AACb,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,YAAY,QAAW;AAC5B,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,UAAI,CAAC,KAAK,YAAY;AAClB,aAAK,WAAW,IAAI;AACpB,aAAK,YAAY;AAAA,MACrB;AACA,WAAK,SAAS;AAAA,IAClB,GAAG,KAAK,UAAU;AAClB,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,yCAAiB,IAAI;AAAA,EACjB,KAAK,6BAAW,KAAK,IAAI;AACrB,WAAO,6BAAW,KAAK,UAAK,UAAU;AAAA,MAClC,UAAU,CAAC,GAAG,QAAQ,EAAE,IAAI,WAAS;AAAA,QACjC,MAAM;AAAA,QACN,6BAAW,KAAK;AAAA,UACZ,UAAU,MAAM;AAAA,UAChB,UAAU,6BAAW,SAAS,MAAM,UAAU;AAAA,UAC9C,QAAQ,MAAM;AAAA,UACd,SAAS,MAAM;AAAA,QACnB,CAAC;AAAA,MACL,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACJ,CAAC;AAED,iBAAK,KAAK,MAAM;AACZ,QAAM,OAAO,IAAI,KAAK;AAEtB,OAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY,KAAK,MAAM;AAE5D,OAAK,MAAM,MAAM;AAGjB,MAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAa,YAAY,IAAI;AAAA,EACjC;AACJ,CAAC;",
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"}