@types/node 16.4.1 → 16.4.5

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.
@@ -1,38 +1,111 @@
1
1
  /**
2
+ * The `diagnostics_channel` module provides an API to create named channels
3
+ * to report arbitrary message data for diagnostics purposes.
4
+ *
5
+ * It can be accessed using:
6
+ *
7
+ * ```js
8
+ * const diagnostics_channel = require('diagnostics_channel');
9
+ * ```
10
+ *
11
+ * It is intended that a module writer wanting to report diagnostics messages
12
+ * will create one or many top-level channels to report messages through.
13
+ * Channels may also be acquired at runtime but it is not encouraged
14
+ * due to the additional overhead of doing so. Channels may be exported for
15
+ * convenience, but as long as the name is known it can be acquired anywhere.
16
+ *
17
+ * If you intend for your module to produce diagnostics data for others to
18
+ * consume it is recommended that you include documentation of what named
19
+ * channels are used along with the shape of the message data. Channel names
20
+ * should generally include the module name to avoid collisions with data from
21
+ * other modules.
2
22
  * @experimental
23
+ * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/diagnostics_channel.js)
3
24
  */
4
25
  declare module 'diagnostics_channel' {
5
26
  /**
6
- * Returns wether a named channel has subscribers or not.
27
+ * Check if there are active subscribers to the named channel. This is helpful if
28
+ * the message you want to send might be expensive to prepare.
29
+ *
30
+ * This API is optional but helpful when trying to publish messages from very
31
+ * performance-sensitive code.
32
+ *
33
+ * ```js
34
+ * const diagnostics_channel = require('diagnostics_channel');
35
+ *
36
+ * if (diagnostics_channel.hasSubscribers('my-channel')) {
37
+ * // There are subscribers, prepare and publish message
38
+ * }
39
+ * ```
40
+ * @param name The channel name
41
+ * @return If there are active subscribers
7
42
  */
8
43
  function hasSubscribers(name: string): boolean;
9
-
10
44
  /**
11
- * Gets or create a diagnostic channel by name.
45
+ * This is the primary entry-point for anyone wanting to interact with a named
46
+ * channel. It produces a channel object which is optimized to reduce overhead at
47
+ * publish time as much as possible.
48
+ *
49
+ * ```js
50
+ * const diagnostics_channel = require('diagnostics_channel');
51
+ *
52
+ * const channel = diagnostics_channel.channel('my-channel');
53
+ * ```
54
+ * @param name The channel name
55
+ * @return The named channel object
12
56
  */
13
57
  function channel(name: string): Channel;
14
-
15
58
  type ChannelListener = (name: string, message: unknown) => void;
16
-
17
59
  /**
18
- * Simple diagnostic channel that allows
60
+ * The class `Channel` represents an individual named channel within the data
61
+ * pipeline. It is use to track subscribers and to publish messages when there
62
+ * are subscribers present. It exists as a separate object to avoid channel
63
+ * lookups at publish time, enabling very fast publish speeds and allowing
64
+ * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly
65
+ * with `new Channel(name)` is not supported.
19
66
  */
20
67
  class Channel {
21
68
  readonly name: string;
22
69
  readonly hashSubscribers: boolean;
23
70
  private constructor(name: string);
24
-
25
71
  /**
26
- * Add a listener to the message channel.
72
+ * Register a message handler to subscribe to this channel. This message handler
73
+ * will be run synchronously whenever a message is published to the channel. Any
74
+ * errors thrown in the message handler will trigger an `'uncaughtException'`.
75
+ *
76
+ * ```js
77
+ * const diagnostics_channel = require('diagnostics_channel');
78
+ *
79
+ * const channel = diagnostics_channel.channel('my-channel');
80
+ *
81
+ * channel.subscribe((message, name) => {
82
+ * // Received data
83
+ * });
84
+ * ```
85
+ * @param onMessage The handler to receive channel messages
27
86
  */
28
- subscribe(listener: ChannelListener): void;
87
+ subscribe(onMessage: ChannelListener): void;
29
88
  /**
30
- * Removes a previously registered listener.
89
+ * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`.
90
+ *
91
+ * ```js
92
+ * const diagnostics_channel = require('diagnostics_channel');
93
+ *
94
+ * const channel = diagnostics_channel.channel('my-channel');
95
+ *
96
+ * function onMessage(message, name) {
97
+ * // Received data
98
+ * }
99
+ *
100
+ * channel.subscribe(onMessage);
101
+ *
102
+ * channel.unsubscribe(onMessage);
103
+ * ```
104
+ * @param onMessage The previous subscribed handler to remove
31
105
  */
32
- unsubscribe(listener: ChannelListener): void;
106
+ unsubscribe(onMessage: ChannelListener): void;
33
107
  }
34
108
  }
