1# Deprecated APIs 2 3<!--introduced_in=v7.7.0--> 4<!-- type=misc --> 5 6Node.js may deprecate APIs for any of the following reasons: 7 8* Use of the API is unsafe. 9* An improved alternative API is available. 10* Breaking changes to the API are expected in a future major release. 11 12Node.js utilizes three kinds of Deprecations: 13 14* Documentation-only 15* Runtime 16* End-of-Life 17 18A Documentation-only deprecation is one that is expressed only within the 19Node.js API docs. These generate no side-effects while running Node.js. 20Some Documentation-only deprecations trigger a runtime warning when launched 21with [`--pending-deprecation`][] flag (or its alternative, 22`NODE_PENDING_DEPRECATION=1` environment variable), similarly to Runtime 23deprecations below. Documentation-only deprecations that support that flag 24are explicitly labeled as such in the 25[list of Deprecated APIs](#deprecations_list_of_deprecated_apis). 26 27A Runtime deprecation will, by default, generate a process warning that will 28be printed to `stderr` the first time the deprecated API is used. When the 29[`--throw-deprecation`][] command-line flag is used, a Runtime deprecation will 30cause an error to be thrown. 31 32An End-of-Life deprecation is used when functionality is or will soon be removed 33from Node.js. 34 35## Revoking deprecations 36 37Occasionally, the deprecation of an API may be reversed. In such situations, 38this document will be updated with information relevant to the decision. 39However, the deprecation identifier will not be modified. 40 41## List of deprecated APIs 42 43<a id="DEP0001"></a> 44### DEP0001: `http.OutgoingMessage.prototype.flush` 45<!-- YAML 46changes: 47 - version: 48 - v4.8.6 49 - v6.12.0 50 pr-url: https://github.com/nodejs/node/pull/10116 51 description: A deprecation code has been assigned. 52 - version: v1.6.0 53 pr-url: https://github.com/nodejs/node/pull/1156 54 description: Runtime deprecation. 55--> 56 57Type: Runtime 58 59The `OutgoingMessage.prototype.flush()` method is deprecated. Use 60`OutgoingMessage.prototype.flushHeaders()` instead. 61 62<a id="DEP0002"></a> 63### DEP0002: `require('_linklist')` 64<!-- YAML 65changes: 66 - version: v8.0.0 67 pr-url: https://github.com/nodejs/node/pull/12113 68 description: End-of-Life. 69 - version: v6.12.0 70 pr-url: https://github.com/nodejs/node/pull/10116 71 description: A deprecation code has been assigned. 72 - version: v5.0.0 73 pr-url: https://github.com/nodejs/node/pull/3078 74 description: Runtime deprecation. 75--> 76 77Type: End-of-Life 78 79The `_linklist` module is deprecated. Please use a userland alternative. 80 81<a id="DEP0003"></a> 82### DEP0003: `_writableState.buffer` 83<!-- YAML 84changes: 85 - version: 86 - v4.8.6 87 - v6.12.0 88 pr-url: https://github.com/nodejs/node/pull/10116 89 description: A deprecation code has been assigned. 90 - version: v0.11.15 91 pr-url: https://github.com/nodejs/node-v0.x-archive/pull/8826 92 description: Runtime deprecation. 93--> 94 95Type: Runtime 96 97The `_writableState.buffer` property is deprecated. Use the 98`_writableState.getBuffer()` method instead. 99 100<a id="DEP0004"></a> 101### DEP0004: `CryptoStream.prototype.readyState` 102<!-- YAML 103changes: 104 - version: v10.0.0 105 pr-url: https://github.com/nodejs/node/pull/17882 106 description: End-of-Life. 107 - version: 108 - v4.8.6 109 - v6.12.0 110 pr-url: https://github.com/nodejs/node/pull/10116 111 description: A deprecation code has been assigned. 112 - version: 0.4.0 113 commit: 9c7f89bf56abd37a796fea621ad2e47dd33d2b82 114 description: Documentation-only deprecation. 115--> 116 117Type: End-of-Life 118 119The `CryptoStream.prototype.readyState` property was removed. 120 121<a id="DEP0005"></a> 122### DEP0005: `Buffer()` constructor 123<!-- YAML 124changes: 125 - version: v10.0.0 126 pr-url: https://github.com/nodejs/node/pull/19524 127 description: Runtime deprecation. 128 - version: v6.12.0 129 pr-url: https://github.com/nodejs/node/pull/10116 130 description: A deprecation code has been assigned. 131 - version: v6.0.0 132 pr-url: https://github.com/nodejs/node/pull/4682 133 description: Documentation-only deprecation. 134--> 135 136Type: Runtime (supports [`--pending-deprecation`][]) 137 138The `Buffer()` function and `new Buffer()` constructor are deprecated due to 139API usability issues that can lead to accidental security issues. 140 141As an alternative, use one of the following methods of constructing `Buffer` 142objects: 143 144* [`Buffer.alloc(size[, fill[, encoding]])`][alloc]: Create a `Buffer` with 145 *initialized* memory. 146* [`Buffer.allocUnsafe(size)`][alloc_unsafe_size]: Create a `Buffer` with 147 *uninitialized* memory. 148* [`Buffer.allocUnsafeSlow(size)`][]: Create a `Buffer` with *uninitialized* 149 memory. 150* [`Buffer.from(array)`][]: Create a `Buffer` with a copy of `array` 151* [`Buffer.from(arrayBuffer[, byteOffset[, length]])`][from_arraybuffer] - 152 Create a `Buffer` that wraps the given `arrayBuffer`. 153* [`Buffer.from(buffer)`][]: Create a `Buffer` that copies `buffer`. 154* [`Buffer.from(string[, encoding])`][from_string_encoding]: Create a `Buffer` 155 that copies `string`. 156 157Without `--pending-deprecation`, runtime warnings occur only for code not in 158`node_modules`. This means there will not be deprecation warnings for 159`Buffer()` usage in dependencies. With `--pending-deprecation`, a runtime 160warning results no matter where the `Buffer()` usage occurs. 161 162<a id="DEP0006"></a> 163### DEP0006: `child_process` `options.customFds` 164<!-- YAML 165changes: 166 - version: v12.0.0 167 pr-url: https://github.com/nodejs/node/pull/25279 168 description: End-of-Life. 169 - version: 170 - v4.8.6 171 - v6.12.0 172 pr-url: https://github.com/nodejs/node/pull/10116 173 description: A deprecation code has been assigned. 174 - version: v0.11.14 175 description: Runtime deprecation. 176 - version: v0.5.11 177 description: Documentation-only deprecation. 178--> 179 180Type: End-of-Life 181 182Within the [`child_process`][] module's `spawn()`, `fork()`, and `exec()` 183methods, the `options.customFds` option is deprecated. The `options.stdio` 184option should be used instead. 185 186<a id="DEP0007"></a> 187### DEP0007: Replace `cluster` `worker.suicide` with `worker.exitedAfterDisconnect` 188<!-- YAML 189changes: 190 - version: v9.0.0 191 pr-url: https://github.com/nodejs/node/pull/13702 192 description: End-of-Life. 193 - version: v7.0.0 194 pr-url: https://github.com/nodejs/node/pull/3747 195 description: Runtime deprecation. 196 - version: v6.12.0 197 pr-url: https://github.com/nodejs/node/pull/10116 198 description: A deprecation code has been assigned. 199 - version: v6.0.0 200 pr-url: https://github.com/nodejs/node/pull/3743 201 description: Documentation-only deprecation. 202--> 203 204Type: End-of-Life 205 206In an earlier version of the Node.js `cluster`, a boolean property with the name 207`suicide` was added to the `Worker` object. The intent of this property was to 208provide an indication of how and why the `Worker` instance exited. In Node.js 2096.0.0, the old property was deprecated and replaced with a new 210[`worker.exitedAfterDisconnect`][] property. The old property name did not 211precisely describe the actual semantics and was unnecessarily emotion-laden. 212 213<a id="DEP0008"></a> 214### DEP0008: `require('constants')` 215<!-- YAML 216changes: 217 - version: v6.12.0 218 pr-url: https://github.com/nodejs/node/pull/10116 219 description: A deprecation code has been assigned. 220 - version: v6.3.0 221 pr-url: https://github.com/nodejs/node/pull/6534 222 description: Documentation-only deprecation. 223--> 224 225Type: Documentation-only 226 227The `constants` module is deprecated. When requiring access to constants 228relevant to specific Node.js builtin modules, developers should instead refer 229to the `constants` property exposed by the relevant module. For instance, 230`require('fs').constants` and `require('os').constants`. 231 232<a id="DEP0009"></a> 233### DEP0009: `crypto.pbkdf2` without digest 234<!-- YAML 235changes: 236 - version: v11.0.0 237 pr-url: https://github.com/nodejs/node/pull/22861 238 description: Runtime deprecation (for `digest === null`). 239 - version: v8.0.0 240 pr-url: https://github.com/nodejs/node/pull/11305 241 description: End-of-Life (for `digest === undefined`). 242 - version: v6.12.0 243 pr-url: https://github.com/nodejs/node/pull/10116 244 description: A deprecation code has been assigned. 245 - version: v6.0.0 246 pr-url: https://github.com/nodejs/node/pull/4047 247 description: Runtime deprecation (for `digest === undefined`). 248--> 249 250Type: Runtime 251 252Use of the [`crypto.pbkdf2()`][] API without specifying a digest was deprecated 253in Node.js 6.0 because the method defaulted to using the non-recommended 254`'SHA1'` digest. Previously, a deprecation warning was printed. Starting in 255Node.js 8.0.0, calling `crypto.pbkdf2()` or `crypto.pbkdf2Sync()` with 256`digest` set to `undefined` will throw a `TypeError`. 257 258Beginning in Node.js v11.0.0, calling these functions with `digest` set to 259`null` will print a deprecation warning to align with the behavior when `digest` 260is `undefined`. 261 262<a id="DEP0010"></a> 263### DEP0010: `crypto.createCredentials` 264<!-- YAML 265changes: 266 - version: v11.0.0 267 pr-url: https://github.com/nodejs/node/pull/21153 268 description: End-of-Life. 269 - version: 270 - v4.8.6 271 - v6.12.0 272 pr-url: https://github.com/nodejs/node/pull/10116 273 description: A deprecation code has been assigned. 274 - version: v0.11.13 275 pr-url: https://github.com/nodejs/node-v0.x-archive/pull/7265 276 description: Runtime deprecation. 277--> 278 279Type: End-of-Life 280 281The `crypto.createCredentials()` API was removed. Please use 282[`tls.createSecureContext()`][] instead. 283 284<a id="DEP0011"></a> 285### DEP0011: `crypto.Credentials` 286<!-- YAML 287changes: 288 - version: v11.0.0 289 pr-url: https://github.com/nodejs/node/pull/21153 290 description: End-of-Life. 291 - version: 292 - v4.8.6 293 - v6.12.0 294 pr-url: https://github.com/nodejs/node/pull/10116 295 description: A deprecation code has been assigned. 296 - version: v0.11.13 297 pr-url: https://github.com/nodejs/node-v0.x-archive/pull/7265 298 description: Runtime deprecation. 299--> 300 301Type: End-of-Life 302 303The `crypto.Credentials` class was removed. Please use [`tls.SecureContext`][] 304instead. 305 306<a id="DEP0012"></a> 307### DEP0012: `Domain.dispose` 308<!-- YAML 309changes: 310 - version: v9.0.0 311 pr-url: https://github.com/nodejs/node/pull/15412 312 description: End-of-Life. 313 - version: 314 - v4.8.6 315 - v6.12.0 316 pr-url: https://github.com/nodejs/node/pull/10116 317 description: A deprecation code has been assigned. 318 - version: v0.11.7 319 pr-url: https://github.com/nodejs/node-v0.x-archive/pull/5021 320 description: Runtime deprecation. 321--> 322 323Type: End-of-Life 324 325`Domain.dispose()` has been removed. Recover from failed I/O actions 326explicitly via error event handlers set on the domain instead. 327 328<a id="DEP0013"></a> 329### DEP0013: `fs` asynchronous function without callback 330<!-- YAML 331changes: 332 - version: v10.0.0 333 pr-url: https://github.com/nodejs/node/pull/18668 334 description: End-of-Life. 335 - version: v7.0.0 336 pr-url: https://github.com/nodejs/node/pull/7897 337 description: Runtime deprecation. 338--> 339 340Type: End-of-Life 341 342Calling an asynchronous function without a callback throws a `TypeError` 343in Node.js 10.0.0 onwards. See <https://github.com/nodejs/node/pull/12562>. 344 345<a id="DEP0014"></a> 346### DEP0014: `fs.read` legacy String interface 347<!-- YAML 348changes: 349 - version: v8.0.0 350 pr-url: https://github.com/nodejs/node/pull/9683 351 description: End-of-Life. 352 - version: v6.0.0 353 pr-url: https://github.com/nodejs/node/pull/4525 354 description: Runtime deprecation. 355 - version: 356 - v4.8.6 357 - v6.12.0 358 pr-url: https://github.com/nodejs/node/pull/10116 359 description: A deprecation code has been assigned. 360 - version: v0.1.96 361 commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6 362 description: Documentation-only deprecation. 363--> 364 365Type: End-of-Life 366 367The [`fs.read()`][] legacy `String` interface is deprecated. Use the `Buffer` 368API as mentioned in the documentation instead. 369 370<a id="DEP0015"></a> 371### DEP0015: `fs.readSync` legacy String interface 372<!-- YAML 373changes: 374 - version: v8.0.0 375 pr-url: https://github.com/nodejs/node/pull/9683 376 description: End-of-Life. 377 - version: v6.0.0 378 pr-url: https://github.com/nodejs/node/pull/4525 379 description: Runtime deprecation. 380 - version: 381 - v4.8.6 382 - v6.12.0 383 pr-url: https://github.com/nodejs/node/pull/10116 384 description: A deprecation code has been assigned. 385 - version: v0.1.96 386 commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6 387 description: Documentation-only deprecation. 388--> 389 390Type: End-of-Life 391 392The [`fs.readSync()`][] legacy `String` interface is deprecated. Use the 393`Buffer` API as mentioned in the documentation instead. 394 395<a id="DEP0016"></a> 396### DEP0016: `GLOBAL`/`root` 397<!-- YAML 398changes: 399 - version: v6.12.0 400 pr-url: https://github.com/nodejs/node/pull/10116 401 description: A deprecation code has been assigned. 402 - version: v6.0.0 403 pr-url: https://github.com/nodejs/node/pull/1838 404 description: Runtime deprecation. 405--> 406 407Type: Runtime 408 409The `GLOBAL` and `root` aliases for the `global` property are deprecated 410and should no longer be used. 411 412<a id="DEP0017"></a> 413### DEP0017: `Intl.v8BreakIterator` 414<!-- YAML 415changes: 416 - version: v9.0.0 417 pr-url: https://github.com/nodejs/node/pull/15238 418 description: End-of-Life. 419 - version: v7.0.0 420 pr-url: https://github.com/nodejs/node/pull/8908 421 description: Runtime deprecation. 422--> 423 424Type: End-of-Life 425 426`Intl.v8BreakIterator` was a non-standard extension and has been removed. 427See [`Intl.Segmenter`](https://github.com/tc39/proposal-intl-segmenter). 428 429<a id="DEP0018"></a> 430### DEP0018: Unhandled promise rejections 431<!-- YAML 432changes: 433 - version: v7.0.0 434 pr-url: https://github.com/nodejs/node/pull/8217 435 description: Runtime deprecation. 436--> 437 438Type: Runtime 439 440Unhandled promise rejections are deprecated. In the future, promise rejections 441that are not handled will terminate the Node.js process with a non-zero exit 442code. 443 444<a id="DEP0019"></a> 445### DEP0019: `require('.')` resolved outside directory 446<!-- YAML 447changes: 448 - version: v12.0.0 449 pr-url: https://github.com/nodejs/node/pull/26973 450 description: Removed functionality. 451 - version: 452 - v4.8.6 453 - v6.12.0 454 pr-url: https://github.com/nodejs/node/pull/10116 455 description: A deprecation code has been assigned. 456 - version: v1.8.1 457 pr-url: https://github.com/nodejs/node/pull/1363 458 description: Runtime deprecation. 459--> 460 461Type: End-of-Life 462 463In certain cases, `require('.')` could resolve outside the package directory. 464This behavior has been removed. 465 466<a id="DEP0020"></a> 467### DEP0020: `Server.connections` 468<!-- YAML 469changes: 470 - version: 471 - v4.8.6 472 - v6.12.0 473 pr-url: https://github.com/nodejs/node/pull/10116 474 description: A deprecation code has been assigned. 475 - version: v0.9.7 476 pr-url: https://github.com/nodejs/node-v0.x-archive/pull/4595 477 description: Runtime deprecation. 478--> 479 480Type: Runtime 481 482The [`Server.connections`][] property is deprecated. Please use the 483[`Server.getConnections()`][] method instead. 484 485<a id="DEP0021"></a> 486### DEP0021: `Server.listenFD` 487<!-- YAML 488changes: 489 - version: v12.0.0 490 pr-url: https://github.com/nodejs/node/pull/27127 491 description: End-of-Life. 492 - version: 493 - v4.8.6 494 - v6.12.0 495 pr-url: https://github.com/nodejs/node/pull/10116 496 description: A deprecation code has been assigned. 497 - version: v0.7.12 498 commit: 41421ff9da1288aa241a5e9dcf915b685ade1c23 499 description: Runtime deprecation. 500--> 501 502Type: End-of-Life 503 504The `Server.listenFD()` method was deprecated and removed. Please use 505[`Server.listen({fd: <number>})`][] instead. 506 507<a id="DEP0022"></a> 508### DEP0022: `os.tmpDir()` 509<!-- YAML 510changes: 511 - version: v7.0.0 512 pr-url: https://github.com/nodejs/node/pull/6739 513 description: Runtime deprecation. 514--> 515 516Type: Runtime 517 518The `os.tmpDir()` API is deprecated. Please use [`os.tmpdir()`][] instead. 519 520<a id="DEP0023"></a> 521### DEP0023: `os.getNetworkInterfaces()` 522<!-- YAML 523changes: 524 - version: v12.0.0 525 pr-url: https://github.com/nodejs/node/pull/25280 526 description: End-of-Life. 527 - version: 528 - v4.8.6 529 - v6.12.0 530 pr-url: https://github.com/nodejs/node/pull/10116 531 description: A deprecation code has been assigned. 532 - version: v0.6.0 533 commit: 37bb37d151fb6ee4696730e63ff28bb7a4924f97 534 description: Runtime deprecation. 535--> 536 537Type: End-of-Life 538 539The `os.getNetworkInterfaces()` method is deprecated. Please use the 540[`os.networkInterfaces()`][] method instead. 541 542<a id="DEP0024"></a> 543### DEP0024: `REPLServer.prototype.convertToContext()` 544<!-- YAML 545changes: 546 - version: v9.0.0 547 pr-url: https://github.com/nodejs/node/pull/13434 548 description: End-of-Life. 549 - version: v7.0.0 550 pr-url: https://github.com/nodejs/node/pull/7829 551 description: Runtime deprecation. 552--> 553 554Type: End-of-Life 555 556The `REPLServer.prototype.convertToContext()` API has been removed. 557 558<a id="DEP0025"></a> 559### DEP0025: `require('sys')` 560<!-- YAML 561changes: 562 - version: 563 - v4.8.6 564 - v6.12.0 565 pr-url: https://github.com/nodejs/node/pull/10116 566 description: A deprecation code has been assigned. 567 - version: v1.0.0 568 pr-url: https://github.com/nodejs/node/pull/317 569 description: Runtime deprecation. 570--> 571 572Type: Runtime 573 574The `sys` module is deprecated. Please use the [`util`][] module instead. 575 576<a id="DEP0026"></a> 577### DEP0026: `util.print()` 578<!-- YAML 579changes: 580 - version: v12.0.0 581 pr-url: https://github.com/nodejs/node/pull/25377 582 description: End-of-Life. 583 - version: 584 - v4.8.6 585 - v6.12.0 586 pr-url: https://github.com/nodejs/node/pull/10116 587 description: A deprecation code has been assigned. 588 - version: v0.11.3 589 commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce 590 description: Runtime deprecation. 591--> 592 593Type: End-of-Life 594 595`util.print()` has been removed. Please use [`console.log()`][] instead. 596 597<a id="DEP0027"></a> 598### DEP0027: `util.puts()` 599<!-- YAML 600changes: 601 - version: v12.0.0 602 pr-url: https://github.com/nodejs/node/pull/25377 603 description: End-of-Life. 604 - version: 605 - v4.8.6 606 - v6.12.0 607 pr-url: https://github.com/nodejs/node/pull/10116 608 description: A deprecation code has been assigned. 609 - version: v0.11.3 610 commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce 611 description: Runtime deprecation. 612--> 613 614Type: End-of-Life 615 616`util.puts()` has been removed. Please use [`console.log()`][] instead. 617 618<a id="DEP0028"></a> 619### DEP0028: `util.debug()` 620<!-- YAML 621changes: 622 - version: v12.0.0 623 pr-url: https://github.com/nodejs/node/pull/25377 624 description: End-of-Life. 625 - version: 626 - v4.8.6 627 - v6.12.0 628 pr-url: https://github.com/nodejs/node/pull/10116 629 description: A deprecation code has been assigned. 630 - version: v0.11.3 631 commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce 632 description: Runtime deprecation. 633--> 634 635Type: End-of-Life 636 637`util.debug()` has been removed. Please use [`console.error()`][] instead. 638 639<a id="DEP0029"></a> 640### DEP0029: `util.error()` 641<!-- YAML 642changes: 643 - version: v12.0.0 644 pr-url: https://github.com/nodejs/node/pull/25377 645 description: End-of-Life. 646 - version: 647 - v4.8.6 648 - v6.12.0 649 pr-url: https://github.com/nodejs/node/pull/10116 650 description: A deprecation code has been assigned. 651 - version: v0.11.3 652 commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce 653 description: Runtime deprecation. 654--> 655 656Type: End-of-Life 657 658`util.error()` has been removed. Please use [`console.error()`][] instead. 659 660<a id="DEP0030"></a> 661### DEP0030: `SlowBuffer` 662<!-- YAML 663changes: 664 - version: v6.12.0 665 pr-url: https://github.com/nodejs/node/pull/10116 666 description: A deprecation code has been assigned. 667 - version: v6.0.0 668 pr-url: https://github.com/nodejs/node/pull/5833 669 description: Documentation-only deprecation. 670--> 671 672Type: Documentation-only 673 674The [`SlowBuffer`][] class is deprecated. Please use 675[`Buffer.allocUnsafeSlow(size)`][] instead. 676 677<a id="DEP0031"></a> 678### DEP0031: `ecdh.setPublicKey()` 679<!-- YAML 680changes: 681 - version: v6.12.0 682 pr-url: https://github.com/nodejs/node/pull/10116 683 description: A deprecation code has been assigned. 684 - version: v5.2.0 685 pr-url: https://github.com/nodejs/node/pull/3511 686 description: Documentation-only deprecation. 687--> 688 689Type: Documentation-only 690 691The [`ecdh.setPublicKey()`][] method is now deprecated as its inclusion in the 692API is not useful. 693 694<a id="DEP0032"></a> 695### DEP0032: `domain` module 696<!-- YAML 697changes: 698 - version: 699 - v4.8.6 700 - v6.12.0 701 pr-url: https://github.com/nodejs/node/pull/10116 702 description: A deprecation code has been assigned. 703 - version: v1.4.2 704 pr-url: https://github.com/nodejs/node/pull/943 705 description: Documentation-only deprecation. 706--> 707 708Type: Documentation-only 709 710The [`domain`][] module is deprecated and should not be used. 711 712<a id="DEP0033"></a> 713### DEP0033: `EventEmitter.listenerCount()` 714<!-- YAML 715changes: 716 - version: 717 - v4.8.6 718 - v6.12.0 719 pr-url: https://github.com/nodejs/node/pull/10116 720 description: A deprecation code has been assigned. 721 - version: v3.2.0 722 pr-url: https://github.com/nodejs/node/pull/2349 723 description: Documentation-only deprecation. 724--> 725 726Type: Documentation-only 727 728The [`EventEmitter.listenerCount(emitter, eventName)`][] API is 729deprecated. Please use [`emitter.listenerCount(eventName)`][] instead. 730 731<a id="DEP0034"></a> 732### DEP0034: `fs.exists(path, callback)` 733<!-- YAML 734changes: 735 - version: 736 - v4.8.6 737 - v6.12.0 738 pr-url: https://github.com/nodejs/node/pull/10116 739 description: A deprecation code has been assigned. 740 - version: v1.0.0 741 pr-url: https://github.com/iojs/io.js/pull/166 742 description: Documentation-only deprecation. 743--> 744 745Type: Documentation-only 746 747The [`fs.exists(path, callback)`][] API is deprecated. Please use 748[`fs.stat()`][] or [`fs.access()`][] instead. 749 750<a id="DEP0035"></a> 751### DEP0035: `fs.lchmod(path, mode, callback)` 752<!-- YAML 753changes: 754 - version: 755 - v4.8.6 756 - v6.12.0 757 pr-url: https://github.com/nodejs/node/pull/10116 758 description: A deprecation code has been assigned. 759 - version: v0.4.7 760 description: Documentation-only deprecation. 761--> 762 763Type: Documentation-only 764 765The [`fs.lchmod(path, mode, callback)`][] API is deprecated. 766 767<a id="DEP0036"></a> 768### DEP0036: `fs.lchmodSync(path, mode)` 769<!-- YAML 770changes: 771 - version: 772 - v4.8.6 773 - v6.12.0 774 pr-url: https://github.com/nodejs/node/pull/10116 775 description: A deprecation code has been assigned. 776 - version: v0.4.7 777 description: Documentation-only deprecation. 778--> 779 780Type: Documentation-only 781 782The [`fs.lchmodSync(path, mode)`][] API is deprecated. 783 784<a id="DEP0037"></a> 785### DEP0037: `fs.lchown(path, uid, gid, callback)` 786<!-- YAML 787changes: 788 - version: v10.6.0 789 pr-url: https://github.com/nodejs/node/pull/21498 790 description: Deprecation revoked. 791 - version: 792 - v4.8.6 793 - v6.12.0 794 pr-url: https://github.com/nodejs/node/pull/10116 795 description: A deprecation code has been assigned. 796 - version: v0.4.7 797 description: Documentation-only deprecation. 798--> 799 800Type: Deprecation revoked 801 802The [`fs.lchown(path, uid, gid, callback)`][] API was deprecated. The 803deprecation was revoked because the requisite supporting APIs were added in 804libuv. 805 806<a id="DEP0038"></a> 807### DEP0038: `fs.lchownSync(path, uid, gid)` 808<!-- YAML 809changes: 810 - version: v10.6.0 811 pr-url: https://github.com/nodejs/node/pull/21498 812 description: Deprecation revoked. 813 - version: 814 - v4.8.6 815 - v6.12.0 816 pr-url: https://github.com/nodejs/node/pull/10116 817 description: A deprecation code has been assigned. 818 - version: v0.4.7 819 description: Documentation-only deprecation. 820--> 821 822Type: Deprecation revoked 823 824The [`fs.lchownSync(path, uid, gid)`][] API was deprecated. The deprecation was 825revoked because the requisite supporting APIs were added in libuv. 826 827<a id="DEP0039"></a> 828### DEP0039: `require.extensions` 829<!-- YAML 830changes: 831 - version: 832 - v4.8.6 833 - v6.12.0 834 pr-url: https://github.com/nodejs/node/pull/10116 835 description: A deprecation code has been assigned. 836 - version: v0.10.6 837 commit: 7bd8a5a2a60b75266f89f9a32877d55294a3881c 838 description: Documentation-only deprecation. 839--> 840 841Type: Documentation-only 842 843The [`require.extensions`][] property is deprecated. 844 845<a id="DEP0040"></a> 846### DEP0040: `punycode` module 847<!-- YAML 848changes: 849 - version: v7.0.0 850 pr-url: https://github.com/nodejs/node/pull/7941 851 description: Documentation-only deprecation. 852--> 853 854Type: Documentation-only 855 856The [`punycode`][] module is deprecated. Please use a userland alternative 857instead. 858 859<a id="DEP0041"></a> 860### DEP0041: `NODE_REPL_HISTORY_FILE` environment variable 861<!-- YAML 862changes: 863 - version: v10.0.0 864 pr-url: https://github.com/nodejs/node/pull/13876 865 description: End-of-Life. 866 - version: 867 - v4.8.6 868 - v6.12.0 869 pr-url: https://github.com/nodejs/node/pull/10116 870 description: A deprecation code has been assigned. 871 - version: v3.0.0 872 pr-url: https://github.com/nodejs/node/pull/2224 873 description: Documentation-only deprecation. 874--> 875 876Type: End-of-Life 877 878The `NODE_REPL_HISTORY_FILE` environment variable was removed. Please use 879`NODE_REPL_HISTORY` instead. 880 881<a id="DEP0042"></a> 882### DEP0042: `tls.CryptoStream` 883<!-- YAML 884changes: 885 - version: v10.0.0 886 pr-url: https://github.com/nodejs/node/pull/17882 887 description: End-of-Life. 888 - version: 889 - v4.8.6 890 - v6.12.0 891 pr-url: https://github.com/nodejs/node/pull/10116 892 description: A deprecation code has been assigned. 893 - version: v0.11.3 894 commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7 895 description: Documentation-only deprecation. 896--> 897 898Type: End-of-Life 899 900The [`tls.CryptoStream`][] class was removed. Please use 901[`tls.TLSSocket`][] instead. 902 903<a id="DEP0043"></a> 904### DEP0043: `tls.SecurePair` 905<!-- YAML 906changes: 907 - version: v8.0.0 908 pr-url: https://github.com/nodejs/node/pull/11349 909 description: Runtime deprecation. 910 - version: v6.12.0 911 pr-url: https://github.com/nodejs/node/pull/10116 912 description: A deprecation code has been assigned. 913 - version: v6.0.0 914 pr-url: https://github.com/nodejs/node/pull/6063 915 description: Documentation-only deprecation. 916 - version: v0.11.15 917 pr-url: 918 - https://github.com/nodejs/node-v0.x-archive/pull/8695 919 - https://github.com/nodejs/node-v0.x-archive/pull/8700 920 description: Deprecation revoked. 921 - version: v0.11.3 922 commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7 923 description: Runtime deprecation. 924--> 925 926Type: Documentation-only 927 928The [`tls.SecurePair`][] class is deprecated. Please use 929[`tls.TLSSocket`][] instead. 930 931<a id="DEP0044"></a> 932### DEP0044: `util.isArray()` 933<!-- YAML 934changes: 935 - version: 936 - v4.8.6 937 - v6.12.0 938 pr-url: https://github.com/nodejs/node/pull/10116 939 description: A deprecation code has been assigned. 940 - version: 941 - v3.3.1 942 - v4.0.0 943 pr-url: https://github.com/nodejs/node/pull/2447 944 description: Documentation-only deprecation. 945--> 946 947Type: Documentation-only 948 949The [`util.isArray()`][] API is deprecated. Please use `Array.isArray()` 950instead. 951 952<a id="DEP0045"></a> 953### DEP0045: `util.isBoolean()` 954<!-- YAML 955changes: 956 - version: 957 - v4.8.6 958 - v6.12.0 959 pr-url: https://github.com/nodejs/node/pull/10116 960 description: A deprecation code has been assigned. 961 - version: 962 - v3.3.1 963 - v4.0.0 964 pr-url: https://github.com/nodejs/node/pull/2447 965 description: Documentation-only deprecation. 966--> 967 968Type: Documentation-only 969 970The [`util.isBoolean()`][] API is deprecated. 971 972<a id="DEP0046"></a> 973### DEP0046: `util.isBuffer()` 974<!-- YAML 975changes: 976 - version: 977 - v4.8.6 978 - v6.12.0 979 pr-url: https://github.com/nodejs/node/pull/10116 980 description: A deprecation code has been assigned. 981 - version: 982 - v3.3.1 983 - v4.0.0 984 pr-url: https://github.com/nodejs/node/pull/2447 985 description: Documentation-only deprecation. 986--> 987 988Type: Documentation-only 989 990The [`util.isBuffer()`][] API is deprecated. Please use 991[`Buffer.isBuffer()`][] instead. 992 993<a id="DEP0047"></a> 994### DEP0047: `util.isDate()` 995<!-- YAML 996changes: 997 - version: 998 - v4.8.6 999 - v6.12.0 1000 pr-url: https://github.com/nodejs/node/pull/10116 1001 description: A deprecation code has been assigned. 1002 - version: 1003 - v3.3.1 1004 - v4.0.0 1005 pr-url: https://github.com/nodejs/node/pull/2447 1006 description: Documentation-only deprecation. 1007--> 1008 1009Type: Documentation-only 1010 1011The [`util.isDate()`][] API is deprecated. 1012 1013<a id="DEP0048"></a> 1014### DEP0048: `util.isError()` 1015<!-- YAML 1016changes: 1017 - version: 1018 - v4.8.6 1019 - v6.12.0 1020 pr-url: https://github.com/nodejs/node/pull/10116 1021 description: A deprecation code has been assigned. 1022 - version: 1023 - v3.3.1 1024 - v4.0.0 1025 pr-url: https://github.com/nodejs/node/pull/2447 1026 description: Documentation-only deprecation. 1027--> 1028 1029Type: Documentation-only 1030 1031The [`util.isError()`][] API is deprecated. 1032 1033<a id="DEP0049"></a> 1034### DEP0049: `util.isFunction()` 1035<!-- YAML 1036changes: 1037 - version: 1038 - v4.8.6 1039 - v6.12.0 1040 pr-url: https://github.com/nodejs/node/pull/10116 1041 description: A deprecation code has been assigned. 1042 - version: 1043 - v3.3.1 1044 - v4.0.0 1045 pr-url: https://github.com/nodejs/node/pull/2447 1046 description: Documentation-only deprecation. 1047--> 1048 1049Type: Documentation-only 1050 1051The [`util.isFunction()`][] API is deprecated. 1052 1053<a id="DEP0050"></a> 1054### DEP0050: `util.isNull()` 1055<!-- YAML 1056changes: 1057 - version: 1058 - v4.8.6 1059 - v6.12.0 1060 pr-url: https://github.com/nodejs/node/pull/10116 1061 description: A deprecation code has been assigned. 1062 - version: 1063 - v3.3.1 1064 - v4.0.0 1065 pr-url: https://github.com/nodejs/node/pull/2447 1066 description: Documentation-only deprecation. 1067--> 1068 1069Type: Documentation-only 1070 1071The [`util.isNull()`][] API is deprecated. 1072 1073<a id="DEP0051"></a> 1074### DEP0051: `util.isNullOrUndefined()` 1075<!-- YAML 1076changes: 1077 - version: 1078 - v4.8.6 1079 - v6.12.0 1080 pr-url: https://github.com/nodejs/node/pull/10116 1081 description: A deprecation code has been assigned. 1082 - version: 1083 - v3.3.1 1084 - v4.0.0 1085 pr-url: https://github.com/nodejs/node/pull/2447 1086 description: Documentation-only deprecation. 1087--> 1088 1089Type: Documentation-only 1090 1091The [`util.isNullOrUndefined()`][] API is deprecated. 1092 1093<a id="DEP0052"></a> 1094### DEP0052: `util.isNumber()` 1095<!-- YAML 1096changes: 1097 - version: 1098 - v4.8.6 1099 - v6.12.0 1100 pr-url: https://github.com/nodejs/node/pull/10116 1101 description: A deprecation code has been assigned. 1102 - version: 1103 - v3.3.1 1104 - v4.0.0 1105 pr-url: https://github.com/nodejs/node/pull/2447 1106 description: Documentation-only deprecation. 1107--> 1108 1109Type: Documentation-only 1110 1111The [`util.isNumber()`][] API is deprecated. 1112 1113<a id="DEP0053"></a> 1114### DEP0053 `util.isObject()` 1115<!-- YAML 1116changes: 1117 - version: 1118 - v4.8.6 1119 - v6.12.0 1120 pr-url: https://github.com/nodejs/node/pull/10116 1121 description: A deprecation code has been assigned. 1122 - version: 1123 - v3.3.1 1124 - v4.0.0 1125 pr-url: https://github.com/nodejs/node/pull/2447 1126 description: Documentation-only deprecation. 1127--> 1128 1129Type: Documentation-only 1130 1131The [`util.isObject()`][] API is deprecated. 1132 1133<a id="DEP0054"></a> 1134### DEP0054: `util.isPrimitive()` 1135<!-- YAML 1136changes: 1137 - version: 1138 - v4.8.6 1139 - v6.12.0 1140 pr-url: https://github.com/nodejs/node/pull/10116 1141 description: A deprecation code has been assigned. 1142 - version: 1143 - v3.3.1 1144 - v4.0.0 1145 pr-url: https://github.com/nodejs/node/pull/2447 1146 description: Documentation-only deprecation. 1147--> 1148 1149Type: Documentation-only 1150 1151The [`util.isPrimitive()`][] API is deprecated. 1152 1153<a id="DEP0055"></a> 1154### DEP0055: `util.isRegExp()` 1155<!-- YAML 1156changes: 1157 - version: 1158 - v4.8.6 1159 - v6.12.0 1160 pr-url: https://github.com/nodejs/node/pull/10116 1161 description: A deprecation code has been assigned. 1162 - version: 1163 - v3.3.1 1164 - v4.0.0 1165 pr-url: https://github.com/nodejs/node/pull/2447 1166 description: Documentation-only deprecation. 1167--> 1168 1169Type: Documentation-only 1170 1171The [`util.isRegExp()`][] API is deprecated. 1172 1173<a id="DEP0056"></a> 1174### DEP0056: `util.isString()` 1175<!-- YAML 1176changes: 1177 - version: 1178 - v4.8.6 1179 - v6.12.0 1180 pr-url: https://github.com/nodejs/node/pull/10116 1181 description: A deprecation code has been assigned. 1182 - version: 1183 - v3.3.1 1184 - v4.0.0 1185 pr-url: https://github.com/nodejs/node/pull/2447 1186 description: Documentation-only deprecation. 1187--> 1188 1189Type: Documentation-only 1190 1191The [`util.isString()`][] API is deprecated. 1192 1193<a id="DEP0057"></a> 1194### DEP0057: `util.isSymbol()` 1195<!-- YAML 1196changes: 1197 - version: 1198 - v4.8.6 1199 - v6.12.0 1200 pr-url: https://github.com/nodejs/node/pull/10116 1201 description: A deprecation code has been assigned. 1202 - version: 1203 - v3.3.1 1204 - v4.0.0 1205 pr-url: https://github.com/nodejs/node/pull/2447 1206 description: Documentation-only deprecation. 1207--> 1208 1209Type: Documentation-only 1210 1211The [`util.isSymbol()`][] API is deprecated. 1212 1213<a id="DEP0058"></a> 1214### DEP0058: `util.isUndefined()` 1215<!-- YAML 1216changes: 1217 - version: 1218 - v4.8.6 1219 - v6.12.0 1220 pr-url: https://github.com/nodejs/node/pull/10116 1221 description: A deprecation code has been assigned. 1222 - version: 1223 - v3.3.1 1224 - v4.0.0 1225 pr-url: https://github.com/nodejs/node/pull/2447 1226 description: Documentation-only deprecation. 1227--> 1228 1229Type: Documentation-only 1230 1231The [`util.isUndefined()`][] API is deprecated. 1232 1233<a id="DEP0059"></a> 1234### DEP0059: `util.log()` 1235<!-- YAML 1236changes: 1237 - version: v6.12.0 1238 pr-url: https://github.com/nodejs/node/pull/10116 1239 description: A deprecation code has been assigned. 1240 - version: v6.0.0 1241 pr-url: https://github.com/nodejs/node/pull/6161 1242 description: Documentation-only deprecation. 1243--> 1244 1245Type: Documentation-only 1246 1247The [`util.log()`][] API is deprecated. 1248 1249<a id="DEP0060"></a> 1250### DEP0060: `util._extend()` 1251<!-- YAML 1252changes: 1253 - version: v6.12.0 1254 pr-url: https://github.com/nodejs/node/pull/10116 1255 description: A deprecation code has been assigned. 1256 - version: v6.0.0 1257 pr-url: https://github.com/nodejs/node/pull/4903 1258 description: Documentation-only deprecation. 1259--> 1260 1261Type: Documentation-only 1262 1263The [`util._extend()`][] API is deprecated. 1264 1265<a id="DEP0061"></a> 1266### DEP0061: `fs.SyncWriteStream` 1267<!-- YAML 1268changes: 1269 - version: v11.0.0 1270 pr-url: https://github.com/nodejs/node/pull/20735 1271 description: End-of-Life. 1272 - version: v8.0.0 1273 pr-url: https://github.com/nodejs/node/pull/10467 1274 description: Runtime deprecation. 1275 - version: v7.0.0 1276 pr-url: https://github.com/nodejs/node/pull/6749 1277 description: Documentation-only deprecation. 1278--> 1279 1280Type: End-of-Life 1281 1282The `fs.SyncWriteStream` class was never intended to be a publicly accessible 1283API and has been removed. No alternative API is available. Please use a userland 1284alternative. 1285 1286<a id="DEP0062"></a> 1287### DEP0062: `node --debug` 1288<!-- YAML 1289changes: 1290 - version: v8.0.0 1291 pr-url: https://github.com/nodejs/node/pull/10970 1292 description: Runtime deprecation. 1293 - version: v12.0.0 1294 pr-url: https://github.com/nodejs/node/pull/25828 1295 description: End-of-Life. 1296--> 1297 1298Type: End-of-Life 1299 1300`--debug` activates the legacy V8 debugger interface, which was removed as 1301of V8 5.8. It is replaced by Inspector which is activated with `--inspect` 1302instead. 1303 1304<a id="DEP0063"></a> 1305### DEP0063: `ServerResponse.prototype.writeHeader()` 1306<!-- YAML 1307changes: 1308 - version: v8.0.0 1309 pr-url: https://github.com/nodejs/node/pull/11355 1310 description: Documentation-only deprecation. 1311--> 1312 1313Type: Documentation-only 1314 1315The `http` module `ServerResponse.prototype.writeHeader()` API is 1316deprecated. Please use `ServerResponse.prototype.writeHead()` instead. 1317 1318The `ServerResponse.prototype.writeHeader()` method was never documented as an 1319officially supported API. 1320 1321<a id="DEP0064"></a> 1322### DEP0064: `tls.createSecurePair()` 1323<!-- YAML 1324changes: 1325 - version: v8.0.0 1326 pr-url: https://github.com/nodejs/node/pull/11349 1327 description: Runtime deprecation. 1328 - version: v6.12.0 1329 pr-url: https://github.com/nodejs/node/pull/10116 1330 description: A deprecation code has been assigned. 1331 - version: v6.0.0 1332 pr-url: https://github.com/nodejs/node/pull/6063 1333 description: Documentation-only deprecation. 1334 - version: v0.11.15 1335 pr-url: 1336 - https://github.com/nodejs/node-v0.x-archive/pull/8695 1337 - https://github.com/nodejs/node-v0.x-archive/pull/8700 1338 description: Deprecation revoked. 1339 - version: v0.11.3 1340 commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7 1341 description: Runtime deprecation. 1342--> 1343 1344Type: Runtime 1345 1346The `tls.createSecurePair()` API was deprecated in documentation in Node.js 13470.11.3. Users should use `tls.Socket` instead. 1348 1349<a id="DEP0065"></a> 1350### DEP0065: `repl.REPL_MODE_MAGIC` and `NODE_REPL_MODE=magic` 1351<!-- YAML 1352changes: 1353 - version: v10.0.0 1354 pr-url: https://github.com/nodejs/node/pull/19187 1355 description: End-of-Life. 1356 - version: v8.0.0 1357 pr-url: https://github.com/nodejs/node/pull/11599 1358 description: Documentation-only deprecation. 1359--> 1360 1361Type: End-of-Life 1362 1363The `repl` module's `REPL_MODE_MAGIC` constant, used for `replMode` option, has 1364been removed. Its behavior has been functionally identical to that of 1365`REPL_MODE_SLOPPY` since Node.js 6.0.0, when V8 5.0 was imported. Please use 1366`REPL_MODE_SLOPPY` instead. 1367 1368The `NODE_REPL_MODE` environment variable is used to set the underlying 1369`replMode` of an interactive `node` session. Its value, `magic`, is also 1370removed. Please use `sloppy` instead. 1371 1372<a id="DEP0066"></a> 1373### DEP0066: `OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames` 1374<!-- YAML 1375changes: 1376 - version: v12.0.0 1377 pr-url: https://github.com/nodejs/node/pull/24167 1378 description: Runtime deprecation. 1379 - version: v8.0.0 1380 pr-url: https://github.com/nodejs/node/pull/10941 1381 description: Documentation-only deprecation. 1382--> 1383 1384Type: Runtime 1385 1386The `http` module `OutgoingMessage.prototype._headers` and 1387`OutgoingMessage.prototype._headerNames` properties are deprecated. Use one of 1388the public methods (e.g. `OutgoingMessage.prototype.getHeader()`, 1389`OutgoingMessage.prototype.getHeaders()`, 1390`OutgoingMessage.prototype.getHeaderNames()`, 1391`OutgoingMessage.prototype.hasHeader()`, 1392`OutgoingMessage.prototype.removeHeader()`, 1393`OutgoingMessage.prototype.setHeader()`) for working with outgoing headers. 1394 1395The `OutgoingMessage.prototype._headers` and 1396`OutgoingMessage.prototype._headerNames` properties were never documented as 1397officially supported properties. 1398 1399<a id="DEP0067"></a> 1400### DEP0067: `OutgoingMessage.prototype._renderHeaders` 1401<!-- YAML 1402changes: 1403 - version: v8.0.0 1404 pr-url: https://github.com/nodejs/node/pull/10941 1405 description: Documentation-only deprecation. 1406--> 1407 1408Type: Documentation-only 1409 1410The `http` module `OutgoingMessage.prototype._renderHeaders()` API is 1411deprecated. 1412 1413The `OutgoingMessage.prototype._renderHeaders` property was never documented as 1414an officially supported API. 1415 1416<a id="DEP0068"></a> 1417### DEP0068: `node debug` 1418<!-- YAML 1419changes: 1420 - version: v8.0.0 1421 pr-url: https://github.com/nodejs/node/pull/11441 1422 description: Runtime deprecation. 1423--> 1424 1425Type: Runtime 1426 1427`node debug` corresponds to the legacy CLI debugger which has been replaced with 1428a V8-inspector based CLI debugger available through `node inspect`. 1429 1430<a id="DEP0069"></a> 1431### DEP0069: `vm.runInDebugContext(string)` 1432<!-- YAML 1433changes: 1434 - version: v10.0.0 1435 pr-url: https://github.com/nodejs/node/pull/13295 1436 description: End-of-Life. 1437 - version: v9.0.0 1438 pr-url: https://github.com/nodejs/node/pull/12815 1439 description: Runtime deprecation. 1440 - version: v8.0.0 1441 pr-url: https://github.com/nodejs/node/pull/12243 1442 description: Documentation-only deprecation. 1443--> 1444 1445Type: End-of-Life 1446 1447DebugContext has been removed in V8 and is not available in Node.js 10+. 1448 1449DebugContext was an experimental API. 1450 1451<a id="DEP0070"></a> 1452### DEP0070: `async_hooks.currentId()` 1453<!-- YAML 1454changes: 1455 - version: v9.0.0 1456 pr-url: https://github.com/nodejs/node/pull/14414 1457 description: End-of-Life. 1458 - version: v8.2.0 1459 pr-url: https://github.com/nodejs/node/pull/13490 1460 description: Runtime deprecation. 1461--> 1462 1463Type: End-of-Life 1464 1465`async_hooks.currentId()` was renamed to `async_hooks.executionAsyncId()` for 1466clarity. 1467 1468This change was made while `async_hooks` was an experimental API. 1469 1470<a id="DEP0071"></a> 1471### DEP0071: `async_hooks.triggerId()` 1472<!-- YAML 1473changes: 1474 - version: v9.0.0 1475 pr-url: https://github.com/nodejs/node/pull/14414 1476 description: End-of-Life. 1477 - version: v8.2.0 1478 pr-url: https://github.com/nodejs/node/pull/13490 1479 description: Runtime deprecation. 1480--> 1481 1482Type: End-of-Life 1483 1484`async_hooks.triggerId()` was renamed to `async_hooks.triggerAsyncId()` for 1485clarity. 1486 1487This change was made while `async_hooks` was an experimental API. 1488 1489<a id="DEP0072"></a> 1490### DEP0072: `async_hooks.AsyncResource.triggerId()` 1491<!-- YAML 1492changes: 1493 - version: v9.0.0 1494 pr-url: https://github.com/nodejs/node/pull/14414 1495 description: End-of-Life. 1496 - version: v8.2.0 1497 pr-url: https://github.com/nodejs/node/pull/13490 1498 description: Runtime deprecation. 1499--> 1500 1501Type: End-of-Life 1502 1503`async_hooks.AsyncResource.triggerId()` was renamed to 1504`async_hooks.AsyncResource.triggerAsyncId()` for clarity. 1505 1506This change was made while `async_hooks` was an experimental API. 1507 1508<a id="DEP0073"></a> 1509### DEP0073: Several internal properties of `net.Server` 1510<!-- YAML 1511changes: 1512 - version: v10.0.0 1513 pr-url: https://github.com/nodejs/node/pull/17141 1514 description: End-of-Life. 1515 - version: v9.0.0 1516 pr-url: https://github.com/nodejs/node/pull/14449 1517 description: Runtime deprecation. 1518--> 1519 1520Type: End-of-Life 1521 1522Accessing several internal, undocumented properties of `net.Server` instances 1523with inappropriate names is deprecated. 1524 1525As the original API was undocumented and not generally useful for non-internal 1526code, no replacement API is provided. 1527 1528<a id="DEP0074"></a> 1529### DEP0074: `REPLServer.bufferedCommand` 1530<!-- YAML 1531changes: 1532 - version: v9.0.0 1533 pr-url: https://github.com/nodejs/node/pull/13687 1534 description: Runtime deprecation. 1535--> 1536 1537Type: Runtime 1538 1539The `REPLServer.bufferedCommand` property was deprecated in favor of 1540[`REPLServer.clearBufferedCommand()`][]. 1541 1542<a id="DEP0075"></a> 1543### DEP0075: `REPLServer.parseREPLKeyword()` 1544<!-- YAML 1545changes: 1546 - version: v9.0.0 1547 pr-url: https://github.com/nodejs/node/pull/14223 1548 description: Runtime deprecation. 1549--> 1550 1551Type: Runtime 1552 1553`REPLServer.parseREPLKeyword()` was removed from userland visibility. 1554 1555<a id="DEP0076"></a> 1556### DEP0076: `tls.parseCertString()` 1557<!-- YAML 1558changes: 1559 - version: v9.0.0 1560 pr-url: https://github.com/nodejs/node/pull/14249 1561 description: Runtime deprecation. 1562 - version: v8.6.0 1563 pr-url: https://github.com/nodejs/node/pull/14245 1564 description: Documentation-only deprecation. 1565--> 1566 1567Type: Runtime 1568 1569`tls.parseCertString()` is a trivial parsing helper that was made public by 1570mistake. This function can usually be replaced with: 1571 1572```js 1573const querystring = require('querystring'); 1574querystring.parse(str, '\n', '='); 1575``` 1576 1577This function is not completely equivalent to `querystring.parse()`. One 1578difference is that `querystring.parse()` does url decoding: 1579 1580```console 1581> querystring.parse('%E5%A5%BD=1', '\n', '='); 1582{ '好': '1' } 1583> tls.parseCertString('%E5%A5%BD=1'); 1584{ '%E5%A5%BD': '1' } 1585``` 1586 1587<a id="DEP0077"></a> 1588### DEP0077: `Module._debug()` 1589<!-- YAML 1590changes: 1591 - version: v9.0.0 1592 pr-url: https://github.com/nodejs/node/pull/13948 1593 description: Runtime deprecation. 1594--> 1595 1596Type: Runtime 1597 1598`Module._debug()` is deprecated. 1599 1600The `Module._debug()` function was never documented as an officially 1601supported API. 1602 1603<a id="DEP0078"></a> 1604### DEP0078: `REPLServer.turnOffEditorMode()` 1605<!-- YAML 1606changes: 1607 - version: v9.0.0 1608 pr-url: https://github.com/nodejs/node/pull/15136 1609 description: Runtime deprecation. 1610--> 1611 1612Type: Runtime 1613 1614`REPLServer.turnOffEditorMode()` was removed from userland visibility. 1615 1616<a id="DEP0079"></a> 1617### DEP0079: Custom inspection function on objects via `.inspect()` 1618<!-- YAML 1619changes: 1620 - version: v11.0.0 1621 pr-url: https://github.com/nodejs/node/pull/20722 1622 description: End-of-Life. 1623 - version: v10.0.0 1624 pr-url: https://github.com/nodejs/node/pull/16393 1625 description: Runtime deprecation. 1626 - version: v8.7.0 1627 pr-url: https://github.com/nodejs/node/pull/15631 1628 description: Documentation-only deprecation. 1629--> 1630 1631Type: End-of-Life 1632 1633Using a property named `inspect` on an object to specify a custom inspection 1634function for [`util.inspect()`][] is deprecated. Use [`util.inspect.custom`][] 1635instead. For backward compatibility with Node.js prior to version 6.4.0, both 1636may be specified. 1637 1638<a id="DEP0080"></a> 1639### DEP0080: `path._makeLong()` 1640<!-- YAML 1641changes: 1642 - version: v9.0.0 1643 pr-url: https://github.com/nodejs/node/pull/14956 1644 description: Documentation-only deprecation. 1645--> 1646 1647Type: Documentation-only 1648 1649The internal `path._makeLong()` was not intended for public use. However, 1650userland modules have found it useful. The internal API is deprecated 1651and replaced with an identical, public `path.toNamespacedPath()` method. 1652 1653<a id="DEP0081"></a> 1654### DEP0081: `fs.truncate()` using a file descriptor 1655<!-- YAML 1656changes: 1657 - version: v9.0.0 1658 pr-url: https://github.com/nodejs/node/pull/15990 1659 description: Runtime deprecation. 1660--> 1661 1662Type: Runtime 1663 1664`fs.truncate()` `fs.truncateSync()` usage with a file descriptor is 1665deprecated. Please use `fs.ftruncate()` or `fs.ftruncateSync()` to work with 1666file descriptors. 1667 1668<a id="DEP0082"></a> 1669### DEP0082: `REPLServer.prototype.memory()` 1670<!-- YAML 1671changes: 1672 - version: v9.0.0 1673 pr-url: https://github.com/nodejs/node/pull/16242 1674 description: Runtime deprecation. 1675--> 1676 1677Type: Runtime 1678 1679`REPLServer.prototype.memory()` is only necessary for the internal mechanics of 1680the `REPLServer` itself. Do not use this function. 1681 1682<a id="DEP0083"></a> 1683### DEP0083: Disabling ECDH by setting `ecdhCurve` to `false` 1684<!-- YAML 1685changes: 1686 - version: v10.0.0 1687 pr-url: https://github.com/nodejs/node/pull/19794 1688 description: End-of-Life. 1689 - version: v9.2.0 1690 pr-url: https://github.com/nodejs/node/pull/16130 1691 description: Runtime deprecation. 1692--> 1693 1694Type: End-of-Life. 1695 1696The `ecdhCurve` option to `tls.createSecureContext()` and `tls.TLSSocket` could 1697be set to `false` to disable ECDH entirely on the server only. This mode was 1698deprecated in preparation for migrating to OpenSSL 1.1.0 and consistency with 1699the client and is now unsupported. Use the `ciphers` parameter instead. 1700 1701<a id="DEP0084"></a> 1702### DEP0084: requiring bundled internal dependencies 1703<!-- YAML 1704changes: 1705 - version: v12.0.0 1706 pr-url: https://github.com/nodejs/node/pull/25138 1707 description: This functionality has been removed. 1708 - version: v10.0.0 1709 pr-url: https://github.com/nodejs/node/pull/16392 1710 description: Runtime deprecation. 1711--> 1712 1713Type: End-of-Life 1714 1715Since Node.js versions 4.4.0 and 5.2.0, several modules only intended for 1716internal usage were mistakenly exposed to user code through `require()`. These 1717modules were: 1718 1719* `v8/tools/codemap` 1720* `v8/tools/consarray` 1721* `v8/tools/csvparser` 1722* `v8/tools/logreader` 1723* `v8/tools/profile_view` 1724* `v8/tools/profile` 1725* `v8/tools/SourceMap` 1726* `v8/tools/splaytree` 1727* `v8/tools/tickprocessor-driver` 1728* `v8/tools/tickprocessor` 1729* `node-inspect/lib/_inspect` (from 7.6.0) 1730* `node-inspect/lib/internal/inspect_client` (from 7.6.0) 1731* `node-inspect/lib/internal/inspect_repl` (from 7.6.0) 1732 1733The `v8/*` modules do not have any exports, and if not imported in a specific 1734order would in fact throw errors. As such there are virtually no legitimate use 1735cases for importing them through `require()`. 1736 1737On the other hand, `node-inspect` may be installed locally through a package 1738manager, as it is published on the npm registry under the same name. No source 1739code modification is necessary if that is done. 1740 1741<a id="DEP0085"></a> 1742### DEP0085: AsyncHooks sensitive API 1743<!-- YAML 1744changes: 1745 - version: 10.0.0 1746 pr-url: https://github.com/nodejs/node/pull/17147 1747 description: End-of-Life. 1748 - version: 1749 - v8.10.0 1750 - v9.4.0 1751 pr-url: https://github.com/nodejs/node/pull/16972 1752 description: Runtime deprecation. 1753--> 1754 1755Type: End-of-Life 1756 1757The AsyncHooks sensitive API was never documented and had various minor issues. 1758Use the `AsyncResource` API instead. See 1759<https://github.com/nodejs/node/issues/15572>. 1760 1761<a id="DEP0086"></a> 1762### DEP0086: Remove `runInAsyncIdScope` 1763<!-- YAML 1764changes: 1765 - version: 10.0.0 1766 pr-url: https://github.com/nodejs/node/pull/17147 1767 description: End-of-Life. 1768 - version: 1769 - v8.10.0 1770 - v9.4.0 1771 pr-url: https://github.com/nodejs/node/pull/16972 1772 description: Runtime deprecation. 1773--> 1774 1775Type: End-of-Life 1776 1777`runInAsyncIdScope` doesn't emit the `'before'` or `'after'` event and can thus 1778cause a lot of issues. See <https://github.com/nodejs/node/issues/14328>. 1779 1780<a id="DEP0089"></a> 1781### DEP0089: `require('assert')` 1782<!-- YAML 1783changes: 1784 - version: v12.8.0 1785 pr-url: https://github.com/nodejs/node/pull/28892 1786 description: Deprecation revoked. 1787 - version: 1788 - v9.9.0 1789 - v10.0.0 1790 pr-url: https://github.com/nodejs/node/pull/17002 1791 description: Documentation-only deprecation. 1792--> 1793 1794Type: Deprecation revoked 1795 1796Importing assert directly was not recommended as the exposed functions use 1797loose equality checks. The deprecation was revoked because use of the `assert` 1798module is not discouraged, and the deprecation caused developer confusion. 1799 1800<a id="DEP0090"></a> 1801### DEP0090: Invalid GCM authentication tag lengths 1802<!-- YAML 1803changes: 1804 - version: v11.0.0 1805 pr-url: https://github.com/nodejs/node/pull/17825 1806 description: End-of-Life. 1807 - version: v10.0.0 1808 pr-url: https://github.com/nodejs/node/pull/18017 1809 description: Runtime deprecation. 1810--> 1811 1812Type: End-of-Life 1813 1814Node.js used to support all GCM authentication tag lengths which are accepted by 1815OpenSSL when calling [`decipher.setAuthTag()`][]. Beginning with Node.js 1816v11.0.0, only authentication tag lengths of 128, 120, 112, 104, 96, 64, and 32 1817bits are allowed. Authentication tags of other lengths are invalid per 1818[NIST SP 800-38D][]. 1819 1820<a id="DEP0091"></a> 1821### DEP0091: `crypto.DEFAULT_ENCODING` 1822<!-- YAML 1823changes: 1824 - version: v10.0.0 1825 pr-url: https://github.com/nodejs/node/pull/18333 1826 description: Runtime deprecation. 1827--> 1828 1829Type: Runtime 1830 1831The [`crypto.DEFAULT_ENCODING`][] property is deprecated. 1832 1833<a id="DEP0092"></a> 1834### DEP0092: Top-level `this` bound to `module.exports` 1835<!-- YAML 1836changes: 1837 - version: v10.0.0 1838 pr-url: https://github.com/nodejs/node/pull/16878 1839 description: Documentation-only deprecation. 1840--> 1841 1842Type: Documentation-only 1843 1844Assigning properties to the top-level `this` as an alternative 1845to `module.exports` is deprecated. Developers should use `exports` 1846or `module.exports` instead. 1847 1848<a id="DEP0093"></a> 1849### DEP0093: `crypto.fips` is deprecated and replaced. 1850<!-- YAML 1851changes: 1852 - version: v10.0.0 1853 pr-url: https://github.com/nodejs/node/pull/18335 1854 description: Documentation-only deprecation. 1855--> 1856 1857Type: Documentation-only 1858 1859The [`crypto.fips`][] property is deprecated. Please use `crypto.setFips()` 1860and `crypto.getFips()` instead. 1861 1862<a id="DEP0094"></a> 1863### DEP0094: Using `assert.fail()` with more than one argument. 1864<!-- YAML 1865changes: 1866 - version: v10.0.0 1867 pr-url: https://github.com/nodejs/node/pull/18418 1868 description: Runtime deprecation. 1869--> 1870 1871Type: Runtime 1872 1873Using `assert.fail()` with more than one argument is deprecated. Use 1874`assert.fail()` with only one argument or use a different `assert` module 1875method. 1876 1877<a id="DEP0095"></a> 1878### DEP0095: `timers.enroll()` 1879<!-- YAML 1880changes: 1881 - version: v10.0.0 1882 pr-url: https://github.com/nodejs/node/pull/18066 1883 description: Runtime deprecation. 1884--> 1885 1886Type: Runtime 1887 1888`timers.enroll()` is deprecated. Please use the publicly documented 1889[`setTimeout()`][] or [`setInterval()`][] instead. 1890 1891<a id="DEP0096"></a> 1892### DEP0096: `timers.unenroll()` 1893<!-- YAML 1894changes: 1895 - version: v10.0.0 1896 pr-url: https://github.com/nodejs/node/pull/18066 1897 description: Runtime deprecation. 1898--> 1899 1900Type: Runtime 1901 1902`timers.unenroll()` is deprecated. Please use the publicly documented 1903[`clearTimeout()`][] or [`clearInterval()`][] instead. 1904 1905<a id="DEP0097"></a> 1906### DEP0097: `MakeCallback` with `domain` property 1907<!-- YAML 1908changes: 1909 - version: v10.0.0 1910 pr-url: https://github.com/nodejs/node/pull/17417 1911 description: Runtime deprecation. 1912--> 1913 1914Type: Runtime 1915 1916Users of `MakeCallback` that add the `domain` property to carry context, 1917should start using the `async_context` variant of `MakeCallback` or 1918`CallbackScope`, or the high-level `AsyncResource` class. 1919 1920<a id="DEP0098"></a> 1921### DEP0098: AsyncHooks embedder `AsyncResource.emitBefore` and `AsyncResource.emitAfter` APIs 1922<!-- YAML 1923changes: 1924 - version: v12.0.0 1925 pr-url: https://github.com/nodejs/node/pull/26530 1926 description: End-of-Life 1927 - version: 1928 - v8.12.0 1929 - v9.6.0 1930 - v10.0.0 1931 pr-url: https://github.com/nodejs/node/pull/18632 1932 description: Runtime deprecation. 1933--> 1934 1935Type: End-of-Life 1936 1937The embedded API provided by AsyncHooks exposes `.emitBefore()` and 1938`.emitAfter()` methods which are very easy to use incorrectly which can lead 1939to unrecoverable errors. 1940 1941Use [`asyncResource.runInAsyncScope()`][] API instead which provides a much 1942safer, and more convenient, alternative. See 1943<https://github.com/nodejs/node/pull/18513>. 1944 1945<a id="DEP0099"></a> 1946### DEP0099: Async context-unaware `node::MakeCallback` C++ APIs 1947<!-- YAML 1948changes: 1949 - version: v10.0.0 1950 pr-url: https://github.com/nodejs/node/pull/18632 1951 description: Compile-time deprecation. 1952--> 1953 1954Type: Compile-time 1955 1956Certain versions of `node::MakeCallback` APIs available to native modules are 1957deprecated. Please use the versions of the API that accept an `async_context` 1958parameter. 1959 1960<a id="DEP0100"></a> 1961### DEP0100: `process.assert()` 1962<!-- YAML 1963changes: 1964 - version: v10.0.0 1965 pr-url: https://github.com/nodejs/node/pull/18666 1966 description: Runtime deprecation. 1967 - version: v0.3.7 1968 description: Documentation-only deprecation. 1969--> 1970 1971Type: Runtime 1972 1973`process.assert()` is deprecated. Please use the [`assert`][] module instead. 1974 1975This was never a documented feature. 1976 1977<a id="DEP0101"></a> 1978### DEP0101: `--with-lttng` 1979<!-- YAML 1980changes: 1981 - version: v10.0.0 1982 pr-url: https://github.com/nodejs/node/pull/18982 1983 description: End-of-Life. 1984--> 1985 1986Type: End-of-Life 1987 1988The `--with-lttng` compile-time option has been removed. 1989 1990<a id="DEP0102"></a> 1991### DEP0102: Using `noAssert` in `Buffer#(read|write)` operations. 1992<!-- YAML 1993changes: 1994 - version: v10.0.0 1995 pr-url: https://github.com/nodejs/node/pull/18395 1996 description: End-of-Life. 1997--> 1998 1999Type: End-of-Life 2000 2001Using the `noAssert` argument has no functionality anymore. All input is going 2002to be verified, no matter if it is set to true or not. Skipping the verification 2003could lead to hard to find errors and crashes. 2004 2005<a id="DEP0103"></a> 2006### DEP0103: `process.binding('util').is[...]` typechecks 2007<!-- YAML 2008changes: 2009 - version: v10.9.0 2010 pr-url: https://github.com/nodejs/node/pull/22004 2011 description: Superseded by [DEP0111](#DEP0111). 2012 - version: v10.0.0 2013 pr-url: https://github.com/nodejs/node/pull/18415 2014 description: Documentation-only deprecation. 2015--> 2016 2017Type: Documentation-only (supports [`--pending-deprecation`][]) 2018 2019Using `process.binding()` in general should be avoided. The type checking 2020methods in particular can be replaced by using [`util.types`][]. 2021 2022This deprecation has been superseded by the deprecation of the 2023`process.binding()` API ([DEP0111](#DEP0111)). 2024 2025<a id="DEP0104"></a> 2026### DEP0104: `process.env` string coercion 2027<!-- YAML 2028changes: 2029 - version: v10.0.0 2030 pr-url: https://github.com/nodejs/node/pull/18990 2031 description: Documentation-only deprecation. 2032--> 2033 2034Type: Documentation-only (supports [`--pending-deprecation`][]) 2035 2036When assigning a non-string property to [`process.env`][], the assigned value is 2037implicitly converted to a string. This behavior is deprecated if the assigned 2038value is not a string, boolean, or number. In the future, such assignment may 2039result in a thrown error. Please convert the property to a string before 2040assigning it to `process.env`. 2041 2042<a id="DEP0105"></a> 2043### DEP0105: `decipher.finaltol` 2044<!-- YAML 2045changes: 2046 - version: v11.0.0 2047 pr-url: https://github.com/nodejs/node/pull/19941 2048 description: End-of-Life. 2049 - version: v10.0.0 2050 pr-url: https://github.com/nodejs/node/pull/19353 2051 description: Runtime deprecation. 2052--> 2053 2054Type: End-of-Life 2055 2056`decipher.finaltol()` has never been documented and was an alias for 2057[`decipher.final()`][]. This API has been removed, and it is recommended to use 2058[`decipher.final()`][] instead. 2059 2060<a id="DEP0106"></a> 2061### DEP0106: `crypto.createCipher` and `crypto.createDecipher` 2062<!-- YAML 2063changes: 2064 - version: v11.0.0 2065 pr-url: https://github.com/nodejs/node/pull/22089 2066 description: Runtime deprecation. 2067 - version: v10.0.0 2068 pr-url: https://github.com/nodejs/node/pull/19343 2069 description: Documentation-only deprecation. 2070--> 2071 2072Type: Runtime 2073 2074Using [`crypto.createCipher()`][] and [`crypto.createDecipher()`][] should be 2075avoided as they use a weak key derivation function (MD5 with no salt) and static 2076initialization vectors. It is recommended to derive a key using 2077[`crypto.pbkdf2()`][] or [`crypto.scrypt()`][] and to use 2078[`crypto.createCipheriv()`][] and [`crypto.createDecipheriv()`][] to obtain the 2079[`Cipher`][] and [`Decipher`][] objects respectively. 2080 2081<a id="DEP0107"></a> 2082### DEP0107: `tls.convertNPNProtocols()` 2083<!-- YAML 2084changes: 2085 - version: v11.0.0 2086 pr-url: https://github.com/nodejs/node/pull/20736 2087 description: End-of-Life. 2088 - version: v10.0.0 2089 pr-url: https://github.com/nodejs/node/pull/19403 2090 description: Runtime deprecation. 2091--> 2092 2093Type: End-of-Life 2094 2095This was an undocumented helper function not intended for use outside Node.js 2096core and obsoleted by the removal of NPN (Next Protocol Negotiation) support. 2097 2098<a id="DEP0108"></a> 2099### DEP0108: `zlib.bytesRead` 2100<!-- YAML 2101changes: 2102 - version: v11.0.0 2103 pr-url: https://github.com/nodejs/node/pull/23308 2104 description: Runtime deprecation. 2105 - version: v10.0.0 2106 pr-url: https://github.com/nodejs/node/pull/19414 2107 description: Documentation-only deprecation. 2108--> 2109 2110Type: Runtime 2111 2112Deprecated alias for [`zlib.bytesWritten`][]. This original name was chosen 2113because it also made sense to interpret the value as the number of bytes 2114read by the engine, but is inconsistent with other streams in Node.js that 2115expose values under these names. 2116 2117<a id="DEP0109"></a> 2118### DEP0109: `http`, `https`, and `tls` support for invalid URLs 2119<!-- YAML 2120changes: 2121 - version: v11.0.0 2122 pr-url: https://github.com/nodejs/node/pull/20270 2123 description: Runtime deprecation. 2124--> 2125 2126Type: Runtime 2127 2128Some previously supported (but strictly invalid) URLs were accepted through the 2129[`http.request()`][], [`http.get()`][], [`https.request()`][], 2130[`https.get()`][], and [`tls.checkServerIdentity()`][] APIs because those were 2131accepted by the legacy `url.parse()` API. The mentioned APIs now use the WHATWG 2132URL parser that requires strictly valid URLs. Passing an invalid URL is 2133deprecated and support will be removed in the future. 2134 2135<a id="DEP0110"></a> 2136### DEP0110: `vm.Script` cached data 2137<!-- YAML 2138changes: 2139 - version: v10.6.0 2140 pr-url: https://github.com/nodejs/node/pull/20300 2141 description: Documentation-only deprecation. 2142--> 2143 2144Type: Documentation-only 2145 2146The `produceCachedData` option is deprecated. Use 2147[`script.createCachedData()`][] instead. 2148 2149<a id="DEP0111"></a> 2150### DEP0111: `process.binding()` 2151<!-- YAML 2152changes: 2153 - version: v10.9.0 2154 pr-url: https://github.com/nodejs/node/pull/22004 2155 description: Documentation-only deprecation. 2156 - version: v11.12.0 2157 pr-url: https://github.com/nodejs/node/pull/26500 2158 description: Added support for `--pending-deprecation`. 2159--> 2160 2161Type: Documentation-only (supports [`--pending-deprecation`][]) 2162 2163`process.binding()` is for use by Node.js internal code only. 2164 2165<a id="DEP0112"></a> 2166### DEP0112: `dgram` private APIs 2167<!-- YAML 2168changes: 2169 - version: v11.0.0 2170 pr-url: https://github.com/nodejs/node/pull/22011 2171 description: Runtime deprecation. 2172--> 2173 2174Type: Runtime 2175 2176The `dgram` module previously contained several APIs that were never meant to 2177accessed outside of Node.js core: `Socket.prototype._handle`, 2178`Socket.prototype._receiving`, `Socket.prototype._bindState`, 2179`Socket.prototype._queue`, `Socket.prototype._reuseAddr`, 2180`Socket.prototype._healthCheck()`, `Socket.prototype._stopReceiving()`, and 2181`dgram._createSocketHandle()`. 2182 2183<a id="DEP0113"></a> 2184### DEP0113: `Cipher.setAuthTag()`, `Decipher.getAuthTag()` 2185<!-- YAML 2186changes: 2187 - version: v12.0.0 2188 pr-url: https://github.com/nodejs/node/pull/26249 2189 description: End-of-Life. 2190 - version: v11.0.0 2191 pr-url: https://github.com/nodejs/node/pull/22126 2192 description: Runtime deprecation. 2193--> 2194 2195Type: End-of-Life 2196 2197`Cipher.setAuthTag()` and `Decipher.getAuthTag()` are no longer available. They 2198were never documented and would throw when called. 2199 2200<a id="DEP0114"></a> 2201### DEP0114: `crypto._toBuf()` 2202<!-- YAML 2203changes: 2204 - version: v12.0.0 2205 pr-url: https://github.com/nodejs/node/pull/25338 2206 description: End-of-Life. 2207 - version: v11.0.0 2208 pr-url: https://github.com/nodejs/node/pull/22501 2209 description: Runtime deprecation. 2210--> 2211 2212Type: End-of-Life 2213 2214The `crypto._toBuf()` function was not designed to be used by modules outside 2215of Node.js core and was removed. 2216 2217<a id="DEP0115"></a> 2218### DEP0115: `crypto.prng()`, `crypto.pseudoRandomBytes()`, `crypto.rng()` 2219<!-- YAML 2220changes: 2221 - version: v11.0.0 2222 pr-url: 2223 - https://github.com/nodejs/node/pull/22519 2224 - https://github.com/nodejs/node/pull/23017 2225 description: Added documentation-only deprecation 2226 with `--pending-deprecation` support. 2227--> 2228 2229Type: Documentation-only (supports [`--pending-deprecation`][]) 2230 2231In recent versions of Node.js, there is no difference between 2232[`crypto.randomBytes()`][] and `crypto.pseudoRandomBytes()`. The latter is 2233deprecated along with the undocumented aliases `crypto.prng()` and 2234`crypto.rng()` in favor of [`crypto.randomBytes()`][] and may be removed in a 2235future release. 2236 2237<a id="DEP0116"></a> 2238### DEP0116: Legacy URL API 2239<!-- YAML 2240changes: 2241 - version: v11.0.0 2242 pr-url: https://github.com/nodejs/node/pull/22715 2243 description: Documentation-only deprecation. 2244--> 2245 2246Type: Documentation-only 2247 2248The [Legacy URL API][] is deprecated. This includes [`url.format()`][], 2249[`url.parse()`][], [`url.resolve()`][], and the [legacy `urlObject`][]. Please 2250use the [WHATWG URL API][] instead. 2251 2252<a id="DEP0117"></a> 2253### DEP0117: Native crypto handles 2254<!-- YAML 2255changes: 2256 - version: v12.0.0 2257 pr-url: https://github.com/nodejs/node/pull/27011 2258 description: End-of-Life. 2259 - version: v11.0.0 2260 pr-url: https://github.com/nodejs/node/pull/22747 2261 description: Runtime deprecation. 2262--> 2263 2264Type: End-of-Life 2265 2266Previous versions of Node.js exposed handles to internal native objects through 2267the `_handle` property of the `Cipher`, `Decipher`, `DiffieHellman`, 2268`DiffieHellmanGroup`, `ECDH`, `Hash`, `Hmac`, `Sign`, and `Verify` classes. 2269The `_handle` property has been removed because improper use of the native 2270object can lead to crashing the application. 2271 2272<a id="DEP0118"></a> 2273### DEP0118: `dns.lookup()` support for a falsy host name 2274<!-- YAML 2275changes: 2276 - version: v11.0.0 2277 pr-url: https://github.com/nodejs/node/pull/23173 2278 description: Runtime deprecation. 2279--> 2280 2281Type: Runtime 2282 2283Previous versions of Node.js supported `dns.lookup()` with a falsy host name 2284like `dns.lookup(false)` due to backward compatibility. 2285This behavior is undocumented and is thought to be unused in real world apps. 2286It will become an error in future versions of Node.js. 2287 2288<a id="DEP0119"></a> 2289### DEP0119: `process.binding('uv').errname()` private API 2290<!-- YAML 2291changes: 2292 - version: v11.0.0 2293 pr-url: https://github.com/nodejs/node/pull/23597 2294 description: Documentation-only deprecation. 2295--> 2296 2297Type: Documentation-only (supports [`--pending-deprecation`][]) 2298 2299`process.binding('uv').errname()` is deprecated. Please use 2300[`util.getSystemErrorName()`][] instead. 2301 2302<a id="DEP0120"></a> 2303### DEP0120: Windows Performance Counter support 2304<!-- YAML 2305changes: 2306 - version: v12.0.0 2307 pr-url: https://github.com/nodejs/node/pull/24862 2308 description: End-of-Life. 2309 - version: v11.0.0 2310 pr-url: https://github.com/nodejs/node/pull/22485 2311 description: Runtime deprecation. 2312--> 2313 2314Type: End-of-Life 2315 2316Windows Performance Counter support has been removed from Node.js. The 2317undocumented `COUNTER_NET_SERVER_CONNECTION()`, 2318`COUNTER_NET_SERVER_CONNECTION_CLOSE()`, `COUNTER_HTTP_SERVER_REQUEST()`, 2319`COUNTER_HTTP_SERVER_RESPONSE()`, `COUNTER_HTTP_CLIENT_REQUEST()`, and 2320`COUNTER_HTTP_CLIENT_RESPONSE()` functions have been deprecated. 2321 2322<a id="DEP0121"></a> 2323### DEP0121: `net._setSimultaneousAccepts()` 2324<!-- YAML 2325changes: 2326 - version: v12.0.0 2327 pr-url: https://github.com/nodejs/node/pull/23760 2328 description: Runtime deprecation. 2329--> 2330 2331Type: Runtime 2332 2333The undocumented `net._setSimultaneousAccepts()` function was originally 2334intended for debugging and performance tuning when using the `child_process` 2335and `cluster` modules on Windows. The function is not generally useful and 2336is being removed. See discussion here: 2337<https://github.com/nodejs/node/issues/18391> 2338 2339<a id="DEP0122"></a> 2340### DEP0122: `tls` `Server.prototype.setOptions()` 2341<!-- YAML 2342changes: 2343 - version: v12.0.0 2344 pr-url: https://github.com/nodejs/node/pull/23820 2345 description: Runtime deprecation. 2346--> 2347 2348Type: Runtime 2349 2350Please use `Server.prototype.setSecureContext()` instead. 2351 2352<a id="DEP0123"></a> 2353### DEP0123: setting the TLS ServerName to an IP address 2354<!-- YAML 2355changes: 2356 - version: v12.0.0 2357 pr-url: https://github.com/nodejs/node/pull/23329 2358 description: Runtime deprecation. 2359--> 2360 2361Type: Runtime 2362 2363Setting the TLS ServerName to an IP address is not permitted by 2364[RFC 6066][]. This will be ignored in a future version. 2365 2366<a id="DEP0124"></a> 2367### DEP0124: using `REPLServer.rli` 2368<!-- YAML 2369changes: 2370 - version: v12.0.0 2371 pr-url: https://github.com/nodejs/node/pull/26260 2372 description: Runtime deprecation. 2373--> 2374 2375Type: Runtime 2376 2377This property is a reference to the instance itself. 2378 2379<a id="DEP0125"></a> 2380### DEP0125: `require('_stream_wrap')` 2381<!-- YAML 2382changes: 2383 - version: v12.0.0 2384 pr-url: https://github.com/nodejs/node/pull/26245 2385 description: Runtime deprecation. 2386--> 2387 2388Type: Runtime 2389 2390The `_stream_wrap` module is deprecated. 2391 2392<a id="DEP0126"></a> 2393### DEP0126: `timers.active()` 2394<!-- YAML 2395changes: 2396 - version: v11.14.0 2397 pr-url: https://github.com/nodejs/node/pull/26760 2398 description: Runtime deprecation. 2399--> 2400 2401Type: Runtime 2402 2403The previously undocumented `timers.active()` is deprecated. 2404Please use the publicly documented [`timeout.refresh()`][] instead. 2405If re-referencing the timeout is necessary, [`timeout.ref()`][] can be used 2406with no performance impact since Node.js 10. 2407 2408<a id="DEP0127"></a> 2409### DEP0127: `timers._unrefActive()` 2410<!-- YAML 2411changes: 2412 - version: v11.14.0 2413 pr-url: https://github.com/nodejs/node/pull/26760 2414 description: Runtime deprecation. 2415--> 2416 2417Type: Runtime 2418 2419The previously undocumented and "private" `timers._unrefActive()` is deprecated. 2420Please use the publicly documented [`timeout.refresh()`][] instead. 2421If unreferencing the timeout is necessary, [`timeout.unref()`][] can be used 2422with no performance impact since Node.js 10. 2423 2424<a id="DEP0128"></a> 2425### DEP0128: modules with an invalid `main` entry and an `index.js` file 2426<!-- YAML 2427changes: 2428 - version: v12.0.0 2429 pr-url: https://github.com/nodejs/node/pull/26823 2430 description: Documentation-only. 2431--> 2432 2433Type: Documentation-only (supports [`--pending-deprecation`][]) 2434 2435Modules that have an invalid `main` entry (e.g., `./does-not-exist.js`) and 2436also have an `index.js` file in the top level directory will resolve the 2437`index.js` file. That is deprecated and is going to throw an error in future 2438Node.js versions. 2439 2440<a id="DEP0129"></a> 2441### DEP0129: `ChildProcess._channel` 2442<!-- YAML 2443changes: 2444 - version: v11.14.0 2445 pr-url: https://github.com/nodejs/node/pull/26982 2446 description: Documentation-only. 2447--> 2448 2449Type: Documentation-only 2450 2451The `_channel` property of child process objects returned by `spawn()` and 2452similar functions is not intended for public use. Use `ChildProcess.channel` 2453instead. 2454 2455<a id="DEP0130"></a> 2456### DEP0130: `Module.createRequireFromPath()` 2457<!-- YAML 2458changes: 2459 - version: v12.2.0 2460 pr-url: https://github.com/nodejs/node/pull/27405 2461 description: Documentation-only. 2462--> 2463 2464Type: Documentation-only 2465 2466Module.createRequireFromPath() is deprecated. Please use [`module.createRequire()`][] instead. 2467 2468<a id="DEP0131"></a> 2469### DEP0131: Legacy HTTP parser 2470<!-- YAML 2471changes: 2472 - version: v12.3.0 2473 pr-url: https://github.com/nodejs/node/pull/27498 2474 description: Documentation-only. 2475--> 2476 2477Type: Documentation-only 2478 2479The legacy HTTP parser, used by default in versions of Node.js prior to 12.0.0, 2480is deprecated. This deprecation applies to users of the 2481[`--http-parser=legacy`][] command-line flag. 2482 2483<a id="DEP0132"></a> 2484### DEP0132: `worker.terminate()` with callback 2485<!-- YAML 2486changes: 2487 - version: v12.5.0 2488 pr-url: https://github.com/nodejs/node/pull/28021 2489 description: Runtime deprecation. 2490--> 2491 2492Type: Runtime 2493 2494Passing a callback to [`worker.terminate()`][] is deprecated. Use the returned 2495`Promise` instead, or a listener to the worker’s `'exit'` event. 2496 2497<a id="DEP0133"></a> 2498### DEP0133: `http` `connection` 2499<!-- YAML 2500changes: 2501 - version: v12.12.0 2502 pr-url: https://github.com/nodejs/node/pull/29015 2503 description: Documentation-only deprecation. 2504--> 2505 2506Type: Documentation-only 2507 2508Prefer [`response.socket`][] over [`response.connection`][] and 2509[`request.socket`][] over [`request.connection`][]. 2510 2511<a id="DEP0134"></a> 2512### DEP0134: `process._tickCallback` 2513<!-- YAML 2514changes: 2515 - version: v12.12.0 2516 pr-url: https://github.com/nodejs/node/pull/29781 2517 description: Documentation-only deprecation. 2518--> 2519Type: Documentation-only (supports [`--pending-deprecation`][]) 2520 2521The `process._tickCallback` property was never documented as 2522an officially supported API. 2523 2524<a id="DEP0136"></a> 2525### DEP0136: `http` `finished` 2526<!-- YAML 2527changes: 2528 - version: v12.16.0 2529 pr-url: https://github.com/nodejs/node/pull/28679 2530 description: Documentation-only deprecation. 2531--> 2532 2533Type: Documentation-only 2534 2535[`response.finished`][] indicates whether [`response.end()`][] has been 2536called, not whether `'finish'` has been emitted and the underlying data 2537is flushed. 2538 2539Use [`response.writableFinished`][] or [`response.writableEnded`][] 2540accordingly instead to avoid the ambigiuty. 2541 2542To maintain existing behaviour `response.finished` should be replaced with 2543`response.writableEnded`. 2544 2545<a id="DEP0139"></a> 2546### DEP0139: `process.umask()` with no arguments 2547<!-- YAML 2548changes: 2549 - version: 2550 - v12.19.0 2551 - v14.0.0 2552 pr-url: https://github.com/nodejs/node/pull/32499 2553 description: Documentation-only deprecation. 2554--> 2555 2556Type: Documentation-only 2557 2558Calling `process.umask()` with no argument causes the process-wide umask to be 2559written twice. This introduces a race condition between threads, and is a 2560potential security vulnerability. There is no safe, cross-platform alternative 2561API. 2562 2563<a id="DEP0144"></a> 2564### DEP0144: `module.parent` 2565<!-- YAML 2566changes: 2567 - version: 2568 - v12.19.0 2569 - v14.6.0 2570 pr-url: https://github.com/nodejs/node/pull/32217 2571 description: Documentation-only deprecation. 2572--> 2573 2574Type: Documentation-only 2575 2576A CommonJS module can access the first module that required it using 2577`module.parent`. This feature is deprecated because it does not work 2578consistently in the presence of ECMAScript modules and because it gives an 2579inaccurate representation of the CommonJS module graph. 2580 2581Some modules use it to check if they are the entry point of the current process. 2582Instead, it is recommended to compare `require.main` and `module`: 2583 2584```js 2585if (require.main === module) { 2586 // Code section that will run only if current file is the entry point. 2587} 2588``` 2589 2590When looking for the CommonJS modules that have required the current one, 2591`require.cache` and `module.children` can be used: 2592 2593```js 2594const moduleParents = Object.values(require.cache) 2595 .filter((m) => m.children.includes(module)); 2596``` 2597 2598[`--http-parser=legacy`]: cli.html#cli_http_parser_library 2599[`--pending-deprecation`]: cli.html#cli_pending_deprecation 2600[`--throw-deprecation`]: cli.html#cli_throw_deprecation 2601[`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_static_method_buffer_allocunsafeslow_size 2602[`Buffer.from(array)`]: buffer.html#buffer_static_method_buffer_from_array 2603[`Buffer.from(buffer)`]: buffer.html#buffer_static_method_buffer_from_buffer 2604[`Buffer.isBuffer()`]: buffer.html#buffer_static_method_buffer_isbuffer_obj 2605[`Cipher`]: crypto.html#crypto_class_cipher 2606[`Decipher`]: crypto.html#crypto_class_decipher 2607[`EventEmitter.listenerCount(emitter, eventName)`]: events.html#events_eventemitter_listenercount_emitter_eventname 2608[`REPLServer.clearBufferedCommand()`]: repl.html#repl_replserver_clearbufferedcommand 2609[`Server.connections`]: net.html#net_server_connections 2610[`Server.getConnections()`]: net.html#net_server_getconnections_callback 2611[`Server.listen({fd: <number>})`]: net.html#net_server_listen_handle_backlog_callback 2612[`SlowBuffer`]: buffer.html#buffer_class_slowbuffer 2613[`assert`]: assert.html 2614[`asyncResource.runInAsyncScope()`]: async_hooks.html#async_hooks_asyncresource_runinasyncscope_fn_thisarg_args 2615[`child_process`]: child_process.html 2616[`clearInterval()`]: timers.html#timers_clearinterval_timeout 2617[`clearTimeout()`]: timers.html#timers_cleartimeout_timeout 2618[`console.error()`]: console.html#console_console_error_data_args 2619[`console.log()`]: console.html#console_console_log_data_args 2620[`crypto.DEFAULT_ENCODING`]: crypto.html#crypto_crypto_default_encoding 2621[`crypto.createCipher()`]: crypto.html#crypto_crypto_createcipher_algorithm_password_options 2622[`crypto.createCipheriv()`]: crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv_options 2623[`crypto.createDecipher()`]: crypto.html#crypto_crypto_createdecipher_algorithm_password_options 2624[`crypto.createDecipheriv()`]: crypto.html#crypto_crypto_createdecipheriv_algorithm_key_iv_options 2625[`crypto.fips`]: crypto.html#crypto_crypto_fips 2626[`crypto.pbkdf2()`]: crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback 2627[`crypto.randomBytes()`]: crypto.html#crypto_crypto_randombytes_size_callback 2628[`crypto.scrypt()`]: crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback 2629[`decipher.final()`]: crypto.html#crypto_decipher_final_outputencoding 2630[`decipher.setAuthTag()`]: crypto.html#crypto_decipher_setauthtag_buffer 2631[`domain`]: domain.html 2632[`ecdh.setPublicKey()`]: crypto.html#crypto_ecdh_setpublickey_publickey_encoding 2633[`emitter.listenerCount(eventName)`]: events.html#events_emitter_listenercount_eventname 2634[`fs.access()`]: fs.html#fs_fs_access_path_mode_callback 2635[`fs.exists(path, callback)`]: fs.html#fs_fs_exists_path_callback 2636[`fs.lchmod(path, mode, callback)`]: fs.html#fs_fs_lchmod_path_mode_callback 2637[`fs.lchmodSync(path, mode)`]: fs.html#fs_fs_lchmodsync_path_mode 2638[`fs.lchown(path, uid, gid, callback)`]: fs.html#fs_fs_lchown_path_uid_gid_callback 2639[`fs.lchownSync(path, uid, gid)`]: fs.html#fs_fs_lchownsync_path_uid_gid 2640[`fs.read()`]: fs.html#fs_fs_read_fd_buffer_offset_length_position_callback 2641[`fs.readSync()`]: fs.html#fs_fs_readsync_fd_buffer_offset_length_position 2642[`fs.stat()`]: fs.html#fs_fs_stat_path_options_callback 2643[`http.get()`]: http.html#http_http_get_options_callback 2644[`http.request()`]: http.html#http_http_request_options_callback 2645[`https.get()`]: https.html#https_https_get_options_callback 2646[`https.request()`]: https.html#https_https_request_options_callback 2647[`module.createRequire()`]: module.html#module_module_createrequire_filename 2648[`os.networkInterfaces()`]: os.html#os_os_networkinterfaces 2649[`os.tmpdir()`]: os.html#os_os_tmpdir 2650[`process.env`]: process.html#process_process_env 2651[`punycode`]: punycode.html 2652[`require.extensions`]: modules.html#modules_require_extensions 2653[`request.socket`]: http.html#http_request_socket 2654[`request.connection`]: http.html#http_request_connection 2655[`response.socket`]: http.html#http_response_socket 2656[`response.connection`]: http.html#http_response_connection 2657[`response.end()`]: http.html#http_response_end_data_encoding_callback 2658[`response.finished`]: http.html#http_response_finished 2659[`response.writableFinished`]: http.html#http_response_writablefinished 2660[`response.writableEnded`]: http.html#http_response_writableended 2661[`script.createCachedData()`]: vm.html#vm_script_createcacheddata 2662[`setInterval()`]: timers.html#timers_setinterval_callback_delay_args 2663[`setTimeout()`]: timers.html#timers_settimeout_callback_delay_args 2664[`timeout.ref()`]: timers.html#timers_timeout_ref 2665[`timeout.refresh()`]: timers.html#timers_timeout_refresh 2666[`timeout.unref()`]: timers.html#timers_timeout_unref 2667[`tls.CryptoStream`]: tls.html#tls_class_tls_cryptostream 2668[`tls.SecureContext`]: tls.html#tls_tls_createsecurecontext_options 2669[`tls.SecurePair`]: tls.html#tls_class_tls_securepair 2670[`tls.TLSSocket`]: tls.html#tls_class_tls_tlssocket 2671[`tls.checkServerIdentity()`]: tls.html#tls_tls_checkserveridentity_hostname_cert 2672[`tls.createSecureContext()`]: tls.html#tls_tls_createsecurecontext_options 2673[`url.format()`]: url.html#url_url_format_urlobject 2674[`url.parse()`]: url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost 2675[`url.resolve()`]: url.html#url_url_resolve_from_to 2676[`util._extend()`]: util.html#util_util_extend_target_source 2677[`util.getSystemErrorName()`]: util.html#util_util_getsystemerrorname_err 2678[`util.inspect()`]: util.html#util_util_inspect_object_options 2679[`util.inspect.custom`]: util.html#util_util_inspect_custom 2680[`util.isArray()`]: util.html#util_util_isarray_object 2681[`util.isBoolean()`]: util.html#util_util_isboolean_object 2682[`util.isBuffer()`]: util.html#util_util_isbuffer_object 2683[`util.isDate()`]: util.html#util_util_isdate_object 2684[`util.isError()`]: util.html#util_util_iserror_object 2685[`util.isFunction()`]: util.html#util_util_isfunction_object 2686[`util.isNull()`]: util.html#util_util_isnull_object 2687[`util.isNullOrUndefined()`]: util.html#util_util_isnullorundefined_object 2688[`util.isNumber()`]: util.html#util_util_isnumber_object 2689[`util.isObject()`]: util.html#util_util_isobject_object 2690[`util.isPrimitive()`]: util.html#util_util_isprimitive_object 2691[`util.isRegExp()`]: util.html#util_util_isregexp_object 2692[`util.isString()`]: util.html#util_util_isstring_object 2693[`util.isSymbol()`]: util.html#util_util_issymbol_object 2694[`util.isUndefined()`]: util.html#util_util_isundefined_object 2695[`util.log()`]: util.html#util_util_log_string 2696[`util.types`]: util.html#util_util_types 2697[`util`]: util.html 2698[`worker.exitedAfterDisconnect`]: cluster.html#cluster_worker_exitedafterdisconnect 2699[`worker.terminate()`]: worker_threads.html#worker_threads_worker_terminate 2700[`zlib.bytesWritten`]: zlib.html#zlib_zlib_byteswritten 2701[Legacy URL API]: url.html#url_legacy_url_api 2702[NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf 2703[RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3 2704[WHATWG URL API]: url.html#url_the_whatwg_url_api 2705[alloc]: buffer.html#buffer_static_method_buffer_alloc_size_fill_encoding 2706[alloc_unsafe_size]: buffer.html#buffer_static_method_buffer_allocunsafe_size 2707[from_arraybuffer]: buffer.html#buffer_static_method_buffer_from_arraybuffer_byteoffset_length 2708[from_string_encoding]: buffer.html#buffer_static_method_buffer_from_string_encoding 2709[legacy `urlObject`]: url.html#url_legacy_urlobject 2710