mediawiki/extensions/WikibaseLexeme: REL1_45 (log #2434163)

sourcepatches

This run took 190 seconds.

$ date
--- stdout ---
Mon Apr 13 07:18:55 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-WikibaseLexeme.git /src/repo --depth=1 -b REL1_45
--- 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
--- stderr ---
Submodule 'resources/special/new-lexeme' (https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git) registered for path 'resources/special/new-lexeme'
Cloning into '/src/repo/resources/special/new-lexeme'...
--- stdout ---
Submodule path 'resources/special/new-lexeme': checked out 'f1e59473e0cab6d03f9f5da82a7ba9b2a2cfbb9e'

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

--- end ---
$ git show-ref refs/heads/REL1_45
--- stdout ---
03372ac6fad69babcbca5fd2ce44c2ef17871ef4 refs/heads/REL1_45

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@xmldom/xmldom": {
      "name": "@xmldom/xmldom",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115997,
          "name": "@xmldom/xmldom",
          "dependency": "@xmldom/xmldom",
          "title": "xmldom: XML injection via unsafe CDATA serialization allows attacker-controlled markup insertion",
          "url": "https://github.com/advisories/GHSA-wh4c-j3r5-mjhp",
          "severity": "high",
          "cwe": [
            "CWE-91"
          ],
          "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": "<0.8.12"
        }
      ],
      "effects": [
        "jasmine-reporters"
      ],
      "range": "<0.8.12",
      "nodes": [
        "node_modules/@xmldom/xmldom"
      ],
      "fixAvailable": true
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115540,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<1.1.13"
        },
        {
          "source": 1115541,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": ">=2.0.0 <2.0.3"
        }
      ],
      "effects": [],
      "range": "<1.1.13 || >=2.0.0 <2.0.3",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/jasmine/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/typescript-eslint/node_modules/brace-expansion"
      ],
      "fixAvailable": true
    },
    "cypress-parallel": {
      "name": "cypress-parallel",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "0.10.0 - 0.14.0",
      "nodes": [
        "node_modules/cypress-parallel"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "diff": {
      "name": "diff",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1112705,
          "name": "diff",
          "dependency": "diff",
          "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
          "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
          "severity": "low",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=5.0.0 <5.2.2"
        },
        {
          "source": 1112706,
          "name": "diff",
          "dependency": "diff",
          "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
          "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
          "severity": "low",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=6.0.0 <8.0.3"
        }
      ],
      "effects": [
        "sinon"
      ],
      "range": "5.0.0 - 5.2.1 || 6.0.0 - 8.0.2",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/diff",
        "node_modules/sinon/node_modules/diff"
      ],
      "fixAvailable": {
        "name": "sinon",
        "version": "21.1.2",
        "isSemVerMajor": true
      }
    },
    "flatted": {
      "name": "flatted",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1114526,
          "name": "flatted",
          "dependency": "flatted",
          "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase",
          "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f",
          "severity": "high",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.4.0"
        },
        {
          "source": 1115357,
          "name": "flatted",
          "dependency": "flatted",
          "title": "Prototype Pollution via parse() in NodeJS flatted",
          "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<=3.4.1"
        }
      ],
      "effects": [],
      "range": "<=3.4.1",
      "nodes": [
        "node_modules/flatted"
      ],
      "fixAvailable": 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/request/node_modules/form-data"
      ],
      "fixAvailable": false
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt-legacy-log",
        "grunt-legacy-util",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint",
        "grunt-jasmine-nodejs"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-jasmine-nodejs": {
      "name": "grunt-jasmine-nodejs",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/grunt-jasmine-nodejs"
      ],
      "fixAvailable": false
    },
    "grunt-legacy-log": {
      "name": "grunt-legacy-log",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.0.1",
      "nodes": [
        "node_modules/grunt-legacy-log"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-legacy-log-utils": {
      "name": "grunt-legacy-log-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [],
      "range": "1.0.0 - 2.1.0",
      "nodes": [
        "node_modules/grunt-legacy-log-utils"
      ],
      "fixAvailable": true
    },
    "grunt-legacy-util": {
      "name": "grunt-legacy-util",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.0.0-rc1",
      "nodes": [
        "node_modules/grunt-legacy-util"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "jasmine-reporters": {
      "name": "jasmine-reporters",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@xmldom/xmldom"
      ],
      "effects": [],
      "range": "2.5.0",
      "nodes": [
        "node_modules/jasmine-reporters"
      ],
      "fixAvailable": true
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1112715,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "js-yaml has prototype pollution in merge (<<)",
          "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=4.0.0 <4.1.1"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "4.0.0 - 4.1.0",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "lodash": {
      "name": "lodash",
      "severity": "high",
      "isDirect": true,
      "via": [
        {
          "source": 1115806,
          "name": "lodash",
          "dependency": "lodash",
          "title": "lodash vulnerable to Code Injection via `_.template` imports key names",
          "url": "https://github.com/advisories/GHSA-r5fr-rjxr-66jc",
          "severity": "high",
          "cwe": [
            "CWE-94"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=4.0.0 <=4.17.23"
        },
        {
          "source": 1115810,
          "name": "lodash",
          "dependency": "lodash",
          "title": "lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`",
          "url": "https://github.com/advisories/GHSA-f23m-r3pf-42rh",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L"
          },
          "range": "<=4.17.23"
        }
      ],
      "effects": [
        "grunt-legacy-log",
        "grunt-legacy-log-utils",
        "grunt-legacy-util"
      ],
      "range": "<=4.17.23",
      "nodes": [
        "node_modules/lodash"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113459,
          "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": "<3.1.3"
        },
        {
          "source": 1113460,
          "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": ">=4.0.0 <4.2.4"
        },
        {
          "source": 1113538,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113539,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "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": ">=4.0.0 <4.2.5"
        },
        {
          "source": 1113546,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "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": "<3.1.4"
        },
        {
          "source": 1113547,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "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": ">=4.0.0 <4.2.5"
        }
      ],
      "effects": [
        "grunt",
        "mocha"
      ],
      "range": "<=3.1.3 || 4.0.0 - 4.2.4",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/mocha/node_modules/minimatch",
        "node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "diff",
        "js-yaml",
        "minimatch",
        "nanoid",
        "serialize-javascript",
        "serialize-javascript"
      ],
      "effects": [
        "cypress-parallel"
      ],
      "range": "8.0.0 - 12.0.0-beta-2",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/mocha",
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "nanoid": {
      "name": "nanoid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1109563,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Predictable results in nanoid generation when given non-integer values",
          "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
          "severity": "moderate",
          "cwe": [
            "CWE-835"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.3.8"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.3.8",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/nanoid"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "path-to-regexp": {
      "name": "path-to-regexp",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115573,
          "name": "path-to-regexp",
          "dependency": "path-to-regexp",
          "title": "path-to-regexp vulnerable to Denial of Service via sequential optional groups",
          "url": "https://github.com/advisories/GHSA-j3q9-mxjg-w52f",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.4.0"
        },
        {
          "source": 1115582,
          "name": "path-to-regexp",
          "dependency": "path-to-regexp",
          "title": "path-to-regexp vulnerable to Regular Expression Denial of Service via multiple wildcards",
          "url": "https://github.com/advisories/GHSA-27v5-c462-wpq7",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.4.0"
        }
      ],
      "effects": [],
      "range": "8.0.0 - 8.3.0",
      "nodes": [
        "node_modules/path-to-regexp"
      ],
      "fixAvailable": true
    },
    "picomatch": {
      "name": "picomatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115549,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115552,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "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": "<2.3.2"
        }
      ],
      "effects": [],
      "range": "<=2.3.1",
      "nodes": [
        "node_modules/picomatch"
      ],
      "fixAvailable": true
    },
    "qs": {
      "name": "qs",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113719,
          "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": "moderate",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": true,
      "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": [],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113197,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Cross-site Scripting (XSS) in serialize-javascript",
          "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
          "severity": "moderate",
          "cwe": [
            "CWE-79"
          ],
          "cvss": {
            "score": 5.4,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": ">=6.0.0 <6.0.2"
        },
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        },
        {
          "source": 1115723,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
          "severity": "moderate",
          "cwe": [
            "CWE-400",
            "CWE-834"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<7.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.4",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/serialize-javascript",
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "sinon": {
      "name": "sinon",
      "severity": "low",
      "isDirect": true,
      "via": [
        "diff"
      ],
      "effects": [],
      "range": "19.0.0 - 21.0.0",
      "nodes": [
        "node_modules/sinon"
      ],
      "fixAvailable": {
        "name": "sinon",
        "version": "21.1.2",
        "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/request/node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "yaml": {
      "name": "yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115556,
          "name": "yaml",
          "dependency": "yaml",
          "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
          "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
          "severity": "moderate",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.0 <2.8.3"
        }
      ],
      "effects": [],
      "range": "2.0.0 - 2.8.2",
      "nodes": [
        "node_modules/yaml"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 2,
      "moderate": 7,
      "high": 15,
      "critical": 2,
      "total": 26
    },
    "dependencies": {
      "prod": 1,
      "dev": 845,
      "optional": 5,
      "peer": 18,
      "peerOptional": 0,
      "total": 845
    }
  }
}

