@matter/general 0.16.0-alpha.0-20251001-7eb06da95 → 0.16.0-alpha.0-20251003-dc6d5523d

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 (153) hide show
  1. package/dist/cjs/MatterError.d.ts +2 -2
  2. package/dist/cjs/MatterError.d.ts.map +1 -1
  3. package/dist/cjs/MatterError.js +0 -1
  4. package/dist/cjs/MatterError.js.map +1 -1
  5. package/dist/cjs/environment/Environment.d.ts +12 -0
  6. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  7. package/dist/cjs/environment/Environment.js +48 -7
  8. package/dist/cjs/environment/Environment.js.map +1 -1
  9. package/dist/cjs/environment/Environmental.d.ts +1 -1
  10. package/dist/cjs/environment/Environmental.d.ts.map +1 -1
  11. package/dist/cjs/environment/RuntimeService.d.ts +9 -2
  12. package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
  13. package/dist/cjs/environment/RuntimeService.js +10 -1
  14. package/dist/cjs/environment/RuntimeService.js.map +1 -1
  15. package/dist/cjs/net/AppAddress.d.ts +46 -0
  16. package/dist/cjs/net/AppAddress.d.ts.map +1 -0
  17. package/dist/cjs/net/AppAddress.js +117 -0
  18. package/dist/cjs/net/AppAddress.js.map +6 -0
  19. package/dist/cjs/net/Channel.d.ts +2 -2
  20. package/dist/cjs/net/Channel.d.ts.map +1 -1
  21. package/dist/cjs/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
  22. package/dist/cjs/net/ConnectionlessTransport.d.ts.map +1 -0
  23. package/dist/cjs/net/{TransportInterface.js → ConnectionlessTransport.js} +9 -8
  24. package/dist/cjs/net/ConnectionlessTransport.js.map +6 -0
  25. package/dist/cjs/net/Network.d.ts +2 -2
  26. package/dist/cjs/net/Network.d.ts.map +1 -1
  27. package/dist/cjs/net/ServerAddress.d.ts +7 -2
  28. package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
  29. package/dist/cjs/net/ServerAddress.js +20 -5
  30. package/dist/cjs/net/ServerAddress.js.map +1 -1
  31. package/dist/cjs/net/index.d.ts +3 -5
  32. package/dist/cjs/net/index.d.ts.map +1 -1
  33. package/dist/cjs/net/index.js +3 -5
  34. package/dist/cjs/net/index.js.map +1 -1
  35. package/dist/cjs/net/mock/MockNetwork.d.ts +1 -1
  36. package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -1
  37. package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
  38. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  39. package/dist/cjs/net/mock/MockUdpChannel.js +1 -1
  40. package/dist/{esm/net → cjs/net/udp}/UdpChannel.d.ts +3 -3
  41. package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -0
  42. package/dist/cjs/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
  43. package/dist/{esm/net → cjs/net/udp}/UdpInterface.d.ts +9 -10
  44. package/dist/cjs/net/udp/UdpInterface.d.ts.map +1 -0
  45. package/dist/cjs/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
  46. package/dist/cjs/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
  47. package/dist/{esm/net → cjs/net/udp}/UdpMulticastServer.d.ts +1 -1
  48. package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -0
  49. package/dist/cjs/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
  50. package/dist/cjs/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
  51. package/dist/cjs/net/udp/index.d.ts +9 -0
  52. package/dist/cjs/net/udp/index.d.ts.map +1 -0
  53. package/dist/cjs/net/udp/index.js +26 -0
  54. package/dist/cjs/net/udp/index.js.map +6 -0
  55. package/dist/cjs/time/Duration.d.ts.map +1 -1
  56. package/dist/cjs/time/Duration.js +4 -1
  57. package/dist/cjs/time/Duration.js.map +1 -1
  58. package/dist/esm/MatterError.d.ts +2 -2
  59. package/dist/esm/MatterError.d.ts.map +1 -1
  60. package/dist/esm/MatterError.js +0 -1
  61. package/dist/esm/MatterError.js.map +1 -1
  62. package/dist/esm/environment/Environment.d.ts +12 -0
  63. package/dist/esm/environment/Environment.d.ts.map +1 -1
  64. package/dist/esm/environment/Environment.js +48 -7
  65. package/dist/esm/environment/Environment.js.map +1 -1
  66. package/dist/esm/environment/Environmental.d.ts +1 -1
  67. package/dist/esm/environment/Environmental.d.ts.map +1 -1
  68. package/dist/esm/environment/RuntimeService.d.ts +9 -2
  69. package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
  70. package/dist/esm/environment/RuntimeService.js +10 -1
  71. package/dist/esm/environment/RuntimeService.js.map +1 -1
  72. package/dist/esm/net/AppAddress.d.ts +46 -0
  73. package/dist/esm/net/AppAddress.d.ts.map +1 -0
  74. package/dist/esm/net/AppAddress.js +97 -0
  75. package/dist/esm/net/AppAddress.js.map +6 -0
  76. package/dist/esm/net/Channel.d.ts +2 -2
  77. package/dist/esm/net/Channel.d.ts.map +1 -1
  78. package/dist/esm/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
  79. package/dist/esm/net/ConnectionlessTransport.d.ts.map +1 -0
  80. package/dist/esm/net/{TransportInterface.js → ConnectionlessTransport.js} +6 -5
  81. package/dist/esm/net/ConnectionlessTransport.js.map +6 -0
  82. package/dist/esm/net/Network.d.ts +2 -2
  83. package/dist/esm/net/Network.d.ts.map +1 -1
  84. package/dist/esm/net/ServerAddress.d.ts +7 -2
  85. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  86. package/dist/esm/net/ServerAddress.js +20 -5
  87. package/dist/esm/net/ServerAddress.js.map +1 -1
  88. package/dist/esm/net/index.d.ts +3 -5
  89. package/dist/esm/net/index.d.ts.map +1 -1
  90. package/dist/esm/net/index.js +3 -5
  91. package/dist/esm/net/index.js.map +1 -1
  92. package/dist/esm/net/mock/MockNetwork.d.ts +1 -1
  93. package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -1
  94. package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
  95. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  96. package/dist/esm/net/mock/MockUdpChannel.js +1 -1
  97. package/dist/{cjs/net → esm/net/udp}/UdpChannel.d.ts +3 -3
  98. package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -0
  99. package/dist/esm/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
  100. package/dist/{cjs/net → esm/net/udp}/UdpInterface.d.ts +9 -10
  101. package/dist/esm/net/udp/UdpInterface.d.ts.map +1 -0
  102. package/dist/esm/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
  103. package/dist/esm/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
  104. package/dist/{cjs/net → esm/net/udp}/UdpMulticastServer.d.ts +1 -1
  105. package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -0
  106. package/dist/esm/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
  107. package/dist/esm/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
  108. package/dist/esm/net/udp/index.d.ts +9 -0
  109. package/dist/esm/net/udp/index.d.ts.map +1 -0
  110. package/dist/esm/net/udp/index.js +9 -0
  111. package/dist/esm/net/udp/index.js.map +6 -0
  112. package/dist/esm/time/Duration.d.ts.map +1 -1
  113. package/dist/esm/time/Duration.js +4 -1
  114. package/dist/esm/time/Duration.js.map +1 -1
  115. package/package.json +2 -2
  116. package/src/MatterError.ts +6 -3
  117. package/src/environment/Environment.ts +66 -8
  118. package/src/environment/Environmental.ts +1 -1
  119. package/src/environment/RuntimeService.ts +21 -2
  120. package/src/net/AppAddress.ts +136 -0
  121. package/src/net/Channel.ts +2 -2
  122. package/src/net/{TransportInterface.ts → ConnectionlessTransport.ts} +12 -8
  123. package/src/net/Network.ts +2 -2
  124. package/src/net/ServerAddress.ts +32 -7
  125. package/src/net/index.ts +3 -5
  126. package/src/net/mock/MockNetwork.ts +1 -1
  127. package/src/net/mock/MockUdpChannel.ts +1 -1
  128. package/src/net/{UdpChannel.ts → udp/UdpChannel.ts} +3 -3
  129. package/src/net/{UdpInterface.ts → udp/UdpInterface.ts} +7 -8
  130. package/src/net/{UdpMulticastServer.ts → udp/UdpMulticastServer.ts} +5 -5
  131. package/src/net/udp/index.ts +9 -0
  132. package/src/time/Duration.ts +8 -1
  133. package/dist/cjs/net/NetInterface.d.ts +0 -25
  134. package/dist/cjs/net/NetInterface.d.ts.map +0 -1
  135. package/dist/cjs/net/NetInterface.js +0 -42
  136. package/dist/cjs/net/NetInterface.js.map +0 -6
  137. package/dist/cjs/net/TransportInterface.d.ts.map +0 -1
  138. package/dist/cjs/net/TransportInterface.js.map +0 -6
  139. package/dist/cjs/net/UdpChannel.d.ts.map +0 -1
  140. package/dist/cjs/net/UdpInterface.d.ts.map +0 -1
  141. package/dist/cjs/net/UdpMulticastServer.d.ts.map +0 -1
  142. package/dist/esm/net/NetInterface.d.ts +0 -25
  143. package/dist/esm/net/NetInterface.d.ts.map +0 -1
  144. package/dist/esm/net/NetInterface.js +0 -22
  145. package/dist/esm/net/NetInterface.js.map +0 -6
  146. package/dist/esm/net/TransportInterface.d.ts.map +0 -1
  147. package/dist/esm/net/TransportInterface.js.map +0 -6
  148. package/dist/esm/net/UdpChannel.d.ts.map +0 -1
  149. package/dist/esm/net/UdpInterface.d.ts.map +0 -1
  150. package/dist/esm/net/UdpMulticastServer.d.ts.map +0 -1
  151. package/src/net/NetInterface.ts +0 -34
  152. /package/dist/cjs/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
  153. /package/dist/esm/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { MaybePromise } from "#util/Promises.js";
