
Security News
Nx npm Packages Compromised in Supply Chain Attack Weaponizing AI CLI Tools
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
A node implementation of the ELO-MMR player ranking.
This code is based on the Python version https://github.com/duhby/elommr which is Copyright 2023-2024 duhby, and released under the MIT license. It wouldn't be possible without their help and code.
This is the conversion from python example, and is in [node_example.ts](https://github.com/chad3814/elo-mmr/blob/main/node_example.ts)
:
import { EloMmr, Standing } from "./lib/elo_mmr"
import { Player } from "./lib/player";
import { Rating } from "./lib/rating";
function main(): void {
const elo_mmr = new EloMmr();
const player1 = new Player(new Rating());
const player2 = new Player(new Rating())
const standings: Standing[] = [
[
player1,
0, 0 // Range of players that got or tied for first
],
[
player2,
1, 1 // Range of players that got or tied for second
],
];
// Note that the contest_time does not do anything in this example
// because EloMMR.drift_per_sec defaults to 0, so contest_time
// can be omitted from the round_update call, but it is included
// here to show how it can be used.
// Do note, though, that you should either always include
// contest_time or never include it, because if you include it
// in some competitions and not others, the ratings will be skewed
// incorrectly.
const contest_time = new Date();
elo_mmr.roundUpdate(standings, contest_time);
const next_contest_time = new Date(contest_time.getMilliseconds() + 10000);
// Assumes the outcome of the next competition is the same as the
// previous, so the standings aren't changed.
elo_mmr.roundUpdate(standings, next_contest_time);
for (const player of [player1, player2]) {
console.log("\nrating_mu, rating_sig, perf_score, place");
for(const event of player.eventHistory) {
console.log(`${event.rating.mu}, ${event.rating.sig}, ${event.performanceScore}, ${event.place}`);
}
console.log(`Final rating: ${player.eventHistory[player.eventHistory.length - 1].toString()}`);
}
// >>>
// rating_mu, rating_sig, perf_score, place
// 1629, 171, 1654, 0
// 1645, 130, 1663, 0
// Final rating: 1645 ± 100
//
// rating_mu, rating_sig, perf_score, place
// 1371, 171, 1346, 1
// 1355, 130, 1337, 1
// Final rating: 1355 ± 100
}
main();
FAQs
A multiplayer ELO ranking system
We found that elo-mmr demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.