@matter/general 0.16.8-alpha.0-20260123-dff2cae52 → 0.16.8-alpha.0-20260127-65e1b40e2

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 (94) hide show
  1. package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
  2. package/dist/cjs/net/ServerAddress.js +2 -1
  3. package/dist/cjs/net/ServerAddress.js.map +1 -1
  4. package/dist/cjs/net/dns-sd/DnssdName.d.ts +56 -0
  5. package/dist/cjs/net/dns-sd/DnssdName.d.ts.map +1 -0
  6. package/dist/cjs/net/dns-sd/DnssdName.js +193 -0
  7. package/dist/cjs/net/dns-sd/DnssdName.js.map +6 -0
  8. package/dist/cjs/net/dns-sd/DnssdNames.d.ts +77 -0
  9. package/dist/cjs/net/dns-sd/DnssdNames.d.ts.map +1 -0
  10. package/dist/cjs/net/dns-sd/DnssdNames.js +238 -0
  11. package/dist/cjs/net/dns-sd/DnssdNames.js.map +6 -0
  12. package/dist/cjs/net/dns-sd/DnssdSolicitor.d.ts +80 -0
  13. package/dist/cjs/net/dns-sd/DnssdSolicitor.d.ts.map +1 -0
  14. package/dist/cjs/net/dns-sd/DnssdSolicitor.js +212 -0
  15. package/dist/cjs/net/dns-sd/DnssdSolicitor.js.map +6 -0
  16. package/dist/cjs/net/dns-sd/IpService.d.ts +73 -0
  17. package/dist/cjs/net/dns-sd/IpService.d.ts.map +1 -0
  18. package/dist/cjs/net/dns-sd/IpService.js +329 -0
  19. package/dist/cjs/net/dns-sd/IpService.js.map +6 -0
  20. package/dist/cjs/net/dns-sd/IpServiceResolution.d.ts +16 -0
  21. package/dist/cjs/net/dns-sd/IpServiceResolution.d.ts.map +1 -0
  22. package/dist/cjs/net/dns-sd/IpServiceResolution.js +162 -0
  23. package/dist/cjs/net/dns-sd/IpServiceResolution.js.map +6 -0
  24. package/dist/cjs/net/dns-sd/IpServiceStatus.d.ts +58 -0
  25. package/dist/cjs/net/dns-sd/IpServiceStatus.d.ts.map +1 -0
  26. package/dist/cjs/net/dns-sd/IpServiceStatus.js +191 -0
  27. package/dist/cjs/net/dns-sd/IpServiceStatus.js.map +6 -0
  28. package/dist/cjs/net/dns-sd/index.d.ts +6 -0
  29. package/dist/cjs/net/dns-sd/index.d.ts.map +1 -1
  30. package/dist/cjs/net/dns-sd/index.js +6 -0
  31. package/dist/cjs/net/dns-sd/index.js.map +1 -1
  32. package/dist/cjs/net/udp/UdpInterface.js +1 -1
  33. package/dist/cjs/net/udp/UdpInterface.js.map +1 -1
  34. package/dist/cjs/util/AsyncIterator.d.ts +21 -0
  35. package/dist/cjs/util/AsyncIterator.d.ts.map +1 -0
  36. package/dist/cjs/util/AsyncIterator.js +71 -0
  37. package/dist/cjs/util/AsyncIterator.js.map +6 -0
  38. package/dist/cjs/util/index.d.ts +1 -0
  39. package/dist/cjs/util/index.d.ts.map +1 -1
  40. package/dist/cjs/util/index.js +1 -0
  41. package/dist/cjs/util/index.js.map +1 -1
  42. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  43. package/dist/esm/net/ServerAddress.js +2 -1
  44. package/dist/esm/net/ServerAddress.js.map +1 -1
  45. package/dist/esm/net/dns-sd/DnssdName.d.ts +56 -0
  46. package/dist/esm/net/dns-sd/DnssdName.d.ts.map +1 -0
  47. package/dist/esm/net/dns-sd/DnssdName.js +173 -0
  48. package/dist/esm/net/dns-sd/DnssdName.js.map +6 -0
  49. package/dist/esm/net/dns-sd/DnssdNames.d.ts +77 -0
  50. package/dist/esm/net/dns-sd/DnssdNames.d.ts.map +1 -0
  51. package/dist/esm/net/dns-sd/DnssdNames.js +218 -0
  52. package/dist/esm/net/dns-sd/DnssdNames.js.map +6 -0
  53. package/dist/esm/net/dns-sd/DnssdSolicitor.d.ts +80 -0
  54. package/dist/esm/net/dns-sd/DnssdSolicitor.d.ts.map +1 -0
  55. package/dist/esm/net/dns-sd/DnssdSolicitor.js +192 -0
  56. package/dist/esm/net/dns-sd/DnssdSolicitor.js.map +6 -0
  57. package/dist/esm/net/dns-sd/IpService.d.ts +73 -0
  58. package/dist/esm/net/dns-sd/IpService.d.ts.map +1 -0
  59. package/dist/esm/net/dns-sd/IpService.js +309 -0
  60. package/dist/esm/net/dns-sd/IpService.js.map +6 -0
  61. package/dist/esm/net/dns-sd/IpServiceResolution.d.ts +16 -0
  62. package/dist/esm/net/dns-sd/IpServiceResolution.d.ts.map +1 -0
  63. package/dist/esm/net/dns-sd/IpServiceResolution.js +142 -0
  64. package/dist/esm/net/dns-sd/IpServiceResolution.js.map +6 -0
  65. package/dist/esm/net/dns-sd/IpServiceStatus.d.ts +58 -0
  66. package/dist/esm/net/dns-sd/IpServiceStatus.d.ts.map +1 -0
  67. package/dist/esm/net/dns-sd/IpServiceStatus.js +171 -0
  68. package/dist/esm/net/dns-sd/IpServiceStatus.js.map +6 -0
  69. package/dist/esm/net/dns-sd/index.d.ts +6 -0
  70. package/dist/esm/net/dns-sd/index.d.ts.map +1 -1
  71. package/dist/esm/net/dns-sd/index.js +6 -0
  72. package/dist/esm/net/dns-sd/index.js.map +1 -1
  73. package/dist/esm/net/udp/UdpInterface.js +1 -1
  74. package/dist/esm/net/udp/UdpInterface.js.map +1 -1
  75. package/dist/esm/util/AsyncIterator.d.ts +21 -0
  76. package/dist/esm/util/AsyncIterator.d.ts.map +1 -0
  77. package/dist/esm/util/AsyncIterator.js +51 -0
  78. package/dist/esm/util/AsyncIterator.js.map +6 -0
  79. package/dist/esm/util/index.d.ts +1 -0
  80. package/dist/esm/util/index.d.ts.map +1 -1
  81. package/dist/esm/util/index.js +1 -0
  82. package/dist/esm/util/index.js.map +1 -1
  83. package/package.json +2 -2
  84. package/src/net/ServerAddress.ts +2 -1
  85. package/src/net/dns-sd/DnssdName.ts +252 -0
  86. package/src/net/dns-sd/DnssdNames.ts +208 -0
  87. package/src/net/dns-sd/DnssdSolicitor.ts +231 -0
  88. package/src/net/dns-sd/IpService.ts +346 -0
  89. package/src/net/dns-sd/IpServiceResolution.ts +134 -0
  90. package/src/net/dns-sd/IpServiceStatus.ts +212 -0
  91. package/src/net/dns-sd/index.ts +6 -0
  92. package/src/net/udp/UdpInterface.ts +1 -1
  93. package/src/util/AsyncIterator.ts +70 -0
  94. package/src/util/index.ts +1 -0
