@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
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Diagnostic } from "#log/Diagnostic.js";
7
+ import "#time/StandardTime.js";
8
+ import { Timestamp } from "#time/Timestamp.js";
9
+ /**
10
+ * A "lifetime" represents the existence of an entity or ongoing task.
11
+ *
12
+ * This serves as a mechanism for tracking granular information about process state for diagnostic purposes. A lifetime
13
+ * is present in diagnostic reports until disposed.
14
+ *
15
+ * Lifetimes are hierarchical. Create sublifetimes using join().
16
+ */
17
+ export interface Lifetime extends Disposable, Diagnostic, Lifetime.Owner {
18
+ /**
19
+ * The name of the lifetime used for diagnostic presentation.
20
+ *
21
+ * Any diagnostic (so, any value) may serve as a name.
22
+ */
23
+ name: unknown;
24
+ /**
25
+ * The time at which the lifetime began.
26
+ */
27
+ readonly startedAt: Timestamp;
28
+ /**
29
+ * A "span" is a sub-lifetime created via {@link join}.
30
+ */
31
+ readonly spans: Set<Lifetime>;
32
+ /**
33
+ * Arbitrary details presented as a dictionary with {@link name}.
34
+ */
35
+ readonly details: Record<string, unknown>;
36
+ /**
37
+ * The inverse of {@link isClosing}.
38
+ */
39
+ readonly isOpen: boolean;
40
+ /**
41
+ * Set when the lifetime begins closing (via {@link closing}) or {@link isClosed} is true.
42
+ */
43
+ readonly isClosing: boolean;
44
+ /**
45
+ * Set when the lifetime has exited.
46
+ */
47
+ readonly isClosed: boolean;
48
+ /**
49
+ * The lifetime enclosing this lifetime.
50
+ *
51
+ * Only the process lifetime should have no owner. This field is writable so you can move ownership of a lifetime.
52
+ */
53
+ owner?: Lifetime;
54
+ /**
55
+ * Mark this lifetime as closing.
56
+ *
57
+ * Creates a sublifetime specifically for closing this lifetime. This supports the common pattern of tracking the
58
+ * close process associated with an active lifetime.
59
+ *
60
+ * Calling repeatedly returns the same sublifetime. Disposing the returned lifetime disposes this lifetime.
61
+ */
62
+ closing(): Lifetime;
63
+ }
64
+ export declare function Lifetime(...name: unknown[]): Lifetime;
65
+ export declare namespace Lifetime {
66
+ /**
67
+ * The lifetime of the system process.
68
+ *
69
+ * This is effectively a "global" lifetime. It parents all other lifetimes.
70
+ */
71
+ const process: Lifetime.Owner;
72
+ /**
73
+ * Obtain a lifetime not attached to {@link process} for testing purposes.
74
+ */
75
+ const mock: Lifetime;
76
+ /**
77
+ * An object associated with a lifetime.
78
+ */
79
+ interface Owner {
80
+ /**
81
+ * Create or move a sublifetime.
82
+ */
83
+ join(...name: unknown[]): Lifetime;
84
+ }
85
+ /**
86
+ * A lifetime subject that exists for a portion of a larger timespan.
87
+ */
88
+ interface Contributor {
89
+ [owner]: Owner;
90
+ }
91
+ /**
92
+ * Determine the lifetime of the owner of a component.
93
+ */
94
+ function of(subject?: {}): Owner;
95
+ const owner: unique symbol;
96
+ }
97
+ //# sourceMappingURL=Lifetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lifetime.d.ts","sourceRoot":"","sources":["../../../src/util/Lifetime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,QAAS,SAAQ,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK;IACpE;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;;;;;OAOG;IACH,OAAO,IAAI,QAAQ,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,YAE1C;AA4JD,yBAAiB,QAAQ,CAAC;IACtB;;;;OAIG;IACI,MAAM,OAAO,EAAE,QAAQ,CAAC,KAA+C,CAAC;IAE/E;;OAEG;IACY,MAAM,IAAI,EAAE,QAAQ,CAAC;IAEpC;;OAEG;IACH,UAAiB,KAAK;QAClB;;WAEG;QACH,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;KACtC;IAED;;OAEG;IACH,UAAiB,WAAW;QACxB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;KAClB;IAED;;OAEG;IACH,SAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,SAE9B;IAEM,MAAM,KAAK,eAAkB,CAAC;CACxC"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Diagnostic } from "#log/Diagnostic.js";
7
+ import { DiagnosticPresentation } from "#log/DiagnosticPresentation.js";
8
+ import { DiagnosticSource } from "#log/DiagnosticSource.js";
9
+ import { InternalError } from "#MatterError.js";
10
+ import { Duration } from "#time/Duration.js";
11
+ import "#time/StandardTime.js";
12
+ import { Time } from "#time/Time.js";
13
+ import { Timestamp } from "#time/Timestamp.js";
14
+ function Lifetime(...name) {
15
+ return Lifetime.process.join(...name);
16
+ }
17
+ class LifetimeImplementation {
18
+ #name;
19
+ #owner;
20
+ #startedAt;
21
+ #details;
22
+ #spans;
23
+ #closing;
24
+ #isClosed = false;
25
+ constructor(name, owner) {
26
+ this.#name = name.length > 1 ? name : name[0];
27
+ this.#startedAt = Time.nowMs;
28
+ this.#owner = owner;
29
+ if (owner) {
30
+ owner.spans.add(this);
31
+ }
32
+ }
33
+ get spans() {
34
+ if (!this.#spans) {
35
+ this.#spans = /* @__PURE__ */ new Set();
36
+ }
37
+ return this.#spans;
38
+ }
39
+ get name() {
40
+ return this.#name;
41
+ }
42
+ set name(name) {
43
+ this.#name = name;
44
+ }
45
+ get startedAt() {
46
+ return this.#startedAt;
47
+ }
48
+ get details() {
49
+ return this.#details ?? {};
50
+ }
51
+ get owner() {
52
+ return this.#owner;
53
+ }
54
+ set owner(owner) {
55
+ if (!this.#owner) {
56
+ throw new InternalError("Cannot move ownership of root lifetime");
57
+ }
58
+ if (this.#owner === owner) {
59
+ return;
60
+ }
61
+ removeSpan(this.owner, this);
62
+ this.#owner = owner;
63
+ this.#owner?.spans.add(this);
64
+ }
65
+ join(...name) {
66
+ return new LifetimeImplementation(name, this);
67
+ }
68
+ closing() {
69
+ if (!this.#closing) {
70
+ this.#closing = this.join("closing");
71
+ const disposeClosing = this.#closing[Symbol.dispose].bind(this.#closing);
72
+ this.#closing[Symbol.dispose] = () => {
73
+ disposeClosing();
74
+ this[Symbol.dispose]();
75
+ };
76
+ }
77
+ return this.#closing;
78
+ }
79
+ get isOpen() {
80
+ return this.#closing === void 0 && !this.#isClosed;
81
+ }
82
+ get isClosing() {
83
+ return this.#closing !== void 0 || this.#isClosed;
84
+ }
85
+ get isClosed() {
86
+ return this.#isClosed;
87
+ }
88
+ get [DiagnosticPresentation.value]() {
89
+ if (!this.#owner) {
90
+ return Diagnostic.node("\u{1F6E0}", "Lifetimes", {
91
+ children: this.spans
92
+ });
93
+ }
94
+ const header = [this.#name];
95
+ if (this.isClosed) {
96
+ header.push(Diagnostic.weak("(zombie)"));
97
+ }
98
+ const details = {
99
+ up: Duration.format(Timestamp.delta(this.startedAt, Time.nowMs)),
100
+ ...this.#details
101
+ };
102
+ header.push(Diagnostic.dict(details));
103
+ const result = [header];
104
+ if (this.#spans?.size) {
105
+ result.push(Diagnostic.list(this.spans));
106
+ }
107
+ return result;
108
+ }
109
+ [Symbol.dispose]() {
110
+ if (!this.#owner) {
111
+ return;
112
+ }
113
+ this.#isClosed = true;
114
+ if (this.#spans?.size) {
115
+ return;
116
+ }
117
+ removeSpan(this.#owner, this);
118
+ }
119
+ }
120
+ function removeSpan(owner, span) {
121
+ if (!owner) {
122
+ return;
123
+ }
124
+ owner.spans.delete(span);
125
+ if (owner.isClosed && !owner.spans?.size) {
126
+ owner[Symbol.dispose]();
127
+ }
128
+ }
129
+ ((Lifetime2) => {
130
+ Lifetime2.process = new LifetimeImplementation(["process"]);
131
+ function of(subject) {
132
+ return subject?.[Lifetime2.owner] ?? Lifetime2.process;
133
+ }
134
+ Lifetime2.of = of;
135
+ Lifetime2.owner = Symbol("owner");
136
+ })(Lifetime || (Lifetime = {}));
137
+ Object.defineProperty(Lifetime, "mock", {
138
+ get() {
139
+ return new LifetimeImplementation(["mock"]);
140
+ }
141
+ });
142
+ DiagnosticSource.add(Lifetime.process);
143
+ export {
144
+ Lifetime
145
+ };
146
+ //# sourceMappingURL=Lifetime.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/Lifetime.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,8BAA8B;AACvC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAkEnB,SAAS,YAAY,MAAiB;AACzC,SAAO,SAAS,QAAQ,KAAK,GAAG,IAAI;AACxC;AAEA,MAAM,uBAA2D;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EAIZ,YAAY,MAAiB,OAAkB;AAC3C,SAAK,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC;AAC5C,SAAK,aAAa,KAAK;AACvB,SAAK,SAAS;AAEd,QAAI,OAAO;AACP,YAAM,MAAM,IAAI,IAAI;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ;AACR,QAAI,CAAC,KAAK,QAAQ;AACd,WAAK,SAAS,oBAAI,IAAI;AAAA,IAC1B;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK,MAAe;AACpB,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,YAAY,CAAC;AAAA,EAC7B;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,MAAM,OAA6B;AACnC,QAAI,CAAC,KAAK,QAAQ;AACd,YAAM,IAAI,cAAc,wCAAwC;AAAA,IACpE;AAEA,QAAI,KAAK,WAAW,OAAO;AACvB;AAAA,IACJ;AAEA,eAAW,KAAK,OAAO,IAAI;AAE3B,SAAK,SAAS;AAEd,SAAK,QAAQ,MAAM,IAAI,IAAI;AAAA,EAC/B;AAAA,EAEA,QAAQ,MAA2B;AAC/B,WAAO,IAAI,uBAAuB,MAAM,IAAI;AAAA,EAChD;AAAA,EAEA,UAAoB;AAChB,QAAI,CAAC,KAAK,UAAU;AAChB,WAAK,WAAW,KAAK,KAAK,SAAS;AAEnC,YAAM,iBAAiB,KAAK,SAAS,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ;AAEvE,WAAK,SAAS,OAAO,OAAO,IAAI,MAAM;AAClC,uBAAe;AAEf,aAAK,OAAO,OAAO,EAAE;AAAA,MACzB;AAAA,IACJ;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,aAAa,UAAa,CAAC,KAAK;AAAA,EAChD;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,aAAa,UAAa,KAAK;AAAA,EAC/C;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,KAAK,uBAAuB,KAAK,IAAI;AAEjC,QAAI,CAAC,KAAK,QAAQ;AACd,aAAO,WAAW,KAAK,aAAM,aAAa;AAAA,QACtC,UAAU,KAAK;AAAA,MACnB,CAAC;AAAA,IACL;AAEA,UAAM,SAAoB,CAAC,KAAK,KAAK;AAErC,QAAI,KAAK,UAAU;AACf,aAAO,KAAK,WAAW,KAAK,UAAU,CAAC;AAAA,IAC3C;AAEA,UAAM,UAAmC;AAAA,MACrC,IAAI,SAAS,OAAO,UAAU,MAAM,KAAK,WAAW,KAAK,KAAK,CAAC;AAAA,MAC/D,GAAG,KAAK;AAAA,IACZ;AAEA,WAAO,KAAK,WAAW,KAAK,OAAO,CAAC;AAEpC,UAAM,SAAoB,CAAC,MAAM;AAEjC,QAAI,KAAK,QAAQ,MAAM;AACnB,aAAO,KAAK,WAAW,KAAK,KAAK,KAAK,CAAC;AAAA,IAC3C;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,CAAC,OAAO,OAAO,IAAI;AACf,QAAI,CAAC,KAAK,QAAQ;AAEd;AAAA,IACJ;AAEA,SAAK,YAAY;AAGjB,QAAI,KAAK,QAAQ,MAAM;AACnB;AAAA,IACJ;AAEA,eAAW,KAAK,QAAQ,IAAI;AAAA,EAChC;AACJ;AAEA,SAAS,WAAW,OAA6B,MAAgB;AAC7D,MAAI,CAAC,OAAO;AACR;AAAA,EACJ;AAEA,QAAM,MAAM,OAAO,IAAI;AACvB,MAAI,MAAM,YAAY,CAAC,MAAM,OAAO,MAAM;AACtC,UAAM,OAAO,OAAO,EAAE;AAAA,EAC1B;AACJ;AAAA,CAEO,CAAUA,cAAV;AAMI,EAAMA,UAAA,UAA0B,IAAI,uBAAuB,CAAC,SAAS,CAAC;AA2BtE,WAAS,GAAG,SAAc;AAC7B,WAAQ,UAA+CA,UAAA,KAAK,KAAKA,UAAA;AAAA,EACrE;AAFO,EAAAA,UAAS;AAIT,EAAMA,UAAA,QAAQ,OAAO,OAAO;AAAA,GArCtB;AAwCjB,OAAO,eAAe,UAAU,QAAQ;AAAA,EACpC,MAAM;AACF,WAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC;AAAA,EAC9C;AACJ,CAAC;AAED,iBAAiB,IAAI,SAAS,OAAmB;",
5
+ "names": ["Lifetime"]
6
+ }
@@ -16,9 +16,9 @@ class BasicMultiplex {
16
16
  }
