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