Skip to content

Conversation

@aduh95
Copy link
Contributor

@aduh95 aduh95 commented Feb 7, 2026

Description

Validation

Related Issues

Check List

  • I have read the Contributing Guidelines and made commit messages that follow the guideline.
  • I have run node --run test and all tests passed.
  • I have check code formatting with node --run format & node --run lint.
  • I've covered new added functionality with unit tests if necessary.

@aduh95 aduh95 requested a review from a team as a code owner February 7, 2026 15:19
Copilot AI review requested due to automatic review settings February 7, 2026 15:19
@vercel
Copy link

vercel bot commented Feb 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api-docs-tooling Ready Ready Preview Feb 9, 2026 5:49pm

Request Review

@codecov
Copy link

codecov bot commented Feb 7, 2026

Codecov Report

❌ Patch coverage is 36.92308% with 41 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.60%. Comparing base (07a57f8) to head (632755b).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/utils/generators.mjs 35.00% 39 Missing ⚠️
src/generators/legacy-json-all/index.mjs 66.66% 1 Missing ⚠️
src/generators/legacy-json/index.mjs 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #595      +/-   ##
==========================================
- Coverage   80.80%   80.60%   -0.21%     
==========================================
  Files         126      126              
  Lines       12073    12132      +59     
  Branches      874      874              
==========================================
+ Hits         9756     9779      +23     
- Misses       2314     2350      +36     
  Partials        3        3              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Removed commented TODO note about additional keys in JSON output.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the legacy-json generator to emit “legacy-compatible” JSON by filtering the serialized output to a specific allowlist of keys, aiming to prevent newly introduced fields from appearing in generated legacy JSON files.

Changes:

  • Replaces JSON.stringify(section, null, 2) with JSON.stringify(section, [allowedKeys...], 2) to filter output keys.
  • Conditionally includes the modules key for non-index sections during serialization.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link

github-actions bot commented Feb 7, 2026

api-links Generator

