Last active
December 2, 2021 22:07
-
-
Save ctavan/519360f8777905838a9398b534e530ad to your computer and use it in GitHub Desktop.
uuid browser build without IE support
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -ur dist-node-10/esm-browser/md5.js dist/esm-browser/md5.js | |
--- dist-node-10/esm-browser/md5.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/md5.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -20,11 +20,11 @@ | |
*/ | |
function md5(bytes) { | |
if (typeof bytes === 'string') { | |
- var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | |
+ const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | |
bytes = new Uint8Array(msg.length); | |
- for (var i = 0; i < msg.length; ++i) { | |
+ for (let i = 0; i < msg.length; ++i) { | |
bytes[i] = msg.charCodeAt(i); | |
} | |
} | |
@@ -37,13 +37,13 @@ | |
function md5ToHexEncodedArray(input) { | |
- var output = []; | |
- var length32 = input.length * 32; | |
- var hexTab = '0123456789abcdef'; | |
- | |
- for (var i = 0; i < length32; i += 8) { | |
- var x = input[i >> 5] >>> i % 32 & 0xff; | |
- var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16); | |
+ const output = []; | |
+ const length32 = input.length * 32; | |
+ const hexTab = '0123456789abcdef'; | |
+ | |
+ for (let i = 0; i < length32; i += 8) { | |
+ const x = input[i >> 5] >>> i % 32 & 0xff; | |
+ const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16); | |
output.push(hex); | |
} | |
@@ -66,16 +66,16 @@ | |
/* append padding */ | |
x[len >> 5] |= 0x80 << len % 32; | |
x[getOutputLength(len) - 1] = len; | |
- var a = 1732584193; | |
- var b = -271733879; | |
- var c = -1732584194; | |
- var d = 271733878; | |
- | |
- for (var i = 0; i < x.length; i += 16) { | |
- var olda = a; | |
- var oldb = b; | |
- var oldc = c; | |
- var oldd = d; | |
+ let a = 1732584193; | |
+ let b = -271733879; | |
+ let c = -1732584194; | |
+ let d = 271733878; | |
+ | |
+ for (let i = 0; i < x.length; i += 16) { | |
+ const olda = a; | |
+ const oldb = b; | |
+ const oldc = c; | |
+ const oldd = d; | |
a = md5ff(a, b, c, d, x[i], 7, -680876936); | |
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); | |
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); | |
@@ -159,10 +159,10 @@ | |
return []; | |
} | |
- var length8 = input.length * 8; | |
- var output = new Uint32Array(getOutputLength(length8)); | |
+ const length8 = input.length * 8; | |
+ const output = new Uint32Array(getOutputLength(length8)); | |
- for (var i = 0; i < length8; i += 8) { | |
+ for (let i = 0; i < length8; i += 8) { | |
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32; | |
} | |
@@ -175,8 +175,8 @@ | |
function safeAdd(x, y) { | |
- var lsw = (x & 0xffff) + (y & 0xffff); | |
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16); | |
+ const lsw = (x & 0xffff) + (y & 0xffff); | |
+ const msw = (x >> 16) + (y >> 16) + (lsw >> 16); | |
return msw << 16 | lsw & 0xffff; | |
} | |
/* | |
diff -ur dist-node-10/esm-browser/native.js dist/esm-browser/native.js | |
--- dist-node-10/esm-browser/native.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/native.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -1,4 +1,4 @@ | |
-var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); | |
+const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); | |
export default { | |
- randomUUID: randomUUID | |
+ randomUUID | |
}; | |
\ No newline at end of file | |
diff -ur dist-node-10/esm-browser/parse.js dist/esm-browser/parse.js | |
--- dist-node-10/esm-browser/parse.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/parse.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -5,8 +5,8 @@ | |
throw TypeError('Invalid UUID'); | |
} | |
- var v; | |
- var arr = new Uint8Array(16); // Parse ########-....-....-....-............ | |
+ let v; | |
+ const arr = new Uint8Array(16); // Parse ########-....-....-....-............ | |
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; | |
arr[1] = v >>> 16 & 0xff; | |
diff -ur dist-node-10/esm-browser/rng.js dist/esm-browser/rng.js | |
--- dist-node-10/esm-browser/rng.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/rng.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -1,8 +1,8 @@ | |
// Unique ID creation requires a high quality random # generator. In the browser we therefore | |
// require the crypto API and do not support built-in fallback to lower quality random number | |
// generators (like Math.random()). | |
-var getRandomValues; | |
-var rnds8 = new Uint8Array(16); | |
+let getRandomValues; | |
+const rnds8 = new Uint8Array(16); | |
export default function rng() { | |
// lazy load so that environments that need to polyfill have a chance to do so | |
if (!getRandomValues) { | |
diff -ur dist-node-10/esm-browser/sha1.js dist/esm-browser/sha1.js | |
--- dist-node-10/esm-browser/sha1.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/sha1.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -21,15 +21,15 @@ | |
} | |
function sha1(bytes) { | |
- var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; | |
- var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; | |
+ const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; | |
+ const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; | |
if (typeof bytes === 'string') { | |
- var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | |
+ const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | |
bytes = []; | |
- for (var i = 0; i < msg.length; ++i) { | |
+ for (let i = 0; i < msg.length; ++i) { | |
bytes.push(msg.charCodeAt(i)); | |
} | |
} else if (!Array.isArray(bytes)) { | |
@@ -38,44 +38,44 @@ | |
} | |
bytes.push(0x80); | |
- var l = bytes.length / 4 + 2; | |
- var N = Math.ceil(l / 16); | |
- var M = new Array(N); | |
+ const l = bytes.length / 4 + 2; | |
+ const N = Math.ceil(l / 16); | |
+ const M = new Array(N); | |
- for (var _i = 0; _i < N; ++_i) { | |
- var arr = new Uint32Array(16); | |
+ for (let i = 0; i < N; ++i) { | |
+ const arr = new Uint32Array(16); | |
- for (var j = 0; j < 16; ++j) { | |
- arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3]; | |
+ for (let j = 0; j < 16; ++j) { | |
+ arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; | |
} | |
- M[_i] = arr; | |
+ M[i] = arr; | |
} | |
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); | |
M[N - 1][14] = Math.floor(M[N - 1][14]); | |
M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff; | |
- for (var _i2 = 0; _i2 < N; ++_i2) { | |
- var W = new Uint32Array(80); | |
+ for (let i = 0; i < N; ++i) { | |
+ const W = new Uint32Array(80); | |
- for (var t = 0; t < 16; ++t) { | |
- W[t] = M[_i2][t]; | |
+ for (let t = 0; t < 16; ++t) { | |
+ W[t] = M[i][t]; | |
} | |
- for (var _t = 16; _t < 80; ++_t) { | |
- W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1); | |
+ for (let t = 16; t < 80; ++t) { | |
+ W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); | |
} | |
- var a = H[0]; | |
- var b = H[1]; | |
- var c = H[2]; | |
- var d = H[3]; | |
- var e = H[4]; | |
- | |
- for (var _t2 = 0; _t2 < 80; ++_t2) { | |
- var s = Math.floor(_t2 / 20); | |
- var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0; | |
+ let a = H[0]; | |
+ let b = H[1]; | |
+ let c = H[2]; | |
+ let d = H[3]; | |
+ let e = H[4]; | |
+ | |
+ for (let t = 0; t < 80; ++t) { | |
+ const s = Math.floor(t / 20); | |
+ const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; | |
e = d; | |
d = c; | |
c = ROTL(b, 30) >>> 0; | |
diff -ur dist-node-10/esm-browser/stringify.js dist/esm-browser/stringify.js | |
--- dist-node-10/esm-browser/stringify.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/stringify.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -4,17 +4,17 @@ | |
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | |
*/ | |
-var byteToHex = []; | |
+const byteToHex = []; | |
-for (var i = 0; i < 256; ++i) { | |
+for (let i = 0; i < 256; ++i) { | |
byteToHex.push((i + 0x100).toString(16).substr(1)); | |
} | |
function stringify(arr) { | |
- var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; | |
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; | |
// Note: Be careful editing this code! It's been tuned for performance | |
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 | |
- var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one | |
+ const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one | |
// of the following: | |
// - One or more input array values don't map to a hex octet (leading to | |
// "undefined" in the uuid) | |
diff -ur dist-node-10/esm-browser/v1.js dist/esm-browser/v1.js | |
--- dist-node-10/esm-browser/v1.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/v1.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -4,25 +4,25 @@ | |
// Inspired by https://github.com/LiosK/UUID.js | |
// and http://docs.python.org/library/uuid.html | |
-var _nodeId; | |
+let _nodeId; | |
-var _clockseq; // Previous uuid creation time | |
+let _clockseq; // Previous uuid creation time | |
-var _lastMSecs = 0; | |
-var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details | |
+let _lastMSecs = 0; | |
+let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details | |
function v1(options, buf, offset) { | |
- var i = buf && offset || 0; | |
- var b = buf || new Array(16); | |
+ let i = buf && offset || 0; | |
+ const b = buf || new Array(16); | |
options = options || {}; | |
- var node = options.node || _nodeId; | |
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not | |
+ let node = options.node || _nodeId; | |
+ let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not | |
// specified. We do this lazily to minimize issues related to insufficient | |
// system entropy. See #189 | |
if (node == null || clockseq == null) { | |
- var seedBytes = options.random || (options.rng || rng)(); | |
+ const seedBytes = options.random || (options.rng || rng)(); | |
if (node == null) { | |
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) | |
@@ -39,12 +39,12 @@ | |
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. | |
- var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock | |
+ let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock | |
// cycle to simulate higher resolution clock | |
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) | |
+ let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) | |
- var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression | |
+ const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression | |
if (dt < 0 && options.clockseq === undefined) { | |
clockseq = clockseq + 1 & 0x3fff; | |
@@ -67,13 +67,13 @@ | |
msecs += 12219292800000; // `time_low` | |
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; | |
+ const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; | |
b[i++] = tl >>> 24 & 0xff; | |
b[i++] = tl >>> 16 & 0xff; | |
b[i++] = tl >>> 8 & 0xff; | |
b[i++] = tl & 0xff; // `time_mid` | |
- var tmh = msecs / 0x100000000 * 10000 & 0xfffffff; | |
+ const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; | |
b[i++] = tmh >>> 8 & 0xff; | |
b[i++] = tmh & 0xff; // `time_high_and_version` | |
@@ -85,7 +85,7 @@ | |
b[i++] = clockseq & 0xff; // `node` | |
- for (var n = 0; n < 6; ++n) { | |
+ for (let n = 0; n < 6; ++n) { | |
b[i + n] = node[n]; | |
} | |
diff -ur dist-node-10/esm-browser/v3.js dist/esm-browser/v3.js | |
--- dist-node-10/esm-browser/v3.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/v3.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -1,4 +1,4 @@ | |
import v35 from './v35.js'; | |
import md5 from './md5.js'; | |
-var v3 = v35('v3', 0x30, md5); | |
+const v3 = v35('v3', 0x30, md5); | |
export default v3; | |
\ No newline at end of file | |
diff -ur dist-node-10/esm-browser/v35.js dist/esm-browser/v35.js | |
--- dist-node-10/esm-browser/v35.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/v35.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -4,17 +4,17 @@ | |
function stringToBytes(str) { | |
str = unescape(encodeURIComponent(str)); // UTF8 escape | |
- var bytes = []; | |
+ const bytes = []; | |
- for (var i = 0; i < str.length; ++i) { | |
+ for (let i = 0; i < str.length; ++i) { | |
bytes.push(str.charCodeAt(i)); | |
} | |
return bytes; | |
} | |
-export var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; | |
-export var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; | |
+export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; | |
+export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; | |
export default function v35(name, version, hashfunc) { | |
function generateUUID(value, namespace, buf, offset) { | |
if (typeof value === 'string') { | |
@@ -32,7 +32,7 @@ | |
// hashfunc([...namespace, ... value])` | |
- var bytes = new Uint8Array(16 + value.length); | |
+ let bytes = new Uint8Array(16 + value.length); | |
bytes.set(namespace); | |
bytes.set(value, namespace.length); | |
bytes = hashfunc(bytes); | |
@@ -42,7 +42,7 @@ | |
if (buf) { | |
offset = offset || 0; | |
- for (var i = 0; i < 16; ++i) { | |
+ for (let i = 0; i < 16; ++i) { | |
buf[offset + i] = bytes[i]; | |
} | |
diff -ur dist-node-10/esm-browser/v4.js dist/esm-browser/v4.js | |
--- dist-node-10/esm-browser/v4.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/v4.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -1,14 +1,14 @@ | |
-import _native from './native.js'; | |
+import native from './native.js'; | |
import rng from './rng.js'; | |
import stringify from './stringify.js'; | |
function v4(options, buf, offset) { | |
- if (_native.randomUUID && !buf && !options) { | |
- return _native.randomUUID(); | |
+ if (native.randomUUID && !buf && !options) { | |
+ return native.randomUUID(); | |
} | |
options = options || {}; | |
- var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` | |
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` | |
rnds[6] = rnds[6] & 0x0f | 0x40; | |
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided | |
@@ -16,7 +16,7 @@ | |
if (buf) { | |
offset = offset || 0; | |
- for (var i = 0; i < 16; ++i) { | |
+ for (let i = 0; i < 16; ++i) { | |
buf[offset + i] = rnds[i]; | |
} | |
diff -ur dist-node-10/esm-browser/v5.js dist/esm-browser/v5.js | |
--- dist-node-10/esm-browser/v5.js 2021-12-02 13:15:02.000000000 +0100 | |
+++ dist/esm-browser/v5.js 2021-12-02 22:48:16.000000000 +0100 | |
@@ -1,4 +1,4 @@ | |
import v35 from './v35.js'; | |
import sha1 from './sha1.js'; | |
-var v5 = v35('v5', 0x50, sha1); | |
+const v5 = v35('v5', 0x50, sha1); | |
export default v5; | |
\ No newline at end of file |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -ur dist-no-bugfix/esm-browser/stringify.js dist/esm-browser/stringify.js | |
--- dist-no-bugfix/esm-browser/stringify.js 2021-12-02 22:48:16.000000000 +0100 | |
+++ dist/esm-browser/stringify.js 2021-12-02 23:05:52.000000000 +0100 | |
@@ -10,8 +10,7 @@ | |
byteToHex.push((i + 0x100).toString(16).substr(1)); | |
} | |
-function stringify(arr) { | |
- let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; | |
+function stringify(arr, offset = 0) { | |
// Note: Be careful editing this code! It's been tuned for performance | |
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 | |
const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment