mediawiki/services/change-propagation: main (log #2237000)

sourcepatches

This run took 49 seconds.

$ date
--- stdout ---
Sat Nov 29 07:06:21 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-services-change-propagation.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
809f3c4277cc1ac02306ba890323f82476026da2 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105443,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion Regular Expression Denial of Service vulnerability",
          "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=1.0.0 <=1.1.11"
        }
      ],
      "effects": [],
      "range": "1.0.0 - 1.1.11",
      "nodes": [
        "node_modules/gc-stats/node_modules/brace-expansion"
      ],
      "fixAvailable": true
    },
    "busboy": {
      "name": "busboy",
      "severity": "high",
      "isDirect": false,
      "via": [
        "dicer"
      ],
      "effects": [
        "hyperswitch"
      ],
      "range": "<=0.3.1",
      "nodes": [
        "node_modules/busboy"
      ],
      "fixAvailable": {
        "name": "hyperswitch",
        "version": "0.10.5",
        "isSemVerMajor": true
      }
    },
    "coveralls": {
      "name": "coveralls",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "request"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/coveralls"
      ],
      "fixAvailable": false
    },
    "debug": {
      "name": "debug",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1096792,
          "name": "debug",
          "dependency": "debug",
          "title": "Regular Expression Denial of Service in debug",
          "url": "https://github.com/advisories/GHSA-gxpj-cx7g-858c",
          "severity": "low",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=4.0.0 <4.3.1"
        }
      ],
      "effects": [],
      "range": "4.0.0 - 4.3.0",
      "nodes": [
        "node_modules/gc-stats/node_modules/debug"
      ],
      "fixAvailable": true
    },
    "dicer": {
      "name": "dicer",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1093150,
          "name": "dicer",
          "dependency": "dicer",
          "title": "Crash in HeaderParser in dicer",
          "url": "https://github.com/advisories/GHSA-wm7h-9275-46v2",
          "severity": "high",
          "cwe": [
            "CWE-248"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<=0.3.1"
        }
      ],
      "effects": [
        "busboy"
      ],
      "range": "*",
      "nodes": [
        "node_modules/dicer"
      ],
      "fixAvailable": {
        "name": "hyperswitch",
        "version": "0.10.5",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<2.5.4",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": false
    },
    "hyperswitch": {
      "name": "hyperswitch",
      "severity": "high",
      "isDirect": true,
      "via": [
        "busboy",
        "preq",
        "swagger-ui-dist"
      ],
      "effects": [],
      "range": ">=0.1.0",
      "nodes": [
        "node_modules/hyperswitch"
      ],
      "fixAvailable": {
        "name": "hyperswitch",
        "version": "0.10.5",
        "isSemVerMajor": true
      }
    },
    "ini": {
      "name": "ini",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1093224,
          "name": "ini",
          "dependency": "ini",
          "title": "ini before 1.3.6 vulnerable to Prototype Pollution via ini.parse",
          "url": "https://github.com/advisories/GHSA-qqgx-2p2h-9c37",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L"
          },
          "range": "<1.3.6"
        }
      ],
      "effects": [],
      "range": "<1.3.6",
      "nodes": [
        "node_modules/gc-stats/node_modules/ini"
      ],
      "fixAvailable": true
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        {
          "source": 1109801,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "js-yaml has prototype pollution in merge (<<)",
          "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.14.2"
        },
        {
          "source": 1109802,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "js-yaml has prototype pollution in merge (<<)",
          "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=4.0.0 <4.1.1"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.14.2 || >=4.0.0 <4.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc/node_modules/js-yaml",
        "node_modules/eslint-plugin-unicorn/node_modules/js-yaml",
        "node_modules/eslint/node_modules/js-yaml",
        "node_modules/js-yaml",
        "node_modules/mocha/node_modules/js-yaml"
      ],
      "fixAvailable": true
    },
    "limitation": {
      "name": "limitation",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "wikimedia-kad-fork"
      ],
      "effects": [],
      "range": ">=0.2.3",
      "nodes": [
        "node_modules/limitation"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096485,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS vulnerability",
          "url": "https://github.com/advisories/GHSA-f8q6-p94x-37v3",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.0.5",
      "nodes": [
        "node_modules/gc-stats/node_modules/minimatch",
        "node_modules/minimatch"
      ],
      "fixAvailable": true
    },
    "minimist": {
      "name": "minimist",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096465,
          "name": "minimist",
          "dependency": "minimist",
          "title": "Prototype Pollution in minimist",
          "url": "https://github.com/advisories/GHSA-vh95-rmgr-6w4m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.6,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L"
          },
          "range": ">=1.0.0 <1.2.3"
        },
        {
          "source": 1096466,
          "name": "minimist",
          "dependency": "minimist",
          "title": "Prototype Pollution in minimist",
          "url": "https://github.com/advisories/GHSA-vh95-rmgr-6w4m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.6,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L"
          },
          "range": "<0.2.1"
        },
        {
          "source": 1097677,
          "name": "minimist",
          "dependency": "minimist",
          "title": "Prototype Pollution in minimist",
          "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h",
          "severity": "critical",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 9.8,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<0.2.4"
        },
        {
          "source": 1097678,
          "name": "minimist",
          "dependency": "minimist",
          "title": "Prototype Pollution in minimist",
          "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h",
          "severity": "critical",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 9.8,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=1.0.0 <1.2.6"
        }
      ],
      "effects": [
        "mkdirp"
      ],
      "range": "<=0.2.3 || 1.0.0 - 1.2.5",
      "nodes": [
        "node_modules/gc-stats/node_modules/minimist",
        "node_modules/gc-stats/node_modules/rc/node_modules/minimist"
      ],
      "fixAvailable": true
    },
    "mkdirp": {
      "name": "mkdirp",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "minimist"
      ],
      "effects": [],
      "range": "0.4.1 - 0.5.1",
      "nodes": [
        "node_modules/gc-stats/node_modules/mkdirp"
      ],
      "fixAvailable": true
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": true,
      "via": [
        "js-yaml",
        "minimatch",
        "nanoid"
      ],
      "effects": [],
      "range": "5.1.0 - 10.5.2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": true
    },
    "ms": {
      "name": "ms",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1109573,
          "name": "ms",
          "dependency": "ms",
          "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability",
          "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<2.0.0"
        }
      ],
      "effects": [
        "wikimedia-kad-fork"
      ],
      "range": "<2.0.0",
      "nodes": [
        "node_modules/ms"
      ],
      "fixAvailable": true
    },
    "nanoid": {
      "name": "nanoid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1109563,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Predictable results in nanoid generation when given non-integer values",
          "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
          "severity": "moderate",
          "cwe": [
            "CWE-835"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.3.8"
        },
        {
          "source": 1109578,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Exposure of Sensitive Information to an Unauthorized Actor in nanoid",
          "url": "https://github.com/advisories/GHSA-qrpm-p2h7-hrv2",
          "severity": "moderate",
          "cwe": [
            "CWE-200",
            "CWE-704"
          ],
          "cvss": {
            "score": 5.5,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": ">=3.0.0 <3.1.31"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=3.3.7",
      "nodes": [
        "node_modules/nanoid"
      ],
      "fixAvailable": true
    },
    "preq": {
      "name": "preq",
      "severity": "high",
      "isDirect": true,
      "via": [
        "request",
        "requestretry"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/preq"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "tough-cookie"
      ],
      "effects": [
        "coveralls",
        "preq",
        "requestretry"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "requestretry": {
      "name": "requestretry",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1090420,
          "name": "requestretry",
          "dependency": "requestretry",
          "title": "Cookie exposure in requestretry",
          "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45",
          "severity": "high",
          "cwe": [
            "CWE-200"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": "<7.0.0"
        },
        "request"
      ],
      "effects": [
        "preq"
      ],
      "range": "<=7.1.0",
      "nodes": [
        "node_modules/requestretry"
      ],
      "fixAvailable": false
    },
    "semver": {
      "name": "semver",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1101089,
          "name": "semver",
          "dependency": "semver",
          "title": "semver vulnerable to Regular Expression Denial of Service",
          "url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<5.7.2"
        }
      ],
      "effects": [],
      "range": "<5.7.2",
      "nodes": [
        "node_modules/gc-stats/node_modules/semver"
      ],
      "fixAvailable": true
    },
    "swagger-ui-dist": {
      "name": "swagger-ui-dist",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1088759,
          "name": "swagger-ui-dist",
          "dependency": "swagger-ui-dist",
          "title": "Spoofing attack in swagger-ui-dist",
          "url": "https://github.com/advisories/GHSA-6c9x-mj3g-h47x",
          "severity": "moderate",
          "cwe": [
            "CWE-1021"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        },
        {
          "source": 1092160,
          "name": "swagger-ui-dist",
          "dependency": "swagger-ui-dist",
          "title": "Server side request forgery in SwaggerUI",
          "url": "https://github.com/advisories/GHSA-qrmm-w75w-3wpx",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "hyperswitch"
      ],
      "range": "<=4.1.2",
      "nodes": [
        "node_modules/swagger-ui-dist"
      ],
      "fixAvailable": {
        "name": "hyperswitch",
        "version": "0.10.5",
        "isSemVerMajor": true
      }
    },
    "tar": {
      "name": "tar",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1089684,
          "name": "tar",
          "dependency": "tar",
          "title": "Arbitrary File Creation/Overwrite due to insufficient absolute path sanitization",
          "url": "https://github.com/advisories/GHSA-3jfq-g458-7qm9",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 8.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N"
          },
          "range": ">=4.0.0 <4.4.14"
        },
        {
          "source": 1095117,
          "name": "tar",
          "dependency": "tar",
          "title": "Arbitrary File Creation/Overwrite on Windows via insufficient relative path sanitization",
          "url": "https://github.com/advisories/GHSA-5955-9wpr-37jh",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 8.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N"
          },
          "range": "<4.4.18"
        },
        {
          "source": 1096309,
          "name": "tar",
          "dependency": "tar",
          "title": "Arbitrary File Creation/Overwrite via insufficient symlink protection due to directory cache poisoning",
          "url": "https://github.com/advisories/GHSA-r628-mhmh-qjhw",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-23",
            "CWE-59"
          ],
          "cvss": {
            "score": 8.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N"
          },
          "range": ">=4.0.0 <4.4.15"
        },
        {
          "source": 1096376,
          "name": "tar",
          "dependency": "tar",
          "title": "Arbitrary File Creation/Overwrite via insufficient symlink protection due to directory cache poisoning using symbolic links",
          "url": "https://github.com/advisories/GHSA-9r2w-394v-53qc",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-59"
          ],
          "cvss": {
            "score": 8.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N"
          },
          "range": ">=3.0.0 <4.4.16"
        },
        {
          "source": 1096411,
          "name": "tar",
          "dependency": "tar",
          "title": "Arbitrary File Creation/Overwrite via insufficient symlink protection due to directory cache poisoning using symbolic links",
          "url": "https://github.com/advisories/GHSA-qq89-hq3f-393p",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-59"
          ],
          "cvss": {
            "score": 8.2,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N"
          },
          "range": ">=3.0.0 <4.4.18"
        },
        {
          "source": 1097493,
          "name": "tar",
          "dependency": "tar",
          "title": "Denial of service while parsing a tar file due to lack of folders count validation",
          "url": "https://github.com/advisories/GHSA-f5x3-32g6-xq36",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<6.2.1"
        }
      ],
      "effects": [],
      "range": "<=6.2.0",
      "nodes": [
        "node_modules/gc-stats/node_modules/tar"
      ],
      "fixAvailable": true
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wikimedia-kad-fork": {
      "name": "wikimedia-kad-fork",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "ms"
      ],
      "effects": [
        "limitation"
      ],
      "range": "*",
      "nodes": [
        "node_modules/wikimedia-kad-fork"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 2,
      "moderate": 8,
      "high": 10,
      "critical": 4,
      "total": 24
    },
    "dependencies": {
      "prod": 154,
      "dev": 502,
      "optional": 82,
      "peer": 5,
      "peerOptional": 0,
      "total": 732
    }
  }
}

