mediawiki/services/wikifeeds: main (log #1978901)

sourcepatches

This run took 223 seconds.

$ date
--- stdout ---
Mon Jun 30 05:21:56 UTC 2025

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

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

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

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

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

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
5d240a29f488849577650192526b828efc97360c refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104663,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.0.6"
        }
      ],
      "effects": [
        "pre-commit"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/pre-commit/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "1.0.10",
        "isSemVerMajor": true
      }
    },
    "limitation": {
      "name": "limitation",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "wikimedia-kad-fork"
      ],
      "effects": [
        "service-runner"
      ],
      "range": ">=0.2.3",
      "nodes": [
        "node_modules/limitation"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "ms": {
      "name": "ms",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1094419,
          "name": "ms",
          "dependency": "ms",
          "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability",
          "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<2.0.0"
        }
      ],
      "effects": [
        "wikimedia-kad-fork"
      ],
      "range": "<2.0.0",
      "nodes": [
        "node_modules/wikimedia-kad-fork/node_modules/ms"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "pre-commit": {
      "name": "pre-commit",
      "severity": "high",
      "isDirect": true,
      "via": [
        "cross-spawn"
      ],
      "effects": [],
      "range": ">=1.1.0",
      "nodes": [
        "node_modules/pre-commit"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "1.0.10",
        "isSemVerMajor": true
      }
    },
    "preq": {
      "name": "preq",
      "severity": "high",
      "isDirect": true,
      "via": [
        "request",
        "requestretry"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/preq"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "preq",
        "requestretry"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "requestretry": {
      "name": "requestretry",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1090420,
          "name": "requestretry",
          "dependency": "requestretry",
          "title": "Cookie exposure in requestretry",
          "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45",
          "severity": "high",
          "cwe": [
            "CWE-200"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": "<7.0.0"
        },
        "request"
      ],
      "effects": [
        "preq"
      ],
      "range": "*",
      "nodes": [
        "node_modules/requestretry"
      ],
      "fixAvailable": false
    },
    "service-runner": {
      "name": "service-runner",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "limitation",
        "tar"
      ],
      "effects": [],
      "range": ">=3.0.0",
      "nodes": [
        "node_modules/service-runner"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "tar": {
      "name": "tar",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097493,
          "name": "tar",
          "dependency": "tar",
          "title": "Denial of service while parsing a tar file due to lack of folders count validation",
          "url": "https://github.com/advisories/GHSA-f5x3-32g6-xq36",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<6.2.1"
        }
      ],
      "effects": [
        "service-runner"
      ],
      "range": "<6.2.1",
      "nodes": [
        "node_modules/tar"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wikimedia-kad-fork": {
      "name": "wikimedia-kad-fork",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "ms"
      ],
      "effects": [
        "limitation"
      ],
      "range": "*",
      "nodes": [
        "node_modules/wikimedia-kad-fork"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 7,
      "high": 4,
      "critical": 0,
      "total": 11
    },
    "dependencies": {
      "prod": 219,
      "dev": 418,
      "optional": 13,
      "peer": 1,
      "peerOptional": 0,
      "total": 648
    }
  }
}

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "cross-spawn": {
      "name": "cross-spawn",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104663,
          "name": "cross-spawn",
          "dependency": "cross-spawn",
          "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
          "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
          "severity": "high",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.0.6"
        }
      ],
      "effects": [
        "pre-commit"
      ],
      "range": "<6.0.6",
      "nodes": [
        "node_modules/pre-commit/node_modules/cross-spawn"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "1.0.10",
        "isSemVerMajor": true
      }
    },
    "limitation": {
      "name": "limitation",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "wikimedia-kad-fork"
      ],
      "effects": [
        "service-runner"
      ],
      "range": ">=0.2.3",
      "nodes": [
        "node_modules/limitation"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "ms": {
      "name": "ms",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1094419,
          "name": "ms",
          "dependency": "ms",
          "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability",
          "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f",
          "severity": "moderate",
          "cwe": [
            "CWE-1333"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<2.0.0"
        }
      ],
      "effects": [
        "wikimedia-kad-fork"
      ],
      "range": "<2.0.0",
      "nodes": [
        "node_modules/wikimedia-kad-fork/node_modules/ms"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "pre-commit": {
      "name": "pre-commit",
      "severity": "high",
      "isDirect": true,
      "via": [
        "cross-spawn"
      ],
      "effects": [],
      "range": ">=1.1.0",
      "nodes": [
        "node_modules/pre-commit"
      ],
      "fixAvailable": {
        "name": "pre-commit",
        "version": "1.0.10",
        "isSemVerMajor": true
      }
    },
    "preq": {
      "name": "preq",
      "severity": "high",
      "isDirect": true,
      "via": [
        "request",
        "requestretry"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/preq"
      ],
      "fixAvailable": false
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "preq",
        "requestretry"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "requestretry": {
      "name": "requestretry",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1090420,
          "name": "requestretry",
          "dependency": "requestretry",
          "title": "Cookie exposure in requestretry",
          "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45",
          "severity": "high",
          "cwe": [
            "CWE-200"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": "<7.0.0"
        },
        "request"
      ],
      "effects": [
        "preq"
      ],
      "range": "*",
      "nodes": [
        "node_modules/requestretry"
      ],
      "fixAvailable": false
    },
    "service-runner": {
      "name": "service-runner",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "limitation",
        "tar"
      ],
      "effects": [],
      "range": ">=3.0.0",
      "nodes": [
        "node_modules/service-runner"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "tar": {
      "name": "tar",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097493,
          "name": "tar",
          "dependency": "tar",
          "title": "Denial of service while parsing a tar file due to lack of folders count validation",
          "url": "https://github.com/advisories/GHSA-f5x3-32g6-xq36",
          "severity": "moderate",
          "cwe": [
            "CWE-400"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
          },
          "range": "<6.2.1"
        }
      ],
      "effects": [
        "service-runner"
      ],
      "range": "<6.2.1",
      "nodes": [
        "node_modules/tar"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wikimedia-kad-fork": {
      "name": "wikimedia-kad-fork",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "ms"
      ],
      "effects": [
        "limitation"
      ],
      "range": "*",
      "nodes": [
        "node_modules/wikimedia-kad-fork"
      ],
      "fixAvailable": {
        "name": "service-runner",
        "version": "6.0.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 7,
      "high": 4,
      "critical": 0,
      "total": 11
    },
    "dependencies": {
      "prod": 219,
      "dev": 418,
      "optional": 13,
      "peer": 1,
      "peerOptional": 0,
      "total": 648
    }
  }
}

