@alanszp/express 12.0.2 → 12.0.3

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 (160) hide show
  1. package/package.json +6 -9
  2. package/.gitignore +0 -3
  3. package/.npmignore +0 -3
  4. package/node_modules/@jest/expect-utils/LICENSE +0 -21
  5. package/node_modules/@jest/expect-utils/README.md +0 -5
  6. package/node_modules/@jest/expect-utils/build/index.d.ts +0 -93
  7. package/node_modules/@jest/expect-utils/build/index.js +0 -37
  8. package/node_modules/@jest/expect-utils/build/jasmineUtils.js +0 -282
  9. package/node_modules/@jest/expect-utils/build/types.js +0 -1
  10. package/node_modules/@jest/expect-utils/build/utils.js +0 -457
  11. package/node_modules/@jest/expect-utils/package.json +0 -33
  12. package/node_modules/@jest/types/LICENSE +0 -21
  13. package/node_modules/@jest/types/README.md +0 -30
  14. package/node_modules/@jest/types/build/Circus.js +0 -1
  15. package/node_modules/@jest/types/build/Config.js +0 -1
  16. package/node_modules/@jest/types/build/Global.js +0 -1
  17. package/node_modules/@jest/types/build/TestResult.js +0 -1
  18. package/node_modules/@jest/types/build/Transform.js +0 -1
  19. package/node_modules/@jest/types/build/index.d.ts +0 -1166
  20. package/node_modules/@jest/types/build/index.js +0 -1
  21. package/node_modules/@jest/types/package.json +0 -38
  22. package/node_modules/@types/jest/LICENSE +0 -21
  23. package/node_modules/@types/jest/README.md +0 -17
  24. package/node_modules/@types/jest/index.d.ts +0 -1608
  25. package/node_modules/@types/jest/package.json +0 -159
  26. package/node_modules/@types/node/LICENSE +0 -21
  27. package/node_modules/@types/node/README.md +0 -15
  28. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  29. package/node_modules/@types/node/assert.d.ts +0 -996
  30. package/node_modules/@types/node/async_hooks.d.ts +0 -539
  31. package/node_modules/@types/node/buffer.d.ts +0 -2362
  32. package/node_modules/@types/node/child_process.d.ts +0 -1540
  33. package/node_modules/@types/node/cluster.d.ts +0 -432
  34. package/node_modules/@types/node/console.d.ts +0 -415
  35. package/node_modules/@types/node/constants.d.ts +0 -19
  36. package/node_modules/@types/node/crypto.d.ts +0 -4487
  37. package/node_modules/@types/node/dgram.d.ts +0 -596
  38. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -545
  39. package/node_modules/@types/node/dns/promises.d.ts +0 -425
  40. package/node_modules/@types/node/dns.d.ts +0 -809
  41. package/node_modules/@types/node/dom-events.d.ts +0 -122
  42. package/node_modules/@types/node/domain.d.ts +0 -170
  43. package/node_modules/@types/node/events.d.ts +0 -879
  44. package/node_modules/@types/node/fs/promises.d.ts +0 -1239
  45. package/node_modules/@types/node/fs.d.ts +0 -4311
  46. package/node_modules/@types/node/globals.d.ts +0 -411
  47. package/node_modules/@types/node/globals.global.d.ts +0 -1
  48. package/node_modules/@types/node/http.d.ts +0 -1887
  49. package/node_modules/@types/node/http2.d.ts +0 -2382
  50. package/node_modules/@types/node/https.d.ts +0 -550
  51. package/node_modules/@types/node/index.d.ts +0 -88
  52. package/node_modules/@types/node/inspector.d.ts +0 -2747
  53. package/node_modules/@types/node/module.d.ts +0 -315
  54. package/node_modules/@types/node/net.d.ts +0 -949
  55. package/node_modules/@types/node/os.d.ts +0 -478
  56. package/node_modules/@types/node/package.json +0 -229
  57. package/node_modules/@types/node/path.d.ts +0 -191
  58. package/node_modules/@types/node/perf_hooks.d.ts +0 -645
  59. package/node_modules/@types/node/process.d.ts +0 -1561
  60. package/node_modules/@types/node/punycode.d.ts +0 -117
  61. package/node_modules/@types/node/querystring.d.ts +0 -141
  62. package/node_modules/@types/node/readline/promises.d.ts +0 -150
  63. package/node_modules/@types/node/readline.d.ts +0 -539
  64. package/node_modules/@types/node/repl.d.ts +0 -430
  65. package/node_modules/@types/node/stream/consumers.d.ts +0 -12
  66. package/node_modules/@types/node/stream/promises.d.ts +0 -83
  67. package/node_modules/@types/node/stream/web.d.ts +0 -366
  68. package/node_modules/@types/node/stream.d.ts +0 -1701
  69. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  70. package/node_modules/@types/node/test.d.ts +0 -1465
  71. package/node_modules/@types/node/timers/promises.d.ts +0 -93
  72. package/node_modules/@types/node/timers.d.ts +0 -240
  73. package/node_modules/@types/node/tls.d.ts +0 -1210
  74. package/node_modules/@types/node/trace_events.d.ts +0 -182
  75. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  76. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -996
  77. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -539
  78. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2362
  79. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1540
  80. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  81. package/node_modules/@types/node/ts4.8/console.d.ts +0 -415
  82. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  83. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4487
  84. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -596
  85. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -545
  86. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -425
  87. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  88. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  89. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  90. package/node_modules/@types/node/ts4.8/events.d.ts +0 -879
  91. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1239
  92. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4311
  93. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -411
  94. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  95. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1887
  96. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2382
  97. package/node_modules/@types/node/ts4.8/https.d.ts +0 -550
  98. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  99. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2747
  100. package/node_modules/@types/node/ts4.8/module.d.ts +0 -315
  101. package/node_modules/@types/node/ts4.8/net.d.ts +0 -949
  102. package/node_modules/@types/node/ts4.8/os.d.ts +0 -478
  103. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  104. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -645
  105. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1561
  106. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  107. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  108. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -150
  109. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -539
  110. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  111. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  112. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  113. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -366
  114. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1701
  115. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  116. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1465
  117. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  118. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -240
  119. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1210
  120. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -182
  121. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -208
  122. package/node_modules/@types/node/ts4.8/url.d.ts +0 -927
  123. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2183
  124. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -764
  125. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -903
  126. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -179
  127. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -691
  128. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  129. package/node_modules/@types/node/tty.d.ts +0 -208
  130. package/node_modules/@types/node/url.d.ts +0 -927
  131. package/node_modules/@types/node/util.d.ts +0 -2183
  132. package/node_modules/@types/node/v8.d.ts +0 -764
  133. package/node_modules/@types/node/vm.d.ts +0 -903
  134. package/node_modules/@types/node/wasi.d.ts +0 -179
  135. package/node_modules/@types/node/worker_threads.d.ts +0 -691
  136. package/node_modules/@types/node/zlib.d.ts +0 -517
  137. package/src/helpers/getIp.ts +0 -5
  138. package/src/helpers/getRequestLogger.ts +0 -6
  139. package/src/helpers/now.ts +0 -3
  140. package/src/helpers/renderErrorJson.ts +0 -29
  141. package/src/index.ts +0 -10
  142. package/src/middlewares/accessLogger.ts +0 -34
  143. package/src/middlewares/auditLog.ts +0 -52
  144. package/src/middlewares/authedForOrg.ts +0 -50
  145. package/src/middlewares/authenticateUser.test.ts +0 -403
  146. package/src/middlewares/authenticateUser.ts +0 -171
  147. package/src/middlewares/createContext.test.ts +0 -85
  148. package/src/middlewares/createContext.ts +0 -49
  149. package/src/middlewares/hasRoles.ts +0 -24
  150. package/src/middlewares/jsonBodyParser.ts +0 -22
  151. package/src/middlewares/returnInternalServerError.ts +0 -15
  152. package/src/middlewares/returnNotFound.ts +0 -11
  153. package/src/test/mocks/authOptionsMocks.ts +0 -35
  154. package/src/test/mocks/expressMocks.ts +0 -33
  155. package/src/test/mocks/jwtUserMocks.ts +0 -19
  156. package/src/test/setup.test.ts +0 -15
  157. package/src/test/setup.ts +0 -3
  158. package/src/types/AuthMethod.ts +0 -27
  159. package/src/types/GenericRequest.ts +0 -3
  160. package/src/types/custom.d.ts +0 -20