--- end ---
Upgrading n:eslint-config-wikimedia from 0.31.0 -> 0.32.2
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained.
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated json-schema-ref-parser@7.1.4: Please switch to @apidevtools/json-schema-ref-parser
npm ERR! code 1
npm ERR! path /src/repo/node_modules/node-rdkafka
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/src/repo/node_modules/node-rdkafka/build'
npm ERR!   ACTION deps_librdkafka_gyp_librdkafka_target_configure deps/librdkafka/config.h
npm ERR! checking for OS or distribution... ok (debian)
npm ERR! checking for C compiler from CC env... failed
npm ERR! checking for gcc (by command)... failed
npm ERR! checking for clang (by command)... failed
npm ERR! checking for cc (by command)... failed (fail)
npm ERR! checking for C++ compiler from CXX env... failed
npm ERR! checking for C++ compiler (g++)... failed
npm ERR! checking for C++ compiler (clang++)... failed
npm ERR! checking for C++ compiler (c++)... failed (fail)
npm ERR! checking executable ld... failed (disable)
npm ERR! checking executable nm... failed (disable)
npm ERR! checking executable objdump... failed (disable)
npm ERR! checking executable strip... failed (disable)
npm ERR! checking executable libtool... failed (disable)
npm ERR! checking executable ranlib... failed (disable)
npm ERR! checking for pkgconfig (by command)... ok
npm ERR! checking for install (by command)... ok
npm ERR! checking for GNU ar... failed (disable)
npm ERR! checking for PIC (by compile)... failed (disable)
npm ERR! checking for GNU-compatible linker options... failed
npm ERR! checking for OSX linker options... failed
npm ERR! checking for GNU linker-script ld flag... failed
npm ERR! checking for Solaris linker-script ld flag... failed (ignore)
npm ERR! checking for __atomic_32 (by compile)... failed
npm ERR! checking for __atomic_32_lib (by compile)... failed
npm ERR! checking for __sync_32 (by compile)... failed (disable)
npm ERR! checking for __atomic_64 (by compile)... failed
npm ERR! checking for __atomic_64_lib (by compile)... failed
npm ERR! checking for __sync_64 (by compile)... failed (disable)
npm ERR! checking for socket (by compile)... failed
npm ERR! checking for socket_nsl (by compile)... failed (fail)
npm ERR! parsing version '0x020300ff'... ok (2.3.0)
npm ERR! checking for librt (by pkg-config)... failed
npm ERR! checking for librt (by compile)... failed
npm ERR! checking for libpthread (by pkg-config)... failed
npm ERR! checking for libpthread (by compile)... failed (fail)
npm ERR! checking for c11threads (by pkg-config)... failed
npm ERR! checking for c11threads (by compile)... failed (disable)
npm ERR! checking for libdl (by pkg-config)... failed
npm ERR! checking for libdl (by compile)... failed (disable)
npm ERR! checking for zlib (by pkg-config)... failed
npm ERR! checking for zlib (by compile)... failed (disable)
npm ERR! checking for libcrypto (by pkg-config)... failed
npm ERR! checking for libcrypto (by compile)... failed (disable)
npm ERR! checking for libsasl2 (by pkg-config)... failed
npm ERR! checking for libsasl2 (by compile)... failed (disable)
npm ERR! checking for libsasl (by pkg-config)... failed
npm ERR! checking for libsasl (by compile)... failed (disable)
npm ERR! checking for libzstd (by pkg-config)... failed
npm ERR! checking for libzstd (by compile)... failed (disable)
npm ERR! checking for libcurl (by pkg-config)... failed
npm ERR! checking for libcurl (by compile)... failed (disable)
npm ERR! checking for libm (by pkg-config)... failed
npm ERR! checking for libm (by compile)... failed (disable)
npm ERR! checking for liblz4 (by pkg-config)... failed
npm ERR! checking for liblz4 (by compile)... failed (disable)
npm ERR! checking for syslog (by compile)... failed (disable)
npm ERR! checking for rapidjson (by compile)... failed (disable)
npm ERR! checking for crc32chw (by compile)... failed (disable)
npm ERR! checking for regex (by compile)... failed (disable)
npm ERR! checking for rand_r (by compile)... failed (disable)
npm ERR! checking for strndup (by compile)... failed (disable)
npm ERR! checking for strlcpy (by compile)... failed (disable)
npm ERR! checking for strerror_r (by compile)... failed (disable)
npm ERR! checking for strcasestr (by compile)... failed (disable)
npm ERR! checking for pthread_setname_gnu (by compile)... failed (disable)
npm ERR! checking for pthread_setname_darwin (by compile)... failed (disable)
npm ERR! checking for pthread_setname_freebsd (by compile)... failed (disable)
npm ERR! checking for nm (by env NM)... failed
npm ERR! checking for getrusage (by compile)... failed (disable)
npm ERR! 
npm ERR! 
npm ERR! 
npm ERR! make: Leaving directory '/src/repo/node_modules/node-rdkafka/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@11.1.0
npm ERR! gyp info using node@20.19.2 | linux | x64
npm ERR! gyp info find Python using Python version 3.13.5 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/usr/share/nodejs/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/src/repo/node_modules/node-rdkafka/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/share/nodejs/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/include/nodejs/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/usr/include/nodejs',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/share/nodejs/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/usr/include/nodejs/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/src/repo/node_modules/node-rdkafka',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ###########################################################
npm ERR! ###                  Configure failed                   ###
npm ERR! ###########################################################
npm ERR! ### Accumulated failures:                               ###
npm ERR! ###########################################################
npm ERR!  cc (WITH_CC) 
npm ERR!     module: cc
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! command 'cc --version' failed:
npm ERR! mklove/modules/configure.base: line 1824: cc: command not found
npm ERR! 
npm ERR!  cxx (WITH_CXX) C++ compiler (c++)
npm ERR!     module: cc
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! command 'c++ --version' failed:
npm ERR! mklove/modules/configure.base: line 1824: c++: command not found
npm ERR! 
npm ERR!  socket_nsl () 
npm ERR!     module: socket
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! compile check failed:
npm ERR! CC: CC
npm ERR! flags: 
npm ERR!   -g -O2 -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wall -Werror _mkltmpVuOEcC.c -o _mkltmpVuOEcC.c.o -lsocket -lnsl -L/src/repo/node_modules/node-rdkafka/build/deps  :
npm ERR! mklove/modules/configure.base: line 1412: -g: command not found
npm ERR! source: 
npm ERR! #include <sys/types.h>
npm ERR! #include <sys/socket.h>
npm ERR! #include <unistd.h>
npm ERR! void foo (void) {
npm ERR!    int s = socket(0, 0, 0);
npm ERR!    close(s);
npm ERR! }
npm ERR! 
npm ERR!  libpthread () 
npm ERR!     module: self
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! compile check failed:
npm ERR! CC: CC
npm ERR! flags: -lpthread
npm ERR!   -g -O2 -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wall -Werror _mkltmphcLyW3.c -o _mkltmphcLyW3.c.o  -L/src/repo/node_modules/node-rdkafka/build/deps -lpthread :
npm ERR! mklove/modules/configure.base: line 1412: -g: command not found
npm ERR! source: #include <pthread.h>
npm ERR! 
npm ERR! make: *** No rule to make target '../deps/librdkafka/config.h', needed by '11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate'.  Stop.
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.<anonymous> (/usr/share/nodejs/node-gyp/lib/build.js:216:23)
npm ERR! gyp ERR! System Linux 6.1.0-30-cloud-amd64
npm ERR! gyp ERR! command "/usr/bin/node" "/usr/share/nodejs/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /src/repo/node_modules/node-rdkafka
npm ERR! gyp ERR! node -v v20.19.2
npm ERR! gyp ERR! node-gyp -v v11.1.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2025-11-29T07_06_25_571Z-debug-0.log
--- stdout ---