17
17
  const entry = {
18
18
  done: Promise.resolve(worker).catch((e) => {
19
- let message = "Unhandled error";
19
+ let message = "Error";
20
20
  if (description) {
21
- message = `${message} in ${description}`;
21
+ message = `${message} ${description}`;
22
22
  }
23
23
  logger.error(`${message}:`, e);
24
24
  }).finally(() => this.#workers.delete(entry)),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Multiplex.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAEzB,MAAM,SAAS,OAAO,IAAI,WAAW;AAmB9B,MAAM,eAA4C;AAAA,EACrD,WAAW,IAAI,SAAsB;AAAA,EAErC,IAAI,QAA+B,aAAsB;AACrD,QAAI,CAAC,aAAa,GAAG,MAAM,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,QAAQ;AAAA,MACV,MAAM,QAAQ,QAAQ,MAAM,EACvB,MAAM,OAAK;AACR,YAAI,UAAU;AACd,YAAI,aAAa;AACb,oBAAU,GAAG,OAAO,OAAO,WAAW;AAAA,QAC1C;AACA,eAAO,MAAM,GAAG,OAAO,KAAK,CAAC;AAAA,MACjC,CAAC,EACA,QAAQ,MAAM,KAAK,SAAS,OAAO,KAAK,CAAC;AAAA,MAC9C;AAAA,IACJ;AAEA,SAAK,SAAS,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ;AACV,WAAO,KAAK,SAAS,MAAM;AACvB,YAAM,qBAAqB,WAAW,CAAC,GAAG,KAAK,QAAQ,EAAE,IAAI,WAAS,MAAM,IAAI,CAAC;AAAA,IACrF;AAAA,EACJ;AAAA,EAEA,KACI,aACA,YACgC;AAChC,WAAO,KAAK,MAAM,EAAE,KAAK,aAAa,UAAU;AAAA,EACpD;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI,KAAK,MAAM,KAAK,IAAI;AAChD;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAEzB,MAAM,SAAS,OAAO,IAAI,WAAW;AAmB9B,MAAM,eAA4C;AAAA,EACrD,WAAW,IAAI,SAAsB;AAAA,EAErC,IAAI,QAA+B,aAAsB;AACrD,QAAI,CAAC,aAAa,GAAG,MAAM,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,QAAQ;AAAA,MACV,MAAM,QAAQ,QAAQ,MAAM,EACvB,MAAM,OAAK;AACR,YAAI,UAAU;AACd,YAAI,aAAa;AACb,oBAAU,GAAG,OAAO,IAAI,WAAW;AAAA,QACvC;AACA,eAAO,MAAM,GAAG,OAAO,KAAK,CAAC;AAAA,MACjC,CAAC,EACA,QAAQ,MAAM,KAAK,SAAS,OAAO,KAAK,CAAC;AAAA,MAC9C;AAAA,IACJ;AAEA,SAAK,SAAS,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ;AACV,WAAO,KAAK,SAAS,MAAM;AACvB,YAAM,qBAAqB,WAAW,CAAC,GAAG,KAAK,QAAQ,EAAE,IAAI,WAAS,MAAM,IAAI,CAAC;AAAA,IACrF;AAAA,EACJ;AAAA,EAEA,KACI,aACA,YACgC;AAChC,WAAO,KAAK,MAAM,EAAE,KAAK,aAAa,UAAU;AAAA,EACpD;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI,KAAK,MAAM,KAAK,IAAI;AAChD;",
5
5
  "names": []
6
6
  }
@@ -21,9 +21,11 @@ import { MaybePromise } from "./Promises.js";
21
21
  * @param payload a list of arguments to be emitted
22
22
  */
23
23
  export interface Observer<T extends any[] = any[], R = void> {
24
- (...payload: T): MaybePromise<R | undefined>;
24
+ (...payload: T): R | undefined;
25
25
  [observant]?: boolean;
26
26
  }
27
+ export interface AsyncObserver<T extends any[] = any[], R = void> extends Observer<T, MaybePromise<R>> {
28
+ }
27
29
  /**
28
30
  * A discrete event that may be monitored via callback. Could call it "event" but that could be confused with Matter
29
31
  * cluster events and/or DOM events.
@@ -90,6 +92,10 @@ export interface Observable<T extends any[] = any[], R = void> extends AsyncIter
90
92
  * Creates a promise that resolves when next emitted.
91
93
  */
92
94
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T[0]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
95
+ /**
96
+ * A diagnostic aid; set this to produce detailed logs of emission.
97
+ */
98
+ traceAs: string | undefined;
93
99
  /**
94
100
  * Observable supports standard "for await (const value of observable").
95
101
  *
@@ -148,6 +154,7 @@ export type ObserverPromiseHandler = (promise: Promise<unknown>, observer: Obser
148
154
  export declare class BasicObservable<T extends any[] = any[], R = void> implements Observable<T, R> {
149
155
  #private;
150
156
  constructor(handleError?: ObserverErrorHandler, asyncConfig?: ObserverPromiseHandler | boolean);
157
+ set traceAs(name: string | undefined);
151
158
  [Symbol.dispose](): void;
152
159
  set handleError(handleError: ObserverErrorHandler);
153
160
  get handleError(): ObserverErrorHandler;
@@ -223,9 +230,9 @@ export declare class EventEmitter {
223
230
  emit<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, ...payload: EventEmitter.PayloadOf<This, N>): void;
224
231
  addListener<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, handler: EventEmitter.ObserverOf<This, N>): void;
225
232
  removeListener<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, handler: EventEmitter.ObserverOf<This, N>): void;
226
- addEvent(name: string, event?: Observable): void;
227
- getEvent(name: string): Observable<any[], void>;
228
- hasEvent(name: string, onlyIfInitialized?: boolean): boolean | Observable<any[], void> | undefined;
233
+ addEvent(name: string, event?: AsyncObservable): void;
234
+ getEvent(name: string): AsyncObservable<any[], void>;
235
+ hasEvent(name: string, onlyIfInitialized?: boolean): boolean | AsyncObservable<any[], void> | undefined;
229
236
  get eventNames(): string[];
230
237
  [Symbol.dispose](): void;
231
238
  }
@@ -273,14 +280,8 @@ export declare class ObservableProxy extends BasicObservable {
273
280
  export declare class ObserverGroup {
274
281
  #private;
275
282
  constructor(target?: {});
276
- /**
277
- * Add an observer.
278
- *
279
- * @param observable the observable to observe
280
- * @param observer the observer function
281
- * @param target optional "this" to bind the observer
282
- */
283
- on<T extends any[], R>(observable: Observable<T, R> | AsyncObservable<T, R>, observer: Observer<ObserverGroup.VarArgs<NoInfer<T>>, NoInfer<R>>, target?: {} | undefined): void;
283
+ on<T extends any[], R>(observable: Observable<T, R>, observer: Observer<ObserverGroup.VarArgs<NoInfer<T>>, NoInfer<R>>, target?: {}): void;
284
+ on<T extends any[], R>(observable: AsyncObservable<T, R>, observer: AsyncObserver<ObserverGroup.VarArgs<NoInfer<T>>, NoInfer<R>>, target?: {}): void;
284
285
  /**
285
286
  * Remove a single observer.
286
287
  *
@@ -304,26 +305,26 @@ export declare namespace ObserverGroup {
304
305
  /**
305
306
  * An {@link Observable} that emits an algorithmically-reduced number of events.
306
307
  */
307
- export declare class QuietObservable<T extends any[] = any[]> extends BasicObservable<T> implements QuietObservable.State<T> {
308
+ export declare class QuietObservable<T extends any[] = any[], R extends MaybePromise<void> = void> extends BasicObservable<T, R> implements QuietObservable.State<T, R> {
308
309
  #private;
309
- constructor(config?: QuietObservable.Configuration<T>);
310
- get config(): QuietObservable.Configuration<T>;
311
- set config(config: QuietObservable.Configuration<T>);
310
+ constructor(config?: QuietObservable.Configuration<T, R>);
311
+ get config(): QuietObservable.Configuration<T, R>;
312
+ set config(config: QuietObservable.Configuration<T, R>);
312
313
  get emitAutomatically(): boolean;
313
314
  set emitAutomatically(value: boolean);
314
315
  get suppressionEnabled(): boolean;
315
316
  set suppressionEnabled(value: boolean);
316
317
  get minimumEmitInterval(): Duration;
317
318
  set minimumEmitInterval(value: Duration);
318
- get source(): Observable<T> | undefined;
319
- set source(source: Observable<T> | undefined);
320
- get sink(): Observable<T> | undefined;
321
- set sink(sink: Observable<T> | undefined);
319
+ get source(): Observable<T, R> | undefined;
320
+ set source(source: Observable<T, R> | undefined);
321
+ get sink(): Observable<T, R> | undefined;
322
+ set sink(sink: Observable<T, R> | undefined);
322
323
  get shouldEmit(): QuietObservable.EmitPredicate<T> | undefined;
323
324
  set shouldEmit(shouldEmit: QuietObservable.EmitPredicate<T> | undefined);
324
325
  get isObserved(): boolean;
325
- isObservedBy(observer: Observer<T>): boolean;
326
- emit(...payload: T): void;
326
+ isObservedBy(observer: Observer<T, R>): boolean;
327
+ emit(...payload: T): R | undefined;
327
328
  /**
328
329
  * Emit immediately, regardless of suppression configuration.
329
330
  */
@@ -335,7 +336,7 @@ export declare class QuietObservable<T extends any[] = any[]> extends BasicObser
335
336
  [Symbol.dispose](): void;
336
337
  }
337
338
  export declare namespace QuietObservable {
338
- interface State<T extends any[] = any[]> {
339
+ interface State<T extends any[] = any[], R extends MaybePromise<void> = void> {
339
340
  /**
340
341
  * If true this observable will emit within the suppression constraints. If false it will only emit after calls
341
342
  * to {@link emitSoon} or {@link emitNow}.
@@ -352,11 +353,11 @@ export declare namespace QuietObservable {
352
353
  /**
353
354
  * An input observable this observable will automatically observe to produce events.
354
355
  */
355
- source?: Observable<T>;
356
+ source?: Observable<T, R>;
356
357
  /**
357
358
  * An output observable this observable will automatically emit to whenever it emits.
358
359
  */
359
- sink?: Observable<T>;
360
+ sink?: Observable<T, R>;
360
361
  /**
361
362
  * A predicate that determine whether a payload should emit.
362
363
  */
@@ -389,7 +390,7 @@ export declare namespace QuietObservable {
389
390
  interface EmitPredicate<T extends any[] = any[]> {
390
391
  (...payload: T): EmitDirective;
391
392
  }
392
- interface Configuration<T extends any[] = any[]> extends Partial<State<T>> {
393
+ interface Configuration<T extends any[] = any[], R extends MaybePromise<void> = void> extends Partial<State<T, R>> {
393
394
  }
394
395
  const defaults: State;
395
396
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../src/util/Observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../src/util/Observable.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
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";
6
7
  import { Time } from "#time/Time.js";
7
8
  import { Instant, Millis, Seconds } from "#time/TimeUnit.js";
8
9
  import { ImplementationError } from "../MatterError.js";
@@ -21,6 +22,7 @@ class BasicObservable {
21
22
  #handlePromise;
22
23
  #observers;
23
24
  #once;
25
+ #instrumentAs;
24
26
  #joinIteration;
25
27
  #removeIterator;
26
28
  #stopIteration;
@@ -32,6 +34,9 @@ class BasicObservable {
32
34
  this.isAsync = asyncConfig ?? false;
33
35
  }
34
36
  }
37
+ set traceAs(name) {
38
+ this.#instrumentAs = name;
39
+ }
35
40
  [Symbol.dispose]() {
36
41
  this.#observers = this.#once = void 0;
37
42
  this.#stopIteration?.();
@@ -98,44 +103,80 @@ class BasicObservable {
98
103
  if (!this.#observers) {
99
104
  return;
100
105
  }
101
- const iterator = [...this.#observers][Symbol.iterator]();
102
- const emitNext = (previousEmitResult) => {
103
- if (previousEmitResult !== void 0) {
104
- return previousEmitResult;
106
+ const observers = [...this.#observers];
107
+ let nextObserver = 0;
108
+ const next = () => {
109
+ const observer = observers[nextObserver];
110
+ if (this.#once?.has(observer)) {
111
+ this.#once.delete(observer);
112
+ this.#observers?.delete(observer);
105
113
  }
106
- for (let iteration = iterator.next(); !iteration.done; iteration = iterator.next()) {
107
- let result;
108
- const observer = iteration.value;
109
- try {
110
- result = observer(...payload);
111
- } catch (e) {
112
- this.#handleError(asError(e), observer);
113
- }
114
- if (this.#once?.has(observer)) {
115
- this.#once.delete(observer);
116
- this.#observers?.delete(observer);
117
- }
118
- if (result === void 0) {
119
- continue;
120
- }
121
- if (MaybePromise.is(result)) {
122
- result = this.#handlePromise(Promise.resolve(result), observer);
123
- if (MaybePromise.is(result)) {
124
- return result.then((result2) => {
125
- if (result2 === void 0) {
126
- return emitNext();
114
+ if (this.#instrumentAs) {
115
+ logger.debug(
116
+ Diagnostic.strong(this.#instrumentAs),
117
+ `invoking #${nextObserver++}`,
118
+ Diagnostic.strong(observer.name || "(anon)")
119
+ );
120
+ }
121
+ return observer;
122
+ };
123
+ let log, done;
124
+ if (this.#instrumentAs) {
125
+ logger.debug(Diagnostic.strong(this.#instrumentAs), "emitting");
126
+ log = (observer) => {
127
+ logger.debug(
128
+ Diagnostic.strong(this.#instrumentAs),
129
+ `invoking #${nextObserver++}`,
130
+ Diagnostic.strong(observer.name || "(anon)")
131
+ );
132
+ };
133
+ done = () => {
134
+ logger.debug(Diagnostic.strong(this.#instrumentAs), "emission complete");
135
+ };
136
+ }
137
+ for (; nextObserver < observers.length; nextObserver++) {
138
+ let result;
139
+ let observer = next();
140
+ try {
141
+ log?.(observer);
142
+ result = observer(...payload);
143
+ } catch (e) {
144
+ this.#handleError(asError(e), observer);
145
+ }
146
+ if (result === void 0) {
147
+ continue;
148
+ }
149
+ if (MaybePromise.is(result)) {
150
+ const emitAsync = async () => {
151
+ while (true) {
152
+ if (MaybePromise.is(result)) {
153
+ try {
154
+ result = await result;
155
+ } catch (e) {
156
+ this.#handleError(asError(e), observer);
127
157
  }
128
- return result2;
129
- });
130
- }
131
- if (result === void 0) {
132
- continue;
158
+ }
159
+ if (result !== void 0) {
160
+ return result;
161
+ }
162
+ nextObserver++;
163
+ if (nextObserver >= observers.length) {
164
+ break;
165
+ }
166
+ observer = next();
167
+ try {
168
+ result = observer(...payload);
169
+ } catch (e) {
170
+ this.#handleError(asError(e), observer);
171
+ }
133
172
  }
134
- }
135
- return result;
173
+ done?.();
174
+ };
175
+ return emitAsync();
136
176
  }
137
- };
138
- return emitNext();
177
+ done?.();
178
+ return result;
179
+ }
139
180
  }
140
181
  on(observer) {
141
182
  if (!this.#observers) {
@@ -611,7 +652,7 @@ class QuietObservable extends BasicObservable {
611
652
  this.#deferredPayload = void 0;
612
653
  this.#lastEmitAt = now ?? Time.nowMs;
613
654
  this.#stop();
614
- super.emit(...payload);
655
+ return super.emit(...payload);
615
656
  }
616
657
  #start(now) {
617
658
  if (this.#emitTimer || this.#deferredPayload === void 0) {