| 123456789101112131415161718192021222324252627 |
- // @ts-nocheck
- if (Crypto && typeof Crypto.prototype.randomUUID !== 'function') {
- if (typeof Crypto.prototype.getRandomValues === 'function' && typeof Uint8Array === 'function') {
- Crypto.prototype.randomUUID = function () {
- return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, function (c) {
- const num = Number(c);
- return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(16);
- });
- };
- } else {
- Crypto.prototype.randomUUID = function () {
- let timestamp = new Date().getTime();
- let per = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0;
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- let random = Math.random() * 16;
- if (timestamp > 0) {
- random = (timestamp + random) % 16 | 0;
- timestamp = Math.floor(timestamp / 16);
- } else {
- random = (per + random) % 16 | 0;
- per = Math.floor(per / 16);
- }
- return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16);
- });
- };
- }
- }
|