@shopify/ui-extensions-server-kit 5.2.1 → 5.3.0

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 (169) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/ExtensionServerClient/ExtensionServerClient.cjs.js +1 -1
  3. package/dist/ExtensionServerClient/ExtensionServerClient.d.ts +1 -0
  4. package/dist/ExtensionServerClient/ExtensionServerClient.es.js +1 -1
  5. package/dist/ExtensionServerClient/ExtensionServerClient.test.d.ts +8 -0
  6. package/dist/ExtensionServerClient/server-types.d.ts +42 -0
  7. package/dist/context/constants.cjs.js +1 -1
  8. package/dist/context/constants.d.ts +0 -1
  9. package/dist/context/constants.es.js +0 -1
  10. package/dist/context/types.d.ts +1 -0
  11. package/dist/hooks/index.d.ts +0 -2
  12. package/dist/i18n.cjs.js +1 -1
  13. package/dist/i18n.d.ts +1 -20
  14. package/dist/i18n.es.js +0 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.es.js +40 -48
  17. package/dist/testing/extensions.cjs.js +1 -1
  18. package/dist/testing/extensions.es.js +2 -2
  19. package/dist/types.cjs.js +1 -1
  20. package/dist/types.d.ts +6 -4
  21. package/dist/types.es.js +2 -2
  22. package/dist/utilities/index.d.ts +0 -1
  23. package/node_modules/@shopify/ui-extensions-test-utils/dist/index.d.ts +3 -0
  24. package/node_modules/@shopify/ui-extensions-test-utils/dist/render.d.ts +2 -0
  25. package/node_modules/@shopify/ui-extensions-test-utils/dist/renderHook.d.ts +17 -0
  26. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.d.ts +9 -0
  27. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.js +1 -0
  28. package/node_modules/@shopify/ui-extensions-test-utils/package.json +2 -3
  29. package/package.json +7 -5
  30. package/project.json +0 -2
  31. package/src/ExtensionServerClient/ExtensionServerClient.test.ts +837 -330
  32. package/src/ExtensionServerClient/ExtensionServerClient.ts +10 -8
  33. package/src/ExtensionServerClient/server-types.ts +55 -0
  34. package/src/ExtensionServerClient/types.ts +2 -0
  35. package/src/context/ExtensionServerProvider.test.tsx +202 -39
  36. package/src/context/ExtensionServerProvider.tsx +1 -0
  37. package/src/context/constants.ts +3 -2
  38. package/src/context/types.ts +1 -0
  39. package/src/hooks/index.ts +0 -2
  40. package/src/i18n.ts +3 -3
  41. package/src/state/reducers/extensionServerReducer.test.ts +2 -2
  42. package/src/testing/extensions.ts +2 -2
  43. package/src/types.ts +5 -4
  44. package/src/utilities/index.ts +0 -1
  45. package/src/utilities/replaceUpdated.ts +1 -0
  46. package/src/utilities/set.ts +1 -0
  47. package/dist/hooks/useExtensionClient.cjs.js +0 -1
  48. package/dist/hooks/useExtensionClient.d.ts +0 -1
  49. package/dist/hooks/useExtensionClient.es.js +0 -8
  50. package/dist/hooks/useExtensionServerEvent.cjs.js +0 -1
  51. package/dist/hooks/useExtensionServerEvent.d.ts +0 -1
  52. package/dist/hooks/useExtensionServerEvent.es.js +0 -9
  53. package/dist/utilities/groupByKey.cjs.js +0 -1
  54. package/dist/utilities/groupByKey.d.ts +0 -3
  55. package/dist/utilities/groupByKey.es.js +0 -6
  56. package/node_modules/@types/node/LICENSE +0 -21
  57. package/node_modules/@types/node/README.md +0 -15
  58. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  59. package/node_modules/@types/node/assert.d.ts +0 -985
  60. package/node_modules/@types/node/async_hooks.d.ts +0 -522
  61. package/node_modules/@types/node/buffer.d.ts +0 -2321
  62. package/node_modules/@types/node/child_process.d.ts +0 -1544
  63. package/node_modules/@types/node/cluster.d.ts +0 -432
  64. package/node_modules/@types/node/console.d.ts +0 -412
  65. package/node_modules/@types/node/constants.d.ts +0 -19
  66. package/node_modules/@types/node/crypto.d.ts +0 -4451
  67. package/node_modules/@types/node/dgram.d.ts +0 -586
  68. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -192
  69. package/node_modules/@types/node/dns/promises.d.ts +0 -381
  70. package/node_modules/@types/node/dns.d.ts +0 -809
  71. package/node_modules/@types/node/dom-events.d.ts +0 -122
  72. package/node_modules/@types/node/domain.d.ts +0 -170
  73. package/node_modules/@types/node/events.d.ts +0 -803
  74. package/node_modules/@types/node/fs/promises.d.ts +0 -1205
  75. package/node_modules/@types/node/fs.d.ts +0 -4211
  76. package/node_modules/@types/node/globals.d.ts +0 -377
  77. package/node_modules/@types/node/globals.global.d.ts +0 -1
  78. package/node_modules/@types/node/http.d.ts +0 -1801
  79. package/node_modules/@types/node/http2.d.ts +0 -2386
  80. package/node_modules/@types/node/https.d.ts +0 -544
  81. package/node_modules/@types/node/index.d.ts +0 -88
  82. package/node_modules/@types/node/inspector.d.ts +0 -2739
  83. package/node_modules/@types/node/module.d.ts +0 -298
  84. package/node_modules/@types/node/net.d.ts +0 -913
  85. package/node_modules/@types/node/os.d.ts +0 -473
  86. package/node_modules/@types/node/package.json +0 -235
  87. package/node_modules/@types/node/path.d.ts +0 -191
  88. package/node_modules/@types/node/perf_hooks.d.ts +0 -626
  89. package/node_modules/@types/node/process.d.ts +0 -1531
  90. package/node_modules/@types/node/punycode.d.ts +0 -117
  91. package/node_modules/@types/node/querystring.d.ts +0 -141
  92. package/node_modules/@types/node/readline/promises.d.ts +0 -143
  93. package/node_modules/@types/node/readline.d.ts +0 -666
  94. package/node_modules/@types/node/repl.d.ts +0 -430
  95. package/node_modules/@types/node/stream/consumers.d.ts +0 -12
  96. package/node_modules/@types/node/stream/promises.d.ts +0 -83
  97. package/node_modules/@types/node/stream/web.d.ts +0 -336
  98. package/node_modules/@types/node/stream.d.ts +0 -1731
  99. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  100. package/node_modules/@types/node/test.d.ts +0 -1113
  101. package/node_modules/@types/node/timers/promises.d.ts +0 -93
  102. package/node_modules/@types/node/timers.d.ts +0 -126
  103. package/node_modules/@types/node/tls.d.ts +0 -1203
  104. package/node_modules/@types/node/trace_events.d.ts +0 -171
  105. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  106. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -985
  107. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -522
  108. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2321
  109. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1544
  110. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  111. package/node_modules/@types/node/ts4.8/console.d.ts +0 -412
  112. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  113. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4450
  114. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -586
  115. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -192
  116. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -381
  117. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  118. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  119. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  120. package/node_modules/@types/node/ts4.8/events.d.ts +0 -754
  121. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1205
  122. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4211
  123. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -377
  124. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  125. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1801
  126. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2386
  127. package/node_modules/@types/node/ts4.8/https.d.ts +0 -544
  128. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  129. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2739
  130. package/node_modules/@types/node/ts4.8/module.d.ts +0 -298
  131. package/node_modules/@types/node/ts4.8/net.d.ts +0 -913
  132. package/node_modules/@types/node/ts4.8/os.d.ts +0 -473
  133. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  134. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -626
  135. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1531
  136. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  137. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  138. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -143
  139. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -666
  140. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  141. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  142. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  143. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -336
  144. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1731
  145. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  146. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1113
  147. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  148. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -126
  149. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1203
  150. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -171
  151. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -206
  152. package/node_modules/@types/node/ts4.8/url.d.ts +0 -937
  153. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2075
  154. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -541
  155. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -667
  156. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -158
  157. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -692
  158. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  159. package/node_modules/@types/node/tty.d.ts +0 -206
  160. package/node_modules/@types/node/url.d.ts +0 -937
  161. package/node_modules/@types/node/util.d.ts +0 -2075
  162. package/node_modules/@types/node/v8.d.ts +0 -541
  163. package/node_modules/@types/node/vm.d.ts +0 -667
  164. package/node_modules/@types/node/wasi.d.ts +0 -158
  165. package/node_modules/@types/node/worker_threads.d.ts +0 -692
  166. package/node_modules/@types/node/zlib.d.ts +0 -517
  167. package/src/hooks/useExtensionClient.ts +0 -6
  168. package/src/hooks/useExtensionServerEvent.ts +0 -11
  169. package/src/utilities/groupByKey.ts +0 -3
