UNPKG

npm-shortidx

Version:

Generador de Id aleatorios, Random Id Generator

285 lines (192 loc) 5.61 kB
# npm-shortidx `npm-shortidx` es una librería para generar identificadores aleatorios cortos. Incluye funciones para generar IDs con diferentes conjuntos de caracteres y para reordenar arrays de manera aleatoria. > ⚠️ **Nota de Versión 1.4.0** > > A partir de la versión 1.4.0, todas las funciones de generación de IDs (`ShortIdx`, `RandomIdx`, etc.) utilizan `crypto.getRandomValues` para una aleatoriedad criptográficamente segura. > > Sin embargo, para contraseñas, seguimos recomendando usar `PasswordGen` ya que ofrece una API específica para configuración de seguridad. ## Tabla de Contenidos - [Instalación](#instalación) - [Métodos](#métodos) - [ShortIdx](#shortidx) - [RandomIdx](#randomidx) - [CustomIdx](#customidx) - [RepeatIdx](#repeatidx) - [ShuffleX](#shufflex) - [IndexShuffle](#indexshuffle) - [ShuffleString](#shufflestring) - [PasswordGen](#PasswordGen) - [Ejemplos](#ejemplos) - [Contribuciones](#contribuciones) - [Licencia](#licencia) ## Instalación ```bash npm i npm-shortidx ``` ```bash yarn add npm-shortidx ``` ## Métodos ### 🛡️ Seguridad Desde la versión **1.4.0**, esta librería utiliza `crypto.getRandomValues` (Web Crypto API) internamente para todas las operaciones de aleatoriedad. - **IDs Seguros**: `ShortIdx`, `RandomIdx` y `CustomIdx` generan identificadores con alta entropía y aleatoriedad criptográfica. - **Contraseñas**: `PasswordGen` está optimizada específicamente para generar contraseñas seguras. ```ts ShortIdx(), RandomIdx(), CustomIdx(), RepeatIdx(), ShuffleX(), IndexShuffle(), ShuffleString(), PasswordGen(); ``` --- ### ShortIdx() Genera IDs aleatorios con caracteres alfanuméricos. **Caracteres usados**: ``` 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_ ``` **Uso**: ```ts import { ShortIdx } from "npm-shortidx"; ShortIdx(); // "G7ksLzW" ShortIdx(12); // "AdE8fsU1KqpQ" ``` --- ### RandomIdx() Genera IDs aleatorios que incluyen símbolos y caracteres especiales. **Caracteres usados**: ``` 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!#$%&'()*+,./:;<=>?@[]^`{|}~\" ``` **Uso**: ```ts import { RandomIdx } from "npm-shortidx"; RandomIdx(); // "s@L!z82_" RandomIdx(10); // "*>d3@9x^Z!" ``` --- ### CustomIdx() Genera un ID usando un conjunto de caracteres personalizado. ```ts import { CustomIdx } from "npm-shortidx"; CustomIdx("ABC123", 5); // "2B1AC" ``` --- ### RepeatIdx() Genera múltiples IDs de forma masiva. ```ts import { RepeatIdx, ShortIdx } from "npm-shortidx"; RepeatIdx(4, ShortIdx); // ["R3f7tK1", "gTz1xL9", ...] RepeatIdx(3, RandomIdx, 10); // ["<xD&0j9@#", "2K!lm8$@#", ...] ``` --- ### ShuffleX() Reordena arrays de forma aleatoria. ```ts import { ShuffleX } from "npm-shortidx"; const items = ["a", "b", "c", "d"]; ShuffleX(items); // ['c', 'a', 'd', 'b'] ShuffleX(items, 2); // ['b', 'd'] ``` --- ### IndexShuffle() Devuelve un array de índices aleatorios. ```ts import { IndexShuffle } from "npm-shortidx"; IndexShuffle(5); // [2, 0, 4, 1, 3] ``` --- ### ShuffleString() Desordena los caracteres de un string. ```ts import { ShuffleString } from "npm-shortidx"; ShuffleString("abcdef"); // "ecdbfa" ``` ## ¿Qué función debo usar? | Caso de uso | Función | | --------------------------------- | --------------- | | IDs cortos y ligeros | `ShortIdx` | | IDs con símbolos | `RandomIdx` | | IDs con charset personalizado | `CustomIdx` | | Generar múltiples IDs | `RepeatIdx` | | Barajar arrays sin mutarlos | `ShuffleX` | | Obtener índices aleatorios | `IndexShuffle` | | Reordenar caracteres de un string | `ShuffleString` | | Generar contraseñas seguras | `PasswordGen` | --- ## Ejemplos **Uso en React** ```jsx import { ShortIdx } from "npm-shortidx"; function App() { const letters = ["a", "b", "c", "d"]; return ( <> <p>{ShortIdx()}</p> {letters.map((letter) => ( <p key={ShortIdx()}>{letter}</p> ))} </> ); } ``` **Cambiando la longitud del ID** ```ts ShortIdx(15); // "Kz83kJqsTg92Lm1" ``` **Generando múltiples IDs** ```ts RepeatIdx(5, RandomIdx, 10); // ['@d8Lz!pZ3x', '29&Lk1@9Tq', ...] ``` **Reordenando caracteres de un string** ```ts ShuffleString("hola mundo"); // "ouh nldma" ``` --- ### PasswordGen() Genera contraseñas aleatorias utilizando una fuente de aleatoriedad criptográficamente segura (`crypto.getRandomValues`). **Uso recomendado**: - Contraseñas - Tokens de seguridad - Claves temporales sensibles **No recomendado para**: - IDs visuales - Keys de UI - Slugs Por defecto, el generador utiliza únicamente letras ASCII: - a–z - A–Z Esto garantiza compatibilidad máxima con cualquier sistema. **Caracteres por defecto**: ``` abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ``` Si necesitas números, símbolos o caracteres Unicode, agrégalos explícitamente mediante `extraChars` . **Uso**: ```ts import { PasswordGen } from "npm-shortidx"; PasswordGen(); // Ejemplo: "A9kP2Lm8Qx1Z" (Alfanumérico por defecto) PasswordGen({ extraChars: "!@#$%" }); // Ejemplo con símbolos: "A9$kP2@Lm8#Qx1!Z" PasswordGen({ length: 24, }); PasswordGen({ extraChars: "_-+=", }); ``` PasswordGen está diseñada para seguridad. Usa esta función siempre que necesites una contraseña real. --- ## Contribuciones ¡Las contribuciones son bienvenidas! Siéntete libre de abrir un issue o enviar un pull request. --- ## Licencia ### MIT