6
7
  declare const inspect: unique symbol;
7
8
  /**
8
9
  * Error base class for all errors thrown by this library.
@@ -119,9 +120,8 @@ export declare class MatterAggregateError extends AggregateError {
119
120
  /**
120
121
  * Wait for all promises to settle and throw an error if any of them reject as MatterAggregateError
121
122
  * (or extended class). Promise results are not returned.
122
- * TODO: Enhance the types between call and result to be better unwrapped
123
123
  */
124
- static allSettled(promises: Iterable<unknown>, message?: string): Promise<unknown[]>;
124
+ static allSettled<T = unknown>(promises: Iterable<MaybePromise<T>>, message?: string): Promise<T[]>;
125
125
  }
126
126
  /**
127
127
  * It's never reasonable to fail to present error information so we include this rudimentary fallback error formatter.
@@ -1 +1 @@
1
- {"version":3,"file":"MatterError.d.ts","sourceRoot":"","sources":["../../src/MatterError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,QAAA,MAAM,OAAO,eAA2C,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB,EAAE,OAAO,SAAI,GAgB1C,MAAM;IAG3B;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAwBnC;;;;;;;OAOG;IACH,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAcjE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAOzG;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,uBAAuB,iCAA2B;IAEzD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAClD;CAU3C;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;CAAG;AAEjD,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,yGAAyG;AACzG,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACtC,OAAO,SAA2B;CAGjD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;gBACxC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAQvD;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;WAMT,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO;IAOtD;;;;OAIG;WACU,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,SAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CASxG;AAOD;;GAEG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAI,UA2CrD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;gBAC9B,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGrE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC7B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtE"}
1
+ {"version":3,"file":"MatterError.d.ts","sourceRoot":"","sources":["../../src/MatterError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,QAAA,MAAM,OAAO,eAA2C,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB,EAAE,OAAO,SAAI,GAgB1C,MAAM;IAG3B;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAwBnC;;;;;;;OAOG;IACH,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAcjE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAOzG;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,uBAAuB,iCAA2B;IAEzD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAClD;CAU3C;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;CAAG;AAEjD,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,yGAAyG;AACzG,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACtC,OAAO,SAA2B;CAGjD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;gBACxC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAQvD;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;WAMT,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO;IAOtD;;;OAGG;WACU,UAAU,CAAC,CAAC,GAAG,OAAO,EAC/B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACnC,OAAO,SAAoB,GAC5B,OAAO,CAAC,CAAC,EAAE,CAAC;CASlB;AAOD;;GAEG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAI,UA2CrD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;gBAC9B,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGrE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC7B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtE"}
@@ -207,7 +207,6 @@ class MatterAggregateError extends AggregateError {
207
207
  /**
208
208
  * Wait for all promises to settle and throw an error if any of them reject as MatterAggregateError
209
209
  * (or extended class). Promise results are not returned.
210
- * TODO: Enhance the types between call and result to be better unwrapped
211
210
  */