--- 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": 648,
  "removed": 0,
  "changed": 0,
  "audited": 649,
  "funding": 106,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "cross-spawn": {
        "name": "cross-spawn",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1104663,
            "name": "cross-spawn",
            "dependency": "cross-spawn",
            "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn",
            "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275",
            "severity": "high",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<6.0.6"
          }
        ],
        "effects": [
          "pre-commit"
        ],
        "range": "<6.0.6",
        "nodes": [
          "node_modules/pre-commit/node_modules/cross-spawn"
        ],
        "fixAvailable": {
          "name": "pre-commit",
          "version": "1.0.10",
          "isSemVerMajor": true
        }
      },
      "limitation": {
        "name": "limitation",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "wikimedia-kad-fork"
        ],
        "effects": [
          "service-runner"
        ],
        "range": ">=0.2.3",
        "nodes": [
          "node_modules/limitation"
        ],
        "fixAvailable": {
          "name": "service-runner",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      },
      "ms": {
        "name": "ms",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1094419,
            "name": "ms",
            "dependency": "ms",
            "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability",
            "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f",
            "severity": "moderate",
            "cwe": [
              "CWE-1333"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<2.0.0"
          }
        ],
        "effects": [
          "wikimedia-kad-fork"
        ],
        "range": "<2.0.0",
        "nodes": [
          "node_modules/wikimedia-kad-fork/node_modules/ms"
        ],
        "fixAvailable": {
          "name": "service-runner",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      },
      "pre-commit": {
        "name": "pre-commit",
        "severity": "high",
        "isDirect": true,
        "via": [
          "cross-spawn"
        ],
        "effects": [],
        "range": ">=1.1.0",
        "nodes": [
          "node_modules/pre-commit"
        ],
        "fixAvailable": {
          "name": "pre-commit",
          "version": "1.0.10",
          "isSemVerMajor": true
        }
      },
      "preq": {
        "name": "preq",
        "severity": "high",
        "isDirect": true,
        "via": [
          "request",
          "requestretry"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/preq"
        ],
        "fixAvailable": false
      },
      "request": {
        "name": "request",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "tough-cookie"
        ],
        "effects": [
          "preq",
          "requestretry"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "requestretry": {
        "name": "requestretry",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1090420,
            "name": "requestretry",
            "dependency": "requestretry",
            "title": "Cookie exposure in requestretry",
            "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45",
            "severity": "high",
            "cwe": [
              "CWE-200"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
            },
            "range": "<7.0.0"
          },
          "request"
        ],
        "effects": [
          "preq"
        ],
        "range": "*",
        "nodes": [
          "node_modules/requestretry"
        ],
        "fixAvailable": false
      },
      "service-runner": {
        "name": "service-runner",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "limitation",
          "tar"
        ],
        "effects": [],
        "range": ">=3.0.0",
        "nodes": [
          "node_modules/service-runner"
        ],
        "fixAvailable": {
          "name": "service-runner",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      },
      "tar": {
        "name": "tar",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097493,
            "name": "tar",
            "dependency": "tar",
            "title": "Denial of service while parsing a tar file due to lack of folders count validation",
            "url": "https://github.com/advisories/GHSA-f5x3-32g6-xq36",
            "severity": "moderate",
            "cwe": [
              "CWE-400"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
            },
            "range": "<6.2.1"
          }
        ],
        "effects": [
          "service-runner"
        ],
        "range": "<6.2.1",
        "nodes": [
          "node_modules/tar"
        ],
        "fixAvailable": {
          "name": "service-runner",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097682,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/tough-cookie"
        ],
        "fixAvailable": false
      },
      "wikimedia-kad-fork": {
        "name": "wikimedia-kad-fork",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "ms"
        ],
        "effects": [
          "limitation"
        ],
        "range": "*",
        "nodes": [
          "node_modules/wikimedia-kad-fork"
        ],
        "fixAvailable": {
          "name": "service-runner",
          "version": "6.0.0",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 7,
        "high": 4,
        "critical": 0,
        "total": 11
      },
      "dependencies": {
        "prod": 219,
        "dev": 418,
        "optional": 13,
        "peer": 1,
        "peerOptional": 0,
        "total": 648
      }
    }
  }
}

