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

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 (170) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -2
  3. package/dist/ExtensionServerClient/ExtensionServerClient.cjs.js +1 -1
  4. package/dist/ExtensionServerClient/ExtensionServerClient.d.ts +1 -0
  5. package/dist/ExtensionServerClient/ExtensionServerClient.es.js +1 -1
  6. package/dist/ExtensionServerClient/ExtensionServerClient.test.d.ts +8 -0
  7. package/dist/ExtensionServerClient/server-types.d.ts +42 -0
  8. package/dist/context/constants.cjs.js +1 -1
  9. package/dist/context/constants.d.ts +0 -1
  10. package/dist/context/constants.es.js +0 -1
  11. package/dist/context/types.d.ts +1 -0
  12. package/dist/hooks/index.d.ts +0 -2
  13. package/dist/i18n.cjs.js +1 -1
  14. package/dist/i18n.d.ts +1 -20
  15. package/dist/i18n.es.js +0 -1
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +40 -48
  18. package/dist/testing/extensions.cjs.js +1 -1
  19. package/dist/testing/extensions.es.js +2 -2
  20. package/dist/types.cjs.js +1 -1
  21. package/dist/types.d.ts +10 -4
  22. package/dist/types.es.js +2 -2
  23. package/dist/utilities/index.d.ts +0 -1
  24. package/node_modules/@shopify/ui-extensions-test-utils/dist/index.d.ts +3 -0
  25. package/node_modules/@shopify/ui-extensions-test-utils/dist/render.d.ts +2 -0
  26. package/node_modules/@shopify/ui-extensions-test-utils/dist/renderHook.d.ts +17 -0
  27. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.d.ts +9 -0
  28. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.js +1 -0
  29. package/node_modules/@shopify/ui-extensions-test-utils/package.json +2 -3
  30. package/package.json +8 -7
  31. package/project.json +0 -16
  32. package/src/ExtensionServerClient/ExtensionServerClient.test.ts +837 -330
  33. package/src/ExtensionServerClient/ExtensionServerClient.ts +10 -8
  34. package/src/ExtensionServerClient/server-types.ts +55 -0
  35. package/src/ExtensionServerClient/types.ts +2 -0
  36. package/src/context/ExtensionServerProvider.test.tsx +202 -39
  37. package/src/context/ExtensionServerProvider.tsx +1 -0
  38. package/src/context/constants.ts +3 -2
  39. package/src/context/types.ts +1 -0
  40. package/src/hooks/index.ts +0 -2
  41. package/src/i18n.ts +3 -3
  42. package/src/state/reducers/extensionServerReducer.test.ts +2 -2
  43. package/src/testing/extensions.ts +2 -2
  44. package/src/types.ts +9 -4
  45. package/src/utilities/index.ts +0 -1
  46. package/src/utilities/replaceUpdated.ts +1 -0
  47. package/src/utilities/set.ts +1 -0
  48. package/dist/hooks/useExtensionClient.cjs.js +0 -1
  49. package/dist/hooks/useExtensionClient.d.ts +0 -1
  50. package/dist/hooks/useExtensionClient.es.js +0 -8
  51. package/dist/hooks/useExtensionServerEvent.cjs.js +0 -1
  52. package/dist/hooks/useExtensionServerEvent.d.ts +0 -1
  53. package/dist/hooks/useExtensionServerEvent.es.js +0 -9
  54. package/dist/utilities/groupByKey.cjs.js +0 -1
  55. package/dist/utilities/groupByKey.d.ts +0 -3
  56. package/dist/utilities/groupByKey.es.js +0 -6
  57. package/node_modules/@types/node/LICENSE +0 -21
  58. package/node_modules/@types/node/README.md +0 -15
  59. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  60. package/node_modules/@types/node/assert.d.ts +0 -985
  61. package/node_modules/@types/node/async_hooks.d.ts +0 -522
  62. package/node_modules/@types/node/buffer.d.ts +0 -2321
  63. package/node_modules/@types/node/child_process.d.ts +0 -1544
  64. package/node_modules/@types/node/cluster.d.ts +0 -432
  65. package/node_modules/@types/node/console.d.ts +0 -412
  66. package/node_modules/@types/node/constants.d.ts +0 -19
  67. package/node_modules/@types/node/crypto.d.ts +0 -4451
  68. package/node_modules/@types/node/dgram.d.ts +0 -586
  69. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -192
  70. package/node_modules/@types/node/dns/promises.d.ts +0 -381
  71. package/node_modules/@types/node/dns.d.ts +0 -809
  72. package/node_modules/@types/node/dom-events.d.ts +0 -122
  73. package/node_modules/@types/node/domain.d.ts +0 -170
  74. package/node_modules/@types/node/events.d.ts +0 -803
  75. package/node_modules/@types/node/fs/promises.d.ts +0 -1205
  76. package/node_modules/@types/node/fs.d.ts +0 -4211
  77. package/node_modules/@types/node/globals.d.ts +0 -377
  78. package/node_modules/@types/node/globals.global.d.ts +0 -1
  79. package/node_modules/@types/node/http.d.ts +0 -1801
  80. package/node_modules/@types/node/http2.d.ts +0 -2386
  81. package/node_modules/@types/node/https.d.ts +0 -544
  82. package/node_modules/@types/node/index.d.ts +0 -88
  83. package/node_modules/@types/node/inspector.d.ts +0 -2739
  84. package/node_modules/@types/node/module.d.ts +0 -298
  85. package/node_modules/@types/node/net.d.ts +0 -913
  86. package/node_modules/@types/node/os.d.ts +0 -473
  87. package/node_modules/@types/node/package.json +0 -235
  88. package/node_modules/@types/node/path.d.ts +0 -191
  89. package/node_modules/@types/node/perf_hooks.d.ts +0 -626
  90. package/node_modules/@types/node/process.d.ts +0 -1531
  91. package/node_modules/@types/node/punycode.d.ts +0 -117
  92. package/node_modules/@types/node/querystring.d.ts +0 -141
  93. package/node_modules/@types/node/readline/promises.d.ts +0 -143
  94. package/node_modules/@types/node/readline.d.ts +0 -666
  95. package/node_modules/@types/node/repl.d.ts +0 -430
  96. package/node_modules/@types/node/stream/consumers.d.ts +0 -12
  97. package/node_modules/@types/node/stream/promises.d.ts +0 -83
  98. package/node_modules/@types/node/stream/web.d.ts +0 -336
  99. package/node_modules/@types/node/stream.d.ts +0 -1731
  100. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  101. package/node_modules/@types/node/test.d.ts +0 -1113
  102. package/node_modules/@types/node/timers/promises.d.ts +0 -93
  103. package/node_modules/@types/node/timers.d.ts +0 -126
  104. package/node_modules/@types/node/tls.d.ts +0 -1203
  105. package/node_modules/@types/node/trace_events.d.ts +0 -171
  106. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  107. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -985
  108. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -522
  109. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2321
  110. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1544
  111. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  112. package/node_modules/@types/node/ts4.8/console.d.ts +0 -412
  113. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  114. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4450
  115. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -586
  116. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -192
  117. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -381
  118. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  119. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  120. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  121. package/node_modules/@types/node/ts4.8/events.d.ts +0 -754
  122. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1205
  123. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4211
  124. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -377
  125. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  126. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1801
  127. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2386
  128. package/node_modules/@types/node/ts4.8/https.d.ts +0 -544
  129. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  130. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2739
  131. package/node_modules/@types/node/ts4.8/module.d.ts +0 -298
  132. package/node_modules/@types/node/ts4.8/net.d.ts +0 -913
  133. package/node_modules/@types/node/ts4.8/os.d.ts +0 -473
  134. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  135. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -626
  136. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1531
  137. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  138. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  139. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -143
  140. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -666
  141. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  142. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  143. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  144. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -336
  145. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1731
  146. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  147. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1113
  148. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  149. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -126
  150. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1203
  151. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -171
  152. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -206
  153. package/node_modules/@types/node/ts4.8/url.d.ts +0 -937
  154. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2075
  155. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -541
  156. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -667
  157. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -158
  158. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -692
  159. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  160. package/node_modules/@types/node/tty.d.ts +0 -206
  161. package/node_modules/@types/node/url.d.ts +0 -937
  162. package/node_modules/@types/node/util.d.ts +0 -2075
  163. package/node_modules/@types/node/v8.d.ts +0 -541
  164. package/node_modules/@types/node/vm.d.ts +0 -667
  165. package/node_modules/@types/node/wasi.d.ts +0 -158
  166. package/node_modules/@types/node/worker_threads.d.ts +0 -692
  167. package/node_modules/@types/node/zlib.d.ts +0 -517
  168. package/src/hooks/useExtensionClient.ts +0 -6
  169. package/src/hooks/useExtensionServerEvent.ts +0 -11
  170. 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
- }