@controlplane/cli
Version:
Control Plane Corporation CLI
36 lines • 1.11 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseSaToken = exports.nextName = void 0;
const base64url_1 = require("base64url");
const crypto_1 = require("crypto");
const base32Encode = require('base32-encode');
function nextName(prefix, length) {
if (!length || length < 8) {
length = 8;
}
if (prefix === undefined) {
const first = 'xbgjkmqacpez';
prefix = first[Math.floor(Math.random() * Math.floor(first.length))];
length -= 1;
}
const buf = (0, crypto_1.randomBytes)(length);
return prefix + base32Encode(buf, 'Crockford').toLowerCase().substring(0, length);
}
exports.nextName = nextName;
function parseSaToken(s) {
if (!s) {
return null;
}
if (s.startsWith('s')) {
// maybe a service account
let key = base64url_1.default.decode(s.split('.')[1] || '');
let parts = key.split('.');
return {
org: parts[0],
name: parts[1],
};
}
return null;
}
exports.parseSaToken = parseSaToken;
//# sourceMappingURL=names.js.map
;