--- end ---
$ rm -rf package-lock.json node_modules
--- stdout ---

--- end ---
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained.
npm WARN deprecated rimraf@2.4.5: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated lodash.clone@4.5.0: This package is deprecated. Use structuredClone instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained.
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated gc-stats@1.4.1: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@6.0.4: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.6: Glob versions prior to v9 are no longer supported
npm WARN deprecated preq@0.5.14: Deprecated as this is a wrapper around the deprecated request library. Preq can be replaced with fetch, which is available from Node 18 as an experimental feature.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated json-schema-ref-parser@7.1.4: Please switch to @apidevtools/json-schema-ref-parser
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm ERR! code 1
npm ERR! path /src/repo/node_modules/node-rdkafka
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/src/repo/node_modules/node-rdkafka/build'
npm ERR!   ACTION deps_librdkafka_gyp_librdkafka_target_configure deps/librdkafka/config.h
npm ERR! checking for OS or distribution... ok (debian)
npm ERR! checking for C compiler from CC env... failed
npm ERR! checking for gcc (by command)... failed
npm ERR! checking for clang (by command)... failed
npm ERR! checking for cc (by command)... failed (fail)
npm ERR! checking for C++ compiler from CXX env... failed
npm ERR! checking for C++ compiler (g++)... failed
npm ERR! checking for C++ compiler (clang++)... failed
npm ERR! checking for C++ compiler (c++)... failed (fail)
npm ERR! checking executable ld... failed (disable)
npm ERR! checking executable nm... failed (disable)
npm ERR! checking executable objdump... failed (disable)
npm ERR! checking executable strip... failed (disable)
npm ERR! checking executable libtool... failed (disable)
npm ERR! checking executable ranlib... failed (disable)
npm ERR! checking for pkgconfig (by command)... ok
npm ERR! checking for install (by command)... ok
npm ERR! checking for GNU ar... failed (disable)
npm ERR! checking for PIC (by compile)... failed (disable)
npm ERR! checking for GNU-compatible linker options... failed
npm ERR! checking for OSX linker options... failed
npm ERR! checking for GNU linker-script ld flag... failed
npm ERR! checking for Solaris linker-script ld flag... failed (ignore)
npm ERR! checking for __atomic_32 (by compile)... failed
npm ERR! checking for __atomic_32_lib (by compile)... failed
npm ERR! checking for __sync_32 (by compile)... failed (disable)
npm ERR! checking for __atomic_64 (by compile)... failed
npm ERR! checking for __atomic_64_lib (by compile)... failed
npm ERR! checking for __sync_64 (by compile)... failed (disable)
npm ERR! checking for socket (by compile)... failed
npm ERR! checking for socket_nsl (by compile)... failed (fail)
npm ERR! parsing version '0x020300ff'... ok (2.3.0)
npm ERR! checking for librt (by pkg-config)... failed
npm ERR! checking for librt (by compile)... failed
npm ERR! checking for libpthread (by pkg-config)... failed
npm ERR! checking for libpthread (by compile)... failed (fail)
npm ERR! checking for c11threads (by pkg-config)... failed
npm ERR! checking for c11threads (by compile)... failed (disable)
npm ERR! checking for libdl (by pkg-config)... failed
npm ERR! checking for libdl (by compile)... failed (disable)
npm ERR! checking for zlib (by pkg-config)... failed
npm ERR! checking for zlib (by compile)... failed (disable)
npm ERR! checking for libcrypto (by pkg-config)... failed
npm ERR! checking for libcrypto (by compile)... failed (disable)
npm ERR! checking for libsasl2 (by pkg-config)... failed
npm ERR! checking for libsasl2 (by compile)... failed (disable)
npm ERR! checking for libsasl (by pkg-config)... failed
npm ERR! checking for libsasl (by compile)... failed (disable)
npm ERR! checking for libzstd (by pkg-config)... failed
npm ERR! checking for libzstd (by compile)... failed (disable)
npm ERR! checking for libcurl (by pkg-config)... failed
npm ERR! checking for libcurl (by compile)... failed (disable)
npm ERR! checking for libm (by pkg-config)... failed
npm ERR! checking for libm (by compile)... failed (disable)
npm ERR! checking for liblz4 (by pkg-config)... failed
npm ERR! checking for liblz4 (by compile)... failed (disable)
npm ERR! checking for syslog (by compile)... failed (disable)
npm ERR! checking for rapidjson (by compile)... failed (disable)
npm ERR! checking for crc32chw (by compile)... failed (disable)
npm ERR! checking for regex (by compile)... failed (disable)
npm ERR! checking for rand_r (by compile)... failed (disable)
npm ERR! checking for strndup (by compile)... failed (disable)
npm ERR! checking for strlcpy (by compile)... failed (disable)
npm ERR! checking for strerror_r (by compile)... failed (disable)
npm ERR! checking for strcasestr (by compile)... failed (disable)
npm ERR! checking for pthread_setname_gnu (by compile)... failed (disable)
npm ERR! checking for pthread_setname_darwin (by compile)... failed (disable)
npm ERR! checking for pthread_setname_freebsd (by compile)... failed (disable)
npm ERR! checking for nm (by env NM)... failed
npm ERR! checking for getrusage (by compile)... failed (disable)
npm ERR! 
npm ERR! 
npm ERR! 
npm ERR! make: Leaving directory '/src/repo/node_modules/node-rdkafka/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@11.1.0
npm ERR! gyp info using node@20.19.2 | linux | x64
npm ERR! gyp info find Python using Python version 3.13.5 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/usr/share/nodejs/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/src/repo/node_modules/node-rdkafka/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/share/nodejs/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/include/nodejs/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/usr/include/nodejs',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/share/nodejs/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/usr/include/nodejs/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/src/repo/node_modules/node-rdkafka',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ###########################################################
npm ERR! ###                  Configure failed                   ###
npm ERR! ###########################################################
npm ERR! ### Accumulated failures:                               ###
npm ERR! ###########################################################
npm ERR!  cc (WITH_CC) 
npm ERR!     module: cc
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! command 'cc --version' failed:
npm ERR! mklove/modules/configure.base: line 1824: cc: command not found
npm ERR! 
npm ERR!  cxx (WITH_CXX) C++ compiler (c++)
npm ERR!     module: cc
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! command 'c++ --version' failed:
npm ERR! mklove/modules/configure.base: line 1824: c++: command not found
npm ERR! 
npm ERR!  socket_nsl () 
npm ERR!     module: socket
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! compile check failed:
npm ERR! CC: CC
npm ERR! flags: 
npm ERR!   -g -O2 -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wall -Werror _mkltmps6NSY0.c -o _mkltmps6NSY0.c.o -lsocket -lnsl -L/src/repo/node_modules/node-rdkafka/build/deps  :
npm ERR! mklove/modules/configure.base: line 1412: -g: command not found
npm ERR! source: 
npm ERR! #include <sys/types.h>
npm ERR! #include <sys/socket.h>
npm ERR! #include <unistd.h>
npm ERR! void foo (void) {
npm ERR!    int s = socket(0, 0, 0);
npm ERR!    close(s);
npm ERR! }
npm ERR! 
npm ERR!  libpthread () 
npm ERR!     module: self
npm ERR!     action: fail
npm ERR!     reason:
npm ERR! compile check failed:
npm ERR! CC: CC
npm ERR! flags: -lpthread
npm ERR!   -g -O2 -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wall -Werror _mkltmpGbCrT7.c -o _mkltmpGbCrT7.c.o  -L/src/repo/node_modules/node-rdkafka/build/deps -lpthread :
npm ERR! mklove/modules/configure.base: line 1412: -g: command not found
npm ERR! source: #include <pthread.h>
npm ERR! 
npm ERR! make: *** No rule to make target '../deps/librdkafka/config.h', needed by '11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate'.  Stop.
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.<anonymous> (/usr/share/nodejs/node-gyp/lib/build.js:216:23)
npm ERR! gyp ERR! System Linux 6.1.0-30-cloud-amd64
npm ERR! gyp ERR! command "/usr/bin/node" "/usr/share/nodejs/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /src/repo/node_modules/node-rdkafka
npm ERR! gyp ERR! node -v v20.19.2
npm ERR! gyp ERR! node-gyp -v v11.1.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2025-11-29T07_06_43_820Z-debug-0.log
--- stdout ---

--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1232, in npm_upgrade
    self.check_call(["npm", "install"])
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 63, in check_call
    res.check_returncode()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
                             self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'install']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 2044, in main
    libup.run(args.repo, args.output, args.branch)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1980, in run
    self.npm_upgrade(plan)
    ~~~~~~~~~~~~~~~~^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1235, in npm_upgrade
    self.check_call(["npm", "install"])
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 63, in check_call
    res.check_returncode()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
                             self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'install']' returned non-zero exit status 1.
Source code is licensed under the AGPL.