@shopify/ui-extensions-server-kit 0.0.0-snapshot-20240820121935 → 0.0.0-snapshot-20250604200552

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 (143) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/ExtensionServerClient/ExtensionServerClient.cjs.js +1 -1
  3. package/dist/ExtensionServerClient/ExtensionServerClient.es.js +1 -1
  4. package/dist/context/ExtensionServerProvider.cjs.js +1 -1
  5. package/dist/context/ExtensionServerProvider.es.js +13 -12
  6. package/dist/index.cjs.js +1 -1
  7. package/dist/index.es.js +37 -36
  8. package/dist/state/actions/actions.cjs.js +1 -1
  9. package/dist/state/actions/actions.d.ts +2 -1
  10. package/dist/state/actions/actions.es.js +7 -0
  11. package/dist/state/actions/types.d.ts +5 -1
  12. package/dist/testing/extensions.cjs.js +1 -1
  13. package/dist/testing/extensions.es.js +2 -2
  14. package/dist/types.d.ts +8 -0
  15. package/node_modules/@shopify/ui-extensions-test-utils/dist/index.d.ts +3 -0
  16. package/node_modules/@shopify/ui-extensions-test-utils/dist/render.d.ts +2 -0
  17. package/node_modules/@shopify/ui-extensions-test-utils/dist/renderHook.d.ts +17 -0
  18. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.d.ts +9 -0
  19. package/node_modules/@shopify/ui-extensions-test-utils/dist/withProviders.js +1 -0
  20. package/node_modules/@shopify/ui-extensions-test-utils/package.json +2 -3
  21. package/package.json +2 -4
  22. package/project.json +0 -2
  23. package/src/ExtensionServerClient/ExtensionServerClient.ts +2 -1
  24. package/src/ExtensionServerClient/types.ts +2 -0
  25. package/src/context/ExtensionServerProvider.tsx +2 -0
  26. package/src/state/actions/actions.ts +8 -1
  27. package/src/state/actions/types.ts +12 -1
  28. package/src/state/reducers/extensionServerReducer.test.ts +16 -2
  29. package/src/testing/extensions.ts +2 -2
  30. package/src/types.ts +3 -0
  31. package/src/utilities/replaceUpdated.ts +1 -0
  32. package/src/utilities/set.ts +1 -0
  33. package/node_modules/@types/node/LICENSE +0 -21
  34. package/node_modules/@types/node/README.md +0 -15
  35. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  36. package/node_modules/@types/node/assert.d.ts +0 -985
  37. package/node_modules/@types/node/async_hooks.d.ts +0 -522
  38. package/node_modules/@types/node/buffer.d.ts +0 -2321
  39. package/node_modules/@types/node/child_process.d.ts +0 -1544
  40. package/node_modules/@types/node/cluster.d.ts +0 -432
  41. package/node_modules/@types/node/console.d.ts +0 -412
  42. package/node_modules/@types/node/constants.d.ts +0 -19
  43. package/node_modules/@types/node/crypto.d.ts +0 -4451
  44. package/node_modules/@types/node/dgram.d.ts +0 -586
  45. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -192
  46. package/node_modules/@types/node/dns/promises.d.ts +0 -381
  47. package/node_modules/@types/node/dns.d.ts +0 -809
  48. package/node_modules/@types/node/dom-events.d.ts +0 -122
  49. package/node_modules/@types/node/domain.d.ts +0 -170
  50. package/node_modules/@types/node/events.d.ts +0 -803
  51. package/node_modules/@types/node/fs/promises.d.ts +0 -1205
  52. package/node_modules/@types/node/fs.d.ts +0 -4211
  53. package/node_modules/@types/node/globals.d.ts +0 -377
  54. package/node_modules/@types/node/globals.global.d.ts +0 -1
  55. package/node_modules/@types/node/http.d.ts +0 -1801
  56. package/node_modules/@types/node/http2.d.ts +0 -2386
  57. package/node_modules/@types/node/https.d.ts +0 -544
  58. package/node_modules/@types/node/index.d.ts +0 -88
  59. package/node_modules/@types/node/inspector.d.ts +0 -2739
  60. package/node_modules/@types/node/module.d.ts +0 -298
  61. package/node_modules/@types/node/net.d.ts +0 -913
  62. package/node_modules/@types/node/os.d.ts +0 -473
  63. package/node_modules/@types/node/package.json +0 -235
  64. package/node_modules/@types/node/path.d.ts +0 -191
  65. package/node_modules/@types/node/perf_hooks.d.ts +0 -626
  66. package/node_modules/@types/node/process.d.ts +0 -1531
  67. package/node_modules/@types/node/punycode.d.ts +0 -117
  68. package/node_modules/@types/node/querystring.d.ts +0 -141
  69. package/node_modules/@types/node/readline/promises.d.ts +0 -143
  70. package/node_modules/@types/node/readline.d.ts +0 -666
  71. package/node_modules/@types/node/repl.d.ts +0 -430
  72. package/node_modules/@types/node/stream/consumers.d.ts +0 -12
  73. package/node_modules/@types/node/stream/promises.d.ts +0 -83
  74. package/node_modules/@types/node/stream/web.d.ts +0 -336
  75. package/node_modules/@types/node/stream.d.ts +0 -1731
  76. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  77. package/node_modules/@types/node/test.d.ts +0 -1113
  78. package/node_modules/@types/node/timers/promises.d.ts +0 -93
  79. package/node_modules/@types/node/timers.d.ts +0 -126
  80. package/node_modules/@types/node/tls.d.ts +0 -1203
  81. package/node_modules/@types/node/trace_events.d.ts +0 -171
  82. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  83. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -985
  84. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -522
  85. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2321
  86. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1544
  87. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  88. package/node_modules/@types/node/ts4.8/console.d.ts +0 -412
  89. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  90. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4450
  91. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -586
  92. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -192
  93. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -381
  94. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  95. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  96. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  97. package/node_modules/@types/node/ts4.8/events.d.ts +0 -754
  98. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1205
  99. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4211
  100. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -377
  101. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  102. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1801
  103. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2386
  104. package/node_modules/@types/node/ts4.8/https.d.ts +0 -544
  105. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  106. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2739
  107. package/node_modules/@types/node/ts4.8/module.d.ts +0 -298
  108. package/node_modules/@types/node/ts4.8/net.d.ts +0 -913
  109. package/node_modules/@types/node/ts4.8/os.d.ts +0 -473
  110. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  111. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -626
  112. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1531
  113. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  114. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  115. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -143
  116. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -666
  117. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  118. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  119. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  120. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -336
  121. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1731
  122. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  123. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1113
  124. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  125. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -126
  126. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1203
  127. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -171
  128. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -206
  129. package/node_modules/@types/node/ts4.8/url.d.ts +0 -937
  130. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2075
  131. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -541
  132. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -667
  133. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -158
  134. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -692
  135. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  136. package/node_modules/@types/node/tty.d.ts +0 -206
  137. package/node_modules/@types/node/url.d.ts +0 -937
  138. package/node_modules/@types/node/util.d.ts +0 -2075
  139. package/node_modules/@types/node/v8.d.ts +0 -541
  140. package/node_modules/@types/node/vm.d.ts +0 -667
  141. package/node_modules/@types/node/wasi.d.ts +0 -158
  142. package/node_modules/@types/node/worker_threads.d.ts +0 -692
  143. package/node_modules/@types/node/zlib.d.ts +0 -517