--- 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: 44 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.4)
  - Locking composer/spdx-licenses (1.5.10)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking davidrjonas/composer-lock-diff (1.7.1)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
  - Locking doctrine/deprecations (1.1.6)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking giorgiosironi/eris (0.14.1)
  - Locking hamcrest/hamcrest-php (v2.1.1)
  - Locking mediawiki/mediawiki-codesniffer (v48.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.17.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (7.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.5.1)
  - 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.4.0)
  - Locking phpcsstandards/phpcsutils (1.1.1)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.7)
  - 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 serialization/serialization (4.1.0)
  - Locking squizlabs/php_codesniffer (3.13.2)
  - Locking symfony/console (v7.4.8)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.34.0)
  - Locking symfony/polyfill-intl-grapheme (v1.34.0)
  - Locking symfony/polyfill-intl-normalizer (v1.34.0)
  - Locking symfony/polyfill-mbstring (v1.34.0)
  - Locking symfony/polyfill-php80 (v1.34.0)
  - Locking symfony/service-contracts (v3.6.1)
  - Locking symfony/string (v8.0.8)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (2.3.0)
  - Locking wikimedia/assert (v0.5.1)
  - Locking wmde/php-vuejs-templating (2.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 44 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.13.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing davidrjonas/composer-lock-diff (1.7.1): Extracting archive
  - Installing giorgiosironi/eris (0.14.1): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.1.1): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.1.1): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.34.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.10): Extracting archive
  - Installing composer/semver (3.4.4): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-php80 (v1.34.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.34.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.34.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.34.0): Extracting archive
  - Installing symfony/string (v8.0.8): 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.8): 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.3.0): 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.7): 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.5.1): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.17.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
  - Installing serialization/serialization (4.1.0): Extracting archive
  - Installing wikimedia/assert (v0.5.1): Extracting archive
  - Installing wmde/php-vuejs-templating (2.1.0): Extracting archive
  0/42 [>---------------------------]   0%
 30/42 [====================>-------]  71%
 41/42 [===========================>]  97%
 42/42 [============================] 100%
4 package suggestions were added by new dependencies, use `composer suggest` to see details.
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": {
    "@xmldom/xmldom": {
      "name": "@xmldom/xmldom",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115997,
          "name": "@xmldom/xmldom",
          "dependency": "@xmldom/xmldom",
          "title": "xmldom: XML injection via unsafe CDATA serialization allows attacker-controlled markup insertion",
          "url": "https://github.com/advisories/GHSA-wh4c-j3r5-mjhp",
          "severity": "high",
          "cwe": [
            "CWE-91"
          ],
          "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": "<0.8.12"
        }
      ],
      "effects": [
        "jasmine-reporters"
      ],
      "range": "<0.8.12",
      "nodes": [
        "node_modules/@xmldom/xmldom"
      ],
      "fixAvailable": true
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115540,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<1.1.13"
        },
        {
          "source": 1115541,
          "name": "brace-expansion",
          "dependency": "brace-expansion",
          "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
          "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": ">=2.0.0 <2.0.3"
        }
      ],
      "effects": [],
      "range": "<1.1.13 || >=2.0.0 <2.0.3",
      "nodes": [
        "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
        "node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/jasmine/node_modules/brace-expansion",
        "node_modules/mocha/node_modules/brace-expansion",
        "node_modules/typescript-eslint/node_modules/brace-expansion"
      ],
      "fixAvailable": true
    },
    "cypress-parallel": {
      "name": "cypress-parallel",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": "0.10.0 - 0.14.0",
      "nodes": [
        "node_modules/cypress-parallel"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "diff": {
      "name": "diff",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1112705,
          "name": "diff",
          "dependency": "diff",
          "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
          "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
          "severity": "low",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=5.0.0 <5.2.2"
        },
        {
          "source": 1112706,
          "name": "diff",
          "dependency": "diff",
          "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
          "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
          "severity": "low",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": ">=6.0.0 <8.0.3"
        }
      ],
      "effects": [
        "sinon"
      ],
      "range": "5.0.0 - 5.2.1 || 6.0.0 - 8.0.2",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/diff",
        "node_modules/sinon/node_modules/diff"
      ],
      "fixAvailable": {
        "name": "sinon",
        "version": "21.1.2",
        "isSemVerMajor": true
      }
    },
    "flatted": {
      "name": "flatted",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1114526,
          "name": "flatted",
          "dependency": "flatted",
          "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase",
          "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f",
          "severity": "high",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.4.0"
        },
        {
          "source": 1115357,
          "name": "flatted",
          "dependency": "flatted",
          "title": "Prototype Pollution via parse() in NodeJS flatted",
          "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<=3.4.1"
        }
      ],
      "effects": [],
      "range": "<=3.4.1",
      "nodes": [
        "node_modules/flatted"
      ],
      "fixAvailable": 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/request/node_modules/form-data"
      ],
      "fixAvailable": false
    },
    "grunt": {
      "name": "grunt",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt-legacy-log",
        "grunt-legacy-util",
        "minimatch"
      ],
      "effects": [
        "grunt-eslint",
        "grunt-jasmine-nodejs"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-jasmine-nodejs": {
      "name": "grunt-jasmine-nodejs",
      "severity": "high",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/grunt-jasmine-nodejs"
      ],
      "fixAvailable": false
    },
    "grunt-legacy-log": {
      "name": "grunt-legacy-log",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.0.1",
      "nodes": [
        "node_modules/grunt-legacy-log"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "grunt-legacy-log-utils": {
      "name": "grunt-legacy-log-utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [],
      "range": "1.0.0 - 2.1.0",
      "nodes": [
        "node_modules/grunt-legacy-log-utils"
      ],
      "fixAvailable": true
    },
    "grunt-legacy-util": {
      "name": "grunt-legacy-util",
      "severity": "high",
      "isDirect": false,
      "via": [
        "lodash"
      ],
      "effects": [
        "grunt"
      ],
      "range": ">=1.0.0-rc1",
      "nodes": [
        "node_modules/grunt-legacy-util"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "jasmine-reporters": {
      "name": "jasmine-reporters",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@xmldom/xmldom"
      ],
      "effects": [],
      "range": "2.5.0",
      "nodes": [
        "node_modules/jasmine-reporters"
      ],
      "fixAvailable": true
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1112715,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "js-yaml has prototype pollution in merge (<<)",
          "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=4.0.0 <4.1.1"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "4.0.0 - 4.1.0",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "lodash": {
      "name": "lodash",
      "severity": "high",
      "isDirect": true,
      "via": [
        {
          "source": 1115806,
          "name": "lodash",
          "dependency": "lodash",
          "title": "lodash vulnerable to Code Injection via `_.template` imports key names",
          "url": "https://github.com/advisories/GHSA-r5fr-rjxr-66jc",
          "severity": "high",
          "cwe": [
            "CWE-94"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=4.0.0 <=4.17.23"
        },
        {
          "source": 1115810,
          "name": "lodash",
          "dependency": "lodash",
          "title": "lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`",
          "url": "https://github.com/advisories/GHSA-f23m-r3pf-42rh",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L"
          },
          "range": "<=4.17.23"
        }
      ],
      "effects": [
        "grunt-legacy-log",
        "grunt-legacy-log-utils",
        "grunt-legacy-util"
      ],
      "range": "<=4.17.23",
      "nodes": [
        "node_modules/lodash"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113459,
          "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": "<3.1.3"
        },
        {
          "source": 1113460,
          "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": ">=4.0.0 <4.2.4"
        },
        {
          "source": 1113538,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<3.1.3"
        },
        {
          "source": 1113539,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
          "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
          "severity": "high",
          "cwe": [
            "CWE-407"
          ],
          "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": ">=4.0.0 <4.2.5"
        },
        {
          "source": 1113546,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "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": "<3.1.4"
        },
        {
          "source": 1113547,
          "name": "minimatch",
          "dependency": "minimatch",
          "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
          "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
          "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": ">=4.0.0 <4.2.5"
        }
      ],
      "effects": [
        "grunt",
        "mocha"
      ],
      "range": "<=3.1.3 || 4.0.0 - 4.2.4",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/mocha/node_modules/minimatch",
        "node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "high",
      "isDirect": false,
      "via": [
        "diff",
        "js-yaml",
        "minimatch",
        "nanoid",
        "serialize-javascript",
        "serialize-javascript"
      ],
      "effects": [
        "cypress-parallel"
      ],
      "range": "8.0.0 - 12.0.0-beta-2",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/mocha",
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "nanoid": {
      "name": "nanoid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1109563,
          "name": "nanoid",
          "dependency": "nanoid",
          "title": "Predictable results in nanoid generation when given non-integer values",
          "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
          "severity": "moderate",
          "cwe": [
            "CWE-835"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<3.3.8"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<3.3.8",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/nanoid"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "path-to-regexp": {
      "name": "path-to-regexp",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115573,
          "name": "path-to-regexp",
          "dependency": "path-to-regexp",
          "title": "path-to-regexp vulnerable to Denial of Service via sequential optional groups",
          "url": "https://github.com/advisories/GHSA-j3q9-mxjg-w52f",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.4.0"
        },
        {
          "source": 1115582,
          "name": "path-to-regexp",
          "dependency": "path-to-regexp",
          "title": "path-to-regexp vulnerable to Regular Expression Denial of Service via multiple wildcards",
          "url": "https://github.com/advisories/GHSA-27v5-c462-wpq7",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.4.0"
        }
      ],
      "effects": [],
      "range": "8.0.0 - 8.3.0",
      "nodes": [
        "node_modules/path-to-regexp"
      ],
      "fixAvailable": true
    },
    "picomatch": {
      "name": "picomatch",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1115549,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
          "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<2.3.2"
        },
        {
          "source": 1115552,
          "name": "picomatch",
          "dependency": "picomatch",
          "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
          "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
          "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": "<2.3.2"
        }
      ],
      "effects": [],
      "range": "<=2.3.1",
      "nodes": [
        "node_modules/picomatch"
      ],
      "fixAvailable": true
    },
    "qs": {
      "name": "qs",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113719,
          "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": "moderate",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": true,
      "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": [],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113197,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Cross-site Scripting (XSS) in serialize-javascript",
          "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
          "severity": "moderate",
          "cwe": [
            "CWE-79"
          ],
          "cvss": {
            "score": 5.4,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": ">=6.0.0 <6.0.2"
        },
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        },
        {
          "source": 1115723,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
          "severity": "moderate",
          "cwe": [
            "CWE-400",
            "CWE-834"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<7.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.4",
      "nodes": [
        "node_modules/cypress-parallel/node_modules/serialize-javascript",
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "cypress-parallel",
        "version": "0.15.0",
        "isSemVerMajor": true
      }
    },
    "sinon": {
      "name": "sinon",
      "severity": "low",
      "isDirect": true,
      "via": [
        "diff"
      ],
      "effects": [],
      "range": "19.0.0 - 21.0.0",
      "nodes": [
        "node_modules/sinon"
      ],
      "fixAvailable": {
        "name": "sinon",
        "version": "21.1.2",
        "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/request/node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "yaml": {
      "name": "yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1115556,
          "name": "yaml",
          "dependency": "yaml",
          "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
          "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
          "severity": "moderate",
          "cwe": [
            "CWE-674"
          ],
          "cvss": {
            "score": 4.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": ">=2.0.0 <2.8.3"
        }
      ],
      "effects": [],
      "range": "2.0.0 - 2.8.2",
      "nodes": [
        "node_modules/yaml"
      ],
      "fixAvailable": true
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 2,
      "moderate": 7,
      "high": 15,
      "critical": 2,
      "total": 26
    },
    "dependencies": {
      "prod": 1,
      "dev": 845,
      "optional": 5,
      "peer": 18,
      "peerOptional": 0,
      "total": 845
    }
  }
}