@@ -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/v20.2.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 `node:querystring` module provides utilities for parsing and formatting URL
3
- * query strings. It can be accessed using:
4
- *
5
- * ```js
6
- * const querystring = require('node:querystring');
7
- * ```
8
- *
9
- * `querystring` is more performant than `URLSearchParams` but is not a
10
- * standardized API. Use `URLSearchParams` when performance is not critical or
11
- * when compatibility with browser code is desirable.
12
- * @see [source](https://github.com/nodejs/node/blob/v20.2.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
- * ```json
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,150 +0,0 @@
1
- /**
2
- * @since v17.0.0
3
- * @experimental
4
- */
5
- declare module "readline/promises" {
6
- import { AsyncCompleter, Completer, Direction, Interface as _Interface, ReadLineOptions } from "node:readline";
7
- import { Abortable } from "node:events";
8
- /**
9
- * Instances of the `readlinePromises.Interface` class are constructed using the`readlinePromises.createInterface()` method. Every instance is associated with a
10
- * single `input` `Readable` stream and a single `output` `Writable` stream.
11
- * The `output` stream is used to print prompts for user input that arrives on,
12
- * and is read from, the `input` stream.
13
- * @since v17.0.0
14
- */
15
- class Interface extends _Interface {
16
- /**
17
- * The `rl.question()` method displays the `query` by writing it to the `output`,
18
- * waits for user input to be provided on `input`, then invokes the `callback`function passing the provided input as the first argument.
19
- *
20
- * When called, `rl.question()` will resume the `input` stream if it has been
21
- * paused.
22
- *
23
- * If the `Interface` was created with `output` set to `null` or`undefined` the `query` is not written.
24
- *
25
- * If the question is called after `rl.close()`, it returns a rejected promise.
26
- *
27
- * Example usage:
28
- *
29
- * ```js
30
- * const answer = await rl.question('What is your favorite food? ');
31
- * console.log(`Oh, so your favorite food is ${answer}`);
32
- * ```
33
- *
34
- * Using an `AbortSignal` to cancel a question.
35
- *
36
- * ```js
37
- * const signal = AbortSignal.timeout(10_000);
38
- *
39
- * signal.addEventListener('abort', () => {
40
- * console.log('The food question timed out');
41
- * }, { once: true });
42
- *
43
- * const answer = await rl.question('What is your favorite food? ', { signal });
44
- * console.log(`Oh, so your favorite food is ${answer}`);
45
- * ```
46
- * @since v17.0.0
47
- * @param query A statement or query to write to `output`, prepended to the prompt.
48
- * @return A promise that is fulfilled with the user's input in response to the `query`.
49
- */
50
- question(query: string): Promise<string>;
51
- question(query: string, options: Abortable): Promise<string>;
52
- }
53
- /**
54
- * @since v17.0.0
55
- */
56
- class Readline {
57
- /**
58
- * @param stream A TTY stream.
59
- */
60
- constructor(
61
- stream: NodeJS.WritableStream,
62
- options?: {
63
- autoCommit?: boolean;
64
- },
65
- );
66
- /**
67
- * The `rl.clearLine()` method adds to the internal list of pending action an
68
- * action that clears current line of the associated `stream` in a specified
69
- * direction identified by `dir`.
70
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true`was passed to the constructor.
71
- * @since v17.0.0
72
- * @return this
73
- */
74
- clearLine(dir: Direction): this;
75
- /**
76
- * The `rl.clearScreenDown()` method adds to the internal list of pending action an
77
- * action that clears the associated stream from the current position of the
78
- * cursor down.
79
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true`was passed to the constructor.
80
- * @since v17.0.0
81
- * @return this
82
- */
83
- clearScreenDown(): this;
84
- /**
85
- * The `rl.commit()` method sends all the pending actions to the associated`stream` and clears the internal list of pending actions.
86
- * @since v17.0.0
87
- */
88
- commit(): Promise<void>;
89
- /**
90
- * The `rl.cursorTo()` method adds to the internal list of pending action an action
91
- * that moves cursor to the specified position in the associated `stream`.
92
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true`was passed to the constructor.
93
- * @since v17.0.0
94
- * @return this
95
- */
96
- cursorTo(x: number, y?: number): this;
97
- /**
98
- * The `rl.moveCursor()` method adds to the internal list of pending action an
99
- * action that moves the cursor _relative_ to its current position in the
100
- * associated `stream`.
101
- * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true`was passed to the constructor.
102
- * @since v17.0.0
103
- * @return this
104
- */
105
- moveCursor(dx: number, dy: number): this;
106
- /**
107
- * The `rl.rollback` methods clears the internal list of pending actions without
108
- * sending it to the associated `stream`.
109
- * @since v17.0.0
110
- * @return this
111
- */
112
- rollback(): this;
113
- }
114
- /**
115
- * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface`instance.
116
- *
117
- * ```js
118
- * const readlinePromises = require('node:readline/promises');
119
- * const rl = readlinePromises.createInterface({
120
- * input: process.stdin,
121
- * output: process.stdout,
122
- * });
123
- * ```
124
- *
125
- * Once the `readlinePromises.Interface` instance is created, the most common case
126
- * is to listen for the `'line'` event:
127
- *
128
- * ```js
129
- * rl.on('line', (line) => {
130
- * console.log(`Received: ${line}`);
131
- * });
132
- * ```
133
- *
134
- * If `terminal` is `true` for this instance then the `output` stream will get
135
- * the best compatibility if it defines an `output.columns` property and emits
136
- * a `'resize'` event on the `output` if or when the columns ever change
137
- * (`process.stdout` does this automatically when it is a TTY).
138
- * @since v17.0.0
139
- */
140
- function createInterface(
141
- input: NodeJS.ReadableStream,
142
- output?: NodeJS.WritableStream,
143
- completer?: Completer | AsyncCompleter,
144
- terminal?: boolean,
145
- ): Interface;
146
- function createInterface(options: ReadLineOptions): Interface;
147
- }
148
- declare module "node:readline/promises" {
149
- export * from "readline/promises";
150
- }