2.4 KiB
de/wikipedia — German Wikipedia frequency dictionary
(no submodules)
Purpose
Frequency-ranked dictionary of the most common German tokens observed in
Wikipedia (CC-BY-SA public-domain frequency lists). Plugs into assess
via loadDictionaries so German-locale passwords are evaluated against a
locale-appropriate corpus.
Features
- Frozen
ReadonlyMap<string, number>keyed by lowercase token - 50-entry default — high-frequency German stopwords and the common
passworttoken used by the spec scenarios - Production deployments should swap in a fuller list via
loadDictionaries
Usage: Basic Example
import { DE_WIKIPEDIA_DICTIONARY } from "@suaveplan/password-strength/dicts/de";
console.log(DE_WIKIPEDIA_DICTIONARY.get("passwort")); // 1
Usage: Advanced Example
import { assess } from "@suaveplan/password-strength";
import { DE_DICTIONARIES } from "@suaveplan/password-strength/dicts/de";
const result = assess("passwort123", { dictionaries: DE_DICTIONARIES });
console.log(result.score);
API Reference
DE_WIKIPEDIA_DICTIONARY: ReadonlyMap<string, number>— frozen frequency-ranked German Wikipedia dictionary.
Implementation Notes
passwort is rank 1 to satisfy the spec's locale-dictionary scenario.
Production lists should track Wikipedia's published top-30 000 German
tokens, but the bundled subset keeps the package bundle small while
demonstrating the locale-plug-in pattern.
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.