Files
skills/docs/security-stack/security/password-strength/src/dicts/ru/wikipedia.md
2026-05-29 08:20:56 +01:00

2.2 KiB
Raw Blame History

ru/wikipedia — Russian Wikipedia frequency dictionary

(no submodules)

Purpose

Frequency-ranked dictionary of the most common Russian tokens observed in Wikipedia. Plugs into assess for Russian-locale strength evaluation.

Features

  • Frozen ReadonlyMap<string, number> keyed by Cyrillic token
  • Covers high-frequency Russian stopwords and common nouns
  • Swappable via loadDictionaries

Usage: Basic Example

import { RU_WIKIPEDIA_DICTIONARY } from "@suaveplan/password-strength/dicts/ru";

console.log(RU_WIKIPEDIA_DICTIONARY.get("пароль")); // 1

Usage: Advanced Example

import { assess } from "@suaveplan/password-strength";
import { RU_DICTIONARIES } from "@suaveplan/password-strength/dicts/ru";

const result = assess("пароль123", { dictionaries: RU_DICTIONARIES });
console.log(result.score);

API Reference

  • RU_WIKIPEDIA_DICTIONARY: ReadonlyMap<string, number> — frozen frequency-ranked Russian Wikipedia dictionary.

Implementation Notes

The bundled subset is intentionally compact; production deployments should swap in a fuller list. Russian tokens are matched against the lowercased form of the input, so assess will pick up ПАРОЛЬ as well via the uppercase variation factor in estimateGuesses.

Additional Implementation Notes

The implementation follows the canonical zxcvbn algorithm from Wheeler 2016 with the suaveplan-style additions described in the package proposal: structured error codes via the defineCodes registry, Zod boundaries at every public entry point, OTel histograms and counters keyed to low-cardinality attributes, and a strict input-length guard at 200 characters. Consumers integrate with their existing observability stack by installing a meter provider before importing the package, and with their i18n stack via the MessageResolver callback type declared in @suaveplan/types. The bundled data tables are intentionally small to keep the package bundle compact; production deployments should swap in fuller frequency-ranked tables via loadDictionaries. The default English dictionary set is a frozen DictionarySet that the matcher never mutates; caller-supplied dictionaries override defaults by name.