projen 0.58.13 → 0.58.16

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 (165) hide show
  1. package/.jsii +4 -4
  2. package/README.md +2 -2
  3. package/docs/api/API.md +1 -1
  4. package/lib/awscdk/auto-discover.js +5 -5
  5. package/lib/awscdk/awscdk-app-java.js +1 -1
  6. package/lib/awscdk/awscdk-app-py.js +1 -1
  7. package/lib/awscdk/awscdk-app-ts.js +1 -1
  8. package/lib/awscdk/awscdk-construct.js +2 -2
  9. package/lib/awscdk/awscdk-deps-java.js +1 -1
  10. package/lib/awscdk/awscdk-deps-js.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +1 -1
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +1 -1
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/integration-test.js +1 -1
  27. package/lib/cdktf/cdktf-construct.js +1 -1
  28. package/lib/circleci/circleci.js +1 -1
  29. package/lib/circleci/model.d.ts +1 -1
  30. package/lib/circleci/model.js +1 -1
  31. package/lib/component.js +1 -1
  32. package/lib/dependencies.js +1 -1
  33. package/lib/dev-env.js +1 -1
  34. package/lib/docker-compose.js +2 -2
  35. package/lib/file.js +1 -1
  36. package/lib/gitattributes.js +1 -1
  37. package/lib/github/auto-approve.js +1 -1
  38. package/lib/github/auto-merge.js +1 -1
  39. package/lib/github/dependabot.js +1 -1
  40. package/lib/github/github-credentials.js +1 -1
  41. package/lib/github/github-project.js +1 -1
  42. package/lib/github/github.js +1 -1
  43. package/lib/github/mergify.js +1 -1
  44. package/lib/github/pr-template.js +1 -1
  45. package/lib/github/pull-request-lint.js +1 -1
  46. package/lib/github/stale.js +1 -1
  47. package/lib/github/task-workflow.js +1 -1
  48. package/lib/github/workflows.js +1 -1
  49. package/lib/gitlab/configuration.js +1 -1
  50. package/lib/gitlab/gitlab-configuration.js +1 -1
  51. package/lib/gitlab/nested-configuration.js +1 -1
  52. package/lib/gitpod.js +1 -1
  53. package/lib/ignore-file.js +1 -1
  54. package/lib/ini.js +1 -1
  55. package/lib/java/java-project.js +1 -1
  56. package/lib/java/junit.js +1 -1
  57. package/lib/java/maven-compile.js +1 -1
  58. package/lib/java/maven-packaging.js +1 -1
  59. package/lib/java/maven-sample.js +1 -1
  60. package/lib/java/pom.js +1 -1
  61. package/lib/java/projenrc.js +1 -1
  62. package/lib/javascript/bundler.js +1 -1
  63. package/lib/javascript/eslint.js +1 -1
  64. package/lib/javascript/jest.js +1 -1
  65. package/lib/javascript/node-package.js +1 -1
  66. package/lib/javascript/node-project.js +1 -1
  67. package/lib/javascript/npm-config.js +1 -1
  68. package/lib/javascript/prettier.js +1 -1
  69. package/lib/javascript/projenrc.js +1 -1
  70. package/lib/javascript/typescript-config.js +1 -1
  71. package/lib/javascript/upgrade-dependencies.js +2 -2
  72. package/lib/json.js +1 -1
  73. package/lib/license.js +1 -1
  74. package/lib/logger.js +1 -1
  75. package/lib/makefile.js +1 -1
  76. package/lib/object-file.js +1 -1
  77. package/lib/project-build.js +1 -1
  78. package/lib/project.js +1 -1
  79. package/lib/projects.js +1 -1
  80. package/lib/projenrc-json.js +1 -1
  81. package/lib/python/pip.js +1 -1
  82. package/lib/python/poetry.js +2 -2
  83. package/lib/python/projenrc.js +1 -1
  84. package/lib/python/pytest-sample.js +1 -1
  85. package/lib/python/pytest.js +1 -1
  86. package/lib/python/python-project.js +1 -1
  87. package/lib/python/python-sample.js +1 -1
  88. package/lib/python/requirements-file.js +1 -1
  89. package/lib/python/setuppy.js +1 -1
  90. package/lib/python/setuptools.js +1 -1
  91. package/lib/python/venv.js +1 -1
  92. package/lib/readme.js +1 -1
  93. package/lib/release/publisher.js +1 -1
  94. package/lib/release/release-trigger.js +1 -1
  95. package/lib/release/release.js +1 -1
  96. package/lib/renovatebot.js +1 -1
  97. package/lib/run-task.js +1 -0
  98. package/lib/sample-file.js +2 -2
  99. package/lib/semver.js +1 -1
  100. package/lib/source-code.js +1 -1
  101. package/lib/task-runtime.js +1 -1
  102. package/lib/task.js +1 -1
  103. package/lib/tasks.js +1 -1
  104. package/lib/testing.js +1 -1
  105. package/lib/textfile.js +1 -1
  106. package/lib/toml.js +1 -1
  107. package/lib/typescript/projenrc.js +1 -1
  108. package/lib/typescript/typescript-typedoc.js +1 -1
  109. package/lib/typescript/typescript.js +3 -3
  110. package/lib/version.js +1 -1
  111. package/lib/vscode/devcontainer.js +1 -1
  112. package/lib/vscode/launch-config.js +1 -1
  113. package/lib/vscode/vscode.js +1 -1
  114. package/lib/web/next.js +3 -3
  115. package/lib/web/postcss.js +1 -1
  116. package/lib/web/react.js +4 -4
  117. package/lib/web/tailwind.js +1 -1
  118. package/lib/xmlfile.js +1 -1
  119. package/lib/yaml.js +1 -1
  120. package/node_modules/xmlbuilder2/node_modules/@types/node/README.md +1 -1
  121. package/node_modules/xmlbuilder2/node_modules/@types/node/assert.d.ts +7 -8
  122. package/node_modules/xmlbuilder2/node_modules/@types/node/async_hooks.d.ts +2 -2
  123. package/node_modules/xmlbuilder2/node_modules/@types/node/buffer.d.ts +11 -5
  124. package/node_modules/xmlbuilder2/node_modules/@types/node/child_process.d.ts +6 -3
  125. package/node_modules/xmlbuilder2/node_modules/@types/node/cluster.d.ts +14 -18
  126. package/node_modules/xmlbuilder2/node_modules/@types/node/console.d.ts +1 -1
  127. package/node_modules/xmlbuilder2/node_modules/@types/node/crypto.d.ts +109 -37
  128. package/node_modules/xmlbuilder2/node_modules/@types/node/dgram.d.ts +2 -2
  129. package/node_modules/xmlbuilder2/node_modules/@types/node/diagnostics_channel.d.ts +2 -1
  130. package/node_modules/xmlbuilder2/node_modules/@types/node/dns/promises.d.ts +2 -2
  131. package/node_modules/xmlbuilder2/node_modules/@types/node/dns.d.ts +2 -2
  132. package/node_modules/xmlbuilder2/node_modules/@types/node/domain.d.ts +3 -2
  133. package/node_modules/xmlbuilder2/node_modules/@types/node/events.d.ts +17 -27
  134. package/node_modules/xmlbuilder2/node_modules/@types/node/fs/promises.d.ts +14 -15
  135. package/node_modules/xmlbuilder2/node_modules/@types/node/fs.d.ts +21 -39
  136. package/node_modules/xmlbuilder2/node_modules/@types/node/http.d.ts +69 -23
  137. package/node_modules/xmlbuilder2/node_modules/@types/node/http2.d.ts +7 -2
  138. package/node_modules/xmlbuilder2/node_modules/@types/node/https.d.ts +1 -1
  139. package/node_modules/xmlbuilder2/node_modules/@types/node/index.d.ts +2 -1
  140. package/node_modules/xmlbuilder2/node_modules/@types/node/inspector.d.ts +10 -13
  141. package/node_modules/xmlbuilder2/node_modules/@types/node/net.d.ts +27 -7
  142. package/node_modules/xmlbuilder2/node_modules/@types/node/os.d.ts +5 -4
  143. package/node_modules/xmlbuilder2/node_modules/@types/node/package.json +2 -2
  144. package/node_modules/xmlbuilder2/node_modules/@types/node/path.d.ts +1 -1
  145. package/node_modules/xmlbuilder2/node_modules/@types/node/perf_hooks.d.ts +10 -2
  146. package/node_modules/xmlbuilder2/node_modules/@types/node/process.d.ts +2 -2
  147. package/node_modules/xmlbuilder2/node_modules/@types/node/punycode.d.ts +1 -1
  148. package/node_modules/xmlbuilder2/node_modules/@types/node/querystring.d.ts +1 -1
  149. package/node_modules/xmlbuilder2/node_modules/@types/node/readline.d.ts +2 -2
  150. package/node_modules/xmlbuilder2/node_modules/@types/node/repl.d.ts +2 -2
  151. package/node_modules/xmlbuilder2/node_modules/@types/node/stream.d.ts +39 -15
  152. package/node_modules/xmlbuilder2/node_modules/@types/node/string_decoder.d.ts +1 -1
  153. package/node_modules/xmlbuilder2/node_modules/@types/node/test.d.ts +142 -0
  154. package/node_modules/xmlbuilder2/node_modules/@types/node/timers.d.ts +1 -1
  155. package/node_modules/xmlbuilder2/node_modules/@types/node/tls.d.ts +17 -9
  156. package/node_modules/xmlbuilder2/node_modules/@types/node/trace_events.d.ts +11 -1
  157. package/node_modules/xmlbuilder2/node_modules/@types/node/tty.d.ts +4 -2
  158. package/node_modules/xmlbuilder2/node_modules/@types/node/url.d.ts +20 -18
  159. package/node_modules/xmlbuilder2/node_modules/@types/node/util.d.ts +20 -9
  160. package/node_modules/xmlbuilder2/node_modules/@types/node/v8.d.ts +19 -1
  161. package/node_modules/xmlbuilder2/node_modules/@types/node/vm.d.ts +5 -3
  162. package/node_modules/xmlbuilder2/node_modules/@types/node/wasi.d.ts +1 -1
  163. package/node_modules/xmlbuilder2/node_modules/@types/node/worker_threads.d.ts +2 -5
  164. package/node_modules/xmlbuilder2/node_modules/@types/node/zlib.d.ts +1 -1
  165. package/package.json +3 -3
