Comparing version 10.0.0 to 11.0.0-0
@@ -5,2 +5,29 @@ # Changelog | ||
## [11.0.0-0](https://github.com/uuidjs/uuid/compare/v9.0.0...v11.0.0-0) (2024-09-05) | ||
### ⚠ BREAKING CHANGES | ||
- refactor v1 internal state and options logic (#780) | ||
- refactor v7 internal state and options logic, fixes #764 (#779) | ||
- Port to TypeScript, closes #762 (#763) | ||
- update node support matrix (only support node 16-20) (#750) | ||
### Features | ||
- add support for MAX uuid (new in RFC9562) ([#714](https://github.com/uuidjs/uuid/issues/714)) ([0385cd3](https://github.com/uuidjs/uuid/commit/0385cd3f18ae9920678b2849932fa7a9d9aee7d0)) | ||
- Port to TypeScript, closes [#762](https://github.com/uuidjs/uuid/issues/762) ([#763](https://github.com/uuidjs/uuid/issues/763)) ([1e0f987](https://github.com/uuidjs/uuid/commit/1e0f9870db864ca93f7a69db0d468b5e1b7605e7)) | ||
- support v6 uuids ([#754](https://github.com/uuidjs/uuid/issues/754)) ([c4ed13e](https://github.com/uuidjs/uuid/commit/c4ed13e7159d87c9e42a349bdd9dc955f1af46b6)) | ||
- update node support matrix (only support node 16-20) ([#750](https://github.com/uuidjs/uuid/issues/750)) ([883b163](https://github.com/uuidjs/uuid/commit/883b163b9ab9d6655bfbd8a35e61a3c71674dfe1)) | ||
- v8 support ([#759](https://github.com/uuidjs/uuid/issues/759)) ([35a5342](https://github.com/uuidjs/uuid/commit/35a53428202657e402e6b4aa68f56c08194541bf)) | ||
### Bug Fixes | ||
- missing v7 expectations in browser spec ([#751](https://github.com/uuidjs/uuid/issues/751)) ([f54a866](https://github.com/uuidjs/uuid/commit/f54a866cedb2b3b96581157c1f4ac935a0b11411)) | ||
- refactor v1 internal state and options logic ([#780](https://github.com/uuidjs/uuid/issues/780)) ([031b3d3](https://github.com/uuidjs/uuid/commit/031b3d3d738bc6694501ac0a37152b95ed500989)) | ||
- refactor v7 internal state and options logic, fixes [#764](https://github.com/uuidjs/uuid/issues/764) ([#779](https://github.com/uuidjs/uuid/issues/779)) ([9dbd1cd](https://github.com/uuidjs/uuid/commit/9dbd1cd4177c43fcaac961a3b16fb2d044c9940a)) | ||
- remove v4 options default assignment preventing native.randomUUID from being used ([#786](https://github.com/uuidjs/uuid/issues/786)) ([afe6232](https://github.com/uuidjs/uuid/commit/afe62323c4408a824755a39d7b971a8ae06f7199)), closes [#763](https://github.com/uuidjs/uuid/issues/763) | ||
- revert "perf: remove superfluous call to toLowerCase ([#677](https://github.com/uuidjs/uuid/issues/677))" ([#738](https://github.com/uuidjs/uuid/issues/738)) ([e267b90](https://github.com/uuidjs/uuid/commit/e267b9073df1d0ce119ee53c0487fe76acb2be37)) | ||
- seq_hi shift for byte 6 ([#775](https://github.com/uuidjs/uuid/issues/775)) ([1d532ca](https://github.com/uuidjs/uuid/commit/1d532ca374f181932a24a83fa98f71a5bd4f3e96)) | ||
- tsconfig module type ([#778](https://github.com/uuidjs/uuid/issues/778)) ([7eff835](https://github.com/uuidjs/uuid/commit/7eff835cba334ad418f57768c00d15b918a9b419)) | ||
## [10.0.0](https://github.com/uuidjs/uuid/compare/v9.0.0...v10.0.0) (2024-06-07) | ||
@@ -7,0 +34,0 @@ |
@@ -14,2 +14,3 @@ export { default as MAX } from './max.js'; | ||
export { default as validate } from './validate.js'; | ||
export { default as version } from './version.js'; | ||
export { default as version } from './version.js'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQyJ9 |
@@ -1,1 +0,2 @@ | ||
export default 'ffffffff-ffff-ffff-ffff-ffffffffffff'; | ||
export default 'ffffffff-ffff-ffff-ffff-ffffffffffff'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21heC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLHNDQUFzQyxDQUFDIn0= |
@@ -1,194 +0,136 @@ | ||
/* | ||
* Browser-compatible JavaScript MD5 | ||
* | ||
* Modification of JavaScript MD5 | ||
* https://github.com/blueimp/JavaScript-MD5 | ||
* | ||
* Copyright 2011, Sebastian Tschan | ||
* https://blueimp.net | ||
* | ||
* Licensed under the MIT license: | ||
* https://opensource.org/licenses/MIT | ||
* | ||
* Based on | ||
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message | ||
* Digest Algorithm, as defined in RFC 1321. | ||
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 | ||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet | ||
* Distributed under the BSD License | ||
* See http://pajhome.org.uk/crypt/md5 for more info. | ||
*/ | ||
function md5(bytes) { | ||
if (typeof bytes === 'string') { | ||
var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | ||
bytes = new Uint8Array(msg.length); | ||
for (var i = 0; i < msg.length; ++i) { | ||
bytes[i] = msg.charCodeAt(i); | ||
const words = uint8ToUint32(bytes); | ||
const md5Bytes = wordsToMd5(words, bytes.length * 8); | ||
return uint32ToUint8(md5Bytes); | ||
} | ||
function uint32ToUint8(input) { | ||
const bytes = new Uint8Array(input.length * 4); | ||
for (let i = 0; i < input.length * 4; i++) { | ||
bytes[i] = (input[i >> 2] >>> ((i % 4) * 8)) & 0xff; | ||
} | ||
} | ||
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); | ||
return bytes; | ||
} | ||
/* | ||
* Convert an array of little-endian words to an array of bytes | ||
*/ | ||
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); | ||
output.push(hex); | ||
} | ||
return output; | ||
} | ||
/** | ||
* Calculate output length with padding and bit length | ||
*/ | ||
function getOutputLength(inputLength8) { | ||
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; | ||
return (((inputLength8 + 64) >>> 9) << 4) + 14 + 1; | ||
} | ||
/* | ||
* Calculate the MD5 of an array of little-endian words, and a bit length. | ||
*/ | ||
function wordsToMd5(x, len) { | ||
/* 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; | ||
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); | ||
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); | ||
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); | ||
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); | ||
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); | ||
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); | ||
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); | ||
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); | ||
c = md5ff(c, d, a, b, x[i + 10], 17, -42063); | ||
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); | ||
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); | ||
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); | ||
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); | ||
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); | ||
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); | ||
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); | ||
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); | ||
b = md5gg(b, c, d, a, x[i], 20, -373897302); | ||
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); | ||
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); | ||
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); | ||
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); | ||
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); | ||
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); | ||
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); | ||
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); | ||
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); | ||
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); | ||
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); | ||
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); | ||
a = md5hh(a, b, c, d, x[i + 5], 4, -378558); | ||
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); | ||
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); | ||
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); | ||
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); | ||
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); | ||
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); | ||
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); | ||
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); | ||
d = md5hh(d, a, b, c, x[i], 11, -358537222); | ||
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); | ||
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); | ||
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); | ||
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); | ||
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); | ||
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); | ||
a = md5ii(a, b, c, d, x[i], 6, -198630844); | ||
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); | ||
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); | ||
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); | ||
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); | ||
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); | ||
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); | ||
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); | ||
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); | ||
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); | ||
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); | ||
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); | ||
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); | ||
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); | ||
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); | ||
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); | ||
a = safeAdd(a, olda); | ||
b = safeAdd(b, oldb); | ||
c = safeAdd(c, oldc); | ||
d = safeAdd(d, oldd); | ||
} | ||
return [a, b, c, d]; | ||
const xpad = new Uint32Array(getOutputLength(len)).fill(0); | ||
xpad.set(x); | ||
xpad[len >> 5] |= 0x80 << len % 32; | ||
xpad[xpad.length - 1] = len; | ||
x = xpad; | ||
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); | ||
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); | ||
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); | ||
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); | ||
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); | ||
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); | ||
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); | ||
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); | ||
c = md5ff(c, d, a, b, x[i + 10], 17, -42063); | ||
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); | ||
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); | ||
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); | ||
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); | ||
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); | ||
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); | ||
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); | ||
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); | ||
b = md5gg(b, c, d, a, x[i], 20, -373897302); | ||
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); | ||
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); | ||
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); | ||
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); | ||
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); | ||
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); | ||
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); | ||
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); | ||
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); | ||
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); | ||
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); | ||
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); | ||
a = md5hh(a, b, c, d, x[i + 5], 4, -378558); | ||
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); | ||
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); | ||
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); | ||
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); | ||
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); | ||
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); | ||
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); | ||
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); | ||
d = md5hh(d, a, b, c, x[i], 11, -358537222); | ||
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); | ||
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); | ||
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); | ||
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); | ||
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); | ||
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); | ||
a = md5ii(a, b, c, d, x[i], 6, -198630844); | ||
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); | ||
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); | ||
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); | ||
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); | ||
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); | ||
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); | ||
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); | ||
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); | ||
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); | ||
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); | ||
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); | ||
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); | ||
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); | ||
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); | ||
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); | ||
a = safeAdd(a, olda); | ||
b = safeAdd(b, oldb); | ||
c = safeAdd(c, oldc); | ||
d = safeAdd(d, oldd); | ||
} | ||
return Uint32Array.of(a, b, c, d); | ||
} | ||
/* | ||
* Convert an array bytes to an array of little-endian words | ||
* Characters >255 have their high-byte silently ignored. | ||
*/ | ||
function bytesToWords(input) { | ||
if (input.length === 0) { | ||
return []; | ||
} | ||
var length8 = input.length * 8; | ||
var output = new Uint32Array(getOutputLength(length8)); | ||
for (var i = 0; i < length8; i += 8) { | ||
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32; | ||
} | ||
return output; | ||
function uint8ToUint32(input) { | ||
if (input.length === 0) { | ||
return new Uint32Array(); | ||
} | ||
const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0); | ||
for (let i = 0; i < input.length; i++) { | ||
output[i >> 2] |= (input[i] & 0xff) << ((i % 4) * 8); | ||
} | ||
return output; | ||
} | ||
/* | ||
* Add integers, wrapping at 2^32. This uses 16-bit operations internally | ||
* to work around bugs in some JS interpreters. | ||
*/ | ||
function safeAdd(x, y) { | ||
var lsw = (x & 0xffff) + (y & 0xffff); | ||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16); | ||
return msw << 16 | lsw & 0xffff; | ||
const lsw = (x & 0xffff) + (y & 0xffff); | ||
const msw = (x >> 16) + (y >> 16) + (lsw >> 16); | ||
return (msw << 16) | (lsw & 0xffff); | ||
} | ||
/* | ||
* Bitwise rotate a 32-bit number to the left. | ||
*/ | ||
function bitRotateLeft(num, cnt) { | ||
return num << cnt | num >>> 32 - cnt; | ||
return (num << cnt) | (num >>> (32 - cnt)); | ||
} | ||
/* | ||
* These functions implement the four basic operations the algorithm uses. | ||
*/ | ||
function md5cmn(q, a, b, x, s, t) { | ||
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); | ||
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); | ||
} | ||
function md5ff(a, b, c, d, x, s, t) { | ||
return md5cmn(b & c | ~b & d, a, b, x, s, t); | ||
return md5cmn((b & c) | (~b & d), a, b, x, s, t); | ||
} | ||
function md5gg(a, b, c, d, x, s, t) { | ||
return md5cmn(b & d | c & ~d, a, b, x, s, t); | ||
return md5cmn((b & d) | (c & ~d), a, b, x, s, t); | ||
} | ||
function md5hh(a, b, c, d, x, s, t) { | ||
return md5cmn(b ^ c ^ d, a, b, x, s, t); | ||
return md5cmn(b ^ c ^ d, a, b, x, s, t); | ||
} | ||
function md5ii(a, b, c, d, x, s, t) { | ||
return md5cmn(c ^ (b | ~d), a, b, x, s, t); | ||
return md5cmn(c ^ (b | ~d), a, b, x, s, t); | ||
} | ||
export default md5; | ||
export default md5; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWQ1LWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWQ1LWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JBLFNBQVMsR0FBRyxDQUFDLEtBQWlCO0lBQzVCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVuQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckQsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUtELFNBQVMsYUFBYSxDQUFDLEtBQWtCO0lBTXZDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFLRCxTQUFTLGVBQWUsQ0FBQyxZQUFvQjtJQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFLRCxTQUFTLFVBQVUsQ0FBQyxDQUFjLEVBQUUsR0FBVztJQUU3QyxNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzVCLENBQUMsR0FBRyxJQUFJLENBQUM7SUFFVCxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDcEIsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBRWxCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7UUFFZixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVqRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRCxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRCxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLEdBQUcs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 |
@@ -1,4 +0,3 @@ | ||
var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); | ||
export default { | ||
randomUUID | ||
}; | ||
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); | ||
export default { randomUUID }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0= |
@@ -1,1 +0,2 @@ | ||
export default '00000000-0000-0000-0000-000000000000'; | ||
export default '00000000-0000-0000-0000-000000000000'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25pbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLHNDQUFzQyxDQUFDIn0= |
import validate from './validate.js'; | ||
function parse(uuid) { | ||
if (!validate(uuid)) { | ||
throw TypeError('Invalid UUID'); | ||
} | ||
var v; | ||
var arr = new Uint8Array(16); | ||
// Parse ########-....-....-....-............ | ||
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; | ||
arr[1] = v >>> 16 & 0xff; | ||
arr[2] = v >>> 8 & 0xff; | ||
arr[3] = v & 0xff; | ||
// Parse ........-####-....-....-............ | ||
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; | ||
arr[5] = v & 0xff; | ||
// Parse ........-....-####-....-............ | ||
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; | ||
arr[7] = v & 0xff; | ||
// Parse ........-....-....-####-............ | ||
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; | ||
arr[9] = v & 0xff; | ||
// Parse ........-....-....-....-############ | ||
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) | ||
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; | ||
arr[11] = v / 0x100000000 & 0xff; | ||
arr[12] = v >>> 24 & 0xff; | ||
arr[13] = v >>> 16 & 0xff; | ||
arr[14] = v >>> 8 & 0xff; | ||
arr[15] = v & 0xff; | ||
return arr; | ||
if (!validate(uuid)) { | ||
throw TypeError('Invalid UUID'); | ||
} | ||
let v; | ||
return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); | ||
} | ||
export default parse; | ||
export default parse; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBRXJDLFNBQVMsS0FBSyxDQUFDLElBQVk7SUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBQztJQUNOLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FDbEIsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUMzQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQ2pCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksRUFDaEIsQ0FBQyxHQUFHLElBQUksRUFHUixDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQzNDLENBQUMsR0FBRyxJQUFJLEVBR1IsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUM1QyxDQUFDLEdBQUcsSUFBSSxFQUdSLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDNUMsQ0FBQyxHQUFHLElBQUksRUFJUixDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLElBQUksRUFDL0QsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsSUFBSSxFQUN4QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQ2pCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFDakIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUNoQixDQUFDLEdBQUcsSUFBSSxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQsZUFBZSxLQUFLLENBQUMifQ== |
@@ -1,1 +0,2 @@ | ||
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; | ||
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSwwSkFBMEosQ0FBQyJ9 |
@@ -1,17 +0,12 @@ | ||
// 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) { | ||
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. | ||
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); | ||
if (!getRandomValues) { | ||
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); | ||
if (typeof crypto === 'undefined' || !crypto.getRandomValues) { | ||
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); | ||
} | ||
getRandomValues = crypto.getRandomValues.bind(crypto); | ||
} | ||
} | ||
return getRandomValues(rnds8); | ||
} | ||
return getRandomValues(rnds8); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ== |
@@ -1,76 +0,71 @@ | ||
// Adapted from Chris Veness' SHA1 code at | ||
// http://www.movable-type.co.uk/scripts/sha1.html | ||
function f(s, x, y, z) { | ||
switch (s) { | ||
case 0: | ||
return x & y ^ ~x & z; | ||
case 1: | ||
return x ^ y ^ z; | ||
case 2: | ||
return x & y ^ x & z ^ y & z; | ||
case 3: | ||
return x ^ y ^ z; | ||
} | ||
switch (s) { | ||
case 0: | ||
return (x & y) ^ (~x & z); | ||
case 1: | ||
return x ^ y ^ z; | ||
case 2: | ||
return (x & y) ^ (x & z) ^ (y & z); | ||
case 3: | ||
return x ^ y ^ z; | ||
} | ||
} | ||
function ROTL(x, n) { | ||
return x << n | x >>> 32 - n; | ||
return (x << n) | (x >>> (32 - n)); | ||
} | ||
function sha1(bytes) { | ||
var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; | ||
var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; | ||
if (typeof bytes === 'string') { | ||
var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape | ||
bytes = []; | ||
for (var i = 0; i < msg.length; ++i) { | ||
bytes.push(msg.charCodeAt(i)); | ||
const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; | ||
const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; | ||
const newBytes = new Uint8Array(bytes.length + 1); | ||
newBytes.set(bytes); | ||
newBytes[bytes.length] = 0x80; | ||
bytes = newBytes; | ||
const l = bytes.length / 4 + 2; | ||
const N = Math.ceil(l / 16); | ||
const M = new Array(N); | ||
for (let i = 0; i < N; ++i) { | ||
const arr = new Uint32Array(16); | ||
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; | ||
} | ||
} else if (!Array.isArray(bytes)) { | ||
// Convert Array-like to Array | ||
bytes = Array.prototype.slice.call(bytes); | ||
} | ||
bytes.push(0x80); | ||
var l = bytes.length / 4 + 2; | ||
var N = Math.ceil(l / 16); | ||
var M = new Array(N); | ||
for (var _i = 0; _i < N; ++_i) { | ||
var 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]; | ||
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 (let i = 0; i < N; ++i) { | ||
const W = new Uint32Array(80); | ||
for (let t = 0; t < 16; ++t) { | ||
W[t] = M[i][t]; | ||
} | ||
for (let t = 16; t < 80; ++t) { | ||
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); | ||
} | ||
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; | ||
b = a; | ||
a = T; | ||
} | ||
H[0] = (H[0] + a) >>> 0; | ||
H[1] = (H[1] + b) >>> 0; | ||
H[2] = (H[2] + c) >>> 0; | ||
H[3] = (H[3] + d) >>> 0; | ||
H[4] = (H[4] + e) >>> 0; | ||
} | ||
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 (var t = 0; t < 16; ++t) { | ||
W[t] = M[_i2][t]; | ||
} | ||
for (var _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; | ||
e = d; | ||
d = c; | ||
c = ROTL(b, 30) >>> 0; | ||
b = a; | ||
a = T; | ||
} | ||
H[0] = H[0] + a >>> 0; | ||
H[1] = H[1] + b >>> 0; | ||
H[2] = H[2] + c >>> 0; | ||
H[3] = H[3] + d >>> 0; | ||
H[4] = H[4] + e >>> 0; | ||
} | ||
return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff]; | ||
return Uint8Array.of(H[0] >> 24, H[0] >> 16, H[0] >> 8, H[0], H[1] >> 24, H[1] >> 16, H[1] >> 8, H[1], H[2] >> 24, H[2] >> 16, H[2] >> 8, H[2], H[3] >> 24, H[3] >> 16, H[3] >> 8, H[3], H[4] >> 24, H[4] >> 16, H[4] >> 8, H[4]); | ||
} | ||
export default sha1; | ||
export default sha1; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhMS1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYTEtYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLENBQUMsQ0FBQyxDQUFnQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztJQUMxRCxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxDQUFDO1lBQ0osT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEtBQUssQ0FBQztZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsS0FBSyxDQUFDO1lBQ0osT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQyxLQUFLLENBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxLQUFpQjtJQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXZFLE1BQU0sUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM5QixLQUFLLEdBQUcsUUFBUSxDQUFDO0lBRWpCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QixNQUFNLENBQUMsR0FBa0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNKLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDN0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDakMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7SUFFckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFrQixDQUFDO1lBQzlDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0QsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDUixDQUFDO1FBRUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFHRCxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQ2xCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNKLENBQUM7QUFFRCxlQUFlLElBQUksQ0FBQyJ9 |
import validate from './validate.js'; | ||
/** | ||
* Convert array of 16 byte values to UUID string format of the form: | ||
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | ||
*/ | ||
var byteToHex = []; | ||
for (var i = 0; i < 256; ++i) { | ||
byteToHex.push((i + 0x100).toString(16).slice(1)); | ||
const byteToHex = []; | ||
for (let i = 0; i < 256; ++i) { | ||
byteToHex.push((i + 0x100).toString(16).slice(1)); | ||
} | ||
export function unsafeStringify(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 | ||
// | ||
// Note to future-self: No, you can't remove the `toLowerCase()` call. | ||
// REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351 | ||
return (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(); | ||
return (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(); | ||
} | ||
function stringify(arr, offset = 0) { | ||
var uuid = unsafeStringify(arr, offset); | ||
// 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) | ||
// - Invalid input values for the RFC `version` or `variant` fields | ||
if (!validate(uuid)) { | ||
throw TypeError('Stringified UUID is invalid'); | ||
} | ||
return uuid; | ||
const uuid = unsafeStringify(arr, offset); | ||
if (!validate(uuid)) { | ||
throw TypeError('Stringified UUID is invalid'); | ||
} | ||
return uuid; | ||
} | ||
export default stringify; | ||
export default stringify; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ== |
import rng from './rng.js'; | ||
import { unsafeStringify } from './stringify.js'; | ||
// **`v1()` - Generate time-based UUID** | ||
// | ||
// Inspired by https://github.com/LiosK/UUID.js | ||
// and http://docs.python.org/library/uuid.html | ||
var _nodeId; | ||
var _clockseq; | ||
// Previous uuid creation time | ||
var _lastMSecs = 0; | ||
var _lastNSecs = 0; | ||
// See https://github.com/uuidjs/uuid for API details | ||
const _state = {}; | ||
function v1(options, buf, offset) { | ||
var i = buf && offset || 0; | ||
var b = buf || new Array(16); | ||
options = options || {}; | ||
var node = options.node; | ||
var clockseq = options.clockseq; | ||
// v1 only: Use cached `node` and `clockseq` values | ||
if (!options._v6) { | ||
if (!node) { | ||
node = _nodeId; | ||
let bytes; | ||
const isV6 = options?._v6 ?? false; | ||
if (options) { | ||
const optionsKeys = Object.keys(options); | ||
if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') { | ||
options = undefined; | ||
} | ||
} | ||
if (clockseq == null) { | ||
clockseq = _clockseq; | ||
if (options) { | ||
bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset); | ||
} | ||
} | ||
// Handle cases where we need entropy. 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)(); | ||
// Randomize node | ||
if (node == null) { | ||
node = [seedBytes[0], seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; | ||
// v1 only: cache node value for reuse | ||
if (!_nodeId && !options._v6) { | ||
// per RFC4122 4.5: Set MAC multicast bit (v1 only) | ||
node[0] |= 0x01; // Set multicast bit | ||
_nodeId = node; | ||
} | ||
else { | ||
const now = Date.now(); | ||
const rnds = rng(); | ||
updateV1State(_state, now, rnds); | ||
bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset); | ||
} | ||
// Randomize clockseq | ||
if (clockseq == null) { | ||
// Per 4.2.2, randomize (14 bit) clockseq | ||
clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; | ||
if (_clockseq === undefined && !options._v6) { | ||
_clockseq = clockseq; | ||
} | ||
return buf ? bytes : unsafeStringify(bytes); | ||
} | ||
export function updateV1State(state, now, rnds) { | ||
state.msecs ??= -Infinity; | ||
state.nsecs ??= 0; | ||
if (now === state.msecs) { | ||
state.nsecs++; | ||
if (state.nsecs >= 10000) { | ||
state.node = undefined; | ||
state.nsecs = 0; | ||
} | ||
} | ||
} | ||
// v1 & v6 timestamps are 100 nano-second units since the Gregorian epoch, | ||
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so time is | ||
// handled internally as 'msecs' (integer milliseconds) and 'nsecs' | ||
// (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 | ||
// cycle to simulate higher resolution clock | ||
var 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 | ||
if (dt < 0 && options.clockseq === undefined) { | ||
clockseq = clockseq + 1 & 0x3fff; | ||
} | ||
// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new | ||
// time interval | ||
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { | ||
nsecs = 0; | ||
} | ||
// Per 4.2.1.2 Throw error if too many uuids are requested | ||
if (nsecs >= 10000) { | ||
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); | ||
} | ||
_lastMSecs = msecs; | ||
_lastNSecs = nsecs; | ||
_clockseq = clockseq; | ||
// Per 4.1.4 - Convert from unix epoch to Gregorian epoch | ||
msecs += 12219292800000; | ||
// `time_low` | ||
var 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; | ||
b[i++] = tmh >>> 8 & 0xff; | ||
b[i++] = tmh & 0xff; | ||
// `time_high_and_version` | ||
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version | ||
b[i++] = tmh >>> 16 & 0xff; | ||
// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) | ||
b[i++] = clockseq >>> 8 | 0x80; | ||
// `clock_seq_low` | ||
b[i++] = clockseq & 0xff; | ||
// `node` | ||
for (var n = 0; n < 6; ++n) { | ||
b[i + n] = node[n]; | ||
} | ||
return buf || unsafeStringify(b); | ||
else if (now > state.msecs) { | ||
state.nsecs = 0; | ||
} | ||
else if (now < state.msecs) { | ||
state.node = undefined; | ||
} | ||
if (!state.node) { | ||
state.node = rnds.slice(10, 16); | ||
state.node[0] |= 0x01; | ||
state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff; | ||
} | ||
state.msecs = now; | ||
return state; | ||
} | ||
export default v1; | ||
function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) { | ||
if (!buf) { | ||
buf = new Uint8Array(16); | ||
offset = 0; | ||
} | ||
msecs ??= Date.now(); | ||
nsecs ??= 0; | ||
clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff; | ||
node ??= rnds.slice(10, 16); | ||
msecs += 12219292800000; | ||
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; | ||
buf[offset++] = (tl >>> 24) & 0xff; | ||
buf[offset++] = (tl >>> 16) & 0xff; | ||
buf[offset++] = (tl >>> 8) & 0xff; | ||
buf[offset++] = tl & 0xff; | ||
const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; | ||
buf[offset++] = (tmh >>> 8) & 0xff; | ||
buf[offset++] = tmh & 0xff; | ||
buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; | ||
buf[offset++] = (tmh >>> 16) & 0xff; | ||
buf[offset++] = (clockseq >>> 8) | 0x80; | ||
buf[offset++] = clockseq & 0xff; | ||
for (let n = 0; n < 6; ++n) { | ||
buf[offset++] = node[n]; | ||
} | ||
return buf; | ||
} | ||
export default v1; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCakQsTUFBTSxNQUFNLEdBQVksRUFBRSxDQUFDO0FBSTNCLFNBQVMsRUFBRSxDQUFDLE9BQXlCLEVBQUUsR0FBZ0IsRUFBRSxNQUFlO0lBQ3RFLElBQUksS0FBaUIsQ0FBQztJQUd0QixNQUFNLElBQUksR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLEtBQUssQ0FBQztJQUNuQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN6RCxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVaLEtBQUssR0FBRyxPQUFPLENBQ2IsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFDMUMsT0FBTyxDQUFDLEtBQUssRUFDYixPQUFPLENBQUMsS0FBSyxFQUNiLE9BQU8sQ0FBQyxRQUFRLEVBQ2hCLE9BQU8sQ0FBQyxJQUFJLEVBQ1osR0FBRyxFQUNILE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFFTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFFbkIsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFD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 |
import parse from './parse.js'; | ||
import { unsafeStringify } from './stringify.js'; | ||
/** | ||
* Convert a v1 UUID to a v6 UUID | ||
* | ||
* @param {string|Uint8Array} uuid - The v1 UUID to convert to v6 | ||
* @returns {string|Uint8Array} The v6 UUID as the same type as the `uuid` arg | ||
* (string or Uint8Array) | ||
*/ | ||
export default function v1ToV6(uuid) { | ||
var v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; | ||
var v6Bytes = _v1ToV6(v1Bytes); | ||
return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes; | ||
const v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; | ||
const v6Bytes = _v1ToV6(v1Bytes); | ||
return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes; | ||
} | ||
// Do the field transformation needed for v1 -> v6 | ||
function _v1ToV6(v1Bytes, randomize = false) { | ||
return Uint8Array.of((v1Bytes[6] & 0x0f) << 4 | v1Bytes[7] >> 4 & 0x0f, (v1Bytes[7] & 0x0f) << 4 | (v1Bytes[4] & 0xf0) >> 4, (v1Bytes[4] & 0x0f) << 4 | (v1Bytes[5] & 0xf0) >> 4, (v1Bytes[5] & 0x0f) << 4 | (v1Bytes[0] & 0xf0) >> 4, (v1Bytes[0] & 0x0f) << 4 | (v1Bytes[1] & 0xf0) >> 4, (v1Bytes[1] & 0x0f) << 4 | (v1Bytes[2] & 0xf0) >> 4, 0x60 | v1Bytes[2] & 0x0f, v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); | ||
} | ||
function _v1ToV6(v1Bytes) { | ||
return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjFUb1Y2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3YxVG9WNi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBV2pELE1BQU0sQ0FBQyxPQUFPLFVBQVUsTUFBTSxDQUFDLElBQXlCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWpDLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN2RSxDQUFDO0FBR0QsU0FBUyxPQUFPLENBQUMsT0FBbUI7SUFDbEMsT0FBTyxVQUFVLENBQUMsRUFBRSxDQUNsQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQ3ZELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBRXZELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUV2RCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFFVixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUNYLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUNaLENBQUM7QUFDSixDQUFDIn0= |
@@ -1,4 +0,10 @@ | ||
import v35 from './v35.js'; | ||
import md5 from './md5.js'; | ||
var v3 = v35('v3', 0x30, md5); | ||
export default v3; | ||
import v35, { DNS, URL } from './v35.js'; | ||
export { DNS, URL } from './v35.js'; | ||
function v3(value, namespace, buf, offset) { | ||
return v35(0x30, md5, value, namespace, buf, offset); | ||
} | ||
v3.DNS = DNS; | ||
v3.URL = URL; | ||
export default v3; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQzNCLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWNwQyxTQUFTLEVBQUUsQ0FBQyxLQUEwQixFQUFFLFNBQW9CLEVBQUUsR0FBZ0IsRUFBRSxNQUFlO0lBQzdGLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2IsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFFYixlQUFlLEVBQUUsQ0FBQyJ9 |
@@ -0,55 +1,37 @@ | ||
import parse from './parse.js'; | ||
import { unsafeStringify } from './stringify.js'; | ||
import parse from './parse.js'; | ||
function stringToBytes(str) { | ||
str = unescape(encodeURIComponent(str)); // UTF8 escape | ||
var bytes = []; | ||
for (var i = 0; i < str.length; ++i) { | ||
bytes.push(str.charCodeAt(i)); | ||
} | ||
return bytes; | ||
export function stringToBytes(str) { | ||
str = unescape(encodeURIComponent(str)); | ||
const bytes = new Uint8Array(str.length); | ||
for (let i = 0; i < str.length; ++i) { | ||
bytes[i] = str.charCodeAt(i); | ||
} | ||
return bytes; | ||
} | ||
export var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; | ||
export var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; | ||
export default function v35(name, version, hashfunc) { | ||
function generateUUID(value, namespace, buf, offset) { | ||
var _namespace; | ||
if (typeof value === 'string') { | ||
value = stringToBytes(value); | ||
} | ||
export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; | ||
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; | ||
export default function v35(version, hash, value, namespace, buf, offset) { | ||
const valueBytes = typeof value === 'string' ? stringToBytes(value) : value; | ||
const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace; | ||
if (typeof namespace === 'string') { | ||
namespace = parse(namespace); | ||
namespace = parse(namespace); | ||
} | ||
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { | ||
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); | ||
if (namespace?.length !== 16) { | ||
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); | ||
} | ||
// Compute hash of namespace and value, Per 4.3 | ||
// Future: Use spread syntax when supported on all platforms, e.g. `bytes = | ||
// hashfunc([...namespace, ... value])` | ||
var bytes = new Uint8Array(16 + value.length); | ||
bytes.set(namespace); | ||
bytes.set(value, namespace.length); | ||
bytes = hashfunc(bytes); | ||
bytes[6] = bytes[6] & 0x0f | version; | ||
bytes[8] = bytes[8] & 0x3f | 0x80; | ||
let bytes = new Uint8Array(16 + valueBytes.length); | ||
bytes.set(namespaceBytes); | ||
bytes.set(valueBytes, namespaceBytes.length); | ||
bytes = hash(bytes); | ||
bytes[6] = (bytes[6] & 0x0f) | version; | ||
bytes[8] = (bytes[8] & 0x3f) | 0x80; | ||
if (buf) { | ||
offset = offset || 0; | ||
for (var i = 0; i < 16; ++i) { | ||
buf[offset + i] = bytes[i]; | ||
} | ||
return buf; | ||
offset = offset || 0; | ||
for (let i = 0; i < 16; ++i) { | ||
buf[offset + i] = bytes[i]; | ||
} | ||
return buf; | ||
} | ||
return unsafeStringify(bytes); | ||
} | ||
// Function#name is not settable on some platforms (#270) | ||
try { | ||
generateUUID.name = name; | ||
} catch (err) {} | ||
// For CommonJS default export support | ||
generateUUID.DNS = DNS; | ||
generateUUID.URL = URL; | ||
return generateUUID; | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjM1LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3YzNS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUV2QyxHQUFHLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDcEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxzQ0FBc0MsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsc0NBQXNDLENBQUM7QUFJMUQsTUFBTSxDQUFDLE9BQU8sVUFBVSxHQUFHLENBQ3pCLE9BQW9CLEVBQ3BCLElBQWtCLEVBQ2xCLEtBQTBCLEVBQzFCLFNBQW9CLEVBQ3BCLEdBQWdCLEVBQ2hCLE1BQWU7SUFFZixNQUFNLFVBQVUsR0FBZSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3hGLE1BQU0sY0FBYyxHQUFlLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFaEcsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFNBQVMsRUFBRSxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxTQUFTLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBS0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUVwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFFckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIn0= |
@@ -5,22 +5,19 @@ import native from './native.js'; | ||
function v4(options, buf, offset) { | ||
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` | ||
rnds[6] = rnds[6] & 0x0f | 0x40; | ||
rnds[8] = rnds[8] & 0x3f | 0x80; | ||
// Copy bytes to buffer, if provided | ||
if (buf) { | ||
offset = offset || 0; | ||
for (var i = 0; i < 16; ++i) { | ||
buf[offset + i] = rnds[i]; | ||
if (native.randomUUID && !buf && !options) { | ||
return native.randomUUID(); | ||
} | ||
return buf; | ||
} | ||
return unsafeStringify(rnds); | ||
options = options || {}; | ||
const rnds = options.random || (options.rng || rng)(); | ||
rnds[6] = (rnds[6] & 0x0f) | 0x40; | ||
rnds[8] = (rnds[8] & 0x3f) | 0x80; | ||
if (buf) { | ||
offset = offset || 0; | ||
for (let i = 0; i < 16; ++i) { | ||
buf[offset + i] = rnds[i]; | ||
} | ||
return buf; | ||
} | ||
return unsafeStringify(rnds); | ||
} | ||
export default v4; | ||
export default v4; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9 |
@@ -1,4 +0,10 @@ | ||
import v35 from './v35.js'; | ||
import sha1 from './sha1.js'; | ||
var v5 = v35('v5', 0x50, sha1); | ||
export default v5; | ||
import v35, { DNS, URL } from './v35.js'; | ||
export { DNS, URL } from './v35.js'; | ||
function v5(value, namespace, buf, offset) { | ||
return v35(0x50, sha1, value, namespace, buf, offset); | ||
} | ||
v5.DNS = DNS; | ||
v5.URL = URL; | ||
export default v5; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWNwQyxTQUFTLEVBQUUsQ0FBQyxLQUEwQixFQUFFLFNBQW9CLEVBQUUsR0FBZ0IsRUFBRSxNQUFlO0lBQzdGLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2IsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFFYixlQUFlLEVBQUUsQ0FBQyJ9 |
@@ -1,36 +0,18 @@ | ||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } | ||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } | ||
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } | ||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } | ||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } | ||
import { unsafeStringify } from './stringify.js'; | ||
import v1 from './v1.js'; | ||
import v1ToV6 from './v1ToV6.js'; | ||
/** | ||
* | ||
* @param {object} options | ||
* @param {Uint8Array=} buf | ||
* @param {number=} offset | ||
* @returns | ||
*/ | ||
export default function v6(options = {}, buf, offset = 0) { | ||
// v6 is v1 with different field layout, so we start with a v1 UUID, albeit | ||
// with slightly different behavior around how the clock_seq and node fields | ||
// are randomized, which is why we call v1 with _v6: true. | ||
var bytes = v1(_objectSpread(_objectSpread({}, options), {}, { | ||
_v6: true | ||
}), new Uint8Array(16)); | ||
// Reorder the fields to v6 layout. | ||
bytes = v1ToV6(bytes); | ||
// Return as a byte array if requested | ||
if (buf) { | ||
for (var i = 0; i < 16; i++) { | ||
buf[offset + i] = bytes[i]; | ||
function v6(options, buf, offset) { | ||
options ??= {}; | ||
offset ??= 0; | ||
let bytes = v1({ ...options, _v6: true }, new Uint8Array(16)); | ||
bytes = v1ToV6(bytes); | ||
if (buf) { | ||
for (let i = 0; i < 16; i++) { | ||
buf[offset + i] = bytes[i]; | ||
} | ||
return buf; | ||
} | ||
return buf; | ||
} | ||
return unsafeStringify(bytes); | ||
} | ||
return unsafeStringify(bytes); | ||
} | ||
export default v6; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFJakMsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsT0FBTyxLQUFLLEVBQUUsQ0FBQztJQUNmLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFLYixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUc5RCxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBR3RCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9 |
import parse from './parse.js'; | ||
import { unsafeStringify } from './stringify.js'; | ||
/** | ||
* Convert a v6 UUID to a v1 UUID | ||
* | ||
* @param {string|Uint8Array} uuid - The v6 UUID to convert to v6 | ||
* @returns {string|Uint8Array} The v1 UUID as the same type as the `uuid` arg | ||
* (string or Uint8Array) | ||
*/ | ||
export default function v6ToV1(uuid) { | ||
var v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; | ||
var v1Bytes = _v6ToV1(v6Bytes); | ||
return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes; | ||
const v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; | ||
const v1Bytes = _v6ToV1(v6Bytes); | ||
return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes; | ||
} | ||
// Do the field transformation needed for v6 -> v1 | ||
function _v6ToV1(v6Bytes) { | ||
return Uint8Array.of((v6Bytes[3] & 0x0f) << 4 | v6Bytes[4] >> 4 & 0x0f, (v6Bytes[4] & 0x0f) << 4 | (v6Bytes[5] & 0xf0) >> 4, (v6Bytes[5] & 0x0f) << 4 | v6Bytes[6] & 0x0f, v6Bytes[7], (v6Bytes[1] & 0x0f) << 4 | (v6Bytes[2] & 0xf0) >> 4, (v6Bytes[2] & 0x0f) << 4 | (v6Bytes[3] & 0xf0) >> 4, 0x10 | (v6Bytes[0] & 0xf0) >> 4, (v6Bytes[0] & 0x0f) << 4 | (v6Bytes[1] & 0xf0) >> 4, v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); | ||
} | ||
return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjZUb1YxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Y2VG9WMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBV2pELE1BQU0sQ0FBQyxPQUFPLFVBQVUsTUFBTSxDQUFDLElBQWU7SUFDNUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUU5RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakMsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3ZFLENBQUM7QUFHRCxTQUFTLE9BQU8sQ0FBQyxPQUFtQjtJQUNsQyxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFDdkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUNoRCxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBRVYsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBRXZELElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNqQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBRXZELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ1YsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUNYLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUNYLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztBQUNKLENBQUMifQ== |
import rng from './rng.js'; | ||
import { unsafeStringify } from './stringify.js'; | ||
/** | ||
* UUID V7 - Unix Epoch time-based UUID | ||
* | ||
* The IETF has published RFC9562, introducing 3 new UUID versions (6,7,8). This | ||
* implementation of V7 is based on the accepted, though not yet approved, | ||
* revisions. | ||
* | ||
* RFC 9562:https://www.rfc-editor.org/rfc/rfc9562.html Universally Unique | ||
* IDentifiers (UUIDs) | ||
* | ||
* Sample V7 value: | ||
* https://www.rfc-editor.org/rfc/rfc9562.html#name-example-of-a-uuidv7-value | ||
* | ||
* Monotonic Bit Layout: RFC rfc9562.6.2 Method 1, Dedicated Counter Bits ref: | ||
* https://www.rfc-editor.org/rfc/rfc9562.html#section-6.2-5.1 | ||
* | ||
* 0 1 2 3 0 1 2 3 4 5 6 | ||
* 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
* | unix_ts_ms | | ||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
* | unix_ts_ms | ver | seq_hi | | ||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
* |var| seq_low | rand | | ||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
* | rand | | ||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
* | ||
* seq is a 31 bit serialized counter; comprised of 12 bit seq_hi and 19 bit | ||
* seq_low, and randomly initialized upon timestamp change. 31 bit counter size | ||
* was selected as any bitwise operations in node are done as _signed_ 32 bit | ||
* ints. we exclude the sign bit. | ||
*/ | ||
var _seqLow = null; | ||
var _seqHigh = null; | ||
var _msecs = 0; | ||
const _state = {}; | ||
function v7(options, buf, offset) { | ||
options = options || {}; | ||
// initialize buffer and pointer | ||
var i = buf && offset || 0; | ||
var b = buf || new Uint8Array(16); | ||
// rnds is Uint8Array(16) filled with random bytes | ||
var rnds = options.random || (options.rng || rng)(); | ||
// milliseconds since unix epoch, 1970-01-01 00:00 | ||
var msecs = options.msecs !== undefined ? options.msecs : Date.now(); | ||
// seq is user provided 31 bit counter | ||
var seq = options.seq !== undefined ? options.seq : null; | ||
// initialize local seq high/low parts | ||
var seqHigh = _seqHigh; | ||
var seqLow = _seqLow; | ||
// check if clock has advanced and user has not provided msecs | ||
if (msecs > _msecs && options.msecs === undefined) { | ||
_msecs = msecs; | ||
// unless user provided seq, reset seq parts | ||
if (seq !== null) { | ||
seqHigh = null; | ||
seqLow = null; | ||
let bytes; | ||
if (options) { | ||
bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset); | ||
} | ||
} | ||
// if we have a user provided seq | ||
if (seq !== null) { | ||
// trim provided seq to 31 bits of value, avoiding overflow | ||
if (seq > 0x7fffffff) { | ||
seq = 0x7fffffff; | ||
else { | ||
const now = Date.now(); | ||
const rnds = rng(); | ||
updateV7State(_state, now, rnds); | ||
bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset); | ||
} | ||
// split provided seq into high/low parts | ||
seqHigh = seq >>> 19 & 0xfff; | ||
seqLow = seq & 0x7ffff; | ||
} | ||
// randomly initialize seq | ||
if (seqHigh === null || seqLow === null) { | ||
seqHigh = rnds[6] & 0x7f; | ||
seqHigh = seqHigh << 8 | rnds[7]; | ||
seqLow = rnds[8] & 0x3f; // pad for var | ||
seqLow = seqLow << 8 | rnds[9]; | ||
seqLow = seqLow << 5 | rnds[10] >>> 3; | ||
} | ||
// increment seq if within msecs window | ||
if (msecs + 10000 > _msecs && seq === null) { | ||
if (++seqLow > 0x7ffff) { | ||
seqLow = 0; | ||
if (++seqHigh > 0xfff) { | ||
seqHigh = 0; | ||
// increment internal _msecs. this allows us to continue incrementing | ||
// while staying monotonic. Note, once we hit 10k milliseconds beyond system | ||
// clock, we will reset breaking monotonicity (after (2^31)*10000 generations) | ||
_msecs++; | ||
} | ||
return buf ? bytes : unsafeStringify(bytes); | ||
} | ||
export function updateV7State(state, now, rnds) { | ||
state.msecs ??= -Infinity; | ||
state.seq ??= 0; | ||
if (now > state.msecs) { | ||
state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; | ||
state.msecs = now; | ||
} | ||
} else { | ||
// resetting; we have advanced more than | ||
// 10k milliseconds beyond system clock | ||
_msecs = msecs; | ||
} | ||
_seqHigh = seqHigh; | ||
_seqLow = seqLow; | ||
// [bytes 0-5] 48 bits of local timestamp | ||
b[i++] = _msecs / 0x10000000000 & 0xff; | ||
b[i++] = _msecs / 0x100000000 & 0xff; | ||
b[i++] = _msecs / 0x1000000 & 0xff; | ||
b[i++] = _msecs / 0x10000 & 0xff; | ||
b[i++] = _msecs / 0x100 & 0xff; | ||
b[i++] = _msecs & 0xff; | ||
// [byte 6] - set 4 bits of version (7) with first 4 bits seq_hi | ||
b[i++] = seqHigh >>> 4 & 0x0f | 0x70; | ||
// [byte 7] remaining 8 bits of seq_hi | ||
b[i++] = seqHigh & 0xff; | ||
// [byte 8] - variant (2 bits), first 6 bits seq_low | ||
b[i++] = seqLow >>> 13 & 0x3f | 0x80; | ||
// [byte 9] 8 bits seq_low | ||
b[i++] = seqLow >>> 5 & 0xff; | ||
// [byte 10] remaining 5 bits seq_low, 3 bits random | ||
b[i++] = seqLow << 3 & 0xff | rnds[10] & 0x07; | ||
// [bytes 11-15] always random | ||
b[i++] = rnds[11]; | ||
b[i++] = rnds[12]; | ||
b[i++] = rnds[13]; | ||
b[i++] = rnds[14]; | ||
b[i++] = rnds[15]; | ||
return buf || unsafeStringify(b); | ||
else { | ||
state.seq = (state.seq + 1) | 0; | ||
if (state.seq === 0) { | ||
state.msecs++; | ||
} | ||
} | ||
return state; | ||
} | ||
export default v7; | ||
function v7Bytes(rnds, msecs, seq, buf, offset = 0) { | ||
if (!buf) { | ||
buf = new Uint8Array(16); | ||
offset = 0; | ||
} | ||
msecs ??= Date.now(); | ||
seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; | ||
buf[offset++] = (msecs / 0x10000000000) & 0xff; | ||
buf[offset++] = (msecs / 0x100000000) & 0xff; | ||
buf[offset++] = (msecs / 0x1000000) & 0xff; | ||
buf[offset++] = (msecs / 0x10000) & 0xff; | ||
buf[offset++] = (msecs / 0x100) & 0xff; | ||
buf[offset++] = msecs & 0xff; | ||
buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f); | ||
buf[offset++] = (seq >>> 20) & 0xff; | ||
buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f); | ||
buf[offset++] = (seq >>> 6) & 0xff; | ||
buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03); | ||
buf[offset++] = rnds[11]; | ||
buf[offset++] = rnds[12]; | ||
buf[offset++] = rnds[13]; | ||
buf[offset++] = rnds[14]; | ||
buf[offset++] = rnds[15]; | ||
return buf; | ||
} | ||
export default v7; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9qRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7QUFJM0IsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxLQUFpQixDQUFDO0lBRXRCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFWixLQUFLLEdBQUcsT0FBTyxDQUNiLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQzFDLE9BQU8sQ0FBQyxLQUFLLEVBQ2IsT0FBTyxDQUFDLEdBQUcsRUFDWCxHQUFHLEVBQ0gsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUVOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUVuQixhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUlELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYyxFQUFFLEdBQVcsRUFBRSxJQUFnQjtJQUN6RSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzFC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 |
import REGEX from './regex.js'; | ||
function validate(uuid) { | ||
return typeof uuid === 'string' && REGEX.test(uuid); | ||
return typeof uuid === 'string' && REGEX.test(uuid); | ||
} | ||
export default validate; | ||
export default validate; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRS9CLFNBQVMsUUFBUSxDQUFDLElBQWE7SUFDN0IsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsZUFBZSxRQUFRLENBQUMifQ== |
import validate from './validate.js'; | ||
function version(uuid) { | ||
if (!validate(uuid)) { | ||
throw TypeError('Invalid UUID'); | ||
} | ||
return parseInt(uuid.slice(14, 15), 16); | ||
if (!validate(uuid)) { | ||
throw TypeError('Invalid UUID'); | ||
} | ||
return parseInt(uuid.slice(14, 15), 16); | ||
} | ||
export default version; | ||
export default version; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQztBQUVyQyxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELGVBQWUsT0FBTyxDQUFDIn0= |
117
package.json
{ | ||
"name": "uuid", | ||
"version": "10.0.0", | ||
"version": "11.0.0-0", | ||
"description": "RFC9562 UUIDs", | ||
"type": "module", | ||
"funding": [ | ||
@@ -22,11 +23,11 @@ "https://github.com/sponsors/broofa", | ||
"bin": { | ||
"uuid": "dist/bin/uuid" | ||
"uuid": "./dist/esm/bin/uuid" | ||
}, | ||
"sideEffects": false, | ||
"main": "./dist/index.js", | ||
"main": "./dist/cjs/index.js", | ||
"exports": { | ||
".": { | ||
"node": { | ||
"module": "./dist/esm-node/index.js", | ||
"require": "./dist/index.js", | ||
"module": "./dist/esm/index.js", | ||
"require": "./dist/cjs/index.js", | ||
"import": "./wrapper.mjs" | ||
@@ -36,3 +37,3 @@ }, | ||
"import": "./dist/esm-browser/index.js", | ||
"require": "./dist/commonjs-browser/index.js" | ||
"require": "./dist/cjs-browser/index.js" | ||
}, | ||
@@ -43,10 +44,3 @@ "default": "./dist/esm-browser/index.js" | ||
}, | ||
"module": "./dist/esm-node/index.js", | ||
"browser": { | ||
"./dist/esm-node/index.js": "./dist/esm-browser/index.js", | ||
"./dist/md5.js": "./dist/md5-browser.js", | ||
"./dist/native.js": "./dist/native-browser.js", | ||
"./dist/rng.js": "./dist/rng-browser.js", | ||
"./dist/sha1.js": "./dist/sha1-browser.js" | ||
}, | ||
"module": "./dist/esm/index.js", | ||
"files": [ | ||
@@ -61,71 +55,72 @@ "CHANGELOG.md", | ||
"devDependencies": { | ||
"@babel/cli": "7.24.6", | ||
"@babel/core": "7.24.6", | ||
"@babel/eslint-parser": "7.24.6", | ||
"@babel/plugin-syntax-import-attributes": "7.24.6", | ||
"@babel/preset-env": "7.24.6", | ||
"@babel/eslint-parser": "7.24.8", | ||
"@commitlint/cli": "19.3.0", | ||
"@commitlint/config-conventional": "19.2.2", | ||
"@wdio/browserstack-service": "7.16.10", | ||
"@wdio/cli": "7.16.10", | ||
"@wdio/jasmine-framework": "7.16.6", | ||
"@wdio/local-runner": "7.16.10", | ||
"@wdio/spec-reporter": "7.16.9", | ||
"@wdio/static-server-service": "7.16.6", | ||
"@eslint/js": "9.7.0", | ||
"@types/eslint__js": "8.42.3", | ||
"@wdio/browserstack-service": "9.0.9", | ||
"@wdio/cli": "9.0.9", | ||
"@wdio/jasmine-framework": "9.0.9", | ||
"@wdio/local-runner": "9.0.9", | ||
"@wdio/spec-reporter": "9.0.8", | ||
"@wdio/static-server-service": "9.0.8", | ||
"bundlewatch": "0.3.3", | ||
"eslint": "9.4.0", | ||
"eslint-plugin-prettier": "5.1.3", | ||
"globals": "15.3.0", | ||
"husky": "9.0.11", | ||
"eslint": "9.7.0", | ||
"eslint-config-prettier": "9.1.0", | ||
"eslint-plugin-prettier": "5.2.1", | ||
"globals": "15.8.0", | ||
"husky": "9.1.1", | ||
"jest": "29.7.0", | ||
"lint-staged": "15.2.5", | ||
"neostandard": "0.5.1", | ||
"lint-staged": "15.2.7", | ||
"neostandard": "0.11.1", | ||
"npm-run-all": "4.1.5", | ||
"optional-dev-dependency": "2.0.1", | ||
"prettier": "3.3.0", | ||
"random-seed": "0.3.0", | ||
"prettier": "3.3.3", | ||
"runmd": "1.3.9", | ||
"standard-version": "9.5.0" | ||
"standard-version": "9.5.0", | ||
"typescript": "5.5.3", | ||
"typescript-eslint": "8.0.0-alpha.30" | ||
}, | ||
"optionalDevDependencies": { | ||
"@wdio/browserstack-service": "7.16.10", | ||
"@wdio/cli": "7.16.10", | ||
"@wdio/jasmine-framework": "7.16.6", | ||
"@wdio/local-runner": "7.16.10", | ||
"@wdio/spec-reporter": "7.16.9", | ||
"@wdio/static-server-service": "7.16.6" | ||
"@wdio/browserstack-service": "9.0.9", | ||
"@wdio/cli": "9.0.9", | ||
"@wdio/jasmine-framework": "9.0.9", | ||
"@wdio/local-runner": "9.0.9", | ||
"@wdio/spec-reporter": "9.0.8", | ||
"@wdio/static-server-service": "9.0.8" | ||
}, | ||
"scripts": { | ||
"build": "./scripts/build.sh", | ||
"build:watch": "tsc --watch -p tsconfig.esm.json", | ||
"bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", | ||
"docs:diff": "npm run docs && git diff --quiet README.md", | ||
"docs": "npm run build && npx runmd --output=README.md README_js.md", | ||
"eslint:check": "eslint src/ test/ examples/ *.[jt]s", | ||
"eslint:fix": "eslint --fix src/ test/ examples/ *.[jt]s", | ||
"examples:browser:rollup:build": "cd examples/browser-rollup && npm install && npm run build", | ||
"examples:browser:webpack:build": "cd examples/browser-webpack && npm install && npm run build", | ||
"examples:browser:rollup:build": "cd examples/browser-rollup && npm install && npm run build", | ||
"examples:node:commonjs:test": "cd examples/node-commonjs && npm install && npm test", | ||
"examples:node:esmodules:test": "cd examples/node-esmodules && npm install && npm test", | ||
"examples:node:jest:test": "cd examples/node-jest && npm install && npm test", | ||
"prepare": "husky install", | ||
"lint": "npm run eslint:check && npm run prettier:check", | ||
"eslint:check": "eslint src/ test/ examples/ *.js", | ||
"eslint:fix": "eslint --fix src/ test/ examples/ *.js", | ||
"md": "runmd --watch --output=README.md README_js.md", | ||
"prepack": "npm run build", | ||
"prepare": "husky", | ||
"pretest:benchmark": "npm run build", | ||
"pretest:browser": "optional-dev-dependency && npm run build && npm-run-all --parallel examples:browser:**", | ||
"pretest:node": "npm run build", | ||
"pretest": "npm run build", | ||
"test": "BABEL_ENV=commonjsNode node --throw-deprecation node_modules/.bin/jest test/unit/", | ||
"test:matching": "BABEL_ENV=commonjsNode node --throw-deprecation node_modules/.bin/jest test/unit/ -t", | ||
"pretest:browser": "optional-dev-dependency && npm run build && npm-run-all --parallel examples:browser:**", | ||
"prettier:check": "prettier --check .", | ||
"prettier:fix": "prettier --write .", | ||
"release": "standard-version --no-verify", | ||
"test:benchmark": "cd examples/benchmark && HUSKY=0 npm install && npm test", | ||
"test:browser": "wdio run ./wdio.conf.js", | ||
"pretest:node": "npm run build", | ||
"test:node": "npm-run-all --parallel examples:node:**", | ||
"test:pack": "./scripts/testpack.sh", | ||
"pretest:benchmark": "npm run build", | ||
"test:benchmark": "cd examples/benchmark && HUSKY=0 npm install && npm test", | ||
"prettier:check": "prettier --check .", | ||
"prettier:fix": "prettier --write .", | ||
"bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", | ||
"md": "runmd --watch --output=README.md README_js.md", | ||
"docs": "npm run build && npx runmd --output=README.md README_js.md", | ||
"docs:diff": "npm run docs && git diff --quiet README.md", | ||
"build": "./scripts/build.sh", | ||
"prepack": "npm run build", | ||
"release": "standard-version --no-verify" | ||
"test:watch": "node --test --enable-source-maps --watch dist/esm/test", | ||
"test": "node --test --enable-source-maps dist/esm/test" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/uuidjs/uuid.git" | ||
"url": "https://github.com/uuidjs/uuid.git" | ||
}, | ||
@@ -145,3 +140,3 @@ "lint-staged": { | ||
}, | ||
"packageManager": "npm@10.8.1+sha256.b8807aebb9656758e2872fa6e7c564b506aa2faa9297439a478d471d2fe32483" | ||
"packageManager": "npm@10.8.2+sha256.c8c61ba0fa0ab3b5120efd5ba97fdaf0e0b495eef647a97c4413919eda0a878b" | ||
} |
229
README.md
@@ -10,25 +10,20 @@ <!-- | ||
- **Complete** - Support for all RFC9562 (nee RFC4122) UUID versions | ||
- **Complete** - Support for all RFC9562 UUID versions | ||
- **Cross-platform** - Support for ... | ||
- CommonJS, [ECMAScript Modules](#ecmascript-modules) and [CDN builds](#cdn-builds) | ||
- CommonJS, [ECMAScript Modules](#ecmascript-modules) | ||
- NodeJS 16+ ([LTS releases](https://github.com/nodejs/Release)) | ||
- Chrome, Safari, Firefox, Edge browsers | ||
- Webpack and rollup.js module bundlers | ||
- [React Native / Expo](#react-native--expo) | ||
- **Secure** - Cryptographically-strong random values | ||
- **Small** - Zero-dependency, small footprint, plays nice with "tree shaking" packagers | ||
- **Compact** - No dependencies, [tree-shakable](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking) | ||
- **CLI** - Includes the [`uuid` command line](#command-line) utility | ||
- **Typescript** - Types now included | ||
<!-- prettier-ignore --> | ||
> [!NOTE] | ||
> Upgrading from `uuid@3`? Your code is probably okay, but check out [Upgrading From `uuid@3`](#upgrading-from-uuid3) for details. | ||
> `uuid@11` has the following breaking changes: | ||
> * Passing `options` to `v1()`, `v6()`, and `v7()` now behaves slightly differently. [See details](#options-handling-for-timestamp-uuids) | ||
> * Binary UUIDs are now of type `Uint8Array`. This may affect code utilizing `parse()`, `stringify()`, or that passes a `buf` argument to any of the `v1()`-`v7()` methods. | ||
<!-- prettier-ignore --> | ||
> [!NOTE] | ||
> Only interested in creating a version 4 UUID? You might be able to use [`crypto.randomUUID()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID), eliminating the need to install this library. | ||
## Quickstart | ||
To create a random UUID... | ||
**1. Install** | ||
@@ -40,4 +35,6 @@ | ||
**2. Create a UUID** (ES6 module syntax) | ||
**2. Create a UUID** | ||
ESM-syntax (must use named exports): | ||
```javascript | ||
@@ -48,3 +45,3 @@ import { v4 as uuidv4 } from 'uuid'; | ||
... or using CommonJS syntax: | ||
... CommonJS: | ||
@@ -124,11 +121,8 @@ ```javascript | ||
// Parse a UUID | ||
const bytes = uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); | ||
// Convert to hex strings to show byte order (for documentation purposes) | ||
[...bytes].map((v) => v.toString(16).padStart(2, '0')); // ⇨ | ||
// [ | ||
// '6e', 'c0', 'bd', '7f', | ||
// '11', 'c0', '43', 'da', | ||
// '97', '5e', '2a', '8a', | ||
// 'd9', 'eb', 'ae', '0b' | ||
uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ | ||
// Uint8Array(16) [ | ||
// 110, 192, 189, 127, 17, | ||
// 192, 67, 218, 151, 94, | ||
// 42, 138, 217, 235, 174, | ||
// 11 | ||
// ] | ||
@@ -157,5 +151,20 @@ ``` | ||
const uuidBytes = [ | ||
0x6e, 0xc0, 0xbd, 0x7f, 0x11, 0xc0, 0x43, 0xda, 0x97, 0x5e, 0x2a, 0x8a, 0xd9, 0xeb, 0xae, 0x0b, | ||
]; | ||
const uuidBytes = Uint8Array.of( | ||
0x6e, | ||
0xc0, | ||
0xbd, | ||
0x7f, | ||
0x11, | ||
0xc0, | ||
0x43, | ||
0xda, | ||
0x97, | ||
0x5e, | ||
0x2a, | ||
0x8a, | ||
0xd9, | ||
0xeb, | ||
0xae, | ||
0x0b | ||
); | ||
@@ -196,3 +205,3 @@ uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b' | ||
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d' | ||
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9bdd-2b0d7b3dcb6d' | ||
``` | ||
@@ -206,3 +215,3 @@ | ||
const options = { | ||
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], | ||
node: Uint8Array.of(0x01, 0x23, 0x45, 0x67, 0x89, 0xab), | ||
clockseq: 0x1234, | ||
@@ -253,3 +262,3 @@ msecs: new Date('2011-11-01').getTime(), | ||
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' | ||
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' | ||
``` | ||
@@ -263,5 +272,20 @@ | ||
const v4options = { | ||
random: [ | ||
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36, | ||
], | ||
random: Uint8Array.of( | ||
0x10, | ||
0x91, | ||
0x56, | ||
0xbe, | ||
0xc4, | ||
0xfb, | ||
0xc1, | ||
0xea, | ||
0x71, | ||
0xb4, | ||
0xef, | ||
0xe1, | ||
0x67, | ||
0x1c, | ||
0x58, | ||
0x36 | ||
), | ||
}; | ||
@@ -316,3 +340,3 @@ uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836' | ||
uuidv6(); // ⇨ '1e940672-c5ea-64c0-8bad-9b1deb4d3b7d' | ||
uuidv6(); // ⇨ '1e940672-c5ea-64c0-9b5d-ab8dfbbd4bed' | ||
``` | ||
@@ -351,6 +375,6 @@ | ||
| [`options`] | `Object` with one or more of the following properties: | | ||
| [`options.msecs`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) | | ||
| [`options.msecs`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch). Default = `Date.now()` | | ||
| [`options.random`] | `Array` of 16 random bytes (0-255) | | ||
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) | | ||
| [`options.seq`] | 31 bit monotonic sequence counter as `Number` between 0 - 0x7fffffff | | ||
| [`options.seq`] | 32-bit sequence `Number` between 0 - 0xffffffff. This may be provided to help insure uniqueness for UUIDs generated within the same millisecond time interval. Default = random value. | | ||
| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` | | ||
@@ -365,3 +389,3 @@ | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` | | ||
uuidv7(); // ⇨ '01695553-c90c-722d-9b5d-b38dfbbd4bed' | ||
uuidv7(); // ⇨ '01695553-c90c-705a-b56d-778dfbbd4bed' | ||
``` | ||
@@ -462,136 +486,13 @@ | ||
## ECMAScript Modules | ||
## `options` Handling for Timestamp UUIDs | ||
This library comes with [ECMAScript Modules](https://www.ecma-international.org/ecma-262/6.0/#sec-modules) (ESM) support for Node.js versions that support it ([example](./examples/node-esmodules/)) as well as bundlers like [rollup.js](https://rollupjs.org/guide/en/#tree-shaking) ([example](./examples/browser-rollup/)) and [webpack](https://webpack.js.org/guides/tree-shaking/) ([example](./examples/browser-webpack/)) (targeting both, Node.js and browser environments). | ||
As of `uuid@11`, all timestamp-based UUID APIs (`v1()`, `v6()`, and `v7()`) now operate in two distinct modes: | ||
```javascript | ||
import { v4 as uuidv4 } from 'uuid'; | ||
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' | ||
``` | ||
- Without `options`: If no `options` argument is passed, these APIs will make use of internal state such as a sequence counter to improve UUID uniqueness. | ||
- With `options`: If an `options` argument of any kind is passed, no internal state is used or updated. Instead, appropriate defaults are used. See the respective APIs for details. | ||
To run the examples you must first create a dist build of this library in the module root: | ||
Prior to `uuid@11`, this distinction was less clear. Internal state was was being combined with `options` values in ways that were difficult to rationalize about, and that could lead to unpredictable behavior. Hence, this change. | ||
```shell | ||
npm run build | ||
``` | ||
## CDN Builds | ||
### ECMAScript Modules | ||
To load this module directly into modern browsers that [support loading ECMAScript Modules](https://caniuse.com/#feat=es6-module) you can make use of [jspm](https://jspm.org/): | ||
```html | ||
<script type="module"> | ||
import { v4 as uuidv4 } from 'https://jspm.dev/uuid'; | ||
console.log(uuidv4()); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' | ||
</script> | ||
``` | ||
### UMD | ||
As of `uuid@9` [UMD (Universal Module Definition)](https://github.com/umdjs/umd) builds are no longer shipped with this library. | ||
If you need a UMD build of this library, use a bundler like Webpack or Rollup. Alternatively, refer to the documentation of [`uuid@8.3.2`](https://github.com/uuidjs/uuid/blob/v8.3.2/README.md#umd) which was the last version that shipped UMD builds. | ||
## Known issues | ||
### Duplicate UUIDs (Googlebot) | ||
This module may generate duplicate UUIDs when run in clients with _deterministic_ random number generators, such as [Googlebot crawlers](https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers). This can cause problems for apps that expect client-generated UUIDs to always be unique. Developers should be prepared for this and have a strategy for dealing with possible collisions, such as: | ||
- Check for duplicate UUIDs, fail gracefully | ||
- Disable write operations for Googlebot clients | ||
### "getRandomValues() not supported" | ||
This error occurs in environments where the standard [`crypto.getRandomValues()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) API is not supported. This issue can be resolved by adding an appropriate polyfill: | ||
### React Native / Expo | ||
1. Install [`react-native-get-random-values`](https://github.com/LinusU/react-native-get-random-values#readme) | ||
1. Import it _before_ `uuid`. Since `uuid` might also appear as a transitive dependency of some other imports it's safest to just import `react-native-get-random-values` as the very first thing in your entry point: | ||
```javascript | ||
import 'react-native-get-random-values'; | ||
import { v4 as uuidv4 } from 'uuid'; | ||
``` | ||
<!-- prettier-ignore --> | ||
> [!NOTE] | ||
> If you are using Expo, you must be using at least `react-native-get-random-values@1.5.0` and `expo@39.0.0`. | ||
### Web Workers / Service Workers (Edge <= 18) | ||
[In Edge <= 18, Web Crypto is not supported in Web Workers or Service Workers](https://caniuse.com/#feat=cryptography) and we are not aware of a polyfill (let us know if you find one, please). | ||
### IE 11 (Internet Explorer) | ||
Support for IE11 and other legacy browsers has been dropped as of `uuid@9`. If you need to support legacy browsers, you can always transpile the uuid module source yourself (e.g. using [Babel](https://babeljs.io/)). | ||
## Upgrading From `uuid@7` | ||
### Only Named Exports Supported When Using with Node.js ESM | ||
`uuid@7` did not come with native ECMAScript Module (ESM) support for Node.js. Importing it in Node.js ESM consequently imported the CommonJS source with a default export. This library now comes with true Node.js ESM support and only provides named exports. | ||
Instead of doing: | ||
```javascript | ||
import uuid from 'uuid'; | ||
uuid.v4(); | ||
``` | ||
you will now have to use the named exports: | ||
```javascript | ||
import { v4 as uuidv4 } from 'uuid'; | ||
uuidv4(); | ||
``` | ||
### Deep Requires No Longer Supported | ||
Deep requires like `require('uuid/v4')` [which have been deprecated in `uuid@7`](#deep-requires-now-deprecated) are no longer supported. | ||
## Upgrading From `uuid@3` | ||
"_Wait... what happened to `uuid@4` thru `uuid@6`?!?_" | ||
In order to avoid confusion with RFC [version 4](#uuidv4options-buffer-offset) and [version 5](#uuidv5name-namespace-buffer-offset) UUIDs, and a possible [version 6](http://gh.peabody.io/uuidv6/), releases 4 thru 6 of this module have been skipped. | ||
### Deep Requires Now Deprecated | ||
`uuid@3` encouraged the use of deep requires to minimize the bundle size of browser builds: | ||
```javascript | ||
const uuidv4 = require('uuid/v4'); // <== NOW DEPRECATED! | ||
uuidv4(); | ||
``` | ||
As of `uuid@7` this library now provides ECMAScript modules builds, which allow packagers like Webpack and Rollup to do "tree-shaking" to remove dead code. Instead, use the `import` syntax: | ||
```javascript | ||
import { v4 as uuidv4 } from 'uuid'; | ||
uuidv4(); | ||
``` | ||
... or for CommonJS: | ||
```javascript | ||
const { v4: uuidv4 } = require('uuid'); | ||
uuidv4(); | ||
``` | ||
### Default Export Removed | ||
`uuid@3` was exporting the Version 4 UUID method as a default export: | ||
```javascript | ||
const uuid = require('uuid'); // <== REMOVED! | ||
``` | ||
This usage pattern was already discouraged in `uuid@3` and has been removed in `uuid@7`. | ||
--- | ||
Markdown generated from [README_js.md](README_js.md) by <a href="https://github.com/broofa/runmd"><image height="12px" src="https://camo.githubusercontent.com/5c7c603cd1e6a43370b0a5063d457e0dabb74cf317adc7baba183acb686ee8d0/687474703a2f2f692e696d6775722e636f6d2f634a4b6f3662552e706e67" /></a> |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
High entropy strings
Supply chain riskContains high entropy strings. This could be a sign of encrypted data, leaked secrets or obfuscated code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
650868
281
6005
Yes
2
486
4
1