apilinks.json
Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines

  {
    'Agent.defaultMaxSockets': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L227',
    'Buffer.alloc': 'https://github.com/nodejs/node/tree/HEAD/lib/buffer.js#L431',
    'Buffer.allocUnsafe': 'https://github.com/nodejs/node/tree/HEAD/lib/buffer.js#L445',
    'Buffer.allocUnsafeSlow': 'https://github.com/nodejs/node/tree/HEAD/lib/buffer.js#L457',
...
    'agent.addRequest': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L292',
+   'agent.createConnection': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L231',
-   'agent.createConnection': 'https://github.com/nodejs/node/tree/HEAD/lib/https.js#L326',
    'agent.createSocket': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L363',
    'agent.destroy': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L595',
+   'agent.getName': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L261',
-   'agent.getName': 'https://github.com/nodejs/node/tree/HEAD/lib/https.js#L484',
    'agent.keepSocketAlive': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L552',
    'agent.removeSocket': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L491',
    'agent.reuseSocket': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_agent.js#L588',
    'assert.assert': 'https://github.com/nodejs/node/tree/HEAD/lib/assert.js#L185',
    'asyncResource.asyncId': 'https://github.com/nodejs/node/tree/HEAD/lib/async_hooks.js#L242',
...
    'server.address': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2289',
+   'server.close': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L611',
+   'server.closeAllConnections': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L621',
+   'server.closeIdleConnections': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L633',
-   'server.close': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2422',
-   'server.closeAllConnections': 'https://github.com/nodejs/node/tree/HEAD/lib/https.js#L120',
-   'server.closeIdleConnections': 'https://github.com/nodejs/node/tree/HEAD/lib/https.js#L122',
    'server.getConnections': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2384',
    'server.listen': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2106',
    'server.ref': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2527',
+   'server.setTimeout': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L649',
-   'server.setTimeout': 'https://github.com/nodejs/node/tree/HEAD/lib/https.js#L124',
    'server.unref': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2536',
+   'server[SymbolAsyncDispose]': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L617',
+   'server[undefined]': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L656',
-   'server[SymbolAsyncDispose]': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2462',
-   'server[undefined]': 'https://github.com/nodejs/node/tree/HEAD/lib/net.js#L2491',
    'serverresponse._finish': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L244',
    'serverresponse._implicitHeader': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L351',
    'serverresponse.assignSocket': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L294',
    'serverresponse.detachSocket': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L305',
    'serverresponse.statusCode': 'https://github.com/nodejs/node/tree/HEAD/lib/_http_server.js#L267',

legacy-json Generator

addons.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'addons',
    introduced_in: 'v0.10.0',
    miscs: [
      {
        desc: '<p><em>Addons</em> are dynamically-linked shared objects written in C++. The\n' +
          '<a href="modules.html#requireid"><code>require()</code></a> function can load addons as ordinary Node.js modules.\n' +
assert.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'assert',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
async_context.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'async_context',
    modules: [
      {
        classes: [
          {
            classMethods: [
async_hooks.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'async_hooks',
    modules: [
      {
        classes: [
          {
            desc: '<p>The class <code>AsyncHook</code> exposes an interface for tracking lifetime events\n' +
buffer.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'buffer',
    modules: [
      {
        classes: [
          {
            desc: '<p>A <a href="buffer.html#class-blob"><code>&#x3C;Blob></code></a> encapsulates immutable, raw data that can be safely shared across\n' +
child_process.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'child_process',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
cli.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'cli',
    introduced_in: 'v5.9.1',
    miscs: [
      {
        desc: '<p>Node.js comes with a variety of CLI options. These options expose built-in\n' +
          'debugging, multiple ways to execute scripts, and other helpful runtime options.</p>\n' +
cluster.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'cluster',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
console.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'console',
    modules: [
      {
        classes: [
          {
            desc: '<p>The <code>Console</code> class can be used to create a simple logger with configurable\n' +
crypto.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'crypto',
    modules: [
      {
        classes: [
          {
            classMethods: [
debugger.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'debugger',
    introduced_in: 'v0.9.12',
    miscs: [
      {
        desc: '<p>Node.js includes a command-line debugging utility. The Node.js debugger client\n' +
          'is not a full-featured debugger, but simple stepping and inspection are\n' +
deprecations.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'deprecations',
    introduced_in: 'v7.7.0',
    miscs: [
      {
        desc: '<p>Node.js APIs might be deprecated for any of the following reasons:</p>\n' +
          '<ul>\n' +
dgram.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'dgram',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
diagnostics_channel.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'diagnostics_channel',
    modules: [
      {
        desc: '<p>The <code>node:diagnostics_channel</code> module provides an API to create named channels\n' +
          'to report arbitrary message data for diagnostics purposes.</p>\n' +
          '<p>It can be accessed using:</p>\n' +
dns.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'dns',
    modules: [
      {
        classes: [
          {
            desc: '<p>An independent resolver for DNS requests.</p>\n' +
documentation.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'documentation',
    introduced_in: 'v0.10.0',
    miscs: [
      {
        desc: '<p>Welcome to the official API reference documentation for Node.js!</p>\n' +
          '<p>Node.js is a JavaScript runtime built on the <a href="https://v8.dev/">V8 JavaScript engine</a>.</p>',
domain.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'domain',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
embedding.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'embedding',
    modules: [
      {
        desc: '<p>Node.js provides a number of C++ APIs that can be used to execute JavaScript\n' +
          'in a Node.js environment from other C++ software.</p>\n' +
          '<p>The documentation for these APIs can be found in <a href="https://github.com/nodejs/node/blob/HEAD/src/node.h">src/node.h</a> in the Node.js\n' +
environment_variables.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'environment_variables',
    modules: [
      {
        desc: '<p>Environment variables are variables associated to the environment the Node.js process runs in.</p>',
        displayName: 'Environment Variables',
        introduced_in: 'v20.12.0',
errors.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'errors',
    classes: [
      {
        desc: '<p>A generic JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error"><code>&#x3C;Error></code></a> object that does not denote any specific\n' +
          'circumstance of why the error occurred. <code>Error</code> objects capture a "stack trace"\n' +
          'detailing the point in the code at which the <code>Error</code> was instantiated, and may\n' +
esm.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'esm',
    introduced_in: 'v8.5.0',
    meta: {
      added: [
        'v8.5.0'
      ],
events.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'events',
    modules: [
      {
        classes: [
          {
            desc: '<p>The <code>EventEmitter</code> class is defined and exposed by the <code>node:events</code> module:</p>\n' +
fs.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'fs',
    modules: [
      {
        desc: '<p>The <code>node:fs</code> module enables interacting with the file system in a\n' +
          'way modeled on standard POSIX functions.</p>\n' +
          '<p>To use the promise-based APIs:</p>\n' +
globals.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'globals',
    classes: [
      {
        classes: [
          {
            classMethods: [
http.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'http',
    modules: [
      {
        classes: [
          {
            desc: '<p>An <code>Agent</code> is responsible for managing connection persistence\n' +
http2.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'http2',
    modules: [
      {
        desc: '<p>The <code>node:http2</code> module provides an implementation of the <a href="https://tools.ietf.org/html/rfc7540">HTTP/2</a> protocol.\n' +
          'It can be accessed using:</p>\n' +
          `<pre><code class="language-js">const http2 = require('node:http2');\n` +
https.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'https',
    modules: [
      {
        classes: [
          {
            desc: '<p>An <a href="#class-httpsagent"><code>Agent</code></a> object for HTTPS similar to <a href="http.html#class-httpagent"><code>http.Agent</code></a>. See\n' +
index.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'index',
-   modules: [
-     {
-       desc: '<!--\n' +
-         '  NB(chrisdickinson): if you move this file, be sure to update\n' +
-         '  tools/doc/html.mjs to point at the new location.\n' +
-         '-->\n' +
-         '<ul>\n' +
-         '<li><a href="documentation.html">About this documentation</a></li>\n' +
-         '<li><a href="synopsis.html">Usage and example</a></li>\n' +
-         '</ul>\n' +
-         '<hr class="line"/>\n' +
-         '<ul>\n' +
-         '<li><a href="assert.html">Assertion testing</a></li>\n' +
-         '<li><a href="async_context.html">Asynchronous context tracking</a></li>\n' +
-         '<li><a href="async_hooks.html">Async hooks</a></li>\n' +
-         '<li><a href="buffer.html">Buffer</a></li>\n' +
-         '<li><a href="addons.html">C++ addons</a></li>\n' +
-         '<li><a href="n-api.html">C/C++ addons with Node-API</a></li>\n' +
-         '<li><a href="embedding.html">C++ embedder API</a></li>\n' +
-         '<li><a href="child_process.html">Child processes</a></li>\n' +
-         '<li><a href="cluster.html">Cluster</a></li>\n' +
-         '<li><a href="cli.html">Command-line options</a></li>\n' +
-         '<li><a href="console.html">Console</a></li>\n' +
-         '<li><a href="crypto.html">Crypto</a></li>\n' +
-         '<li><a href="debugger.html">Debugger</a></li>\n' +
-         '<li><a href="deprecations.html">Deprecated APIs</a></li>\n' +
-         '<li><a href="diagnostics_channel.html">Diagnostics Channel</a></li>\n' +
-         '<li><a href="dns.html">DNS</a></li>\n' +
-         '<li><a href="domain.html">Domain</a></li>\n' +
-         '<li><a href="environment_variables.html">Environment Variables</a></li>\n' +
-         '<li><a href="errors.html">Errors</a></li>\n' +
-         '<li><a href="events.html">Events</a></li>\n' +
-         '<li><a href="fs.html">File system</a></li>\n' +
-         '<li><a href="globals.html">Globals</a></li>\n' +
-         '<li><a href="http.html">HTTP</a></li>\n' +
-         '<li><a href="http2.html">HTTP/2</a></li>\n' +
-         '<li><a href="https.html">HTTPS</a></li>\n' +
-         '<li><a href="inspector.html">Inspector</a></li>\n' +
-         '<li><a href="intl.html">Internationalization</a></li>\n' +
-         '<li><a href="modules.html">Modules: CommonJS modules</a></li>\n' +
-         '<li><a href="esm.html">Modules: ECMAScript modules</a></li>\n' +
-         '<li><a href="module.html">Modules: <code>node:module</code> API</a></li>\n' +
-         '<li><a href="packages.html">Modules: Packages</a></li>\n' +
-         '<li><a href="typescript.html">Modules: TypeScript</a></li>\n' +
-         '<li><a href="net.html">Net</a></li>\n' +
-         '<li><a href="os.html">OS</a></li>\n' +
-         '<li><a href="path.html">Path</a></li>\n' +
-         '<li><a href="perf_hooks.html">Performance hooks</a></li>\n' +
-         '<li><a href="permissions.html">Permissions</a></li>\n' +
-         '<li><a href="process.html">Process</a></li>\n' +
-         '<li><a href="punycode.html">Punycode</a></li>\n' +
-         '<li><a href="querystring.html">Query strings</a></li>\n' +
-         '<li><a href="readline.html">Readline</a></li>\n' +
-         '<li><a href="repl.html">REPL</a></li>\n' +
-         '<li><a href="report.html">Report</a></li>\n' +
-         '<li><a href="single-executable-applications.html">Single executable applications</a></li>\n' +
-         '<li><a href="sqlite.html">SQLite</a></li>\n' +
-         '<li><a href="stream.html">Stream</a></li>\n' +
-         '<li><a href="string_decoder.html">String decoder</a></li>\n' +
-         '<li><a href="test.html">Test runner</a></li>\n' +
-         '<li><a href="timers.html">Timers</a></li>\n' +
-         '<li><a href="tls.html">TLS/SSL</a></li>\n' +
-         '<li><a href="tracing.html">Trace events</a></li>\n' +
-         '<li><a href="tty.html">TTY</a></li>\n' +
-         '<li><a href="dgram.html">UDP/datagram</a></li>\n' +
-         '<li><a href="url.html">URL</a></li>\n' +
-         '<li><a href="util.html">Utilities</a></li>\n' +
-         '<li><a href="v8.html">V8</a></li>\n' +
-         '<li><a href="vm.html">VM</a></li>\n' +
-         '<li><a href="wasi.html">WASI</a></li>\n' +
-         '<li><a href="webcrypto.html">Web Crypto API</a></li>\n' +
-         '<li><a href="webstreams.html">Web Streams API</a></li>\n' +
-         '<li><a href="worker_threads.html">Worker threads</a></li>\n' +
-         '<li><a href="zlib.html">Zlib</a></li>\n' +
-         '</ul>\n' +
-         '<hr class="line"/>\n' +
-         '<ul>\n' +
-         '<li><a href="https://github.com/nodejs/node">Code repository and issue tracker</a></li>\n' +
-         '</ul>',
-       displayName: '',
-       introduced_in: 'v0.10.0',
-       name: '',
-       textRaw: '',
-       type: 'module'
-     }
-   ],
    source: 'doc/api/index.md',
    type: 'module'
  }
inspector.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'inspector',
    modules: [
      {
        desc: '<p>The <code>node:inspector</code> module provides an API for interacting with the V8\n' +
          'inspector.</p>\n' +
          '<p>It can be accessed using:</p>\n' +
intl.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'intl',
    introduced_in: 'v8.2.0',
    miscs: [
      {
        desc: '<p>Node.js has many features that make it easier to write internationalized\n' +
          'programs. Some of them are:</p>\n' +
module.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'module',
    modules: [
      {
        displayName: 'Modules: `node:module` API',
        introduced_in: 'v12.20.0',
        meta: {
modules.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'modules',
    modules: [
      {
        desc: '<p>CommonJS modules are the original way to package JavaScript code for Node.js.\n' +
          'Node.js also supports the <a href="esm.html">ECMAScript modules</a> standard used by browsers\n' +
          'and other JavaScript runtimes.</p>\n' +
n-api.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'n-api',
    introduced_in: 'v8.0.0',
    miscs: [
      {
        desc: '<p>Node-API (formerly N-API) is an API for building native Addons. It is\n' +
          'independent from the underlying JavaScript runtime (for example, V8) and is\n' +
net.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'net',
    modules: [
      {
        classes: [
          {
            desc: '<p>The <code>BlockList</code> object can be used with some network APIs to specify rules for\n' +
os.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'os',
    modules: [
      {
        desc: '<p>The <code>node:os</code> module provides operating system-related utility methods and\n' +
          'properties. It can be accessed using:</p>\n' +
          `<pre><code class="language-mjs">import os from 'node:os';\n` +
packages.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'packages',
    introduced_in: 'v12.20.0',
    meta: {
      changes: [
        {
          'pr-url': 'https://github.com/nodejs/node/pull/34718',
path.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'path',
    modules: [
      {
        desc: '<p>The <code>node:path</code> module provides utilities for working with file and directory\n' +
          'paths. It can be accessed using:</p>\n' +
          `<pre><code class="language-cjs">const path = require('node:path');\n` +
perf_hooks.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'perf_hooks',
    modules: [
      {
        classes: [
          {
            desc: '<p>The constructor of this class is not exposed to users directly.</p>',
permissions.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'permissions',
    modules: [
      {
        desc: '<p>Permissions can be used to control what system resources the\n' +
          'Node.js process has access to or what actions the process can take\n' +
          'with those resources.</p>\n' +
process.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'process',
    globals: [
      {
        desc: '<p>The <code>process</code> object provides information about, and control over, the current\n' +
          'Node.js process.</p>\n' +
          `<pre><code class="language-mjs">import process from 'node:process';\n` +
punycode.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'punycode',
    modules: [
      {
        desc: '<p><strong>The version of the punycode module bundled in Node.js is being deprecated.</strong>\n' +
          'In a future major version of Node.js this module will be removed. Users\n' +
          'currently depending on the <code>punycode</code> module should switch to using the\n' +
querystring.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'querystring',
    modules: [
      {
        desc: '<p>The <code>node:querystring</code> module provides utilities for parsing and formatting URL\n' +
          'query strings. It can be accessed using:</p>\n' +
          `<pre><code class="language-js">const querystring = require('node:querystring');\n` +
quic.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'quic',
    modules: [
      {
        classes: [
          {
            desc: '<p>A <code>QuicEndpoint</code> encapsulates the local UDP-port binding for QUIC. It can be\n' +
readline.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'readline',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
repl.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'repl',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
report.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'report',
    introduced_in: 'v11.8.0',
    meta: {
      changes: [
        {
          'pr-url': 'https://github.com/nodejs/node/pull/55697',
single-executable-applications.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'single-executable-applications',
    modules: [
      {
        desc: '<p>This feature allows the distribution of a Node.js application conveniently to a\n' +
          'system that does not have Node.js installed.</p>\n' +
          '<p>Node.js supports the creation of <a href="https://github.com/nodejs/single-executable">single executable applications</a> by allowing\n' +
sqlite.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'sqlite',
    modules: [
      {
        classes: [
          {
            desc: '<p>This class represents a single <a href="https://www.sqlite.org/c3ref/sqlite3.html">connection</a> to a SQLite database. All APIs\n' +
stream.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'stream',
    modules: [
      {
        desc: '<p>A stream is an abstract interface for working with streaming data in Node.js.\n' +
          'The <code>node:stream</code> module provides an API for implementing the stream interface.</p>\n' +
          '<p>There are many stream objects provided by Node.js. For instance, a\n' +
string_decoder.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'string_decoder',
    modules: [
      {
        classes: [
          {
            methods: [
synopsis.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'synopsis',
    modules: [
      {
        displayName: 'Usage and example',
        introduced_in: 'v0.10.0',
        miscs: [
test.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'test',
    modules: [
      {
        classes: [
          {
            desc: '<p>The <code>MockFunctionContext</code> class is used to inspect or manipulate the behavior of\n' +
timers.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'timers',
    modules: [
      {
        classes: [
          {
            desc: '<p>This object is created internally and is returned from <a href="#setimmediatecallback-args"><code>setImmediate()</code></a>. It\n' +
tls.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'tls',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
tracing.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'tracing',
    modules: [
      {
        desc: '<p>The <code>node:trace_events</code> module provides a mechanism to centralize tracing\n' +
          'information generated by V8, Node.js core, and userspace code.</p>\n' +
          '<p>Tracing can be enabled with the <code>--trace-event-categories</code> command-line flag\n' +
tty.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'tty',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +
typescript.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'typescript',
    modules: [
      {
        displayName: 'Modules: TypeScript',
        introduced_in: 'v22.6.0',
        meta: {
url.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'url',
    modules: [
      {
        desc: '<p>The <code>node:url</code> module provides utilities for URL resolution and parsing. It can\n' +
          'be accessed using:</p>\n' +
          `<pre><code class="language-mjs">import url from 'node:url';\n` +
util.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'util',
    modules: [
      {
        classes: [
          {
            desc: '<p>An implementation of <a href="https://bmeck.github.io/node-proposal-mime-api/">the MIMEType class</a>.</p>\n' +
v8.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'v8',
    modules: [
      {
        classes: [
          {
            desc: '<p>This API collects GC data in current thread.</p>',
vm.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'vm',
    modules: [
      {
        classes: [
          {
            desc: '<p>Instances of the <code>vm.Script</code> class contain precompiled scripts that can be\n' +
wasi.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'wasi',
    modules: [
      {
        classes: [
          {
            desc: '<p>The <code>WASI</code> class provides the WASI system call API and additional convenience\n' +
webcrypto.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'webcrypto',
    modules: [
      {
        classes: [
          {
            desc: '<p><code>globalThis.crypto</code> is an instance of the <code>Crypto</code>\n' +
webstreams.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'webstreams',
    modules: [
      {
        desc: '<p>An implementation of the <a href="https://streams.spec.whatwg.org/">WHATWG Streams Standard</a>.</p>',
        displayName: 'Web Streams API',
        introduced_in: 'v16.5.0',
worker_threads.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'worker_threads',
    modules: [
      {
        classes: [
          {
            desc: '<p>Instances of <code>BroadcastChannel</code> allow asynchronous one-to-many communication\n' +
zlib.json
Expected values to be strictly deep-equal:
+ actual - expected

  {
-   api: 'zlib',
    modules: [
      {
        classes: [
          {
            desc: '<ul>\n' +

orama-db Generator

File Base Head Diff
orama-db.json 8.03 MB 8.03 MB -3.00 B (-0.00%)

Copy link
Member

@avivkeller avivkeller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't love this kind of hard-coding, but if it'll get the tooling merged into core, I'm willing to deal with it.

cc @ovflowd @flakey5

Copy link
Member

@ovflowd ovflowd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait for the TSC meeting.

@ovflowd
Copy link
Member

ovflowd commented Feb 7, 2026

To be clear, not against the PR, just want to want for the TSC meeting before we make any decisions on the approach.

Copy link
Member

@ovflowd ovflowd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, let's land this, I can't really see negatives of why not landing this.

@ovflowd ovflowd merged commit 2a4cbe3 into main Feb 9, 2026
20 checks passed
@ovflowd ovflowd deleted the filter-out-keys branch February 9, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants