@matter/general 0.16.0-alpha.0-20251205-dfb1e1556 → 0.16.0-alpha.0-20251207-37e501b18

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 (260) hide show
  1. package/dist/cjs/MatterError.js +2 -2
  2. package/dist/cjs/MatterError.js.map +1 -1
  3. package/dist/cjs/codec/DerTypes.d.ts.map +1 -1
  4. package/dist/cjs/codec/DerTypes.js +2 -1
  5. package/dist/cjs/codec/DerTypes.js.map +1 -1
  6. package/dist/cjs/environment/Environment.d.ts +4 -1
  7. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  8. package/dist/cjs/environment/Environment.js +83 -3
  9. package/dist/cjs/environment/Environment.js.map +1 -1
  10. package/dist/cjs/environment/RuntimeService.d.ts +3 -44
  11. package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
  12. package/dist/cjs/environment/RuntimeService.js +65 -10
  13. package/dist/cjs/environment/RuntimeService.js.map +2 -2
  14. package/dist/cjs/environment/Worker.d.ts +56 -0
  15. package/dist/cjs/environment/Worker.d.ts.map +1 -0
  16. package/dist/cjs/environment/Worker.js +44 -0
  17. package/dist/cjs/environment/Worker.js.map +6 -0
  18. package/dist/cjs/environment/index.d.ts +1 -0
  19. package/dist/cjs/environment/index.d.ts.map +1 -1
  20. package/dist/cjs/environment/index.js +1 -0
  21. package/dist/cjs/environment/index.js.map +1 -1
  22. package/dist/cjs/log/Diagnostic.d.ts +11 -1
  23. package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
  24. package/dist/cjs/log/Diagnostic.js +3 -0
  25. package/dist/cjs/log/Diagnostic.js.map +1 -1
  26. package/dist/cjs/log/DiagnosticPresentation.d.ts +4 -0
  27. package/dist/cjs/log/DiagnosticPresentation.d.ts.map +1 -1
  28. package/dist/cjs/log/DiagnosticPresentation.js +3 -2
  29. package/dist/cjs/log/DiagnosticPresentation.js.map +1 -1
  30. package/dist/cjs/log/DiagnosticSource.d.ts +1 -1
  31. package/dist/cjs/log/DiagnosticSource.d.ts.map +1 -1
  32. package/dist/cjs/log/DiagnosticSource.js +5 -1
  33. package/dist/cjs/log/DiagnosticSource.js.map +1 -1
  34. package/dist/cjs/log/LogFormat.js +2 -2
  35. package/dist/cjs/log/LogFormat.js.map +1 -1
  36. package/dist/cjs/net/Channel.d.ts +1 -1
  37. package/dist/cjs/net/Channel.d.ts.map +1 -1
  38. package/dist/cjs/net/Channel.js +1 -1
  39. package/dist/cjs/net/Channel.js.map +1 -1
  40. package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
  41. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  42. package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
  43. package/dist/cjs/net/mock/NetworkSimulator.js +2 -1
  44. package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
  45. package/dist/cjs/net/udp/UdpChannel.d.ts +5 -1
  46. package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -1
  47. package/dist/cjs/net/udp/UdpMulticastServer.d.ts +4 -6
  48. package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -1
  49. package/dist/cjs/net/udp/UdpMulticastServer.js +114 -37
  50. package/dist/cjs/net/udp/UdpMulticastServer.js.map +1 -1
  51. package/dist/cjs/time/StandardTime.d.ts +38 -0
  52. package/dist/cjs/time/StandardTime.d.ts.map +1 -0
  53. package/dist/cjs/time/StandardTime.js +172 -0
  54. package/dist/cjs/time/StandardTime.js.map +6 -0
  55. package/dist/cjs/time/Time.d.ts +4 -23
  56. package/dist/cjs/time/Time.d.ts.map +1 -1
  57. package/dist/cjs/time/Time.js +12 -88
  58. package/dist/cjs/time/Time.js.map +1 -1
  59. package/dist/cjs/time/Timestamp.d.ts +5 -0
  60. package/dist/cjs/time/Timestamp.d.ts.map +1 -1
  61. package/dist/cjs/time/Timestamp.js +4 -0
  62. package/dist/cjs/time/Timestamp.js.map +1 -1
  63. package/dist/cjs/time/index.d.ts +1 -0
  64. package/dist/cjs/time/index.d.ts.map +1 -1
  65. package/dist/cjs/time/index.js +1 -0
  66. package/dist/cjs/time/index.js.map +1 -1
  67. package/dist/cjs/transaction/Transaction.d.ts +12 -4
  68. package/dist/cjs/transaction/Transaction.d.ts.map +1 -1
  69. package/dist/cjs/transaction/Transaction.js +4 -4
  70. package/dist/cjs/transaction/Transaction.js.map +1 -1
  71. package/dist/cjs/transaction/Tx.d.ts +2 -1
  72. package/dist/cjs/transaction/Tx.d.ts.map +1 -1
  73. package/dist/cjs/transaction/Tx.js +92 -6
  74. package/dist/cjs/transaction/Tx.js.map +1 -1
  75. package/dist/cjs/util/Abort.js +1 -1
  76. package/dist/cjs/util/Abort.js.map +1 -1
  77. package/dist/cjs/util/Construction.d.ts +2 -1
  78. package/dist/cjs/util/Construction.d.ts.map +1 -1
  79. package/dist/cjs/util/Construction.js +60 -16
  80. package/dist/cjs/util/Construction.js.map +2 -2
  81. package/dist/cjs/util/DataReadQueue.d.ts +1 -5
  82. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
  83. package/dist/cjs/util/DataReadQueue.js +12 -11
  84. package/dist/cjs/util/DataReadQueue.js.map +1 -1
  85. package/dist/cjs/util/FormattedText.d.ts +1 -1
  86. package/dist/cjs/util/FormattedText.d.ts.map +1 -1
  87. package/dist/cjs/util/FormattedText.js +1 -3
  88. package/dist/cjs/util/FormattedText.js.map +1 -1
  89. package/dist/cjs/util/Lifetime.d.ts +97 -0
  90. package/dist/cjs/util/Lifetime.d.ts.map +1 -0
  91. package/dist/cjs/util/Lifetime.js +166 -0
  92. package/dist/cjs/util/Lifetime.js.map +6 -0
  93. package/dist/cjs/util/Multiplex.js +2 -2
  94. package/dist/cjs/util/Multiplex.js.map +1 -1
  95. package/dist/cjs/util/Observable.d.ts +27 -26
  96. package/dist/cjs/util/Observable.d.ts.map +1 -1
  97. package/dist/cjs/util/Observable.js +76 -35
  98. package/dist/cjs/util/Observable.js.map +2 -2
  99. package/dist/cjs/util/String.d.ts +5 -29
  100. package/dist/cjs/util/String.d.ts.map +1 -1
  101. package/dist/cjs/util/String.js +16 -158
  102. package/dist/cjs/util/String.js.map +2 -2
  103. package/dist/cjs/util/identifier-case.d.ts +19 -0
  104. package/dist/cjs/util/identifier-case.d.ts.map +1 -0
  105. package/dist/cjs/util/identifier-case.js +99 -0
  106. package/dist/cjs/util/identifier-case.js.map +6 -0
  107. package/dist/cjs/util/index.d.ts +3 -0
  108. package/dist/cjs/util/index.d.ts.map +1 -1
  109. package/dist/cjs/util/index.js +3 -0
  110. package/dist/cjs/util/index.js.map +1 -1
  111. package/dist/cjs/util/serialize.d.ts +25 -0
  112. package/dist/cjs/util/serialize.d.ts.map +1 -0
  113. package/dist/cjs/util/serialize.js +116 -0
  114. package/dist/cjs/util/serialize.js.map +6 -0
  115. package/dist/esm/MatterError.js +1 -1
  116. package/dist/esm/codec/DerTypes.d.ts.map +1 -1
  117. package/dist/esm/codec/DerTypes.js +2 -1
  118. package/dist/esm/codec/DerTypes.js.map +1 -1
  119. package/dist/esm/environment/Environment.d.ts +4 -1
  120. package/dist/esm/environment/Environment.d.ts.map +1 -1
  121. package/dist/esm/environment/Environment.js +83 -3
  122. package/dist/esm/environment/Environment.js.map +1 -1
  123. package/dist/esm/environment/RuntimeService.d.ts +3 -44
  124. package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
  125. package/dist/esm/environment/RuntimeService.js +65 -10
  126. package/dist/esm/environment/RuntimeService.js.map +2 -2
  127. package/dist/esm/environment/Worker.d.ts +56 -0
  128. package/dist/esm/environment/Worker.d.ts.map +1 -0
  129. package/dist/esm/environment/Worker.js +24 -0
  130. package/dist/esm/environment/Worker.js.map +6 -0
  131. package/dist/esm/environment/index.d.ts +1 -0
  132. package/dist/esm/environment/index.d.ts.map +1 -1
  133. package/dist/esm/environment/index.js +1 -0
  134. package/dist/esm/environment/index.js.map +1 -1
  135. package/dist/esm/log/Diagnostic.d.ts +11 -1
  136. package/dist/esm/log/Diagnostic.d.ts.map +1 -1
  137. package/dist/esm/log/Diagnostic.js +3 -0
  138. package/dist/esm/log/Diagnostic.js.map +1 -1
  139. package/dist/esm/log/DiagnosticPresentation.d.ts +4 -0
  140. package/dist/esm/log/DiagnosticPresentation.d.ts.map +1 -1
  141. package/dist/esm/log/DiagnosticPresentation.js +3 -2
  142. package/dist/esm/log/DiagnosticPresentation.js.map +1 -1
  143. package/dist/esm/log/DiagnosticSource.d.ts +1 -1
  144. package/dist/esm/log/DiagnosticSource.d.ts.map +1 -1
  145. package/dist/esm/log/DiagnosticSource.js +5 -1
  146. package/dist/esm/log/DiagnosticSource.js.map +1 -1
  147. package/dist/esm/log/LogFormat.js +1 -1
  148. package/dist/esm/log/LogFormat.js.map +1 -1
  149. package/dist/esm/net/Channel.d.ts +1 -1
  150. package/dist/esm/net/Channel.d.ts.map +1 -1
  151. package/dist/esm/net/Channel.js +1 -1
  152. package/dist/esm/net/Channel.js.map +1 -1
  153. package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
  154. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  155. package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
  156. package/dist/esm/net/mock/NetworkSimulator.js +2 -1
  157. package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
  158. package/dist/esm/net/udp/UdpChannel.d.ts +5 -1
  159. package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -1
  160. package/dist/esm/net/udp/UdpMulticastServer.d.ts +4 -6
  161. package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -1
  162. package/dist/esm/net/udp/UdpMulticastServer.js +114 -37
  163. package/dist/esm/net/udp/UdpMulticastServer.js.map +1 -1
  164. package/dist/esm/time/StandardTime.d.ts +38 -0
  165. package/dist/esm/time/StandardTime.d.ts.map +1 -0
  166. package/dist/esm/time/StandardTime.js +152 -0
  167. package/dist/esm/time/StandardTime.js.map +6 -0
  168. package/dist/esm/time/Time.d.ts +4 -23
  169. package/dist/esm/time/Time.d.ts.map +1 -1
  170. package/dist/esm/time/Time.js +12 -88
  171. package/dist/esm/time/Time.js.map +1 -1
  172. package/dist/esm/time/Timestamp.d.ts +5 -0
  173. package/dist/esm/time/Timestamp.d.ts.map +1 -1
  174. package/dist/esm/time/Timestamp.js +4 -0
  175. package/dist/esm/time/Timestamp.js.map +1 -1
  176. package/dist/esm/time/index.d.ts +1 -0
  177. package/dist/esm/time/index.d.ts.map +1 -1
  178. package/dist/esm/time/index.js +1 -0
  179. package/dist/esm/time/index.js.map +1 -1
  180. package/dist/esm/transaction/Transaction.d.ts +12 -4
  181. package/dist/esm/transaction/Transaction.d.ts.map +1 -1
  182. package/dist/esm/transaction/Transaction.js +4 -4
  183. package/dist/esm/transaction/Transaction.js.map +1 -1
  184. package/dist/esm/transaction/Tx.d.ts +2 -1
  185. package/dist/esm/transaction/Tx.d.ts.map +1 -1
  186. package/dist/esm/transaction/Tx.js +92 -6
  187. package/dist/esm/transaction/Tx.js.map +1 -1
  188. package/dist/esm/util/Abort.js +1 -1
  189. package/dist/esm/util/Abort.js.map +1 -1
  190. package/dist/esm/util/Construction.d.ts +2 -1
  191. package/dist/esm/util/Construction.d.ts.map +1 -1
  192. package/dist/esm/util/Construction.js +60 -16
  193. package/dist/esm/util/Construction.js.map +2 -2
  194. package/dist/esm/util/DataReadQueue.d.ts +1 -5
  195. package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
  196. package/dist/esm/util/DataReadQueue.js +12 -11
  197. package/dist/esm/util/DataReadQueue.js.map +1 -1
  198. package/dist/esm/util/FormattedText.d.ts +1 -1
  199. package/dist/esm/util/FormattedText.d.ts.map +1 -1
  200. package/dist/esm/util/FormattedText.js +2 -4
  201. package/dist/esm/util/FormattedText.js.map +1 -1
  202. package/dist/esm/util/Lifetime.d.ts +97 -0
  203. package/dist/esm/util/Lifetime.d.ts.map +1 -0
  204. package/dist/esm/util/Lifetime.js +146 -0
  205. package/dist/esm/util/Lifetime.js.map +6 -0
  206. package/dist/esm/util/Multiplex.js +2 -2
  207. package/dist/esm/util/Multiplex.js.map +1 -1
  208. package/dist/esm/util/Observable.d.ts +27 -26
  209. package/dist/esm/util/Observable.d.ts.map +1 -1
  210. package/dist/esm/util/Observable.js +76 -35
  211. package/dist/esm/util/Observable.js.map +2 -2
  212. package/dist/esm/util/String.d.ts +5 -29
  213. package/dist/esm/util/String.d.ts.map +1 -1
  214. package/dist/esm/util/String.js +16 -158
  215. package/dist/esm/util/String.js.map +2 -2
  216. package/dist/esm/util/identifier-case.d.ts +19 -0
  217. package/dist/esm/util/identifier-case.d.ts.map +1 -0
  218. package/dist/esm/util/identifier-case.js +79 -0
  219. package/dist/esm/util/identifier-case.js.map +6 -0
  220. package/dist/esm/util/index.d.ts +3 -0
  221. package/dist/esm/util/index.d.ts.map +1 -1
  222. package/dist/esm/util/index.js +3 -0
  223. package/dist/esm/util/index.js.map +1 -1
  224. package/dist/esm/util/serialize.d.ts +25 -0
  225. package/dist/esm/util/serialize.d.ts.map +1 -0
  226. package/dist/esm/util/serialize.js +96 -0
  227. package/dist/esm/util/serialize.js.map +6 -0
  228. package/package.json +2 -2
  229. package/src/MatterError.ts +1 -1
  230. package/src/codec/DerTypes.ts +2 -1
  231. package/src/environment/Environment.ts +29 -4
  232. package/src/environment/RuntimeService.ts +19 -55
  233. package/src/environment/Worker.ts +75 -0
  234. package/src/environment/index.ts +1 -0
  235. package/src/log/Diagnostic.ts +15 -1
  236. package/src/log/DiagnosticPresentation.ts +7 -2
  237. package/src/log/DiagnosticSource.ts +5 -1
  238. package/src/log/LogFormat.ts +1 -1
  239. package/src/net/Channel.ts +2 -2
  240. package/src/net/mock/MockUdpChannel.ts +1 -1
  241. package/src/net/mock/NetworkSimulator.ts +2 -1
  242. package/src/net/udp/UdpChannel.ts +6 -1
  243. package/src/net/udp/UdpMulticastServer.ts +72 -34
  244. package/src/time/StandardTime.ts +122 -0
  245. package/src/time/Time.ts +13 -105
  246. package/src/time/Timestamp.ts +8 -0
  247. package/src/time/index.ts +1 -0
  248. package/src/transaction/Transaction.ts +19 -6
  249. package/src/transaction/Tx.ts +49 -2
  250. package/src/util/Abort.ts +1 -1
  251. package/src/util/Construction.ts +76 -18
  252. package/src/util/DataReadQueue.ts +14 -12
  253. package/src/util/FormattedText.ts +1 -1
  254. package/src/util/Lifetime.ts +284 -0
  255. package/src/util/Multiplex.ts +2 -2
  256. package/src/util/Observable.ts +132 -53
  257. package/src/util/String.ts +14 -215
  258. package/src/util/identifier-case.ts +101 -0
  259. package/src/util/index.ts +3 -0
  260. package/src/util/serialize.ts +129 -0
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __typeError = (msg) => {
8
+ throw TypeError(msg);
9
+ };
6
10
  var __export = (target, all) => {
7
11
  for (var name in all)
8
12
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +20,47 @@ var __copyProps = (to, from, except, desc) => {
16
20
  return to;
17
21
  };
18
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var __using = (stack, value, async) => {
24
+ if (value != null) {
25
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
26
+ var dispose, inner;
27
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
28
+ if (dispose === void 0) {
29
+ dispose = value[__knownSymbol("dispose")];
30
+ if (async) inner = dispose;
31
+ }
32
+ if (typeof dispose !== "function") __typeError("Object not disposable");
33
+ if (inner) dispose = function() {
34
+ try {
35
+ inner.call(this);
36
+ } catch (e) {
37
+ return Promise.reject(e);
38
+ }
39
+ };
40
+ stack.push([async, dispose, value]);
41
+ } else if (async) {
42
+ stack.push([async]);
43
+ }
44
+ return value;
45
+ };
46
+ var __callDispose = (stack, error, hasError) => {
47
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
48
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
49
+ };
50
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
51
+ var next = (it) => {
52
+ while (it = stack.pop()) {
53
+ try {
54
+ var result = it[1] && it[1].call(it[2]);
55
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
56
+ } catch (e) {
57
+ fail(e);
58
+ }
59
+ }
60
+ if (hasError) throw error;
61
+ };
62
+ return next();
63
+ };
19
64
  var UdpMulticastServer_exports = {};
