{
  "type": "module",
  "source": "doc/api/globals.md",
  "introduced_in": "v0.10.0",
  "stability": 2,
  "stabilityText": "Stable",
  "classes": [
    {
      "textRaw": "Class: `AbortController`",
      "name": "AbortController",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0",
          "v14.17.0"
        ],
        "changes": [
          {
            "version": "v15.4.0",
            "pr-url": "https://github.com/nodejs/node/pull/35949",
            "description": "No longer experimental."
          }
        ]
      },
      "desc": "<p>A utility class used to signal cancelation in selected <code>Promise</code>-based APIs.\nThe API is based on the Web API <a href=\"globals.html#class-abortcontroller\"><code>&#x3C;AbortController></code></a>.</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\n\nac.signal.addEventListener('abort', () => console.log('Aborted!'),\n                           { once: true });\n\nac.abort();\n\nconsole.log(ac.signal.aborted);  // Prints true\n</code></pre>",
      "methods": [
        {
          "textRaw": "`abortController.abort([reason])`",
          "name": "abort",
          "type": "method",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": [
              {
                "version": [
                  "v17.2.0",
                  "v16.14.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/40807",
                "description": "Added the new optional reason argument."
              }
            ]
          },
          "signatures": [
            {
              "params": [
                {
                  "textRaw": "`reason` {any} An optional reason, retrievable on the `AbortSignal`'s `reason` property.",
                  "name": "reason",
                  "type": "any",
                  "desc": "An optional reason, retrievable on the `AbortSignal`'s `reason` property.",
                  "optional": true
                }
              ]
            }
          ],
          "desc": "<p>Triggers the abort signal, causing the <code>abortController.signal</code> to emit\nthe <code>'abort'</code> event.</p>"
        }
      ],
      "properties": [
        {
          "textRaw": "Type: {AbortSignal}",
          "name": "signal",
          "type": "AbortSignal",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": []
          }
        }
      ]
    },
    {
      "textRaw": "Class: `AbortSignal`",
      "name": "AbortSignal",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0",
          "v14.17.0"
        ],
        "changes": []
      },
      "desc": "<ul>\n<li>Extends: <a href=\"events.html#class-eventtarget\"><code>&#x3C;EventTarget></code></a></li>\n</ul>\n<p>The <code>AbortSignal</code> is used to notify observers when the\n<code>abortController.abort()</code> method is called.</p>",
      "classMethods": [
        {
          "textRaw": "Static method: `AbortSignal.abort([reason])`",
          "name": "abort",
          "type": "classMethod",
          "meta": {
            "added": [
              "v15.12.0",
              "v14.17.0"
            ],
            "changes": [
              {
                "version": [
                  "v17.2.0",
                  "v16.14.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/40807",
                "description": "Added the new optional reason argument."
              }
            ]
          },
          "signatures": [
            {
              "params": [
                {
                  "textRaw": "`reason` {any}",
                  "name": "reason",
                  "type": "any",
                  "optional": true
                }
              ],
              "return": {
                "textRaw": "Returns: {AbortSignal}",
                "name": "return",
                "type": "AbortSignal"
              }
            }
          ],
          "desc": "<p>Returns a new already aborted <code>AbortSignal</code>.</p>"
        },
        {
          "textRaw": "Static method: `AbortSignal.timeout(delay)`",
          "name": "timeout",
          "type": "classMethod",
          "meta": {
            "added": [
              "v17.3.0",
              "v16.14.0"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "textRaw": "`delay` {number} The number of milliseconds to wait before triggering the AbortSignal.",
                  "name": "delay",
                  "type": "number",
                  "desc": "The number of milliseconds to wait before triggering the AbortSignal."
                }
              ]
            }
          ],
          "desc": "<p>Returns a new <code>AbortSignal</code> which will be aborted in <code>delay</code> milliseconds.</p>"
        },
        {
          "textRaw": "Static method: `AbortSignal.any(signals)`",
          "name": "any",
          "type": "classMethod",
          "meta": {
            "added": [
              "v20.3.0",
              "v18.17.0"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "textRaw": "`signals` {AbortSignal}[] The `AbortSignal`s of which to compose a new `AbortSignal`.",
                  "name": "signals",
                  "type": "AbortSignal",
                  "desc": "[] The `AbortSignal`s of which to compose a new `AbortSignal`."
                }
              ]
            }
          ],
          "desc": "<p>Returns a new <code>AbortSignal</code> which will be aborted if any of the provided\nsignals are aborted. Its <a href=\"#abortsignalreason\"><code>abortSignal.reason</code></a> will be set to whichever\none of the <code>signals</code> caused it to be aborted.</p>"
        }
      ],
      "events": [
        {
          "textRaw": "Event: `'abort'`",
          "name": "abort",
          "type": "event",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": []
          },
          "params": [],
          "desc": "<p>The <code>'abort'</code> event is emitted when the <code>abortController.abort()</code> method\nis called. The callback is invoked with a single object argument with a\nsingle <code>type</code> property set to <code>'abort'</code>:</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\n\n// Use either the onabort property...\nac.signal.onabort = () => console.log('aborted!');\n\n// Or the EventTarget API...\nac.signal.addEventListener('abort', (event) => {\n  console.log(event.type);  // Prints 'abort'\n}, { once: true });\n\nac.abort();\n</code></pre>\n<p>The <code>AbortController</code> with which the <code>AbortSignal</code> is associated will only\never trigger the <code>'abort'</code> event once. We recommended that code check\nthat the <code>abortSignal.aborted</code> attribute is <code>false</code> before adding an <code>'abort'</code>\nevent listener.</p>\n<p>Any event listeners attached to the <code>AbortSignal</code> should use the\n<code>{ once: true }</code> option (or, if using the <code>EventEmitter</code> APIs to attach a\nlistener, use the <code>once()</code> method) to ensure that the event listener is\nremoved as soon as the <code>'abort'</code> event is handled. Failure to do so may\nresult in memory leaks.</p>"
        }
      ],
      "properties": [
        {
          "textRaw": "Type: {boolean}",
          "name": "aborted",
          "type": "boolean",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": []
          },
          "desc": "<p>True after the <code>AbortController</code> has been aborted.</p>"
        },
        {
          "textRaw": "Type: {Function}",
          "name": "onabort",
          "type": "Function",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": []
          },
          "desc": "<p>An optional callback function that may be set by user code to be notified\nwhen the <code>abortController.abort()</code> function has been called.</p>"
        },
        {
          "textRaw": "Type: {any}",
          "name": "reason",
          "type": "any",
          "meta": {
            "added": [
              "v17.2.0",
              "v16.14.0"
            ],
            "changes": []
          },
          "desc": "<p>An optional reason specified when the <code>AbortSignal</code> was triggered.</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\nac.abort(new Error('boom!'));\nconsole.log(ac.signal.reason);  // Error: boom!\n</code></pre>"
        }
      ],
      "methods": [
        {
          "textRaw": "`abortSignal.throwIfAborted()`",
          "name": "throwIfAborted",
          "type": "method",
          "meta": {
            "added": [
              "v17.3.0",
              "v16.17.0"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": []
            }
          ],
          "desc": "<p>If <code>abortSignal.aborted</code> is <code>true</code>, throws <code>abortSignal.reason</code>.</p>"
        }
      ]
    },
    {
      "textRaw": "Class: `Blob`",
      "name": "Blob",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": []
      },
      "desc": "<p>See <a href=\"buffer.html#class-blob\"><code>&#x3C;Blob></code></a>.</p>"
    },
    {
      "textRaw": "Class: `BroadcastChannel`",
      "name": "BroadcastChannel",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": []
      },
      "desc": "<p>See <a href=\"worker_threads.html#class-broadcastchannel-extends-eventtarget\"><code>&#x3C;BroadcastChannel></code></a>.</p>"
    },
    {
      "textRaw": "Class: `Buffer`",
      "name": "Buffer",
      "type": "class",
      "meta": {
        "added": [
          "v0.1.103"
        ],
        "changes": []
      },
      "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function\"><code>&#x3C;Function></code></a></li>\n</ul>\n<p>Used to handle binary data. See the <a href=\"buffer.html\">buffer section</a>.</p>"
    },
    {
      "textRaw": "Class: `ByteLengthQueuingStrategy`",
      "name": "ByteLengthQueuingStrategy",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-bytelengthqueuingstrategy\"><code>ByteLengthQueuingStrategy</code></a>.</p>"
    },
    {
      "textRaw": "Class: `CloseEvent`",
      "name": "CloseEvent",
      "type": "class",
      "meta": {
        "added": [
          "v23.0.0"
        ],
        "changes": []
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/CloseEvent\"><code>&#x3C;CloseEvent></code></a>. Disable this API\nwith the <a href=\"cli.html#--no-experimental-websocket\"><code>--no-experimental-websocket</code></a> CLI flag.</p>"
    },
    {
      "textRaw": "Class: `CompressionStream`",
      "name": "CompressionStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v24.7.0",
              "v22.20.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/59464",
            "description": "format now accepts `brotli` value."
          },
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-compressionstream\"><code>CompressionStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `CountQueuingStrategy`",
      "name": "CountQueuingStrategy",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-countqueuingstrategy\"><code>CountQueuingStrategy</code></a>.</p>"
    },
    {
      "textRaw": "Class: `Crypto`",
      "name": "Crypto",
      "type": "class",
      "meta": {
        "added": [
          "v17.6.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": "v23.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/52564",
            "description": "No longer experimental."
          },
          {
            "version": "v19.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/42083",
            "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-crypto\"><code>&#x3C;Crypto></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
    },
    {
      "textRaw": "Class: `CryptoKey`",
      "name": "CryptoKey",
      "type": "class",
      "meta": {
        "added": [
          "v17.6.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": "v23.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/52564",
            "description": "No longer experimental."
          },
          {
            "version": "v19.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/42083",
            "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-cryptokey\"><code>&#x3C;CryptoKey></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
    },
    {
      "textRaw": "Class: `CustomEvent`",
      "name": "CustomEvent",
      "type": "class",
      "meta": {
        "added": [
          "v18.7.0",
          "v16.17.0"
        ],
        "changes": [
          {
            "version": "v23.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/52723",
            "description": "No longer experimental."
          },
          {
            "version": [
              "v22.1.0",
              "v20.13.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/52618",
            "description": "CustomEvent is now stable."
          },
          {
            "version": "v19.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/44860",
            "description": "No longer behind `--experimental-global-customevent` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"events.html#class-customevent\"><code>&#x3C;CustomEvent></code></a>.</p>"
    },
    {
      "textRaw": "Class: `DecompressionStream`",
      "name": "DecompressionStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v24.7.0",
              "v22.20.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/59464",
            "description": "format now accepts `brotli` value."
          },
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-decompressionstream\"><code>DecompressionStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `DOMException`",
      "name": "DOMException",
      "type": "class",
      "meta": {
        "added": [
          "v17.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/docs/Web/API/DOMException\"><code>&#x3C;DOMException></code></a> class.</p>"
    },
    {
      "textRaw": "Class: `Event`",
      "name": "Event",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0"
        ],
        "changes": [
          {
            "version": "v15.4.0",
            "pr-url": "https://github.com/nodejs/node/pull/35949",
            "description": "No longer experimental."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of the <code>Event</code> class. See\n<a href=\"events.html#eventtarget-and-event-api\"><code>EventTarget</code> and <code>Event</code> API</a> for more details.</p>"
    },
    {
      "textRaw": "Class: `EventSource`",
      "name": "EventSource",
      "type": "class",
      "meta": {
        "added": [
          "v22.3.0",
          "v20.18.0"
        ],
        "changes": []
      },
      "stability": 1,
      "stabilityText": "Experimental. Enable this API with the `--experimental-eventsource` CLI flag.",
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/EventSource\"><code>&#x3C;EventSource></code></a>.</p>"
    },
    {
      "textRaw": "Class: `EventTarget`",
      "name": "EventTarget",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0"
        ],
        "changes": [
          {
            "version": "v15.4.0",
            "pr-url": "https://github.com/nodejs/node/pull/35949",
            "description": "No longer experimental."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of the <code>EventTarget</code> class. See\n<a href=\"events.html#eventtarget-and-event-api\"><code>EventTarget</code> and <code>Event</code> API</a> for more details.</p>"
    },
    {
      "textRaw": "Class: `File`",
      "name": "File",
      "type": "class",
      "meta": {
        "added": [
          "v20.0.0"
        ],
        "changes": []
      },
      "desc": "<p>See <a href=\"buffer.html#class-file\"><code>&#x3C;File></code></a>.</p>"
    },
    {
      "textRaw": "Class: `FormData`",
      "name": "FormData",
      "type": "class",
      "meta": {
        "added": [
          "v17.6.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": [
              "v21.0.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/45684",
            "description": "No longer experimental."
          },
          {
            "version": "v18.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/41811",
            "description": "No longer behind `--experimental-fetch` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/FormData\"><code>&#x3C;FormData></code></a>.</p>"
    },
    {
      "textRaw": "Class: `Headers`",
      "name": "Headers",
      "type": "class",
      "meta": {
        "added": [
          "v17.5.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": [
              "v21.0.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/45684",
            "description": "No longer experimental."
          },
          {
            "version": "v18.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/41811",
            "description": "No longer behind `--experimental-fetch` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Headers\"><code>&#x3C;Headers></code></a>.</p>"
    },
    {
      "textRaw": "Class: `MessageChannel`",
      "name": "MessageChannel",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>MessageChannel</code> class. See <a href=\"worker_threads.html#class-messagechannel\"><code>MessageChannel</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `MessageEvent`",
      "name": "MessageEvent",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0"
        ],
        "changes": []
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/MessageEvent\"><code>&#x3C;MessageEvent></code></a>.</p>"
    },
    {
      "textRaw": "Class: `MessagePort`",
      "name": "MessagePort",
      "type": "class",
      "meta": {
        "added": [
          "v15.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>MessagePort</code> class. See <a href=\"worker_threads.html#class-messageport\"><code>MessagePort</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `Navigator`",
      "name": "Navigator",
      "type": "class",
      "meta": {
        "added": [
          "v21.0.0"
        ],
        "changes": []
      },
      "stability": 1.1,
      "stabilityText": "Active development. Disable this API with the `--no-experimental-global-navigator` CLI flag.",
      "desc": "<p>A partial implementation of the <a href=\"https://html.spec.whatwg.org/multipage/system-state.html#the-navigator-object\">Navigator API</a>.</p>"
    },
    {
      "textRaw": "Class: `PerformanceEntry`",
      "name": "PerformanceEntry",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceEntry</code> class. See <a href=\"perf_hooks.html#class-performanceentry\"><code>PerformanceEntry</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `PerformanceMark`",
      "name": "PerformanceMark",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceMark</code> class. See <a href=\"perf_hooks.html#class-performancemark\"><code>PerformanceMark</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `PerformanceMeasure`",
      "name": "PerformanceMeasure",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceMeasure</code> class. See <a href=\"perf_hooks.html#class-performancemeasure\"><code>PerformanceMeasure</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `PerformanceObserver`",
      "name": "PerformanceObserver",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceObserver</code> class. See <a href=\"perf_hooks.html#class-performanceobserver\"><code>PerformanceObserver</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `PerformanceObserverEntryList`",
      "name": "PerformanceObserverEntryList",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceObserverEntryList</code> class. See\n<a href=\"perf_hooks.html#class-performanceobserverentrylist\"><code>PerformanceObserverEntryList</code></a> for more details.</p>"
    },
    {
      "textRaw": "Class: `PerformanceResourceTiming`",
      "name": "PerformanceResourceTiming",
      "type": "class",
      "meta": {
        "added": [
          "v19.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The <code>PerformanceResourceTiming</code> class. See <a href=\"perf_hooks.html#class-performanceresourcetiming\"><code>PerformanceResourceTiming</code></a> for\nmore details.</p>"
    },
    {
      "textRaw": "Class: `QuotaExceededError`",
      "name": "QuotaExceededError",
      "type": "class",
      "meta": {
        "added": [
          "v26.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/docs/Web/API/QuotaExceededError\"><code>&#x3C;QuotaExceededError></code></a> class. Extends <a href=\"https://developer.mozilla.org/docs/Web/API/DOMException\"><code>&#x3C;DOMException></code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableByteStreamController`",
      "name": "ReadableByteStreamController",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablebytestreamcontroller\"><code>ReadableByteStreamController</code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableStream`",
      "name": "ReadableStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestream\"><code>ReadableStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableStreamBYOBReader`",
      "name": "ReadableStreamBYOBReader",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreambyobreader\"><code>ReadableStreamBYOBReader</code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableStreamBYOBRequest`",
      "name": "ReadableStreamBYOBRequest",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreambyobrequest\"><code>ReadableStreamBYOBRequest</code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableStreamDefaultController`",
      "name": "ReadableStreamDefaultController",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreamdefaultcontroller\"><code>ReadableStreamDefaultController</code></a>.</p>"
    },
    {
      "textRaw": "Class: `ReadableStreamDefaultReader`",
      "name": "ReadableStreamDefaultReader",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreamdefaultreader\"><code>ReadableStreamDefaultReader</code></a>.</p>"
    },
    {
      "textRaw": "Class: `Request`",
      "name": "Request",
      "type": "class",
      "meta": {
        "added": [
          "v17.5.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": [
              "v21.0.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/45684",
            "description": "No longer experimental."
          },
          {
            "version": "v18.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/41811",
            "description": "No longer behind `--experimental-fetch` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Request\"><code>&#x3C;Request></code></a>.</p>"
    },
    {
      "textRaw": "Class: `Response`",
      "name": "Response",
      "type": "class",
      "meta": {
        "added": [
          "v17.5.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": [
              "v21.0.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/45684",
            "description": "No longer experimental."
          },
          {
            "version": "v18.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/41811",
            "description": "No longer behind `--experimental-fetch` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Response\"><code>&#x3C;Response></code></a>.</p>"
    },
    {
      "textRaw": "Class: `Storage`",
      "name": "Storage",
      "type": "class",
      "meta": {
        "added": [
          "v22.4.0"
        ],
        "changes": []
      },
      "stability": 1.2,
      "stabilityText": "Release candidate. Disable this API with `--no-experimental-webstorage`.",
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Storage\"><code>&#x3C;Storage></code></a>.</p>"
    },
    {
      "textRaw": "Class: `SubtleCrypto`",
      "name": "SubtleCrypto",
      "type": "class",
      "meta": {
        "added": [
          "v17.6.0",
          "v16.15.0"
        ],
        "changes": [
          {
            "version": "v19.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/42083",
            "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-subtlecrypto\"><code>&#x3C;SubtleCrypto></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
    },
    {
      "textRaw": "Class: `TextDecoder`",
      "name": "TextDecoder",
      "type": "class",
      "meta": {
        "added": [
          "v11.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <code>TextDecoder</code> class. See the <a href=\"util.html#class-utiltextdecoder\"><code>TextDecoder</code></a> section.</p>"
    },
    {
      "textRaw": "Class: `TextDecoderStream`",
      "name": "TextDecoderStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-textdecoderstream\"><code>TextDecoderStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `TextEncoder`",
      "name": "TextEncoder",
      "type": "class",
      "meta": {
        "added": [
          "v11.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <code>TextEncoder</code> class. See the <a href=\"util.html#class-utiltextencoder\"><code>TextEncoder</code></a> section.</p>"
    },
    {
      "textRaw": "Class: `TextEncoderStream`",
      "name": "TextEncoderStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-textencoderstream\"><code>TextEncoderStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `TransformStream`",
      "name": "TransformStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-transformstream\"><code>TransformStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `TransformStreamDefaultController`",
      "name": "TransformStreamDefaultController",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-transformstreamdefaultcontroller\"><code>TransformStreamDefaultController</code></a>.</p>"
    },
    {
      "textRaw": "Class: `URL`",
      "name": "URL",
      "type": "class",
      "meta": {
        "added": [
          "v10.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <code>URL</code> class. See the <a href=\"url.html#class-url\"><code>URL</code></a> section.</p>"
    },
    {
      "textRaw": "Class: `URLPattern`",
      "name": "URLPattern",
      "type": "class",
      "meta": {
        "added": [
          "v24.0.0"
        ],
        "changes": []
      },
      "stability": 1,
      "stabilityText": "Experimental",
      "desc": "<p>The WHATWG <code>URLPattern</code> class. See the <a href=\"url.html#class-urlpattern\"><code>URLPattern</code></a> section.</p>"
    },
    {
      "textRaw": "Class: `URLSearchParams`",
      "name": "URLSearchParams",
      "type": "class",
      "meta": {
        "added": [
          "v10.0.0"
        ],
        "changes": []
      },
      "desc": "<p>The WHATWG <code>URLSearchParams</code> class. See the <a href=\"url.html#class-urlsearchparams\"><code>URLSearchParams</code></a> section.</p>"
    },
    {
      "textRaw": "Class: `WebAssembly`",
      "name": "WebAssembly",
      "type": "class",
      "meta": {
        "added": [
          "v8.0.0"
        ],
        "changes": []
      },
      "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\"><code>&#x3C;Object></code></a></li>\n</ul>\n<p>The object that acts as the namespace for all W3C\n<a href=\"https://webassembly.org\">WebAssembly</a> related functionality. See the\n<a href=\"https://developer.mozilla.org/en-US/docs/WebAssembly\">Mozilla Developer Network</a> for usage and compatibility.</p>"
    },
    {
      "textRaw": "Class: `WebSocket`",
      "name": "WebSocket",
      "type": "class",
      "meta": {
        "added": [
          "v21.0.0",
          "v20.10.0"
        ],
        "changes": [
          {
            "version": "v22.4.0",
            "pr-url": "https://github.com/nodejs/node/pull/53352",
            "description": "No longer experimental."
          },
          {
            "version": "v22.0.0",
            "pr-url": "https://github.com/nodejs/node/pull/51594",
            "description": "No longer behind `--experimental-websocket` CLI flag."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/WebSocket\"><code>&#x3C;WebSocket></code></a>. Disable this API\nwith the <a href=\"cli.html#--no-experimental-websocket\"><code>--no-experimental-websocket</code></a> CLI flag.</p>"
    },
    {
      "textRaw": "Class: `WritableStream`",
      "name": "WritableStream",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestream\"><code>WritableStream</code></a>.</p>"
    },
    {
      "textRaw": "Class: `WritableStreamDefaultController`",
      "name": "WritableStreamDefaultController",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestreamdefaultcontroller\"><code>WritableStreamDefaultController</code></a>.</p>"
    },
    {
      "textRaw": "Class: `WritableStreamDefaultWriter`",
      "name": "WritableStreamDefaultWriter",
      "type": "class",
      "meta": {
        "added": [
          "v18.0.0"
        ],
        "changes": [
          {
            "version": [
              "v23.11.0",
              "v22.15.0"
            ],
            "pr-url": "https://github.com/nodejs/node/pull/57510",
            "description": "Marking the API stable."
          }
        ]
      },
      "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestreamdefaultwriter\"><code>WritableStreamDefaultWriter</code></a>.</p>"
    }
  ],
  "methods": [
    {
      "textRaw": "`atob(data)`",
      "name": "atob",
      "type": "method",
      "meta": {
        "added": [
          "v16.0.0"
        ],
        "changes": []
      },
      "stability": 3,
      "stabilityText": "Legacy. Use `Buffer.from(data, 'base64')` instead.",
      "signatures": [
        {
          "params": [
            {
              "name": "data"
            }
          ]
        }
      ],
      "desc": "<p>Global alias for <a href=\"buffer.html#bufferatobdata\"><code>buffer.atob()</code></a>.</p>\n<p>An automated migration is available (<a href=\"https://github.com/nodejs/userland-migrations/tree/main/recipes/buffer-atob-btoa\">source</a>):</p>\n<pre><code class=\"language-bash\">npx codemod@latest @nodejs/buffer-atob-btoa\n</code></pre>"
    },
    {
      "textRaw": "`btoa(data)`",
      "name": "btoa",
      "type": "method",
      "meta": {
        "added": [
          "v16.0.0"
        ],
        "changes": []
      },
      "stability": 3,
      "stabilityText": "Legacy. Use `buf.toString('base64')` instead.",
      "signatures": [
        {
          "params": [
            {
              "name": "data"
            }
          ]
        }
      ],
      "desc": "<p>Global alias for <a href=\"buffer.html#bufferbtoadata\"><code>buffer.btoa()</code></a>.</p>\n<p>An automated migration is available (<a href=\"https://github.com/nodejs/userland-migrations/tree/main/recipes/buffer-atob-btoa\">source</a>):</p>\n<pre><code class=\"language-bash\">npx codemod@latest @nodejs/buffer-atob-btoa\n</code></pre>"
    },
    {
      "textRaw": "`clearImmediate(immediateObject)`",
      "name": "clearImmediate",
      "type": "method",
      "meta": {
        "added": [
          "v0.9.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "immediateObject"
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#clearimmediateimmediate\"><code>clearImmediate</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`clearInterval(intervalObject)`",
      "name": "clearInterval",
      "type": "method",
      "meta": {
        "added": [
          "v0.0.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "intervalObject"
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#clearintervaltimeout\"><code>clearInterval</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`clearTimeout(timeoutObject)`",
      "name": "clearTimeout",
      "type": "method",
      "meta": {
        "added": [
          "v0.0.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "timeoutObject"
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#cleartimeouttimeout\"><code>clearTimeout</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`queueMicrotask(callback)`",
      "name": "queueMicrotask",
      "type": "method",
      "meta": {
        "added": [
          "v11.0.0"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "textRaw": "`callback` {Function} Function to be queued.",
              "name": "callback",
              "type": "Function",
              "desc": "Function to be queued."
            }
          ]
        }
      ],
      "desc": "<p>The <code>queueMicrotask()</code> method queues a microtask to invoke <code>callback</code>. If\n<code>callback</code> throws an exception, the <a href=\"process.html#process\"><code>process</code> object</a> <code>'uncaughtException'</code>\nevent will be emitted.</p>\n<p>The microtask queue is managed by V8 and may be used in a similar manner to\nthe <a href=\"process.html#processnexttickcallback-args\"><code>process.nextTick()</code></a> queue, which is managed by Node.js. The\n<code>process.nextTick()</code> queue is always processed before the microtask queue\nwithin each turn of the Node.js event loop.</p>\n<pre><code class=\"language-js\">// Here, `queueMicrotask()` is used to ensure the 'load' event is always\n// emitted asynchronously, and therefore consistently. Using\n// `process.nextTick()` here would result in the 'load' event always emitting\n// before any other promise jobs.\n\nDataHandler.prototype.load = async function load(key) {\n  const hit = this._cache.get(key);\n  if (hit !== undefined) {\n    queueMicrotask(() => {\n      this.emit('load', hit);\n    });\n    return;\n  }\n\n  const data = await fetchData(key);\n  this._cache.set(key, data);\n  this.emit('load', data);\n};\n</code></pre>"
    },
    {
      "textRaw": "`require()`",
      "name": "require",
      "type": "method",
      "signatures": [
        {
          "params": []
        }
      ],
      "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#requireid\"><code>require()</code></a>.</p>"
    },
    {
      "textRaw": "`setImmediate(callback[, ...args])`",
      "name": "setImmediate",
      "type": "method",
      "meta": {
        "added": [
          "v0.9.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "callback"
            },
            {
              "name": "...args",
              "optional": true
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#setimmediatecallback-args\"><code>setImmediate</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`setInterval(callback, delay[, ...args])`",
      "name": "setInterval",
      "type": "method",
      "meta": {
        "added": [
          "v0.0.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "callback"
            },
            {
              "name": "delay"
            },
            {
              "name": "...args",
              "optional": true
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#setintervalcallback-delay-args\"><code>setInterval</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`setTimeout(callback, delay[, ...args])`",
      "name": "setTimeout",
      "type": "method",
      "meta": {
        "added": [
          "v0.0.1"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "callback"
            },
            {
              "name": "delay"
            },
            {
              "name": "...args",
              "optional": true
            }
          ]
        }
      ],
      "desc": "<p><a href=\"timers.html#settimeoutcallback-delay-args\"><code>setTimeout</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
    },
    {
      "textRaw": "`structuredClone(value[, options])`",
      "name": "structuredClone",
      "type": "method",
      "meta": {
        "added": [
          "v17.0.0"
        ],
        "changes": []
      },
      "signatures": [
        {
          "params": [
            {
              "name": "value"
            },
            {
              "name": "options",
              "optional": true
            }
          ]
        }
      ],
      "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone\"><code>structuredClone</code></a> method.</p>"
    }
  ],
  "miscs": [
    {
      "textRaw": "Global objects",
      "name": "Global objects",
      "introduced_in": "v0.10.0",
      "type": "misc",
      "stability": 2,
      "stabilityText": "Stable",
      "desc": "<p>These objects are available in all modules.</p>\n<p>The following variables may appear to be global but are not. They exist only in\nthe scope of <a href=\"modules.html\">CommonJS modules</a>:</p>\n<ul>\n<li><a href=\"modules.html#__dirname\"><code>__dirname</code></a></li>\n<li><a href=\"modules.html#__filename\"><code>__filename</code></a></li>\n<li><a href=\"modules.html#exports\"><code>exports</code></a></li>\n<li><a href=\"modules.html#module\"><code>module</code></a></li>\n<li><a href=\"modules.html#requireid\"><code>require()</code></a></li>\n</ul>\n<p>The objects listed here are specific to Node.js. There are <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\">built-in objects</a>\nthat are part of the JavaScript language itself, which are also globally\naccessible.</p>",
      "miscs": [
        {
          "textRaw": "`__dirname`",
          "name": "`__dirname`",
          "type": "misc",
          "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#__dirname\"><code>__dirname</code></a>.</p>",
          "displayName": "`__dirname`"
        },
        {
          "textRaw": "`__filename`",
          "name": "`__filename`",
          "type": "misc",
          "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#__filename\"><code>__filename</code></a>.</p>",
          "displayName": "`__filename`"
        },
        {
          "textRaw": "`console`",
          "name": "`console`",
          "type": "misc",
          "meta": {
            "added": [
              "v0.1.100"
            ],
            "changes": []
          },
          "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\"><code>&#x3C;Object></code></a></li>\n</ul>\n<p>Used to print to stdout and stderr. See the <a href=\"console.html\"><code>console</code></a> section.</p>",
          "displayName": "`console`"
        },
        {
          "textRaw": "`crypto`",
          "name": "`crypto`",
          "type": "misc",
          "meta": {
            "added": [
              "v17.6.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": "v23.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/52564",
                "description": "No longer experimental."
              },
              {
                "version": "v19.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/42083",
                "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of the <a href=\"webcrypto.html\">Web Crypto API</a>.</p>",
          "displayName": "`crypto`"
        },
        {
          "textRaw": "`ErrorEvent`",
          "name": "`errorevent`",
          "type": "misc",
          "meta": {
            "added": [
              "v25.0.0"
            ],
            "changes": []
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/ErrorEvent\"><code>&#x3C;ErrorEvent></code></a>.</p>",
          "displayName": "`ErrorEvent`"
        },
        {
          "textRaw": "`exports`",
          "name": "`exports`",
          "type": "misc",
          "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#exports\"><code>exports</code></a>.</p>",
          "displayName": "`exports`"
        },
        {
          "textRaw": "`fetch`",
          "name": "`fetch`",
          "type": "misc",
          "meta": {
            "added": [
              "v17.5.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": [
                  "v21.0.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/45684",
                "description": "No longer experimental."
              },
              {
                "version": "v18.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/41811",
                "description": "No longer behind `--experimental-fetch` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of the <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/fetch\"><code>fetch()</code></a> function.</p>\n<pre><code class=\"language-mjs\">const res = await fetch('https://nodejs.org/api/documentation.json');\nif (res.ok) {\n  const data = await res.json();\n  console.log(data);\n}\n</code></pre>\n<p>The implementation is based upon <a href=\"https://undici.nodejs.org\">undici</a>, an HTTP/1.1 client\nwritten from scratch for Node.js. You can figure out which version of <code>undici</code> is bundled\nin your Node.js process reading the <code>process.versions.undici</code> property.</p>",
          "modules": [
            {
              "textRaw": "Custom dispatcher",
              "name": "custom_dispatcher",
              "type": "module",
              "desc": "<p>You can use a custom dispatcher to dispatch requests passing it in fetch's options object.\nThe dispatcher must be compatible with <code>undici</code>'s\n<a href=\"https://undici.nodejs.org/api/Dispatcher\"><code>Dispatcher</code> class</a>.</p>\n<pre><code class=\"language-js\">fetch(url, { dispatcher: new MyAgent() });\n</code></pre>\n<p>It is possible to change the global dispatcher in Node.js by installing <code>undici</code> and using\nthe <code>setGlobalDispatcher()</code> method. Calling this method will affect both <code>undici</code> and\nNode.js.</p>\n<pre><code class=\"language-mjs\">import { setGlobalDispatcher } from 'undici';\nsetGlobalDispatcher(new MyAgent());\n</code></pre>",
              "displayName": "Custom dispatcher"
            },
            {
              "textRaw": "Related classes",
              "name": "related_classes",
              "type": "module",
              "desc": "<p>The following globals are available to use with <code>fetch</code>:</p>\n<ul>\n<li><a href=\"#class-formdata\"><code>FormData</code></a></li>\n<li><a href=\"#class-headers\"><code>Headers</code></a></li>\n<li><a href=\"#class-request\"><code>Request</code></a></li>\n<li><a href=\"#class-response\"><code>Response</code></a></li>\n</ul>",
              "displayName": "Related classes"
            }
          ],
          "displayName": "`fetch`"
        },
        {
          "textRaw": "`global`",
          "name": "`global`",
          "type": "misc",
          "meta": {
            "added": [
              "v0.1.27"
            ],
            "changes": []
          },
          "stability": 3,
          "stabilityText": "Legacy. Use `globalThis` instead.",
          "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\"><code>&#x3C;Object></code></a> The global namespace object.</li>\n</ul>\n<p>In browsers, the top-level scope has traditionally been the global scope. This\nmeans that <code>var something</code> will define a new global variable, except within\nECMAScript modules. In Node.js, this is different. The top-level scope is not\nthe global scope; <code>var something</code> inside a Node.js module will be local to that\nmodule, regardless of whether it is a <a href=\"modules.html\">CommonJS module</a> or an\n<a href=\"esm.html\">ECMAScript module</a>.</p>",
          "displayName": "`global`"
        },
        {
          "textRaw": "`localStorage`",
          "name": "`localstorage`",
          "type": "misc",
          "meta": {
            "added": [
              "v22.4.0"
            ],
            "changes": [
              {
                "version": "v26.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/60351",
                "description": "Accessing the `localStorage` global without providing `--localstorage-file` now throws a `DOMException`, for compliance with the Web Storage specification."
              },
              {
                "version": "v25.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/57666",
                "description": "When webstorage is enabled and `--localstorage-file` is not provided, accessing the `localStorage` global now returns an empty object."
              },
              {
                "version": "v25.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/57666",
                "description": "This API is no longer behind `--experimental-webstorage` runtime flag."
              }
            ]
          },
          "stability": 1.2,
          "stabilityText": "Release candidate. Disable this API with `--no-experimental-webstorage`.",
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage\"><code>localStorage</code></a>. Data is stored\nunencrypted in the file specified by the <a href=\"cli.html#--localstorage-filefile\"><code>--localstorage-file</code></a> CLI flag.\nThe maximum amount of data that can be stored is 10 MB.\nAny modification of this data outside of the Web Storage API is not supported.\n<code>localStorage</code> data is not stored per user or per request when used in the context\nof a server, it is shared across all users and requests.</p>",
          "displayName": "`localStorage`"
        },
        {
          "textRaw": "`module`",
          "name": "`module`",
          "type": "misc",
          "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#module\"><code>module</code></a>.</p>",
          "displayName": "`module`"
        },
        {
          "textRaw": "`navigator`",
          "name": "`navigator`",
          "type": "misc",
          "meta": {
            "added": [
              "v21.0.0"
            ],
            "changes": []
          },
          "stability": 1.1,
          "stabilityText": "Active development. Disable this API with the `--no-experimental-global-navigator` CLI flag.",
          "desc": "<p>A partial implementation of <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator\"><code>window.navigator</code></a>.</p>",
          "properties": [
            {
              "textRaw": "Type: {number}",
              "name": "hardwareConcurrency",
              "type": "number",
              "meta": {
                "added": [
                  "v21.0.0"
                ],
                "changes": []
              },
              "desc": "<p>The <code>navigator.hardwareConcurrency</code> read-only property returns the number of\nlogical processors available to the current Node.js instance.</p>\n<pre><code class=\"language-js\">console.log(`This process is running on ${navigator.hardwareConcurrency} logical processors`);\n</code></pre>"
            },
            {
              "textRaw": "Type: {string}",
              "name": "language",
              "type": "string",
              "meta": {
                "added": [
                  "v21.2.0"
                ],
                "changes": []
              },
              "desc": "<p>The <code>navigator.language</code> read-only property returns a string representing the\npreferred language of the Node.js instance. The language will be determined by\nthe ICU library used by Node.js at runtime based on the\ndefault language of the operating system.</p>\n<p>The value is representing the language version as defined in <a href=\"https://www.rfc-editor.org/rfc/rfc5646.txt\">RFC 5646</a>.</p>\n<p>The fallback value on builds without ICU is <code>'en-US'</code>.</p>\n<pre><code class=\"language-js\">console.log(`The preferred language of the Node.js instance has the tag '${navigator.language}'`);\n</code></pre>"
            },
            {
              "textRaw": "Type: {string}[]",
              "name": "languages",
              "type": "string",
              "meta": {
                "added": [
                  "v21.2.0"
                ],
                "changes": []
              },
              "desc": "<p>The <code>navigator.languages</code> read-only property returns an array of strings\nrepresenting the preferred languages of the Node.js instance.\nBy default <code>navigator.languages</code> contains only the value of\n<code>navigator.language</code>, which will be determined by the ICU library used by\nNode.js at runtime based on the default language of the operating system.</p>\n<p>The fallback value on builds without ICU is <code>['en-US']</code>.</p>\n<pre><code class=\"language-js\">console.log(`The preferred languages are '${navigator.languages}'`);\n</code></pre>",
              "shortDesc": "[]"
            },
            {
              "textRaw": "`navigator.locks`",
              "name": "locks",
              "type": "property",
              "meta": {
                "added": [
                  "v24.5.0"
                ],
                "changes": []
              },
              "stability": 1,
              "stabilityText": "Experimental",
              "desc": "<p>The <code>navigator.locks</code> read-only property returns a <a href=\"worker_threads.html#class-lockmanager\"><code>LockManager</code></a> instance that\ncan be used to coordinate access to resources that may be shared across multiple\nthreads within the same process. This global implementation matches the semantics\nof the <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/LockManager\">browser <code>LockManager</code></a> API.</p>\n<pre><code class=\"language-mjs\">// Request an exclusive lock\nawait navigator.locks.request('my_resource', async (lock) => {\n  // The lock has been acquired.\n  console.log(`Lock acquired: ${lock.name}`);\n  // Lock is automatically released when the function returns\n});\n\n// Request a shared lock\nawait navigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {\n  // Multiple shared locks can be held simultaneously\n  console.log(`Shared lock acquired: ${lock.name}`);\n});\n</code></pre>\n<pre><code class=\"language-cjs\">// Request an exclusive lock\nnavigator.locks.request('my_resource', async (lock) => {\n  // The lock has been acquired.\n  console.log(`Lock acquired: ${lock.name}`);\n  // Lock is automatically released when the function returns\n}).then(() => {\n  console.log('Lock released');\n});\n\n// Request a shared lock\nnavigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {\n  // Multiple shared locks can be held simultaneously\n  console.log(`Shared lock acquired: ${lock.name}`);\n}).then(() => {\n  console.log('Shared lock released');\n});\n</code></pre>\n<p>See <a href=\"worker_threads.html#worker_threadslocks\"><code>worker_threads.locks</code></a> for detailed API documentation.</p>"
            },
            {
              "textRaw": "Type: {string}",
              "name": "platform",
              "type": "string",
              "meta": {
                "added": [
                  "v21.2.0"
                ],
                "changes": []
              },
              "desc": "<p>The <code>navigator.platform</code> read-only property returns a string identifying the\nplatform on which the Node.js instance is running.</p>\n<pre><code class=\"language-js\">console.log(`This process is running on ${navigator.platform}`);\n</code></pre>"
            },
            {
              "textRaw": "Type: {string}",
              "name": "userAgent",
              "type": "string",
              "meta": {
                "added": [
                  "v21.1.0"
                ],
                "changes": []
              },
              "desc": "<p>The <code>navigator.userAgent</code> read-only property returns user agent\nconsisting of the runtime name and major version number.</p>\n<pre><code class=\"language-js\">console.log(`The user-agent is ${navigator.userAgent}`); // Prints \"Node.js/21\"\n</code></pre>"
            }
          ],
          "displayName": "`navigator`"
        },
        {
          "textRaw": "`performance`",
          "name": "`performance`",
          "type": "misc",
          "meta": {
            "added": [
              "v16.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <a href=\"perf_hooks.html#perf_hooksperformance\"><code>perf_hooks.performance</code></a> object.</p>",
          "displayName": "`performance`"
        },
        {
          "textRaw": "`process`",
          "name": "`process`",
          "type": "misc",
          "meta": {
            "added": [
              "v0.1.7"
            ],
            "changes": []
          },
          "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\"><code>&#x3C;Object></code></a></li>\n</ul>\n<p>The process object. See the <a href=\"process.html#process\"><code>process</code> object</a> section.</p>",
          "displayName": "`process`"
        },
        {
          "textRaw": "`sessionStorage`",
          "name": "`sessionstorage`",
          "type": "misc",
          "meta": {
            "added": [
              "v22.4.0"
            ],
            "changes": [
              {
                "version": "v25.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/57666",
                "description": "This API is no longer behind `--experimental-webstorage` runtime flag."
              }
            ]
          },
          "stability": 1.2,
          "stabilityText": "Release candidate. Disable this API with `--no-experimental-webstorage`.",
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage\"><code>sessionStorage</code></a>. Data is stored in\nmemory, with a storage quota of 10 MB. <code>sessionStorage</code> data persists only within\nthe currently running process, and is not shared between workers.</p>",
          "displayName": "`sessionStorage`"
        }
      ],
      "classes": [
        {
          "textRaw": "Class: `AbortController`",
          "name": "AbortController",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": [
              {
                "version": "v15.4.0",
                "pr-url": "https://github.com/nodejs/node/pull/35949",
                "description": "No longer experimental."
              }
            ]
          },
          "desc": "<p>A utility class used to signal cancelation in selected <code>Promise</code>-based APIs.\nThe API is based on the Web API <a href=\"globals.html#class-abortcontroller\"><code>&#x3C;AbortController></code></a>.</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\n\nac.signal.addEventListener('abort', () => console.log('Aborted!'),\n                           { once: true });\n\nac.abort();\n\nconsole.log(ac.signal.aborted);  // Prints true\n</code></pre>",
          "methods": [
            {
              "textRaw": "`abortController.abort([reason])`",
              "name": "abort",
              "type": "method",
              "meta": {
                "added": [
                  "v15.0.0",
                  "v14.17.0"
                ],
                "changes": [
                  {
                    "version": [
                      "v17.2.0",
                      "v16.14.0"
                    ],
                    "pr-url": "https://github.com/nodejs/node/pull/40807",
                    "description": "Added the new optional reason argument."
                  }
                ]
              },
              "signatures": [
                {
                  "params": [
                    {
                      "textRaw": "`reason` {any} An optional reason, retrievable on the `AbortSignal`'s `reason` property.",
                      "name": "reason",
                      "type": "any",
                      "desc": "An optional reason, retrievable on the `AbortSignal`'s `reason` property.",
                      "optional": true
                    }
                  ]
                }
              ],
              "desc": "<p>Triggers the abort signal, causing the <code>abortController.signal</code> to emit\nthe <code>'abort'</code> event.</p>"
            }
          ],
          "properties": [
            {
              "textRaw": "Type: {AbortSignal}",
              "name": "signal",
              "type": "AbortSignal",
              "meta": {
                "added": [
                  "v15.0.0",
                  "v14.17.0"
                ],
                "changes": []
              }
            }
          ]
        },
        {
          "textRaw": "Class: `AbortSignal`",
          "name": "AbortSignal",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0",
              "v14.17.0"
            ],
            "changes": []
          },
          "desc": "<ul>\n<li>Extends: <a href=\"events.html#class-eventtarget\"><code>&#x3C;EventTarget></code></a></li>\n</ul>\n<p>The <code>AbortSignal</code> is used to notify observers when the\n<code>abortController.abort()</code> method is called.</p>",
          "classMethods": [
            {
              "textRaw": "Static method: `AbortSignal.abort([reason])`",
              "name": "abort",
              "type": "classMethod",
              "meta": {
                "added": [
                  "v15.12.0",
                  "v14.17.0"
                ],
                "changes": [
                  {
                    "version": [
                      "v17.2.0",
                      "v16.14.0"
                    ],
                    "pr-url": "https://github.com/nodejs/node/pull/40807",
                    "description": "Added the new optional reason argument."
                  }
                ]
              },
              "signatures": [
                {
                  "params": [
                    {
                      "textRaw": "`reason` {any}",
                      "name": "reason",
                      "type": "any",
                      "optional": true
                    }
                  ],
                  "return": {
                    "textRaw": "Returns: {AbortSignal}",
                    "name": "return",
                    "type": "AbortSignal"
                  }
                }
              ],
              "desc": "<p>Returns a new already aborted <code>AbortSignal</code>.</p>"
            },
            {
              "textRaw": "Static method: `AbortSignal.timeout(delay)`",
              "name": "timeout",
              "type": "classMethod",
              "meta": {
                "added": [
                  "v17.3.0",
                  "v16.14.0"
                ],
                "changes": []
              },
              "signatures": [
                {
                  "params": [
                    {
                      "textRaw": "`delay` {number} The number of milliseconds to wait before triggering the AbortSignal.",
                      "name": "delay",
                      "type": "number",
                      "desc": "The number of milliseconds to wait before triggering the AbortSignal."
                    }
                  ]
                }
              ],
              "desc": "<p>Returns a new <code>AbortSignal</code> which will be aborted in <code>delay</code> milliseconds.</p>"
            },
            {
              "textRaw": "Static method: `AbortSignal.any(signals)`",
              "name": "any",
              "type": "classMethod",
              "meta": {
                "added": [
                  "v20.3.0",
                  "v18.17.0"
                ],
                "changes": []
              },
              "signatures": [
                {
                  "params": [
                    {
                      "textRaw": "`signals` {AbortSignal}[] The `AbortSignal`s of which to compose a new `AbortSignal`.",
                      "name": "signals",
                      "type": "AbortSignal",
                      "desc": "[] The `AbortSignal`s of which to compose a new `AbortSignal`."
                    }
                  ]
                }
              ],
              "desc": "<p>Returns a new <code>AbortSignal</code> which will be aborted if any of the provided\nsignals are aborted. Its <a href=\"#abortsignalreason\"><code>abortSignal.reason</code></a> will be set to whichever\none of the <code>signals</code> caused it to be aborted.</p>"
            }
          ],
          "events": [
            {
              "textRaw": "Event: `'abort'`",
              "name": "abort",
              "type": "event",
              "meta": {
                "added": [
                  "v15.0.0",
                  "v14.17.0"
                ],
                "changes": []
              },
              "params": [],
              "desc": "<p>The <code>'abort'</code> event is emitted when the <code>abortController.abort()</code> method\nis called. The callback is invoked with a single object argument with a\nsingle <code>type</code> property set to <code>'abort'</code>:</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\n\n// Use either the onabort property...\nac.signal.onabort = () => console.log('aborted!');\n\n// Or the EventTarget API...\nac.signal.addEventListener('abort', (event) => {\n  console.log(event.type);  // Prints 'abort'\n}, { once: true });\n\nac.abort();\n</code></pre>\n<p>The <code>AbortController</code> with which the <code>AbortSignal</code> is associated will only\never trigger the <code>'abort'</code> event once. We recommended that code check\nthat the <code>abortSignal.aborted</code> attribute is <code>false</code> before adding an <code>'abort'</code>\nevent listener.</p>\n<p>Any event listeners attached to the <code>AbortSignal</code> should use the\n<code>{ once: true }</code> option (or, if using the <code>EventEmitter</code> APIs to attach a\nlistener, use the <code>once()</code> method) to ensure that the event listener is\nremoved as soon as the <code>'abort'</code> event is handled. Failure to do so may\nresult in memory leaks.</p>"
            }
          ],
          "properties": [
            {
              "textRaw": "Type: {boolean}",
              "name": "aborted",
              "type": "boolean",
              "meta": {
                "added": [
                  "v15.0.0",
                  "v14.17.0"
                ],
                "changes": []
              },
              "desc": "<p>True after the <code>AbortController</code> has been aborted.</p>"
            },
            {
              "textRaw": "Type: {Function}",
              "name": "onabort",
              "type": "Function",
              "meta": {
                "added": [
                  "v15.0.0",
                  "v14.17.0"
                ],
                "changes": []
              },
              "desc": "<p>An optional callback function that may be set by user code to be notified\nwhen the <code>abortController.abort()</code> function has been called.</p>"
            },
            {
              "textRaw": "Type: {any}",
              "name": "reason",
              "type": "any",
              "meta": {
                "added": [
                  "v17.2.0",
                  "v16.14.0"
                ],
                "changes": []
              },
              "desc": "<p>An optional reason specified when the <code>AbortSignal</code> was triggered.</p>\n<pre><code class=\"language-js\">const ac = new AbortController();\nac.abort(new Error('boom!'));\nconsole.log(ac.signal.reason);  // Error: boom!\n</code></pre>"
            }
          ],
          "methods": [
            {
              "textRaw": "`abortSignal.throwIfAborted()`",
              "name": "throwIfAborted",
              "type": "method",
              "meta": {
                "added": [
                  "v17.3.0",
                  "v16.17.0"
                ],
                "changes": []
              },
              "signatures": [
                {
                  "params": []
                }
              ],
              "desc": "<p>If <code>abortSignal.aborted</code> is <code>true</code>, throws <code>abortSignal.reason</code>.</p>"
            }
          ]
        },
        {
          "textRaw": "Class: `Blob`",
          "name": "Blob",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": []
          },
          "desc": "<p>See <a href=\"buffer.html#class-blob\"><code>&#x3C;Blob></code></a>.</p>"
        },
        {
          "textRaw": "Class: `BroadcastChannel`",
          "name": "BroadcastChannel",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": []
          },
          "desc": "<p>See <a href=\"worker_threads.html#class-broadcastchannel-extends-eventtarget\"><code>&#x3C;BroadcastChannel></code></a>.</p>"
        },
        {
          "textRaw": "Class: `Buffer`",
          "name": "Buffer",
          "type": "class",
          "meta": {
            "added": [
              "v0.1.103"
            ],
            "changes": []
          },
          "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function\"><code>&#x3C;Function></code></a></li>\n</ul>\n<p>Used to handle binary data. See the <a href=\"buffer.html\">buffer section</a>.</p>"
        },
        {
          "textRaw": "Class: `ByteLengthQueuingStrategy`",
          "name": "ByteLengthQueuingStrategy",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-bytelengthqueuingstrategy\"><code>ByteLengthQueuingStrategy</code></a>.</p>"
        },
        {
          "textRaw": "Class: `CloseEvent`",
          "name": "CloseEvent",
          "type": "class",
          "meta": {
            "added": [
              "v23.0.0"
            ],
            "changes": []
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/CloseEvent\"><code>&#x3C;CloseEvent></code></a>. Disable this API\nwith the <a href=\"cli.html#--no-experimental-websocket\"><code>--no-experimental-websocket</code></a> CLI flag.</p>"
        },
        {
          "textRaw": "Class: `CompressionStream`",
          "name": "CompressionStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v24.7.0",
                  "v22.20.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/59464",
                "description": "format now accepts `brotli` value."
              },
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-compressionstream\"><code>CompressionStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `CountQueuingStrategy`",
          "name": "CountQueuingStrategy",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-countqueuingstrategy\"><code>CountQueuingStrategy</code></a>.</p>"
        },
        {
          "textRaw": "Class: `Crypto`",
          "name": "Crypto",
          "type": "class",
          "meta": {
            "added": [
              "v17.6.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": "v23.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/52564",
                "description": "No longer experimental."
              },
              {
                "version": "v19.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/42083",
                "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-crypto\"><code>&#x3C;Crypto></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
        },
        {
          "textRaw": "Class: `CryptoKey`",
          "name": "CryptoKey",
          "type": "class",
          "meta": {
            "added": [
              "v17.6.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": "v23.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/52564",
                "description": "No longer experimental."
              },
              {
                "version": "v19.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/42083",
                "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-cryptokey\"><code>&#x3C;CryptoKey></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
        },
        {
          "textRaw": "Class: `CustomEvent`",
          "name": "CustomEvent",
          "type": "class",
          "meta": {
            "added": [
              "v18.7.0",
              "v16.17.0"
            ],
            "changes": [
              {
                "version": "v23.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/52723",
                "description": "No longer experimental."
              },
              {
                "version": [
                  "v22.1.0",
                  "v20.13.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/52618",
                "description": "CustomEvent is now stable."
              },
              {
                "version": "v19.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/44860",
                "description": "No longer behind `--experimental-global-customevent` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"events.html#class-customevent\"><code>&#x3C;CustomEvent></code></a>.</p>"
        },
        {
          "textRaw": "Class: `DecompressionStream`",
          "name": "DecompressionStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v24.7.0",
                  "v22.20.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/59464",
                "description": "format now accepts `brotli` value."
              },
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-decompressionstream\"><code>DecompressionStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `DOMException`",
          "name": "DOMException",
          "type": "class",
          "meta": {
            "added": [
              "v17.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/docs/Web/API/DOMException\"><code>&#x3C;DOMException></code></a> class.</p>"
        },
        {
          "textRaw": "Class: `Event`",
          "name": "Event",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0"
            ],
            "changes": [
              {
                "version": "v15.4.0",
                "pr-url": "https://github.com/nodejs/node/pull/35949",
                "description": "No longer experimental."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of the <code>Event</code> class. See\n<a href=\"events.html#eventtarget-and-event-api\"><code>EventTarget</code> and <code>Event</code> API</a> for more details.</p>"
        },
        {
          "textRaw": "Class: `EventSource`",
          "name": "EventSource",
          "type": "class",
          "meta": {
            "added": [
              "v22.3.0",
              "v20.18.0"
            ],
            "changes": []
          },
          "stability": 1,
          "stabilityText": "Experimental. Enable this API with the `--experimental-eventsource` CLI flag.",
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/EventSource\"><code>&#x3C;EventSource></code></a>.</p>"
        },
        {
          "textRaw": "Class: `EventTarget`",
          "name": "EventTarget",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0"
            ],
            "changes": [
              {
                "version": "v15.4.0",
                "pr-url": "https://github.com/nodejs/node/pull/35949",
                "description": "No longer experimental."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of the <code>EventTarget</code> class. See\n<a href=\"events.html#eventtarget-and-event-api\"><code>EventTarget</code> and <code>Event</code> API</a> for more details.</p>"
        },
        {
          "textRaw": "Class: `File`",
          "name": "File",
          "type": "class",
          "meta": {
            "added": [
              "v20.0.0"
            ],
            "changes": []
          },
          "desc": "<p>See <a href=\"buffer.html#class-file\"><code>&#x3C;File></code></a>.</p>"
        },
        {
          "textRaw": "Class: `FormData`",
          "name": "FormData",
          "type": "class",
          "meta": {
            "added": [
              "v17.6.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": [
                  "v21.0.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/45684",
                "description": "No longer experimental."
              },
              {
                "version": "v18.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/41811",
                "description": "No longer behind `--experimental-fetch` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/FormData\"><code>&#x3C;FormData></code></a>.</p>"
        },
        {
          "textRaw": "Class: `Headers`",
          "name": "Headers",
          "type": "class",
          "meta": {
            "added": [
              "v17.5.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": [
                  "v21.0.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/45684",
                "description": "No longer experimental."
              },
              {
                "version": "v18.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/41811",
                "description": "No longer behind `--experimental-fetch` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Headers\"><code>&#x3C;Headers></code></a>.</p>"
        },
        {
          "textRaw": "Class: `MessageChannel`",
          "name": "MessageChannel",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>MessageChannel</code> class. See <a href=\"worker_threads.html#class-messagechannel\"><code>MessageChannel</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `MessageEvent`",
          "name": "MessageEvent",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0"
            ],
            "changes": []
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/MessageEvent\"><code>&#x3C;MessageEvent></code></a>.</p>"
        },
        {
          "textRaw": "Class: `MessagePort`",
          "name": "MessagePort",
          "type": "class",
          "meta": {
            "added": [
              "v15.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>MessagePort</code> class. See <a href=\"worker_threads.html#class-messageport\"><code>MessagePort</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `Navigator`",
          "name": "Navigator",
          "type": "class",
          "meta": {
            "added": [
              "v21.0.0"
            ],
            "changes": []
          },
          "stability": 1.1,
          "stabilityText": "Active development. Disable this API with the `--no-experimental-global-navigator` CLI flag.",
          "desc": "<p>A partial implementation of the <a href=\"https://html.spec.whatwg.org/multipage/system-state.html#the-navigator-object\">Navigator API</a>.</p>"
        },
        {
          "textRaw": "Class: `PerformanceEntry`",
          "name": "PerformanceEntry",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceEntry</code> class. See <a href=\"perf_hooks.html#class-performanceentry\"><code>PerformanceEntry</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `PerformanceMark`",
          "name": "PerformanceMark",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceMark</code> class. See <a href=\"perf_hooks.html#class-performancemark\"><code>PerformanceMark</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `PerformanceMeasure`",
          "name": "PerformanceMeasure",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceMeasure</code> class. See <a href=\"perf_hooks.html#class-performancemeasure\"><code>PerformanceMeasure</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `PerformanceObserver`",
          "name": "PerformanceObserver",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceObserver</code> class. See <a href=\"perf_hooks.html#class-performanceobserver\"><code>PerformanceObserver</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `PerformanceObserverEntryList`",
          "name": "PerformanceObserverEntryList",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceObserverEntryList</code> class. See\n<a href=\"perf_hooks.html#class-performanceobserverentrylist\"><code>PerformanceObserverEntryList</code></a> for more details.</p>"
        },
        {
          "textRaw": "Class: `PerformanceResourceTiming`",
          "name": "PerformanceResourceTiming",
          "type": "class",
          "meta": {
            "added": [
              "v19.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The <code>PerformanceResourceTiming</code> class. See <a href=\"perf_hooks.html#class-performanceresourcetiming\"><code>PerformanceResourceTiming</code></a> for\nmore details.</p>"
        },
        {
          "textRaw": "Class: `QuotaExceededError`",
          "name": "QuotaExceededError",
          "type": "class",
          "meta": {
            "added": [
              "v26.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/docs/Web/API/QuotaExceededError\"><code>&#x3C;QuotaExceededError></code></a> class. Extends <a href=\"https://developer.mozilla.org/docs/Web/API/DOMException\"><code>&#x3C;DOMException></code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableByteStreamController`",
          "name": "ReadableByteStreamController",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablebytestreamcontroller\"><code>ReadableByteStreamController</code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableStream`",
          "name": "ReadableStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestream\"><code>ReadableStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableStreamBYOBReader`",
          "name": "ReadableStreamBYOBReader",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreambyobreader\"><code>ReadableStreamBYOBReader</code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableStreamBYOBRequest`",
          "name": "ReadableStreamBYOBRequest",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreambyobrequest\"><code>ReadableStreamBYOBRequest</code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableStreamDefaultController`",
          "name": "ReadableStreamDefaultController",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreamdefaultcontroller\"><code>ReadableStreamDefaultController</code></a>.</p>"
        },
        {
          "textRaw": "Class: `ReadableStreamDefaultReader`",
          "name": "ReadableStreamDefaultReader",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-readablestreamdefaultreader\"><code>ReadableStreamDefaultReader</code></a>.</p>"
        },
        {
          "textRaw": "Class: `Request`",
          "name": "Request",
          "type": "class",
          "meta": {
            "added": [
              "v17.5.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": [
                  "v21.0.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/45684",
                "description": "No longer experimental."
              },
              {
                "version": "v18.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/41811",
                "description": "No longer behind `--experimental-fetch` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Request\"><code>&#x3C;Request></code></a>.</p>"
        },
        {
          "textRaw": "Class: `Response`",
          "name": "Response",
          "type": "class",
          "meta": {
            "added": [
              "v17.5.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": [
                  "v21.0.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/45684",
                "description": "No longer experimental."
              },
              {
                "version": "v18.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/41811",
                "description": "No longer behind `--experimental-fetch` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Response\"><code>&#x3C;Response></code></a>.</p>"
        },
        {
          "textRaw": "Class: `Storage`",
          "name": "Storage",
          "type": "class",
          "meta": {
            "added": [
              "v22.4.0"
            ],
            "changes": []
          },
          "stability": 1.2,
          "stabilityText": "Release candidate. Disable this API with `--no-experimental-webstorage`.",
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/Storage\"><code>&#x3C;Storage></code></a>.</p>"
        },
        {
          "textRaw": "Class: `SubtleCrypto`",
          "name": "SubtleCrypto",
          "type": "class",
          "meta": {
            "added": [
              "v17.6.0",
              "v16.15.0"
            ],
            "changes": [
              {
                "version": "v19.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/42083",
                "description": "No longer behind `--experimental-global-webcrypto` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webcrypto.html#class-subtlecrypto\"><code>&#x3C;SubtleCrypto></code></a>. This global is available\nonly if the Node.js binary was compiled with including support for the <code>node:crypto</code> module.</p>"
        },
        {
          "textRaw": "Class: `TextDecoder`",
          "name": "TextDecoder",
          "type": "class",
          "meta": {
            "added": [
              "v11.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <code>TextDecoder</code> class. See the <a href=\"util.html#class-utiltextdecoder\"><code>TextDecoder</code></a> section.</p>"
        },
        {
          "textRaw": "Class: `TextDecoderStream`",
          "name": "TextDecoderStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-textdecoderstream\"><code>TextDecoderStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `TextEncoder`",
          "name": "TextEncoder",
          "type": "class",
          "meta": {
            "added": [
              "v11.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <code>TextEncoder</code> class. See the <a href=\"util.html#class-utiltextencoder\"><code>TextEncoder</code></a> section.</p>"
        },
        {
          "textRaw": "Class: `TextEncoderStream`",
          "name": "TextEncoderStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-textencoderstream\"><code>TextEncoderStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `TransformStream`",
          "name": "TransformStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-transformstream\"><code>TransformStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `TransformStreamDefaultController`",
          "name": "TransformStreamDefaultController",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-transformstreamdefaultcontroller\"><code>TransformStreamDefaultController</code></a>.</p>"
        },
        {
          "textRaw": "Class: `URL`",
          "name": "URL",
          "type": "class",
          "meta": {
            "added": [
              "v10.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <code>URL</code> class. See the <a href=\"url.html#class-url\"><code>URL</code></a> section.</p>"
        },
        {
          "textRaw": "Class: `URLPattern`",
          "name": "URLPattern",
          "type": "class",
          "meta": {
            "added": [
              "v24.0.0"
            ],
            "changes": []
          },
          "stability": 1,
          "stabilityText": "Experimental",
          "desc": "<p>The WHATWG <code>URLPattern</code> class. See the <a href=\"url.html#class-urlpattern\"><code>URLPattern</code></a> section.</p>"
        },
        {
          "textRaw": "Class: `URLSearchParams`",
          "name": "URLSearchParams",
          "type": "class",
          "meta": {
            "added": [
              "v10.0.0"
            ],
            "changes": []
          },
          "desc": "<p>The WHATWG <code>URLSearchParams</code> class. See the <a href=\"url.html#class-urlsearchparams\"><code>URLSearchParams</code></a> section.</p>"
        },
        {
          "textRaw": "Class: `WebAssembly`",
          "name": "WebAssembly",
          "type": "class",
          "meta": {
            "added": [
              "v8.0.0"
            ],
            "changes": []
          },
          "desc": "<ul>\n<li>Type: <a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\"><code>&#x3C;Object></code></a></li>\n</ul>\n<p>The object that acts as the namespace for all W3C\n<a href=\"https://webassembly.org\">WebAssembly</a> related functionality. See the\n<a href=\"https://developer.mozilla.org/en-US/docs/WebAssembly\">Mozilla Developer Network</a> for usage and compatibility.</p>"
        },
        {
          "textRaw": "Class: `WebSocket`",
          "name": "WebSocket",
          "type": "class",
          "meta": {
            "added": [
              "v21.0.0",
              "v20.10.0"
            ],
            "changes": [
              {
                "version": "v22.4.0",
                "pr-url": "https://github.com/nodejs/node/pull/53352",
                "description": "No longer experimental."
              },
              {
                "version": "v22.0.0",
                "pr-url": "https://github.com/nodejs/node/pull/51594",
                "description": "No longer behind `--experimental-websocket` CLI flag."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"https://developer.mozilla.org/docs/Web/API/WebSocket\"><code>&#x3C;WebSocket></code></a>. Disable this API\nwith the <a href=\"cli.html#--no-experimental-websocket\"><code>--no-experimental-websocket</code></a> CLI flag.</p>"
        },
        {
          "textRaw": "Class: `WritableStream`",
          "name": "WritableStream",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestream\"><code>WritableStream</code></a>.</p>"
        },
        {
          "textRaw": "Class: `WritableStreamDefaultController`",
          "name": "WritableStreamDefaultController",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestreamdefaultcontroller\"><code>WritableStreamDefaultController</code></a>.</p>"
        },
        {
          "textRaw": "Class: `WritableStreamDefaultWriter`",
          "name": "WritableStreamDefaultWriter",
          "type": "class",
          "meta": {
            "added": [
              "v18.0.0"
            ],
            "changes": [
              {
                "version": [
                  "v23.11.0",
                  "v22.15.0"
                ],
                "pr-url": "https://github.com/nodejs/node/pull/57510",
                "description": "Marking the API stable."
              }
            ]
          },
          "desc": "<p>A browser-compatible implementation of <a href=\"webstreams.html#class-writablestreamdefaultwriter\"><code>WritableStreamDefaultWriter</code></a>.</p>"
        }
      ],
      "methods": [
        {
          "textRaw": "`atob(data)`",
          "name": "atob",
          "type": "method",
          "meta": {
            "added": [
              "v16.0.0"
            ],
            "changes": []
          },
          "stability": 3,
          "stabilityText": "Legacy. Use `Buffer.from(data, 'base64')` instead.",
          "signatures": [
            {
              "params": [
                {
                  "name": "data"
                }
              ]
            }
          ],
          "desc": "<p>Global alias for <a href=\"buffer.html#bufferatobdata\"><code>buffer.atob()</code></a>.</p>\n<p>An automated migration is available (<a href=\"https://github.com/nodejs/userland-migrations/tree/main/recipes/buffer-atob-btoa\">source</a>):</p>\n<pre><code class=\"language-bash\">npx codemod@latest @nodejs/buffer-atob-btoa\n</code></pre>"
        },
        {
          "textRaw": "`btoa(data)`",
          "name": "btoa",
          "type": "method",
          "meta": {
            "added": [
              "v16.0.0"
            ],
            "changes": []
          },
          "stability": 3,
          "stabilityText": "Legacy. Use `buf.toString('base64')` instead.",
          "signatures": [
            {
              "params": [
                {
                  "name": "data"
                }
              ]
            }
          ],
          "desc": "<p>Global alias for <a href=\"buffer.html#bufferbtoadata\"><code>buffer.btoa()</code></a>.</p>\n<p>An automated migration is available (<a href=\"https://github.com/nodejs/userland-migrations/tree/main/recipes/buffer-atob-btoa\">source</a>):</p>\n<pre><code class=\"language-bash\">npx codemod@latest @nodejs/buffer-atob-btoa\n</code></pre>"
        },
        {
          "textRaw": "`clearImmediate(immediateObject)`",
          "name": "clearImmediate",
          "type": "method",
          "meta": {
            "added": [
              "v0.9.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "immediateObject"
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#clearimmediateimmediate\"><code>clearImmediate</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`clearInterval(intervalObject)`",
          "name": "clearInterval",
          "type": "method",
          "meta": {
            "added": [
              "v0.0.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "intervalObject"
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#clearintervaltimeout\"><code>clearInterval</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`clearTimeout(timeoutObject)`",
          "name": "clearTimeout",
          "type": "method",
          "meta": {
            "added": [
              "v0.0.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "timeoutObject"
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#cleartimeouttimeout\"><code>clearTimeout</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`queueMicrotask(callback)`",
          "name": "queueMicrotask",
          "type": "method",
          "meta": {
            "added": [
              "v11.0.0"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "textRaw": "`callback` {Function} Function to be queued.",
                  "name": "callback",
                  "type": "Function",
                  "desc": "Function to be queued."
                }
              ]
            }
          ],
          "desc": "<p>The <code>queueMicrotask()</code> method queues a microtask to invoke <code>callback</code>. If\n<code>callback</code> throws an exception, the <a href=\"process.html#process\"><code>process</code> object</a> <code>'uncaughtException'</code>\nevent will be emitted.</p>\n<p>The microtask queue is managed by V8 and may be used in a similar manner to\nthe <a href=\"process.html#processnexttickcallback-args\"><code>process.nextTick()</code></a> queue, which is managed by Node.js. The\n<code>process.nextTick()</code> queue is always processed before the microtask queue\nwithin each turn of the Node.js event loop.</p>\n<pre><code class=\"language-js\">// Here, `queueMicrotask()` is used to ensure the 'load' event is always\n// emitted asynchronously, and therefore consistently. Using\n// `process.nextTick()` here would result in the 'load' event always emitting\n// before any other promise jobs.\n\nDataHandler.prototype.load = async function load(key) {\n  const hit = this._cache.get(key);\n  if (hit !== undefined) {\n    queueMicrotask(() => {\n      this.emit('load', hit);\n    });\n    return;\n  }\n\n  const data = await fetchData(key);\n  this._cache.set(key, data);\n  this.emit('load', data);\n};\n</code></pre>"
        },
        {
          "textRaw": "`require()`",
          "name": "require",
          "type": "method",
          "signatures": [
            {
              "params": []
            }
          ],
          "desc": "<p>This variable may appear to be global but is not. See <a href=\"modules.html#requireid\"><code>require()</code></a>.</p>"
        },
        {
          "textRaw": "`setImmediate(callback[, ...args])`",
          "name": "setImmediate",
          "type": "method",
          "meta": {
            "added": [
              "v0.9.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "callback"
                },
                {
                  "name": "...args",
                  "optional": true
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#setimmediatecallback-args\"><code>setImmediate</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`setInterval(callback, delay[, ...args])`",
          "name": "setInterval",
          "type": "method",
          "meta": {
            "added": [
              "v0.0.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "callback"
                },
                {
                  "name": "delay"
                },
                {
                  "name": "...args",
                  "optional": true
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#setintervalcallback-delay-args\"><code>setInterval</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`setTimeout(callback, delay[, ...args])`",
          "name": "setTimeout",
          "type": "method",
          "meta": {
            "added": [
              "v0.0.1"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "callback"
                },
                {
                  "name": "delay"
                },
                {
                  "name": "...args",
                  "optional": true
                }
              ]
            }
          ],
          "desc": "<p><a href=\"timers.html#settimeoutcallback-delay-args\"><code>setTimeout</code></a> is described in the <a href=\"timers.html\">timers</a> section.</p>"
        },
        {
          "textRaw": "`structuredClone(value[, options])`",
          "name": "structuredClone",
          "type": "method",
          "meta": {
            "added": [
              "v17.0.0"
            ],
            "changes": []
          },
          "signatures": [
            {
              "params": [
                {
                  "name": "value"
                },
                {
                  "name": "options",
                  "optional": true
                }
              ]
            }
          ],
          "desc": "<p>The WHATWG <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone\"><code>structuredClone</code></a> method.</p>"
        }
      ]
    }
  ]
}