File Manager Lite
Dir:
/home/u540325668/domains/sostabazar.in/public_html/node_modules/nanoid
Upload
[..]
LICENSE (1.07 KB)
Edit
Rename
Del
README.md (1.52 KB)
Edit
Rename
Del
async/
Rename
Del
bin/
Rename
Del
index.browser.cjs (1.05 KB)
Edit
Rename
Del
index.browser.js (1.04 KB)
Edit
Rename
Del
index.cjs (1.31 KB)
Edit
Rename
Del
index.d.ts (2.2 KB)
Edit
Rename
Del
index.js (1.29 KB)
Edit
Rename
Del
nanoid.js (169 B)
Edit
Rename
Del
non-secure/
Rename
Del
url-alphabet/
Rename
Del
Edit: index.js
import crypto from 'crypto' import { urlAlphabet } from './url-alphabet/index.js' const POOL_SIZE_MULTIPLIER = 128 let pool, poolOffset let fillPool = bytes => { if (!pool || pool.length < bytes) { pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) crypto.randomFillSync(pool) poolOffset = 0 } else if (poolOffset + bytes > pool.length) { crypto.randomFillSync(pool) poolOffset = 0 } poolOffset += bytes } let random = bytes => { fillPool((bytes -= 0)) return pool.subarray(poolOffset - bytes, poolOffset) } let customRandom = (alphabet, defaultSize, getRandom) => { let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) return (size = defaultSize) => { let id = '' while (true) { let bytes = getRandom(step) let i = step while (i--) { id += alphabet[bytes[i] & mask] || '' if (id.length === size) return id } } } } let customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size, random) let nanoid = (size = 21) => { fillPool((size -= 0)) let id = '' for (let i = poolOffset - size; i < poolOffset; i++) { id += urlAlphabet[pool[i] & 63] } return id } export { nanoid, customAlphabet, customRandom, urlAlphabet, random }
Simpan