Нашел на просторах инета функцию генерации UUID:
const uuid =()=>([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,c=>(c^crypto.getRandomValues(new Uint8Array(1))[0]&15 >> c/4).toString(16));
Поясните работу. В частности зачем сдвиг? Ну и все остальное.
Чтобы было понятно - если бы я писал такую функцию, с таким же подходом, то у меня она выглядела бы примерно так:
const uuid =()=>([1e7]+-1e3+-1e3+-1e3+-1e11).replace(/[01]/g,()=>(crypto.getRandomValues(new Uint8Array(1))[0]&15).toString(16));
Хотя скорее всего вместо & вообще бы был модуль или XOR.