35
-
36
109
  declare module 'node:diagnostics_channel' {
37
110
  export * from 'diagnostics_channel';
38
111
  }
node/dns/promises.d.ts CHANGED
@@ -1,4 +1,10 @@
1
- declare module "dns/promises" {
1
+ /**
2
+ * The `dns.promises` API provides an alternative set of asynchronous DNS methods
3
+ * that return `Promise` objects rather than using callbacks. The API is accessible
4
+ * via `require('dns').promises` or `require('dns/promises')`.
5
+ * @since v10.6.0
6
+ */
7
+ declare module 'dns/promises' {
2
8
  import {
3
9
  LookupAddress,
4
10
  LookupOneOptions,
@@ -14,68 +20,319 @@ declare module "dns/promises" {
14
20
  RecordWithTtl,
15
21
  ResolveOptions,
16
22
  ResolverOptions,
17
- } from "node:dns";
18
-
23
+ } from 'node:dns';
24
+ /**
25
+ * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6),
26
+ * that are currently configured for DNS resolution. A string will include a port
27
+ * section if a custom port is used.
28
+ *
29
+ * ```js
30
+ * [
31
+ * '4.4.4.4',
32
+ * '2001:4860:4860::8888',
33
+ * '4.4.4.4:1053',
34
+ * '[2001:4860:4860::8888]:1053',
35
+ * ]
36
+ * ```
37
+ * @since v10.6.0
38
+ */
19
39
  function getServers(): string[];
20
-
40
+ /**
41
+ * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or
42
+ * AAAA (IPv6) record. All `option` properties are optional. If `options` is an
43
+ * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4
44
+ * and IPv6 addresses are both returned if found.
45
+ *
46
+ * With the `all` option set to `true`, the `Promise` is resolved with `addresses`being an array of objects with the properties `address` and `family`.
47
+ *
48
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code.
49
+ * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when
50
+ * the host name does not exist but also when the lookup fails in other ways
51
+ * such as no available file descriptors.
52
+ *
53
+ * `dnsPromises.lookup()` does not necessarily have anything to do with the DNS
54
+ * protocol. The implementation uses an operating system facility that can
55
+ * associate names with addresses, and vice versa. This implementation can have
56
+ * subtle but important consequences on the behavior of any Node.js program. Please
57
+ * take some time to consult the `Implementation considerations section` before
58
+ * using `dnsPromises.lookup()`.
59
+ *
60
+ * Example usage:
61
+ *
62
+ * ```js
63
+ * const dns = require('dns');
64
+ * const dnsPromises = dns.promises;
65
+ * const options = {
66
+ * family: 6,
67
+ * hints: dns.ADDRCONFIG | dns.V4MAPPED,
68
+ * };
69
+ *
70
+ * dnsPromises.lookup('example.com', options).then((result) => {
71
+ * console.log('address: %j family: IPv%s', result.address, result.family);
72
+ * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6
73
+ * });
74
+ *
75
+ * // When options.all is true, the result will be an Array.
76
+ * options.all = true;
77
+ * dnsPromises.lookup('example.com', options).then((result) => {
78
+ * console.log('addresses: %j', result);
79
+ * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
80
+ * });
81
+ * ```
82
+ * @since v10.6.0
83
+ */
21
84
  function lookup(hostname: string, family: number): Promise<LookupAddress>;
22
85
  function lookup(hostname: string, options: LookupOneOptions): Promise<LookupAddress>;
23
86
  function lookup(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;
24
87
  function lookup(hostname: string, options: LookupOptions): Promise<LookupAddress | LookupAddress[]>;
25
88
  function lookup(hostname: string): Promise<LookupAddress>;
26
-
27
- function lookupService(address: string, port: number): Promise<{ hostname: string, service: string }>;
28
-
89
+ /**
90
+ * Resolves the given `address` and `port` into a host name and service using
91
+ * the operating system's underlying `getnameinfo` implementation.
92
+ *
93
+ * If `address` is not a valid IP address, a `TypeError` will be thrown.
94
+ * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown.
95
+ *
96
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code.
97
+ *
98
+ * ```js
99
+ * const dnsPromises = require('dns').promises;
100
+ * dnsPromises.lookupService('127.0.0.1', 22).then((result) => {
101
+ * console.log(result.hostname, result.service);
102
+ * // Prints: localhost ssh
103
+ * });
104
+ * ```
105
+ * @since v10.6.0
106
+ */
107
+ function lookupService(
108
+ address: string,
109
+ port: number
110
+ ): Promise<{
111
+ hostname: string;
112
+ service: string;
113
+ }>;
114
+ /**
115
+ * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array
116
+ * of the resource records. When successful, the `Promise` is resolved with an
117
+ * array of resource records. The type and structure of individual results vary
118
+ * based on `rrtype`:
119
+ *
120
+ * <omitted>
121
+ *
122
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.
123
+ * @since v10.6.0
124
+ * @param hostname Host name to resolve.
125
+ * @param rrtype Resource record type.
126
+ */
29
127
  function resolve(hostname: string): Promise<string[]>;
30
- function resolve(hostname: string, rrtype: "A"): Promise<string[]>;
31
- function resolve(hostname: string, rrtype: "AAAA"): Promise<string[]>;
32
- function resolve(hostname: string, rrtype: "ANY"): Promise<AnyRecord[]>;
33
- function resolve(hostname: string, rrtype: "CAA"): Promise<CaaRecord[]>;
34
- function resolve(hostname: string, rrtype: "CNAME"): Promise<string[]>;
35
- function resolve(hostname: string, rrtype: "MX"): Promise<MxRecord[]>;
36
- function resolve(hostname: string, rrtype: "NAPTR"): Promise<NaptrRecord[]>;
37
- function resolve(hostname: string, rrtype: "NS"): Promise<string[]>;
38
- function resolve(hostname: string, rrtype: "PTR"): Promise<string[]>;
39
- function resolve(hostname: string, rrtype: "SOA"): Promise<SoaRecord>;
40
- function resolve(hostname: string, rrtype: "SRV"): Promise<SrvRecord[]>;
41
- function resolve(hostname: string, rrtype: "TXT"): Promise<string[][]>;
128
+ function resolve(hostname: string, rrtype: 'A'): Promise<string[]>;
129
+ function resolve(hostname: string, rrtype: 'AAAA'): Promise<string[]>;
130
+ function resolve(hostname: string, rrtype: 'ANY'): Promise<AnyRecord[]>;
131
+ function resolve(hostname: string, rrtype: 'CAA'): Promise<CaaRecord[]>;
132
+ function resolve(hostname: string, rrtype: 'CNAME'): Promise<string[]>;
133
+ function resolve(hostname: string, rrtype: 'MX'): Promise<MxRecord[]>;
134
+ function resolve(hostname: string, rrtype: 'NAPTR'): Promise<NaptrRecord[]>;
135
+ function resolve(hostname: string, rrtype: 'NS'): Promise<string[]>;
136
+ function resolve(hostname: string, rrtype: 'PTR'): Promise<string[]>;
137
+ function resolve(hostname: string, rrtype: 'SOA'): Promise<SoaRecord>;
138
+ function resolve(hostname: string, rrtype: 'SRV'): Promise<SrvRecord[]>;
139
+ function resolve(hostname: string, rrtype: 'TXT'): Promise<string[][]>;
42
140
  function resolve(hostname: string, rrtype: string): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;
43
-
141
+ /**
142
+ * Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv4
143
+ * addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`).
144
+ * @since v10.6.0
145
+ * @param hostname Host name to resolve.
146
+ */
44
147
  function resolve4(hostname: string): Promise<string[]>;
45
148
  function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
46
149
  function resolve4(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
47
-
150
+ /**
151
+ * Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv6
152
+ * addresses.
153
+ * @since v10.6.0
154
+ * @param hostname Host name to resolve.
155
+ */
48
156
  function resolve6(hostname: string): Promise<string[]>;
49
157
  function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
50
158
  function resolve6(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
51
-
159
+ /**
160
+ * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).
161
+ * On success, the `Promise` is resolved with an array containing various types of
162
+ * records. Each object has a property `type` that indicates the type of the
163
+ * current record. And depending on the `type`, additional properties will be
164
+ * present on the object:
165
+ *
166
+ * <omitted>
167
+ *
168
+ * Here is an example of the result object:
169
+ *
170
+ * ```js
171
+ * [ { type: 'A', address: '127.0.0.1', ttl: 299 },
172
+ * { type: 'CNAME', value: 'example.com' },
173
+ * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },
174
+ * { type: 'NS', value: 'ns1.example.com' },
175
+ * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },
176
+ * { type: 'SOA',
177
+ * nsname: 'ns1.example.com',
178
+ * hostmaster: 'admin.example.com',
179
+ * serial: 156696742,
180
+ * refresh: 900,
181
+ * retry: 900,
182
+ * expire: 1800,
183
+ * minttl: 60 } ]
184
+ * ```
185
+ * @since v10.6.0
186
+ */
52
187
  function resolveAny(hostname: string): Promise<AnyRecord[]>;
53
-
188
+ /**
189
+ * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success,
190
+ * the `Promise` is resolved with an array of objects containing available
191
+ * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`).
192
+ * @since v15.0.0
193
+ */
54
194
  function resolveCaa(hostname: string): Promise<CaaRecord[]>;
55
-
195
+ /**
196
+ * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success,
197
+ * the `Promise` is resolved with an array of canonical name records available for
198
+ * the `hostname` (e.g. `['bar.example.com']`).
199
+ * @since v10.6.0
200
+ */
56
201
  function resolveCname(hostname: string): Promise<string[]>;
57
-
202
+ /**
203
+ * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects
204
+ * containing both a `priority` and `exchange` property (e.g.`[{priority: 10, exchange: 'mx.example.com'}, ...]`).
205
+ * @since v10.6.0
206
+ */
58
207
  function resolveMx(hostname: string): Promise<MxRecord[]>;
59
-
208
+ /**
209
+ * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. On success, the `Promise` is resolved with an array
210
+ * of objects with the following properties:
211
+ *
212
+ * * `flags`
213
+ * * `service`
214
+ * * `regexp`
215
+ * * `replacement`
216
+ * * `order`
217
+ * * `preference`
218
+ *
219
+ * ```js
220
+ * {
221
+ * flags: 's',
222
+ * service: 'SIP+D2U',
223
+ * regexp: '',
224
+ * replacement: '_sip._udp.example.com',
225
+ * order: 30,
226
+ * preference: 100
227
+ * }
228
+ * ```
229
+ * @since v10.6.0
230
+ */
60
231
  function resolveNaptr(hostname: string): Promise<NaptrRecord[]>;
61
-
232
+ /**
233
+ * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. On success, the `Promise` is resolved with an array of name server
234
+ * records available for `hostname` (e.g.`['ns1.example.com', 'ns2.example.com']`).
235
+ * @since v10.6.0
236
+ */
62
237
  function resolveNs(hostname: string): Promise<string[]>;
63
-
238
+ /**
239
+ * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. On success, the `Promise` is resolved with an array of strings
240
+ * containing the reply records.
241
+ * @since v10.6.0
242
+ */
64
243
  function resolvePtr(hostname: string): Promise<string[]>;
65
-
244
+ /**
245
+ * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for
246
+ * the `hostname`. On success, the `Promise` is resolved with an object with the
247
+ * following properties:
248
+ *
249
+ * * `nsname`
250
+ * * `hostmaster`
251
+ * * `serial`
252
+ * * `refresh`
253
+ * * `retry`
254
+ * * `expire`
255
+ * * `minttl`
256
+ *
257
+ * ```js
258
+ * {
259
+ * nsname: 'ns.example.com',
260
+ * hostmaster: 'root.example.com',
261
+ * serial: 2013101809,
262
+ * refresh: 10000,
263
+ * retry: 2400,
264
+ * expire: 604800,
265
+ * minttl: 3600
266
+ * }
267
+ * ```
268
+ * @since v10.6.0
269
+ */
66
270
  function resolveSoa(hostname: string): Promise<SoaRecord>;
67
-
271
+ /**
272
+ * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects with
273
+ * the following properties:
274
+ *
275
+ * * `priority`
276
+ * * `weight`
277
+ * * `port`
278
+ * * `name`
279
+ *
280
+ * ```js
281
+ * {
282
+ * priority: 10,
283
+ * weight: 5,
284
+ * port: 21223,
285
+ * name: 'service.example.com'
286
+ * }
287
+ * ```
288
+ * @since v10.6.0
289
+ */
68
290
  function resolveSrv(hostname: string): Promise<SrvRecord[]>;
69
-
291
+ /**
292
+ * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. On success, the `Promise` is resolved with a two-dimensional array
293
+ * of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of
294
+ * one record. Depending on the use case, these could be either joined together or
295
+ * treated separately.
296
+ * @since v10.6.0
297
+ */
70
298
  function resolveTxt(hostname: string): Promise<string[][]>;
71
-
299
+ /**
300
+ * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an
301
+ * array of host names.
302
+ *
303
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.
304
+ * @since v10.6.0
305
+ */
72
306
  function reverse(ip: string): Promise<string[]>;
73
-
307
+ /**
308
+ * Sets the IP address and port of servers to be used when performing DNS
309
+ * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted
310
+ * addresses. If the port is the IANA default DNS port (53) it can be omitted.
311
+ *
312
+ * ```js
313
+ * dnsPromises.setServers([
314
+ * '4.4.4.4',
315
+ * '[2001:4860:4860::8888]',
316
+ * '4.4.4.4:1053',
317
+ * '[2001:4860:4860::8888]:1053',
318
+ * ]);
319
+ * ```
320
+ *
321
+ * An error will be thrown if an invalid address is provided.
322
+ *
323
+ * The `dnsPromises.setServers()` method must not be called while a DNS query is in
324
+ * progress.
325
+ *
326
+ * This method works much like[resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html).
327
+ * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with
328
+ * subsequent servers provided. Fallback DNS servers will only be used if the
329
+ * earlier ones time out or result in some other error.
330
+ * @since v10.6.0
331
+ * @param servers array of `RFC 5952` formatted addresses
332
+ */
74
333
  function setServers(servers: ReadonlyArray<string>): void;
75
-
76
334
  class Resolver {
77
335
  constructor(options?: ResolverOptions);
78
-
79
336
  cancel(): void;
80
337
  getServers: typeof getServers;
81
338
  resolve: typeof resolve;
@@ -95,7 +352,6 @@ declare module "dns/promises" {
95
352
  setServers: typeof setServers;
96
353
  }
97
354
  }
98
-
99
355
  declare module 'node:dns/promises' {
100
356
  export * from 'dns/promises';
101
357
  }