diff --git a/CHANGELOG.md b/CHANGELOG.md index 28474869adefef..e5d1128ee71bcc 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.14.0 14.13.1 14.13.0 diff --git a/doc/abi_version_registry.json b/doc/abi_version_registry.json index 96d83e608fb81f..ec76e74aaf1bf6 100644 --- a/doc/abi_version_registry.json +++ b/doc/abi_version_registry.json @@ -1,6 +1,6 @@ { "NODE_MODULE_VERSION": [ - { "modules": 88, "runtime": "node", "variant": "v8_8.6", "versions": "15.0.0-pre" }, + { "modules": 88, "runtime": "node", "variant": "v8_8.6", "versions": "15.0.0" }, { "modules": 87, "runtime": "electron", "variant": "electron", "versions": "12" }, { "modules": 86, "runtime": "node", "variant": "v8_8.4", "versions": "15.0.0-pre" }, { "modules": 85, "runtime": "electron", "variant": "electron", "versions": "11" }, diff --git a/doc/api/assert.md b/doc/api/assert.md index 1478515c811608..54e4bc172ab34a 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -13,7 +13,7 @@ invariants. @@ -548,7 +548,7 @@ Silence all process warnings (including deprecations). ### `--node-memory-debug` Enable extra debug checks for memory leaks in Node.js internals. This is diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 2e1744910b9f9f..95a5c68baf4bb2 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -57,7 +57,7 @@ data. The most common usage is handling output generated by the HTML5 * `type`: {string} The intended use of the generated secret key. Currently @@ -2245,7 +2245,7 @@ generateKey('hmac', { length: 64 }, (err, key) => { ### `crypto.generateKeySync(type, options)` * `type`: {string} The intended use of the generated secret key. Currently @@ -2426,7 +2426,7 @@ console.log(ciphers); // ['aes-128-cbc', 'aes-128-ccm', ...] ### `crypto.getCipherInfo(nameOrNid[, options])` * `nameOrNid`: {string|number} The name or nid of the cipher to query. @@ -2525,7 +2525,7 @@ console.log(hashes); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...] ### `crypto.hkdf(digest, key, salt, info, keylen, callback)` * `digest` {string} The digest algorithm to use. @@ -2562,7 +2562,7 @@ crypto.hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => { ### `crypto.hkdfSync(digest, key, salt, info, keylen)` * `digest` {string} The digest algorithm to use. @@ -2597,7 +2597,7 @@ console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' @@ -3376,7 +3376,7 @@ not introduce timing vulnerabilities. @@ -3420,7 +3420,7 @@ key may be passed for `key`. ### `crypto.webcrypto` Type: {Crypto} An implementation of the Web Crypto API standard. diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 093bef796dab7c..326f4705856596 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -426,7 +426,7 @@ See [`Intl.Segmenter`](https://github.com/tc39/proposal-intl-segmenter). ### DEP0018: Unhandled promise rejections * `hostname` {string} @@ -917,7 +917,7 @@ Here is an example of the result object: ## `dnsPromises.resolveCaa(hostname)` * `hostname` {string} diff --git a/doc/api/embedding.md b/doc/api/embedding.md index 82c87f5890f181..4bae63aae2a658 100644 --- a/doc/api/embedding.md +++ b/doc/api/embedding.md @@ -69,7 +69,7 @@ int main(int argc, char** argv) { ### Per-instance state Initialization of the crypto subsystem failed. @@ -798,7 +798,7 @@ Initialization of the crypto subsystem failed. ### `ERR_CRYPTO_INVALID_AUTH_TAG` An invalid authentication tag was provided. @@ -806,7 +806,7 @@ An invalid authentication tag was provided. ### `ERR_CRYPTO_INVALID_COUNTER` An invalid counter was provided for a counter-mode cipher. @@ -814,7 +814,7 @@ An invalid counter was provided for a counter-mode cipher. ### `ERR_CRYPTO_INVALID_CURVE` An invalid elliptic-curve was provided. @@ -827,7 +827,7 @@ An invalid [crypto digest algorithm][] was specified. ### `ERR_CRYPTO_INVALID_IV` An invalid initialization vector was provided. @@ -835,7 +835,7 @@ An invalid initialization vector was provided. ### `ERR_CRYPTO_INVALID_JWK` An invalid JSON Web Key was provided. @@ -848,7 +848,7 @@ The given crypto key object's type is invalid for the attempted operation. ### `ERR_CRYPTO_INVALID_KEYLEN` An invalid key length was provided. @@ -856,7 +856,7 @@ An invalid key length was provided. ### `ERR_CRYPTO_INVALID_KEYPAIR` An invalid key pair was provided. @@ -864,7 +864,7 @@ An invalid key pair was provided. ### `ERR_CRYPTO_INVALID_KEYTYPE` An invalid key type was provided. @@ -872,7 +872,7 @@ An invalid key type was provided. ### `ERR_CRYPTO_INVALID_MESSAGELEN` An invalid message length was provided. @@ -880,7 +880,7 @@ An invalid message length was provided. ### `ERR_CRYPTO_INVALID_SCRYPT_PARAMS` Invalid scrypt algorithm parameters were provided. @@ -894,7 +894,7 @@ instance, calling [`cipher.getAuthTag()`][] before calling `cipher.final()`. ### `ERR_CRYPTO_INVALID_TAG_LENGTH` An invalid authentication tag length was provided. @@ -902,7 +902,7 @@ An invalid authentication tag length was provided. ### `ERR_CRYPTO_JOB_INIT_FAILED` Initialization of an asynchronous crypto operation failed. @@ -910,7 +910,7 @@ Initialization of an asynchronous crypto operation failed. ### `ERR_CRYPTO_OPERATION_FAILED` A crypto operation failed for an otherwise unspecified reason. @@ -958,7 +958,7 @@ An unknown Diffie-Hellman group name was given. See ### `ERR_DLOPEN_FAILED` A call to `process.dlopen()` failed. @@ -971,7 +971,7 @@ The [`fs.Dir`][] was previously closed. ### `ERR_CRYPTO_UNSUPPORTED_OPERATION` An attempt to invoke an unsupported crypto operation was made. @@ -1508,7 +1508,7 @@ An IP address is not valid. ### `ERR_INVALID_MODULE` An attempt was made to load a module that does not exist or was otherwise not @@ -1575,7 +1575,7 @@ type on execution, such as when a function is expected to return a promise. ### `ERR_INVALID_STATE` Indicates that an operation cannot be completed due to an invalid state. @@ -1763,14 +1763,14 @@ this error will not occur with standard builds of Node.js. ### `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`. @@ -2530,7 +2530,7 @@ A given index was out of the accepted range (e.g. negative offsets). ### `ERR_INVALID_OPT_VALUE` An invalid or unexpected value was passed in an options object. @@ -2539,7 +2539,7 @@ An invalid or unexpected value was passed in an options object. ### `ERR_INVALID_OPT_VALUE_ENCODING` An invalid or unknown file encoding was passed. @@ -2547,11 +2547,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. @@ -2572,7 +2572,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 @@ -2723,7 +2723,7 @@ closed. ### `ERR_CPU_USAGE` The native call from `process.cpuUsage` could not be processed. diff --git a/doc/api/events.md b/doc/api/events.md index 68e23231677fda..b6403e812ec3a6 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -1076,7 +1076,7 @@ process.nextTick(() => ac.abort()); @@ -1354,7 +1354,7 @@ The event type identifier. > 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} @@ -171,7 +171,7 @@ Used to print to stdout and stderr. See the [`console`][] section. ## `Event` @@ -183,7 +183,7 @@ A browser-compatible implementation of the `Event` class. See ## `EventTarget` @@ -213,7 +213,7 @@ Node.js this is different. The top-level scope is not the global scope; ## `MessageChannel` @@ -222,7 +222,7 @@ The `MessageChannel` class. See [`MessageChannel`][] for more details. ## `MessageEvent` @@ -231,7 +231,7 @@ The `MessageEvent` class. See [`MessageEvent`][] for more details. ## `MessagePort` diff --git a/doc/api/http2.md b/doc/api/http2.md index 632930da7e0387..bc3bebd11b9c71 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 d23b8c0c91c6a0..7c777df33a2a4f 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[]} @@ -1207,7 +1207,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/process.md b/doc/api/process.md index 5568adfb6fc203..fd7e499ee6ecfb 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1915,7 +1915,7 @@ Additional documentation is available in the [report documentation][]. added: v11.12.0 changes: - version: - - REPLACEME + - v15.0.0 pr-url: https://github.com/nodejs/node/pull/35654 description: This API is no longer experimental. --> diff --git a/doc/api/quic.md b/doc/api/quic.md index 1cd72dd41b9190..78428f7c24e196 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 unusable. #### `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 acknowledgments. #### `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 occurred. #### `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 20c7b0db6a43f5..fd70a662ac251a 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -423,7 +423,7 @@ Is `true` after [`writable.destroy()`][writable-destroy] has been called. @@ -423,7 +423,7 @@ Invalid URL protocol values assigned to the `protocol` property are ignored. ##### Special schemes diff --git a/doc/api/webcrypto.md b/doc/api/webcrypto.md index 9a067ceabec51a..ce9999a744f78e 100644 --- a/doc/api/webcrypto.md +++ b/doc/api/webcrypto.md @@ -1,6 +1,6 @@ # Web Crypto API - + > Stability: 1 - Experimental @@ -310,7 +310,7 @@ implementation and the APIs supported for each: ## Class: `Crypto` Calling `require('crypto').webcrypto` returns an instance of the `Crypto` class. @@ -318,7 +318,7 @@ Calling `require('crypto').webcrypto` returns an instance of the `Crypto` class. ### `crypto.subtle` * Type: {SubtleCrypto} @@ -327,7 +327,7 @@ Provides access to the `SubtleCrypto` API. ### `crypto.getRandomValues(typedArray)` * `typedArray` {Buffer|TypedArray|DataView|ArrayBuffer} @@ -340,12 +340,12 @@ An error will be thrown if the given `typedArray` is larger than 65,536 bytes. ## Class: `CryptoKey` ### `cryptoKey.algorithm` @@ -359,7 +359,7 @@ Read-only. ### `cryptoKey.extractable` * Type: {boolean} @@ -371,7 +371,7 @@ Read-only. ### `cryptoKey.type` * Type: {string} One of `'secret'`, `'private'`, or `'public'`. @@ -381,7 +381,7 @@ asymmetric (`'private'` or `'public'`) key. ### `cryptoKey.usages` * Type: {string[]} @@ -425,7 +425,7 @@ Valid key usages depend on the key algorithm (identified by ## Class: `CryptoKeyPair` The `CryptoKeyPair` is a simple dictionary object with `publicKey` and @@ -433,26 +433,26 @@ The `CryptoKeyPair` is a simple dictionary object with `publicKey` and ### `cryptoKeyPair.privateKey` * Type: {CryptoKey} A {CryptoKey} whose `type` will be `'private'`. ### `cryptoKeyPair.publicKey` * Type: {CryptoKey} A {CryptoKey} whose `type` will be `'public'`. ## Class: `SubtleCrypto` ### `subtle.decrypt(algorithm, key, data)` * `algorithm`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams} @@ -474,7 +474,7 @@ The algorithms currently supported include: ### `subtle.deriveBits(algorithm, baseKey, length)` @@ -502,7 +502,7 @@ The algorithms currently supported include: ### `subtle.deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages)` @@ -535,7 +535,7 @@ The algorithms currently supported include: ### `subtle.digest(algorithm, data)` * `algorithm`: {string|Object} @@ -558,7 +558,7 @@ whose value is one of the above. ### `subtle.encrypt(algorithm, key, data)` * `algorithm`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams} @@ -579,7 +579,7 @@ The algorithms currently supported include: ### `subtle.exportKey(format, key)` * `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, `'jwk'`, or @@ -625,7 +625,7 @@ extension that allows converting a {CryptoKey} into a Node.js {KeyObject}. ### `subtle.generateKey(algorithm, extractable, keyUsages)` @@ -662,7 +662,7 @@ The {CryptoKey} (secret key) generating algorithms supported include: ### `subtle.importKey(format, keyData, algorithm, extractable, keyUsages)` * `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, `'jwk'`, or @@ -709,7 +709,7 @@ The algorithms currently supported include: ### `subtle.sign(algorithm, key, data)` @@ -736,7 +736,7 @@ The algorithms currently supported include: ### `subtle.unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgo, unwrappedKeyAlgo, extractable, keyUsages)` * `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. @@ -786,7 +786,7 @@ The unwrapped key algorithms supported include: ### `subtle.verify(algorithm, key, signature, data)` @@ -814,7 +814,7 @@ The algorithms currently supported include: ### `subtle.wrapKey(format, key, wrappingKey, wrapAlgo)` * `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. @@ -849,12 +849,12 @@ are simple JavaScript dictionary objects. ### Class: `AesCbcParams` #### `aesCbcParams.iv` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -864,19 +864,19 @@ and should be unpredictable and cryptographically random. #### `aesCbcParams.name` * Type: {string} Must be `'AES-CBC'`. ### Class: `AesCtrParams` #### `aesCtrParams.counter` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -888,7 +888,7 @@ counter and the remaining bits as the nonce. #### `aesCtrParams.length` * Type: {number} The number of bits in the `aesCtrParams.counter` that are @@ -896,19 +896,19 @@ added: REPLACEME #### `aesCtrParams.name` * Type: {string} Must be `'AES-CTR'`. ### Class: `AesGcmParams` #### `aesGcmParams.additionalData` * Type: {ArrayBuffer|TypedArray|DataView|Buffer|undefined} @@ -919,7 +919,7 @@ encrypted but is included in the authentication of the data. The use of #### `aesGcmParams.iv` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -930,14 +930,14 @@ this contain at least 12 random bytes. #### `aesGcmParams.name` * Type: {string} Must be `'AES-GCM'`. #### `aesGcmParams.tagLength` * Type: {number} The size in bits of the generated authentication tag. @@ -946,12 +946,12 @@ added: REPLACEME ### Class: `AesImportParams` #### 'aesImportParams.name` * Type: {string} Must be one of `'AES-CTR'`, `'AES-CBC'`, `'AES-GCM'`, or @@ -959,12 +959,12 @@ added: REPLACEME ### Class: `AesKeyGenParams` #### `aesKeyGenParams.length` * Type: {number} @@ -974,7 +974,7 @@ or `256`. #### `aesKeyGenParams.name` * Type: {string} Must be one of `'AES-CBC'`, `'AES-CTR'`, `'AES-GCM'`, or @@ -982,31 +982,31 @@ added: REPLACEME ### Class: `AesKwParams` #### `aesKwParams.name` * Type: {string} Must be `'AES-KW'`. ### Class: `EcdhKeyDeriveParams` #### `ecdhKeyDeriveParams.name` * Type: {string} Must be `'ECDH'`. #### `ecdhKeyDeriveParams.public` * Type: {CryptoKey} @@ -1018,12 +1018,12 @@ key. ### Class: `EcdsaParams` #### `ecdsaParams.hash` * Type: {string|Object} @@ -1040,57 +1040,57 @@ whose value is one of the above listed values. #### `ecdsaParams.name` * Type: {string} Must be `'ECDSA'`. ### Class: `EcKeyGenParams` #### `ecKeyGenParams.name` * Type: {string} Must be one of `'ECDSA'` or `'ECDH'`. #### `ecKeyGenParams.namedCurve` * Type: {string} Must be one of `'P-256'`, `'P-384'` or `'P-521'`. ### Class: `EcKeyImportParams` #### `ecKeyImportParams.name` * Type: {string} Must be one of `'ECDSA'` or `'ECDH'`. #### `ecKeyImportParams.namedCurve` * Type: {string} Must be one of `'P-256'`, `'P-384'` or `'P-521'`. ### Class: `HkdfParams` #### `hkdfParams.hash` * Type: {string|Object} @@ -1107,7 +1107,7 @@ whose value is one of the above listed values. #### `hkdfParams.info` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -1117,14 +1117,14 @@ This can be zero-length but must be provided. #### `hkdfParams.name` * Type: {string} Must be `'HKDF'`. #### `hkdfParams.salt` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -1136,12 +1136,12 @@ digest, the salt should be 256-bits of random data). ### Class: `HmacImportParams` #### 'hmacImportParams.hash` * Type: {string|Object} @@ -1158,7 +1158,7 @@ whose value is one of the above listed values. #### `hmacImportParams.length` * Type: {number} @@ -1168,19 +1168,19 @@ be omitted for most cases. #### `hmacImportParams.name` * Type: {string} Must be `'HMAC'`. ### Class: `HmacKeyGenParams` #### `hmacKeyGenParams.hash` * Type: {string|Object} @@ -1197,7 +1197,7 @@ whose value is one of the above listed values. #### `hmacKeyGenParams.length` * Type: {number} @@ -1208,43 +1208,43 @@ This is optional and should be omitted for most cases. #### `hmacKeyGenParams.name` * Type: {string} Must be `'HMAC'`. ### Class: `HmacParams` #### `hmacParams.name` * Type: {string} Must be `'HMAC`. ### Class: `Pbkdf2ImportParams` #### `pbkdf2ImportParams.name` * Type: {string} Must be `'PBKDF2'` ### Class: `Pbkdf2Params` #### `pbkdb2Params.hash` * Type: {string|Object} @@ -1261,7 +1261,7 @@ whose value is one of the above listed values. #### `pbkdf2Params.iterations` * Type: {number} @@ -1270,14 +1270,14 @@ The number of iterations the PBKDF2 algorithm should make when deriving bits. #### `pbkdf2Params.name` * Type: {string} Must be `'PBKDF2'`. #### `pbkdf2Params.salt` * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -1286,12 +1286,12 @@ Should be at least 16 random or pseudo-random bytes. ### Class: `RsaHashedImportParams` #### `rsaHashedImportParams.hash` * Type: {string|Object} @@ -1308,7 +1308,7 @@ whose value is one of the above listed values. #### `rsaHashedImportParams.name` * Type: {string} Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or @@ -1316,12 +1316,12 @@ added: REPLACEME ### Class: `RsaHashedKeyGenParams` #### `rsaHashedKeyGenParams.hash` * Type: {string|Object} @@ -1338,7 +1338,7 @@ whose value is one of the above listed values. #### `rsaHashedKeyGenParams.modulusLength` * Type: {number} @@ -1348,7 +1348,7 @@ at least `2048`. #### `rsaHashedKeyGenParams.name` * Type: {string} Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or @@ -1356,7 +1356,7 @@ added: REPLACEME #### `rsaHashedKeyGenParams.publicExponent` * Type: {Uint8Array} @@ -1369,12 +1369,12 @@ there is reason to use a different value, use `new Uint8Array([1, 0, 1])` ### Class: `RsaOaepParams` #### rsaOaepParams.label * Type: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -1386,26 +1386,26 @@ The `rsaOaepParams.label` parameter is optional. #### rsaOaepParams.name * Type: {string} must be `'RSA-OAEP'`. ### Class: `RsaPssParams` #### `rsaPssParams.name` * Type: {string} Must be `'RSA-PSS'`. #### `rsaPssParams.saltLength` * Type: {number} @@ -1414,12 +1414,12 @@ The length (in bytes) of the random salt to use. ### Class: `RsaSignParams` #### `rsaSignParams.name` * Type: {string} Must be `'RSASSA-PKCS1-v1_5'` @@ -1438,7 +1438,7 @@ of code to other environments. ### `NODE-DH` Algorithm The `NODE-DH` algorithm is the common implementation of Diffie-Hellman @@ -1446,64 +1446,64 @@ key agreement. #### Class: `NodeDhImportParams` ##### `nodeDhImportParams.name` * Type: {string} Must be `'NODE-DH'`. #### Class: NodeDhKeyGenParams` ##### `nodeDhKeyGenParams.generator` * Type: {number} A custom generator. ##### `nodeDhKeyGenParams.group` * Type: {string} The Diffie-Hellman group name. ##### `nodeDhKeyGenParams.prime` * Type: {Buffer} The prime parameter. ##### `nodeDhKeyGenParams.primeLength` * Type: {number} The length in bits of the prime. #### Class: NodeDhDeriveBitsParams ##### `nodeDhDeriveBitsParams.public` * Type: {CryptoKey} The other parties public key. ### `NODE-DSA` Algorithm The `NODE-DSA` algorithm is the common implementation of the DSA digital @@ -1511,12 +1511,12 @@ signature algorithm. #### Class: `NodeDsaImportParams` ##### `nodeDsaImportParams.hash` * Type: {string|Object} @@ -1533,19 +1533,19 @@ whose value is one of the above listed values. ##### `nodeDsaImportParams.name` * Type: {string} Must be `'NODE-DSA'`. #### Class: `NodeDsaKeyGenParams` ##### `nodeDsaKeyGenParams.divisorLength` * Type: {number} @@ -1554,7 +1554,7 @@ The optional length in bits of the DSA divisor. ##### `nodeDsaKeyGenParams.hash` * Type: {string|Object} @@ -1571,7 +1571,7 @@ whose value is one of the above listed values. ##### `nodeDsaKeyGenParams.modulusLength` * Type: {number} @@ -1581,26 +1581,26 @@ at least `2048`. ##### `nodeDsaKeyGenParams.name` * Type: {string} Must be `'NODE-DSA'`. #### Class: `NodeDsaSignParams` ##### `nodeDsaSignParams.name` * Type: {string} Must be `'NODE-DSA'` ### `NODE-SCRYPT` Algorithm The `NODE-SCRYPT` algorithm is the common implementation of the scrypt key @@ -1608,31 +1608,31 @@ derivation algorithm. #### Class: `NodeScryptImportParams` ##### `nodeScryptImportParams.name` * Type: {string} Must be `'NODE-SCRYPT'`. #### Class: `NodeScryptParams` ##### `nodeScryptParams.encoding` * Type: {string} The string encoding when `salt` is a string. ##### `nodeScryptParams.maxmem` * Type: {number} Memory upper bound. It is an error when (approximately) @@ -1640,7 +1640,7 @@ added: REPLACEME ##### `nodeScryptParams.N` * Type: {number} The CPU/memory cost parameter. Must e a power of two @@ -1648,21 +1648,21 @@ added: REPLACEME ##### `nodeScryptParams.p` * Type: {number} Parallelization parameter. **Default** `1`. ##### `nodeScryptParams.r` * Type: {number} Block size parameter. **Default**: `8`. ##### `nodeScryptParams.salt` * Type: {string|ArrayBuffer|Buffer|TypedArray|DataView} diff --git a/doc/changelogs/CHANGELOG_IOJS.md b/doc/changelogs/CHANGELOG_IOJS.md index 540e244f1139a9..cb6832ab574e1b 100644 --- a/doc/changelogs/CHANGELOG_IOJS.md +++ b/doc/changelogs/CHANGELOG_IOJS.md @@ -64,6 +64,7 @@ |
Current | +
---|
+15.0.0 + |
+