diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 5a7f9d08a15e5f..dd71726a8e33ce 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -40,6 +40,17 @@ However, the deprecation identifier will not be modified. ### DEP0001: http.OutgoingMessage.prototype.flush + Type: Runtime @@ -48,6 +59,18 @@ The `OutgoingMessage.prototype.flush()` method is deprecated. Use ### DEP0002: require('\_linklist') + Type: End-of-Life @@ -55,6 +78,17 @@ The `_linklist` module is deprecated. Please use a userland alternative. ### DEP0003: \_writableState.buffer + Type: Runtime @@ -63,6 +97,20 @@ The `_writableState.buffer` property is deprecated. Use the ### DEP0004: CryptoStream.prototype.readyState + Type: End-of-Life @@ -70,6 +118,18 @@ The `CryptoStream.prototype.readyState` property was removed. ### DEP0005: Buffer() constructor + Type: Runtime (supports [`--pending-deprecation`][]) @@ -98,6 +158,18 @@ outside `node_modules` in order to better target developers, rather than users. ### DEP0006: child\_process options.customFds + Type: Runtime @@ -107,6 +179,21 @@ option should be used instead. ### DEP0007: Replace cluster worker.suicide with worker.exitedAfterDisconnect + Type: End-of-Life @@ -119,6 +206,15 @@ precisely describe the actual semantics and was unnecessarily emotion-laden. ### DEP0008: require('constants') + Type: Documentation-only @@ -129,6 +225,18 @@ to the `constants` property exposed by the relevant module. For instance, ### DEP0009: crypto.pbkdf2 without digest + Type: End-of-Life @@ -140,6 +248,20 @@ undefined `digest` will throw a `TypeError`. ### DEP0010: crypto.createCredentials + Type: End-of-Life @@ -148,6 +270,20 @@ The `crypto.createCredentials()` API was removed. Please use ### DEP0011: crypto.Credentials + Type: End-of-Life @@ -156,6 +292,20 @@ instead. ### DEP0012: Domain.dispose + Type: End-of-Life @@ -164,6 +314,15 @@ explicitly via error event handlers set on the domain instead. ### DEP0013: fs asynchronous function without callback + Type: End-of-Life @@ -172,6 +331,23 @@ in Node.js 10.0.0 onwards. (See https://github.com/nodejs/node/pull/12562.) ### DEP0014: fs.read legacy String interface + Type: End-of-Life @@ -180,6 +356,23 @@ API as mentioned in the documentation instead. ### DEP0015: fs.readSync legacy String interface + Type: End-of-Life @@ -188,6 +381,15 @@ The [`fs.readSync()`][] legacy `String` interface is deprecated. Use the ### DEP0016: GLOBAL/root + Type: Runtime @@ -196,6 +398,15 @@ and should no longer be used. ### DEP0017: Intl.v8BreakIterator + Type: End-of-Life @@ -204,6 +415,12 @@ See [`Intl.Segmenter`](https://github.com/tc39/proposal-intl-segmenter). ### DEP0018: Unhandled promise rejections + Type: Runtime @@ -213,6 +430,17 @@ code. ### DEP0019: require('.') resolved outside directory + Type: Runtime @@ -222,6 +450,17 @@ release. ### DEP0020: Server.connections + Type: Runtime @@ -230,6 +469,17 @@ The [`Server.connections`][] property is deprecated. Please use the ### DEP0021: Server.listenFD + Type: Runtime @@ -238,6 +488,12 @@ The `Server.listenFD()` method is deprecated. Please use ### DEP0022: os.tmpDir() + Type: Runtime @@ -245,6 +501,17 @@ The `os.tmpDir()` API is deprecated. Please use [`os.tmpdir()`][] instead. ### DEP0023: os.getNetworkInterfaces() + Type: Runtime @@ -253,6 +520,15 @@ The `os.getNetworkInterfaces()` method is deprecated. Please use the ### DEP0024: REPLServer.prototype.convertToContext() + Type: End-of-Life @@ -260,6 +536,17 @@ The `REPLServer.prototype.convertToContext()` API has been removed. ### DEP0025: require('sys') + Type: Runtime @@ -267,6 +554,17 @@ The `sys` module is deprecated. Please use the [`util`][] module instead. ### DEP0026: util.print() + Type: Runtime @@ -275,6 +573,17 @@ instead. ### DEP0027: util.puts() + Type: Runtime @@ -282,6 +591,17 @@ The [`util.puts()`][] API is deprecated. Please use [`console.log()`][] instead. ### DEP0028: util.debug() + Type: Runtime @@ -290,6 +610,17 @@ instead. ### DEP0029: util.error() + Type: Runtime @@ -298,6 +629,15 @@ instead. ### DEP0030: SlowBuffer + Type: Documentation-only @@ -306,6 +646,15 @@ The [`SlowBuffer`][] class is deprecated. Please use ### DEP0031: ecdh.setPublicKey() + Type: Documentation-only @@ -314,6 +663,17 @@ API is not useful. ### DEP0032: domain module + Type: Documentation-only @@ -321,6 +681,17 @@ The [`domain`][] module is deprecated and should not be used. ### DEP0033: EventEmitter.listenerCount() + Type: Documentation-only @@ -329,6 +700,17 @@ deprecated. Please use [`emitter.listenerCount(eventName)`][] instead. ### DEP0034: fs.exists(path, callback) + Type: Documentation-only @@ -337,6 +719,16 @@ The [`fs.exists(path, callback)`][] API is deprecated. Please use ### DEP0035: fs.lchmod(path, mode, callback) + Type: Documentation-only @@ -344,13 +736,74 @@ The [`fs.lchmod(path, mode, callback)`][] API is deprecated. ### DEP0036: fs.lchmodSync(path, mode) + Type: Documentation-only The [`fs.lchmodSync(path, mode)`][] API is deprecated. + +### DEP0037: fs.lchown(path, uid, gid, callback) + + +Type: Deprecation revoked + +The [`fs.lchown(path, uid, gid, callback)`][] API is deprecated. + + +### DEP0038: fs.lchownSync(path, uid, gid) + + +Type: Deprecation revoked + +The [`fs.lchownSync(path, uid, gid)`][] API is deprecated. + ### DEP0039: require.extensions + Type: Documentation-only @@ -358,6 +811,12 @@ The [`require.extensions`][] property is deprecated. ### DEP0040: punycode module + Type: Documentation-only @@ -366,6 +825,20 @@ instead. ### DEP0041: NODE\_REPL\_HISTORY\_FILE environment variable + Type: End-of-Life @@ -374,6 +847,20 @@ The `NODE_REPL_HISTORY_FILE` environment variable was removed. Please use ### DEP0042: tls.CryptoStream + Type: End-of-Life @@ -382,6 +869,26 @@ The [`tls.CryptoStream`][] class was removed. Please use ### DEP0043: tls.SecurePair + Type: Documentation-only @@ -390,6 +897,19 @@ The [`tls.SecurePair`][] class is deprecated. Please use ### DEP0044: util.isArray() + Type: Documentation-only @@ -398,6 +918,19 @@ instead. ### DEP0045: util.isBoolean() + Type: Documentation-only @@ -405,6 +938,19 @@ The [`util.isBoolean()`][] API is deprecated. ### DEP0046: util.isBuffer() + Type: Documentation-only @@ -413,6 +959,19 @@ The [`util.isBuffer()`][] API is deprecated. Please use ### DEP0047: util.isDate() + Type: Documentation-only @@ -420,6 +979,19 @@ The [`util.isDate()`][] API is deprecated. ### DEP0048: util.isError() + Type: Documentation-only @@ -427,6 +999,19 @@ The [`util.isError()`][] API is deprecated. ### DEP0049: util.isFunction() + Type: Documentation-only @@ -434,6 +1019,19 @@ The [`util.isFunction()`][] API is deprecated. ### DEP0050: util.isNull() + Type: Documentation-only @@ -441,6 +1039,19 @@ The [`util.isNull()`][] API is deprecated. ### DEP0051: util.isNullOrUndefined() + Type: Documentation-only @@ -448,6 +1059,19 @@ The [`util.isNullOrUndefined()`][] API is deprecated. ### DEP0052: util.isNumber() + Type: Documentation-only @@ -455,6 +1079,19 @@ The [`util.isNumber()`][] API is deprecated. ### DEP0053 util.isObject() + Type: Documentation-only @@ -462,6 +1099,19 @@ The [`util.isObject()`][] API is deprecated. ### DEP0054: util.isPrimitive() + Type: Documentation-only @@ -469,6 +1119,19 @@ The [`util.isPrimitive()`][] API is deprecated. ### DEP0055: util.isRegExp() + Type: Documentation-only @@ -476,6 +1139,19 @@ The [`util.isRegExp()`][] API is deprecated. ### DEP0056: util.isString() + Type: Documentation-only @@ -483,6 +1159,19 @@ The [`util.isString()`][] API is deprecated. ### DEP0057: util.isSymbol() + Type: Documentation-only @@ -490,6 +1179,19 @@ The [`util.isSymbol()`][] API is deprecated. ### DEP0058: util.isUndefined() + Type: Documentation-only @@ -497,6 +1199,15 @@ The [`util.isUndefined()`][] API is deprecated. ### DEP0059: util.log() + Type: Documentation-only @@ -504,6 +1215,15 @@ The [`util.log()`][] API is deprecated. ### DEP0060: util.\_extend() + Type: Documentation-only @@ -511,6 +1231,18 @@ The [`util._extend()`][] API is deprecated. ### DEP0061: fs.SyncWriteStream + Type: End-of-Life @@ -520,6 +1252,12 @@ alternative. ### DEP0062: node --debug + Type: Runtime @@ -529,6 +1267,12 @@ instead. ### DEP0063: ServerResponse.prototype.writeHeader() + Type: Documentation-only @@ -540,6 +1284,26 @@ officially supported API. ### DEP0064: tls.createSecurePair() + Type: Runtime @@ -548,6 +1312,15 @@ The `tls.createSecurePair()` API was deprecated in documentation in Node.js ### DEP0065: repl.REPL_MODE_MAGIC and NODE_REPL_MODE=magic + Type: End-of-Life @@ -562,6 +1335,12 @@ removed. Please use `sloppy` instead. ### DEP0066: outgoingMessage.\_headers, outgoingMessage.\_headerNames + Type: Documentation-only @@ -577,6 +1356,12 @@ were never documented as officially supported properties. ### DEP0067: OutgoingMessage.prototype.\_renderHeaders + Type: Documentation-only @@ -588,6 +1373,12 @@ an officially supported API. ### DEP0068: node debug + Type: Runtime @@ -596,6 +1387,18 @@ a V8-inspector based CLI debugger available through `node inspect`. ### DEP0069: vm.runInDebugContext(string) + Type: End-of-Life @@ -605,6 +1408,15 @@ DebugContext was an experimental API. ### DEP0070: async_hooks.currentId() + Type: End-of-Life @@ -615,6 +1427,15 @@ This change was made while `async_hooks` was an experimental API. ### DEP0071: async_hooks.triggerId() + Type: End-of-Life @@ -625,6 +1446,15 @@ This change was made while `async_hooks` was an experimental API. ### DEP0072: async_hooks.AsyncResource.triggerId() + Type: End-of-Life @@ -635,6 +1465,15 @@ This change was made while `async_hooks` was an experimental API. ### DEP0073: Several internal properties of net.Server + Type: End-of-Life @@ -646,6 +1485,12 @@ code, no replacement API is provided. ### DEP0074: REPLServer.bufferedCommand + Type: Runtime @@ -654,6 +1499,12 @@ The `REPLServer.bufferedCommand` property was deprecated in favor of ### DEP0075: REPLServer.parseREPLKeyword() + Type: Runtime @@ -661,6 +1512,15 @@ Type: Runtime ### DEP0076: tls.parseCertString() + Type: Runtime @@ -684,6 +1544,12 @@ difference is that `querystring.parse()` does url decoding: ### DEP0077: Module.\_debug() + Type: Runtime @@ -694,6 +1560,12 @@ supported API. ### DEP0078: REPLServer.turnOffEditorMode() + Type: Runtime @@ -701,6 +1573,18 @@ Type: Runtime ### DEP0079: Custom inspection function on Objects via .inspect() + Type: End-of-Life @@ -711,6 +1595,12 @@ may be specified. ### DEP0080: path.\_makeLong() + Type: Documentation-only @@ -720,6 +1610,12 @@ and replaced with an identical, public `path.toNamespacedPath()` method. ### DEP0081: fs.truncate() using a file descriptor + Type: Runtime @@ -729,6 +1625,12 @@ file descriptors. ### DEP0082: REPLServer.prototype.memory() + Type: Runtime @@ -737,6 +1639,12 @@ the `REPLServer` itself. Do not use this function. ### DEP0083: Disabling ECDH by setting ecdhCurve to false + Type: Runtime @@ -747,6 +1655,12 @@ the client. Use the `ciphers` parameter instead. ### DEP0084: requiring bundled internal dependencies + Type: Runtime @@ -778,6 +1692,17 @@ code modification is necessary if that is done. ### DEP0085: AsyncHooks Sensitive API + Type: End-of-Life @@ -787,6 +1712,17 @@ API instead. ### DEP0086: Remove runInAsyncIdScope + Type: End-of-Life @@ -796,6 +1732,14 @@ details. ### DEP0089: require('assert') + Type: Documentation-only @@ -805,6 +1749,15 @@ same as the legacy assert but it will always use strict equality checks. ### DEP0090: Invalid GCM authentication tag lengths + Type: End-of-Life @@ -816,6 +1769,12 @@ considered invalid in compliance with [NIST SP 800-38D][]. ### DEP0091: crypto.DEFAULT_ENCODING + Type: Runtime @@ -823,6 +1782,12 @@ The [`crypto.DEFAULT_ENCODING`][] property is deprecated. ### DEP0092: Top-level `this` bound to `module.exports` + Type: Documentation-only @@ -832,6 +1797,12 @@ or `module.exports` instead. ### DEP0093: crypto.fips is deprecated and replaced. + Type: Documentation-only @@ -840,6 +1811,12 @@ and `crypto.getFips()` instead. ### DEP0094: Using `assert.fail()` with more than one argument. + Type: Runtime @@ -849,6 +1826,12 @@ method. ### DEP0095: timers.enroll() + Type: Runtime @@ -857,6 +1840,12 @@ Type: Runtime ### DEP0096: timers.unenroll() + Type: Runtime @@ -865,6 +1854,12 @@ Type: Runtime ### DEP0097: MakeCallback with domain property + Type: Runtime @@ -874,6 +1869,15 @@ should start using the `async_context` variant of `MakeCallback` or ### DEP0098: AsyncHooks Embedder AsyncResource.emitBefore and AsyncResource.emitAfter APIs + Type: Runtime @@ -887,6 +1891,12 @@ https://github.com/nodejs/node/pull/18513 for more details. ### DEP0099: async context-unaware node::MakeCallback C++ APIs + Type: Compile-time @@ -896,6 +1906,14 @@ parameter. ### DEP0100: process.assert() + Type: Runtime @@ -905,6 +1923,12 @@ This was never a documented feature. ### DEP0101: --with-lttng + Type: End-of-Life @@ -912,6 +1936,12 @@ The `--with-lttng` compile-time option has been removed. ### DEP0102: Using `noAssert` in Buffer#(read|write) operations. + Type: End-of-Life @@ -921,6 +1951,15 @@ could lead to hard to find errors and crashes. ### DEP0103: process.binding('util').is[...] typechecks + Type: Documentation-only (supports [`--pending-deprecation`][]) @@ -932,6 +1971,12 @@ This deprecation has been superseded by the deprecation of the ### DEP0104: process.env string coercion + Type: Documentation-only (supports [`--pending-deprecation`][]) @@ -943,6 +1988,15 @@ assigning it to `process.env`. ### DEP0105: decipher.finaltol + Type: End-of-Life @@ -952,6 +2006,15 @@ Type: End-of-Life ### DEP0106: crypto.createCipher and crypto.createDecipher + Type: Runtime @@ -964,6 +2027,15 @@ initialization vectors. It is recommended to derive a key using ### DEP0107: tls.convertNPNProtocols() + Type: End-of-Life @@ -972,6 +2044,12 @@ core and obsoleted by the removal of NPN (Next Protocol Negotiation) support. ### DEP0108: zlib.bytesRead + Type: Documentation-only @@ -982,6 +2060,12 @@ expose values under these names. ### DEP0109: http, https, and tls support for invalid URLs + Type: Runtime @@ -994,6 +2078,12 @@ deprecated and support will be removed in the future. ### DEP0110: vm.Script cached data + Type: Documentation-only @@ -1002,6 +2092,12 @@ The `produceCachedData` option is deprecated. Use ### DEP0111: process.binding() + Type: Documentation-only @@ -1010,6 +2106,12 @@ only. Use of `process.binding()` by userland code is unsupported. ### DEP0112: dgram private APIs + Type: Runtime @@ -1022,6 +2124,12 @@ accessed outside of Node.js core: `Socket.prototype._handle`, ### DEP0113: Cipher.setAuthTag(), Decipher.getAuthTag() + Type: Runtime @@ -1032,6 +2140,12 @@ release. ### DEP0114: crypto._toBuf() + Type: Runtime @@ -1040,6 +2154,12 @@ of Node.js core and will be removed in the future. ### DEP0115: crypto.prng(), crypto.pseudoRandomBytes(), crypto.rng() + Type: Runtime @@ -1051,6 +2171,12 @@ future release. ### DEP0116: Legacy URL API + Type: Documentation @@ -1096,6 +2222,8 @@ use the [WHATWG URL API][] instead. [`fs.exists(path, callback)`]: fs.html#fs_fs_exists_path_callback [`fs.lchmod(path, mode, callback)`]: fs.html#fs_fs_lchmod_path_mode_callback [`fs.lchmodSync(path, mode)`]: fs.html#fs_fs_lchmodsync_path_mode +[`fs.lchown(path, uid, gid, callback)`]: fs.html#fs_fs_lchown_path_uid_gid_callback +[`fs.lchownSync(path, uid, gid)`]: fs.html#fs_fs_lchownsync_path_uid_gid [`fs.read()`]: fs.html#fs_fs_read_fd_buffer_offset_length_position_callback [`fs.readSync()`]: fs.html#fs_fs_readsync_fd_buffer_offset_length_position [`fs.stat()`]: fs.html#fs_fs_stat_path_options_callback diff --git a/tools/doc/common.js b/tools/doc/common.js index 7d8aefb65d84fd..86daae6cfc6d56 100644 --- a/tools/doc/common.js +++ b/tools/doc/common.js @@ -43,4 +43,4 @@ function extractAndParseYAML(text) { return meta; } -module.exports = { isYAMLBlock, extractAndParseYAML }; +module.exports = { arrify, isYAMLBlock, extractAndParseYAML }; diff --git a/tools/doc/html.js b/tools/doc/html.js index 5babe1c97e679a..c0a94b6534b171 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -308,7 +308,9 @@ function parseYAML(text) { .use(htmlStringify) .processSync(change.description).toString(); - result += `${change.version}\n` + + const version = common.arrify(change.version).join(', '); + + result += `${version}\n` + `${description}\n`; }); @@ -326,10 +328,16 @@ function parseYAML(text) { return result; } +function minVersion(a) { + return common.arrify(a).reduce((min, e) => { + return !min || versionSort(min, e) < 0 ? e : min; + }); +} + const numberRe = /^\d*/; function versionSort(a, b) { - a = a.trim(); - b = b.trim(); + a = minVersion(a).trim(); + b = minVersion(b).trim(); let i = 0; // Common prefix length. while (i < a.length && i < b.length && a[i] === b[i]) i++; a = a.substr(i);