function uuidv4() { if (crypto) { return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); } else return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toStirng(16); }); } const UUID_RE = /^(\w{8}(-\w{4}){3}-\w{12}?)$/i; function is_uuid(id) { return (typeof id === 'string' || id instanceof String) && UUID_RE.test(id); } const addEventListenerHack = (to, ev, lam) => { to.addEventListener(ev, lam); return lam; }; export {addEventListenerHack, uuidv4, is_uuid};