@akuma225/random
v1.0.3
Published
Bibliothèque TypeScript pour la génération de valeurs aléatoires avec support pour OTP, tokens, mots de passe et nombres
Maintainers
Readme
@akuma225/random
Une bibliothèque TypeScript moderne et complète pour la génération de valeurs aléatoires avec support pour OTP, tokens, mots de passe et nombres entiers.
🚀 Fonctionnalités
- Génération de booléens aléatoires : Valeurs true/false aléatoires
- Nombres entiers aléatoires : Génération de nombres dans une plage spécifiée
- OTP (One-Time Password) : Génération de codes numériques à usage unique
- Tokens aléatoires : Génération de chaînes de caractères complexes
- Mots de passe sécurisés : Génération avec validation par regex
- TypeScript complet : Types stricts et documentation JSDoc
- Performance optimisée : Algorithmes efficaces pour la génération
- Validation intégrée : Support pour la validation de mots de passe
📦 Installation
npm install @akuma225/randomou
yarn add @akuma225/random🔧 Utilisation
Import des fonctions
import {
randomBoolean,
randomInteger,
randomOtp,
randomToken,
randomPassword
} from '@akuma225/random';Génération de booléens aléatoires
// Génère true ou false de manière aléatoire
const isActive = randomBoolean();
console.log(isActive); // true ou falseGénération de nombres entiers
// Génère un nombre entier entre 1 et 100 (inclus)
const randomNumber = randomInteger(1, 100);
console.log(randomNumber); // 42 (exemple)
// Génère un nombre entier entre 0 et 9
const digit = randomInteger(0, 9);
console.log(digit); // 7 (exemple)Génération d'OTP
// Génère un OTP de 6 chiffres
const otp = randomOtp(6);
console.log(otp); // "123456" (exemple)
// Génère un OTP de 4 chiffres
const shortOtp = randomOtp(4);
console.log(shortOtp); // "7890" (exemple)Génération de tokens
// Génère un token de 32 caractères
const token = randomToken(32);
console.log(token); // "aB3$kL9#mN2@xY7&vR5*qW8" (exemple)
// Génère un token de 16 caractères
const shortToken = randomToken(16);
console.log(shortToken); // "kL9#mN2@xY7&vR5" (exemple)Génération de mots de passe
// Génère un mot de passe de 12 caractères
const password = randomPassword(12);
console.log(password); // "aB3$kL9#mN2@" (exemple)
// Génère un mot de passe avec validation regex
const securePassword = randomPassword(12, '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{12,}$');
console.log(securePassword); // Mot de passe conforme au regex📋 Fonctions disponibles
randomBoolean(): boolean
Génère une valeur booléenne aléatoire (true ou false).
Retourne : boolean - Une valeur true ou false aléatoire.
randomInteger(min: number, max: number): number
Génère un nombre entier aléatoire dans la plage spécifiée (inclus).
Paramètres :
min(number) - La valeur minimale (incluse)max(number) - La valeur maximale (incluse)
Retourne : number - Un nombre entier aléatoire entre min et max.
randomOtp(length: number): string
Génère un OTP (One-Time Password) numérique de la longueur spécifiée.
Paramètres :
length(number) - La longueur de l'OTP
Retourne : string - Un OTP numérique de la longueur spécifiée.
randomToken(length: number): string
Génère un token aléatoire contenant des lettres, chiffres et caractères spéciaux.
Paramètres :
length(number) - La longueur du token
Retourne : string - Un token aléatoire de la longueur spécifiée.
randomPassword(length: number, validRegex?: string): string
Génère un mot de passe aléatoire avec validation optionnelle par regex.
Paramètres :
length(number) - La longueur du mot de passevalidRegex(string, optionnel) - Regex pour valider le mot de passe
Retourne : string - Un mot de passe aléatoire de la longueur spécifiée.
🔍 Exemples d'utilisation avancée
Génération de codes de vérification
// Génère un code de vérification email
const emailCode = randomOtp(6);
console.log(`Votre code de vérification est : ${emailCode}`);
// Génère un code de vérification SMS
const smsCode = randomOtp(4);
console.log(`Votre code SMS est : ${smsCode}`);Génération de tokens d'authentification
// Génère un token d'accès
const accessToken = randomToken(64);
console.log(`Token d'accès : ${accessToken}`);
// Génère un token de rafraîchissement
const refreshToken = randomToken(128);
console.log(`Token de rafraîchissement : ${refreshToken}`);Validation de mots de passe
// Regex pour un mot de passe sécurisé
const securePasswordRegex = '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$';
// Génère un mot de passe conforme
const securePassword = randomPassword(12, securePasswordRegex);
console.log(`Mot de passe sécurisé : ${securePassword}`);
// Vérifie que le mot de passe est conforme
const isValid = new RegExp(securePasswordRegex).test(securePassword);
console.log(`Mot de passe valide : ${isValid}`);Génération de données de test
// Génère des données de test aléatoires
const testData = {
id: randomInteger(1, 1000),
isActive: randomBoolean(),
verificationCode: randomOtp(6),
apiKey: randomToken(32)
};
console.log('Données de test :', testData);🧪 Tests
# Exécuter les tests
npm test
# Tests en mode watch
npm run test:watch
# Tests avec couverture
npm run test:coverage🔧 Scripts disponibles
npm run build- Compiler la bibliothèquenpm run dev- Compiler en mode watchnpm run clean- Nettoyer le dossier distnpm run lint- Vérifier le code avec ESLintnpm run lint:fix- Corriger automatiquement les erreurs ESLint
📄 Licence
MIT
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
📞 Support
Pour toute question ou problème, veuillez ouvrir une issue sur GitHub.