@@ -1,117 +0,0 @@
1
- /**
2
- * **The version of the punycode module bundled in Node.js is being deprecated.**In a future major version of Node.js this module will be removed. Users
3
- * currently depending on the `punycode` module should switch to using the
4
- * userland-provided [Punycode.js](https://github.com/bestiejs/punycode.js) module instead. For punycode-based URL
5
- * encoding, see `url.domainToASCII` or, more generally, the `WHATWG URL API`.
6
- *
7
- * The `punycode` module is a bundled version of the [Punycode.js](https://github.com/bestiejs/punycode.js) module. It
8
- * can be accessed using:
9
- *
10
- * ```js
11
- * const punycode = require('punycode');
12
- * ```
13
- *
14
- * [Punycode](https://tools.ietf.org/html/rfc3492) is a character encoding scheme defined by RFC 3492 that is
15
- * primarily intended for use in Internationalized Domain Names. Because host
16
- * names in URLs are limited to ASCII characters only, Domain Names that contain
17
- * non-ASCII characters must be converted into ASCII using the Punycode scheme.
18
- * For instance, the Japanese character that translates into the English word,`'example'` is `'例'`. The Internationalized Domain Name, `'例.com'` (equivalent
19
- * to `'example.com'`) is represented by Punycode as the ASCII string`'xn--fsq.com'`.
20
- *
21
- * The `punycode` module provides a simple implementation of the Punycode standard.
22
- *
23
- * The `punycode` module is a third-party dependency used by Node.js and
24
- * made available to developers as a convenience. Fixes or other modifications to
25
- * the module must be directed to the [Punycode.js](https://github.com/bestiejs/punycode.js) project.
26
- * @deprecated Since v7.0.0 - Deprecated
27
- * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/punycode.js)
28
- */
29
- declare module "punycode" {
30
- /**
31
- * The `punycode.decode()` method converts a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only
32
- * characters to the equivalent string of Unicode codepoints.
33
- *
34
- * ```js
35
- * punycode.decode('maana-pta'); // 'mañana'
36
- * punycode.decode('--dqo34k'); // '☃-⌘'
37
- * ```
38
- * @since v0.5.1
39
- */
40
- function decode(string: string): string;
41
- /**
42
- * The `punycode.encode()` method converts a string of Unicode codepoints to a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only characters.
43
- *
44
- * ```js
45
- * punycode.encode('mañana'); // 'maana-pta'
46
- * punycode.encode('☃-⌘'); // '--dqo34k'
47
- * ```
48
- * @since v0.5.1
49
- */
50
- function encode(string: string): string;
51
- /**
52
- * The `punycode.toUnicode()` method converts a string representing a domain name
53
- * containing [Punycode](https://tools.ietf.org/html/rfc3492) encoded characters into Unicode. Only the [Punycode](https://tools.ietf.org/html/rfc3492) encoded parts of the domain name are be
54
- * converted.
55
- *
56
- * ```js
57
- * // decode domain names
58
- * punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
59
- * punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com'
60
- * punycode.toUnicode('example.com'); // 'example.com'
61
- * ```
62
- * @since v0.6.1
63
- */
64
- function toUnicode(domain: string): string;
65
- /**
66
- * The `punycode.toASCII()` method converts a Unicode string representing an
67
- * Internationalized Domain Name to [Punycode](https://tools.ietf.org/html/rfc3492). Only the non-ASCII parts of the
68
- * domain name will be converted. Calling `punycode.toASCII()` on a string that
69
- * already only contains ASCII characters will have no effect.
70
- *
71
- * ```js
72
- * // encode domain names
73
- * punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
74
- * punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
75
- * punycode.toASCII('example.com'); // 'example.com'
76
- * ```
77
- * @since v0.6.1
78
- */
79
- function toASCII(domain: string): string;
80
- /**
81
- * @deprecated since v7.0.0
82
- * The version of the punycode module bundled in Node.js is being deprecated.
83
- * In a future major version of Node.js this module will be removed.
84
- * Users currently depending on the punycode module should switch to using
85
- * the userland-provided Punycode.js module instead.
86
- */
87
- const ucs2: ucs2;
88
- interface ucs2 {
89
- /**
90
- * @deprecated since v7.0.0
91
- * The version of the punycode module bundled in Node.js is being deprecated.
92
- * In a future major version of Node.js this module will be removed.
93
- * Users currently depending on the punycode module should switch to using
94
- * the userland-provided Punycode.js module instead.
95
- */
96
- decode(string: string): number[];
97
- /**
98
- * @deprecated since v7.0.0
99
- * The version of the punycode module bundled in Node.js is being deprecated.
100
- * In a future major version of Node.js this module will be removed.
101
- * Users currently depending on the punycode module should switch to using
102
- * the userland-provided Punycode.js module instead.
103
- */
104
- encode(codePoints: readonly number[]): string;
105
- }
106
- /**
107
- * @deprecated since v7.0.0
108
- * The version of the punycode module bundled in Node.js is being deprecated.
109
- * In a future major version of Node.js this module will be removed.
110
- * Users currently depending on the punycode module should switch to using
111
- * the userland-provided Punycode.js module instead.
112
- */
113
- const version: string;
114
- }
115
- declare module "node:punycode" {
116
- export * from "punycode";
117
- }
@@ -1,141 +0,0 @@
1
- /**
2
- * The `querystring` module provides utilities for parsing and formatting URL
3
- * query strings. It can be accessed using:
4
- *
5
- * ```js
6
- * const querystring = require('querystring');
7
- * ```
8
- *
9
- * `querystring` is more performant than `URLSearchParams` but is not a
10
- * standardized API. Use `URLSearchParams` when performance is not critical
11
- * or when compatibility with browser code is desirable.
12
- * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/querystring.js)
13
- */
14
- declare module "querystring" {
15
- interface StringifyOptions {
16
- encodeURIComponent?: ((str: string) => string) | undefined;
17
- }
18
- interface ParseOptions {
19
- maxKeys?: number | undefined;
20
- decodeURIComponent?: ((str: string) => string) | undefined;
21
- }
22
- interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> {}
23
- interface ParsedUrlQueryInput extends
24
- NodeJS.Dict<
25
- | string
26
- | number
27
- | boolean
28
- | readonly string[]
29
- | readonly number[]
30
- | readonly boolean[]
31
- | null
32
- >
33
- {}
34
- /**
35
- * The `querystring.stringify()` method produces a URL query string from a
36
- * given `obj` by iterating through the object's "own properties".
37
- *
38
- * It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
39
- * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
40
- * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) |
41
- * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |
42
- * [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |
43
- * [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |
44
- * [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) |
45
- * [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to
46
- * empty strings.
47
- *
48
- * ```js
49
- * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
50
- * // Returns 'foo=bar&#x26;baz=qux&#x26;baz=quux&#x26;corge='
51
- *
52
- * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
53
- * // Returns 'foo:bar;baz:qux'
54
- * ```
55
- *
56
- * By default, characters requiring percent-encoding within the query string will
57
- * be encoded as UTF-8\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified:
58
- *
59
- * ```js
60
- * // Assuming gbkEncodeURIComponent function already exists,
61
- *
62
- * querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
63
- * { encodeURIComponent: gbkEncodeURIComponent });
64
- * ```
65
- * @since v0.1.25
66
- * @param obj The object to serialize into a URL query string
67
- * @param [sep='&'] The substring used to delimit key and value pairs in the query string.
68
- * @param [eq='='] . The substring used to delimit keys and values in the query string.
69
- */
70
- function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string;
71
- /**
72
- * The `querystring.parse()` method parses a URL query string (`str`) into a
73
- * collection of key and value pairs.
74
- *
75
- * For example, the query string `'foo=bar&#x26;abc=xyz&#x26;abc=123'` is parsed into:
76
- *
77
- * ```js
78
- * {
79
- * foo: 'bar',
80
- * abc: ['xyz', '123']
81
- * }
82
- * ```
83
- *
84
- * The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`,
85
- * `obj.hasOwnProperty()`, and others
86
- * are not defined and _will not work_.
87
- *
88
- * By default, percent-encoded characters within the query string will be assumed
89
- * to use UTF-8 encoding. If an alternative character encoding is used, then an
90
- * alternative `decodeURIComponent` option will need to be specified:
91
- *
92
- * ```js
93
- * // Assuming gbkDecodeURIComponent function already exists...
94
- *
95
- * querystring.parse('w=%D6%D0%CE%C4&#x26;foo=bar', null, null,
96
- * { decodeURIComponent: gbkDecodeURIComponent });
97
- * ```
98
- * @since v0.1.25
99
- * @param str The URL query string to parse
100
- * @param [sep='&'] The substring used to delimit key and value pairs in the query string.
101
- * @param [eq='='] . The substring used to delimit keys and values in the query string.
102
- */
103
- function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery;
104
- /**
105
- * The querystring.encode() function is an alias for querystring.stringify().
106
- */
107
- const encode: typeof stringify;
108
- /**
109
- * The querystring.decode() function is an alias for querystring.parse().
110
- */
111
- const decode: typeof parse;
112
- /**
113
- * The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL
114
- * query strings.
115
- *
116
- * The `querystring.escape()` method is used by `querystring.stringify()` and is
117
- * generally not expected to be used directly. It is exported primarily to allow
118
- * application code to provide a replacement percent-encoding implementation if
119
- * necessary by assigning `querystring.escape` to an alternative function.
120
- * @since v0.1.25
121
- */
122
- function escape(str: string): string;
123
- /**
124
- * The `querystring.unescape()` method performs decoding of URL percent-encoded
125
- * characters on the given `str`.
126
- *
127
- * The `querystring.unescape()` method is used by `querystring.parse()` and is
128
- * generally not expected to be used directly. It is exported primarily to allow
129
- * application code to provide a replacement decoding implementation if
130
- * necessary by assigning `querystring.unescape` to an alternative function.
131
- *
132
- * By default, the `querystring.unescape()` method will attempt to use the
133
- * JavaScript built-in `decodeURIComponent()` method to decode. If that fails,
134
- * a safer equivalent that does not throw on malformed URLs will be used.
135
- * @since v0.1.25
136
- */
137
- function unescape(str: string): string;
138
- }
139
- declare module "node:querystring" {
140
- export * from "querystring";
141
- }
@@ -1,143 +0,0 @@
1
- /**
2
- * The `readline/promise` module provides an API for reading lines of input from a Readable stream one line at a time.
3
- *
4
- * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline/promises.js)
5
- * @since v17.0.0
6
- */
7
- declare module "readline/promises" {
8
- import { AsyncCompleter, Completer, Direction, Interface as _Interface, ReadLineOptions } from "node:readline";
9
- import { Abortable } from "node:events";
10
-
11
- class Interface extends _Interface {
12
- /**
13
- * The rl.question() method displays the query by writing it to the output, waits for user input to be provided on input,
14
- * then invokes the callback function passing the provided input as the first argument.
15
- *
16
- * When called, rl.question() will resume the input stream if it has been paused.
17
- *
18
- * If the readlinePromises.Interface was created with output set to null or undefined the query is not written.
19
- *
20
- * If the question is called after rl.close(), it returns a rejected promise.
21
- *
22
- * Example usage:
23
- *
24
- * ```js
25
- * const answer = await rl.question('What is your favorite food? ');
26
- * console.log(`Oh, so your favorite food is ${answer}`);
27
- * ```
28
- *
29
- * Using an AbortSignal to cancel a question.
30
- *
31
- * ```js
32
- * const signal = AbortSignal.timeout(10_000);
33
- *
34
- * signal.addEventListener('abort', () => {
35
- * console.log('The food question timed out');
36
- * }, { once: true });
37
- *
38
- * const answer = await rl.question('What is your favorite food? ', { signal });
39
- * console.log(`Oh, so your favorite food is ${answer}`);
40
- * ```
41
- *
42
- * @since v17.0.0
43
- * @param query A statement or query to write to output, prepended to the prompt.
44
- */
45
- question(query: string): Promise<string>;
46
- question(query: string, options: Abortable): Promise<string>;
47
- }
48
-
49
- class Readline {
50
- /**
51
- * @param stream A TTY stream.
52
- */
53
- constructor(stream: NodeJS.WritableStream, options?: { autoCommit?: boolean });
54
- /**
55
- * The `rl.clearLine()` method adds to the internal list of pending action an action that clears current line of the associated `stream` in a specified direction identified by `dir`.
56
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
57
- */
58
- clearLine(dir: Direction): this;
59
- /**
60
- * The `rl.clearScreenDown()` method adds to the internal list of pending action an action that clears the associated `stream` from the current position of the cursor down.
61
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
62
- */
63
- clearScreenDown(): this;
64
- /**
65
- * The `rl.commit()` method sends all the pending actions to the associated `stream` and clears the internal list of pending actions.
66
- */
67
- commit(): Promise<void>;
68
- /**
69
- * The `rl.cursorTo()` method adds to the internal list of pending action an action that moves cursor to the specified position in the associated `stream`.
70
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
71
- */
72
- cursorTo(x: number, y?: number): this;
73
- /**
74
- * The `rl.moveCursor()` method adds to the internal list of pending action an action that moves the cursor relative to its current position in the associated `stream`.
75
- * Call `rl.commit()` to see the effect of this method, unless autoCommit: true was passed to the constructor.
76
- */
77
- moveCursor(dx: number, dy: number): this;
78
- /**
79
- * The `rl.rollback()` method clears the internal list of pending actions without sending it to the associated `stream`.
80
- */
81
- rollback(): this;
82
- }
83
-
84
- /**
85
- * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance.
86
- *
87
- * ```js
88
- * const readlinePromises = require('node:readline/promises');
89
- * const rl = readlinePromises.createInterface({
90
- * input: process.stdin,
91
- * output: process.stdout
92
- * });
93
- * ```
94
- *
95
- * Once the `readlinePromises.Interface` instance is created, the most common case is to listen for the `'line'` event:
96
- *
97
- * ```js
98
- * rl.on('line', (line) => {
99
- * console.log(`Received: ${line}`);
100
- * });
101
- * ```
102
- *
103
- * If `terminal` is `true` for this instance then the `output` stream will get the best compatibility if it defines an `output.columns` property,
104
- * and emits a `'resize'` event on the `output`, if or when the columns ever change (`process.stdout` does this automatically when it is a TTY).
105
- *
106
- * ## Use of the `completer` function
107
- *
108
- * The `completer` function takes the current line entered by the user as an argument, and returns an `Array` with 2 entries:
109
- *
110
- * - An Array with matching entries for the completion.
111
- * - The substring that was used for the matching.
112
- *
113
- * For instance: `[[substr1, substr2, ...], originalsubstring]`.
114
- *
115
- * ```js
116
- * function completer(line) {
117
- * const completions = '.help .error .exit .quit .q'.split(' ');
118
- * const hits = completions.filter((c) => c.startsWith(line));
119
- * // Show all completions if none found
120
- * return [hits.length ? hits : completions, line];
121
- * }
122
- * ```
123
- *
124
- * The `completer` function can also returns a `Promise`, or be asynchronous:
125
- *
126
- * ```js
127
- * async function completer(linePartial) {
128
- * await someAsyncWork();
129
- * return [['123'], linePartial];
130
- * }
131
- * ```
132
- */
133
- function createInterface(
134
- input: NodeJS.ReadableStream,
135
- output?: NodeJS.WritableStream,
136
- completer?: Completer | AsyncCompleter,
137
- terminal?: boolean,
138
- ): Interface;
139
- function createInterface(options: ReadLineOptions): Interface;
140
- }
141
- declare module "node:readline/promises" {
142
- export * from "readline/promises";
143
- }