UNPKG

@strongnguyen/oidc-provider

Version:

OAuth 2.0 Authorization Server implementation for Node.js with OpenID Connect

34 lines (27 loc) 743 B
const nanoid = require('./nanoid'); const CHARS = { 'base-20': 'BCDFGHJKLMNPQRSTVWXZ', digits: '0123456789', }; module.exports.generate = (charset, mask) => { const length = mask.split('*').length - 1; const generated = nanoid(length, CHARS[charset]).split(''); return mask.split('').map((p) => { if (p === '*') { return generated.shift(); } return p; }).join(''); }; module.exports.denormalize = (normalized, mask) => { const chars = normalized.split(''); return mask.split('').map((p) => { if (p === '*') { return chars.shift(); } return p; }).join(''); }; module.exports.normalize = (input) => input .replace(/[a-z]/g, (char) => char.toUpperCase()) .replace(/\W/g, () => '');