@@ -24,7 +24,7 @@
24
24
  * made available to developers as a convenience. Fixes or other modifications to
25
25
  * the module must be directed to the [Punycode.js](https://github.com/bestiejs/punycode.js) project.
26
26
  * @deprecated Since v7.0.0 - Deprecated
27
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/punycode.js)
27
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/punycode.js)
28
28
  */
29
29
  declare module 'punycode' {
30
30
  /**
@@ -9,7 +9,7 @@
9
9
  * The `querystring` API is considered Legacy. While it is still maintained,
10
10
  * new code should use the `URLSearchParams` API instead.
11
11
  * @deprecated Legacy
12
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/querystring.js)
12
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/querystring.js)
13
13
  */
14
14
  declare module 'querystring' {
15
15
  interface StringifyOptions {
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * ```js
19
19
  * import * as readline from 'node:readline/promises';
20
- * import { stdin as input, stdout as output } from 'process';
20
+ * import { stdin as input, stdout as output } from 'node:process';
21
21
  *
22
22
  * const rl = readline.createInterface({ input, output });
23
23
  *
@@ -30,7 +30,7 @@
30
30
  *
31
31
  * Once this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be
32
32
  * received on the `input` stream.
33
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/readline.js)
33
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline.js)
34
34
  */
35
35
  declare module 'readline' {
36
36
  import { Abortable, EventEmitter } from 'node:events';
@@ -6,7 +6,7 @@
6
6
  * ```js
7
7
  * const repl = require('repl');
8
8
  * ```
9
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/repl.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/repl.js)
10
10
  */
11
11
  declare module 'repl' {
12
12
  import { Interface, Completer, AsyncCompleter } from 'node:readline';
@@ -277,7 +277,7 @@ declare module 'repl' {
277
277
  * Goodbye!
278
278
  * ```
279
279
  * @since v0.3.0
280
- * @param keyword The command keyword (*without* a leading `.` character).
280
+ * @param keyword The command keyword (_without_ a leading `.` character).
281
281
  * @param cmd The function to invoke when the command is processed.
282
282
  */
283
283
  defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void;
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * The `stream` module is useful for creating new types of stream instances. It is
16
16
  * usually not necessary to use the `stream` module to consume streams.
17
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/stream.js)
17
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/stream.js)
18
18
  */
19
19
  declare module 'stream' {
20
20
  import { EventEmitter, Abortable } from 'node:events';
@@ -123,16 +123,16 @@ declare module 'stream' {
123
123
  readonly readableObjectMode: boolean;
124
124
  /**
125
125
  * Is `true` after `readable.destroy()` has been called.
126
- * @since v8.0.0
126
+ * @since v18.0.0
127
127
  */
128
128
  destroyed: boolean;
129
129
  constructor(opts?: ReadableOptions);
130
130
  _construct?(callback: (error?: Error | null) => void): void;
131
131
  _read(size: number): void;
132
132
  /**
133
- * The `readable.read()` method pulls some data out of the internal buffer and
134
- * returns it. If no data available to be read, `null` is returned. By default,
135
- * the data will be returned as a `Buffer` object unless an encoding has been
133
+ * The `readable.read()` method reads data out of the internal buffer and
134
+ * returns it. If no data is available to be read, `null` is returned. By default,
135
+ * the data is returned as a `Buffer` object unless an encoding has been
136
136
  * specified using the `readable.setEncoding()` method or the stream is operating
137
137
  * in object mode.
138
138
  *
@@ -347,7 +347,7 @@ declare module 'stream' {
347
347
  * let chunk;
348
348
  * while (null !== (chunk = stream.read())) {
349
349
  * const str = decoder.write(chunk);
350
- * if (str.match(/\n\n/)) {
350
+ * if (str.includes('\n\n')) {
351
351
  * // Found the header boundary.
352
352
  * const split = str.split(/\n\n/);
353
353
  * header += split.shift();
@@ -360,10 +360,10 @@ declare module 'stream' {
360
360
  * stream.unshift(buf);
361
361
  * // Now the body of the message can be read from the stream.
362
362
  * callback(null, header, stream);
363
- * } else {
364
- * // Still reading the header.
365
- * header += str;
363
+ * return;
366
364
  * }
365
+ * // Still reading the header.
366
+ * header += str;
367
367
  * }
368
368
  * }
369
369
  * }
@@ -580,7 +580,7 @@ declare module 'stream' {
580
580
  * While a stream is not draining, calls to `write()` will buffer `chunk`, and
581
581
  * return false. Once all currently buffered chunks are drained (accepted for
582
582
  * delivery by the operating system), the `'drain'` event will be emitted.
583
- * It is recommended that once `write()` returns false, no more chunks be written
583
+ * Once `write()` returns false, do not write more chunks
584
584
  * until the `'drain'` event is emitted. While calling `write()` on a stream that
585
585
  * is not draining is allowed, Node.js will buffer all written chunks until
586
586
  * maximum memory usage occurs, at which point it will abort unconditionally.
@@ -674,8 +674,8 @@ declare module 'stream' {
674
674
  * The `writable.uncork()` method flushes all data buffered since {@link cork} was called.
675
675
  *
676
676
  * When using `writable.cork()` and `writable.uncork()` to manage the buffering
677
- * of writes to a stream, it is recommended that calls to `writable.uncork()` be
678
- * deferred using `process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event loop phase.
677
+ * of writes to a stream, defer calls to `writable.uncork()` using`process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event
678
+ * loop phase.
679
679
  *
680
680
  * ```js
681
681
  * stream.cork();
@@ -1119,7 +1119,7 @@ declare module 'stream' {
1119
1119
  * async function run() {
1120
1120
  * await pipeline(
1121
1121
  * fs.createReadStream('lowercase.txt'),
1122
- * async function* (source, signal) {
1122
+ * async function* (source, { signal }) {
1123
1123
  * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s.
1124
1124
  * for await (const chunk of source) {
1125
1125
  * yield await processChunk(chunk, { signal });
@@ -1143,7 +1143,7 @@ declare module 'stream' {
1143
1143
  *
1144
1144
  * async function run() {
1145
1145
  * await pipeline(
1146
- * async function * (signal) {
1146
+ * async function* ({ signal }) {
1147
1147
  * await someLongRunningfn({ signal });
1148
1148
  * yield 'asd';
1149
1149
  * },
@@ -1162,7 +1162,31 @@ declare module 'stream' {
1162
1162
  *
1163
1163
  * `stream.pipeline()` leaves dangling event listeners on the streams
1164
1164
  * after the `callback` has been invoked. In the case of reuse of streams after
1165
- * failure, this can cause event listener leaks and swallowed errors.
1165
+ * failure, this can cause event listener leaks and swallowed errors. If the last
1166
+ * stream is readable, dangling event listeners will be removed so that the last
1167
+ * stream can be consumed later.
1168
+ *
1169
+ * `stream.pipeline()` closes all the streams when an error is raised.
1170
+ * The `IncomingRequest` usage with `pipeline` could lead to an unexpected behavior
1171
+ * once it would destroy the socket without sending the expected response.
1172
+ * See the example below:
1173
+ *
1174
+ * ```js
1175
+ * const fs = require('fs');
1176
+ * const http = require('http');
1177
+ * const { pipeline } = require('stream');
1178
+ *
1179
+ * const server = http.createServer((req, res) => {
1180
+ * const fileStream = fs.createReadStream('./fileNotExist.txt');
1181
+ * pipeline(fileStream, res, (err) => {
1182
+ * if (err) {
1183
+ * console.log(err); // No such file
1184
+ * // this message can't be sent once `pipeline` already destroyed the socket
1185
+ * return res.end('error!!!');
1186
+ * }
1187
+ * });
1188
+ * });
1189
+ * ```
1166
1190
  * @since v10.0.0
1167
1191
  * @param callback Called when the pipeline is fully done.
1168
1192
  */
@@ -36,7 +36,7 @@
36
36
  * decoder.write(Buffer.from([0x82]));
37
37
  * console.log(decoder.end(Buffer.from([0xAC])));
38
38
  * ```
39
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/string_decoder.js)
39
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/string_decoder.js)
40
40
  */
41
41
  declare module 'string_decoder' {
42
42
  class StringDecoder {
@@ -0,0 +1,142 @@
1
+ /**
2
+ * The `node:test` module provides a standalone testing module.
3
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/test.js)
4
+ */
5
+ declare module 'node:test' {
6
+ /**
7
+ * The `test()` function is the value imported from the test module. Each invocation of this
8
+ * function results in the creation of a test point in the TAP output.
9
+ *
10
+ * The {@link TestContext} object passed to the fn argument can be used to perform actions
11
+ * related to the current test. Examples include skipping the test, adding additional TAP
12
+ * diagnostic information, or creating subtests.
13
+ *
14
+ * `test()` returns a {@link Promise} that resolves once the test completes. The return value
15
+ * can usually be discarded for top level tests. However, the return value from subtests should
16
+ * be used to prevent the parent test from finishing first and cancelling the subtest as shown
17
+ * in the following example.
18
+ *
19
+ * ```js
20
+ * test('top level test', async (t) => {
21
+ * // The setTimeout() in the following subtest would cause it to outlive its
22
+ * // parent test if 'await' is removed on the next line. Once the parent test
23
+ * // completes, it will cancel any outstanding subtests.
24
+ * await t.test('longer running subtest', async (t) => {
25
+ * return new Promise((resolve, reject) => {
26
+ * setTimeout(resolve, 1000);
27
+ * });
28
+ * });
29
+ * });
30
+ * ```
31
+ * @since v18.0.0
32
+ * @param name The name of the test, which is displayed when reporting test results.
33
+ * Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.
34
+ * @param options Configuration options for the test
35
+ * @param fn The function under test. This first argument to this function is a
36
+ * {@link TestContext} object. If the test uses callbacks, the callback function is
37
+ * passed as the second argument. Default: A no-op function.
38
+ * @returns A {@link Promise} resolved with `undefined` once the test completes.
39
+ */
40
+ function test(name?: string, fn?: TestFn): Promise<void>;
41
+ function test(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
42
+ function test(options?: TestOptions, fn?: TestFn): Promise<void>;
43
+ function test(fn?: TestFn): Promise<void>;
44
+
45
+ /**
46
+ * The type of a function under test. This first argument to this function is a
47
+ * {@link TestContext} object. If the test uses callbacks, the callback function is passed as
48
+ * the second argument.
49
+ */
50
+ type TestFn = ((t: TestContext, done: (result?: any) => void) => any);
51
+
52
+ /**
53
+ * An instance of `TestContext` is passed to each test function in order to interact with the
54
+ * test runner. However, the `TestContext` constructor is not exposed as part of the API.
55
+ * @since v18.0.0
56
+ */
57
+ interface TestContext {
58
+ /**
59
+ * This function is used to write TAP diagnostics to the output. Any diagnostic information is
60
+ * included at the end of the test's results. This function does not return a value.
61
+ * @param message Message to be displayed as a TAP diagnostic.
62
+ * @since v18.0.0
63
+ */
64
+ diagnostic(message: string): void;
65
+
66
+ /**
67
+ * If `shouldRunOnlyTests` is truthy, the test context will only run tests that have the `only`
68
+ * option set. Otherwise, all tests are run. If Node.js was not started with the `--test-only`
69
+ * command-line option, this function is a no-op.
70
+ * @param shouldRunOnlyTests Whether or not to run `only` tests.
71
+ * @since v18.0.0
72
+ */
73
+ runOnly(shouldRunOnlyTests: boolean): void;
74
+
75
+ /**
76
+ * This function causes the test's output to indicate the test as skipped. If `message` is
77
+ * provided, it is included in the TAP output. Calling `skip()` does not terminate execution of
78
+ * the test function. This function does not return a value.
79
+ * @param message Optional skip message to be displayed in TAP output.
80
+ * @since v18.0.0
81
+ */
82
+ skip(message?: string): void;
83
+
84
+ /**
85
+ * This function adds a `TODO` directive to the test's output. If `message` is provided, it is
86
+ * included in the TAP output. Calling `todo()` does not terminate execution of the test
87
+ * function. This function does not return a value.
88
+ * @param message Optional `TODO` message to be displayed in TAP output.
89
+ * @since v18.0.0
90
+ */
91
+ todo(message?: string): void;
92
+
93
+ /**
94
+ * This function is used to create subtests under the current test. This function behaves in
95
+ * the same fashion as the top level {@link test} function.
96
+ * @since v18.0.0
97
+ * @param name The name of the test, which is displayed when reporting test results.
98
+ * Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.
99
+ * @param options Configuration options for the test
100
+ * @param fn The function under test. This first argument to this function is a
101
+ * {@link TestContext} object. If the test uses callbacks, the callback function is
102
+ * passed as the second argument. Default: A no-op function.
103
+ * @returns A {@link Promise} resolved with `undefined` once the test completes.
104
+ */
105
+ test: typeof test;
106
+ }
107
+
108
+ interface TestOptions {
109
+ /**
110
+ * The number of tests that can be run at the same time. If unspecified, subtests inherit this
111
+ * value from their parent.
112
+ * @default 1
113
+ */
114
+ concurrency?: number;
115
+
116
+ /**
117
+ * If truthy, and the test context is configured to run `only` tests, then this test will be
118
+ * run. Otherwise, the test is skipped.
119
+ * @default false
120
+ */
121
+ only?: boolean;
122
+
123
+ /**
124
+ * If truthy, the test is skipped. If a string is provided, that string is displayed in the
125
+ * test results as the reason for skipping the test.
126
+ * @default false
127
+ */
128
+ skip?: boolean | string;
129
+
130
+ /**
131
+ * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in
132
+ * the test results as the reason why the test is `TODO`.
133
+ * @default false
134
+ */
135
+ todo?: boolean | string;
136
+ }
137
+
138
+ export {
139
+ test as default,
140
+ test,
141
+ };
142
+ }
@@ -6,7 +6,7 @@
6
6
  * The timer functions within Node.js implement a similar API as the timers API
7
7
  * provided by Web Browsers but use a different internal implementation that is
8
8
  * built around the Node.js [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#setimmediate-vs-settimeout).
9
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/timers.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/timers.js)
10
10
  */
11
11
  declare module 'timers' {
12
12
  import { Abortable } from 'node:events';
@@ -6,7 +6,7 @@
6
6
  * ```js
7
7
  * const tls = require('tls');
8
8
  * ```
9
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/tls.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tls.js)
10
10
  */
11
11
  declare module 'tls' {
12
12
  import { X509Certificate } from 'node:crypto';
@@ -143,8 +143,8 @@ declare module 'tls' {
143
143
  */
144
144
  constructor(socket: net.Socket, options?: TLSSocketOptions);
145
145
  /**
146
- * Returns `true` if the peer certificate was signed by one of the CAs specified
147
- * when creating the `tls.TLSSocket` instance, otherwise `false`.
146
+ * This property is `true` if the peer certificate was signed by one of the CAs
147
+ * specified when creating the `tls.TLSSocket` instance, otherwise `false`.
148
148
  * @since v0.11.4
149
149
  */
150
150
  authorized: boolean;
@@ -343,9 +343,9 @@ declare module 'tls' {
343
343
  * When enabled, TLS packet trace information is written to `stderr`. This can be
344
344
  * used to debug TLS connection problems.
345
345
  *
346
- * Note: The format of the output is identical to the output of `openssl s_client -trace` or `openssl s_server -trace`. While it is produced by OpenSSL's`SSL_trace()` function, the format is
347
- * undocumented, can change without notice,
348
- * and should not be relied on.
346
+ * The format of the output is identical to the output of`openssl s_client -trace` or `openssl s_server -trace`. While it is produced by
347
+ * OpenSSL's `SSL_trace()` function, the format is undocumented, can change
348
+ * without notice, and should not be relied on.
349
349
  * @since v12.2.0
350
350
  */
351
351
  enableTrace(): void;
@@ -374,7 +374,7 @@ declare module 'tls' {
374
374
  * 128,
375
375
  * 'client finished');
376
376
  *
377
- *
377
+ * /*
378
378
  * Example return value of keyingMaterial:
379
379
  * <Buffer 76 26 af 99 c5 56 8e 42 09 91 ef 9f 93 cb ad 6c 7b 65 f8 53 f1 d8 d9
380
380
  * 12 5a 33 b8 b5 25 df 7b 37 9f e0 e2 4f b8 67 83 a3 2f cd 5d 41 42 4c 91
@@ -814,13 +814,19 @@ declare module 'tls' {
814
814
  * Returns [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object, populating it with `reason`, `host`, and `cert` on
815
815
  * failure. On success, returns [undefined](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Undefined_type).
816
816
  *
817
- * This function can be overwritten by providing alternative function as part of
818
- * the `options.checkServerIdentity` option passed to `tls.connect()`. The
817
+ * This function is intended to be used in combination with the`checkServerIdentity` option that can be passed to {@link connect} and as
818
+ * such operates on a `certificate object`. For other purposes, consider using `x509.checkHost()` instead.
819
+ *
820
+ * This function can be overwritten by providing an alternative function as the`options.checkServerIdentity` option that is passed to `tls.connect()`. The
819
821
  * overwriting function can call `tls.checkServerIdentity()` of course, to augment
820
822
  * the checks done with additional verification.
821
823
  *
822
824
  * This function is only called if the certificate passed all other checks, such as
823
825
  * being issued by trusted CA (`options.ca`).
826
+ *
827
+ * Earlier versions of Node.js incorrectly accepted certificates for a given`hostname` if a matching `uniformResourceIdentifier` subject alternative name
828
+ * was present (see [CVE-2021-44531](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44531)). Applications that wish to accept`uniformResourceIdentifier` subject alternative names can use
829
+ * a custom`options.checkServerIdentity` function that implements the desired behavior.
824
830
  * @since v0.8.4
825
831
  * @param hostname The host name or IP address to verify the certificate against.
826
832
  * @param cert A `certificate object` representing the peer's certificate.
@@ -973,6 +979,8 @@ declare module 'tls' {
973
979
  * lower-case for historical reasons, but must be uppercased to be used in
974
980
  * the `ciphers` option of {@link createSecureContext}.
975
981
  *
982
+ * Not all supported ciphers are enabled by default. See `Modifying the default TLS cipher suite`.
983
+ *
976
984
  * Cipher names that start with `'tls_'` are for TLSv1.3, all the others are for
977
985
  * TLSv1.2 and below.
978
986
  *
@@ -66,6 +66,16 @@
66
66
  * node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js
67
67
  * ```
68
68
  *
69
+ * To guarantee that the log file is properly generated after signal events like`SIGINT`, `SIGTERM`, or `SIGBREAK`, make sure to have the appropriate handlers
70
+ * in your code, such as:
71
+ *
72
+ * ```js
73
+ * process.on('SIGINT', function onSigint() {
74
+ * console.info('Received SIGINT.');
75
+ * process.exit(130); // Or applicable exit code depending on OS and signal
76
+ * });
77
+ * ```
78
+ *
69
79
  * The tracing system uses the same time source
70
80
  * as the one used by `process.hrtime()`.
71
81
  * However the trace-event timestamps are expressed in microseconds,
@@ -73,7 +83,7 @@
73
83
  *
74
84
  * The features from this module are not available in `Worker` threads.
75
85
  * @experimental
76
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/trace_events.js)
86
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/trace_events.js)
77
87
  */
78
88
  declare module 'trace_events' {
79
89
  /**
@@ -22,7 +22,7 @@
22
22
  *
23
23
  * In most cases, there should be little to no reason for an application to
24
24
  * manually create instances of the `tty.ReadStream` and `tty.WriteStream`classes.
25
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/tty.js)
25
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tty.js)
26
26
  */
27
27
  declare module 'tty' {
28
28
  import * as net from 'node:net';
@@ -52,7 +52,9 @@ declare module 'tty' {
52
52
  *
53
53
  * When in raw mode, input is always available character-by-character, not
54
54
  * including modifiers. Additionally, all special processing of characters by the
55
- * terminal is disabled, including echoing input characters.Ctrl+C will no longer cause a `SIGINT` when in this mode.
55
+ * terminal is disabled, including echoing input
56
+ * characters. Ctrl+C will no longer cause a `SIGINT` when
57
+ * in this mode.
56
58
  * @since v0.7.7
57
59
  * @param mode If `true`, configures the `tty.ReadStream` to operate as a raw device. If `false`, configures the `tty.ReadStream` to operate in its default mode. The `readStream.isRaw`
58
60
  * property will be set to the resulting mode.
@@ -5,7 +5,7 @@
5
5
  * ```js
6
6
  * import url from 'url';
7
7
  * ```
8
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/url.js)
8
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/url.js)
9
9
  */
10
10
  declare module 'url' {
11
11
  import { Blob } from 'node:buffer';
@@ -205,7 +205,7 @@ declare module 'url' {
205
205
  function format(urlObject: UrlObject | string): string;
206
206
  /**
207
207
  * The `url.resolve()` method resolves a target URL relative to a base URL in a
208
- * manner similar to that of a Web browser resolving an anchor tag HREF.
208
+ * manner similar to that of a web browser resolving an anchor tag.
209
209
  *
210
210
  * ```js
211
211
  * const url = require('url');
@@ -214,7 +214,7 @@ declare module 'url' {
214
214
  * url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'
215
215
  * ```
216
216
  *
217
- * You can achieve the same result using the WHATWG URL API:
217
+ * To achieve the same result using the WHATWG URL API:
218
218
  *
219
219
  * ```js
220
220
  * function resolve(from, to) {
@@ -233,8 +233,8 @@ declare module 'url' {
233
233
  * ```
234
234
  * @since v0.1.25
235
235
  * @deprecated Legacy: Use the WHATWG URL API instead.
236
- * @param from The Base URL being resolved against.
237
- * @param to The HREF URL being resolved.
236
+ * @param from The base URL to use if `to` is a relative URL.
237
+ * @param to The target URL to resolve.
238
238
  */
239
239
  function resolve(from: string, to: string): string;
240
240
  /**
@@ -332,7 +332,7 @@ declare module 'url' {
332
332
  * const myURL = new URL('https://a:b@測試?abc#foo');
333
333
  *
334
334
  * console.log(urlToHttpOptions(myURL));
335
- *
335
+ * /*
336
336
  * {
337
337
  * protocol: 'https:',
338
338
  * hostname: 'xn--g6w251d',
@@ -397,7 +397,8 @@ declare module 'url' {
397
397
  */
398
398
  static createObjectURL(blob: Blob): string;
399
399
  /**
400
- * Removes the stored `Blob` identified by the given ID.
400
+ * Removes the stored `Blob` identified by the given ID. Attempting to revoke a
401
+ * ID that isn’t registered will silently fail.
401
402
  * @since v16.7.0
402
403
  * @experimental
403
404
  * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.
@@ -859,7 +860,6 @@ declare module 'url' {
859
860
  values(): IterableIterator<string>;
860
861
  [Symbol.iterator](): IterableIterator<[string, string]>;
861
862
  }
862
-
863
863
  import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url';
864
864
  global {
865
865
  interface URLSearchParams extends _URLSearchParams {}
@@ -873,21 +873,23 @@ declare module 'url' {
873
873
  * https://nodejs.org/api/url.html#the-whatwg-url-api
874
874
  * @since v10.0.0
875
875
  */
876
- var URL:
877
- // For compatibility with "dom" and "webworker" URL declarations
878
- typeof globalThis extends { onmessage: any, URL: infer URL }
879
- ? URL
880
- : typeof _URL;
876
+ var URL: typeof globalThis extends {
877
+ onmessage: any;
878
+ URL: infer URL;
879
+ }
880
+ ? URL
881
+ : typeof _URL;
881
882
  /**
882
883
  * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`
883
884
  * https://nodejs.org/api/url.html#class-urlsearchparams
884
885
  * @since v10.0.0
885
886
  */
886
- var URLSearchParams:
887
- // For compatibility with "dom" and "webworker" URLSearchParams declarations
888
- typeof globalThis extends { onmessage: any, URLSearchParams: infer URLSearchParams }
889
- ? URLSearchParams
890
- : typeof _URLSearchParams;
887
+ var URLSearchParams: typeof globalThis extends {
888
+ onmessage: any;
889
+ URLSearchParams: infer URLSearchParams;
890
+ }
891
+ ? URLSearchParams
892
+ : typeof _URLSearchParams;
891
893
  }
892
894
  }
893
895
  declare module 'node:url' {
@@ -6,7 +6,7 @@
6
6
  * ```js
7
7
  * const util = require('util');
8
8
  * ```
9
- * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/util.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/util.js)
10
10
  */
11
11
  declare module 'util' {
12
12
  import * as types from 'node:util/types';
@@ -309,6 +309,21 @@ declare module 'util' {
309
309
  * );
310
310
  * ```
311
311
  *
312
+ * The `numericSeparator` option adds an underscore every three digits to all
313
+ * numbers.
314
+ *
315
+ * ```js
316
+ * const { inspect } = require('util');
317
+ *
318
+ * const thousand = 1_000;
319
+ * const million = 1_000_000;
320
+ * const bigNumber = 123_456_789n;
321
+ * const bigDecimal = 1_234.123_45;
322
+ *
323
+ * console.log(thousand, million, bigNumber, bigDecimal);
324
+ * // 1_000 1_000_000 123_456_789n 1_234.123_45
325
+ * ```
326
+ *
312
327
  * `util.inspect()` is a synchronous method intended for debugging. Its maximum
313
328
  * output length is approximately 128 MB. Inputs that result in longer output will
314
329
  * be truncated.
@@ -859,7 +874,7 @@ declare module 'util' {
859
874
  * callbackFunction((err, ret) => {
860
875
  * // When the Promise was rejected with `null` it is wrapped with an Error and
861
876
  * // the original value is stored in `reason`.
862
- * err &#x26;&#x26; err.hasOwnProperty('reason') &#x26;&#x26; err.reason === null; // true
877
+ * err &#x26;&#x26; Object.hasOwn(err, 'reason') &#x26;&#x26; err.reason === null; // true
863
878
  * });
864
879
  * ```
865
880
  * @since v8.2.0
@@ -998,13 +1013,9 @@ declare module 'util' {
998
1013
  * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextDecoder` API.
999
1014
  *
1000
1015
  * ```js
1001
- * const decoder = new TextDecoder('shift_jis');
1002
- * let string = '';
1003
- * let buffer;
1004
- * while (buffer = getNextChunkSomehow()) {
1005
- * string += decoder.decode(buffer, { stream: true });
1006
- * }
1007
- * string += decoder.decode(); // end-of-stream
1016
+ * const decoder = new TextDecoder();
1017
+ * const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
1018
+ * console.log(decoder.decode(u8arr)); // Hello
1008
1019
  * ```
1009
1020
  * @since v8.3.0
1010
1021
  */