@@ -1,192 +0,0 @@
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
- * import diagnostics_channel from '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.
22
- * @experimental
23
- * @see [source](https://github.com/nodejs/node/blob/v18.7.0/lib/diagnostics_channel.js)
24
- */
25
- declare module "diagnostics_channel" {
26
- /**
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
- * import diagnostics_channel from 'diagnostics_channel';
35
- *
36
- * if (diagnostics_channel.hasSubscribers('my-channel')) {
37
- * // There are subscribers, prepare and publish message
38
- * }
39
- * ```
40
- * @since v15.1.0, v14.17.0
41
- * @param name The channel name
42
- * @return If there are active subscribers
43
- */
44
- function hasSubscribers(name: string | symbol): boolean;
45
- /**
46
- * This is the primary entry-point for anyone wanting to interact with a named
47
- * channel. It produces a channel object which is optimized to reduce overhead at
48
- * publish time as much as possible.
49
- *
50
- * ```js
51
- * import diagnostics_channel from 'diagnostics_channel';
52
- *
53
- * const channel = diagnostics_channel.channel('my-channel');
54
- * ```
55
- * @since v15.1.0, v14.17.0
56
- * @param name The channel name
57
- * @return The named channel object
58
- */
59
- function channel(name: string | symbol): Channel;
60
- type ChannelListener = (message: unknown, name: string | symbol) => void;
61
- /**
62
- * Register a message handler to subscribe to this channel. This message handler will be run synchronously
63
- * whenever a message is published to the channel. Any errors thrown in the message handler will
64
- * trigger an 'uncaughtException'.
65
- *
66
- * ```js
67
- * import diagnostics_channel from 'diagnostics_channel';
68
- *
69
- * diagnostics_channel.subscribe('my-channel', (message, name) => {
70
- * // Received data
71
- * });
72
- * ```
73
- *
74
- * @since v18.7.0, v16.17.0
75
- * @param name The channel name
76
- * @param onMessage The handler to receive channel messages
77
- */
78
- function subscribe(name: string | symbol, onMessage: ChannelListener): void;
79
- /**
80
- * Remove a message handler previously registered to this channel with diagnostics_channel.subscribe(name, onMessage).
81
- *
82
- * ```js
83
- * import diagnostics_channel from 'diagnostics_channel';
84
- *
85
- * function onMessage(message, name) {
86
- * // Received data
87
- * }
88
- *
89
- * diagnostics_channel.subscribe('my-channel', onMessage);
90
- *
91
- * diagnostics_channel.unsubscribe('my-channel', onMessage);
92
- * ```
93
- *
94
- * @since v18.7.0, v16.17.0
95
- * @param name The channel name
96
- * @param onMessage The previous subscribed handler to remove
97
- * @returns `true` if the handler was found, `false` otherwise
98
- */
99
- function unsubscribe(name: string | symbol, onMessage: ChannelListener): boolean;
100
- /**
101
- * The class `Channel` represents an individual named channel within the data
102
- * pipeline. It is use to track subscribers and to publish messages when there
103
- * are subscribers present. It exists as a separate object to avoid channel
104
- * lookups at publish time, enabling very fast publish speeds and allowing
105
- * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly
106
- * with `new Channel(name)` is not supported.
107
- * @since v15.1.0, v14.17.0
108
- */
109
- class Channel {
110
- readonly name: string | symbol;
111
- /**
112
- * Check if there are active subscribers to this channel. This is helpful if
113
- * the message you want to send might be expensive to prepare.
114
- *
115
- * This API is optional but helpful when trying to publish messages from very
116
- * performance-sensitive code.
117
- *
118
- * ```js
119
- * import diagnostics_channel from 'diagnostics_channel';
120
- *
121
- * const channel = diagnostics_channel.channel('my-channel');
122
- *
123
- * if (channel.hasSubscribers) {
124
- * // There are subscribers, prepare and publish message
125
- * }
126
- * ```
127
- * @since v15.1.0, v14.17.0
128
- */
129
- readonly hasSubscribers: boolean;
130
- private constructor(name: string | symbol);
131
- /**
132
- * Publish a message to any subscribers to the channel. This will
133
- * trigger message handlers synchronously so they will execute within
134
- * the same context.
135
- *
136
- * ```js
137
- * import diagnostics_channel from 'diagnostics_channel';
138
- *
139
- * const channel = diagnostics_channel.channel('my-channel');
140
- *
141
- * channel.publish({
142
- * some: 'message'
143
- * });
144
- * ```
145
- * @since v15.1.0, v14.17.0
146
- * @param message The message to send to the channel subscribers
147
- */
148
- publish(message: unknown): void;
149
- /**
150
- * Register a message handler to subscribe to this channel. This message handler
151
- * will be run synchronously whenever a message is published to the channel. Any
152
- * errors thrown in the message handler will trigger an `'uncaughtException'`.
153
- *
154
- * ```js
155
- * import diagnostics_channel from 'diagnostics_channel';
156
- *
157
- * const channel = diagnostics_channel.channel('my-channel');
158
- *
159
- * channel.subscribe((message, name) => {
160
- * // Received data
161
- * });
162
- * ```
163
- * @since v15.1.0, v14.17.0
164
- * @param onMessage The handler to receive channel messages
165
- */
166
- subscribe(onMessage: ChannelListener): void;
167
- /**
168
- * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`.
169
- *
170
- * ```js
171
- * import diagnostics_channel from 'diagnostics_channel';
172
- *
173
- * const channel = diagnostics_channel.channel('my-channel');
174
- *
175
- * function onMessage(message, name) {
176
- * // Received data
177
- * }
178
- *
179
- * channel.subscribe(onMessage);
180
- *
181
- * channel.unsubscribe(onMessage);
182
- * ```
183
- * @since v15.1.0, v14.17.0
184
- * @param onMessage The previous subscribed handler to remove
185
- * @return `true` if the handler was found, `false` otherwise.
186
- */
187
- unsubscribe(onMessage: ChannelListener): void;
188
- }
189
- }
190
- declare module "node:diagnostics_channel" {
191
- export * from "diagnostics_channel";
192
- }
@@ -1,381 +0,0 @@
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" {
8
- import {
9
- AnyRecord,
10
- CaaRecord,
11
- LookupAddress,
12
- LookupAllOptions,
13
- LookupOneOptions,
14
- LookupOptions,
15
- MxRecord,
16
- NaptrRecord,
17
- RecordWithTtl,
18
- ResolveOptions,
19
- ResolverOptions,
20
- ResolveWithTtlOptions,
21
- SoaRecord,
22
- SrvRecord,
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
- */
39
- function getServers(): string[];
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
- */
84
- function lookup(hostname: string, family: number): Promise<LookupAddress>;
85
- function lookup(hostname: string, options: LookupOneOptions): Promise<LookupAddress>;
86
- function lookup(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;
87
- function lookup(hostname: string, options: LookupOptions): Promise<LookupAddress | LookupAddress[]>;
88
- function lookup(hostname: string): Promise<LookupAddress>;
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='A'] Resource record type.
126
- */
127
- function resolve(hostname: string): 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[][]>;
140
- function resolve(
141
- hostname: string,
142
- rrtype: string,
143
- ): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;
144
- /**
145
- * Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv4
146
- * addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`).
147
- * @since v10.6.0
148
- * @param hostname Host name to resolve.
149
- */
150
- function resolve4(hostname: string): Promise<string[]>;
151
- function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
152
- function resolve4(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
153
- /**
154
- * Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv6
155
- * addresses.
156
- * @since v10.6.0
157
- * @param hostname Host name to resolve.
158
- */
159
- function resolve6(hostname: string): Promise<string[]>;
160
- function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
161
- function resolve6(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
162
- /**
163
- * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).
164
- * On success, the `Promise` is resolved with an array containing various types of
165
- * records. Each object has a property `type` that indicates the type of the
166
- * current record. And depending on the `type`, additional properties will be
167
- * present on the object:
168
- *
169
- * <omitted>
170
- *
171
- * Here is an example of the result object:
172
- *
173
- * ```js
174
- * [ { type: 'A', address: '127.0.0.1', ttl: 299 },
175
- * { type: 'CNAME', value: 'example.com' },
176
- * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },
177
- * { type: 'NS', value: 'ns1.example.com' },
178
- * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },
179
- * { type: 'SOA',
180
- * nsname: 'ns1.example.com',
181
- * hostmaster: 'admin.example.com',
182
- * serial: 156696742,
183
- * refresh: 900,
184
- * retry: 900,
185
- * expire: 1800,
186
- * minttl: 60 } ]
187
- * ```
188
- * @since v10.6.0
189
- */
190
- function resolveAny(hostname: string): Promise<AnyRecord[]>;
191
- /**
192
- * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success,
193
- * the `Promise` is resolved with an array of objects containing available
194
- * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`).
195
- * @since v15.0.0, v14.17.0
196
- */
197
- function resolveCaa(hostname: string): Promise<CaaRecord[]>;
198
- /**
199
- * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success,
200
- * the `Promise` is resolved with an array of canonical name records available for
201
- * the `hostname` (e.g. `['bar.example.com']`).
202
- * @since v10.6.0
203
- */
204
- function resolveCname(hostname: string): Promise<string[]>;
205
- /**
206
- * 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
207
- * containing both a `priority` and `exchange` property (e.g.`[{priority: 10, exchange: 'mx.example.com'}, ...]`).
208
- * @since v10.6.0
209
- */
210
- function resolveMx(hostname: string): Promise<MxRecord[]>;
211
- /**
212
- * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. On success, the `Promise` is resolved with an array
213
- * of objects with the following properties:
214
- *
215
- * * `flags`
216
- * * `service`
217
- * * `regexp`
218
- * * `replacement`
219
- * * `order`
220
- * * `preference`
221
- *
222
- * ```js
223
- * {
224
- * flags: 's',
225
- * service: 'SIP+D2U',
226
- * regexp: '',
227
- * replacement: '_sip._udp.example.com',
228
- * order: 30,
229
- * preference: 100
230
- * }
231
- * ```
232
- * @since v10.6.0
233
- */
234
- function resolveNaptr(hostname: string): Promise<NaptrRecord[]>;
235
- /**
236
- * 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
237
- * records available for `hostname` (e.g.`['ns1.example.com', 'ns2.example.com']`).
238
- * @since v10.6.0
239
- */
240
- function resolveNs(hostname: string): Promise<string[]>;
241
- /**
242
- * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. On success, the `Promise` is resolved with an array of strings
243
- * containing the reply records.
244
- * @since v10.6.0
245
- */
246
- function resolvePtr(hostname: string): Promise<string[]>;
247
- /**
248
- * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for
249
- * the `hostname`. On success, the `Promise` is resolved with an object with the
250
- * following properties:
251
- *
252
- * * `nsname`
253
- * * `hostmaster`
254
- * * `serial`
255
- * * `refresh`
256
- * * `retry`
257
- * * `expire`
258
- * * `minttl`
259
- *
260
- * ```js
261
- * {
262
- * nsname: 'ns.example.com',
263
- * hostmaster: 'root.example.com',
264
- * serial: 2013101809,
265
- * refresh: 10000,
266
- * retry: 2400,
267
- * expire: 604800,
268
- * minttl: 3600
269
- * }
270
- * ```
271
- * @since v10.6.0
272
- */
273
- function resolveSoa(hostname: string): Promise<SoaRecord>;
274
- /**
275
- * 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
276
- * the following properties:
277
- *
278
- * * `priority`
279
- * * `weight`
280
- * * `port`
281
- * * `name`
282
- *
283
- * ```js
284
- * {
285
- * priority: 10,
286
- * weight: 5,
287
- * port: 21223,
288
- * name: 'service.example.com'
289
- * }
290
- * ```
291
- * @since v10.6.0
292
- */
293
- function resolveSrv(hostname: string): Promise<SrvRecord[]>;
294
- /**
295
- * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. On success, the `Promise` is resolved with a two-dimensional array
296
- * of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of
297
- * one record. Depending on the use case, these could be either joined together or
298
- * treated separately.
299
- * @since v10.6.0
300
- */
301
- function resolveTxt(hostname: string): Promise<string[][]>;
302
- /**
303
- * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an
304
- * array of host names.
305
- *
306
- * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.
307
- * @since v10.6.0
308
- */
309
- function reverse(ip: string): Promise<string[]>;
310
- /**
311
- * Get the default value for `verbatim` in {@link lookup} and `dnsPromises.lookup()`. The value could be:
312
- *
313
- * * `ipv4first`: for `verbatim` defaulting to `false`.
314
- * * `verbatim`: for `verbatim` defaulting to `true`.
315
- * @since v18.17.0
316
- */
317
- function getDefaultResultOrder(): "ipv4first" | "verbatim";
318
- /**
319
- * Sets the IP address and port of servers to be used when performing DNS
320
- * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted
321
- * addresses. If the port is the IANA default DNS port (53) it can be omitted.
322
- *
323
- * ```js
324
- * dnsPromises.setServers([
325
- * '4.4.4.4',
326
- * '[2001:4860:4860::8888]',
327
- * '4.4.4.4:1053',
328
- * '[2001:4860:4860::8888]:1053',
329
- * ]);
330
- * ```
331
- *
332
- * An error will be thrown if an invalid address is provided.
333
- *
334
- * The `dnsPromises.setServers()` method must not be called while a DNS query is in
335
- * progress.
336
- *
337
- * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html).
338
- * 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
339
- * subsequent servers provided. Fallback DNS servers will only be used if the
340
- * earlier ones time out or result in some other error.
341
- * @since v10.6.0
342
- * @param servers array of `RFC 5952` formatted addresses
343
- */
344
- function setServers(servers: readonly string[]): void;
345
- /**
346
- * Set the default value of `verbatim` in `dns.lookup()` and `dnsPromises.lookup()`. The value could be:
347
- *
348
- * * `ipv4first`: sets default `verbatim` `false`.
349
- * * `verbatim`: sets default `verbatim` `true`.
350
- *
351
- * The default is `ipv4first` and `dnsPromises.setDefaultResultOrder()` have
352
- * higher priority than `--dns-result-order`. When using `worker threads`,`dnsPromises.setDefaultResultOrder()` from the main thread won't affect the
353
- * default dns orders in workers.
354
- * @since v16.4.0, v14.18.0
355
- * @param order must be `'ipv4first'` or `'verbatim'`.
356
- */
357
- function setDefaultResultOrder(order: "ipv4first" | "verbatim"): void;
358
- class Resolver {
359
- constructor(options?: ResolverOptions);
360
- cancel(): void;
361
- getServers: typeof getServers;
362
- resolve: typeof resolve;
363
- resolve4: typeof resolve4;
364
- resolve6: typeof resolve6;
365
- resolveAny: typeof resolveAny;
366
- resolveCname: typeof resolveCname;
367
- resolveMx: typeof resolveMx;
368
- resolveNaptr: typeof resolveNaptr;
369
- resolveNs: typeof resolveNs;
370
- resolvePtr: typeof resolvePtr;
371
- resolveSoa: typeof resolveSoa;
372
- resolveSrv: typeof resolveSrv;
373
- resolveTxt: typeof resolveTxt;
374
- reverse: typeof reverse;
375
- setLocalAddress(ipv4?: string, ipv6?: string): void;
376
- setServers: typeof setServers;
377
- }
378
- }
379
- declare module "node:dns/promises" {
380
- export * from "dns/promises";
381
- }