diff --git a/CHANGELOG.md b/CHANGELOG.md index 45e188ec015945..af52e612773661 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Select a Node.js version below to view the changelog history: +* [Node.js 15](doc/changelogs/CHANGELOG_V15.md) **Current** * [Node.js 14](doc/changelogs/CHANGELOG_V14.md) **Current** * [Node.js 13](doc/changelogs/CHANGELOG_V13.md) End-of-Life * [Node.js 12](doc/changelogs/CHANGELOG_V12.md) **Long Term Support** @@ -24,12 +25,16 @@ release. + +
15Current 14Current 12LTS 10LTS
+15.0.0
+
14.10.1
14.10.0
14.9.0
diff --git a/doc/api/assert.md b/doc/api/assert.md index 1dda787563271b..96679a58be0d22 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -13,7 +13,7 @@ invariants. diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 822188d6a06ae8..9cdf290d20a734 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -461,7 +461,7 @@ This behavior has been removed. ### DEP0020: `Server.connections` Indicates that an operation cannot be completed due to an invalid state. @@ -1607,14 +1607,14 @@ is thrown if a required option is missing. ### `ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST` An object that needs to be explicitly listed in the `transferList` argument is in the object passed to a [`postMessage()`][] call, but is not provided in the `transferList` for that call. Usually, this is a `MessagePort`. -In Node.js versions prior to REPLACEME, the error code being used here was +In Node.js versions prior to v15.0.0, the error code being used here was [`ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST`][]. However, the set of transferable object types has been expanded to cover more types than `MessagePort`. @@ -2402,11 +2402,11 @@ An invalid or unknown file encoding was passed. ### `ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST` This error code was replaced by [`ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST`][] -in Node.js REPLACEME, because it is no longer accurate as other types of +in Node.js v15.0.0, because it is no longer accurate as other types of transferable objects also exist now. @@ -2427,7 +2427,7 @@ A Node.js API was called in an unsupported manner, such as ### `ERR_OPERATION_FAILED` An operation failed. This is typically used to signal the general failure diff --git a/doc/api/globals.md b/doc/api/globals.md index 4844c86134e39c..83cb5513883678 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -19,7 +19,7 @@ accessible. ## Class: `AbortController` > Stability: 1 - Experimental @@ -42,7 +42,7 @@ console.log(ac.signal.aborted); // Prints True ### `abortController.abort()` Triggers the abort signal, causing the `abortController.signal` to emit @@ -50,14 +50,14 @@ the `'abort'` event. ### `abortController.signal` * Type: {AbortSignal} ### Class: `AbortSignal` * Extends: {EventTarget} @@ -67,7 +67,7 @@ The `AbortSignal` is used to notify observers when the #### Event: `'abort'` The `'abort'` event is emitted when the `abortController.abort()` method @@ -97,14 +97,14 @@ Failure to do so may result in memory leaks. #### `abortSignal.aborted` * Type: {boolean} True after the `AbortController` has been aborted. #### `abortSignal.onabort` * Type: {Function} diff --git a/doc/api/http2.md b/doc/api/http2.md index 31c80564ddd142..e9a0335c1afbe5 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -2,7 +2,7 @@ * {symbol} diff --git a/doc/api/net.md b/doc/api/net.md index 72324760f88fc5..84e63f1f7abd98 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -57,7 +57,7 @@ net.createServer().listen( ## Class: `net.BlockList` The `BlockList` object can be used with some network APIs to specify rules for @@ -66,7 +66,7 @@ IP subnets. ### `blockList.addAddress(address[, type])` * `address` {string} An IPv4 or IPv6 address. @@ -76,7 +76,7 @@ Adds a rule to block the given IP address. ### `blockList.addRange(start, end[, type])` * `start` {string} The starting IPv4 or IPv6 address in the range. @@ -88,7 +88,7 @@ Adds a rule to block a range of IP addresses from `start` (inclusive) to ### `blockList.addSubnet(net, prefix[, type])` * `net` {string} The network IPv4 or IPv6 address. @@ -101,7 +101,7 @@ Adds a rule to block a range of IP addresses specified as a subnet mask. ### `blockList.check(address[, type])` * `address` {string} The IP address to check @@ -128,7 +128,7 @@ console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true ### `blockList.rules` * Type: {string[]} @@ -1193,7 +1193,7 @@ then returns the `net.Socket` that starts the connection. ## `net.createQuicSocket([options])` Creates and returns a new `QuicSocket`. Please refer to the [QUIC documentation][] diff --git a/doc/api/quic.md b/doc/api/quic.md index 1839f1ebf10958..db889afb754e11 100644 --- a/doc/api/quic.md +++ b/doc/api/quic.md @@ -1,6 +1,6 @@ # QUIC - + > Stability: 1 - Experimental @@ -251,7 +251,7 @@ TBD ### `net.createQuicSocket([options])` * `options` {Object} @@ -294,7 +294,7 @@ instances associated with a local UDP address. ### Class: `QuicEndpoint` The `QuicEndpoint` wraps a local UDP binding used by a `QuicSocket` to send @@ -305,7 +305,7 @@ Users will not create instances of `QuicEndpoint` directly. #### `quicendpoint.addMembership(address, iface)` * `address` {string} @@ -320,7 +320,7 @@ interface. #### `quicendpoint.address` * Type: Address @@ -338,7 +338,7 @@ If the `QuicEndpoint` is not bound, `quicendpoint.address` is an empty object. #### `quicendpoint.bind([options])` Binds the `QuicEndpoint` if it has not already been bound. User code will @@ -366,7 +366,7 @@ pending `Promise` will be returned. If the additional call to #### `quicendpoint.bound` * Type: {boolean} @@ -375,7 +375,7 @@ Set to `true` if the `QuicEndpoint` is bound to the local UDP port. #### `quicendpoint.close()` Closes and destroys the `QuicEndpoint`. Returns a `Promise` that is resolved @@ -389,7 +389,7 @@ The `Promise` cannot be canceled. Once `quicendpoint.close()` is called, the #### `quicendpoint.closing` * Type: {boolean} @@ -398,7 +398,7 @@ Set to `true` if the `QuicEndpoint` is in the process of closing. #### `quicendpoint.destroy([error])` * `error` {Object} An `Error` object. @@ -407,7 +407,7 @@ Closes and destroys the `QuicEndpoint` instance making it usuable. #### `quicendpoint.destroyed` * Type: {boolean} @@ -416,7 +416,7 @@ Set to `true` if the `QuicEndpoint` has been destroyed. #### `quicendpoint.dropMembership(address, iface)` * `address` {string} @@ -432,7 +432,7 @@ drop membership on all valid interfaces. #### `quicendpoint.fd` * Type: {integer} @@ -442,7 +442,7 @@ is not set on Windows. #### `quicendpoint.pending` * Type: {boolean} @@ -452,12 +452,12 @@ the local UDP port. #### `quicendpoint.ref()` #### `quicendpoint.setBroadcast([on])` * `on` {boolean} @@ -467,7 +467,7 @@ packets may be sent to a local interface's broadcast address. #### `quicendpoint.setMulticastInterface(iface)` * `iface` {string} @@ -493,7 +493,7 @@ successful use of this call. ##### Examples: IPv6 outgoing multicast interface On most systems, where scope format uses the interface name: @@ -519,7 +519,7 @@ socket.on('ready', () => { ##### Example: IPv4 outgoing multicast interface All systems use an IP of the host on the desired physical interface: @@ -554,7 +554,7 @@ the system for future multicast packets. #### `quicendpoint.setMulticastLoopback([on])` * `on` {boolean} @@ -564,7 +564,7 @@ multicast packets will also be received on the local interface. #### `quicendpoint.setMulticastTTL(ttl)` * `ttl` {number} @@ -580,7 +580,7 @@ The argument passed to `setMulticastTTL()` is a number of hops between #### `quicendpoint.setTTL(ttl)` * `ttl` {number} @@ -596,12 +596,12 @@ The default on most systems is `64` but can vary. #### `quicendpoint.unref()` ### Class: `QuicSession extends EventEmitter` * Extends: {EventEmitter} @@ -612,7 +612,7 @@ Users will not create instances of `QuicSession` directly. #### Event: `'close'` Emitted after the `QuicSession` has been destroyed and is no longer usable. @@ -621,7 +621,7 @@ The `'close'` event will not be emitted more than once. #### Event: `'error'` Emitted immediately before the `'close'` event if the `QuicSession` was @@ -635,7 +635,7 @@ The `'error'` event will not be emitted more than once. #### Event: `'keylog'` Emitted when key material is generated or received by a `QuicSession` @@ -660,7 +660,7 @@ The `'keylog'` event will be emitted multiple times. #### Event: `'pathValidation'` Emitted when a path validation result has been determined. This event @@ -678,7 +678,7 @@ The `'pathValidation'` event will be emitted multiple times. #### Event: `'secure'` Emitted after the TLS handshake has been completed. @@ -698,7 +698,7 @@ The `'secure'` event will not be emitted more than once. #### Event: `'stream'` Emitted when a new `QuicStream` has been initiated by the connected peer. @@ -707,7 +707,7 @@ The `'stream'` event may be emitted multiple times. #### `quicsession.ackDelayRetransmitCount` * Type: {number} @@ -716,7 +716,7 @@ The number of retransmissions caused by delayed acknowledgements. #### `quicsession.address` * Type: {Object} @@ -730,7 +730,7 @@ the `QuicSession` is currently associated. #### `quicsession.alpnProtocol` * Type: {string} @@ -739,7 +739,7 @@ The ALPN protocol identifier negotiated for this session. #### `quicsession.authenticated` * Type: {boolean} @@ -755,7 +755,7 @@ representing the reason the peer certificate verification failed. #### `quicsession.bidiStreamCount` * Type: {number} @@ -764,7 +764,7 @@ The total number of bidirectional streams created for this `QuicSession`. #### `quicsession.blockCount` * Type: {number} @@ -777,7 +777,7 @@ quickly enough by the connected peer. #### `quicsession.bytesInFlight` * Type: {number} @@ -787,7 +787,7 @@ to the connected peer. #### `quicsession.bytesReceived` * Type: {number} @@ -796,7 +796,7 @@ The total number of bytes received from the peer. #### `quicsession.bytesSent` * Type: {number} @@ -805,7 +805,7 @@ The total number of bytes sent to the peer. #### `quicsession.cipher` * Type: {Object} @@ -816,7 +816,7 @@ Information about the cipher algorithm selected for the session. #### `quicsession.close()` Begins a graceful close of the `QuicSession`. Existing `QuicStream` instances @@ -827,7 +827,7 @@ instance will be destroyed. Returns a `Promise` that is resolved once the #### `quicsession.closeCode` * Type: {Object} * `code` {number} The error code reported when the `QuicSession` closed. @@ -837,7 +837,7 @@ added: REPLACEME #### `quicsession.closing` * Type: {boolean} @@ -846,7 +846,7 @@ Set to `true` if the `QuicSession` is in the process of a graceful shutdown. #### `quicsession.destroy([error])` * `error` {any} @@ -859,7 +859,7 @@ Any `QuicStream` instances that are still opened will be abruptly closed. #### `quicsession.destroyed` * Type: {boolean} @@ -868,7 +868,7 @@ Set to `true` if the `QuicSession` has been destroyed. #### `quicsession.duration` * Type: {number} @@ -877,7 +877,7 @@ The length of time the `QuicSession` was active. #### `quicsession.getCertificate()` * Returns: {Object} A [Certificate Object][]. @@ -890,7 +890,7 @@ an empty object will be returned. #### `quicsession.getPeerCertificate([detailed])` * `detailed` {boolean} Include the full certificate chain if `true`, otherwise @@ -907,21 +907,21 @@ representing the issuer's certificate. #### `quicsession.handshakeAckHistogram` TBD #### `quicsession.handshakeContinuationHistogram` TBD #### `quicsession.handshakeComplete` * Type: {boolean} @@ -930,7 +930,7 @@ Set to `true` if the TLS handshake has completed. #### `quicsession.handshakeConfirmed` * Type: {boolean} @@ -939,7 +939,7 @@ Set to `true` when the TLS handshake completion has been confirmed. #### `quicsession.handshakeDuration` * Type: {number} @@ -948,7 +948,7 @@ The length of time taken to complete the TLS handshake. #### `quicsession.idleTimeout` * Type: {boolean} @@ -957,7 +957,7 @@ Set to `true` if the `QuicSession` was closed due to an idle timeout. #### `quicsession.keyUpdateCount` * Type: {number} @@ -966,7 +966,7 @@ The number of key update operations that have occured. #### `quicsession.latestRTT` * Type: {number} @@ -975,7 +975,7 @@ The most recently recorded RTT for this `QuicSession`. #### `quicsession.lossRetransmitCount` * Type: {number} @@ -985,7 +985,7 @@ this `QuicSession`. #### `quicsession.maxDataLeft` * Type: {number} @@ -995,7 +995,7 @@ send to the connected peer. #### `quicsession.maxInFlightBytes` * Type: {number} @@ -1004,7 +1004,7 @@ The maximum number of in-flight bytes recorded for this `QuicSession`. #### `quicsession.maxStreams` * Type: {Object} @@ -1018,7 +1018,7 @@ of the `QuicSession` as the connected peer allows new streams to be created. #### `quicsession.minRTT` * Type: {number} @@ -1027,7 +1027,7 @@ The minimum RTT recorded so far for this `QuicSession`. #### `quicsession.openStream([options])` * `options` {Object} * `halfOpen` {boolean} Set to `true` to open a unidirectional stream, `false` @@ -1048,7 +1048,7 @@ from opening a new stream. #### `quicsession.ping()` The `ping()` method will trigger the underlying QUIC connection to serialize @@ -1061,7 +1061,7 @@ of the `ping()` operation. #### `quicsession.peerInitiatedStreamCount` * Type: {number} @@ -1070,7 +1070,7 @@ The total number of `QuicStreams` initiated by the connected peer. #### `quicsession.qlog` * Type: {stream.Readable} @@ -1083,7 +1083,7 @@ is emitted. #### `quicsession.remoteAddress` * Type: {Object} @@ -1096,7 +1096,7 @@ An object containing the remote address information for the connected peer. #### `quicsession.selfInitiatedStreamCount` * Type: {number} @@ -1105,7 +1105,7 @@ The total number of `QuicStream` instances initiated by this `QuicSession`. #### `quicsession.servername` * Type: {string} @@ -1114,7 +1114,7 @@ The SNI servername requested for this session by the client. #### `quicsession.smoothedRTT` * Type: {number} @@ -1123,7 +1123,7 @@ The modified RTT calculated for this `QuicSession`. #### `quicsession.socket` * Type: {QuicSocket} @@ -1132,7 +1132,7 @@ The `QuicSocket` the `QuicSession` is associated with. #### `quicsession.statelessReset` * Type: {boolean} @@ -1141,7 +1141,7 @@ True if the `QuicSession` was closed due to QUIC stateless reset. #### `quicsession.uniStreamCount` * Type: {number} @@ -1150,7 +1150,7 @@ The total number of unidirectional streams created on this `QuicSession`. #### `quicsession.updateKey()` * Returns: {boolean} `true` if the key update operation is successfully @@ -1163,7 +1163,7 @@ is equal to `true`. #### `quicsession.usingEarlyData` * Type: {boolean} @@ -1175,7 +1175,7 @@ accepted by the server. ### Class: `QuicClientSession extends QuicSession` * Extends: {QuicSession} @@ -1185,7 +1185,7 @@ Instances are created using the `quicsocket.connect()` method. #### Event: `'sessionTicket'` The `'sessionTicket'` event is emitted when a new TLS session ticket has been @@ -1203,7 +1203,7 @@ The `'sessionTicket'` event may be emitted multiple times. #### Event: `'qlog'` The `'qlog'` event is emitted when the `QuicClientSession` is ready to begin @@ -1214,7 +1214,7 @@ providing `qlog` event data. The callback is invoked with a single argument: #### Event: `'usePreferredAddress'` The `'usePreferredAddress'` event is emitted when the client `QuicSession` @@ -1233,7 +1233,7 @@ The `'usePreferredAddress'` event will not be emitted more than once. #### `quicclientsession.ephemeralKeyInfo` * Type: {Object} @@ -1248,7 +1248,7 @@ For example: `{ type: 'ECDH', name: 'prime256v1', size: 256 }`. #### `quicclientsession.setSocket(socket[, natRebinding])` * `socket` {QuicSocket} A `QuicSocket` instance to move this session to. @@ -1264,7 +1264,7 @@ to attempting the migration. ### Class: `QuicServerSession extends QuicSession` * Extends: {QuicSession} @@ -1275,7 +1275,7 @@ Instances are created internally and are emitted using the `QuicSocket` ### Class: `QuicSocket` New instances of `QuicSocket` are created using the `net.createQuicSocket()` @@ -1283,7 +1283,7 @@ method, and can be used as both a client and a server. #### Event: `'busy'` Emitted when the server busy state has been toggled using @@ -1311,7 +1311,7 @@ This `'busy'` event may be emitted multiple times. #### Event: `'close'` Emitted after the `QuicSocket` has been destroyed and is no longer usable. @@ -1320,7 +1320,7 @@ The `'close'` event will only ever be emitted once. #### Event: `'endpointClose'` Emitted after a `QuicEndpoint` associated with the `QuicSocket` closes and @@ -1335,7 +1335,7 @@ closed, the `QuicEndpoint` will also automatically close. #### Event: `'error'` Emitted before the `'close'` event if the `QuicSocket` was destroyed with an @@ -1345,7 +1345,7 @@ The `'error'` event will only ever be emitted once. #### Event: `'listening'` Emitted after `quicsocket.listen()` is called and the `QuicSocket` has started @@ -1356,7 +1356,7 @@ The `'listening'` event will only ever be emitted once. #### Event: `'ready'` Emitted once the `QuicSocket` has been bound to a local UDP port. @@ -1365,7 +1365,7 @@ The `'ready'` event will only ever be emitted once. #### Event: `'session'` Emitted when a new `QuicServerSession` has been created. The callback is @@ -1395,7 +1395,7 @@ automatically and emitting a `'sessionError'` event on the `QuicSocket`. #### Event: `'sessionError'` Emitted when an error occurs processing an event related to a specific @@ -1425,7 +1425,7 @@ server.on('sessionError', (error, session) => { #### `quicsocket.addEndpoint(options)` * `options`: {Object} An object describing the local address to bind to. @@ -1447,7 +1447,7 @@ the `QuicSocket` has been destroyed. #### `quicsocket.blockList` * Type: {net.BlockList} @@ -1465,7 +1465,7 @@ connection attempt will be rejected. #### `quicsocket.bound` * Type: {boolean} @@ -1482,7 +1482,7 @@ Read-only. #### `quicsocket.boundDuration` * Type: {number} @@ -1493,7 +1493,7 @@ Read-only. #### `quicsocket.bytesReceived` * Type: {number} @@ -1504,7 +1504,7 @@ Read-only. #### `quicsocket.bytesSent` * Type: {number} @@ -1515,7 +1515,7 @@ Read-only. #### `quicsocket.clientSessions` * Type: {number} @@ -1527,7 +1527,7 @@ Read-only. #### `quicsocket.close()` * Returns: {Promise} @@ -1539,7 +1539,7 @@ the `QuicSocket` is destroyed. #### `quicsocket.connect([options])` * `options` {Object} @@ -1671,7 +1671,7 @@ Returns a `Promise` that resolves a new `QuicClientSession`. #### `quicsocket.destroy([error])` * `error` {any} @@ -1681,7 +1681,7 @@ event will be emitted after `'close'` if the `error` is not `undefined`. #### `quicsocket.destroyed` * Type: {boolean} @@ -1692,7 +1692,7 @@ Read-only. #### `quicsocket.duration` * Type: {number} @@ -1703,7 +1703,7 @@ Read-only. #### `quicsocket.endpoints` * Type: {QuicEndpoint[]} @@ -1714,7 +1714,7 @@ Read-only. #### `quicsocket.listen([options])` * `options` {Object} @@ -1837,7 +1837,7 @@ once the `QuicSocket` is actively listening. #### `quicsocket.listenDuration` * Type: {number} @@ -1848,7 +1848,7 @@ Read-only #### `quicsocket.listening` * Type: {boolean} @@ -1859,7 +1859,7 @@ Read-only. #### `quicsocket.packetsIgnored` * Type: {number} @@ -1870,7 +1870,7 @@ Read-only. #### `quicsocket.packetsReceived` * Type: {number} @@ -1881,7 +1881,7 @@ Read-only #### `quicsocket.packetsSent` * Type: {number} @@ -1892,7 +1892,7 @@ Read-only #### `quicsocket.pending` * Type: {boolean} @@ -1903,12 +1903,12 @@ Read-only. #### `quicsocket.ref()` #### `quicsocket.serverBusy` * Type: {boolean} When `true`, the `QuicSocket` will reject new connections. @@ -1920,7 +1920,7 @@ error code. To begin receiving connections again, disable busy mode by setting #### `quicsocket.serverBusyCount` * Type: {number} @@ -1931,7 +1931,7 @@ Read-only. #### `quicsocket.serverSessions` * Type: {number} @@ -1943,7 +1943,7 @@ Read-only. #### `quicsocket.setDiagnosticPacketLoss(options)` * `options` {Object} @@ -1960,7 +1960,7 @@ This method is *not* to be used in production applications. #### `quicsocket.statelessReset` * Type: {boolean} `true` if stateless reset processing is enabled; `false` @@ -1974,7 +1974,7 @@ off dynamically through the lifetime of the `QuicSocket`. #### `quicsocket.statelessResetCount` * Type: {number} @@ -1985,19 +1985,19 @@ Read-only. #### `quicsocket.unref();` ### Class: `QuicStream extends stream.Duplex` * Extends: {stream.Duplex} #### Event: `'blocked'` Emitted when the `QuicStream` has been prevented from sending queued data for @@ -2005,7 +2005,7 @@ the `QuicStream` due to congestion control. #### Event: `'close'` Emitted when the `QuicStream` has is completely closed and the underlying @@ -2013,22 +2013,22 @@ resources have been freed. #### Event: `'data'` #### Event: `'end'` #### Event: `'error'` #### Event: `'informationalHeaders'` Emitted when the `QuicStream` has received a block of informational headers. @@ -2048,7 +2048,7 @@ stream('informationalHeaders', (headers) => { #### Event: `'initialHeaders'` Emitted when the `QuicStream` has received a block of initial headers. @@ -2070,7 +2070,7 @@ stream('initialHeaders', (headers) => { #### Event: `'trailingHeaders'` Emitted when the `QuicStream` has received a block of trailing headers. @@ -2092,12 +2092,12 @@ stream('trailingHeaders', (headers) => { #### Event: `'readable'` #### `quicstream.bidirectional` * Type: {boolean} @@ -2109,7 +2109,7 @@ Read-only. #### `quicstream.bytesReceived` * Type: {number} @@ -2120,7 +2120,7 @@ Read-only. #### `quicstream.bytesSent` * Type: {number} @@ -2131,7 +2131,7 @@ Read-only. #### `quicstream.clientInitiated` * Type: {boolean} @@ -2143,7 +2143,7 @@ Read-only. #### `quicstream.close()` * Returns: {Promise`} @@ -2153,27 +2153,27 @@ Returns a `Promise` that is resolved once the `QuicStream` has been destroyed. #### `quicstream.dataAckHistogram` TBD #### `quicstream.dataRateHistogram` TBD #### `quicstream.dataSizeHistogram` TBD #### `quicstream.duration` * Type: {number} @@ -2184,7 +2184,7 @@ Read-only. #### `quicstream.finalSize` * Type: {number} @@ -2195,7 +2195,7 @@ Read-only. #### `quicstream.id` * Type: {number} @@ -2206,7 +2206,7 @@ Read-only. #### `quicstream.maxAcknowledgedOffset` * Type: {number} @@ -2217,7 +2217,7 @@ Read-only. #### `quicstream.maxExtendedOffset` * Type: {number} @@ -2228,7 +2228,7 @@ Read-only. #### `quicstream.maxReceivedOffset` * Type: {number} @@ -2239,7 +2239,7 @@ Read-only. #### `quicstream.pushStream(headers[, options])` * `headers` {Object} An object representing a block of headers to be @@ -2265,7 +2265,7 @@ error will be thrown. #### `quicstream.serverInitiated` * Type: {boolean} @@ -2277,7 +2277,7 @@ Read-only. #### `quicstream.session` * Type: {QuicSession} @@ -2289,7 +2289,7 @@ Read-only. #### `quicstream.sendFD(fd[, options])` * `fd` {number|FileHandle} A readable file descriptor. @@ -2315,7 +2315,7 @@ after a stream has finished is supported. #### `quicstream.sendFile(path[, options])` * `path` {string|Buffer|URL} @@ -2337,7 +2337,7 @@ bytes that are read from the file. #### `quicstream.submitInformationalHeaders(headers)` * `headers` {Object} @@ -2345,7 +2345,7 @@ TBD #### `quicstream.submitInitialHeaders(headers)` * `headers` {Object} @@ -2353,7 +2353,7 @@ TBD #### `quicstream.submitTrailingHeaders(headers)` * `headers` {Object} @@ -2361,7 +2361,7 @@ TBD #### `quicstream.unidirectional` * Type: {boolean} diff --git a/doc/api/stream.md b/doc/api/stream.md index 97e848f56fa1fa..fe32a0e679674c 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -419,7 +419,7 @@ Is `true` after [`writable.destroy()`][writable-destroy] has been called. * `callback` {Function} Call this function (optionally with an error @@ -2275,7 +2275,7 @@ const myReadable = new Readable({ #### `readable._construct(callback)` * `callback` {Function} Call this function (optionally with an error diff --git a/doc/api/url.md b/doc/api/url.md index 07600dc3bb74d2..3da002cbbe341c 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -246,7 +246,7 @@ will be thrown. #### `url.origin` @@ -423,7 +423,7 @@ Invalid URL protocol values assigned to the `protocol` property are ignored. ##### Special schemes diff --git a/doc/api/util.md b/doc/api/util.md index 6b857a027f39ef..d8f160414bf764 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -450,7 +450,7 @@ stream.write('With ES6'); + + + + + + + + + + +
Current
+15.0.0
+
+ +* Other Versions + * [14.x](CHANGELOG_V14.md) + * [13.x](CHANGELOG_V13.md) + * [12.x](CHANGELOG_V12.md) + * [11.x](CHANGELOG_V11.md) + * [10.x](CHANGELOG_V10.md) + * [9.x](CHANGELOG_V9.md) + * [8.x](CHANGELOG_V8.md) + * [7.x](CHANGELOG_V7.md) + * [6.x](CHANGELOG_V6.md) + * [5.x](CHANGELOG_V5.md) + * [4.x](CHANGELOG_V4.md) + * [0.12.x](CHANGELOG_V012.md) + * [0.10.x](CHANGELOG_V010.md) + * [io.js](CHANGELOG_IOJS.md) + * [Archive](CHANGELOG_ARCHIVE.md) + + +## 2020-10-20, Version 15.0.0 (Current), @BethGriggs + +### Notable Changes + +#### Deprecations and Removals + +* [[`41796ebd30`](https://github.com/nodejs/node/commit/41796ebd30)] - **(SEMVER-MAJOR)** **net**: remove long deprecated server.connections property (James M Snell) [#33647](https://github.com/nodejs/node/pull/33647) +* [[`a416692e93`](https://github.com/nodejs/node/commit/a416692e93)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.memory function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`f217b2dfb0`](https://github.com/nodejs/node/commit/f217b2dfb0)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`a1bcad8dc0`](https://github.com/nodejs/node/commit/a1bcad8dc0)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`4ace010b53`](https://github.com/nodejs/node/commit/4ace010b53)] - **(SEMVER-MAJOR)** **repl**: remove deprecated bufferedCommand property (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`37524307fe`](https://github.com/nodejs/node/commit/37524307fe)] - **(SEMVER-MAJOR)** **repl**: remove deprecated .rli (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`a85ce885bd`](https://github.com/nodejs/node/commit/a85ce885bd)] - **(SEMVER-MAJOR)** **src**: remove deprecated node debug command (James M Snell) [#33648](https://github.com/nodejs/node/pull/33648) +* [[`60c4c2b6c5`](https://github.com/nodejs/node/commit/60c4c2b6c5)] - **(SEMVER-MAJOR)** **src**: runtime deprecate process.umask() (Colin Ihrig) [#32499](https://github.com/nodejs/node/pull/32499) + +#### Other Notable Changes + +* TBD + +### Semver-Major Commits + +* [[`50228cf6ff`](https://github.com/nodejs/node/commit/50228cf6ff)] - **(SEMVER-MAJOR)** **assert**: add `assert/strict` alias module (ExE Boss) [#34001](https://github.com/nodejs/node/pull/34001) +* [[`89428c7a2d`](https://github.com/nodejs/node/commit/89428c7a2d)] - **(SEMVER-MAJOR)** **build**: drop support for VS2017 (Michaël Zasso) [#33694](https://github.com/nodejs/node/pull/33694) +* [[`e983b1cece`](https://github.com/nodejs/node/commit/e983b1cece)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 0d6debcc5f08 (Gus Caplan) [#33600](https://github.com/nodejs/node/pull/33600) +* [[`039cd00a9a`](https://github.com/nodejs/node/commit/039cd00a9a)] - **(SEMVER-MAJOR)** **dns**: add dns/promises alias (shisama) [#32953](https://github.com/nodejs/node/pull/32953) +* [[`8bf37ee496`](https://github.com/nodejs/node/commit/8bf37ee496)] - **(SEMVER-MAJOR)** **doc**: update support macos version for 15.x (AshCripps) [#35022](https://github.com/nodejs/node/pull/35022) +* [[`54b36e401d`](https://github.com/nodejs/node/commit/54b36e401d)] - **(SEMVER-MAJOR)** **fs**: reimplement read and write streams using stream.construct (Robert Nagy) [#29656](https://github.com/nodejs/node/pull/29656) +* [[`32b641e528`](https://github.com/nodejs/node/commit/32b641e528)] - **(SEMVER-MAJOR)** **http**: fixed socket.setEncoding fatal error (iskore) [#33405](https://github.com/nodejs/node/pull/33405) +* [[`8a6fab02ad`](https://github.com/nodejs/node/commit/8a6fab02ad)] - **(SEMVER-MAJOR)** **http**: emit 'error' on aborted server request (Robert Nagy) [#33172](https://github.com/nodejs/node/pull/33172) +* [[`d005f490a8`](https://github.com/nodejs/node/commit/d005f490a8)] - **(SEMVER-MAJOR)** **http**: cleanup end argument handling (Robert Nagy) [#31818](https://github.com/nodejs/node/pull/31818) +* [[`f5c0e282cc`](https://github.com/nodejs/node/commit/f5c0e282cc)] - **(SEMVER-MAJOR)** **http2**: allow Host in HTTP/2 requests (Alba Mendez) [#34664](https://github.com/nodejs/node/pull/34664) +* [[`1e4187fcf4`](https://github.com/nodejs/node/commit/1e4187fcf4)] - **(SEMVER-MAJOR)** **http2**: add `invalidheaders` test (Pranshu Srivastava) [#33161](https://github.com/nodejs/node/pull/33161) +* [[`d79c330186`](https://github.com/nodejs/node/commit/d79c330186)] - **(SEMVER-MAJOR)** **http2**: refactor state code validation for the http2Stream class (rickyes) [#33535](https://github.com/nodejs/node/pull/33535) +* [[`df31f71f1e`](https://github.com/nodejs/node/commit/df31f71f1e)] - **(SEMVER-MAJOR)** **http2**: header field valid checks (Pranshu Srivastava) [#33193](https://github.com/nodejs/node/pull/33193) +* [[`b546a2b469`](https://github.com/nodejs/node/commit/b546a2b469)] - **(SEMVER-MAJOR)** **lib**: handle one of args case in ERR\_MISSING\_ARGS (Denys Otrishko) [#34022](https://github.com/nodejs/node/pull/34022) +* [[`a86a295fd7`](https://github.com/nodejs/node/commit/a86a295fd7)] - **(SEMVER-MAJOR)** **lib**: remove NodeError from the prototype of errors with code (Michaël Zasso) [#33857](https://github.com/nodejs/node/pull/33857) +* [[`a8b26d72c5`](https://github.com/nodejs/node/commit/a8b26d72c5)] - **(SEMVER-MAJOR)** **lib**: unflag AbortController (James M Snell) [#33527](https://github.com/nodejs/node/pull/33527) +* [[`74ca960aac`](https://github.com/nodejs/node/commit/74ca960aac)] - **(SEMVER-MAJOR)** **lib**: initial experimental AbortController implementation (James M Snell) [#33527](https://github.com/nodejs/node/pull/33527) +* [[`78ca61e2cf`](https://github.com/nodejs/node/commit/78ca61e2cf)] - **(SEMVER-MAJOR)** **net**: check args in net.connect() and socket.connect() calls (Denys Otrishko) [#34022](https://github.com/nodejs/node/pull/34022) +* [[`41796ebd30`](https://github.com/nodejs/node/commit/41796ebd30)] - **(SEMVER-MAJOR)** **net**: remove long deprecated server.connections property (James M Snell) [#33647](https://github.com/nodejs/node/pull/33647) +* [[`efefdd668d`](https://github.com/nodejs/node/commit/efefdd668d)] - **(SEMVER-MAJOR)** **net**: autoDestroy Socket (Robert Nagy) [#31806](https://github.com/nodejs/node/pull/31806) +* [[`d8eef83757`](https://github.com/nodejs/node/commit/d8eef83757)] - **(SEMVER-MAJOR)** **process**: use v8 fast api calls for hrtime (Gus Caplan) [#33600](https://github.com/nodejs/node/pull/33600) +* [[`49745cdef0`](https://github.com/nodejs/node/commit/49745cdef0)] - **(SEMVER-MAJOR)** **process**: delay throwing an error using `throwDeprecation` (Ruben Bridgewater) [#32312](https://github.com/nodejs/node/pull/32312) +* [[`a416692e93`](https://github.com/nodejs/node/commit/a416692e93)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.memory function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`f217b2dfb0`](https://github.com/nodejs/node/commit/f217b2dfb0)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`a1bcad8dc0`](https://github.com/nodejs/node/commit/a1bcad8dc0)] - **(SEMVER-MAJOR)** **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`4ace010b53`](https://github.com/nodejs/node/commit/4ace010b53)] - **(SEMVER-MAJOR)** **repl**: remove deprecated bufferedCommand property (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`37524307fe`](https://github.com/nodejs/node/commit/37524307fe)] - **(SEMVER-MAJOR)** **repl**: remove deprecated .rli (Ruben Bridgewater) [#33286](https://github.com/nodejs/node/pull/33286) +* [[`b7cf823410`](https://github.com/nodejs/node/commit/b7cf823410)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 86 (Michaël Zasso) [#33579](https://github.com/nodejs/node/pull/33579) +* [[`0fb91acedf`](https://github.com/nodejs/node/commit/0fb91acedf)] - **(SEMVER-MAJOR)** **src**: disallow JS execution inside FreeEnvironment (Anna Henningsen) [#33874](https://github.com/nodejs/node/pull/33874) +* [[`53fb2b6b41`](https://github.com/nodejs/node/commit/53fb2b6b41)] - **(SEMVER-MAJOR)** **src**: remove \_third\_party\_main support (Anna Henningsen) [#33971](https://github.com/nodejs/node/pull/33971) +* [[`a85ce885bd`](https://github.com/nodejs/node/commit/a85ce885bd)] - **(SEMVER-MAJOR)** **src**: remove deprecated node debug command (James M Snell) [#33648](https://github.com/nodejs/node/pull/33648) +* [[`ac3714637e`](https://github.com/nodejs/node/commit/ac3714637e)] - **(SEMVER-MAJOR)** **src**: remove unused CancelPendingDelayedTasks (Anna Henningsen) [#32859](https://github.com/nodejs/node/pull/32859) +* [[`60c4c2b6c5`](https://github.com/nodejs/node/commit/60c4c2b6c5)] - **(SEMVER-MAJOR)** **src**: runtime deprecate process.umask() (Colin Ihrig) [#32499](https://github.com/nodejs/node/pull/32499) +* [[`a65218f5e8`](https://github.com/nodejs/node/commit/a65218f5e8)] - **(SEMVER-MAJOR)** **stream**: try to wait for flush to complete before 'finish' (Robert Nagy) [#34314](https://github.com/nodejs/node/pull/34314) +* [[`4e3f6f355b`](https://github.com/nodejs/node/commit/4e3f6f355b)] - **(SEMVER-MAJOR)** **stream**: cleanup and fix Readable.wrap (Robert Nagy) [#34204](https://github.com/nodejs/node/pull/34204) +* [[`527e2147af`](https://github.com/nodejs/node/commit/527e2147af)] - **(SEMVER-MAJOR)** **stream**: add promises version to utility functions (rickyes) [#33991](https://github.com/nodejs/node/pull/33991) +* [[`c7e55c6b72`](https://github.com/nodejs/node/commit/c7e55c6b72)] - **(SEMVER-MAJOR)** **stream**: fix writable.end callback behavior (Robert Nagy) [#34101](https://github.com/nodejs/node/pull/34101) +* [[`fb8cc72e73`](https://github.com/nodejs/node/commit/fb8cc72e73)] - **(SEMVER-MAJOR)** **stream**: construct (Robert Nagy) [#29656](https://github.com/nodejs/node/pull/29656) +* [[`4bc7025309`](https://github.com/nodejs/node/commit/4bc7025309)] - **(SEMVER-MAJOR)** **stream**: write should throw on unknown encoding (Robert Nagy) [#33075](https://github.com/nodejs/node/pull/33075) +* [[`ea87809bb6`](https://github.com/nodejs/node/commit/ea87809bb6)] - **(SEMVER-MAJOR)** **stream**: fix \_final and 'prefinish' timing (Robert Nagy) [#32780](https://github.com/nodejs/node/pull/32780) +* [[`0bd5595509`](https://github.com/nodejs/node/commit/0bd5595509)] - **(SEMVER-MAJOR)** **stream**: simplify Transform stream implementation (Robert Nagy) [#32763](https://github.com/nodejs/node/pull/32763) +* [[`8f86986985`](https://github.com/nodejs/node/commit/8f86986985)] - **(SEMVER-MAJOR)** **stream**: use callback to properly propagate error (Robert Nagy) [#29179](https://github.com/nodejs/node/pull/29179) +* [[`a8904e8eee`](https://github.com/nodejs/node/commit/a8904e8eee)] - **(SEMVER-MAJOR)** **timers**: introduce timers/promises (James M Snell) [#33950](https://github.com/nodejs/node/pull/33950) +* [[`0d08d5ae7c`](https://github.com/nodejs/node/commit/0d08d5ae7c)] - **(SEMVER-MAJOR)** **url**: remove gopher from special schemes (Michaël Zasso) [#33325](https://github.com/nodejs/node/pull/33325) +* [[`9be51ee9a1`](https://github.com/nodejs/node/commit/9be51ee9a1)] - **(SEMVER-MAJOR)** **url**: forbid lt and gt in url host code point (Yash Ladha) [#33328](https://github.com/nodejs/node/pull/33328) +* [[`1211b9a72f`](https://github.com/nodejs/node/commit/1211b9a72f)] - **(SEMVER-MAJOR)** **util**: change default value of `maxStringLength` to 10000 (unknown) [#32744](https://github.com/nodejs/node/pull/32744) +* [[`7603c7e50c`](https://github.com/nodejs/node/commit/7603c7e50c)] - **(SEMVER-MAJOR)** **worker**: set trackUnmanagedFds to true by default (Anna Henningsen) [#34394](https://github.com/nodejs/node/pull/34394) +* [[`5ef5116311`](https://github.com/nodejs/node/commit/5ef5116311)] - **(SEMVER-MAJOR)** **worker**: rename error code to be more accurate (Anna Henningsen) [#33872](https://github.com/nodejs/node/pull/33872) + +### Semver-Minor Commits + +* TBD + +### Semver-Patch Commits + +* TBD diff --git a/doc/changelogs/CHANGELOG_V4.md b/doc/changelogs/CHANGELOG_V4.md index 69f36cf2cea9d9..64a452f8b91231 100644 --- a/doc/changelogs/CHANGELOG_V4.md +++ b/doc/changelogs/CHANGELOG_V4.md @@ -58,6 +58,7 @@
* Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/doc/changelogs/CHANGELOG_V5.md b/doc/changelogs/CHANGELOG_V5.md index c9cd28d692bfaf..00735a73982265 100644 --- a/doc/changelogs/CHANGELOG_V5.md +++ b/doc/changelogs/CHANGELOG_V5.md @@ -34,6 +34,7 @@ * Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/doc/changelogs/CHANGELOG_V6.md b/doc/changelogs/CHANGELOG_V6.md index 20c9370ff0d5ab..6444d9c46b8b20 100644 --- a/doc/changelogs/CHANGELOG_V6.md +++ b/doc/changelogs/CHANGELOG_V6.md @@ -63,6 +63,7 @@ * Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/doc/changelogs/CHANGELOG_V7.md b/doc/changelogs/CHANGELOG_V7.md index a64b973c8c2192..e094ddedc2fe98 100644 --- a/doc/changelogs/CHANGELOG_V7.md +++ b/doc/changelogs/CHANGELOG_V7.md @@ -32,6 +32,7 @@ * Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/doc/changelogs/CHANGELOG_V8.md b/doc/changelogs/CHANGELOG_V8.md index 41e38efcf57206..536e1a58476918 100644 --- a/doc/changelogs/CHANGELOG_V8.md +++ b/doc/changelogs/CHANGELOG_V8.md @@ -54,6 +54,7 @@ * Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/doc/changelogs/CHANGELOG_V9.md b/doc/changelogs/CHANGELOG_V9.md index e4cdf50a9381b6..dc5bfe086e81f9 100644 --- a/doc/changelogs/CHANGELOG_V9.md +++ b/doc/changelogs/CHANGELOG_V9.md @@ -33,6 +33,7 @@ * Other Versions + * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) * [13.x](CHANGELOG_V13.md) * [12.x](CHANGELOG_V12.md) diff --git a/src/node_version.h b/src/node_version.h index b9670f57bde291..338af332a9dcb3 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -29,7 +29,7 @@ #define NODE_VERSION_IS_LTS 0 #define NODE_VERSION_LTS_CODENAME "" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)