--- 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": 845,
  "removed": 0,
  "changed": 0,
  "audited": 846,
  "funding": 190,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@xmldom/xmldom": {
        "name": "@xmldom/xmldom",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1115997,
            "name": "@xmldom/xmldom",
            "dependency": "@xmldom/xmldom",
            "title": "xmldom: XML injection via unsafe CDATA serialization allows attacker-controlled markup insertion",
            "url": "https://github.com/advisories/GHSA-wh4c-j3r5-mjhp",
            "severity": "high",
            "cwe": [
              "CWE-91"
            ],
            "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": "<0.8.12"
          }
        ],
        "effects": [
          "jasmine-reporters"
        ],
        "range": "<0.8.12",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "brace-expansion": {
        "name": "brace-expansion",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1115540,
            "name": "brace-expansion",
            "dependency": "brace-expansion",
            "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
            "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
            },
            "range": "<1.1.13"
          },
          {
            "source": 1115541,
            "name": "brace-expansion",
            "dependency": "brace-expansion",
            "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
            "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
            },
            "range": ">=2.0.0 <2.0.3"
          }
        ],
        "effects": [],
        "range": "<1.1.13 || >=2.0.0 <2.0.3",
        "nodes": [
          "",
          "",
          "",
          "",
          "",
          ""
        ],
        "fixAvailable": true
      },
      "cypress-parallel": {
        "name": "cypress-parallel",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mocha"
        ],
        "effects": [],
        "range": "0.10.0 - 0.14.0",
        "nodes": [
          "node_modules/cypress-parallel"
        ],
        "fixAvailable": {
          "name": "cypress-parallel",
          "version": "0.15.0",
          "isSemVerMajor": true
        }
      },
      "diff": {
        "name": "diff",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1112705,
            "name": "diff",
            "dependency": "diff",
            "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
            "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
            "severity": "low",
            "cwe": [
              "CWE-400",
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=5.0.0 <5.2.2"
          },
          {
            "source": 1112706,
            "name": "diff",
            "dependency": "diff",
            "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
            "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx",
            "severity": "low",
            "cwe": [
              "CWE-400",
              "CWE-1333"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": ">=6.0.0 <8.0.3"
          }
        ],
        "effects": [
          "sinon"
        ],
        "range": "5.0.0 - 5.2.1 || 6.0.0 - 8.0.2",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/diff",
          "node_modules/sinon/node_modules/diff"
        ],
        "fixAvailable": {
          "name": "sinon",
          "version": "21.1.2",
          "isSemVerMajor": true
        }
      },
      "flatted": {
        "name": "flatted",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1114526,
            "name": "flatted",
            "dependency": "flatted",
            "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase",
            "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f",
            "severity": "high",
            "cwe": [
              "CWE-674"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.4.0"
          },
          {
            "source": 1115357,
            "name": "flatted",
            "dependency": "flatted",
            "title": "Prototype Pollution via parse() in NodeJS flatted",
            "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh",
            "severity": "high",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<=3.4.1"
          }
        ],
        "effects": [],
        "range": "<=3.4.1",
        "nodes": [
          ""
        ],
        "fixAvailable": 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/request/node_modules/form-data"
        ],
        "fixAvailable": false
      },
      "grunt": {
        "name": "grunt",
        "severity": "high",
        "isDirect": true,
        "via": [
          "grunt-legacy-log",
          "grunt-legacy-util",
          "minimatch"
        ],
        "effects": [
          "grunt-eslint",
          "grunt-jasmine-nodejs"
        ],
        "range": ">=0.4.0-a",
        "nodes": [
          "node_modules/grunt"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "grunt-eslint": {
        "name": "grunt-eslint",
        "severity": "high",
        "isDirect": true,
        "via": [
          "grunt"
        ],
        "effects": [],
        "range": "<=1.0.0 || >=18.1.0",
        "nodes": [
          "node_modules/grunt-eslint"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "grunt-jasmine-nodejs": {
        "name": "grunt-jasmine-nodejs",
        "severity": "high",
        "isDirect": true,
        "via": [
          "grunt"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/grunt-jasmine-nodejs"
        ],
        "fixAvailable": false
      },
      "grunt-legacy-log": {
        "name": "grunt-legacy-log",
        "severity": "high",
        "isDirect": false,
        "via": [
          "lodash"
        ],
        "effects": [
          "grunt"
        ],
        "range": ">=1.0.1",
        "nodes": [
          "node_modules/grunt-legacy-log"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "grunt-legacy-log-utils": {
        "name": "grunt-legacy-log-utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "lodash"
        ],
        "effects": [],
        "range": "1.0.0 - 2.1.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "grunt-legacy-util": {
        "name": "grunt-legacy-util",
        "severity": "high",
        "isDirect": false,
        "via": [
          "lodash"
        ],
        "effects": [
          "grunt"
        ],
        "range": ">=1.0.0-rc1",
        "nodes": [
          "node_modules/grunt-legacy-util"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "jasmine-reporters": {
        "name": "jasmine-reporters",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@xmldom/xmldom"
        ],
        "effects": [],
        "range": "2.5.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "js-yaml": {
        "name": "js-yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1112715,
            "name": "js-yaml",
            "dependency": "js-yaml",
            "title": "js-yaml has prototype pollution in merge (<<)",
            "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": ">=4.0.0 <4.1.1"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "4.0.0 - 4.1.0",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/js-yaml"
        ],
        "fixAvailable": {
          "name": "cypress-parallel",
          "version": "0.15.0",
          "isSemVerMajor": true
        }
      },
      "lodash": {
        "name": "lodash",
        "severity": "high",
        "isDirect": true,
        "via": [
          {
            "source": 1115806,
            "name": "lodash",
            "dependency": "lodash",
            "title": "lodash vulnerable to Code Injection via `_.template` imports key names",
            "url": "https://github.com/advisories/GHSA-r5fr-rjxr-66jc",
            "severity": "high",
            "cwe": [
              "CWE-94"
            ],
            "cvss": {
              "score": 8.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": ">=4.0.0 <=4.17.23"
          },
          {
            "source": 1115810,
            "name": "lodash",
            "dependency": "lodash",
            "title": "lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`",
            "url": "https://github.com/advisories/GHSA-f23m-r3pf-42rh",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L"
            },
            "range": "<=4.17.23"
          }
        ],
        "effects": [
          "grunt-legacy-log",
          "grunt-legacy-log-utils",
          "grunt-legacy-util"
        ],
        "range": "<=4.17.23",
        "nodes": [
          "node_modules/lodash"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113459,
            "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": "<3.1.3"
          },
          {
            "source": 1113460,
            "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": ">=4.0.0 <4.2.4"
          },
          {
            "source": 1113538,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
            "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
            "severity": "high",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<3.1.3"
          },
          {
            "source": 1113539,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
            "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
            "severity": "high",
            "cwe": [
              "CWE-407"
            ],
            "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": ">=4.0.0 <4.2.5"
          },
          {
            "source": 1113546,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
            "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
            "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": "<3.1.4"
          },
          {
            "source": 1113547,
            "name": "minimatch",
            "dependency": "minimatch",
            "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
            "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
            "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": ">=4.0.0 <4.2.5"
          }
        ],
        "effects": [
          "grunt",
          "mocha"
        ],
        "range": "<=3.1.3 || 4.0.0 - 4.2.4",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/mocha/node_modules/minimatch",
          "node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "mocha": {
        "name": "mocha",
        "severity": "high",
        "isDirect": false,
        "via": [
          "diff",
          "js-yaml",
          "minimatch",
          "nanoid",
          "serialize-javascript",
          "serialize-javascript"
        ],
        "effects": [
          "cypress-parallel"
        ],
        "range": "8.0.0 - 12.0.0-beta-2",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/mocha",
          "node_modules/mocha"
        ],
        "fixAvailable": {
          "name": "cypress-parallel",
          "version": "0.15.0",
          "isSemVerMajor": true
        }
      },
      "nanoid": {
        "name": "nanoid",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1109563,
            "name": "nanoid",
            "dependency": "nanoid",
            "title": "Predictable results in nanoid generation when given non-integer values",
            "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55",
            "severity": "moderate",
            "cwe": [
              "CWE-835"
            ],
            "cvss": {
              "score": 4.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<3.3.8"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "<3.3.8",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/nanoid"
        ],
        "fixAvailable": {
          "name": "cypress-parallel",
          "version": "0.15.0",
          "isSemVerMajor": true
        }
      },
      "path-to-regexp": {
        "name": "path-to-regexp",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1115573,
            "name": "path-to-regexp",
            "dependency": "path-to-regexp",
            "title": "path-to-regexp vulnerable to Denial of Service via sequential optional groups",
            "url": "https://github.com/advisories/GHSA-j3q9-mxjg-w52f",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.4.0"
          },
          {
            "source": 1115582,
            "name": "path-to-regexp",
            "dependency": "path-to-regexp",
            "title": "path-to-regexp vulnerable to Regular Expression Denial of Service via multiple wildcards",
            "url": "https://github.com/advisories/GHSA-27v5-c462-wpq7",
            "severity": "moderate",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.4.0"
          }
        ],
        "effects": [],
        "range": "8.0.0 - 8.3.0",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "picomatch": {
        "name": "picomatch",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1115549,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
            "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<2.3.2"
          },
          {
            "source": 1115552,
            "name": "picomatch",
            "dependency": "picomatch",
            "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers",
            "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj",
            "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": "<2.3.2"
          }
        ],
        "effects": [],
        "range": "<=2.3.1",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      },
      "qs": {
        "name": "qs",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1113719,
            "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": "moderate",
            "cwe": [
              "CWE-20"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<6.14.1"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<6.14.1",
        "nodes": [
          "node_modules/qs"
        ],
        "fixAvailable": false
      },
      "request": {
        "name": "request",
        "severity": "critical",
        "isDirect": true,
        "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": [],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "serialize-javascript": {
        "name": "serialize-javascript",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113197,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Cross-site Scripting (XSS) in serialize-javascript",
            "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5",
            "severity": "moderate",
            "cwe": [
              "CWE-79"
            ],
            "cvss": {
              "score": 5.4,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": ">=6.0.0 <6.0.2"
          },
          {
            "source": 1113686,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
            "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
            "severity": "high",
            "cwe": [
              "CWE-96"
            ],
            "cvss": {
              "score": 8.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": "<=7.0.2"
          },
          {
            "source": 1115723,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
            "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
            "severity": "moderate",
            "cwe": [
              "CWE-400",
              "CWE-834"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<7.0.5"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "<=7.0.4",
        "nodes": [
          "node_modules/cypress-parallel/node_modules/serialize-javascript",
          "node_modules/serialize-javascript"
        ],
        "fixAvailable": {
          "name": "cypress-parallel",
          "version": "0.15.0",
          "isSemVerMajor": true
        }
      },
      "sinon": {
        "name": "sinon",
        "severity": "low",
        "isDirect": true,
        "via": [
          "diff"
        ],
        "effects": [],
        "range": "19.0.0 - 21.0.0",
        "nodes": [
          "node_modules/sinon"
        ],
        "fixAvailable": {
          "name": "sinon",
          "version": "21.1.2",
          "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/request/node_modules/tough-cookie"
        ],
        "fixAvailable": false
      },
      "yaml": {
        "name": "yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1115556,
            "name": "yaml",
            "dependency": "yaml",
            "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
            "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp",
            "severity": "moderate",
            "cwe": [
              "CWE-674"
            ],
            "cvss": {
              "score": 4.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": ">=2.0.0 <2.8.3"
          }
        ],
        "effects": [],
        "range": "2.0.0 - 2.8.2",
        "nodes": [
          ""
        ],
        "fixAvailable": true
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 2,
        "moderate": 7,
        "high": 15,
        "critical": 2,
        "total": 26
      },
      "dependencies": {
        "prod": 1,
        "dev": 845,
        "optional": 5,
        "peer": 18,
        "peerOptional": 0,
        "total": 845
      }
    }
  }
}

--- end ---
{"added": 845, "removed": 0, "changed": 0, "audited": 846, "funding": 190, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@xmldom/xmldom": {"name": "@xmldom/xmldom", "severity": "high", "isDirect": false, "via": [{"source": 1115997, "name": "@xmldom/xmldom", "dependency": "@xmldom/xmldom", "title": "xmldom: XML injection via unsafe CDATA serialization allows attacker-controlled markup insertion", "url": "https://github.com/advisories/GHSA-wh4c-j3r5-mjhp", "severity": "high", "cwe": ["CWE-91"], "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": "<0.8.12"}], "effects": ["jasmine-reporters"], "range": "<0.8.12", "nodes": [""], "fixAvailable": true}, "brace-expansion": {"name": "brace-expansion", "severity": "moderate", "isDirect": false, "via": [{"source": 1115540, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": "<1.1.13"}, {"source": 1115541, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion: Zero-step sequence causes process hang and memory exhaustion", "url": "https://github.com/advisories/GHSA-f886-m6hf-6m8v", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": ">=2.0.0 <2.0.3"}], "effects": [], "range": "<1.1.13 || >=2.0.0 <2.0.3", "nodes": ["", "", "", "", "", ""], "fixAvailable": true}, "cypress-parallel": {"name": "cypress-parallel", "severity": "moderate", "isDirect": true, "via": ["mocha"], "effects": [], "range": "0.10.0 - 0.14.0", "nodes": ["node_modules/cypress-parallel"], "fixAvailable": {"name": "cypress-parallel", "version": "0.15.0", "isSemVerMajor": true}}, "diff": {"name": "diff", "severity": "low", "isDirect": false, "via": [{"source": 1112705, "name": "diff", "dependency": "diff", "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch", "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx", "severity": "low", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": ">=5.0.0 <5.2.2"}, {"source": 1112706, "name": "diff", "dependency": "diff", "title": "jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch", "url": "https://github.com/advisories/GHSA-73rr-hh4g-fpgx", "severity": "low", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 0, "vectorString": null}, "range": ">=6.0.0 <8.0.3"}], "effects": ["sinon"], "range": "5.0.0 - 5.2.1 || 6.0.0 - 8.0.2", "nodes": ["node_modules/cypress-parallel/node_modules/diff", "node_modules/sinon/node_modules/diff"], "fixAvailable": {"name": "sinon", "version": "21.1.2", "isSemVerMajor": true}}, "flatted": {"name": "flatted", "severity": "high", "isDirect": false, "via": [{"source": 1114526, "name": "flatted", "dependency": "flatted", "title": "flatted vulnerable to unbounded recursion DoS in parse() revive phase", "url": "https://github.com/advisories/GHSA-25h7-pfq9-p65f", "severity": "high", "cwe": ["CWE-674"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.4.0"}, {"source": 1115357, "name": "flatted", "dependency": "flatted", "title": "Prototype Pollution via parse() in NodeJS flatted", "url": "https://github.com/advisories/GHSA-rf6f-7fwh-wjgh", "severity": "high", "cwe": ["CWE-1321"], "cvss": {"score": 0, "vectorString": null}, "range": "<=3.4.1"}], "effects": [], "range": "<=3.4.1", "nodes": [""], "fixAvailable": 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/request/node_modules/form-data"], "fixAvailable": false}, "grunt": {"name": "grunt", "severity": "high", "isDirect": true, "via": ["grunt-legacy-log", "grunt-legacy-util", "minimatch"], "effects": ["grunt-eslint", "grunt-jasmine-nodejs"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "high", "isDirect": true, "via": ["grunt"], "effects": [], "range": "<=1.0.0 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "grunt-jasmine-nodejs": {"name": "grunt-jasmine-nodejs", "severity": "high", "isDirect": true, "via": ["grunt"], "effects": [], "range": "*", "nodes": ["node_modules/grunt-jasmine-nodejs"], "fixAvailable": false}, "grunt-legacy-log": {"name": "grunt-legacy-log", "severity": "high", "isDirect": false, "via": ["lodash"], "effects": ["grunt"], "range": ">=1.0.1", "nodes": ["node_modules/grunt-legacy-log"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "grunt-legacy-log-utils": {"name": "grunt-legacy-log-utils", "severity": "high", "isDirect": false, "via": ["lodash"], "effects": [], "range": "1.0.0 - 2.1.0", "nodes": [""], "fixAvailable": true}, "grunt-legacy-util": {"name": "grunt-legacy-util", "severity": "high", "isDirect": false, "via": ["lodash"], "effects": ["grunt"], "range": ">=1.0.0-rc1", "nodes": ["node_modules/grunt-legacy-util"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "jasmine-reporters": {"name": "jasmine-reporters", "severity": "high", "isDirect": false, "via": ["@xmldom/xmldom"], "effects": [], "range": "2.5.0", "nodes": [""], "fixAvailable": true}, "js-yaml": {"name": "js-yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1112715, "name": "js-yaml", "dependency": "js-yaml", "title": "js-yaml has prototype pollution in merge (<<)", "url": "https://github.com/advisories/GHSA-mh29-5h37-fv8m", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=4.0.0 <4.1.1"}], "effects": ["mocha"], "range": "4.0.0 - 4.1.0", "nodes": ["node_modules/cypress-parallel/node_modules/js-yaml"], "fixAvailable": {"name": "cypress-parallel", "version": "0.15.0", "isSemVerMajor": true}}, "lodash": {"name": "lodash", "severity": "high", "isDirect": true, "via": [{"source": 1115806, "name": "lodash", "dependency": "lodash", "title": "lodash vulnerable to Code Injection via `_.template` imports key names", "url": "https://github.com/advisories/GHSA-r5fr-rjxr-66jc", "severity": "high", "cwe": ["CWE-94"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=4.0.0 <=4.17.23"}, {"source": 1115810, "name": "lodash", "dependency": "lodash", "title": "lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`", "url": "https://github.com/advisories/GHSA-f23m-r3pf-42rh", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L"}, "range": "<=4.17.23"}], "effects": ["grunt-legacy-log", "grunt-legacy-log-utils", "grunt-legacy-util"], "range": "<=4.17.23", "nodes": ["node_modules/lodash"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "minimatch": {"name": "minimatch", "severity": "high", "isDirect": false, "via": [{"source": 1113459, "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": "<3.1.3"}, {"source": 1113460, "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": ">=4.0.0 <4.2.4"}, {"source": 1113538, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", "severity": "high", "cwe": ["CWE-407"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<3.1.3"}, {"source": 1113539, "name": "minimatch", "dependency": "minimatch", "title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments", "url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj", "severity": "high", "cwe": ["CWE-407"], "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": ">=4.0.0 <4.2.5"}, {"source": 1113546, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", "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": "<3.1.4"}, {"source": 1113547, "name": "minimatch", "dependency": "minimatch", "title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions", "url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74", "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": ">=4.0.0 <4.2.5"}], "effects": ["grunt", "mocha"], "range": "<=3.1.3 || 4.0.0 - 4.2.4", "nodes": ["node_modules/cypress-parallel/node_modules/mocha/node_modules/minimatch", "node_modules/minimatch"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "mocha": {"name": "mocha", "severity": "high", "isDirect": false, "via": ["diff", "js-yaml", "minimatch", "nanoid", "serialize-javascript", "serialize-javascript"], "effects": ["cypress-parallel"], "range": "8.0.0 - 12.0.0-beta-2", "nodes": ["node_modules/cypress-parallel/node_modules/mocha", "node_modules/mocha"], "fixAvailable": {"name": "cypress-parallel", "version": "0.15.0", "isSemVerMajor": true}}, "nanoid": {"name": "nanoid", "severity": "moderate", "isDirect": false, "via": [{"source": 1109563, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": ["CWE-835"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<3.3.8"}], "effects": ["mocha"], "range": "<3.3.8", "nodes": ["node_modules/cypress-parallel/node_modules/nanoid"], "fixAvailable": {"name": "cypress-parallel", "version": "0.15.0", "isSemVerMajor": true}}, "path-to-regexp": {"name": "path-to-regexp", "severity": "high", "isDirect": false, "via": [{"source": 1115573, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp vulnerable to Denial of Service via sequential optional groups", "url": "https://github.com/advisories/GHSA-j3q9-mxjg-w52f", "severity": "high", "cwe": ["CWE-400", "CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.4.0"}, {"source": 1115582, "name": "path-to-regexp", "dependency": "path-to-regexp", "title": "path-to-regexp vulnerable to Regular Expression Denial of Service via multiple wildcards", "url": "https://github.com/advisories/GHSA-27v5-c462-wpq7", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.4.0"}], "effects": [], "range": "8.0.0 - 8.3.0", "nodes": [""], "fixAvailable": true}, "picomatch": {"name": "picomatch", "severity": "high", "isDirect": false, "via": [{"source": 1115549, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching", "url": "https://github.com/advisories/GHSA-3v7f-55p6-f55p", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<2.3.2"}, {"source": 1115552, "name": "picomatch", "dependency": "picomatch", "title": "Picomatch has a ReDoS vulnerability via extglob quantifiers", "url": "https://github.com/advisories/GHSA-c2c7-rcm5-vvqj", "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": "<2.3.2"}], "effects": [], "range": "<=2.3.1", "nodes": [""], "fixAvailable": true}, "qs": {"name": "qs", "severity": "moderate", "isDirect": false, "via": [{"source": 1113719, "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": "moderate", "cwe": ["CWE-20"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<6.14.1"}], "effects": ["request"], "range": "<6.14.1", "nodes": ["node_modules/qs"], "fixAvailable": false}, "request": {"name": "request", "severity": "critical", "isDirect": true, "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": [], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "serialize-javascript": {"name": "serialize-javascript", "severity": "high", "isDirect": false, "via": [{"source": 1113197, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Cross-site Scripting (XSS) in serialize-javascript", "url": "https://github.com/advisories/GHSA-76p7-773f-r4q5", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 5.4, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"}, "range": ">=6.0.0 <6.0.2"}, {"source": 1113686, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()", "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq", "severity": "high", "cwe": ["CWE-96"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=7.0.2"}, {"source": 1115723, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects", "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v", "severity": "moderate", "cwe": ["CWE-400", "CWE-834"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<7.0.5"}], "effects": ["mocha"], "range": "<=7.0.4", "nodes": ["node_modules/cypress-parallel/node_modules/serialize-javascript", "node_modules/serialize-javascript"], "fixAvailable": {"name": "cypress-parallel", "version": "0.15.0", "isSemVerMajor": true}}, "sinon": {"name": "sinon", "severity": "low", "isDirect": true, "via": ["diff"], "effects": [], "range": "19.0.0 - 21.0.0", "nodes": ["node_modules/sinon"], "fixAvailable": {"name": "sinon", "version": "21.1.2", "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/request/node_modules/tough-cookie"], "fixAvailable": false}, "yaml": {"name": "yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1115556, "name": "yaml", "dependency": "yaml", "title": "yaml is vulnerable to Stack Overflow via deeply nested YAML collections", "url": "https://github.com/advisories/GHSA-48c2-rrv3-qjmp", "severity": "moderate", "cwe": ["CWE-674"], "cvss": {"score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0 <2.8.3"}], "effects": [], "range": "2.0.0 - 2.8.2", "nodes": [""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 2, "moderate": 7, "high": 15, "critical": 2, "total": 26}, "dependencies": {"prod": 1, "dev": 845, "optional": 5, "peer": 18, "peerOptional": 0, "total": 845}}}}
$ /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 har-validator@5.1.5: this library is no longer supported
npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts.
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
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 superagent@6.1.0: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
--- stdout ---

added 844 packages, and audited 845 packages in 30s

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

# npm audit report

diff  5.0.0 - 5.2.1 || 6.0.0 - 8.0.2
jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch - https://github.com/advisories/GHSA-73rr-hh4g-fpgx
jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch - https://github.com/advisories/GHSA-73rr-hh4g-fpgx
fix available via `npm audit fix --force`
Will install sinon@21.1.2, which is a breaking change
node_modules/cypress-parallel/node_modules/diff
node_modules/sinon/node_modules/diff
  sinon  19.0.0 - 21.0.0
  Depends on vulnerable versions of diff
  node_modules/sinon

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
No fix available
node_modules/request/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

js-yaml  4.0.0 - 4.1.0
Severity: moderate
js-yaml has prototype pollution in merge (<<) - https://github.com/advisories/GHSA-mh29-5h37-fv8m
fix available via `npm audit fix --force`
Will install cypress-parallel@0.15.0, which is a breaking change
node_modules/cypress-parallel/node_modules/js-yaml
  mocha  8.0.0 - 12.0.0-beta-2
  Depends on vulnerable versions of diff
  Depends on vulnerable versions of js-yaml
  Depends on vulnerable versions of minimatch
  Depends on vulnerable versions of nanoid
  Depends on vulnerable versions of serialize-javascript
  Depends on vulnerable versions of serialize-javascript
  node_modules/cypress-parallel/node_modules/mocha
  node_modules/mocha
    cypress-parallel  0.10.0 - 0.14.0
    Depends on vulnerable versions of mocha
    node_modules/cypress-parallel

lodash  <=4.17.23
Severity: high
lodash vulnerable to Code Injection via `_.template` imports key names - https://github.com/advisories/GHSA-r5fr-rjxr-66jc
lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit` - https://github.com/advisories/GHSA-f23m-r3pf-42rh
No fix available
node_modules/lodash
  grunt-legacy-log  >=1.0.1
  Depends on vulnerable versions of lodash
  node_modules/grunt-legacy-log
    grunt  >=0.4.0-a
    Depends on vulnerable versions of grunt-legacy-log
    Depends on vulnerable versions of grunt-legacy-util
    Depends on vulnerable versions of minimatch
    node_modules/grunt
      grunt-eslint  <=1.0.0 || >=18.1.0
      Depends on vulnerable versions of grunt
      node_modules/grunt-eslint
      grunt-jasmine-nodejs  *
      Depends on vulnerable versions of grunt
      node_modules/grunt-jasmine-nodejs
  grunt-legacy-util  >=1.0.0-rc1
  Depends on vulnerable versions of lodash
  node_modules/grunt-legacy-util

minimatch  <=3.1.3 || 4.0.0 - 4.2.4
Severity: high
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern - https://github.com/advisories/GHSA-3ppc-4f35-3m26
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern - https://github.com/advisories/GHSA-3ppc-4f35-3m26
minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments - https://github.com/advisories/GHSA-7r86-cg39-jmmj
minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments - https://github.com/advisories/GHSA-7r86-cg39-jmmj
minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions - https://github.com/advisories/GHSA-23c5-xmqv-rm74
minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions - https://github.com/advisories/GHSA-23c5-xmqv-rm74
No fix available
node_modules/cypress-parallel/node_modules/mocha/node_modules/minimatch
node_modules/minimatch

nanoid  <3.3.8
Severity: moderate
Predictable results in nanoid generation when given non-integer values - https://github.com/advisories/GHSA-mwcw-c2x4-8c55
fix available via `npm audit fix --force`
Will install cypress-parallel@0.15.0, which is a breaking change
node_modules/cypress-parallel/node_modules/nanoid

qs  <6.14.1
Severity: moderate
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion - https://github.com/advisories/GHSA-6rw7-vpxm-498p
No fix available
node_modules/qs


serialize-javascript  <=7.0.4
Severity: high
Cross-site Scripting (XSS) in serialize-javascript - https://github.com/advisories/GHSA-76p7-773f-r4q5
Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString() - https://github.com/advisories/GHSA-5c6j-r48x-rmvq
Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects - https://github.com/advisories/GHSA-qj8w-gfj5-8c6v
fix available via `npm audit fix --force`
Will install cypress-parallel@0.15.0, which is a breaking change
node_modules/cypress-parallel/node_modules/serialize-javascript
node_modules/serialize-javascript

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
No fix available
node_modules/request/node_modules/tough-cookie

18 vulnerabilities (2 low, 5 moderate, 9 high, 2 critical)

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 grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts.
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
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 superagent@6.1.0: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
--- stdout ---

added 844 packages, and audited 845 packages in 21s

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

18 vulnerabilities (2 low, 5 moderate, 9 high, 2 critical)

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
--- stderr ---
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@1.20.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-design-tokens@1.20.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@1.20.0',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm ERR! code 1
npm ERR! path /src/repo/resources/special/new-lexeme/node_modules/cypress
npm ERR! command failed
npm ERR! command sh -c node index.js --exec install
npm ERR! Note: Overriding Cypress cache directory to: ./cypress/.cache
npm ERR! 
npm ERR!       Previous installs of Cypress may not be found.
npm ERR! 
npm ERR! Installing Cypress (version: 13.15.0)
npm ERR! 
npm ERR! [STARTED] Task without title.
npm ERR! [TITLE]  Downloading Cypress      0% 0s
npm ERR! [TITLE]  Downloading Cypress      3% 4s
npm ERR! [TITLE]  Downloading Cypress      8% 3s
npm ERR! [TITLE]  Downloading Cypress      15% 2s
npm ERR! [TITLE]  Downloading Cypress      25% 1s
npm ERR! [TITLE]  Downloading Cypress      34% 1s
npm ERR! [TITLE]  Downloading Cypress      41% 1s
npm ERR! [TITLE]  Downloading Cypress      47% 1s
npm ERR! [TITLE]  Downloading Cypress      47% 2s
npm ERR! [TITLE]  Downloading Cypress      53% 1s
npm ERR! [TITLE]  Downloading Cypress      59% 1s
npm ERR! [TITLE]  Downloading Cypress      66% 1s
npm ERR! [TITLE]  Downloading Cypress      75% 1s
npm ERR! [TITLE]  Downloading Cypress      86% 0s
npm ERR! [TITLE]  Downloading Cypress      97% 0s
npm ERR! [TITLE]  Downloaded Cypress     
npm ERR! [SUCCESS]  Downloaded Cypress     
npm ERR! [STARTED] Task without title.
npm ERR! [TITLE]  Unzipping Cypress        0% 0s
npm ERR! [TITLE]  Unzipping Cypress        1% 45s
npm ERR! [TITLE]  Unzipping Cypress        1% 46s
npm ERR! [TITLE]  Unzipping Cypress        1% 47s
npm ERR! [TITLE]  Unzipping Cypress        1% 48s
npm ERR! [TITLE]  Unzipping Cypress        1% 105s
npm ERR! [TITLE]  Unzipping Cypress        1% 106s
npm ERR! [TITLE]  Unzipping Cypress        2% 53s
npm ERR! [TITLE]  Unzipping Cypress        2% 54s
npm ERR! [TITLE]  Unzipping Cypress        2% 55s
npm ERR! [TITLE]  Unzipping Cypress        3% 36s
npm ERR! [TITLE]  Unzipping Cypress        3% 37s
npm ERR! [TITLE]  Unzipping Cypress        3% 38s
npm ERR! [TITLE]  Unzipping Cypress        4% 28s
npm ERR! [TITLE]  Unzipping Cypress        4% 29s
npm ERR! [TITLE]  Unzipping Cypress        4% 30s
npm ERR! [TITLE]  Unzipping Cypress        5% 23s
npm ERR! [TITLE]  Unzipping Cypress        5% 24s
npm ERR! [TITLE]  Unzipping Cypress        6% 20s
npm ERR! [TITLE]  Unzipping Cypress        6% 46s
npm ERR! [TITLE]  Unzipping Cypress        6% 47s
npm ERR! [TITLE]  Unzipping Cypress        7% 40s
npm ERR! [TITLE]  Unzipping Cypress        8% 35s
npm ERR! [TITLE]  Unzipping Cypress        9% 31s
npm ERR! [TITLE]  Unzipping Cypress        9% 32s
npm ERR! [TITLE]  Unzipping Cypress        10% 28s
npm ERR! [TITLE]  Unzipping Cypress        11% 26s
npm ERR! [TITLE]  Unzipping Cypress        12% 24s
npm ERR! [TITLE]  Unzipping Cypress        13% 22s
npm ERR! [TITLE]  Unzipping Cypress        13% 23s
npm ERR! [TITLE]  Unzipping Cypress        14% 21s
npm ERR! [TITLE]  Unzipping Cypress        14% 22s
npm ERR! [TITLE]  Unzipping Cypress        15% 20s
npm ERR! [TITLE]  Unzipping Cypress        15% 21s
npm ERR! [TITLE]  Unzipping Cypress        16% 19s
npm ERR! [TITLE]  Unzipping Cypress        16% 20s
npm ERR! [TITLE]  Unzipping Cypress        17% 18s
npm ERR! [TITLE]  Unzipping Cypress        17% 19s
npm ERR! [TITLE]  Unzipping Cypress        18% 17s
npm ERR! [TITLE]  Unzipping Cypress        19% 16s
npm ERR! [TITLE]  Unzipping Cypress        19% 17s
npm ERR! [TITLE]  Unzipping Cypress        20% 16s
npm ERR! [TITLE]  Unzipping Cypress        21% 15s
npm ERR! [TITLE]  Unzipping Cypress        22% 14s
npm ERR! [TITLE]  Unzipping Cypress        22% 15s
npm ERR! [TITLE]  Unzipping Cypress        23% 14s
npm ERR! [TITLE]  Unzipping Cypress        24% 13s
npm ERR! [TITLE]  Unzipping Cypress        25% 13s
npm ERR! [TITLE]  Unzipping Cypress        26% 12s
npm ERR! [TITLE]  Unzipping Cypress        27% 12s
npm ERR! [TITLE]  Unzipping Cypress        28% 11s
npm ERR! [TITLE]  Unzipping Cypress        29% 11s
npm ERR! [TITLE]  Unzipping Cypress        30% 11s
npm ERR! [TITLE]  Unzipping Cypress        31% 10s
npm ERR! [TITLE]  Unzipping Cypress        32% 10s
npm ERR! [TITLE]  Unzipping Cypress        33% 10s
npm ERR! [TITLE]  Unzipping Cypress        34% 9s
npm ERR! [TITLE]  Unzipping Cypress        35% 9s
npm ERR! [TITLE]  Unzipping Cypress        36% 9s
npm ERR! [TITLE]  Unzipping Cypress        37% 8s
npm ERR! [TITLE]  Unzipping Cypress        38% 8s
npm ERR! [TITLE]  Unzipping Cypress        39% 8s
npm ERR! [TITLE]  Unzipping Cypress        40% 7s
npm ERR! [TITLE]  Unzipping Cypress        41% 7s
npm ERR! [TITLE]  Unzipping Cypress        42% 7s
npm ERR! [TITLE]  Unzipping Cypress        43% 7s
npm ERR! [TITLE]  Unzipping Cypress        44% 6s
npm ERR! [TITLE]  Unzipping Cypress        45% 6s
npm ERR! [TITLE]  Unzipping Cypress        46% 6s
npm ERR! [TITLE]  Unzipping Cypress        47% 6s
npm ERR! [TITLE]  Unzipping Cypress        48% 6s
npm ERR! [TITLE]  Unzipping Cypress        49% 5s
npm ERR! [TITLE]  Unzipping Cypress        50% 5s
npm ERR! [TITLE]  Unzipping Cypress        51% 5s
npm ERR! [TITLE]  Unzipping Cypress        52% 5s
npm ERR! [TITLE]  Unzipping Cypress        53% 5s
npm ERR! [TITLE]  Unzipping Cypress        54% 5s
npm ERR! [TITLE]  Unzipping Cypress        55% 4s
npm ERR! [TITLE]  Unzipping Cypress        56% 4s
npm ERR! [TITLE]  Unzipping Cypress        57% 4s
npm ERR! [TITLE]  Unzipping Cypress        58% 4s
npm ERR! [TITLE]  Unzipping Cypress        59% 4s
npm ERR! [TITLE]  Unzipping Cypress        60% 4s
npm ERR! [TITLE]  Unzipping Cypress        61% 4s
npm ERR! [TITLE]  Unzipping Cypress        62% 3s
npm ERR! [TITLE]  Unzipping Cypress        62% 4s
npm ERR! [TITLE]  Unzipping Cypress        63% 3s
npm ERR! [TITLE]  Unzipping Cypress        64% 3s
npm ERR! [TITLE]  Unzipping Cypress        65% 3s
npm ERR! [TITLE]  Unzipping Cypress        66% 3s
npm ERR! [TITLE]  Unzipping Cypress        67% 3s
npm ERR! [TITLE]  Unzipping Cypress        68% 3s
npm ERR! [TITLE]  Unzipping Cypress        68% 4s
npm ERR! [TITLE]  Unzipping Cypress        68% 5s
npm ERR! [TITLE]  Unzipping Cypress        68% 6s
npm ERR! [TITLE]  Unzipping Cypress        68% 7s
npm ERR! [TITLE]  Unzipping Cypress        69% 6s
npm ERR! [TITLE]  Unzipping Cypress        69% 7s
npm ERR! [TITLE]  Unzipping Cypress        70% 7s
npm ERR! [TITLE]  Unzipping Cypress        70% 8s
npm ERR! [TITLE]  Unzipping Cypress        71% 8s
npm ERR! [TITLE]  Unzipping Cypress        71% 9s
npm ERR! [TITLE]  Unzipping Cypress        72% 8s
npm ERR! [TITLE]  Unzipping Cypress        72% 9s
npm ERR! [TITLE]  Unzipping Cypress        73% 8s
npm ERR! [TITLE]  Unzipping Cypress        74% 8s
npm ERR! [TITLE]  Unzipping Cypress        75% 8s
npm ERR! [TITLE]  Unzipping Cypress        76% 7s
npm ERR! [TITLE]  Unzipping Cypress        77% 7s
npm ERR! [TITLE]  Unzipping Cypress        78% 7s
npm ERR! [TITLE]  Unzipping Cypress        79% 7s
npm ERR! [TITLE]  Unzipping Cypress        80% 6s
npm ERR! [TITLE]  Unzipping Cypress        81% 6s
npm ERR! [TITLE]  Unzipping Cypress        82% 6s
npm ERR! [TITLE]  Unzipping Cypress        83% 5s
npm ERR! [TITLE]  Unzipping Cypress        84% 5s
npm ERR! [TITLE]  Unzipping Cypress        85% 5s
npm ERR! [TITLE]  Unzipping Cypress        86% 4s
npm ERR! [TITLE]  Unzipping Cypress        87% 4s
npm ERR! [TITLE]  Unzipping Cypress        88% 4s
npm ERR! [TITLE]  Unzipping Cypress        89% 4s
npm ERR! [TITLE]  Unzipping Cypress        90% 3s
npm ERR! [TITLE]  Unzipping Cypress        91% 3s
npm ERR! [TITLE]  Unzipping Cypress        92% 3s
npm ERR! [TITLE]  Unzipping Cypress        93% 2s
npm ERR! [TITLE]  Unzipping Cypress        94% 2s
npm ERR! [TITLE]  Unzipping Cypress        95% 2s
npm ERR! [TITLE]  Unzipping Cypress        96% 1s
npm ERR! [TITLE]  Unzipping Cypress        97% 1s
npm ERR! [TITLE]  Unzipping Cypress        98% 1s
npm ERR! [TITLE]  Unzipping Cypress        99% 0s
npm ERR! [TITLE]  Unzipping Cypress        100% 0s
npm ERR! [TITLE]  Unzipping Cypress        101% -0s
npm ERR! [TITLE]  Unzipping Cypress        102% -1s
npm ERR! [TITLE]  Unzipping Cypress        103% -1s
npm ERR! [TITLE]  Unzipping Cypress        104% -1s
npm ERR! [TITLE]  Unzipping Cypress        105% -2s
npm ERR! [TITLE]  Unzipping Cypress        106% -2s
npm ERR! [TITLE]  Unzipping Cypress        107% -2s
npm ERR! [TITLE]  Unzipping Cypress        108% -3s
npm ERR! [TITLE]  Unzipping Cypress        109% -3s
npm ERR! [TITLE]  Unzipping Cypress        110% -3s
npm ERR! [TITLE]  Unzipping Cypress        111% -4s
npm ERR! [TITLE]  Unzipping Cypress        112% -4s
npm ERR! [TITLE]  Unzipping Cypress        113% -5s
npm ERR! [TITLE]  Unzipping Cypress        114% -5s
npm ERR! [TITLE]  Unzipping Cypress        115% -5s
npm ERR! [TITLE]  Unzipping Cypress        116% -6s
npm ERR! [TITLE]  Unzipping Cypress        117% -6s
npm ERR! [TITLE]  Unzipping Cypress        118% -6s
npm ERR! [TITLE]  Unzipping Cypress        119% -7s
npm ERR! [TITLE]  Unzipping Cypress        120% -7s
npm ERR! [TITLE]  Unzipping Cypress        121% -7s
npm ERR! [TITLE]  Unzipping Cypress        122% -8s
npm ERR! [TITLE]  Unzipping Cypress        123% -8s
npm ERR! [TITLE]  Unzipping Cypress        124% -8s
npm ERR! [TITLE]  Unzipping Cypress        124% -9s
npm ERR! [TITLE]  Unzipping Cypress        125% -9s
npm ERR! [TITLE]  Unzipping Cypress        126% -9s
npm ERR! [TITLE]  Unzipping Cypress        127% -10s
npm ERR! [TITLE]  Unzipping Cypress        128% -10s
npm ERR! [TITLE]  Unzipping Cypress        129% -10s
npm ERR! [TITLE]  Unzipping Cypress        130% -11s
npm ERR! [TITLE]  Unzipping Cypress        131% -11s
npm ERR! [TITLE]  Unzipping Cypress        132% -11s
npm ERR! [TITLE]  Unzipping Cypress        132% -12s
npm ERR! [TITLE]  Unzipping Cypress        133% -12s
npm ERR! [TITLE]  Unzipping Cypress        134% -12s
npm ERR! [TITLE]  Unzipping Cypress        135% -13s
npm ERR! [TITLE]  Unzipping Cypress        136% -13s
npm ERR! [TITLE]  Unzipping Cypress        137% -13s
npm ERR! [TITLE]  Unzipping Cypress        138% -14s
npm ERR! [TITLE]  Unzipping Cypress        139% -14s
npm ERR! [TITLE]  Unzipping Cypress        140% -14s
npm ERR! [TITLE]  Unzipping Cypress        140% -15s
npm ERR! [TITLE]  Unzipping Cypress        141% -15s
npm ERR! [TITLE]  Unzipping Cypress        142% -15s
npm ERR! [TITLE]  Unzipping Cypress        143% -16s
npm ERR! [TITLE]  Unzipping Cypress        144% -16s
npm ERR! [TITLE]  Unzipping Cypress        145% -16s
npm ERR! [TITLE]  Unzipping Cypress        145% -17s
npm ERR! [TITLE]  Unzipping Cypress        146% -17s
npm ERR! [TITLE]  Unzipping Cypress        147% -17s
npm ERR! [TITLE]  Unzipping Cypress        148% -18s
npm ERR! [TITLE]  Unzipping Cypress        149% -18s
npm ERR! [TITLE]  Unzipping Cypress        150% -18s
npm ERR! [TITLE]  Unzipping Cypress        151% -19s
npm ERR! [TITLE]  Unzipping Cypress        152% -19s
npm ERR! [TITLE]  Unzipping Cypress        153% -19s
npm ERR! [TITLE]  Unzipping Cypress        154% -20s
npm ERR! [TITLE]  Unzipping Cypress        155% -20s
npm ERR! [TITLE]  Unzipping Cypress        156% -20s
npm ERR! [TITLE]  Unzipping Cypress        156% -21s
npm ERR! [TITLE]  Unzipping Cypress        157% -21s
npm ERR! [TITLE]  Unzipping Cypress        158% -21s
npm ERR! [TITLE]  Unzipping Cypress        159% -22s
npm ERR! [TITLE]  Unzipping Cypress        160% -22s
npm ERR! [TITLE]  Unzipping Cypress        161% -22s
npm ERR! [TITLE]  Unzipping Cypress        162% -23s
npm ERR! [TITLE]  Unzipping Cypress        163% -23s
npm ERR! The Cypress App could not be unzipped.
npm ERR! 
npm ERR! Search for an existing issue or open a GitHub issue at
npm ERR! 
npm ERR! https://github.com/cypress-io/cypress/issues
npm ERR! 
npm ERR! ----------
npm ERR! 
npm ERR! Error: ENOENT: no such file or directory, mkdir '/src/repo/resources/special/new-lexeme/cypress/.cache/13.15.0/Cypress/resources/app/packages/network/'
npm ERR! 
npm ERR! ----------
npm ERR! 
npm ERR! Platform: linux-x64 (Debian - 13.3)
npm ERR! Cypress Version: 13.15.0
npm ERR! [FAILED] The Cypress App could not be unzipped.
npm ERR! [FAILED] 
npm ERR! [FAILED] Search for an existing issue or open a GitHub issue at
npm ERR! [FAILED] 
npm ERR! [FAILED] https://github.com/cypress-io/cypress/issues
npm ERR! [FAILED] 
npm ERR! [FAILED] ----------
npm ERR! [FAILED] 
npm ERR! [FAILED] Error: ENOENT: no such file or directory, mkdir '/src/repo/resources/special/new-lexeme/cypress/.cache/13.15.0/Cypress/resources/app/packages/network/'
npm ERR! [FAILED] 
npm ERR! [FAILED] ----------
npm ERR! [FAILED] 
npm ERR! [FAILED] Platform: linux-x64 (Debian - 13.3)
npm ERR! [FAILED] Cypress Version: 13.15.0

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2026-04-13T07_20_27_828Z-debug-0.log
ERROR: "snl:install" exited with 1.
ERROR: "test:snl-distnodiff" exited with 1.
--- stdout ---

> test
> run-s test:*


> test:grunt
> grunt test

Running "eslint:all" (eslint) task

/src/repo/cypress/support/pageObjects/FormsSection.ts
  143:2  warning  Missing JSDoc @return declaration   jsdoc/require-returns
  144:1  warning  Missing JSDoc @param "formId" type  jsdoc/require-param-type

/src/repo/resources/entityChangers/FormChanger.js
    1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param
  174:4  warning  Prefer .then to .fail                  no-jquery/no-done-fail

/src/repo/resources/entityChangers/SenseChanger.js
    1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param
  162:4  warning  Prefer .then to .fail                  no-jquery/no-done-fail

/src/repo/resources/jquery.wikibase.lexemeformview.js
  287:1  warning  Missing JSDoc @param "lemmas" type           jsdoc/require-param-type
  288:1  warning  Missing JSDoc @param "formIndex" type        jsdoc/require-param-type
  289:1  warning  Missing JSDoc @param "formId" type           jsdoc/require-param-type
  290:1  warning  Missing JSDoc @param "representations" type  jsdoc/require-param-type

/src/repo/resources/jquery.wikibase.lexemeview.js
  25:1  warning  Expected 0 trailing lines  jsdoc/tag-lines

/src/repo/resources/serialization/FormSerializer.js
  12:1  warning  The type 'serialization' is undefined  jsdoc/no-undefined-types

/src/repo/resources/serialization/LexemeDeserializer.js
  10:1  warning  The type 'SERIALIZER' is undefined  jsdoc/no-undefined-types

/src/repo/resources/serialization/SenseSerializer.js
  12:1  warning  The type 'serialization' is undefined  jsdoc/no-undefined-types

/src/repo/resources/special/NewLexeme.js
  6:2  warning  Unused eslint-disable directive (no problems were reported from 'no-undef')

/src/repo/resources/special/NewLexemeFallback.js
  8:3  warning  NodeList.forEach not supported by Chrome<51, Firefox<50, Safari<10, IE & others. Use Array.prototype.forEach.call instead  mediawiki/no-nodelist-unsupported-methods

/src/repo/resources/view/ControllerViewFactory.js
  170:4  warning  Prefer .then to .done  no-jquery/no-done-fail
  216:4  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/resources/view/ViewFactoryFactory.js
  17:1  warning  Syntax error in type: []  jsdoc/valid-types

/src/repo/resources/widgets/GlossWidget.js
  34:1  warning  Syntax error in type: [{ value: string, language: string }]  jsdoc/valid-types

/src/repo/resources/widgets/LexemeHeader.js
  106:3  warning  Prefer .then to .fail  no-jquery/no-done-fail

/src/repo/resources/widgets/LexemeHeader.newLexemeHeaderStore.js
  142:13  warning  Prefer .then to .fail  no-jquery/no-done-fail

/src/repo/tests/qunit/datamodel/Form.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/datamodel/Sense.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/entityChangers/FormChanger.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/entityChangers/SenseChanger.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/jquery.wikibase.lexemeformlistview.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/jquery.wikibase.lexemeformview.tests.js
  1:1  warning  Missing JSDoc @param "require" declaration  jsdoc/require-param
  1:1  warning  Missing JSDoc @param "wb" declaration       jsdoc/require-param

/src/repo/tests/qunit/jquery.wikibase.senselistview.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/jquery.wikibase.senseview.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/serialization/LexemeDeserializer.tests.js
  1:1  warning  Missing JSDoc @param "wb" declaration  jsdoc/require-param

/src/repo/tests/qunit/widgets/GrammaticalFeatureListWidget.tests.js
  1:1  warning  Missing JSDoc @param "QUnit" declaration    jsdoc/require-param
  1:1  warning  Missing JSDoc @param "require" declaration  jsdoc/require-param
  1:1  warning  Missing JSDoc @param "sinon" declaration    jsdoc/require-param

✖ 35 problems (0 errors, 35 warnings)
  0 errors and 17 warnings potentially fixable with the `--fix` option.


Running "banana:WikibaseLexeme" (banana) task
>> The "fr" translation has 2 translations with trailing whitespace:
>> * wikibaselexeme-formidformatter-separator-multiple-representation
>> * wikibaselexeme-presentation-lexeme-display-label-separator-multiple-lemma
>> 2 message directories checked.

Running "jasmine_nodejs:all" (jasmine_nodejs) task

>> Executing 127 defined specs...

Test Suites & Specs:

1) LanguageAndLexicalCategoryWidget
   ✔ shows the language and the lexical category
   ✔ switches to edit mode and back

2) ItemSelectorWrapper
   ✔ passes the item ID to the entityselector widget on mount

3) InvalidLanguageIndicator
   ✔ creates mixin definition providing method to determine if language isInvalidLanguage
   ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin watch handler that updates InvalidLanguages with respective language values
   ✔ creates mixin watch handler that can find multiple invalid languages
   ✔ creates mixin definition that adds an InvalidLanguages property to data
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin watch handler not taking offence in empty language
   ✔ creates mixin definition providing computed property hasInvalidLanguage
   ✔ creates mixin definition with watch that does not fire immediately
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages

4) LemmaList
   ✔ length
   ✔ add
   ✔ remove
   ✔ getLemmas

   5) copy
      ✔ creates an identical LemmaList
      ✔ clones Lemmas

   6) equals
      ✔ ignores empty lemmas
      ✔ returns false for LemmaList with different lemmas
      ✔ returns true for LemmaList with same lemmas
      ✔ returns false for objects that are not of type LemmaList
      ✔ returns false for LemmaList of different length

7) GlossWidget
   ✔ remove a gloss
   ✔ removes empty glosses when saved
   ✔ create with no glosses - when switched to edit mode empty gloss is added
   ✔ switch to edit mode
   ✔ add a new gloss
   ✔ initialize widget with one gloss
   ✔ stop editing

8) actions
   ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation
   ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation
   ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation
   ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values
   ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values
   ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language
   ✔ REMOVE_REPRESENTATION delegates to mutation

9) focusElement

   10) callback
      ✔ calls focus on selected element
      ✔ can handle missing element

   ✔ returns a callback without doing anything else

11) mutations
   ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index
   ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value
   ✔ ADD_REPRESENTATION adds a new representation to the right form
   ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
   ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly
   ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form

12) mutationTypes
   ✔ uses unique ids for all mutation types

13) LexemeSubEntityId

   14) getIdSuffix
      ✔ returns the Sense id suffix
      ✔ returns the Form id suffix

15) wikibase.lexeme.widgets.LemmaWidget
   ✔ add a new lemma
   ✔ remove a lemma
   ✔ edit mode is false
   ✔ initialize widget with one lemma
   ✔ detects redundant lemma languages to mark the widget
   ✔ edit mode is true
   ✔ marks-up the lemma term with the lemma language
   ✔ can carry redundant lemma languages
   ✔ detects redundant lemma language to mark the individual languages

16) actionTypes
   ✔ uses unique ids for all action types

17) LexemeHeader.newLexemeHeaderStore
   ✔ action save calls API with correct parameters and changes state using data from response
   ✔ action save calls API with correct parameters when removing an item from the state
   ✔ action save on success processes tempuser values when present
   ✔ mutation updateRevisionId changes baseRevId to given value
   ✔ action save calls API with correct parameters when editing an existing lemma
   ✔ action save on success mutates the state to start saving, updates state and finishes saving
   ✔ failed save returns rejected promise with a single error object
   ✔ mutation startSaving switches the isSaving flag to true
   ✔ failed save returns rejected promise with first error object if API returns multiple errors
   ✔ mutation finishSaving switches the isSaving flag to false
   ✔ action save calls API with correct parameters when editing several existing lemmas
   ✔ action save calls API with correct parameters when removing one of several existing lemmas
   ✔ mutation updateLemmas changes lemmas to given values
   ✔ action save calls API with correct parameters when editing one of several existing lemmas
   ✔ mutation updateLanguage changes language and languageLink to given values
   ✔ action save calls API with correct parameters when adding, editing and removing lemmas
   ✔ mutation updateLanguage changes lexical category and the link to given values

18) store
   ✔ creates initial state

19) RedundantLanguageIndicator
   ✔ creates mixin watch handler not taking offence in repeated empty language
   ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages
   ✔ creates mixin watch handler that updates redundantLanguages with respective language values
   ✔ creates mixin definition providing computed property hasRedundantLanguage
   ✔ creates mixin definition providing method to determine if language isRedundantLanguage
   ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin definition that adds a redundantLanguages property to data
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin definition with watch that fires immediately
   ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin watch handler that can find multiple redundant languages
   ✔ creates mixin definition with watch on desired property

20) wikibase.lexeme.widgets.LexemeHeader
   ✔ shows save button disabled when unsaveable
   ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget
   ✔ switch to edit mode
   ✔ shows save button enabled when not unsaveable
   ✔ cancel edit mode
   ✔ save lemma list
   ✔ save lemma list with error
   ✔ attempting to save with empty lemmas fails
   ✔ updates language and lexical category on save
   ✔ shows save button disabled without changes
   ✔ passes lemmas to LemmaWidget
   ✔ binds to lemma-widget hasRedundantLanguage event

   21) hasChanges
      ✔ returns false by default
      ✔ returns true when lexical category changes
      ✔ returns true when language changes
      ✔ ignores added empty lemmas
      ✔ returns true when lemmas change

   22) isUnsaveable
      ✔ returns false by default
      ✔ returns true when there are changes but also lemmas with redundant languages
      ✔ returns true when there are changes but saving is ongoing
      ✔ returns true when there are no changes

23) RepresentationWidget
   ✔ is not in edit mode after being created
   ✔ switches to edit mode when editing
   ✔ detects redundant representation languages and can mark the individual languages
   ✔ can carry redundant representations
   ✔ detects redundant representation languages and marks the widget
   ✔ cannot remove representation if not in edit mode
   ✔ shows only the representation it contains when editing the widget with some representation
   ✔ cannot add representation if not in edit mode
   ✔ adds a representation with unique lemmas language on add after delete
   ✔ adds a new empty representation when editing the widget with no representations and multiple lemmas
   ✔ adds a new representation with lemma language when editing the widget with no representations and one lemma
   ✔ can remove a representation
   ✔ is not in edit mode after editing is stopped
   ✔ adds an empty representation on add

>> Done!


Summary:

Suites:  23 of 23
Specs:   127 of 127
Expects: 0 (0 failures)
Finished in 0.653 seconds

>> Successful!

Running "jasmine_nodejs_reset" task

Running "stylelint:all" (stylelint) task
>> Linted 7 files without errors

Done.

> test:snl-distnodiff
> run-s snl:install snl:build snl:cp snl:diff


> snl:install
> npm -C $npm_package_config_snl_src i


--- 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 1.
Source code is licensed under the AGPL.