--- end ---
{"added": 648, "removed": 0, "changed": 0, "audited": 649, "funding": 106, "audit": {"auditReportVersion": 2, "vulnerabilities": {"cross-spawn": {"name": "cross-spawn", "severity": "high", "isDirect": false, "via": [{"source": 1104663, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": ["CWE-1333"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.0.6"}], "effects": ["pre-commit"], "range": "<6.0.6", "nodes": ["node_modules/pre-commit/node_modules/cross-spawn"], "fixAvailable": {"name": "pre-commit", "version": "1.0.10", "isSemVerMajor": true}}, "limitation": {"name": "limitation", "severity": "moderate", "isDirect": false, "via": ["wikimedia-kad-fork"], "effects": ["service-runner"], "range": ">=0.2.3", "nodes": ["node_modules/limitation"], "fixAvailable": {"name": "service-runner", "version": "6.0.0", "isSemVerMajor": true}}, "ms": {"name": "ms", "severity": "moderate", "isDirect": false, "via": [{"source": 1094419, "name": "ms", "dependency": "ms", "title": "Vercel ms Inefficient Regular Expression Complexity vulnerability", "url": "https://github.com/advisories/GHSA-w9mr-4mfr-499f", "severity": "moderate", "cwe": ["CWE-1333"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<2.0.0"}], "effects": ["wikimedia-kad-fork"], "range": "<2.0.0", "nodes": ["node_modules/wikimedia-kad-fork/node_modules/ms"], "fixAvailable": {"name": "service-runner", "version": "6.0.0", "isSemVerMajor": true}}, "pre-commit": {"name": "pre-commit", "severity": "high", "isDirect": true, "via": ["cross-spawn"], "effects": [], "range": ">=1.1.0", "nodes": ["node_modules/pre-commit"], "fixAvailable": {"name": "pre-commit", "version": "1.0.10", "isSemVerMajor": true}}, "preq": {"name": "preq", "severity": "high", "isDirect": true, "via": ["request", "requestretry"], "effects": [], "range": "*", "nodes": ["node_modules/preq"], "fixAvailable": false}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["preq", "requestretry"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "requestretry": {"name": "requestretry", "severity": "high", "isDirect": false, "via": [{"source": 1090420, "name": "requestretry", "dependency": "requestretry", "title": "Cookie exposure in requestretry", "url": "https://github.com/advisories/GHSA-hjp8-2cm3-cc45", "severity": "high", "cwe": ["CWE-200"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"}, "range": "<7.0.0"}, "request"], "effects": ["preq"], "range": "*", "nodes": ["node_modules/requestretry"], "fixAvailable": false}, "service-runner": {"name": "service-runner", "severity": "moderate", "isDirect": true, "via": ["limitation", "tar"], "effects": [], "range": ">=3.0.0", "nodes": ["node_modules/service-runner"], "fixAvailable": {"name": "service-runner", "version": "6.0.0", "isSemVerMajor": true}}, "tar": {"name": "tar", "severity": "moderate", "isDirect": false, "via": [{"source": 1097493, "name": "tar", "dependency": "tar", "title": "Denial of service while parsing a tar file due to lack of folders count validation", "url": "https://github.com/advisories/GHSA-f5x3-32g6-xq36", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": "<6.2.1"}], "effects": ["service-runner"], "range": "<6.2.1", "nodes": ["node_modules/tar"], "fixAvailable": {"name": "service-runner", "version": "6.0.0", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": false}, "wikimedia-kad-fork": {"name": "wikimedia-kad-fork", "severity": "moderate", "isDirect": false, "via": ["ms"], "effects": ["limitation"], "range": "*", "nodes": ["node_modules/wikimedia-kad-fork"], "fixAvailable": {"name": "service-runner", "version": "6.0.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 7, "high": 4, "critical": 0, "total": 11}, "dependencies": {"prod": 219, "dev": 418, "optional": 13, "peer": 1, "peerOptional": 0, "total": 648}}}}
$ /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 inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead.
npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained.
npm WARN deprecated rimraf@2.4.5: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated lodash.clone@4.5.0: This package is deprecated. Use structuredClone instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained.
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@6.0.4: Glob versions prior to v9 are no longer supported
npm WARN deprecated preq@0.5.14: Deprecated as this is a wrapper around the deprecated request library. Preq can be replaced with fetch, which is available from Node 18 as an experimental feature.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated eslint@8.57.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 647 packages, and audited 648 packages in 10s

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

# npm audit report

cross-spawn  <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
fix available via `npm audit fix --force`
Will install pre-commit@1.0.10, which is a breaking change
node_modules/pre-commit/node_modules/cross-spawn
  pre-commit  >=1.1.0
  Depends on vulnerable versions of cross-spawn
  node_modules/pre-commit

ms  <2.0.0
Severity: moderate
Vercel ms Inefficient Regular Expression Complexity vulnerability - https://github.com/advisories/GHSA-w9mr-4mfr-499f
fix available via `npm audit fix --force`
Will install service-runner@6.0.0, which is a breaking change
node_modules/wikimedia-kad-fork/node_modules/ms
  wikimedia-kad-fork  *
  Depends on vulnerable versions of ms
  node_modules/wikimedia-kad-fork
    limitation  >=0.2.3
    Depends on vulnerable versions of wikimedia-kad-fork
    node_modules/limitation
      service-runner  >=3.0.0
      Depends on vulnerable versions of limitation
      Depends on vulnerable versions of tar
      node_modules/service-runner

request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
node_modules/request
  preq  *
  Depends on vulnerable versions of request
  Depends on vulnerable versions of requestretry
  node_modules/preq
  requestretry  *
  Depends on vulnerable versions of request
  node_modules/requestretry


tar  <6.2.1
Severity: moderate
Denial of service while parsing a tar file due to lack of folders count validation - https://github.com/advisories/GHSA-f5x3-32g6-xq36
fix available via `npm audit fix --force`
Will install service-runner@6.0.0, which is a breaking change
node_modules/tar

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/tough-cookie

11 vulnerabilities (7 moderate, 4 high)

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 inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated lodash.get@4.4.2: This package is deprecated. Use the optional chaining (?.) operator instead.
npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained.
npm WARN deprecated rimraf@2.4.5: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated lodash.clone@4.5.0: This package is deprecated. Use structuredClone instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained.
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@6.0.4: Glob versions prior to v9 are no longer supported
npm WARN deprecated preq@0.5.14: Deprecated as this is a wrapper around the deprecated request library. Preq can be replaced with fetch, which is available from Node 18 as an experimental feature.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated eslint@8.57.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 647 packages, and audited 648 packages in 11s

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

11 vulnerabilities (7 moderate, 4 high)

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 ---
strict mode: missing type "object" for keyword "required" at "#/definitions/problem#" (strictTypes)
strict mode: missing type "object" for keyword "properties" at "#/definitions/problem#" (strictTypes)
--- stdout ---

> @wikimedia/wikifeeds@1.0.0 test
> npm run lint && PREQ_CONNECT_TIMEOUT=15 mocha --recursive


> @wikimedia/wikifeeds@1.0.0 lint
> eslint .


/src/repo/.eslintrc.json
  1:1  warning  Use the global form of 'use strict'  strict

/src/repo/app.js
   20:1   warning  The type 'bluebird' is undefined                  jsdoc/no-undefined-types
   64:37  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  136:1   warning  The type 'Application' is undefined               jsdoc/no-undefined-types
  138:1   warning  The type 'bluebird' is undefined                  jsdoc/no-undefined-types
  150:31  warning  Found non-literal argument in require             security/detect-non-literal-require
  197:1   warning  The type 'Application' is undefined               jsdoc/no-undefined-types
  198:1   warning  The type 'bluebird' is undefined                  jsdoc/no-undefined-types
  236:1   warning  The type 'bluebird' is undefined                  jsdoc/no-undefined-types

/src/repo/etc/news-sites.js
   4:1  warning  At most one access-control tag may be present on a jsdoc block  jsdoc/check-access
   5:1  warning  @private should not have a bracketed type in "jsdoc" mode       jsdoc/valid-types
   6:1  warning  @private should not have a bracketed type in "jsdoc" mode       jsdoc/valid-types
  50:1  warning  Syntax error in type: {Object.<string, NewsSite>}               jsdoc/valid-types

/src/repo/lib/announcements.js
   30:1  warning  Expected this semicolon to be at the end of the previous line  semi-style
   34:1  warning  This line has a length of 123. Maximum allowed is 100          max-len
   51:1  warning  This line has a length of 134. Maximum allowed is 100          max-len
   84:1  warning  This line has a length of 119. Maximum allowed is 100          max-len
   86:1  warning  This line has a length of 118. Maximum allowed is 100          max-len
  135:1  warning  This line has a length of 123. Maximum allowed is 100          max-len

/src/repo/lib/api-util.js
  296:1  warning  The type 'Application' is undefined  jsdoc/no-undefined-types

/src/repo/lib/featured.js
  136:12  warning  'si' is already declared in the upper scope on line 12 column 7  no-shadow

/src/repo/lib/imageinfo.js
   30:1   warning  The type 'Bool' is undefined                                                       jsdoc/no-undefined-types
   85:1   warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  132:1   warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  203:43  warning  Array.prototype.map() expects a return value from arrow function                   array-callback-return
  280:1   warning  Syntax error in type: [type]                                                       jsdoc/valid-types
  282:1   warning  Syntax error in type: [type]                                                       jsdoc/valid-types

/src/repo/lib/most-read.js
   80:1   warning  At most one access-control tag may be present on a jsdoc block          jsdoc/check-access
   81:1   warning  @public should not have a bracketed type in "jsdoc" mode                jsdoc/valid-types
   82:1   warning  @public should not have a bracketed type in "jsdoc" mode                jsdoc/valid-types
   99:1   warning  This line has a length of 122. Maximum allowed is 100                   max-len
  114:28  warning  Found non-literal argument to RegExp Constructor                        security/detect-non-literal-regexp
  115:1   warning  This line has a length of 112. Maximum allowed is 100                   max-len
  144:19  warning  'pageviews' is already declared in the upper scope on line 10 column 7  no-shadow
  160:25  warning  Array.prototype.map() expects a return value from arrow function        array-callback-return
  199:1   warning  This line has a length of 148. Maximum allowed is 100                   max-len
  209:1   warning  This line has a length of 113. Maximum allowed is 100                   max-len

/src/repo/lib/news.js
  15:1   warning  The type 'Document' is undefined                                      jsdoc/no-undefined-types
  73:12  warning  'si' is already declared in the upper scope on line 8 column 7        no-shadow
  96:20  warning  'result' is already declared in the upper scope on line 80 column 19  no-shadow

/src/repo/lib/on-this-day.js
   34:1   warning  The type 'Integer' is undefined                   jsdoc/no-undefined-types
  122:1   warning  The type 'AnchorElement' is undefined             jsdoc/no-undefined-types
  123:1   warning  The type 'Integer' is undefined                   jsdoc/no-undefined-types
  128:12  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  141:1   warning  The type 'AnchorElement' is undefined             jsdoc/no-undefined-types
  161:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  173:1   warning  The type 'AnchorElement' is undefined             jsdoc/no-undefined-types
  196:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  241:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  257:1   warning  The type 'Integer' is undefined                   jsdoc/no-undefined-types
  296:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  307:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  308:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  329:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  347:1   warning  The type 'ListElement' is undefined               jsdoc/no-undefined-types
  367:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  399:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  413:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  427:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  441:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  455:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  470:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  471:1   warning  The type 'Document' is undefined                  jsdoc/no-undefined-types
  530:1   warning  Missing JSDoc @param "sendResponse" type          jsdoc/require-param-type

/src/repo/lib/on-this-day.languages.js
   28:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
   30:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
   32:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
   60:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
   62:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
   64:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  100:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  102:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  104:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  128:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  130:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  132:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  156:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  158:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  160:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  189:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  191:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  193:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  217:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  219:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  221:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  245:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  247:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  249:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  273:13  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  275:13  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  277:13  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  301:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  303:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  305:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  335:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  337:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  339:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  362:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  364:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  366:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  390:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp
  392:11  warning  Found non-literal argument to RegExp Constructor  security/detect-non-literal-regexp

/src/repo/lib/pageviews.js
  36:1  warning  At most one access-control tag may be present on a jsdoc block  jsdoc/check-access
  37:1  warning  @private should not have a bracketed type in "jsdoc" mode       jsdoc/valid-types
  38:1  warning  @private should not have a bracketed type in "jsdoc" mode       jsdoc/valid-types
  39:1  warning  @private should not have a bracketed type in "jsdoc" mode       jsdoc/valid-types
  53:1  warning  The type 'Platform' is undefined                                jsdoc/no-undefined-types
  54:1  warning  The type 'Agent' is undefined                                   jsdoc/no-undefined-types
  56:1  warning  The type 'Granularity' is undefined                             jsdoc/no-undefined-types
  71:1  warning  The type 'Platform' is undefined                                jsdoc/no-undefined-types

/src/repo/lib/random.js
  38:9  warning  'score' is already declared in the upper scope on line 31 column 10  no-shadow
  55:1  warning  Missing JSDoc @param "scoredResults" type                            jsdoc/require-param-type

/src/repo/lib/siteinfo.js
   3:1   warning  Use the global form of 'use strict'  strict
  10:29  warning  Unsafe Regular Expression            security/detect-unsafe-regex

/src/repo/lib/util.js
  104:1   warning  The type 'Application' is undefined                                                jsdoc/no-undefined-types
  142:1   warning  The type 'Application' is undefined                                                jsdoc/no-undefined-types
  222:1   warning  The type 'Router' is undefined                                                     jsdoc/no-undefined-types
  280:1   warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  293:1   warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  306:1   warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check
  378:1   warning  The type 'Application' is undefined                                                jsdoc/no-undefined-types
  450:34  warning  Default parameters should be last                                                  default-param-last

/src/repo/package-lock.json
  1:1  warning  Use the global form of 'use strict'  strict

/src/repo/package.json
  1:1  warning  Use the global form of 'use strict'  strict

/src/repo/scripts/check-featured-feed.js
   49:35  warning  'feature' is already declared in the upper scope on line 212 column 7  no-shadow
   82:44  warning  'feature' is already declared in the upper scope on line 212 column 7  no-shadow
  107:34  warning  'feature' is already declared in the upper scope on line 212 column 7  no-shadow
  150:30  warning  'feature' is already declared in the upper scope on line 212 column 7  no-shadow
  217:5   warning  Don't use process.exit(); throw an error instead                       n/no-process-exit

/src/repo/spec.yaml
   228:1  warning  This line has a length of 154. Maximum allowed is 100  max-len
   232:1  warning  This line has a length of 141. Maximum allowed is 100  max-len
   866:1  warning  This line has a length of 117. Maximum allowed is 100  max-len
   871:1  warning  This line has a length of 116. Maximum allowed is 100  max-len
   876:1  warning  This line has a length of 116. Maximum allowed is 100  max-len
   881:1  warning  This line has a length of 116. Maximum allowed is 100  max-len
   886:1  warning  This line has a length of 116. Maximum allowed is 100  max-len
   938:1  warning  This line has a length of 108. Maximum allowed is 100  max-len
   955:1  warning  This line has a length of 126. Maximum allowed is 100  max-len
   956:1  warning  This line has a length of 107. Maximum allowed is 100  max-len
   962:1  warning  This line has a length of 132. Maximum allowed is 100  max-len
   969:1  warning  This line has a length of 127. Maximum allowed is 100  max-len
   971:1  warning  This line has a length of 108. Maximum allowed is 100  max-len
   972:1  warning  This line has a length of 113. Maximum allowed is 100  max-len
   973:1  warning  This line has a length of 121. Maximum allowed is 100  max-len
   977:1  warning  This line has a length of 121. Maximum allowed is 100  max-len
   981:1  warning  This line has a length of 113. Maximum allowed is 100  max-len
   985:1  warning  This line has a length of 111. Maximum allowed is 100  max-len
   991:1  warning  This line has a length of 124. Maximum allowed is 100  max-len
   995:1  warning  This line has a length of 281. Maximum allowed is 100  max-len
  1082:1  warning  This line has a length of 144. Maximum allowed is 100  max-len

✖ 150 problems (0 errors, 150 warnings)



  aggregated featured
starting test server
    ✔ should return 200 for a valid request (2312ms)
    ✔ should return 404 for an invalid year
    ✔ should return 404 for an invalid month
    ✔ should return 404 for an invalid day
    ✔ should return only historic keys for past date (550ms)
    ✔ should return current keys for today (1875ms)
    ✔ should return future keys for tomorrow (1539ms)

  aggregate onthisday
    ✔ should return 200 for a valid request (4649ms)
    ✔ should return 404 for an invalid month (210ms)
    ✔ should return 404 for an invalid day (165ms)
    ✔ should return objects with the expected keys (4724ms)

  express app
    ✔ should get robots.txt
    ✔ should set CORS headers
    ✔ should set CSP headers
    ✔ should get static content gzipped
    ✔ should get static content uncompressed

  Swagger spec
    ✔ get the spec
    ✔ spec validation
    validate responses against schema
      - random response should conform to schema
      ✔ featured article response should conform to schema (201ms)
      ✔ featured image response should conform to schema (184ms)
      1) most-read response should conform to schema
      ✔ news response should conform to schema (152ms)
      ✔ announcements should conform to schema
      ✔ onthisday response should conform to schema (3343ms)
      ✔ featured article response should conform to schema (invalid lang, agg=true)
      ✔ featured image response should conform to schema (invalid date, agg=true)
      ✔ most-read response should conform to schema (invalid date, agg=true)
      ✔ news response (invalid language, agg=true) should be empty
      ✔ featured article request should fail for invalid language when !agg=true
      ✔ featured image request should fail for invalid date when !agg=true
      ✔ most-read request should fail for invalid date when !agg=true
      ✔ news request should fail for invalid language when !agg=true
    validate spec examples
      ✔ spec from root
      ✔ retrieve service info
      ✔ Retrieve feed content availability from \'wikipedia.org\'
      ✔ Retrieve announcements
      ✔ retrieve selected events on January 15 (265ms)
      ✔ retrieve title of the featured article for April 29, 2016 (204ms)
      ✔ retrieve featured article info for unsupported site (with aggregated=true)
      ✔ retrieve featured image data for April 29, 2016 (1052ms)
      ✔ retrieve the most read articles for January 1, 2016 (567ms)
      ✔ retrieve the most-read articles for January 1, 2016 (with aggregated=true) (449ms)
      ✔ retrieve most-read articles for date with no data (with aggregated=true)
      ✔ get 'In the News' content (129ms)
      ✔ get "In the News" content for unsupported language (with aggregated=true)
      ✔ retrieve a random article title (81ms)

  featured
    ✔ incomplete date should return 404
    ✔ extra uri path parameter after date should return 404
    ✔ Missing TFA should return 204 (150ms)
    ✔ Missing TFA with aggregated=true should return 204 (189ms)
    ✔ featured article of an old date should return 404

  featured-image-lang
    ✔ bg description (2632ms)
    ✔ bn description (2049ms)
    ✔ bs description (293ms)
    ✔ cs description (292ms)
    ✔ de description (309ms)
    ✔ el description (292ms)
    ✔ en description (216ms)
    ✔ fa description (2027ms)
    ✔ he description (289ms)
    ✔ hu description (302ms)
    ✔ it description (315ms)
    ✔ ja description (265ms)
    ✔ la description (284ms)
    ✔ no description (292ms)
    ✔ sco description (339ms)
    ✔ sd description (303ms)
    ✔ sv description (319ms)
    ✔ tr description (290ms)
    ✔ ur description (2053ms)
    ✔ vi description (298ms)
    ✔ zh description (345ms)

  featured-image
    ✔ incomplete date should return 404
    ✔ extra uri path parameter after date should return 404

  service information
    ✔ should get the service name
    ✔ should get the service version
    ✔ should redirect to the service home page
    ✔ should get the service info

  most-read articles
    ✔ Should provide pageviews from day prior when aggregated flag is set (389ms)
    ✔ Should drop duplicate pageviews (4080ms)
    ✔ Should filter out missing summaries (370ms)
    ✔ Should return 204 for fywiki requests
    ✔ main page filtering RegExp should handle all main page title chars
    ✔ Should filter out blocked titles from some languages, but not others
    ✔ Should filter out certain blocked titles from all wikis

  most-read articles
    ✔ Should return 200 even if title has invalid utf8 encoding (2028ms)
    ✔ Should filter-out invalid utf8 encoding

  news headline selectors
    ✔ test news headlines should be general not categorical
    ✔ test news headline topics should be nonnull
    ✔ bs news headlines should be general not categorical
    ✔ bs news headline topics should be nonnull
    ✔ da news headlines should be general not categorical
    ✔ da news headline topics should be nonnull
    ✔ de news headlines should be general not categorical
    ✔ de news headline topics should be nonnull
    ✔ el news headlines should be general not categorical
    ✔ el news headline topics should be nonnull
    ✔ en news headlines should be general not categorical
    ✔ en news headline topics should be nonnull
    ✔ es news headlines should be general not categorical
    ✔ es news headline topics should be nonnull
    ✔ fi news headlines should be general not categorical
    ✔ fi news headline topics should be nonnull
    ✔ fr news headlines should be general not categorical
    ✔ fr news headline topics should be nonnull
    ✔ he news headlines should be general not categorical
    ✔ he news headline topics should be nonnull
    ✔ ko news headlines should be general not categorical
    ✔ ko news headline topics should be nonnull
    ✔ no news headlines should be general not categorical
    ✔ no news headline topics should be nonnull
    ✔ pl news headlines should be general not categorical
    ✔ pl news headline topics should be nonnull
    ✔ pt news headlines should be general not categorical
    ✔ pt news headline topics should be nonnull
    ✔ ru news headlines should be general not categorical
    ✔ ru news headline topics should be nonnull
    ✔ sco news headlines should be general not categorical
    ✔ sco news headline topics should be nonnull
    ✔ sv news headlines should be general not categorical
    ✔ sv news headline topics should be nonnull
    ✔ vi news headlines should be general not categorical
    ✔ vi news headline topics should be nonnull
    ✔ news headline topic should be the first bold link
    ✔ news headline topic should be the first link when no link is bolded

  news
    ✔ test: results list should have expected properties (679ms)
    ✔ bs: results list should have expected properties (2172ms)
    ✔ da: results list should have expected properties (199ms)
    ✔ de: results list should have expected properties (586ms)
    ✔ el: results list should have expected properties (130ms)
    ✔ en: results list should have expected properties (122ms)
    ✔ es: results list should have expected properties (258ms)
    ✔ fi: results list should have expected properties (957ms)
    ✔ fr: results list should have expected properties (1150ms)
    ✔ he: results list should have expected properties (256ms)
    ✔ ko: results list should have expected properties (250ms)
    2) no: results list should have expected properties
    ✔ pl: results list should have expected properties (2314ms)
    ✔ pt: results list should have expected properties (1196ms)
    ✔ ru: results list should have expected properties (540ms)
    ✔ sco: results list should have expected properties (147ms)
    ✔ sv: results list should have expected properties (283ms)
    ✔ vi: results list should have expected properties (169ms)

  onthisday
    ✔ all: unsupported language throws 404
    ✔ selected: unsupported language throws 404
    ✔ selected: fetches some results (350ms)
    ✔ births: unsupported language throws 404
    ✔ births: fetches some results (2145ms)
    ✔ deaths: unsupported language throws 404
    ✔ deaths: fetches some results (1127ms)
    ✔ events: unsupported language throws 404
    ✔ events: fetches some results (1134ms)
    ✔ holidays: unsupported language throws 404
    ✔ holidays: fetches some results (360ms)
    ✔ "all" fetches some results for births, deaths, events, holidays and selected (2394ms)
    ✔ filters out duplicate articles from pages (2417ms)

  random/title
    ✔ pickBestResult should select best-scored title from sample
    ✔ redirects to the right format with random title - html (68ms)
    ✔ redirects to the right format with random title - invalid format
    ✔ returns 404 for yue.wikipedia.org
stopping test server

  lib:announcements
    ✔ should return no announcement for inactive wiki
    ✔ should return one or more announcements for active wiki

  lib:announcements:etc
    ✔ should return no image_url
    ✔ should return correct type
    ✔ countries is an array of strings
    ✔ should not deliver HTML in certain legacy iOS announcements fields
    ✔ iOS legacy fundraising announcement should have the proper platform ID
    ✔ iOS fundraising announcement should have the proper platform ID
    ✔ should deliver HTML in certain V2 announcements fields
    ✔ caption_HTML on iOS should be inside a paragraph
    ✔ caption_HTML on Android should not be inside a paragraph
    ✔ should return no image_url
    ✔ should return correct type
    ✔ countries is an array of strings
    ✔ should not deliver HTML in certain legacy iOS announcements fields
    ✔ iOS legacy fundraising announcement should have the proper platform ID
    ✔ iOS fundraising announcement should have the proper platform ID
    ✔ should deliver HTML in certain V2 announcements fields
    ✔ caption_HTML on iOS should be inside a paragraph
    ✔ caption_HTML on Android should not be inside a paragraph
    ✔ should return no image_url
    ✔ should return correct type
    ✔ countries is an array of strings
    ✔ should not deliver HTML in certain legacy iOS announcements fields
    ✔ iOS legacy fundraising announcement should have the proper platform ID
    ✔ iOS fundraising announcement should have the proper platform ID
    ✔ should deliver HTML in certain V2 announcements fields
    ✔ caption_HTML on iOS should be inside a paragraph
    ✔ caption_HTML on Android should not be inside a paragraph
    ✔ should return no image_url
    ✔ should return correct type
    ✔ countries is an array of strings
    ✔ should not deliver HTML in certain legacy iOS announcements fields
    ✔ iOS legacy fundraising announcement should have the proper platform ID
    ✔ iOS fundraising announcement should have the proper platform ID
    ✔ should deliver HTML in certain V2 announcements fields
    ✔ caption_HTML on iOS should be inside a paragraph
    ✔ caption_HTML on Android should not be inside a paragraph
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    ✔ buildId should not return lower case characters
    .hasEnded
      ✔ invalid endTime
      ✔ endTime has passed
      ✔ endTime has not passed yet
    announcements-unit-config
      ✔ all dates should be valid

  MW core page HTML
    ✔ fetches the core page html output only with title in params
    ✔ fetches the core page html output with revision in params

  featured-unit
    ✔ isSupported should return the correct boolean
    ✔ findPageTitle should find the first bold link: a inside b
    ✔ findPageTitle should find the first bold link: b inside a
    ✔ findPageTitle should return undefined if nothing found

  featured-image-unit
    ✔ structureExtMetadataValue returns description for preferred lang if present
    ✔ structureExtMetadataValue falls back to en description if preferred lang not present
    ✔ structureExtMetadataValue returns lang undefined for type of value equals to string
    ✔ structureExtMetadataValue returns undefined for undefined input

  news-unit
    ✔ news story constructed correctly (duplicate titles handled correctly)
    ✔ floating spans are removed

  onthisday-unit
    ✔ eventsForYearListElements returns a WMFEvent for only year list elements
    ✔ Sort year list events in correct BC[E] aware manner
    page title generation: titleForDayPageFromMonthDayNumberStrings
      ✔ 1 digit mm and 1 digit dd
      ✔ 0 padded mm and 1 digit dd
      ✔ 0 padded mm and 0 padded dd
    day page URI generation: dayTitleForRequest
      ✔ returns expected title for 0 padded month and 2 digit day
      ✔ returns expected title for 2 digit month and 0 padded day
      ✔ returns expected title for 1 digit month and 1 digit day
    selected page URI generation: selectedTitleForRequest
      ✔ returns expected title for 0 padded month and 2 digit day
      ✔ returns expected title for 2 digit month and 0 padded day
      ✔ returns expected title for 1 digit month and 1 digit day
    anchor to WMFPage transforms: wmfPageFromAnchorElement
      ✔ WMFPage model object is correctly created from a topic anchor
      ✔ WMFPage model object is correctly created from a non-topic anchor
    wmfEventFromListElement: WMFEvent model object is correctly created
      ✔ from a selected list element
      ✔ from a birth list element
      ✔ from an event list element
      ✔ from a death list element
      ✔ from a birth list element
      ✔ from a selected div element on zhwiki
      ✔ wmfEventFromListElement should return null for elements not describing events
    wmfHolidayFromListElement: WMFHoliday model object is correctly created
      ✔ WMFHoliday model object is correctly created from a holiday list element
    yearListElementRegEx
      ✔ rejects malformed BC strings
      ✔ accepts well formed BC strings
      ✔ accepts well formed BCE strings
      ✔ accepts well formed CE strings
      ✔ accepts well formed year strings (no BCE/AD/CE)
      ✔ accepts well formed AD strings
      ✔ extracts expected BC/BCE strings
      ✔ extracts expected BC/BCE strings in Chinese
      ✔ AD strings should not be negated
      ✔ rejects non year list strings
      ✔ rejects strings missing text
    listElementsByHeadingID extracts expected number of births from
      ✔ DE fixture (63ms)
      ✔ EN fixture (63ms)
      ✔ AR fixture
      ✔ BS fixture
    nested list element handling
      ✔ listElementsByHeadingID extracts expected number of holidays from EN fixture
      ✔ expected textContent for a list item NOT nested within another list item
      ✔ expected textContent for a list item nested within another list item
      ✔ expected textContent for list items nested within a year-dash list item
      ✔ expected textContent for list items nested within a year list item (no dash)
      addPrefixFromAncestorListElementsToListElement
        ✔ expected extraction from ancestor year element
        ✔ expected extraction from multiline ancestor year element
        ✔ expected extraction from ancestor year element with dash
        ✔ expected extraction from ancestor year element with dash space
        ✔ expected extraction from multiline ancestor year element with dash
        ✔ expected extraction from multiline non-year ancestor
        ✔ expected extraction from double-nested list element
        ✔ expected extraction from triple-nested list element
        ✔ expected extraction from nested Russian list element with "год"
        ✔ Prefixed text content from ancestor element is escaped
    isAnchorForYear
      ✔ correctly identifies anchor linking to year article
      ✔ correctly rejects anchor linking article starting with a year
      ✔ correctly rejects anchor linking article starting with a number
      ✔ correctly rejects anchor linking article not starting with a year
      ✔ correctly identifies anchor linking to year article with an era string
      ✔ correctly identifies anchor linking to year article with era string w/o space
    external urls should be excluded
      ✔ exclude external url from WMFHoliday pages
      ✔ exclude external url from WMFEvent pages
    style tags should be dropped
      ✔ exclude style tags

  random
    ✔ pickBestResult should select best-scored title from sample

  util
    ✔ promiseAwaitAll, ignoreRejected
    ✔ promiseAwaitAll, propagate rejected
    removeDuplicateTitles
      ✔ deduplicates and applies update function


  283 passing (1m)
  1 pending
  2 failing

  1) Swagger spec
       validate responses against schema
         most-read response should conform to schema:
     HTTPError: The date(s) you used are valid, but we either do not have data for those date(s), or the project you asked for is not loaded yet. Please check documentation for more information
      at request.then.query (node_modules/preq/index.js:228:23)
      at tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromise0 (node_modules/bluebird/js/release/promise.js:649:10)
      at Promise._settlePromises (node_modules/bluebird/js/release/promise.js:729:18)
      at _drainQueueStep (node_modules/bluebird/js/release/async.js:93:12)
      at _drainQueue (node_modules/bluebird/js/release/async.js:86:9)
      at Async._drainQueues (node_modules/bluebird/js/release/async.js:102:5)
      at Async.drainQueues [as _onImmediate] (node_modules/bluebird/js/release/async.js:15:14)
      at process.processImmediate (node:internal/timers:476:21)

  2) news
       no: results list should have expected properties:
     Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/src/repo/test/features/news/news.js)
      at listOnTimeout (node:internal/timers:569:17)
      at process.processTimers (node:internal/timers:512:7)




--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 2026, in main
    libup.run(args.repo, args.output, args.branch)
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1968, in run
    self.npm_audit_fix(new_npm_audit)
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 275, in npm_audit_fix
    self.npm_test()
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 325, in npm_test
    self.check_call(["npm", "test"])
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/shell2.py", line 63, in check_call
    res.check_returncode()
  File "/usr/lib/python3.11/subprocess.py", line 502, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 2.
Source code is licensed under the AGPL.