212
211
  static async allSettled(promises, message = "Errors happened") {
213
212
  const results = await Promise.allSettled(promises);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MatterError.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["value", "indents"]
6
6
  }
@@ -29,6 +29,10 @@ export declare class Environment {
29
29
  * Determine if an environmental service is available.
30
30
  */
31
31
  has(type: abstract new (...args: any[]) => any): boolean;
32
+ /**
33
+ * Determine if an environmental services is owned by this environment (not an ancestor).
34
+ */
35
+ owns(type: abstract new (...args: any[]) => any): boolean;
32
36
  /**
33
37
  * Access an environmental service.
34
38
  */
@@ -87,6 +91,14 @@ export declare class Environment {
87
91
  * This is a more convenient way to observe a specific service than {@link added} and {@link deleted}.
88
92
  */
89
93
  eventsFor<T extends Environmental.Factory<any>>(type: T): Environmental.ServiceEvents<T>;
94
+ /**
95
+ * Apply functions to a specific service type automatically.
96
+ *
97
+ * The environment invokes {@link added} immediately if the service is currently present. It then invokes
98
+ * {@link added} in the future if the service is added or replaced and/or {@link deleted} if the service is replaced
99
+ * or deleted.
100
+ */
101
+ applyTo<T extends Environmental.Factory<any>>(type: T, added?: (env: Environment, service: T) => MaybePromise<void>, deleted?: (env: Environment, service: T) => MaybePromise<void>): void;
90
102
  /**
91
103
  * The default environment.
92
104
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Environment.d.ts","sourceRoot":"","sources":["../../../src/environment/Environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,4BAA4B,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;;gBAQR,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAK9C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO;IAUxD;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;IAiBlE;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAMnF;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG;IAejE;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAQhD;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,EAClB,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACzC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5E;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAM1E;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAYvE;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;OAIG;IACH,IAAI,KAAK,6CA5IyC,GAAG,EAAE,KAAK,EAAE,uBA8I7D;IAED;;;;OAIG;IACH,IAAI,OAAO,6CApJyC,GAAG,EAAE,KAAK,EAAE,uBAsJ/D;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GASlC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAGnD;;;;OAIG;IACH,MAAM,KAAK,OAAO,IAOM,WAAW,CALlC;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,WAAW,EAYlC;IAED;;OAEG;IACH,IAAI,IAAI,oBAEP;IAED;;OAEG;IACH,IAAI,OAAO,mBAEV;IAED;;OAEG;IACH,QAAQ;IAUR,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGjD"}
1
+ {"version":3,"file":"Environment.d.ts","sourceRoot":"","sources":["../../../src/environment/Environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,4BAA4B,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;;gBAQR,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAK9C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO;IAUxD;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO;IAIzD;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;IA6BlE;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAMnF;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG;IAejE;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAiBhD;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,EAClB,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACzC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5E;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAM1E;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAYvE;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;OAIG;IACH,IAAI,KAAK,6CAxKyC,GAAG,EAAE,KAAK,EAAE,uBA0K7D;IAED;;;;OAIG;IACH,IAAI,OAAO,6CAhLyC,GAAG,EAAE,KAAK,EAAE,uBAkL/D;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GASlC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAGnD;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EACxC,IAAI,EAAE,CAAC,EACP,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,EAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC;IAmBlE;;;;OAIG;IACH,MAAM,KAAK,OAAO,IAOM,WAAW,CALlC;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,WAAW,EAYlC;IAED;;OAEG;IACH,IAAI,IAAI,oBAEP;IAED;;OAEG;IACH,IAAI,OAAO,mBAEV;IAED;;OAEG;IACH,QAAQ;IAUR,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGjD"}
@@ -21,6 +21,7 @@ __export(Environment_exports, {
21
21
  Environment: () => Environment
22
22
  });
23
23
  module.exports = __toCommonJS(Environment_exports);
24
+ var import_MatterError = require("#MatterError.js");
24
25
  var import_TimeUnit = require("#time/TimeUnit.js");
25
26
  var import_DiagnosticSource = require("../log/DiagnosticSource.js");
26
27
  var import_Logger = require("../log/Logger.js");
@@ -58,17 +59,31 @@ class Environment {
58
59
  }
59
60
  return mine !== void 0 || (this.#parent?.has(type) ?? false);
60
61
  }
62
+ /**
63
+ * Determine if an environmental services is owned by this environment (not an ancestor).
64
+ */
65
+ owns(type) {
66
+ return !!this.#services?.get(type);
67
+ }
61
68
  /**
62
69
  * Access an environmental service.
63
70
  */
64
71
  get(type) {
65
- let instance = this.#services?.get(type) ?? this.#parent?.maybeGet(type);
66
- if (instance !== void 0 && instance !== null) {
67
- return instance;
72
+ const mine = this.#services?.get(type);
73
+ if (mine !== void 0 && mine !== null) {
74
+ return mine;
68
75
  }
69
- if (instance !== null) {
76
+ if (mine === void 0) {
77
+ let instance = this.#parent?.maybeGet(type);
78
+ if (instance !== void 0 && instance !== null) {
79
+ return instance;
80
+ }
70
81
  if (type[import_Environmental.Environmental.create]) {
71
- this.set(type, instance = type[import_Environmental.Environmental.create](this));
82
+ instance = type[import_Environmental.Environmental.create](this);
83
+ if (!(instance instanceof type)) {
84
+ throw new import_MatterError.InternalError(`Service creation did not produce instance of ${type.name}`);
85
+ }
86
+ this.set(type, instance);
72
87
  return instance;
73
88
  }
74
89
  }
@@ -106,8 +121,14 @@ class Environment {
106
121
  * @param type the class of the service to block
107
122
  */
108
123
  block(type) {
109
- if (this.has(type)) {
110
- this.delete(type);
124
+ const instance = this.#services?.get(type);
125
+ if (instance !== void 0 && instance !== null) {
126
+ this.#services?.delete(type);
127
+ this.#deleted.emit(type, instance);
128
+ const serviceEvents = this.#serviceEvents.get(type);
129
+ if (serviceEvents) {
130
+ serviceEvents.deleted.emit(instance);
131
+ }
111
132
  }
112
133
  this.#services?.set(type, null);
113
134
  }
@@ -184,6 +205,26 @@ class Environment {
184
205
  }
185
206
  return events;
186
207
  }
208
+ /**
209
+ * Apply functions to a specific service type automatically.
210
+ *
211
+ * The environment invokes {@link added} immediately if the service is currently present. It then invokes
212
+ * {@link added} in the future if the service is added or replaced and/or {@link deleted} if the service is replaced
213
+ * or deleted.
214
+ */
215
+ applyTo(type, added, deleted) {
216
+ const events = this.eventsFor(type);
217
+ if (added) {
218
+ const existing = this.maybeGet(type);
219
+ if (existing) {
220
+ added(this, existing);
221
+ }
222
+ events.added.on((service) => this.runtime.add(() => added(this, service)));
223
+ }
224
+ if (deleted) {
225
+ events.deleted.on((service) => this.runtime.add(() => deleted(this, service)));
226
+ }
227
+ }
187
228
  /**
188
229
  * The default environment.
189
230
  *
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/Environment.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -23,7 +23,7 @@ export declare namespace Environmental {
23
23
  *
24
24
  * A "factory" is just a class with a static {@link create} method that performs instantiation.
25
25
  */
26
- interface Factory<T extends object> {
26
+ interface Factory<T extends object = object> {
27
27
  new (...args: any[]): T;
28
28
  /**
29
29
  * Method the environment uses to instantiate the service.
@@ -1 +1 @@
1
- {"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/environment/Environmental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,eAAmB,CAAC;IAEvC;;;;OAIG;IACH,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED;;;;OAIG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,MAAM;QACrC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAExB;;;;;WAKG;QACH,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,CAAC;KAC7C;IAED;;OAEG;IACH,UAAiB,aAAa,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;QACvE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;CACJ"}
1
+ {"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/environment/Environmental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,eAAmB,CAAC;IAEvC;;;;OAIG;IACH,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED;;;;OAIG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;QAC9C,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAExB;;;;;WAKG;QACH,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,CAAC;KAC7C;IAED;;OAEG;IACH,UAAiB,aAAa,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;QACvE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;CACJ"}
@@ -18,7 +18,7 @@ export declare class RuntimeService implements Multiplex {
18
18
  [Diagnostic.value]: unknown[];
19
19
  constructor(environment: Environment);
20
20
  /**
21
- * Add a {@link Worker}.
21
+ * Add a {@link Worker}, either directly or by invoking an {@link Initiator}.
22
22
  *
23
23
  * The runtime considers itself "active" if there are one or more workers installed.
24
24
  *
@@ -28,7 +28,7 @@ export declare class RuntimeService implements Multiplex {
28
28
  * Once added, the {@link worker} is owned by the RuntimeService until closed, resolved or removed via
29
29
  * {@link delete}.
30
30
  */
31
- add(worker: RuntimeService.Worker | void): void;
31
+ add(worker: RuntimeService.NewWorker): void;
32
32
  /**
33
33
  * Remove a worker.
34
34
  */
@@ -105,5 +105,12 @@ export declare namespace RuntimeService {
105
105
  */
106
106
  [label]?: unknown;
107
107
  }
108
+ /**
109
+ * A function that initiates work.
110
+ */
111
+ interface Initiator {
112
+ (env: Environment): NewWorker;
113
+ }
114
+ type NewWorker = Worker | Initiator | void;
108
115
  }
109
116
  //# sourceMappingURL=RuntimeService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeService.d.ts","sourceRoot":"","sources":["../../../src/environment/RuntimeService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;;IAkLxC,CAAC,UAAU,CAAC,KAAK,CAAC;gBAxKV,WAAW,EAAE,WAAW;IAMpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI;IAsCxC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAsBpC;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,mCAEV;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACH,MAAM;IAeN;;;;OAIG;IACH,SAAS;IAQT;;OAEG;IACH,IAAI,QAAQ,kBAcX;IAEK,KAAK;IAOX,CAAC,MAAM,CAAC,YAAY,CAAC;CAgExB;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,KAAK,eAAkB,CAAC;IAErC;;;;;;;OAOG;IACH,UAAiB,MAAO,SAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAClG;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC;;;;;;;;;WASG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD;;WAEG;QACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QAE9B;;WAEG;QACH,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACrB;CACJ"}
1
+ {"version":3,"file":"RuntimeService.d.ts","sourceRoot":"","sources":["../../../src/environment/RuntimeService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;;IA2LxC,CAAC,UAAU,CAAC,KAAK,CAAC;gBAjLV,WAAW,EAAE,WAAW;IAMpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS;IA+CpC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAsBpC;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,mCAEV;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACH,MAAM;IAeN;;;;OAIG;IACH,SAAS;IAQT;;OAEG;IACH,IAAI,QAAQ,kBAcX;IAEK,KAAK;IAOX,CAAC,MAAM,CAAC,YAAY,CAAC;CAgExB;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,KAAK,eAAkB,CAAC;IAErC;;;;;;;OAOG;IACH,UAAiB,MAAO,SAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAClG;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC;;;;;;;;;WASG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD;;WAEG;QACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QAE9B;;WAEG;QACH,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACrB;IAED;;OAEG;IACH,UAAiB,SAAS;QACtB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAAC;KACjC;IAED,KAAY,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACrD"}
@@ -21,6 +21,7 @@ __export(RuntimeService_exports, {
21
21
  RuntimeService: () => RuntimeService
22
22
  });
23
23
  module.exports = __toCommonJS(RuntimeService_exports);
24
+ var import_Error = require("#util/Error.js");
24
25
  var import_Diagnostic = require("../log/Diagnostic.js");
25
26
  var import_DiagnosticSource = require("../log/DiagnosticSource.js");
26
27
  var import_Logger = require("../log/Logger.js");
@@ -48,7 +49,7 @@ class RuntimeService {
48
49
  import_DiagnosticSource.DiagnosticSource.add(this);
49
50
  }
50
51
  /**
51
- * Add a {@link Worker}.
52
+ * Add a {@link Worker}, either directly or by invoking an {@link Initiator}.
52
53
  *
53
54
  * The runtime considers itself "active" if there are one or more workers installed.
54
55
  *
@@ -62,6 +63,14 @@ class RuntimeService {
62
63
  if (!worker) {
63
64
  return;
64
65
  }
66
+ if (typeof worker === "function") {
67
+ try {
68
+ this.add(worker(this.#env));
69
+ } catch (e) {
70
+ this.#crash((0, import_Error.asError)(e));
71
+ }
72
+ return;
73
+ }
65
74
  if (this.#workers.has(worker)) {
66
75
  return;
67
76
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/RuntimeService.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["RuntimeService"]
6
6
  }
@@ -0,0 +1,46 @@
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 { NetworkError } from "./Network.js";
8
+ export declare class InvalidAppAddress extends NetworkError {
9
+ }
10
+ /**
11
+ * An application network address.
12
+ *
13
+ * This is an OSI layer 7 address representable as an object or URL.
14
+ */
15
+ export declare class AppAddress extends URL {
16
+ [Diagnostic.value]: string;
17
+ constructor(definition: AppAddress.Definition);
18
+ get appProtocol(): string;
19
+ get isTls(): boolean;
20
+ get protocolModifiers(): string[];
21
+ get transport(): AppAddress.TransportAddress;
22
+ get portNum(): number;
23
+ get isWildcardHost(): boolean;
24
+ get isWildcardPort(): boolean;
25
+ static for(definition: AppAddress.Definition): AppAddress;
26
+ }
27
+ export declare namespace AppAddress {
28
+ type Definition = Object | URL | string;
29
+ type TransportAddress = IpTransportAddress | UnixSocketTransportAddress;
30
+ interface IpTransportAddress {
31
+ kind: "ip";
32
+ host: string;
33
+ port: number;
34
+ }
35
+ interface UnixSocketTransportAddress {
36
+ kind: "unix";
37
+ path: string;
38
+ }
39
+ interface Object {
40
+ appProtocol: string;
41
+ transport: TransportAddress;
42
+ tls?: boolean;
43
+ path?: string;
44
+ }
45
+ }
46
+ //# sourceMappingURL=AppAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppAddress.d.ts","sourceRoot":"","sources":["../../../src/net/AppAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,YAAY;CAAG;AAEtD;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,GAAG;IA8B3B,CAAC,UAAU,CAAC,KAAK,CAAC;gBA7BV,UAAU,EAAE,UAAU,CAAC,UAAU;IAiC7C,IAAI,WAAW,WAEd;IAED,IAAI,KAAK,YAYR;IAED,IAAI,iBAAiB,aAIpB;IAED,IAAI,SAAS,IAAI,UAAU,CAAC,gBAAgB,CAa3C;IAED,IAAI,OAAO,WAKV;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,cAAc,YAEjB;IAED,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU;CAO/C;AAED,yBAAiB,UAAU,CAAC;IACxB,KAAY,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAE/C,KAAY,gBAAgB,GAAG,kBAAkB,GAAG,0BAA0B,CAAC;IAE/E,UAAiB,kBAAkB;QAC/B,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,0BAA0B;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,MAAM;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,gBAAgB,CAAC;QAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB;CACJ"}
@@ -0,0 +1,117 @@
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 AppAddress_exports = {};
20
+ __export(AppAddress_exports, {
21
+ AppAddress: () => AppAddress,
22
+ InvalidAppAddress: () => InvalidAppAddress
23
+ });
24
+ module.exports = __toCommonJS(AppAddress_exports);
25
+ var import_Diagnostic = require("#log/Diagnostic.js");
26
+ var import_Network = require("./Network.js");
27
+ /**
28
+ * @license
29
+ * Copyright 2022-2025 Matter.js Authors
30
+ * SPDX-License-Identifier: Apache-2.0
31
+ */
32
+ class InvalidAppAddress extends import_Network.NetworkError {
33
+ }
34
+ class AppAddress extends URL {
35
+ constructor(definition) {
36
+ if (typeof definition === "object" && !(definition instanceof URL)) {
37
+ let protocol = definition.appProtocol;
38
+ let host;
39
+ if (definition.tls) {
40
+ protocol += "s";
41
+ }
42
+ if (definition.transport.kind === "unix") {
43
+ protocol += "+unix";
44
+ host = encodeURIComponent(definition.transport.path);
45
+ } else {
46
+ host = definition.transport.host;
47
+ if (definition.transport.port) {
48
+ host = `${host}:${definition.transport.port}`;
49
+ }
50
+ }
51
+ const path = definition.path ?? "/";
52
+ definition = `${protocol}://${host}${path}`;
53
+ }
54
+ try {
55
+ super(definition);
56
+ } catch (e) {
57
+ if (e instanceof SyntaxError) {
58
+ throw new InvalidAppAddress(`Invalid app address:${e.message}`);
59
+ }
60
+ throw e;
61
+ }
62
+ }
63
+ get [import_Diagnostic.Diagnostic.value]() {
64
+ return this.toString();
65
+ }
66
+ get appProtocol() {
67
+ return this.protocol.replace(/[:+].*$/, "");
68
+ }
69
+ get isTls() {
70
+ switch (this.appProtocol) {
71
+ case "https":
72
+ case "mqtts":
73
+ case "wss":
74
+ return true;
75
+ case "mqtt":
76
+ return this.protocolModifiers.includes("wss");
77
+ }
78
+ return false;
79
+ }
80
+ get protocolModifiers() {
81
+ const segments = this.protocol.replace(/:$/, "").split("+");
82
+ segments.shift();
83
+ return segments;
84
+ }
85
+ get transport() {
86
+ if (this.protocolModifiers.includes("unix")) {
87
+ return {
88
+ kind: "unix",
89
+ path: decodeURIComponent(this.hostname)
90
+ };
91
+ }
92
+ return {
93
+ kind: "ip",
94
+ host: this.hostname,
95
+ port: this.portNum
96
+ };
97
+ }
98
+ get portNum() {
99
+ if (this.port !== "") {
100
+ return Number(this.port);
101
+ }
102
+ return 0;
103
+ }
104
+ get isWildcardHost() {
105
+ return this.host === "0.0.0.0" || this.host === "::";
106
+ }
107
+ get isWildcardPort() {
108
+ return this.port === "0";
109
+ }
110
+ static for(definition) {
111
+ if (definition instanceof AppAddress) {
112
+ return definition;
113
+ }
114
+ return new AppAddress(definition);
115
+ }
116
+ }
117
+ //# sourceMappingURL=AppAddress.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/net/AppAddress.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAA2B;AAC3B,qBAA6B;AAP7B;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,0BAA0B,4BAAa;AAAC;AAO9C,MAAM,mBAAmB,IAAI;AAAA,EAChC,YAAY,YAAmC;AAC3C,QAAI,OAAO,eAAe,YAAY,EAAE,sBAAsB,MAAM;AAChE,UAAI,WAAW,WAAW;AAC1B,UAAI;AACJ,UAAI,WAAW,KAAK;AAChB,oBAAY;AAAA,MAChB;AACA,UAAI,WAAW,UAAU,SAAS,QAAQ;AACtC,oBAAY;AACZ,eAAO,mBAAmB,WAAW,UAAU,IAAI;AAAA,MACvD,OAAO;AACH,eAAO,WAAW,UAAU;AAC5B,YAAI,WAAW,UAAU,MAAM;AAC3B,iBAAO,GAAG,IAAI,IAAI,WAAW,UAAU,IAAI;AAAA,QAC/C;AAAA,MACJ;AACA,YAAM,OAAO,WAAW,QAAQ;AAChC,mBAAa,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI;AAAA,IAC7C;AACA,QAAI;AACA,YAAM,UAAU;AAAA,IACpB,SAAS,GAAG;AACR,UAAI,aAAa,aAAa;AAC1B,cAAM,IAAI,kBAAkB,uBAAuB,EAAE,OAAO,EAAE;AAAA,MAClE;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,KAAK,6BAAW,KAAK,IAAI;AACrB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS,QAAQ,WAAW,EAAE;AAAA,EAC9C;AAAA,EAEA,IAAI,QAAQ;AACR,YAAQ,KAAK,aAAa;AAAA,MACtB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AAED,eAAO,KAAK,kBAAkB,SAAS,KAAK;AAAA,IACpD;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,oBAAoB;AACpB,UAAM,WAAW,KAAK,SAAS,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG;AAC1D,aAAS,MAAM;AACf,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,YAAyC;AACzC,QAAI,KAAK,kBAAkB,SAAS,MAAM,GAAG;AACzC,aAAO;AAAA,QACH,MAAM;AAAA,QACN,MAAM,mBAAmB,KAAK,QAAQ;AAAA,MAC1C;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,IACf;AAAA,EACJ;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,SAAS,IAAI;AAClB,aAAO,OAAO,KAAK,IAAI;AAAA,IAC3B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,SAAS,aAAa,KAAK,SAAS;AAAA,EACpD;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,OAAO,IAAI,YAAmC;AAC1C,QAAI,sBAAsB,YAAY;AAClC,aAAO;AAAA,IACX;AAEA,WAAO,IAAI,WAAW,UAAU;AAAA,EACpC;AACJ;",
5
+ "names": []
6
+ }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { ServerAddressIp } from "#net/ServerAddress.js";
6
+ import { ServerAddressUdp } from "#net/ServerAddress.js";
7
7
  export declare enum ChannelType {
8
8
  UDP = "udp",
9
9
  BLE = "ble",
@@ -23,7 +23,7 @@ export interface Channel<T> {
23
23
  close(): Promise<void>;
24
24
  }
25
25
  export interface IpNetworkChannel<T> extends Channel<T> {
26
- networkAddress: ServerAddressIp;
26
+ networkAddress: ServerAddressUdp;
27
27
  }
28
28
  export declare function isIpNetworkChannel<T>(channel: Channel<T>): channel is IpNetworkChannel<T>;
29
29
  //# sourceMappingURL=Channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/net/Channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,oBAAY,WAAW;IACnB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACtB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IAEvB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IAEpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,WAAW,CAAC;IAElB,iDAAiD;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,kCAAkC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnD,cAAc,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAEzF"}
1
+ {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/net/Channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,oBAAY,WAAW;IACnB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACtB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IAEvB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IAEpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,WAAW,CAAC;IAElB,iDAAiD;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,kCAAkC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnD,cAAc,EAAE,gBAAgB,CAAC;CACpC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAEzF"}
@@ -8,16 +8,17 @@ import { Environmental } from "#environment/Environmental.js";
8
8
  import { Bytes } from "#util/Bytes.js";
9
9
  import { BasicSet } from "#util/Set.js";
10
10
  import { Channel, ChannelType } from "./Channel.js";
11
+ import { ServerAddress } from "./ServerAddress.js";
11
12
  /**
12
- * A TransportInterface is a generic interface for sending and receiving data on an established incoming connection.
13
- * It cannot open new connections.
13
+ * A local network endpoint associated with a specific {@link ServerAddress} for a connectionless protocol.
14
14
  */
15
- export interface TransportInterface {
16
- onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): TransportInterface.Listener;
15
+ export interface ConnectionlessTransport {
16
+ onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): ConnectionlessTransport.Listener;
17
17
  close(): Promise<void>;
18
18
  supports(type: ChannelType, address?: string): boolean;
19
+ openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
19
20
  }
20
- export declare namespace TransportInterface {
21
+ export declare namespace ConnectionlessTransport {
21
22
  interface Listener {
22
23
  close(): Promise<void>;
23
24
  }
@@ -25,9 +26,9 @@ export declare namespace TransportInterface {
25
26
  /**
26
27
  * A collection of {@link TransportInterfaces} managed as a unit.
27
28
  */
28
- export declare class TransportInterfaceSet<T extends TransportInterface = TransportInterface> extends BasicSet<T> {
29
+ export declare class ConnectionlessTransportSet<T extends ConnectionlessTransport = ConnectionlessTransport> extends BasicSet<T> {
29
30
  constructor(...initialInterfaces: T[]);
30
- static [Environmental.create](env: Environment): TransportInterfaceSet<TransportInterface>;
31
+ static [Environmental.create](env: Environment): ConnectionlessTransportSet<ConnectionlessTransport>;
31
32
  /**
32
33
  * Closes all interfaces.
33
34
  */
@@ -41,4 +42,4 @@ export declare class TransportInterfaceSet<T extends TransportInterface = Transp
41
42
  */
42
43
  hasInterfaceFor(type: ChannelType, address?: string): boolean;
43
44
  }
44
- //# sourceMappingURL=TransportInterface.d.ts.map
45
+ //# sourceMappingURL=ConnectionlessTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionlessTransport.d.ts","sourceRoot":"","sources":["../../../src/net/ConnectionlessTransport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC;IAClG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE;AAED,yBAAiB,uBAAuB,CAAC;IACrC,UAAiB,QAAQ;QACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B;CACJ;AAED;;GAEG;AACH,qBAAa,0BAA0B,CACnC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAC7D,SAAQ,QAAQ,CAAC,CAAC,CAAC;gBACL,GAAG,iBAAiB,EAAE,CAAC,EAAE;IAIrC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACG,KAAK;IAOX;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;IAIhD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAGtD"}
@@ -16,11 +16,11 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var TransportInterface_exports = {};
20
- __export(TransportInterface_exports, {
21
- TransportInterfaceSet: () => TransportInterfaceSet
19
+ var ConnectionlessTransport_exports = {};
20
+ __export(ConnectionlessTransport_exports, {
21
+ ConnectionlessTransportSet: () => ConnectionlessTransportSet
22
22
  });
23
- module.exports = __toCommonJS(TransportInterface_exports);
23
+ module.exports = __toCommonJS(ConnectionlessTransport_exports);
24
24
  var import_Environmental = require("#environment/Environmental.js");
25
25
  var import_Set = require("#util/Set.js");
26
26
  /**
@@ -28,13 +28,13 @@ var import_Set = require("#util/Set.js");
28
28
  * Copyright 2022-2025 Matter.js Authors
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
- class TransportInterfaceSet extends import_Set.BasicSet {
31
+ class ConnectionlessTransportSet extends import_Set.BasicSet {
32
32
  constructor(...initialInterfaces) {
33
33
  super(...initialInterfaces);
34
34
  }
35
35
  static [import_Environmental.Environmental.create](env) {
36
- const instance = new TransportInterfaceSet();
37
- env.set(TransportInterfaceSet, instance);
36
+ const instance = new ConnectionlessTransportSet();
37
+ env.set(ConnectionlessTransportSet, instance);
38
38
  return instance;
39
39
  }
40
40
  /**
@@ -44,6 +44,7 @@ class TransportInterfaceSet extends import_Set.BasicSet {
44
44
  for (const transportInterface of this) {
45
45
  await transportInterface.close();
46
46
  }
47
+ this.clear();
47
48
  }
48
49
  /**
49
50
  * Obtain an interface capable of routing an address.
@@ -58,4 +59,4 @@ class TransportInterfaceSet extends import_Set.BasicSet {
58
59
  return this.interfaceFor(type, address) !== void 0;
59
60
  }
60
61
  }
61
- //# sourceMappingURL=TransportInterface.js.map
62
+ //# sourceMappingURL=ConnectionlessTransport.js.map