@@ -0,0 +1,191 @@
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 IpServiceStatus_exports = {};
20
+ __export(IpServiceStatus_exports, {
21
+ IpServiceStatus: () => IpServiceStatus
22
+ });
23
+ module.exports = __toCommonJS(IpServiceStatus_exports);
24
+ var import_Diagnostic = require("#log/Diagnostic.js");
25
+ var import_Logger = require("#log/Logger.js");
26
+ var import_MatterError = require("#MatterError.js");
27
+ var import_ServerAddress = require("#net/ServerAddress.js");
28
+ var import_Time = require("#time/Time.js");
29
+ var import_Abort = require("#util/Abort.js");
30
+ var import_Error = require("#util/Error.js");
31
+ var import_Set = require("#util/Set.js");
32
+ var import_IpServiceResolution = require("./IpServiceResolution.js");
33
+ /**
34
+ * @license
35
+ * Copyright 2022-2026 Matter.js Authors
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
38
+ const logger = import_Logger.Logger.get("IpServiceStatus");
39
+ class IpServiceStatus {
40
+ #service;
41
+ #isReachable = false;
42
+ #connecting = new import_Set.BasicSet();
43
+ #resolveAbort;
44
+ #resolving;
45
+ #connectionInitiatedAt;
46
+ #lastReceiptAt;
47
+ constructor(service) {
48
+ this.#service = service;
49
+ }
50
+ async close() {
51
+ this.#stopResolving();
52
+ if (this.#resolving) {
53
+ await this.#resolving;
54
+ }
55
+ }
56
+ /**
57
+ * Is the service actively connecting?
58
+ *
59
+ * This is true so long as a promise passed to {@link connecting} is unresolved.
60
+ */
61
+ get isConnecting() {
62
+ return this.#connecting.size > 0;
63
+ }
64
+ /**
65
+ * Is the service currently reachable?
66
+ *
67
+ * This value is writable. If you set {@link isReachable} to false and {@link isConnecting} is true, the service
68
+ * enters discovery mode and begins active solicitation so long as neither condition changes.
69
+ *
70
+ * The service sets {@link isReachable} to true automatically if:
71
+ *
72
+ * - It discovers a new (previously unknown) address, or
73
+ *
74
+ * - The input promise to {@link connecting} resolves to true
75
+ *
76
+ * The service sets {@link isReachable} to false automatically if the input promise to {@link connecting} resolves
77
+ * to false.
78
+ */
79
+ get isReachable() {
80
+ return this.#isReachable;
81
+ }
82
+ /**
83
+ * Are we actively performing MDNS discovery for the service?
84
+ */
85
+ get isResolving() {
86
+ return this.#resolving !== void 0;
87
+ }
88
+ set isReachable(isReachable) {
89
+ if (this.#isReachable === isReachable) {
90
+ return;
91
+ }
92
+ this.#isReachable = isReachable;
93
+ if (isReachable) {
94
+ this.#maybeStopResolving();
95
+ } else {
96
+ this.#maybeStartResolving();
97
+ }
98
+ }
99
+ get lastReceiptAt() {
100
+ return this.#lastReceiptAt;
101
+ }
102
+ set lastReceiptAt(time) {
103
+ this.#lastReceiptAt = time;
104
+ }
105
+ get connectionInitiatedAt() {
106
+ return this.#connectionInitiatedAt;
107
+ }
108
+ /**
109
+ * Register a new connection attempt.
110
+ *
111
+ * If {@link result} resolves as true the service is marked as reachable. If {@link result} resolves as false
112
+ * reachability is not modified.
113
+ *
114
+ * If {@link result} throws an error other than {@link AbortedError}, the service is marked as unreachable and if
115
+ * the error logged.
116
+ *
117
+ * {@link isConnecting} will be true until {@link result} resolves.
118
+ */
119
+ connecting(result) {
120
+ logger.debug(this.#service.via, "Connecting");
121
+ result.then(
122
+ (returned) => {
123
+ this.#connecting.delete(result);
124
+ if (!this.#connecting.size) {
125
+ this.#connectionInitiatedAt = void 0;
126
+ }
127
+ if (returned) {
128
+ this.isReachable = true;
129
+ logger.info(this.#service.via, "Connected");
130
+ } else {
131
+ logger.debug(this.#service.via, "Connect attempt aborted");
132
+ }
133
+ this.#maybeStopResolving();
134
+ },
135
+ (error) => {
136
+ this.#connecting.delete(result);
137
+ if (!(error instanceof import_MatterError.AbortedError)) {
138
+ return;
139
+ }
140
+ logger.error(this.#service.via, "Connection error:", (0, import_Error.asError)(error));
141
+ this.#isReachable = false;
142
+ this.#maybeStartResolving();
143
+ }
144
+ );
145
+ this.#connectionInitiatedAt = import_Time.Time.nowMs;
146
+ this.#connecting.add(result);
147
+ this.#maybeStartResolving();
148
+ }
149
+ #maybeStartResolving() {
150
+ if (this.#isReachable || !this.isConnecting || this.#resolveAbort) {
151
+ return;
152
+ }
153
+ const numAddresses = this.#service.addresses.size;
154
+ let why;
155
+ switch (numAddresses) {
156
+ case 0:
157
+ why = "need address";
158
+ break;
159
+ case 1:
160
+ why = "address is unreachable";
161
+ break;
162
+ default:
163
+ why = `${numAddresses} known addresses are unreachable`;
164
+ }
165
+ logger.info(this.#service.via, "Resolving", import_Diagnostic.Diagnostic.weak(`(${why})`));
166
+ this.#resolveAbort = new import_Abort.Abort();
167
+ this.#resolving = (0, import_IpServiceResolution.IpServiceResolution)(this.#service, this.#resolveAbort).finally(() => {
168
+ if (this.#resolveAbort?.aborted === false) {
169
+ const addresses = [...this.#service.addresses].map(import_ServerAddress.ServerAddress.urlFor);
170
+ logger.debug(this.#service.via, `Resolved as ${addresses.join(", ")}`);
171
+ }
172
+ this.#resolveAbort?.close();
173
+ this.#resolveAbort = void 0;
174
+ this.#resolving = void 0;
175
+ });
176
+ }
177
+ #maybeStopResolving() {
178
+ if (!this.#isReachable || this.isConnecting || !this.#resolveAbort) {
179
+ return;
180
+ }
181
+ this.#stopResolving();
182
+ }
183
+ #stopResolving() {
184
+ if (!this.#resolveAbort) {
185
+ return;
186
+ }
187
+ this.#resolveAbort();
188
+ logger.debug(this.#service.via, "Stopped resolving");
189
+ }
190
+ }
191
+ //# sourceMappingURL=IpServiceStatus.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/net/dns-sd/IpServiceStatus.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -3,5 +3,11 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export * from "./DnssdName.js";
7
+ export * from "./DnssdNames.js";
8
+ export * from "./DnssdSolicitor.js";
9
+ export * from "./IpService.js";
10
+ export * from "./IpServiceResolution.js";
11
+ export * from "./IpServiceStatus.js";
6
12
  export * from "./MdnsSocket.js";
7
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/net/dns-sd/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/net/dns-sd/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
@@ -15,6 +15,12 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
16
  var dns_sd_exports = {};
17
17
  module.exports = __toCommonJS(dns_sd_exports);
18
+ __reExport(dns_sd_exports, require("./DnssdName.js"), module.exports);
19
+ __reExport(dns_sd_exports, require("./DnssdNames.js"), module.exports);
20
+ __reExport(dns_sd_exports, require("./DnssdSolicitor.js"), module.exports);
21
+ __reExport(dns_sd_exports, require("./IpService.js"), module.exports);
22
+ __reExport(dns_sd_exports, require("./IpServiceResolution.js"), module.exports);
23
+ __reExport(dns_sd_exports, require("./IpServiceStatus.js"), module.exports);
18
24
  __reExport(dns_sd_exports, require("./MdnsSocket.js"), module.exports);
19
25
  /**
20
26
  * @license
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/net/dns-sd/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,4BANd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,2BANd;AAOA,2BAAc,4BAPd;AAQA,2BAAc,gCARd;AASA,2BAAc,2BATd;AAUA,2BAAc,qCAVd;AAWA,2BAAc,iCAXd;AAYA,2BAAc,4BAZd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -89,7 +89,7 @@ class UdpConnection {
89
89
  return this.#server.send(this.#peerAddress, this.#peerPort, data);
90
90
  }
91
91
  get name() {
92
- return `${this.type}://[${this.#peerAddress}]:${this.#peerPort}`;
92
+ return `${this.type}://${this.#peerAddress.includes(":") ? `[${this.#peerAddress}]` : this.#peerAddress}:${this.#peerPort}`;
93
93
  }
94
94
  get networkAddress() {
95
95
  return { type: "udp", ip: this.#peerAddress, port: this.#peerPort };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/net/udp/UdpInterface.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuD;AAEvD,qBAAsC;AARtC;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,aAAgD;AAAA,EAChD;AAAA,EAET,aAAa,OAAO,SAAkB,MAAuB,MAAe,MAAe,cAAuB;AAC9G,WAAO,IAAI;AAAA,MACP,MAAM,QAAQ,iBAAiB,EAAE,eAAe,MAAM,MAAM,cAAc,kBAAkB,KAAK,CAAC;AAAA,IACtG;AAAA,EACJ;AAAA,EAEA,YAAY,QAAoB;AAC5B,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAc,SAAS;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,MAAmB,SAAiB;AACzC,WAAO,KAAK,QAAQ,SAAS,MAAM,OAAO;AAAA,EAC9C;AAAA,EAEA,MAAM,YAAY,SAAwB;AACtC,QAAI,QAAQ,SAAS,OAAO;AACxB,YAAM,IAAI,4BAAa,4BAA4B,QAAQ,IAAI,EAAE;AAAA,IACrE;AACA,UAAM,EAAE,IAAI,KAAK,IAAI;AACrB,WAAO,QAAQ,QAAQ,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC;AAAA,EACpE;AAAA,EAEA,OAAO,UAAoG;AACvG,WAAO,KAAK,QAAQ;AAAA,MAAO,CAAC,eAAe,UAAU,UAAU,SAC3D,SAAS,IAAI,cAAc,KAAK,SAAS,UAAU,QAAQ,GAAG,IAAI;AAAA,IACtE;AAAA,EACJ;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,QAAQ;AACJ,WAAO,KAAK,QAAQ,MAAM;AAAA,EAC9B;AAAA,EAEA,cAAc,SAAiB;AAC3B,WAAO,KAAK,QAAQ,cAAc,OAAO;AAAA,EAC7C;AAAA,EAEA,eAAe,SAAiB;AAC5B,WAAO,KAAK,QAAQ,eAAe,OAAO;AAAA,EAC9C;AACJ;AAEO,MAAM,cAAiD;AAAA,EACjD,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,OAAO,2BAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,QAAoB,aAAqB,UAAkB;AACnE,SAAK,UAAU;AACf,SAAK,eAAe;AACpB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,KAAK,MAAa;AACd,WAAO,KAAK,QAAQ,KAAK,KAAK,cAAc,KAAK,WAAW,IAAI;AAAA,EACpE;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,GAAG,KAAK,IAAI,OAAO,KAAK,YAAY,KAAK,KAAK,SAAS;AAAA,EAClE;AAAA,EAEA,IAAI,iBAAmC;AACnC,WAAO,EAAE,MAAM,OAAO,IAAI,KAAK,cAAc,MAAM,KAAK,UAAU;AAAA,EACtE;AAAA,EAEA,MAAM,QAAQ;AAAA,EAEd;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuD;AAEvD,qBAAsC;AARtC;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,aAAgD;AAAA,EAChD;AAAA,EAET,aAAa,OAAO,SAAkB,MAAuB,MAAe,MAAe,cAAuB;AAC9G,WAAO,IAAI;AAAA,MACP,MAAM,QAAQ,iBAAiB,EAAE,eAAe,MAAM,MAAM,cAAc,kBAAkB,KAAK,CAAC;AAAA,IACtG;AAAA,EACJ;AAAA,EAEA,YAAY,QAAoB;AAC5B,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAc,SAAS;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,MAAmB,SAAiB;AACzC,WAAO,KAAK,QAAQ,SAAS,MAAM,OAAO;AAAA,EAC9C;AAAA,EAEA,MAAM,YAAY,SAAwB;AACtC,QAAI,QAAQ,SAAS,OAAO;AACxB,YAAM,IAAI,4BAAa,4BAA4B,QAAQ,IAAI,EAAE;AAAA,IACrE;AACA,UAAM,EAAE,IAAI,KAAK,IAAI;AACrB,WAAO,QAAQ,QAAQ,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC;AAAA,EACpE;AAAA,EAEA,OAAO,UAAoG;AACvG,WAAO,KAAK,QAAQ;AAAA,MAAO,CAAC,eAAe,UAAU,UAAU,SAC3D,SAAS,IAAI,cAAc,KAAK,SAAS,UAAU,QAAQ,GAAG,IAAI;AAAA,IACtE;AAAA,EACJ;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,QAAQ;AACJ,WAAO,KAAK,QAAQ,MAAM;AAAA,EAC9B;AAAA,EAEA,cAAc,SAAiB;AAC3B,WAAO,KAAK,QAAQ,cAAc,OAAO;AAAA,EAC7C;AAAA,EAEA,eAAe,SAAiB;AAC5B,WAAO,KAAK,QAAQ,eAAe,OAAO;AAAA,EAC9C;AACJ;AAEO,MAAM,cAAiD;AAAA,EACjD,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,OAAO,2BAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,QAAoB,aAAqB,UAAkB;AACnE,SAAK,UAAU;AACf,SAAK,eAAe;AACpB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,KAAK,MAAa;AACd,WAAO,KAAK,QAAQ,KAAK,KAAK,cAAc,KAAK,WAAW,IAAI;AAAA,EACpE;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,GAAG,KAAK,IAAI,MAAM,KAAK,aAAa,SAAS,GAAG,IAAI,IAAI,KAAK,YAAY,MAAM,KAAK,YAAY,IAAI,KAAK,SAAS;AAAA,EAC7H;AAAA,EAEA,IAAI,iBAAmC;AACnC,WAAO,EAAE,MAAM,OAAO,IAAI,KAAK,cAAc,MAAM,KAAK,UAAU;AAAA,EACtE;AAAA,EAEA,MAAM,QAAQ;AAAA,EAEd;AACJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Utilities for working with async iterators.
8
+ */
9
+ export declare namespace AsyncIterator {
10
+ /**
11
+ * Merge multiple async iterators, yielding results as they become available from any iterator.
12
+ *
13
+ * Results are yielded in the order they resolve, not the order of iterators.
14
+ * Errors from individual iterators are collected and thrown as an aggregate error after all iterators complete.
15
+ *
16
+ * @param iterators The async iterables to merge
17
+ * @param errorMessage Optional message for the aggregate error if any iterators fail
18
+ */
19
+ function merge<T>(iterators: AsyncIterable<T>[], errorMessage?: string): AsyncGenerator<T>;
20
+ }
21
+ //# sourceMappingURL=AsyncIterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncIterator.d.ts","sourceRoot":"","sources":["../../../src/util/AsyncIterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,yBAAiB,aAAa,CAAC;IAC3B;;;;;;;;OAQG;IACH,SAAuB,KAAK,CAAC,CAAC,EAC1B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAC7B,YAAY,SAAuC,GACpD,cAAc,CAAC,CAAC,CAAC,CA8CnB;CACJ"}
@@ -0,0 +1,71 @@
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 AsyncIterator_exports = {};
20
+ __export(AsyncIterator_exports, {
21
+ AsyncIterator: () => AsyncIterator
22
+ });
23
+ module.exports = __toCommonJS(AsyncIterator_exports);
24
+ /**
25
+ * @license
26
+ * Copyright 2022-2026 Matter.js Authors
27
+ * SPDX-License-Identifier: Apache-2.0
28
+ */
29
+ var AsyncIterator;
30
+ ((AsyncIterator2) => {
31
+ async function* merge(iterators, errorMessage = "One or more async iterators failed") {
32
+ const asyncIterators = iterators.map((iter) => iter[Symbol.asyncIterator]());
33
+ const pending = /* @__PURE__ */ new Map();
34
+ const errors = [];
35
+ for (let i = 0; i < asyncIterators.length; i++) {
36
+ pending.set(
37
+ i,
38
+ asyncIterators[i].next().then(
39
+ (result) => ({ index: i, result }),
40
+ (error) => {
41
+ errors.push(error);
42
+ return { index: i, result: { done: true, value: void 0 } };
43
+ }
44
+ )
45
+ );
46
+ }
47
+ while (pending.size > 0) {
48
+ const { index, result } = await Promise.race(pending.values());
49
+ if (result.done) {
50
+ pending.delete(index);
51
+ } else {
52
+ yield result.value;
53
+ pending.set(
54
+ index,
55
+ asyncIterators[index].next().then(
56
+ (result2) => ({ index, result: result2 }),
57
+ (error) => {
58
+ errors.push(error);
59
+ return { index, result: { done: true, value: void 0 } };
60
+ }
61
+ )
62
+ );
63
+ }
64
+ }
65
+ if (errors.length > 0) {
66
+ throw new AggregateError(errors, errorMessage);
67
+ }
68
+ }
69
+ AsyncIterator2.merge = merge;
70
+ })(AsyncIterator || (AsyncIterator = {}));
71
+ //# sourceMappingURL=AsyncIterator.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/AsyncIterator.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAU;AAAA,CAAV,CAAUA,mBAAV;AAUH,kBAAuB,MACnB,WACA,eAAe,sCACE;AACjB,UAAM,iBAAiB,UAAU,IAAI,UAAQ,KAAK,OAAO,aAAa,EAAE,CAAC;AACzE,UAAM,UAAU,oBAAI,IAAmE;AACvF,UAAM,SAAkB,CAAC;AAGzB,aAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC5C,cAAQ;AAAA,QACJ;AAAA,QACA,eAAe,CAAC,EAAE,KAAK,EAAE;AAAA,UACrB,aAAW,EAAE,OAAO,GAAG,OAAO;AAAA,UAC9B,WAAS;AAEL,mBAAO,KAAK,KAAK;AACjB,mBAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,MAAM,OAAO,OAAU,EAAuB;AAAA,UACrF;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,QAAQ,OAAO,GAAG;AAErB,YAAM,EAAE,OAAO,OAAO,IAAI,MAAM,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAE7D,UAAI,OAAO,MAAM;AACb,gBAAQ,OAAO,KAAK;AAAA,MACxB,OAAO;AACH,cAAM,OAAO;AAEb,gBAAQ;AAAA,UACJ;AAAA,UACA,eAAe,KAAK,EAAE,KAAK,EAAE;AAAA,YACzB,CAAAC,aAAW,EAAE,OAAO,QAAAA,QAAO;AAAA,YAC3B,WAAS;AACL,qBAAO,KAAK,KAAK;AACjB,qBAAO,EAAE,OAAO,QAAQ,EAAE,MAAM,MAAM,OAAO,OAAU,EAAuB;AAAA,YAClF;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,OAAO,SAAS,GAAG;AACnB,YAAM,IAAI,eAAe,QAAQ,YAAY;AAAA,IACjD;AAAA,EACJ;AAjDA,EAAAD,eAAuB;AAAA,GAVV;",
5
+ "names": ["AsyncIterator", "result"]
6
+ }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./Abort.js";
7
7
  export * from "./Array.js";
8
+ export * from "./AsyncIterator.js";
8
9
  export * from "./Boot.js";
9
10
  export * from "./Bytes.js";
10
11
  export * from "./Cache.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -17,6 +17,7 @@ var util_exports = {};
17
17
  module.exports = __toCommonJS(util_exports);
18
18
  __reExport(util_exports, require("./Abort.js"), module.exports);
19
19
  __reExport(util_exports, require("./Array.js"), module.exports);
20
+ __reExport(util_exports, require("./AsyncIterator.js"), module.exports);
20
21
  __reExport(util_exports, require("./Boot.js"), module.exports);
21
22
  __reExport(util_exports, require("./Bytes.js"), module.exports);
22
23
  __reExport(util_exports, require("./Cache.js"), module.exports);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,uBANd;AAOA,yBAAc,uBAPd;AAQA,yBAAc,sBARd;AASA,yBAAc,uBATd;AAUA,yBAAc,uBAVd;AAWA,yBAAc,4BAXd;AAYA,yBAAc,8BAZd;AAaA,yBAAc,4BAbd;AAcA,yBAAc,+BAdd;AAeA,yBAAc,4BAfd;AAgBA,yBAAc,2BAhBd;AAiBA,yBAAc,0BAjBd;AAkBA,yBAAc,2BAlBd;AAmBA,yBAAc,yBAnBd;AAoBA,yBAAc,uBApBd;AAqBA,yBAAc,+BArBd;AAsBA,yBAAc,0BAtBd;AAuBA,yBAAc,gCAvBd;AAwBA,yBAAc,wBAxBd;AAyBA,yBAAc,sBAzBd;AA0BA,yBAAc,iCA1Bd;AA2BA,yBAAc,oBA3Bd;AA4BA,yBAAc,2BA5Bd;AA6BA,yBAAc,0BA7Bd;AA8BA,yBAAc,qBA9Bd;AA+BA,yBAAc,2BA/Bd;AAgCA,yBAAc,2BAhCd;AAiCA,yBAAc,uBAjCd;AAkCA,yBAAc,8BAlCd;AAmCA,yBAAc,wBAnCd;AAoCA,yBAAc,4BApCd;AAqCA,yBAAc,0BArCd;AAsCA,yBAAc,2BAtCd;AAuCA,yBAAc,2BAvCd;AAwCA,yBAAc,2BAxCd;AAyCA,yBAAc,qBAzCd;AA0CA,yBAAc,2BA1Cd;AA2CA,yBAAc,yBA3Cd;AA4CA,yBAAc,wBA5Cd;AA6CA,yBAAc,sBA7Cd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,uBANd;AAOA,yBAAc,uBAPd;AAQA,yBAAc,+BARd;AASA,yBAAc,sBATd;AAUA,yBAAc,uBAVd;AAWA,yBAAc,uBAXd;AAYA,yBAAc,4BAZd;AAaA,yBAAc,8BAbd;AAcA,yBAAc,4BAdd;AAeA,yBAAc,+BAfd;AAgBA,yBAAc,4BAhBd;AAiBA,yBAAc,2BAjBd;AAkBA,yBAAc,0BAlBd;AAmBA,yBAAc,2BAnBd;AAoBA,yBAAc,yBApBd;AAqBA,yBAAc,uBArBd;AAsBA,yBAAc,+BAtBd;AAuBA,yBAAc,0BAvBd;AAwBA,yBAAc,gCAxBd;AAyBA,yBAAc,wBAzBd;AA0BA,yBAAc,sBA1Bd;AA2BA,yBAAc,iCA3Bd;AA4BA,yBAAc,oBA5Bd;AA6BA,yBAAc,2BA7Bd;AA8BA,yBAAc,0BA9Bd;AA+BA,yBAAc,qBA/Bd;AAgCA,yBAAc,2BAhCd;AAiCA,yBAAc,2BAjCd;AAkCA,yBAAc,uBAlCd;AAmCA,yBAAc,8BAnCd;AAoCA,yBAAc,wBApCd;AAqCA,yBAAc,4BArCd;AAsCA,yBAAc,0BAtCd;AAuCA,yBAAc,2BAvCd;AAwCA,yBAAc,2BAxCd;AAyCA,yBAAc,2BAzCd;AA0CA,yBAAc,qBA1Cd;AA2CA,yBAAc,2BA3Cd;AA4CA,yBAAc,yBA5Cd;AA6CA,yBAAc,wBA7Cd;AA8CA,yBAAc,sBA9Cd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC3D;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC7B,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEnF,wBAAgB,aAAa,CAAC,UAAU,EAAE,aAAa,GAS9C,aAAa,CACrB;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAYrD;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,cAuBnD;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAcnE;IAED;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAY7D;IAED;;;;OAIG;IACH,KAAY,mBAAmB;QAC3B,QAAQ,IAAA;QACR,eAAe,IAAA;QACf,IAAI,IAAA;QACJ,IAAI,IAAA;QACJ,MAAM,IAAI;KACb;IAED,SAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,uBAkB3D;CACJ"}
1
+ {"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC3D;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC7B,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEnF,wBAAgB,aAAa,CAAC,UAAU,EAAE,aAAa,GAS9C,aAAa,CACrB;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAarD;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,cAuBnD;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAcnE;IAED;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAY7D;IAED;;;;OAIG;IACH,KAAY,mBAAmB;QAC3B,QAAQ,IAAA;QACR,eAAe,IAAA;QACf,IAAI,IAAA;QACJ,IAAI,IAAA;QACJ,MAAM,IAAI;KACb;IAED,SAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,uBAkB3D;CACJ"}
@@ -21,7 +21,8 @@ function ServerAddress(definition) {
21
21
  switch (address.type) {
22
22
  case "udp":
23
23
  case "tcp":
24
- return `${address.type}://${address.ip}:${address.port}`;
24
+ const ip = address.ip;
25
+ return `${address.type}://${ip.includes(":") ? `[${ip}]` : ip}:${address.port}`;
25
26
  case "ble":
26
27
  return `ble://${address.peripheralAddress}`;
27
28
  default:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/net/ServerAddress.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAwDlB,SAAS,cAAc,YAA2B;AACrD,SAAO;AAAA,IACH,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,GAAG;AAAA,EACP;AACJ;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAgC;AACnD,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,eAAO,GAAG,QAAQ,IAAI,MAAM,QAAQ,EAAE,IAAI,QAAQ,IAAI;AAAA,MAE1D,KAAK;AACD,eAAO,SAAS,QAAQ,iBAAiB;AAAA,MAE7C;AACI,eAAO,GAAI,QAAgB,IAAI;AAAA,IACvC;AAAA,EACJ;AAZO,EAAAA,eAAS;AAcT,WAAS,cAAc,SAAwB;AAClD,UAAM,aAAa,MAAe;AAElC,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,mBAAW,KAAK,GAAG,QAAQ,IAAI,OAAO,WAAW,OAAO,QAAQ,EAAE,GAAG,KAAK,QAAQ,IAAI;AACtF;AAAA,MAEJ,KAAK;AACD,mBAAW,KAAK,UAAU,WAAW,OAAO,QAAQ,iBAAiB,CAAC;AACtE;AAAA,MAEJ;AACI,mBAAW,KAAK,GAAI,QAAgB,IAAI,KAAK;AAC7C;AAAA,IACR;AAEA,QAAI,SAAS,WAAW,OAAO,QAAQ,QAAQ,UAAU;AACrD,iBAAW,KAAK,SAAS,SAAS,OAAO,QAAQ,GAAG,CAAC;AAAA,IACzD;AAEA,WAAO,WAAW,OAAO,GAAG,UAAU;AAAA,EAC1C;AAvBO,EAAAA,eAAS;AAyBT,WAAS,QAAQ,GAAkB,GAA2B;AACjE,QAAI,EAAE,SAAS,EAAE,MAAM;AACnB,aAAO;AAAA,IACX;AAEA,QAAI,EAAE,SAAS,SAAS,EAAE,SAAS,OAAO;AACtC,aAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;AAAA,IACzC;AAEA,QAAI,EAAE,SAAS,SAAS,EAAE,SAAS,OAAO;AACtC,aAAO,EAAE,sBAAsB,EAAE;AAAA,IACrC;AAEA,WAAO;AAAA,EACX;AAdO,EAAAA,eAAS;AAsBT,WAAS,SAAS,QAAsC;AAC3D,QAAI,OAAO,gBAAgB,QAAW;AAClC,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,cAAc,UAAa,OAAO,YAAY,OAAO,aAAa;AACzE,aAAO;AAAA,QACH,WAAW,OAAO;AAAA,MACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAZO,EAAAA,eAAS;AAmBT,MAAK;AAAL,IAAKC,yBAAL;AACH,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA,YAAS,KAAT;AAAA,KALQ,sBAAAD,eAAA,wBAAAA,eAAA;AAQL,WAAS,sBAAsB,SAAwB;AAC1D,QAAI,EAAE,QAAQ,UAAU;AACpB,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,WAAW,IAAI,GAAG;AAC7B,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,WAAW,MAAM,GAAG;AAC/B,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,SAAS,GAAG,GAAG;AAC1B,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAlBO,EAAAA,eAAS;AAAA,GAzFH;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAwDlB,SAAS,cAAc,YAA2B;AACrD,SAAO;AAAA,IACH,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,GAAG;AAAA,EACP;AACJ;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAgC;AACnD,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,cAAM,KAAK,QAAQ;AACnB,eAAO,GAAG,QAAQ,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,QAAQ,IAAI;AAAA,MAEjF,KAAK;AACD,eAAO,SAAS,QAAQ,iBAAiB;AAAA,MAE7C;AACI,eAAO,GAAI,QAAgB,IAAI;AAAA,IACvC;AAAA,EACJ;AAbO,EAAAA,eAAS;AAeT,WAAS,cAAc,SAAwB;AAClD,UAAM,aAAa,MAAe;AAElC,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,mBAAW,KAAK,GAAG,QAAQ,IAAI,OAAO,WAAW,OAAO,QAAQ,EAAE,GAAG,KAAK,QAAQ,IAAI;AACtF;AAAA,MAEJ,KAAK;AACD,mBAAW,KAAK,UAAU,WAAW,OAAO,QAAQ,iBAAiB,CAAC;AACtE;AAAA,MAEJ;AACI,mBAAW,KAAK,GAAI,QAAgB,IAAI,KAAK;AAC7C;AAAA,IACR;AAEA,QAAI,SAAS,WAAW,OAAO,QAAQ,QAAQ,UAAU;AACrD,iBAAW,KAAK,SAAS,SAAS,OAAO,QAAQ,GAAG,CAAC;AAAA,IACzD;AAEA,WAAO,WAAW,OAAO,GAAG,UAAU;AAAA,EAC1C;AAvBO,EAAAA,eAAS;AAyBT,WAAS,QAAQ,GAAkB,GAA2B;AACjE,QAAI,EAAE,SAAS,EAAE,MAAM;AACnB,aAAO;AAAA,IACX;AAEA,QAAI,EAAE,SAAS,SAAS,EAAE,SAAS,OAAO;AACtC,aAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;AAAA,IACzC;AAEA,QAAI,EAAE,SAAS,SAAS,EAAE,SAAS,OAAO;AACtC,aAAO,EAAE,sBAAsB,EAAE;AAAA,IACrC;AAEA,WAAO;AAAA,EACX;AAdO,EAAAA,eAAS;AAsBT,WAAS,SAAS,QAAsC;AAC3D,QAAI,OAAO,gBAAgB,QAAW;AAClC,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,cAAc,UAAa,OAAO,YAAY,OAAO,aAAa;AACzE,aAAO;AAAA,QACH,WAAW,OAAO;AAAA,MACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAZO,EAAAA,eAAS;AAmBT,MAAK;AAAL,IAAKC,yBAAL;AACH,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA;AACA,IAAAA,0CAAA,YAAS,KAAT;AAAA,KALQ,sBAAAD,eAAA,wBAAAA,eAAA;AAQL,WAAS,sBAAsB,SAAwB;AAC1D,QAAI,EAAE,QAAQ,UAAU;AACpB,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,WAAW,IAAI,GAAG;AAC7B,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,WAAW,MAAM,GAAG;AAC/B,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ,GAAG,SAAS,GAAG,GAAG;AAC1B,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAlBO,EAAAA,eAAS;AAAA,GA1FH;",
5
5
  "names": ["ServerAddress", "SelectionPreference"]
6
6
  }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DnsRecord, DnsRecordType, SrvRecordValue } from "#codec/DnsCodec.js";
7
+ import type { Timestamp } from "#time/Timestamp.js";
8
+ import { AsyncObserver, BasicObservable } from "#util/Observable.js";
9
+ import { MaybePromise } from "#util/Promises.js";
10
+ /**
11
+ * Manages records associated with a single DNS-SD qname.
12
+ *
13
+ * Every DNS-SD qname of interest has a 1:1 relationship with a single instance of this class in the context of a
14
+ * {@link DnssdNames}. We therefore can use the qname or {@link DnssdName} interchangeably.
15
+ *
16
+ * An {@link DnssdName} is created when a new name is discovered or requested by another component. The name
17
+ * automatically deletes when there are no longer observers or unexpired records.
18
+ */
19
+ export declare class DnssdName extends BasicObservable<[changes: DnssdName.Changes], MaybePromise> {
20
+ #private;
21
+ readonly qname: string;
22
+ constructor(qname: string, context: DnssdName.Context);
23
+ off(observer: AsyncObserver<[]>): void;
24
+ close(): Promise<void>;
25
+ get records(): MapIterator<DnssdName.Record>;
26
+ get parameters(): Map<string, string>;
27
+ get isDiscovered(): boolean;
28
+ installRecord(record: DnsRecord<any>): false | undefined;
29
+ deleteRecord(record: DnsRecord, ifOlderThan?: Timestamp): void;
30
+ }
31
+ export declare namespace DnssdName {
32
+ interface Context {
33
+ delete(name: DnssdName): void;
34
+ registerForExpiration(record: Record): void;
35
+ unregisterForExpiration(record: Record): void;
36
+ }
37
+ interface Expiration {
38
+ expiresAt: Timestamp;
39
+ }
40
+ interface PointerRecord extends DnsRecord<string>, Expiration {
41
+ recordType: DnsRecordType.PTR;
42
+ }
43
+ interface HostRecord extends DnsRecord<string>, Expiration {
44
+ recordType: DnsRecordType.A | DnsRecordType.AAAA;
45
+ }
46
+ interface ServiceRecord extends DnsRecord<SrvRecordValue>, Expiration {
47
+ recordType: DnsRecordType.SRV;
48
+ }
49
+ type Record = PointerRecord | ServiceRecord | HostRecord;
50
+ interface Changes {
51
+ name: DnssdName;
52
+ updated?: Record[];
53
+ deleted?: Record[];
54
+ }
55
+ }
56
+ //# sourceMappingURL=DnssdName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnssdName.d.ts","sourceRoot":"","sources":["../../../../src/net/dns-sd/DnssdName.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD;;;;;;;;GAQG;AACH,qBAAa,SAAU,SAAQ,eAAe,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;;IAUlF,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM,EACtB,OAAO,EAAE,SAAS,CAAC,OAAO;IAMrB,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;IAKlC,KAAK;IASX,IAAI,OAAO,kCAEV;IAED,IAAI,UAAU,wBAKb;IAED,IAAI,YAAY,YAEf;IAED,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;IAoCpC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS;CA6F1D;AAqBD,yBAAiB,SAAS,CAAC;IACvB,UAAiB,OAAO;QACpB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;QAC9B,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACjD;IAED,UAAiB,UAAU;QACvB,SAAS,EAAE,SAAS,CAAC;KACxB;IAED,UAAiB,aAAc,SAAQ,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU;QAChE,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;KACjC;IAED,UAAiB,UAAW,SAAQ,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU;QAC7D,UAAU,EAAE,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;KACpD;IAED,UAAiB,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC,EAAE,UAAU;QACxE,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;KACjC;IAED,KAAY,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;IAEhE,UAAiB,OAAO;QACpB,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB;CACJ"}