20
65
  __export(UdpMulticastServer_exports, {
21
66
  UdpMulticastServer: () => UdpMulticastServer
@@ -23,6 +68,7 @@ __export(UdpMulticastServer_exports, {
23
68
  module.exports = __toCommonJS(UdpMulticastServer_exports);
24
69
  var import_MatterError = require("#MatterError.js");
25
70
  var import_TimeUnit = require("#time/TimeUnit.js");
71
+ var import_Lifetime = require("#util/Lifetime.js");
26
72
  var import_Logger = require("../../log/Logger.js");
27
73
  var import_Cache = require("../../util/Cache.js");
28
74
  var import_Error = require("../../util/Error.js");
@@ -35,46 +81,59 @@ var import_Network = require("../Network.js");
35
81
  */
36
82
  const logger = import_Logger.Logger.get("UdpMulticastServer");
37
83
  class UdpMulticastServer {
38
- constructor(network, broadcastAddressIpv4, broadcastAddressIpv6, broadcastPort, serverIpv4, serverIpv6, netInterface) {
39
- this.network = network;
40
- this.broadcastAddressIpv4 = broadcastAddressIpv4;
41
- this.broadcastAddressIpv6 = broadcastAddressIpv6;
42
- this.broadcastPort = broadcastPort;
43
- this.serverIpv4 = serverIpv4;
44
- this.serverIpv6 = serverIpv6;
45
- this.netInterface = netInterface;
46
- }
84
+ #lifetime;
85
+ network;
86
+ netInterface;
87
+ #broadcastAddressIpv4;
88
+ #broadcastAddressIpv6;
89
+ #broadcastPort;
90
+ #serverIpv4;
91
+ #serverIpv6;
47
92
  static async create({
48
93
  netInterface,
49
94
  broadcastAddressIpv4,
50
95
  broadcastAddressIpv6,
51
96
  listeningPort,
52
- network
97
+ network,
98
+ lifetime: lifetimeOwner
53
99
  }) {
54
- let ipv4UdpChannel = void 0;
55
- if (broadcastAddressIpv4 !== void 0) {
100
+ const lifetime = (lifetimeOwner || import_Lifetime.Lifetime.process)?.join("multicast server");
101
+ try {
102
+ let ipv4UdpChannel = void 0;
103
+ if (broadcastAddressIpv4 !== void 0) {
104
+ try {
105
+ ipv4UdpChannel = await network.createUdpChannel({
106
+ lifetime,
107
+ type: "udp4",
108
+ netInterface,
109
+ listeningPort,
110
+ reuseAddress: true
111
+ });
112
+ await ipv4UdpChannel.addMembership(broadcastAddressIpv4);
113
+ } catch (error) {
114
+ import_Network.NoAddressAvailableError.accept(error);
115
+ logger.info(
116
+ `IPv4 UDP channel not created because IPv4 is not available: ${(0, import_Error.asError)(error).message}`
117
+ );
118
+ }
119
+ }
120
+ let ipv6UdpChannel;
56
121
  try {
57
- ipv4UdpChannel = await network.createUdpChannel({
58
- type: "udp4",
122
+ ipv6UdpChannel = await network.createUdpChannel({
123
+ lifetime,
124
+ type: "udp6",
59
125
  netInterface,
60
126
  listeningPort,
61
127
  reuseAddress: true
62
128
  });
63
- await ipv4UdpChannel.addMembership(broadcastAddressIpv4);
129
+ await ipv6UdpChannel.addMembership(broadcastAddressIpv6);
64
130
  } catch (error) {
65
131
  import_Network.NoAddressAvailableError.accept(error);
66
- logger.info(`IPv4 UDP channel not created because IPv4 is not available: ${(0, import_Error.asError)(error).message}`);
132
+ logger.info(`IPv6 UDP interface not created because IPv6 is not available, but required my Matter`);
133
+ throw error;
67
134
  }
68
- }
69
- try {
70
- const ipv6UdpChannel = await network.createUdpChannel({
71
- type: "udp6",
72
- netInterface,
73
- listeningPort,
74
- reuseAddress: true
75
- });
76
- await ipv6UdpChannel.addMembership(broadcastAddressIpv6);
77
135
  return new UdpMulticastServer(
136
+ lifetime,
78
137
  network,
79
138
  broadcastAddressIpv4,
80
139
  broadcastAddressIpv6,
@@ -84,8 +143,7 @@ class UdpMulticastServer {
84
143
  netInterface
85
144
  );
86
145
  } catch (error) {
87
- import_Network.NoAddressAvailableError.accept(error);
88
- logger.info(`IPv6 UDP interface not created because IPv6 is not available, but required my Matter.`);
146
+ lifetime[Symbol.dispose]();
89
147
  throw error;
90
148
  }
91
149
  }
@@ -95,17 +153,27 @@ class UdpMulticastServer {
95
153
  (0, import_TimeUnit.Minutes)(5),
96
154
  async (_netInterface, channel) => (await channel).close()
97
155
  );
156
+ constructor(lifetime, network, broadcastAddressIpv4, broadcastAddressIpv6, broadcastPort, serverIpv4, serverIpv6, netInterface) {
157
+ this.#lifetime = lifetime;
158
+ this.network = network;
159
+ this.#broadcastAddressIpv4 = broadcastAddressIpv4;
160
+ this.#broadcastAddressIpv6 = broadcastAddressIpv6;
161
+ this.#broadcastPort = broadcastPort;
162
+ this.#serverIpv4 = serverIpv4;
163
+ this.#serverIpv6 = serverIpv6;
164
+ this.netInterface = netInterface;
165
+ }
98
166
  get supportsIpv4() {
99
- return this.serverIpv4 !== void 0;
167
+ return this.#serverIpv4 !== void 0;
100
168
  }
101
169
  onMessage(listener) {
102
- this.serverIpv4?.onData((netInterface, peerAddress, _port, message) => {
170
+ this.#serverIpv4?.onData((netInterface, peerAddress, _port, message) => {
103
171
  if (netInterface === void 0) {
104
172
  return;
105
173
  }
106
174
  listener(message, peerAddress, netInterface);
107
175
  });
108
- this.serverIpv6.onData((netInterface, peerAddress, _port, message) => {
176
+ this.#serverIpv6.onData((netInterface, peerAddress, _port, message) => {
109
177
  if (netInterface === void 0) {
110
178
  return;
111
179
  }
@@ -116,7 +184,7 @@ class UdpMulticastServer {
116
184
  netInterface = netInterface ?? this.netInterface;
117
185
  if (uniCastTarget !== void 0 && netInterface !== void 0) {
118
186
  try {
119
- await (await this.broadcastChannels.get(netInterface, (0, import_Ip.isIPv4)(uniCastTarget))).send(uniCastTarget, this.broadcastPort, message);
187
+ await (await this.broadcastChannels.get(netInterface, (0, import_Ip.isIPv4)(uniCastTarget))).send(uniCastTarget, this.#broadcastPort, message);
120
188
  } catch (error) {
121
189
  logger.info(`${netInterface} ${uniCastTarget}: ${(0, import_Error.asError)(error).message}`);
122
190
  }
@@ -133,12 +201,12 @@ class UdpMulticastServer {
133
201
  await import_MatterError.MatterAggregateError.allSettled(
134
202
  ips.map(async (ip) => {
135
203
  const iPv4 = ipV4.includes(ip);
136
- const broadcastTarget = iPv4 ? this.broadcastAddressIpv4 : this.broadcastAddressIpv6;
204
+ const broadcastTarget = iPv4 ? this.#broadcastAddressIpv4 : this.#broadcastAddressIpv6;
137
205
  if (broadcastTarget === void 0) {
138
206
  return;
139
207
  }
140
208
  try {
141
- await (await this.broadcastChannels.get(netInterface2, iPv4)).send(broadcastTarget, this.broadcastPort, message);
209
+ await (await this.broadcastChannels.get(netInterface2, iPv4)).send(broadcastTarget, this.#broadcastPort, message);
142
210
  } catch (error) {
143
211
  logger.info(`${netInterface2}: ${(0, import_Error.asError)(error).message}`);
144
212
  }
@@ -152,16 +220,25 @@ class UdpMulticastServer {
152
220
  }
153
221
  async createBroadcastChannel(netInterface, iPv4) {
154
222
  return await this.network.createUdpChannel({
223
+ lifetime: this.#lifetime,
155
224
  type: iPv4 ? "udp4" : "udp6",
156
- listeningPort: this.broadcastPort,
225
+ listeningPort: this.#broadcastPort,
157
226
  netInterface,
158
227
  reuseAddress: true
159
228
  });
160
229
  }
161
230
  async close() {
162
- await this.serverIpv4?.close();
163
- await this.serverIpv6.close();
164
- await this.broadcastChannels.close();
231
+ var _stack = [];
232
+ try {
233
+ const _closing = __using(_stack, this.#lifetime.closing());
234
+ await this.#serverIpv4?.close();
235
+ await this.#serverIpv6.close();
236
+ await this.broadcastChannels.close();
237
+ } catch (_) {
238
+ var _error = _, _hasError = true;
239
+ } finally {
240
+ __callDispose(_stack, _error, _hasError);
241
+ }
165
242
  }
166
243
  }
167
244
  //# sourceMappingURL=UdpMulticastServer.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/net/udp/UdpMulticastServer.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAqC;AACrC,sBAAwB;AAExB,sBAAyB;AACzB,oBAAuB;AACvB,mBAAsB;AACtB,mBAAwB;AACxB,gBAAuB;AACvB,qBAAiD;AAdjD;AAAA;AAAA;AAAA;AAAA;AAiBA,MAAM,SAAS,qBAAO,IAAI,oBAAoB;AAWvC,MAAM,mBAAmB;AAAA,EAC5B;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,aAAa,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACd,GAA8B;AAC1B,UAAM,YAAY,iBAAiB,yBAAS,UAAU,KAAK,kBAAkB;AAE7E,QAAI;AACA,UAAI,iBAAyC;AAC7C,UAAI,yBAAyB,QAAW;AACpC,YAAI;AACA,2BAAiB,MAAM,QAAQ,iBAAiB;AAAA,YAC5C;AAAA,YACA,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA,cAAc;AAAA,UAClB,CAAC;AACD,gBAAM,eAAe,cAAc,oBAAoB;AAAA,QAC3D,SAAS,OAAO;AACZ,iDAAwB,OAAO,KAAK;AACpC,iBAAO;AAAA,YACH,mEAA+D,sBAAQ,KAAK,EAAE,OAAO;AAAA,UACzF;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI;AACA,yBAAiB,MAAM,QAAQ,iBAAiB;AAAA,UAC5C;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB,CAAC;AACD,cAAM,eAAe,cAAc,oBAAoB;AAAA,MAC3D,SAAS,OAAO;AACZ,+CAAwB,OAAO,KAAK;AACpC,eAAO,KAAK,sFAAsF;AAClG,cAAM;AAAA,MACV;AAEA,aAAO,IAAI;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,eAAS,OAAO,OAAO,EAAE;AACzB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEiB,oBAAoB,IAAI;AAAA,IACrC;AAAA,IACA,CAAC,cAAc,SAAS,KAAK,uBAAuB,cAAc,IAAI;AAAA,QACtE,yBAAQ,CAAC;AAAA,IACT,OAAO,eAAe,aAAa,MAAM,SAAS,MAAM;AAAA,EAC5D;AAAA,EAEQ,YACJ,UACA,SACA,sBACA,sBACA,eACA,YACA,YACA,cACF;AACE,SAAK,YAAY;AACjB,SAAK,UAAU;AACf,SAAK,wBAAwB;AAC7B,SAAK,wBAAwB;AAC7B,SAAK,iBAAiB;AACtB,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,eAAe;AAAA,EACxB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK,gBAAgB;AAAA,EAChC;AAAA,EAEA,UAAU,UAA+E;AACrF,SAAK,aAAa,OAAO,CAAC,cAAc,aAAa,OAAO,YAAY;AACpE,UAAI,iBAAiB,QAAW;AAE5B;AAAA,MACJ;AACA,eAAS,SAAS,aAAa,YAAY;AAAA,IAC/C,CAAC;AACD,SAAK,YAAY,OAAO,CAAC,cAAc,aAAa,OAAO,YAAY;AACnE,UAAI,iBAAiB,QAAW;AAE5B;AAAA,MACJ;AACA,eAAS,SAAS,aAAa,YAAY;AAAA,IAC/C,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,KAAK,SAAgB,cAAuB,eAAwB;AACtE,mBAAe,gBAAgB,KAAK;AAGpC,QAAI,kBAAkB,UAAa,iBAAiB,QAAW;AAC3D,UAAI;AACA,eACI,MAAM,KAAK,kBAAkB,IAAI,kBAAc,kBAAO,aAAa,CAAC,GACtE,KAAK,eAAe,KAAK,gBAAgB,OAAO;AAAA,MACtD,SAAS,OAAO;AACZ,eAAO,KAAK,GAAG,YAAY,IAAI,aAAa,SAAK,sBAAQ,KAAK,EAAE,OAAO,EAAE;AAAA,MAC7E;AAAA,IACJ,OAAO;AACH,YAAM,gBACF,iBAAiB,SAAY,CAAC,EAAE,MAAM,aAAa,CAAC,IAAI,MAAM,KAAK,QAAQ,iBAAiB;AAChG,YAAM,wCAAqB;AAAA,QACvB,cAAc,IAAI,OAAO,EAAE,MAAMA,cAAa,MAAM;AAChD,gBAAM,EAAE,MAAM,KAAK,IAAK,MAAM,KAAK,QAAQ,SAASA,aAAY,KAAM;AAAA,YAClE,KAAK;AAAA,YACL,MAAM,CAAC;AAAA,YACP,MAAM,CAAC;AAAA,UACX;AACA,gBAAM,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;AAC7B,gBAAM,wCAAqB;AAAA,YACvB,IAAI,IAAI,OAAM,OAAM;AAChB,oBAAM,OAAO,KAAK,SAAS,EAAE;AAC7B,oBAAM,kBAAkB,OAAO,KAAK,wBAAwB,KAAK;AACjE,kBAAI,oBAAoB,QAAW;AAE/B;AAAA,cACJ;AACA,kBAAI;AACA,uBACI,MAAM,KAAK,kBAAkB,IAAIA,eAAc,IAAI,GACrD,KAAK,iBAAiB,KAAK,gBAAgB,OAAO;AAAA,cACxD,SAAS,OAAO;AACZ,uBAAO,KAAK,GAAGA,aAAY,SAAK,sBAAQ,KAAK,EAAE,OAAO,EAAE;AAAA,cAC5D;AAAA,YACJ,CAAC;AAAA,YACD,oDAAoDA,aAAY;AAAA,UACpE;AAAA,QACJ,CAAC;AAAA,QACD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAc,uBAAuB,cAAsB,MAAmC;AAC1F,WAAO,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MACvC,UAAU,KAAK;AAAA,MACf,MAAM,OAAO,SAAS;AAAA,MACtB,eAAe,KAAK;AAAA,MACpB;AAAA,MACA,cAAc;AAAA,IAClB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,QAAQ;AACV;AAAA;AAAA,YAAM,WAAW,qBAAK,UAAU,QAAQ;AACxC,YAAM,KAAK,aAAa,MAAM;AAC9B,YAAM,KAAK,YAAY,MAAM;AAC7B,YAAM,KAAK,kBAAkB,MAAM;AAAA,aAHnC;AAAA;AAAA;AAAA;AAAA;AAAA,EAIJ;AACJ;",
5
5
  "names": ["netInterface"]
6
6
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Duration } from "./Duration.js";
7
+ import { Time, Timer } from "./Time.js";
8
+ /**
9
+ * A {@link Timer} implementation that uses standard JavaScript timers.
10
+ */
11
+ export declare class StandardTime extends Time {
12
+ getTimer(name: string, duration: Duration, callback: Timer.Callback): StandardTimer;
13
+ getPeriodicTimer(name: string, duration: Duration, callback: Timer.Callback): StandardTimer;
14
+ }
15
+ /**
16
+ * A {@link Timer} implementation that uses standard JavaScript functions.
17
+ */
18
+ export declare class StandardTimer implements Timer {
19
+ #private;
20
+ readonly name: string;
21
+ private readonly callback;
22
+ readonly isPeriodic: boolean;
23
+ isRunning: boolean;
24
+ get systemId(): number;
25
+ constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
26
+ /**
27
+ * The timer's interval.
28
+ *
29
+ * You can change this value but changes have no effect until the timer restarts.
30
+ */
31
+ set interval(interval: Duration);
32
+ get interval(): Duration;
33
+ get utility(): boolean;
34
+ set utility(utility: boolean);
35
+ start(): this;
36
+ stop(): this;
37
+ }
38
+ //# sourceMappingURL=StandardTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandardTime.d.ts","sourceRoot":"","sources":["../../../src/time/StandardTime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGxC;;GAEG;AACH,qBAAa,YAAa,SAAQ,IAAI;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAInE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;CAGvF;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,KAAK;;IAWnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAVhC,SAAS,UAAS;IAElB,IAAI,QAAQ,WAEX;gBAGY,IAAI,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAChC,UAAU,EAAE,OAAO;IAKhC;;;;OAIG;IACH,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAO9B;IAED,IAAI,QAAQ,IATW,QAAQ,CAW9B;IAED,IAAI,OAAO,IAIU,OAAO,CAF3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAgB3B;IAED,KAAK;IAeL,IAAI;CAMP"}
@@ -0,0 +1,172 @@
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 __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __typeError = (msg) => {
8
+ throw TypeError(msg);
9
+ };
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var __using = (stack, value, async) => {
24
+ if (value != null) {
25
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
26
+ var dispose, inner;
27
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
28
+ if (dispose === void 0) {
29
+ dispose = value[__knownSymbol("dispose")];
30
+ if (async) inner = dispose;
31
+ }
32
+ if (typeof dispose !== "function") __typeError("Object not disposable");
33
+ if (inner) dispose = function() {
34
+ try {
35
+ inner.call(this);
36
+ } catch (e) {
37
+ return Promise.reject(e);
38
+ }
39
+ };
40
+ stack.push([async, dispose, value]);
41
+ } else if (async) {
42
+ stack.push([async]);
43
+ }
44
+ return value;
45
+ };
46
+ var __callDispose = (stack, error, hasError) => {
47
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
48
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
49
+ };
50
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
51
+ var next = (it) => {
52
+ while (it = stack.pop()) {
53
+ try {
54
+ var result = it[1] && it[1].call(it[2]);
55
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
56
+ } catch (e) {
57
+ fail(e);
58
+ }
59
+ }
60
+ if (hasError) throw error;
61
+ };
62
+ return next();
63
+ };
64
+ var StandardTime_exports = {};
65
+ __export(StandardTime_exports, {
66
+ StandardTime: () => StandardTime,
67
+ StandardTimer: () => StandardTimer
68
+ });
69
+ module.exports = __toCommonJS(StandardTime_exports);
70
+ var import_MatterError = require("#MatterError.js");
71
+ var import_Boot = require("#util/Boot.js");
72
+ var import_identifier_case = require("#util/identifier-case.js");
73
+ var import_Lifetime = require("#util/Lifetime.js");
74
+ var import_Time = require("./Time.js");
75
+ var import_TimeUnit = require("./TimeUnit.js");
76
+ /**
77
+ * @license
78
+ * Copyright 2022-2025 Matter.js Authors
79
+ * SPDX-License-Identifier: Apache-2.0
80
+ */
81
+ class StandardTime extends import_Time.Time {
82
+ getTimer(name, duration, callback) {
83
+ return new StandardTimer(name, duration, callback, false);
84
+ }
85
+ getPeriodicTimer(name, duration, callback) {
86
+ return new StandardTimer(name, duration, callback, true);
87
+ }
88
+ }
89
+ class StandardTimer {
90
+ constructor(name, duration, callback, isPeriodic) {
91
+ this.name = name;
92
+ this.callback = callback;
93
+ this.isPeriodic = isPeriodic;
94
+ this.interval = duration;
95
+ }
96
+ #timerId;
97
+ #utility = false;
98
+ #interval = import_TimeUnit.Instant;
99
+ // Real value installed in constructor
100
+ isRunning = false;
101
+ get systemId() {
102
+ return Number(this.#timerId);
103
+ }
104
+ /**
105
+ * The timer's interval.
106
+ *
107
+ * You can change this value but changes have no effect until the timer restarts.
108
+ */
109
+ set interval(interval) {
110
+ if (interval < 0 || interval > 2147483647) {
111
+ throw new import_MatterError.ImplementationError(
112
+ `Invalid intervalMs: ${interval}. The value must be between 0 and 32-bit maximum value (2147483647)`
113
+ );
114
+ }
115
+ this.#interval = interval;
116
+ }
117
+ get interval() {
118
+ return this.#interval;
119
+ }
120
+ get utility() {
121
+ return this.#utility;
122
+ }
123
+ set utility(utility) {
124
+ if (utility === this.#utility) {
125
+ return;
126
+ }
127
+ if (this.#timerId !== void 0) {
128
+ const timerId = this.#timerId;
129
+ if (utility) {
130
+ timerId.unref?.();
131
+ } else {
132
+ timerId.ref?.();
133
+ }
134
+ }
135
+ this.#utility = utility;
136
+ }
137
+ start() {
138
+ if (this.isRunning) this.stop();
139
+ import_Time.Time.register(this);
140
+ this.isRunning = true;
141
+ this.#timerId = (this.isPeriodic ? setInterval : setTimeout)(() => {
142
+ var _stack = [];
143
+ try {
144
+ const lifetime = __using(_stack, (0, import_Lifetime.Lifetime)((0, import_identifier_case.decamelize)(this.name, " ")));
145
+ if (!this.isPeriodic) {
146
+ import_Time.Time.unregister(this);
147
+ this.isRunning = false;
148
+ }
149
+ this.callback(lifetime);
150
+ } catch (_) {
151
+ var _error = _, _hasError = true;
152
+ } finally {
153
+ __callDispose(_stack, _error, _hasError);
154
+ }
155
+ }, this.interval);
156
+ return this;
157
+ }
158
+ stop() {
159
+ (this.isPeriodic ? clearInterval : clearTimeout)(this.#timerId);
160
+ import_Time.Time.unregister(this);
161
+ this.isRunning = false;
162
+ return this;
163
+ }
164
+ }
165
+ import_Boot.Boot.init(() => {
166
+ import_Time.Time.default = new StandardTime();
167
+ import_Time.Time.startup.systemMs = import_Time.Time.startup.processMs = import_Time.Time.nowMs;
168
+ if (typeof MatterHooks !== "undefined") {
169
+ MatterHooks?.timeSetup?.(import_Time.Time);
170
+ }
171
+ });
172
+ //# sourceMappingURL=StandardTime.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/time/StandardTime.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAoC;AACpC,kBAAqB;AACrB,6BAA2B;AAC3B,sBAAyB;AAEzB,kBAA4B;AAC5B,sBAAwB;AAZxB;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAM,qBAAqB,iBAAK;AAAA,EAC1B,SAAS,MAAc,UAAoB,UAA0B;AAC1E,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,KAAK;AAAA,EAC5D;AAAA,EAES,iBAAiB,MAAc,UAAoB,UAA0B;AAClF,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,IAAI;AAAA,EAC3D;AACJ;AAKO,MAAM,cAA+B;AAAA,EAUxC,YACa,MACT,UACiB,UACR,YACX;AAJW;AAEQ;AACR;AAET,SAAK,WAAW;AAAA,EACpB;AAAA,EAhBA;AAAA,EACA,WAAW;AAAA,EACX,YAAY;AAAA;AAAA,EACZ,YAAY;AAAA,EAEZ,IAAI,WAAW;AACX,WAAO,OAAO,KAAK,QAAQ;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,IAAI,SAAS,UAAoB;AAC7B,QAAI,WAAW,KAAK,WAAW,YAAY;AACvC,YAAM,IAAI;AAAA,QACN,uBAAuB,QAAQ;AAAA,MACnC;AAAA,IACJ;AACA,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ,SAAkB;AAC1B,QAAI,YAAY,KAAK,UAAU;AAC3B;AAAA,IACJ;AAGA,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,UAAU,KAAK;AACrB,UAAI,SAAS;AACT,gBAAQ,QAAQ;AAAA,MACpB,OAAO;AACH,gBAAQ,MAAM;AAAA,MAClB;AAAA,IACJ;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,UAAW,MAAK,KAAK;AAC9B,qBAAK,SAAS,IAAI;AAClB,SAAK,YAAY;AACjB,SAAK,YAAY,KAAK,aAAa,cAAc,YAAY,MAAM;AAC/D;AAAA;AAAA,cAAM,WAAW,kDAAS,mCAAW,KAAK,MAAM,GAAG,CAAC;AACpD,YAAI,CAAC,KAAK,YAAY;AAClB,2BAAK,WAAW,IAAI;AACpB,eAAK,YAAY;AAAA,QACrB;AACA,aAAK,SAAS,QAAQ;AAAA,eALtB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMJ,GAAG,KAAK,QAAQ;AAChB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO;AACH,KAAC,KAAK,aAAa,gBAAgB,cAAc,KAAK,QAAyC;AAC/F,qBAAK,WAAW,IAAI;AACpB,SAAK,YAAY;AACjB,WAAO;AAAA,EACX;AACJ;AAEA,iBAAK,KAAK,MAAM;AACZ,mBAAK,UAAU,IAAI,aAAa;AAEhC,mBAAK,QAAQ,WAAW,iBAAK,QAAQ,YAAY,iBAAK;AAGtD,MAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAa,YAAY,gBAAI;AAAA,EACjC;AACJ,CAAC;",
5
+ "names": []
6
+ }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { CancelablePromise } from "#util/Cancelable.js";
7
+ import type { Lifetime } from "#util/Lifetime.js";
7
8
  import { Diagnostic } from "../log/Diagnostic.js";
8
9
  import { Duration } from "./Duration.js";
9
10
  import type { Timestamp } from "./Timestamp.js";
@@ -28,12 +29,12 @@ export declare class Time {
28
29
  /**
29
30
  * Create a timer that will call callback after durationMs has passed.
30
31
  */
31
- getTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
32
+ getTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
32
33
  static readonly getTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
33
34
  /**
34
35
  * Create a timer that will periodically call callback at intervalMs intervals.
35
36
  */
36
- getPeriodicTimer(name: string, duration: Duration, callback: Timer.Callback): Timer;
37
+ getPeriodicTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
37
38
  static readonly getPeriodicTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
38
39
  /**
39
40
  * Create a promise that resolves after a specific interval or when canceled, whichever comes first.
@@ -65,26 +66,6 @@ export interface Timer {
65
66
  stop(): Timer;
66
67
  }
67
68
  export declare namespace Timer {
68
- type Callback = () => any;
69
- }
70
- export declare class StandardTimer implements Timer {
71
- #private;
72
- readonly name: string;
73
- private readonly callback;
74
- readonly isPeriodic: boolean;
75
- isRunning: boolean;
76
- get systemId(): number;
77
- constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
78
- /**
79
- * The timer's interval.
80
- *
81
- * You can change this value but changes have no effect until the timer restarts.
82
- */
83
- set interval(interval: Duration);
84
- get interval(): Duration;
85
- get utility(): boolean;
86
- set utility(utility: boolean);
87
- start(): this;
88
- stop(): this;
69
+ type Callback = (lifetime: Lifetime) => any;
89
70
  }
90
71
  //# sourceMappingURL=Time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IAErB,MAAM,CAAC,OAAO;kBACK,SAAS;mBACR,SAAS;MAC3B;IAEF,IAAI,GAAG,SAEN;IACD,MAAM,KAAK,GAAG,SAEb;IAED,IAAI,KAAK,WAER;IACD,MAAM,KAAK,KAAK,IACiB,SAAS,CACzC;IAED,IAAI,KAAK,IAC4D,SAAS,CAC7E;IACD,MAAM,KAAK,KAAK,cAEf;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGtF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;AAWD,MAAM,WAAW,KAAK;IAClB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IAEpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAE7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,KAAK,IAAI,KAAK,CAAC;IAEf,mCAAmC;IACnC,IAAI,IAAI,KAAK,CAAC;CACjB;AAED,yBAAiB,KAAK,CAAC;IACnB,KAAY,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC;CACtD"}