mediawiki/extensions/Sanctions: REL1_43 (log #2357439)

sourcepatches

This run took 74 seconds.

$ date
--- stdout ---
Mon Feb 23 06:01:45 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-Sanctions.git /src/repo --depth=1 -b REL1_43
--- stderr ---
Cloning into '/src/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/REL1_43
--- stdout ---
30c97ac923d7c5b37736ab3e2b27e8603464cb0d refs/heads/REL1_43

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint",
        "eslint-plugin-unicorn"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc",
        "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": "6.16.0 - 8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [],
      "range": "<=8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "inquirer",
        "recursive-readdir",
        "webdriverio",
        "yarn-install"
      ],
      "effects": [
        "@wdio/junit-reporter",
        "@wdio/local-runner",
        "@wdio/spec-reporter"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "devtools",
        "webdriver",
        "webdriverio"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/junit-reporter": {
      "name": "@wdio/junit-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "7.0.1 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/junit-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/junit-reporter",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "effects": [],
      "range": "6.3.0 - 9.8.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": false
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "gaze",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/spec-reporter": {
      "name": "@wdio/spec-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "7.0.1 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/spec-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/spec-reporter",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "ajv": {
      "name": "ajv",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113398,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<6.14.0"
        },
        {
          "source": 1113399,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0-alpha.0 <8.18.0"
        }
      ],
      "effects": [],
      "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
      "nodes": [
        "node_modules/ajv",
        "node_modules/table/node_modules/ajv"
      ],
      "fixAvailable": true
    },
    "archiver": {
      "name": "archiver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=0.20.0",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils",
        "node_modules/zip-stream/node_modules/archiver-utils"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104663,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "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": "<6.0.6"
        }
      ],
      "effects": [
        "yarn-install"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/yarn-install/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "devtools": {
      "name": "devtools",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "puppeteer-core"
      ],
      "effects": [],
      "range": ">=5.13.0-alpha.0",
      "nodes": [
        "node_modules/devtools"
      ],
      "fixAvailable": true
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "high",
      "isDirect": false,
      "via": [
        "multimatch"
      ],
      "effects": [
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=2.2.0",
      "nodes": [
        "node_modules/doiuse"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "eslint": {
      "name": "eslint",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "file-entry-cache",
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils",
        "eslint-config-wikimedia",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue",
        "grunt-eslint"
      ],
      "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-unicorn",
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": ">=0.9.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "25.0.1 - 29.12.2",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jsdoc": {
      "name": "eslint-plugin-jsdoc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "8.4.4 - 62.6.1",
      "nodes": [
        "node_modules/eslint-plugin-jsdoc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-mediawiki": {
      "name": "eslint-plugin-mediawiki",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": "0.2.3 - 0.7.0",
      "nodes": [
        "node_modules/eslint-plugin-mediawiki"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "<=17.21.1",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-unicorn": {
      "name": "eslint-plugin-unicorn",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@eslint/eslintrc"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "50.0.0 - 54.0.0",
      "nodes": [
        "node_modules/eslint-plugin-unicorn"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-vue": {
      "name": "eslint-plugin-vue",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia",
        "eslint-plugin-mediawiki"
      ],
      "range": "5.0.0-beta.0 - 10.7.0",
      "nodes": [
        "node_modules/eslint-plugin-vue"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "external-editor": {
      "name": "external-editor",
      "severity": "low",
      "isDirect": false,
      "via": [
        "tmp"
      ],
      "effects": [
        "inquirer"
      ],
      "range": ">=1.1.1",
      "nodes": [
        "node_modules/external-editor"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "0.0.2 - 1.0.4",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "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": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "gaze": {
      "name": "gaze",
      "severity": "high",
      "isDirect": false,
      "via": [
        "globule"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/gaze"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "mocha",
        "rimraf"
      ],
      "range": "3.0.0 - 10.5.0",
      "nodes": [
        "node_modules/glob",
        "node_modules/globule/node_modules/glob",
        "node_modules/grunt/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "globule": {
      "name": "globule",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "gaze"
      ],
      "range": "*",
      "nodes": [
        "node_modules/globule"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "grunt"
      ],
      "effects": [],
      "range": "<=17.3.2 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "inquirer": {
      "name": "inquirer",
      "severity": "low",
      "isDirect": false,
      "via": [
        "external-editor"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
      "nodes": [
        "node_modules/inquirer"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "0.3.2 - 10.9.2",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113371,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<10.2.1"
        }
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "eslint-plugin-n",
        "filelist",
        "glob",
        "globule",
        "grunt",
        "jake",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir",
        "webdriverio"
      ],
      "range": "<10.2.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/globule/node_modules/minimatch",
        "node_modules/grunt/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=1.10.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": false
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "<=7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf",
        "tar-fs",
        "ws"
      ],
      "effects": [
        "devtools",
        "webdriverio"
      ],
      "range": "<=22.11.1",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113132,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "high",
          "cwe": [
            "CWE-20"
          ],
          "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": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.1",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=1.2.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "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",
        "qs",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "flat-cache",
        "puppeteer-core"
      ],
      "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
      "nodes": [
        "node_modules/rimraf"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.10.2",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "high",
      "isDirect": false,
      "via": [
        "doiuse"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109532,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
          "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-61"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.4"
        },
        {
          "source": 1109543,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs can extract outside the specified dir with a specific tarball",
          "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.3"
        },
        {
          "source": 1109552,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=2.0.0 <2.1.2"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "2.0.0 - 2.1.3",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "tmp": {
      "name": "tmp",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1109537,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
          "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
          "severity": "low",
          "cwe": [
            "CWE-59"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<=0.2.3"
        }
      ],
      "effects": [
        "external-editor"
      ],
      "range": "<=0.2.3",
      "nodes": [
        "node_modules/tmp"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": 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": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "devtools",
        "minimatch",
        "puppeteer-core",
        "webdriver"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "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": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "yarn-install": {
      "name": "yarn-install",
      "severity": "high",
      "isDirect": false,
      "via": [
        "cross-spawn"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/yarn-install"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "0.8.0 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 3,
      "moderate": 4,
      "high": 49,
      "critical": 2,
      "total": 58
    },
    "dependencies": {
      "prod": 1,
      "dev": 795,
      "optional": 2,
      "peer": 1,
      "peerOptional": 0,
      "total": 795
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 38 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
  - Locking doctrine/deprecations (1.1.6)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v45.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.14.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.4.3)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.6)
  - Locking phpdocumentor/type-resolver (1.12.0)
  - Locking phpstan/phpdoc-parser (2.3.2)
  - Locking psr/container (2.0.2)
  - Locking psr/log (3.0.2)
  - Locking sabre/event (5.1.7)
  - Locking squizlabs/php_codesniffer (3.10.3)
  - Locking symfony/console (v7.4.4)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.33.0)
  - Locking symfony/polyfill-intl-grapheme (v1.33.0)
  - Locking symfony/polyfill-intl-normalizer (v1.33.0)
  - Locking symfony/polyfill-mbstring (v1.33.0)
  - Locking symfony/polyfill-php80 (v1.33.0)
  - Locking symfony/service-contracts (v3.6.1)
  - Locking symfony/string (v8.0.4)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (2.1.5)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 38 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.10.3): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v45.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
  - Installing symfony/string (v8.0.4): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.1): Extracting archive
  - Installing symfony/console (v7.4.4): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (2.1.5): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.6): Extracting archive
  - Installing phpdocumentor/type-resolver (1.12.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.6): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (3.0.2): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.3): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.14.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  0/36 [>---------------------------]   0%
 28/36 [=====================>------]  77%
 36/36 [============================] 100%
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@eslint/eslintrc": {
      "name": "@eslint/eslintrc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint",
        "eslint-plugin-unicorn"
      ],
      "range": "0.0.1 || >=0.1.1",
      "nodes": [
        "node_modules/@eslint/eslintrc",
        "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@humanwhocodes/config-array": {
      "name": "@humanwhocodes/config-array",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@humanwhocodes/config-array"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": "6.16.0 - 8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree",
        "eslint"
      ],
      "effects": [],
      "range": "<=8.56.1-alpha.2",
      "nodes": [
        "node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "inquirer",
        "recursive-readdir",
        "webdriverio",
        "yarn-install"
      ],
      "effects": [
        "@wdio/junit-reporter",
        "@wdio/local-runner",
        "@wdio/spec-reporter"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner",
        "devtools",
        "webdriver",
        "webdriverio"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/junit-reporter": {
      "name": "@wdio/junit-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "7.0.1 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/junit-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/junit-reporter",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "effects": [],
      "range": "6.3.0 - 9.8.0",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": false
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "gaze",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "*",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/spec-reporter": {
      "name": "@wdio/spec-reporter",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/cli"
      ],
      "effects": [],
      "range": "7.0.1 - 8.0.0-alpha.631",
      "nodes": [
        "node_modules/@wdio/spec-reporter"
      ],
      "fixAvailable": {
        "name": "@wdio/spec-reporter",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "ajv": {
      "name": "ajv",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113398,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<6.14.0"
        },
        {
          "source": 1113399,
          "name": "ajv",
          "dependency": "ajv",
          "title": "ajv has ReDoS when using `$data` option",
          "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=7.0.0-alpha.0 <8.18.0"
        }
      ],
      "effects": [],
      "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
      "nodes": [
        "node_modules/ajv",
        "node_modules/table/node_modules/ajv"
      ],
      "fixAvailable": true
    },
    "archiver": {
      "name": "archiver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils",
        "readdir-glob",
        "zip-stream"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": ">=0.20.0",
      "nodes": [
        "node_modules/archiver"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "archiver-utils": {
      "name": "archiver-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "archiver",
        "zip-stream"
      ],
      "range": ">=0.2.0",
      "nodes": [
        "node_modules/archiver-utils",
        "node_modules/zip-stream/node_modules/archiver-utils"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104663,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "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": "<6.0.6"
        }
      ],
      "effects": [
        "yarn-install"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/yarn-install/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "devtools": {
      "name": "devtools",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "puppeteer-core"
      ],
      "effects": [],
      "range": ">=5.13.0-alpha.0",
      "nodes": [
        "node_modules/devtools"
      ],
      "fixAvailable": true
    },
    "doiuse": {
      "name": "doiuse",
      "severity": "high",
      "isDirect": false,
      "via": [
        "multimatch"
      ],
      "effects": [
        "stylelint-no-unsupported-browser-features"
      ],
      "range": ">=2.2.0",
      "nodes": [
        "node_modules/doiuse"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "eslint": {
      "name": "eslint",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "file-entry-cache",
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils",
        "eslint-config-wikimedia",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-vue",
        "grunt-eslint"
      ],
      "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
      "nodes": [
        "node_modules/eslint"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "eslint-plugin-jest",
        "eslint-plugin-jsdoc",
        "eslint-plugin-unicorn",
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": ">=0.9.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jest": {
      "name": "eslint-plugin-jest",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "25.0.1 - 29.12.2",
      "nodes": [
        "node_modules/eslint-plugin-jest"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-jsdoc": {
      "name": "eslint-plugin-jsdoc",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "8.4.4 - 62.6.1",
      "nodes": [
        "node_modules/eslint-plugin-jsdoc"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-mediawiki": {
      "name": "eslint-plugin-mediawiki",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint-plugin-vue"
      ],
      "effects": [],
      "range": "0.2.3 - 0.7.0",
      "nodes": [
        "node_modules/eslint-plugin-mediawiki"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "<=17.21.1",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": true
    },
    "eslint-plugin-unicorn": {
      "name": "eslint-plugin-unicorn",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@eslint/eslintrc"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": "50.0.0 - 54.0.0",
      "nodes": [
        "node_modules/eslint-plugin-unicorn"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-vue": {
      "name": "eslint-plugin-vue",
      "severity": "high",
      "isDirect": false,
      "via": [
        "eslint"
      ],
      "effects": [
        "eslint-config-wikimedia",
        "eslint-plugin-mediawiki"
      ],
      "range": "5.0.0-beta.0 - 10.7.0",
      "nodes": [
        "node_modules/eslint-plugin-vue"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "external-editor": {
      "name": "external-editor",
      "severity": "low",
      "isDirect": false,
      "via": [
        "tmp"
      ],
      "effects": [
        "inquirer"
      ],
      "range": ">=1.1.1",
      "nodes": [
        "node_modules/external-editor"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "file-entry-cache": {
      "name": "file-entry-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "flat-cache"
      ],
      "effects": [
        "eslint"
      ],
      "range": "4.0.0 - 7.0.2",
      "nodes": [
        "node_modules/file-entry-cache"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "filelist": {
      "name": "filelist",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "0.0.2 - 1.0.4",
      "nodes": [
        "node_modules/filelist"
      ],
      "fixAvailable": true
    },
    "flat-cache": {
      "name": "flat-cache",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf"
      ],
      "effects": [
        "file-entry-cache"
      ],
      "range": "1.3.4 - 4.0.0",
      "nodes": [
        "node_modules/flat-cache"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "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": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "gaze": {
      "name": "gaze",
      "severity": "high",
      "isDirect": false,
      "via": [
        "globule"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=0.4.0",
      "nodes": [
        "node_modules/gaze"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/config",
        "archiver-utils",
        "mocha",
        "rimraf"
      ],
      "range": "3.0.0 - 10.5.0",
      "nodes": [
        "node_modules/glob",
        "node_modules/globule/node_modules/glob",
        "node_modules/grunt/node_modules/glob",
        "node_modules/mocha/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "globule": {
      "name": "globule",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "gaze"
      ],
      "range": "*",
      "nodes": [
        "node_modules/globule"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "eslint",
        "grunt"
      ],
      "effects": [],
      "range": "<=17.3.2 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "inquirer": {
      "name": "inquirer",
      "severity": "low",
      "isDirect": false,
      "via": [
        "external-editor"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
      "nodes": [
        "node_modules/inquirer"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "jake": {
      "name": "jake",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [],
      "range": "0.3.2 - 10.9.2",
      "nodes": [
        "node_modules/jake"
      ],
      "fixAvailable": true
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113371,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
          "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<10.2.1"
        }
      ],
      "effects": [
        "@eslint/eslintrc",
        "@humanwhocodes/config-array",
        "@typescript-eslint/typescript-estree",
        "eslint",
        "eslint-plugin-n",
        "filelist",
        "glob",
        "globule",
        "grunt",
        "jake",
        "mocha",
        "multimatch",
        "readdir-glob",
        "recursive-readdir",
        "webdriverio"
      ],
      "range": "<10.2.1",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/filelist/node_modules/minimatch",
        "node_modules/globule/node_modules/minimatch",
        "node_modules/grunt/node_modules/minimatch",
        "node_modules/minimatch",
        "node_modules/mocha/node_modules/minimatch",
        "node_modules/readdir-glob/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.8.1",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob",
        "minimatch"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": ">=1.10.0",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": false
    },
    "multimatch": {
      "name": "multimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "doiuse"
      ],
      "range": "<=7.0.0",
      "nodes": [
        "node_modules/multimatch"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "rimraf",
        "tar-fs",
        "ws"
      ],
      "effects": [
        "devtools",
        "webdriverio"
      ],
      "range": "<=22.11.1",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113132,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "high",
          "cwe": [
            "CWE-20"
          ],
          "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": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "readdir-glob": {
      "name": "readdir-glob",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "archiver"
      ],
      "range": "<=2.0.1",
      "nodes": [
        "node_modules/readdir-glob"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "recursive-readdir": {
      "name": "recursive-readdir",
      "severity": "high",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": ">=1.2.0",
      "nodes": [
        "node_modules/recursive-readdir"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "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",
        "qs",
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "rimraf": {
      "name": "rimraf",
      "severity": "high",
      "isDirect": false,
      "via": [
        "glob"
      ],
      "effects": [
        "flat-cache",
        "puppeteer-core"
      ],
      "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
      "nodes": [
        "node_modules/rimraf"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "stylelint-config-wikimedia": {
      "name": "stylelint-config-wikimedia",
      "severity": "high",
      "isDirect": true,
      "via": [
        "stylelint-no-unsupported-browser-features"
      ],
      "effects": [],
      "range": ">=0.10.2",
      "nodes": [
        "node_modules/stylelint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "stylelint-no-unsupported-browser-features": {
      "name": "stylelint-no-unsupported-browser-features",
      "severity": "high",
      "isDirect": false,
      "via": [
        "doiuse"
      ],
      "effects": [
        "stylelint-config-wikimedia"
      ],
      "range": "*",
      "nodes": [
        "node_modules/stylelint-no-unsupported-browser-features"
      ],
      "fixAvailable": {
        "name": "stylelint-config-wikimedia",
        "version": "0.10.1",
        "isSemVerMajor": true
      }
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109532,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
          "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
          "severity": "high",
          "cwe": [
            "CWE-22",
            "CWE-61"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.4"
        },
        {
          "source": 1109543,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs can extract outside the specified dir with a specific tarball",
          "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=2.0.0 <2.1.3"
        },
        {
          "source": 1109552,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=2.0.0 <2.1.2"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "2.0.0 - 2.1.3",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "tmp": {
      "name": "tmp",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1109537,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
          "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
          "severity": "low",
          "cwe": [
            "CWE-59"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<=0.2.3"
        }
      ],
      "effects": [
        "external-editor"
      ],
      "range": "<=0.2.3",
      "nodes": [
        "node_modules/tmp"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": 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": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.3.2",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config"
      ],
      "effects": [
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "archiver",
        "devtools",
        "minimatch",
        "puppeteer-core",
        "webdriver"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": ">=5.0.0-alpha.2",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "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": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "yarn-install": {
      "name": "yarn-install",
      "severity": "high",
      "isDirect": false,
      "via": [
        "cross-spawn"
      ],
      "effects": [
        "@wdio/cli"
      ],
      "range": "*",
      "nodes": [
        "node_modules/yarn-install"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.24.0",
        "isSemVerMajor": true
      }
    },
    "zip-stream": {
      "name": "zip-stream",
      "severity": "high",
      "isDirect": false,
      "via": [
        "archiver-utils"
      ],
      "effects": [],
      "range": "0.8.0 - 6.0.1",
      "nodes": [
        "node_modules/zip-stream"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 3,
      "moderate": 4,
      "high": 49,
      "critical": 2,
      "total": 58
    },
    "dependencies": {
      "prod": 1,
      "dev": 795,
      "optional": 2,
      "peer": 1,
      "peerOptional": 0,
      "total": 795
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
{
  "added": 802,
  "removed": 0,
  "changed": 0,
  "audited": 803,
  "funding": 146,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@eslint/eslintrc": {
        "name": "@eslint/eslintrc",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint",
          "eslint-plugin-unicorn"
        ],
        "range": "0.0.1 || >=0.1.1",
        "nodes": [
          "",
          "node_modules/@eslint/eslintrc"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "@humanwhocodes/config-array": {
        "name": "@humanwhocodes/config-array",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint"
        ],
        "range": "*",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/utils"
        ],
        "range": "6.16.0 - 8.56.1-alpha.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree",
          "eslint"
        ],
        "effects": [],
        "range": "<=8.56.1-alpha.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/config",
          "inquirer",
          "recursive-readdir",
          "webdriverio",
          "yarn-install"
        ],
        "effects": [
          "@wdio/junit-reporter",
          "@wdio/local-runner",
          "@wdio/spec-reporter"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/cli"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/config": {
        "name": "@wdio/config",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner",
          "devtools",
          "webdriver",
          "webdriverio"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/config"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/junit-reporter": {
        "name": "@wdio/junit-reporter",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/cli"
        ],
        "effects": [],
        "range": "7.0.1 - 8.0.0-alpha.631",
        "nodes": [
          "node_modules/@wdio/junit-reporter"
        ],
        "fixAvailable": {
          "name": "@wdio/junit-reporter",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/local-runner": {
        "name": "@wdio/local-runner",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "effects": [],
        "range": "6.3.0 - 9.8.0",
        "nodes": [
          "node_modules/@wdio/local-runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/mocha-framework": {
        "name": "@wdio/mocha-framework",
        "severity": "high",
        "isDirect": true,
        "via": [
          "mocha"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": false
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "gaze",
          "webdriver",
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": "*",
        "nodes": [
          "node_modules/@wdio/runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/spec-reporter": {
        "name": "@wdio/spec-reporter",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/cli"
        ],
        "effects": [],
        "range": "7.0.1 - 8.0.0-alpha.631",
        "nodes": [
          "node_modules/@wdio/spec-reporter"
        ],
        "fixAvailable": {
          "name": "@wdio/spec-reporter",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "ajv": {
        "name": "ajv",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1113398,
            "name": "ajv",
            "dependency": "ajv",
            "title": "ajv has ReDoS when using `$data` option",
            "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<6.14.0"
          },
          {
            "source": 1113399,
            "name": "ajv",
            "dependency": "ajv",
            "title": "ajv has ReDoS when using `$data` option",
            "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=7.0.0-alpha.0 <8.18.0"
          }
        ],
        "effects": [],
        "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": true
      },
      "archiver": {
        "name": "archiver",
        "severity": "high",
        "isDirect": false,
        "via": [
          "archiver-utils",
          "readdir-glob",
          "zip-stream"
        ],
        "effects": [
          "webdriverio"
        ],
        "range": ">=0.20.0",
        "nodes": [
          "node_modules/archiver"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "archiver-utils": {
        "name": "archiver-utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "archiver",
          "zip-stream"
        ],
        "range": ">=0.2.0",
        "nodes": [
          "node_modules/archiver-utils",
          "node_modules/zip-stream/node_modules/archiver-utils"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "cross-spawn": {
        "name": "cross-spawn",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1104663,
            "name": "cross-spawn",
            "dependency": "cross-spawn",
            "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
            "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
            "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": "<6.0.6"
          }
        ],
        "effects": [
          "yarn-install"
        ],
        "range": "<6.0.6",
        "nodes": [
          "node_modules/yarn-install/node_modules/cross-spawn"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "devtools": {
        "name": "devtools",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "puppeteer-core"
        ],
        "effects": [],
        "range": ">=5.13.0-alpha.0",
        "nodes": [
          "node_modules/devtools"
        ],
        "fixAvailable": true
      },
      "doiuse": {
        "name": "doiuse",
        "severity": "high",
        "isDirect": false,
        "via": [
          "multimatch"
        ],
        "effects": [
          "stylelint-no-unsupported-browser-features"
        ],
        "range": ">=2.2.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "eslint": {
        "name": "eslint",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@eslint/eslintrc",
          "@humanwhocodes/config-array",
          "file-entry-cache",
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/utils",
          "eslint-config-wikimedia",
          "eslint-plugin-jest",
          "eslint-plugin-jsdoc",
          "eslint-plugin-vue",
          "grunt-eslint"
        ],
        "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2",
        "nodes": [
          "",
          "node_modules/eslint"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "high",
        "isDirect": true,
        "via": [
          "eslint",
          "eslint-plugin-jest",
          "eslint-plugin-jsdoc",
          "eslint-plugin-unicorn",
          "eslint-plugin-vue"
        ],
        "effects": [],
        "range": ">=0.9.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-jest": {
        "name": "eslint-plugin-jest",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "25.0.1 - 29.12.2",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-jsdoc": {
        "name": "eslint-plugin-jsdoc",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "8.4.4 - 62.6.1",
        "nodes": [
          "node_modules/eslint-plugin-jsdoc"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-mediawiki": {
        "name": "eslint-plugin-mediawiki",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint-plugin-vue"
        ],
        "effects": [],
        "range": "0.2.3 - 0.7.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "eslint-plugin-n": {
        "name": "eslint-plugin-n",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [],
        "range": "<=17.21.1",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "eslint-plugin-unicorn": {
        "name": "eslint-plugin-unicorn",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@eslint/eslintrc"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": "50.0.0 - 54.0.0",
        "nodes": [
          "node_modules/eslint-plugin-unicorn"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-vue": {
        "name": "eslint-plugin-vue",
        "severity": "high",
        "isDirect": false,
        "via": [
          "eslint"
        ],
        "effects": [
          "eslint-config-wikimedia",
          "eslint-plugin-mediawiki"
        ],
        "range": "5.0.0-beta.0 - 10.7.0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "external-editor": {
        "name": "external-editor",
        "severity": "low",
        "isDirect": false,
        "via": [
          "tmp"
        ],
        "effects": [
          "inquirer"
        ],
        "range": ">=1.1.1",
        "nodes": [
          "node_modules/external-editor"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "file-entry-cache": {
        "name": "file-entry-cache",
        "severity": "high",
        "isDirect": false,
        "via": [
          "flat-cache"
        ],
        "effects": [
          "eslint"
        ],
        "range": "4.0.0 - 7.0.2",
        "nodes": [
          "node_modules/file-entry-cache"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "filelist": {
        "name": "filelist",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [],
        "range": "0.0.2 - 1.0.4",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "flat-cache": {
        "name": "flat-cache",
        "severity": "high",
        "isDirect": false,
        "via": [
          "rimraf"
        ],
        "effects": [
          "file-entry-cache"
        ],
        "range": "1.3.4 - 4.0.0",
        "nodes": [
          "node_modules/flat-cache"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "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": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "gaze": {
        "name": "gaze",
        "severity": "high",
        "isDirect": false,
        "via": [
          "globule"
        ],
        "effects": [
          "@wdio/runner"
        ],
        "range": ">=0.4.0",
        "nodes": [
          "node_modules/gaze"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "glob": {
        "name": "glob",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@wdio/config",
          "archiver-utils",
          "mocha",
          "rimraf"
        ],
        "range": "3.0.0 - 10.5.0",
        "nodes": [
          "node_modules/glob",
          "node_modules/globule/node_modules/glob",
          "node_modules/grunt/node_modules/glob",
          "node_modules/mocha/node_modules/glob"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "globule": {
        "name": "globule",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "gaze"
        ],
        "range": "*",
        "nodes": [
          "node_modules/globule"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "grunt": {
        "name": "grunt",
        "severity": "high",
        "isDirect": true,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "grunt-eslint"
        ],
        "range": ">=0.4.0-a",
        "nodes": [
          "node_modules/grunt"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "0.3.17",
          "isSemVerMajor": true
        }
      },
      "grunt-eslint": {
        "name": "grunt-eslint",
        "severity": "high",
        "isDirect": true,
        "via": [
          "eslint",
          "grunt"
        ],
        "effects": [],
        "range": "<=17.3.2 || >=18.1.0",
        "nodes": [
          "node_modules/grunt-eslint"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "inquirer": {
        "name": "inquirer",
        "severity": "low",
        "isDirect": false,
        "via": [
          "external-editor"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7",
        "nodes": [
          "node_modules/inquirer"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "jake": {
        "name": "jake",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [],
        "range": "0.3.2 - 10.9.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113371,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
            "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<10.2.1"
          }
        ],
        "effects": [
          "@eslint/eslintrc",
          "@humanwhocodes/config-array",
          "@typescript-eslint/typescript-estree",
          "eslint",
          "eslint-plugin-n",
          "filelist",
          "glob",
          "globule",
          "grunt",
          "jake",
          "mocha",
          "multimatch",
          "readdir-glob",
          "recursive-readdir",
          "webdriverio"
        ],
        "range": "<10.2.1",
        "nodes": [
          "",
          "",
          "",
          "",
          "",
          "",
          "node_modules/globule/node_modules/minimatch",
          "node_modules/grunt/node_modules/minimatch",
          "node_modules/minimatch",
          "node_modules/mocha/node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.8.1",
          "isSemVerMajor": true
        }
      },
      "mocha": {
        "name": "mocha",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob",
          "minimatch"
        ],
        "effects": [
          "@wdio/mocha-framework"
        ],
        "range": ">=1.10.0",
        "nodes": [
          "node_modules/mocha"
        ],
        "fixAvailable": false
      },
      "multimatch": {
        "name": "multimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "doiuse"
        ],
        "range": "<=7.0.0",
        "nodes": [
          "node_modules/multimatch"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki"
        ],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "puppeteer-core": {
        "name": "puppeteer-core",
        "severity": "high",
        "isDirect": false,
        "via": [
          "rimraf",
          "tar-fs",
          "ws"
        ],
        "effects": [
          "devtools",
          "webdriverio"
        ],
        "range": "<=22.11.1",
        "nodes": [
          "node_modules/puppeteer-core"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "qs": {
        "name": "qs",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113132,
            "name": "qs",
            "dependency": "qs",
            "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
            "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
            "severity": "high",
            "cwe": [
              "CWE-20"
            ],
            "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": "<6.14.1"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<6.14.1",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "readdir-glob": {
        "name": "readdir-glob",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "archiver"
        ],
        "range": "<=2.0.1",
        "nodes": [
          "node_modules/readdir-glob"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "recursive-readdir": {
        "name": "recursive-readdir",
        "severity": "high",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": ">=1.2.0",
        "nodes": [
          "node_modules/recursive-readdir"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "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",
          "qs",
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "rimraf": {
        "name": "rimraf",
        "severity": "high",
        "isDirect": false,
        "via": [
          "glob"
        ],
        "effects": [
          "flat-cache",
          "puppeteer-core"
        ],
        "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10",
        "nodes": [
          "node_modules/rimraf"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "stylelint-config-wikimedia": {
        "name": "stylelint-config-wikimedia",
        "severity": "high",
        "isDirect": true,
        "via": [
          "stylelint-no-unsupported-browser-features"
        ],
        "effects": [],
        "range": ">=0.10.2",
        "nodes": [
          "node_modules/stylelint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "stylelint-no-unsupported-browser-features": {
        "name": "stylelint-no-unsupported-browser-features",
        "severity": "high",
        "isDirect": false,
        "via": [
          "doiuse"
        ],
        "effects": [
          "stylelint-config-wikimedia"
        ],
        "range": "*",
        "nodes": [
          "node_modules/stylelint-no-unsupported-browser-features"
        ],
        "fixAvailable": {
          "name": "stylelint-config-wikimedia",
          "version": "0.10.1",
          "isSemVerMajor": true
        }
      },
      "tar-fs": {
        "name": "tar-fs",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1109532,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
            "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v",
            "severity": "high",
            "cwe": [
              "CWE-22",
              "CWE-61"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=2.0.0 <2.1.4"
          },
          {
            "source": 1109543,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs can extract outside the specified dir with a specific tarball",
            "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=2.0.0 <2.1.3"
          },
          {
            "source": 1109552,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
            "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=2.0.0 <2.1.2"
          }
        ],
        "effects": [
          "puppeteer-core"
        ],
        "range": "2.0.0 - 2.1.3",
        "nodes": [
          "node_modules/tar-fs"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "tmp": {
        "name": "tmp",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1109537,
            "name": "tmp",
            "dependency": "tmp",
            "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
            "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
            "severity": "low",
            "cwe": [
              "CWE-59"
            ],
            "cvss": {
              "score": 2.5,
              "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<=0.2.3"
          }
        ],
        "effects": [
          "external-editor"
        ],
        "range": "<=0.2.3",
        "nodes": [
          "node_modules/tmp"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": 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": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "wdio-mediawiki": {
        "name": "wdio-mediawiki",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot"
        ],
        "effects": [],
        "range": "<=5.1.0",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.3.2",
          "isSemVerMajor": true
        }
      },
      "webdriver": {
        "name": "webdriver",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config"
        ],
        "effects": [
          "@wdio/runner"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriver"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "archiver",
          "devtools",
          "minimatch",
          "puppeteer-core",
          "webdriver"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "range": ">=5.0.0-alpha.2",
        "nodes": [
          "node_modules/webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1098392,
            "name": "ws",
            "dependency": "ws",
            "title": "ws affected by a DoS when handling a request with many HTTP headers",
            "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
            "severity": "high",
            "cwe": [
              "CWE-476"
            ],
            "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": ">=8.0.0 <8.17.1"
          }
        ],
        "effects": [
          "puppeteer-core"
        ],
        "range": "8.0.0 - 8.17.0",
        "nodes": [
          "node_modules/ws"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "yarn-install": {
        "name": "yarn-install",
        "severity": "high",
        "isDirect": false,
        "via": [
          "cross-spawn"
        ],
        "effects": [
          "@wdio/cli"
        ],
        "range": "*",
        "nodes": [
          "node_modules/yarn-install"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.24.0",
          "isSemVerMajor": true
        }
      },
      "zip-stream": {
        "name": "zip-stream",
        "severity": "high",
        "isDirect": false,
        "via": [
          "archiver-utils"
        ],
        "effects": [],
        "range": "0.8.0 - 6.0.1",
        "nodes": [
          "node_modules/zip-stream"
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 3,
        "moderate": 4,
        "high": 49,
        "critical": 2,
        "total": 58
      },
      "dependencies": {
        "prod": 1,
        "dev": 802,
        "optional": 2,
        "peer": 1,
        "peerOptional": 0,
        "total": 802
      }
    }
  }
}

--- end ---
{"added": 802, "removed": 0, "changed": 0, "audited": 803, "funding": 146, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@eslint/eslintrc": {"name": "@eslint/eslintrc", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["eslint", "eslint-plugin-unicorn"], "range": "0.0.1 || >=0.1.1", "nodes": ["", "node_modules/@eslint/eslintrc"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "@humanwhocodes/config-array": {"name": "@humanwhocodes/config-array", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["eslint"], "range": "*", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/utils"], "range": "6.16.0 - 8.56.1-alpha.2", "nodes": [""], "fixAvailable": true}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "high", "isDirect": false, "via": ["@typescript-eslint/typescript-estree", "eslint"], "effects": [], "range": "<=8.56.1-alpha.2", "nodes": [""], "fixAvailable": true}, "@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["@wdio/config", "inquirer", "recursive-readdir", "webdriverio", "yarn-install"], "effects": ["@wdio/junit-reporter", "@wdio/local-runner", "@wdio/spec-reporter"], "range": "*", "nodes": ["node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "@wdio/config": {"name": "@wdio/config", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["@wdio/cli", "@wdio/runner", "devtools", "webdriver", "webdriverio"], "range": "*", "nodes": ["node_modules/@wdio/config"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "@wdio/junit-reporter": {"name": "@wdio/junit-reporter", "severity": "high", "isDirect": true, "via": ["@wdio/cli"], "effects": [], "range": "7.0.1 - 8.0.0-alpha.631", "nodes": ["node_modules/@wdio/junit-reporter"], "fixAvailable": {"name": "@wdio/junit-reporter", "version": "9.24.0", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": ["@wdio/cli", "@wdio/runner"], "effects": [], "range": "6.3.0 - 9.8.0", "nodes": ["node_modules/@wdio/local-runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.24.0", "isSemVerMajor": true}}, "@wdio/mocha-framework": {"name": "@wdio/mocha-framework", "severity": "high", "isDirect": true, "via": ["mocha"], "effects": [], "range": "*", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": false}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["@wdio/config", "gaze", "webdriver", "webdriverio"], "effects": ["@wdio/local-runner"], "range": "*", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.24.0", "isSemVerMajor": true}}, "@wdio/spec-reporter": {"name": "@wdio/spec-reporter", "severity": "high", "isDirect": true, "via": ["@wdio/cli"], "effects": [], "range": "7.0.1 - 8.0.0-alpha.631", "nodes": ["node_modules/@wdio/spec-reporter"], "fixAvailable": {"name": "@wdio/spec-reporter", "version": "9.24.0", "isSemVerMajor": true}}, "ajv": {"name": "ajv", "severity": "moderate", "isDirect": false, "via": [{"source": 1113398, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": "<6.14.0"}, {"source": 1113399, "name": "ajv", "dependency": "ajv", "title": "ajv has ReDoS when using `$data` option", "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 0, "vectorString": null}, "range": ">=7.0.0-alpha.0 <8.18.0"}], "effects": [], "range": "<6.14.0 || >=7.0.0-alpha.0 <8.18.0", "nodes": ["", ""], "fixAvailable": true}, "archiver": {"name": "archiver", "severity": "high", "isDirect": false, "via": ["archiver-utils", "readdir-glob", "zip-stream"], "effects": ["webdriverio"], "range": ">=0.20.0", "nodes": ["node_modules/archiver"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "archiver-utils": {"name": "archiver-utils", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["archiver", "zip-stream"], "range": ">=0.2.0", "nodes": ["node_modules/archiver-utils", "node_modules/zip-stream/node_modules/archiver-utils"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "cross-spawn": {"name": "cross-spawn", "severity": "high", "isDirect": false, "via": [{"source": 1104663, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "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": "<6.0.6"}], "effects": ["yarn-install"], "range": "<6.0.6", "nodes": ["node_modules/yarn-install/node_modules/cross-spawn"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "devtools": {"name": "devtools", "severity": "high", "isDirect": false, "via": ["@wdio/config", "puppeteer-core"], "effects": [], "range": ">=5.13.0-alpha.0", "nodes": ["node_modules/devtools"], "fixAvailable": true}, "doiuse": {"name": "doiuse", "severity": "high", "isDirect": false, "via": ["multimatch"], "effects": ["stylelint-no-unsupported-browser-features"], "range": ">=2.2.0", "nodes": [""], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "eslint": {"name": "eslint", "severity": "high", "isDirect": false, "via": ["@eslint/eslintrc", "@humanwhocodes/config-array", "file-entry-cache", "minimatch"], "effects": ["@typescript-eslint/utils", "eslint-config-wikimedia", "eslint-plugin-jest", "eslint-plugin-jsdoc", "eslint-plugin-vue", "grunt-eslint"], "range": "0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2", "nodes": ["", "node_modules/eslint"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "high", "isDirect": true, "via": ["eslint", "eslint-plugin-jest", "eslint-plugin-jsdoc", "eslint-plugin-unicorn", "eslint-plugin-vue"], "effects": [], "range": ">=0.9.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-jest": {"name": "eslint-plugin-jest", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": ["eslint-config-wikimedia"], "range": "25.0.1 - 29.12.2", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-jsdoc": {"name": "eslint-plugin-jsdoc", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": ["eslint-config-wikimedia"], "range": "8.4.4 - 62.6.1", "nodes": ["node_modules/eslint-plugin-jsdoc"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-mediawiki": {"name": "eslint-plugin-mediawiki", "severity": "high", "isDirect": false, "via": ["eslint-plugin-vue"], "effects": [], "range": "0.2.3 - 0.7.0", "nodes": [""], "fixAvailable": true}, "eslint-plugin-n": {"name": "eslint-plugin-n", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": [], "range": "<=17.21.1", "nodes": [""], "fixAvailable": true}, "eslint-plugin-unicorn": {"name": "eslint-plugin-unicorn", "severity": "high", "isDirect": false, "via": ["@eslint/eslintrc"], "effects": ["eslint-config-wikimedia"], "range": "50.0.0 - 54.0.0", "nodes": ["node_modules/eslint-plugin-unicorn"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "eslint-plugin-vue": {"name": "eslint-plugin-vue", "severity": "high", "isDirect": false, "via": ["eslint"], "effects": ["eslint-config-wikimedia", "eslint-plugin-mediawiki"], "range": "5.0.0-beta.0 - 10.7.0", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "external-editor": {"name": "external-editor", "severity": "low", "isDirect": false, "via": ["tmp"], "effects": ["inquirer"], "range": ">=1.1.1", "nodes": ["node_modules/external-editor"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "file-entry-cache": {"name": "file-entry-cache", "severity": "high", "isDirect": false, "via": ["flat-cache"], "effects": ["eslint"], "range": "4.0.0 - 7.0.2", "nodes": ["node_modules/file-entry-cache"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "filelist": {"name": "filelist", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": [], "range": "0.0.2 - 1.0.4", "nodes": [""], "fixAvailable": true}, "flat-cache": {"name": "flat-cache", "severity": "high", "isDirect": false, "via": ["rimraf"], "effects": ["file-entry-cache"], "range": "1.3.4 - 4.0.0", "nodes": ["node_modules/flat-cache"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "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": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "gaze": {"name": "gaze", "severity": "high", "isDirect": false, "via": ["globule"], "effects": ["@wdio/runner"], "range": ">=0.4.0", "nodes": ["node_modules/gaze"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.24.0", "isSemVerMajor": true}}, "glob": {"name": "glob", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["@wdio/config", "archiver-utils", "mocha", "rimraf"], "range": "3.0.0 - 10.5.0", "nodes": ["node_modules/glob", "node_modules/globule/node_modules/glob", "node_modules/grunt/node_modules/glob", "node_modules/mocha/node_modules/glob"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "globule": {"name": "globule", "severity": "high", "isDirect": false, "via": ["glob", "minimatch"], "effects": ["gaze"], "range": "*", "nodes": ["node_modules/globule"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.24.0", "isSemVerMajor": true}}, "grunt": {"name": "grunt", "severity": "high", "isDirect": true, "via": ["glob", "minimatch"], "effects": ["grunt-eslint"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "high", "isDirect": true, "via": ["eslint", "grunt"], "effects": [], "range": "<=17.3.2 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "inquirer": {"name": "inquirer", "severity": "low", "isDirect": false, "via": ["external-editor"], "effects": ["@wdio/cli"], "range": "3.0.0 - 8.2.6 || 9.0.0 - 9.3.7", "nodes": ["node_modules/inquirer"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "jake": {"name": "jake", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": [], "range": "0.3.2 - 10.9.2", "nodes": [""], "fixAvailable": true}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1113371, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern", "url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": "<10.2.1"}], "effects": ["@eslint/eslintrc", "@humanwhocodes/config-array", "@typescript-eslint/typescript-estree", "eslint", "eslint-plugin-n", "filelist", "glob", "globule", "grunt", "jake", "mocha", "multimatch", "readdir-glob", "recursive-readdir", "webdriverio"], "range": "<10.2.1", "nodes": ["", "", "", "", "", "", "node_modules/globule/node_modules/minimatch", "node_modules/grunt/node_modules/minimatch", "node_modules/minimatch", "node_modules/mocha/node_modules/minimatch"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.8.1", "isSemVerMajor": true}}, "mocha": {"name": "mocha", "severity": "high", "isDirect": false, "via": ["glob", "minimatch"], "effects": ["@wdio/mocha-framework"], "range": ">=1.10.0", "nodes": ["node_modules/mocha"], "fixAvailable": false}, "multimatch": {"name": "multimatch", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["doiuse"], "range": "<=7.0.0", "nodes": ["node_modules/multimatch"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["rimraf", "tar-fs", "ws"], "effects": ["devtools", "webdriverio"], "range": "<=22.11.1", "nodes": ["node_modules/puppeteer-core"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "qs": {"name": "qs", "severity": "high", "isDirect": false, "via": [{"source": 1113132, "name": "qs", "dependency": "qs", "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion", "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p", "severity": "high", "cwe": ["CWE-20"], "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": "<6.14.1"}], "effects": ["request"], "range": "<6.14.1", "nodes": [""], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "readdir-glob": {"name": "readdir-glob", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["archiver"], "range": "<=2.0.1", "nodes": ["node_modules/readdir-glob"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "recursive-readdir": {"name": "recursive-readdir", "severity": "high", "isDirect": false, "via": ["minimatch"], "effects": ["@wdio/cli"], "range": ">=1.2.0", "nodes": ["node_modules/recursive-readdir"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "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", "qs", "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "rimraf": {"name": "rimraf", "severity": "high", "isDirect": false, "via": ["glob"], "effects": ["flat-cache", "puppeteer-core"], "range": "2.3.0 - 3.0.2 || 4.2.0 - 5.0.10", "nodes": ["node_modules/rimraf"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "stylelint-config-wikimedia": {"name": "stylelint-config-wikimedia", "severity": "high", "isDirect": true, "via": ["stylelint-no-unsupported-browser-features"], "effects": [], "range": ">=0.10.2", "nodes": ["node_modules/stylelint-config-wikimedia"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "stylelint-no-unsupported-browser-features": {"name": "stylelint-no-unsupported-browser-features", "severity": "high", "isDirect": false, "via": ["doiuse"], "effects": ["stylelint-config-wikimedia"], "range": "*", "nodes": ["node_modules/stylelint-no-unsupported-browser-features"], "fixAvailable": {"name": "stylelint-config-wikimedia", "version": "0.10.1", "isSemVerMajor": true}}, "tar-fs": {"name": "tar-fs", "severity": "high", "isDirect": false, "via": [{"source": 1109532, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball", "url": "https://github.com/advisories/GHSA-vj76-c3g6-qr5v", "severity": "high", "cwe": ["CWE-22", "CWE-61"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.4"}, {"source": 1109543, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs can extract outside the specified dir with a specific tarball", "url": "https://github.com/advisories/GHSA-8cj5-5rvv-wf4v", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": ">=2.0.0 <2.1.3"}, {"source": 1109552, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=2.0.0 <2.1.2"}], "effects": ["puppeteer-core"], "range": "2.0.0 - 2.1.3", "nodes": ["node_modules/tar-fs"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "tmp": {"name": "tmp", "severity": "low", "isDirect": false, "via": [{"source": 1109537, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": ["CWE-59"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<=0.2.3"}], "effects": ["external-editor"], "range": "<=0.2.3", "nodes": ["node_modules/tmp"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": 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": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "<=5.1.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.3.2", "isSemVerMajor": true}}, "webdriver": {"name": "webdriver", "severity": "high", "isDirect": false, "via": ["@wdio/config"], "effects": ["@wdio/runner"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriver"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.24.0", "isSemVerMajor": true}}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": false, "via": ["@wdio/config", "archiver", "devtools", "minimatch", "puppeteer-core", "webdriver"], "effects": ["@wdio/cli", "@wdio/runner"], "range": ">=5.0.0-alpha.2", "nodes": ["node_modules/webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": ["CWE-476"], "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": ">=8.0.0 <8.17.1"}], "effects": ["puppeteer-core"], "range": "8.0.0 - 8.17.0", "nodes": ["node_modules/ws"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "yarn-install": {"name": "yarn-install", "severity": "high", "isDirect": false, "via": ["cross-spawn"], "effects": ["@wdio/cli"], "range": "*", "nodes": ["node_modules/yarn-install"], "fixAvailable": {"name": "@wdio/cli", "version": "9.24.0", "isSemVerMajor": true}}, "zip-stream": {"name": "zip-stream", "severity": "high", "isDirect": false, "via": ["archiver-utils"], "effects": [], "range": "0.8.0 - 6.0.1", "nodes": ["node_modules/zip-stream"], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 3, "moderate": 4, "high": 49, "critical": 2, "total": 58}, "dependencies": {"prod": 1, "dev": 802, "optional": 2, "peer": 1, "peerOptional": 0, "total": 802}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 801 packages, and audited 802 packages in 15s

146 packages are looking for funding
  run `npm fund` for details

# npm audit report

cross-spawn  <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
fix available via `npm audit fix --force`
Will install @wdio/cli@9.24.0, which is a breaking change
node_modules/yarn-install/node_modules/cross-spawn
  yarn-install  *
  Depends on vulnerable versions of cross-spawn
  node_modules/yarn-install
    @wdio/cli  *
    Depends on vulnerable versions of @wdio/config
    Depends on vulnerable versions of inquirer
    Depends on vulnerable versions of recursive-readdir
    Depends on vulnerable versions of webdriverio
    Depends on vulnerable versions of yarn-install
    node_modules/@wdio/cli
      @wdio/junit-reporter  7.0.1 - 8.0.0-alpha.631
      Depends on vulnerable versions of @wdio/cli
      node_modules/@wdio/junit-reporter
      @wdio/local-runner  6.3.0 - 9.8.0
      Depends on vulnerable versions of @wdio/cli
      Depends on vulnerable versions of @wdio/runner
      node_modules/@wdio/local-runner
      @wdio/spec-reporter  7.0.1 - 8.0.0-alpha.631
      Depends on vulnerable versions of @wdio/cli
      node_modules/@wdio/spec-reporter

form-data  <2.5.4
Severity: critical
form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/form-data
  request  *
  Depends on vulnerable versions of form-data
  Depends on vulnerable versions of qs
  Depends on vulnerable versions of tough-cookie
  node_modules/request
    mwbot  >=0.1.6
    Depends on vulnerable versions of request
    node_modules/mwbot
      wdio-mediawiki  <=5.1.0
      Depends on vulnerable versions of mwbot
      node_modules/wdio-mediawiki

minimatch  <10.2.1
Severity: high
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern - https://github.com/advisories/GHSA-3ppc-4f35-3m26
fix available via `npm audit fix --force`
Will install @wdio/cli@9.24.0, which is a breaking change
node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch
node_modules/globule/node_modules/minimatch
node_modules/grunt/node_modules/minimatch
node_modules/minimatch
node_modules/mocha/node_modules/minimatch
node_modules/readdir-glob/node_modules/minimatch
  @eslint/eslintrc  0.0.1 || >=0.1.1
  Depends on vulnerable versions of minimatch
  node_modules/@eslint/eslintrc
  node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc
    eslint  0.7.1 - 2.0.0-rc.1 || 4.1.0 - 10.0.0-rc.2
    Depends on vulnerable versions of @eslint/eslintrc
    Depends on vulnerable versions of @humanwhocodes/config-array
    Depends on vulnerable versions of file-entry-cache
    Depends on vulnerable versions of minimatch
    node_modules/eslint
      eslint-config-wikimedia  >=0.9.0
      Depends on vulnerable versions of eslint
      Depends on vulnerable versions of eslint-plugin-jest
      Depends on vulnerable versions of eslint-plugin-jsdoc
      Depends on vulnerable versions of eslint-plugin-unicorn
      Depends on vulnerable versions of eslint-plugin-vue
      node_modules/eslint-config-wikimedia
      eslint-plugin-jest  25.0.1 - 29.12.2
      Depends on vulnerable versions of eslint
      node_modules/eslint-plugin-jest
      eslint-plugin-jsdoc  8.4.4 - 62.6.1
      Depends on vulnerable versions of eslint
      node_modules/eslint-plugin-jsdoc
      eslint-plugin-vue  5.0.0-beta.0 - 10.7.0
      Depends on vulnerable versions of eslint
      node_modules/eslint-plugin-vue
      grunt-eslint  <=17.3.2 || >=18.1.0
      Depends on vulnerable versions of eslint
      Depends on vulnerable versions of grunt
      node_modules/grunt-eslint
    eslint-plugin-unicorn  50.0.0 - 54.0.0
    Depends on vulnerable versions of @eslint/eslintrc
    node_modules/eslint-plugin-unicorn
  @humanwhocodes/config-array  *
  Depends on vulnerable versions of minimatch
  node_modules/@humanwhocodes/config-array
  @typescript-eslint/typescript-estree  6.16.0 - 8.56.1-alpha.2
  Depends on vulnerable versions of minimatch
  node_modules/@typescript-eslint/typescript-estree
    @typescript-eslint/utils  6.16.0 - 8.56.1-alpha.2
    Depends on vulnerable versions of @typescript-eslint/typescript-estree
    node_modules/@typescript-eslint/utils
  glob  3.0.0 - 10.5.0
  Depends on vulnerable versions of minimatch
  node_modules/glob
  node_modules/globule/node_modules/glob
  node_modules/grunt/node_modules/glob
  node_modules/mocha/node_modules/glob
    @wdio/config  *
    Depends on vulnerable versions of glob
    node_modules/@wdio/config
      @wdio/runner  *
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of gaze
      Depends on vulnerable versions of webdriver
      Depends on vulnerable versions of webdriverio
      node_modules/@wdio/runner
      devtools  >=5.13.0-alpha.0
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of puppeteer-core
      node_modules/devtools
      webdriver  >=5.0.0-alpha.2
      Depends on vulnerable versions of @wdio/config
      node_modules/webdriver
      webdriverio  >=5.0.0-alpha.2
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of archiver
      Depends on vulnerable versions of devtools
      Depends on vulnerable versions of minimatch
      Depends on vulnerable versions of puppeteer-core
      Depends on vulnerable versions of webdriver
      node_modules/webdriverio
    archiver-utils  >=0.2.0
    Depends on vulnerable versions of glob
    node_modules/archiver-utils
    node_modules/zip-stream/node_modules/archiver-utils
      archiver  >=0.20.0
      Depends on vulnerable versions of archiver-utils
      Depends on vulnerable versions of readdir-glob
      Depends on vulnerable versions of zip-stream
      node_modules/archiver
      zip-stream  0.8.0 - 6.0.1
      Depends on vulnerable versions of archiver-utils
      node_modules/zip-stream
    mocha  >=1.10.0
    Depends on vulnerable versions of glob
    Depends on vulnerable versions of minimatch
    node_modules/mocha
      @wdio/mocha-framework  *
      Depends on vulnerable versions of mocha
      node_modules/@wdio/mocha-framework
    rimraf  2.3.0 - 3.0.2 || 4.2.0 - 5.0.10
    Depends on vulnerable versions of glob
    node_modules/rimraf
      flat-cache  1.3.4 - 4.0.0
      Depends on vulnerable versions of rimraf
      node_modules/flat-cache
        file-entry-cache  4.0.0 - 7.0.2
        Depends on vulnerable versions of flat-cache
        node_modules/file-entry-cache
      puppeteer-core  <=22.11.1
      Depends on vulnerable versions of rimraf
      Depends on vulnerable versions of tar-fs
      Depends on vulnerable versions of ws
      node_modules/puppeteer-core
  globule  *
  Depends on vulnerable versions of glob
  Depends on vulnerable versions of minimatch
  node_modules/globule
    gaze  >=0.4.0
    Depends on vulnerable versions of globule
    node_modules/gaze
  grunt  >=0.4.0-a
  Depends on vulnerable versions of glob
  Depends on vulnerable versions of minimatch
  node_modules/grunt
  multimatch  <=7.0.0
  Depends on vulnerable versions of minimatch
  node_modules/multimatch
    doiuse  >=2.2.0
    Depends on vulnerable versions of multimatch
    node_modules/doiuse
      stylelint-no-unsupported-browser-features  *
      Depends on vulnerable versions of doiuse
      node_modules/stylelint-no-unsupported-browser-features
        stylelint-config-wikimedia  >=0.10.2
        Depends on vulnerable versions of stylelint-no-unsupported-browser-features
        node_modules/stylelint-config-wikimedia
  readdir-glob  <=2.0.1
  Depends on vulnerable versions of minimatch
  node_modules/readdir-glob
  recursive-readdir  >=1.2.0
  Depends on vulnerable versions of minimatch
  node_modules/recursive-readdir

qs  <6.14.1
Severity: high
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion - https://github.com/advisories/GHSA-6rw7-vpxm-498p
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/qs


tar-fs  2.0.0 - 2.1.3
Severity: high
tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball - https://github.com/advisories/GHSA-vj76-c3g6-qr5v
tar-fs can extract outside the specified dir with a specific tarball - https://github.com/advisories/GHSA-8cj5-5rvv-wf4v
tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File - https://github.com/advisories/GHSA-pq67-2wwv-3xjx
fix available via `npm audit fix --force`
Will install @wdio/cli@9.24.0, which is a breaking change
node_modules/tar-fs

tmp  <=0.2.3
tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter - https://github.com/advisories/GHSA-52f5-9888-hmc6
fix available via `npm audit fix --force`
Will install @wdio/cli@9.24.0, which is a breaking change
node_modules/tmp
  external-editor  >=1.1.1
  Depends on vulnerable versions of tmp
  node_modules/external-editor
    inquirer  3.0.0 - 8.2.6 || 9.0.0 - 9.3.7
    Depends on vulnerable versions of external-editor
    node_modules/inquirer

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
fix available via `npm audit fix --force`
Will install wdio-mediawiki@6.3.2, which is a breaking change
node_modules/tough-cookie

ws  8.0.0 - 8.17.0
Severity: high
ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
fix available via `npm audit fix --force`
Will install @wdio/cli@9.24.0, which is a breaking change
node_modules/ws

53 vulnerabilities (3 low, 3 moderate, 45 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
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 @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 801 packages, and audited 802 packages in 14s

146 packages are looking for funding
  run `npm fund` for details

53 vulnerabilities (3 low, 3 moderate, 45 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stdout ---

> test
> grunt test

Running "eslint:all" (eslint) task
Warning: Cannot read properties of undefined (reading 'type')
Occurred while linting /src/repo/modules/visualeditor/ui/tools/mw.sanctions.ve.ui.AgreeTool.js:24
Rule: "mediawiki/no-unlabeled-buttonwidget" Use --force to continue.

Aborted due to warnings.

--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1268, in main
    libup.run()
    ~~~~~~~~~^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1208, in run
    self.npm_audit_fix(new_npm_audit)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 239, in npm_audit_fix
    self.npm_test()
    ~~~~~~~~~~~~~^^
  File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 289, in npm_test
    self.check_call(["npm", "test"])
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 66, 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', 'test']' returned non-zero exit status 3.
Source code is licensed under the AGPL.