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