uuid 8.2.0-beta.0 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -1
- package/README.md +233 -167
- package/dist/esm-browser/index.js +6 -1
- package/dist/esm-browser/nil.js +1 -0
- package/dist/esm-browser/parse.js +35 -0
- package/dist/esm-browser/regex.js +1 -0
- package/dist/esm-browser/sha1.js +3 -0
- package/dist/esm-browser/stringify.js +30 -0
- package/dist/esm-browser/v1.js +2 -2
- package/dist/esm-browser/v35.js +13 -20
- package/dist/esm-browser/v4.js +2 -2
- package/dist/esm-browser/validate.js +7 -0
- package/dist/esm-browser/version.js +11 -0
- package/dist/esm-node/index.js +6 -1
- package/dist/esm-node/nil.js +1 -0
- package/dist/esm-node/parse.js +35 -0
- package/dist/esm-node/regex.js +1 -0
- package/dist/esm-node/rng.js +9 -2
- package/dist/esm-node/stringify.js +29 -0
- package/dist/esm-node/v1.js +2 -2
- package/dist/esm-node/v35.js +13 -20
- package/dist/esm-node/v4.js +2 -2
- package/dist/esm-node/validate.js +7 -0
- package/dist/esm-node/version.js +11 -0
- package/dist/index.js +40 -0
- package/dist/nil.js +8 -0
- package/dist/parse.js +45 -0
- package/dist/regex.js +8 -0
- package/dist/rng.js +10 -2
- package/dist/sha1-browser.js +3 -0
- package/dist/stringify.js +39 -0
- package/dist/umd/uuid.min.js +1 -1
- package/dist/umd/uuidNIL.min.js +1 -0
- package/dist/umd/uuidParse.min.js +1 -0
- package/dist/umd/uuidStringify.min.js +1 -0
- package/dist/umd/uuidValidate.min.js +1 -0
- package/dist/umd/uuidVersion.min.js +1 -0
- package/dist/umd/uuidv1.min.js +1 -1
- package/dist/umd/uuidv3.min.js +1 -1
- package/dist/umd/uuidv4.min.js +1 -1
- package/dist/umd/uuidv5.min.js +1 -1
- package/dist/v1.js +2 -2
- package/dist/v35.js +14 -20
- package/dist/v4.js +2 -2
- package/dist/validate.js +17 -0
- package/dist/version.js +21 -0
- package/package.json +29 -25
- package/wrapper.mjs +5 -0
- package/dist/bytesToUuid.js +0 -26
- package/dist/esm-browser/bytesToUuid.js +0 -18
- package/dist/esm-node/bytesToUuid.js +0 -18
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import validate from './validate.js';
|
|
2
|
+
|
|
3
|
+
function parse(uuid) {
|
|
4
|
+
if (!validate(uuid)) {
|
|
5
|
+
throw TypeError('Invalid UUID');
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
var v;
|
|
9
|
+
var arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
|
10
|
+
|
|
11
|
+
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
|
12
|
+
arr[1] = v >>> 16 & 0xff;
|
|
13
|
+
arr[2] = v >>> 8 & 0xff;
|
|
14
|
+
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
|
15
|
+
|
|
16
|
+
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
|
17
|
+
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
|
18
|
+
|
|
19
|
+
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
|
20
|
+
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
|
21
|
+
|
|
22
|
+
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
|
23
|
+
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
|
24
|
+
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
|
25
|
+
|
|
26
|
+
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
|
27
|
+
arr[11] = v / 0x100000000 & 0xff;
|
|
28
|
+
arr[12] = v >>> 24 & 0xff;
|
|
29
|
+
arr[13] = v >>> 16 & 0xff;
|
|
30
|
+
arr[14] = v >>> 8 & 0xff;
|
|
31
|
+
arr[15] = v & 0xff;
|
|
32
|
+
return arr;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default parse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
package/dist/esm-browser/sha1.js
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import validate from './validate.js';
|
|
2
|
+
/**
|
|
3
|
+
* Convert array of 16 byte values to UUID string format of the form:
|
|
4
|
+
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var byteToHex = [];
|
|
8
|
+
|
|
9
|
+
for (var i = 0; i < 256; ++i) {
|
|
10
|
+
byteToHex.push((i + 0x100).toString(16).substr(1));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function stringify(arr) {
|
|
14
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
15
|
+
// Note: Be careful editing this code! It's been tuned for performance
|
|
16
|
+
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
17
|
+
var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
|
|
18
|
+
// of the following:
|
|
19
|
+
// - One or more input array values don't map to a hex octet (leading to
|
|
20
|
+
// "undefined" in the uuid)
|
|
21
|
+
// - Invalid input values for the RFC `version` or `variant` fields
|
|
22
|
+
|
|
23
|
+
if (!validate(uuid)) {
|
|
24
|
+
throw TypeError('Stringified UUID is invalid');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return uuid;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default stringify;
|
package/dist/esm-browser/v1.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rng from './rng.js';
|
|
2
|
-
import
|
|
2
|
+
import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**
|
|
3
3
|
//
|
|
4
4
|
// Inspired by https://github.com/LiosK/UUID.js
|
|
5
5
|
// and http://docs.python.org/library/uuid.html
|
|
@@ -89,7 +89,7 @@ function v1(options, buf, offset) {
|
|
|
89
89
|
b[i + n] = node[n];
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
return buf ||
|
|
92
|
+
return buf || stringify(b);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
export default v1;
|
package/dist/esm-browser/v35.js
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
function uuidToBytes(uuid) {
|
|
4
|
-
// Note: We assume we're being passed a valid uuid string
|
|
5
|
-
var bytes = [];
|
|
6
|
-
uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {
|
|
7
|
-
bytes.push(parseInt(hex, 16));
|
|
8
|
-
});
|
|
9
|
-
return bytes;
|
|
10
|
-
}
|
|
1
|
+
import stringify from './stringify.js';
|
|
2
|
+
import parse from './parse.js';
|
|
11
3
|
|
|
12
4
|
function stringToBytes(str) {
|
|
13
5
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
|
@@ -30,19 +22,20 @@ export default function (name, version, hashfunc) {
|
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
if (typeof namespace === 'string') {
|
|
33
|
-
namespace =
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (!Array.isArray(value)) {
|
|
37
|
-
throw TypeError('value must be an array of bytes');
|
|
25
|
+
namespace = parse(namespace);
|
|
38
26
|
}
|
|
39
27
|
|
|
40
|
-
if (
|
|
41
|
-
throw TypeError('
|
|
42
|
-
} // Per 4.3
|
|
28
|
+
if (namespace.length !== 16) {
|
|
29
|
+
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
|
30
|
+
} // Compute hash of namespace and value, Per 4.3
|
|
31
|
+
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
|
32
|
+
// hashfunc([...namespace, ... value])`
|
|
43
33
|
|
|
44
34
|
|
|
45
|
-
var bytes =
|
|
35
|
+
var bytes = new Uint8Array(16 + value.length);
|
|
36
|
+
bytes.set(namespace);
|
|
37
|
+
bytes.set(value, namespace.length);
|
|
38
|
+
bytes = hashfunc(bytes);
|
|
46
39
|
bytes[6] = bytes[6] & 0x0f | version;
|
|
47
40
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
|
48
41
|
|
|
@@ -56,7 +49,7 @@ export default function (name, version, hashfunc) {
|
|
|
56
49
|
return buf;
|
|
57
50
|
}
|
|
58
51
|
|
|
59
|
-
return
|
|
52
|
+
return stringify(bytes);
|
|
60
53
|
} // Function#name is not settable on some platforms (#270)
|
|
61
54
|
|
|
62
55
|
|
package/dist/esm-browser/v4.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rng from './rng.js';
|
|
2
|
-
import
|
|
2
|
+
import stringify from './stringify.js';
|
|
3
3
|
|
|
4
4
|
function v4(options, buf, offset) {
|
|
5
5
|
options = options || {};
|
|
@@ -18,7 +18,7 @@ function v4(options, buf, offset) {
|
|
|
18
18
|
return buf;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
return
|
|
21
|
+
return stringify(rnds);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export default v4;
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export { default as v1 } from './v1.js';
|
|
2
2
|
export { default as v3 } from './v3.js';
|
|
3
3
|
export { default as v4 } from './v4.js';
|
|
4
|
-
export { default as v5 } from './v5.js';
|
|
4
|
+
export { default as v5 } from './v5.js';
|
|
5
|
+
export { default as NIL } from './nil.js';
|
|
6
|
+
export { default as version } from './version.js';
|
|
7
|
+
export { default as validate } from './validate.js';
|
|
8
|
+
export { default as stringify } from './stringify.js';
|
|
9
|
+
export { default as parse } from './parse.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default '00000000-0000-0000-0000-000000000000';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import validate from './validate.js';
|
|
2
|
+
|
|
3
|
+
function parse(uuid) {
|
|
4
|
+
if (!validate(uuid)) {
|
|
5
|
+
throw TypeError('Invalid UUID');
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let v;
|
|
9
|
+
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
|
10
|
+
|
|
11
|
+
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
|
12
|
+
arr[1] = v >>> 16 & 0xff;
|
|
13
|
+
arr[2] = v >>> 8 & 0xff;
|
|
14
|
+
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
|
15
|
+
|
|
16
|
+
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
|
17
|
+
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
|
18
|
+
|
|
19
|
+
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
|
20
|
+
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
|
21
|
+
|
|
22
|
+
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
|
23
|
+
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
|
24
|
+
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
|
25
|
+
|
|
26
|
+
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
|
27
|
+
arr[11] = v / 0x100000000 & 0xff;
|
|
28
|
+
arr[12] = v >>> 24 & 0xff;
|
|
29
|
+
arr[13] = v >>> 16 & 0xff;
|
|
30
|
+
arr[14] = v >>> 8 & 0xff;
|
|
31
|
+
arr[15] = v & 0xff;
|
|
32
|
+
return arr;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default parse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
package/dist/esm-node/rng.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
|
-
const
|
|
2
|
+
const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
|
|
3
|
+
|
|
4
|
+
let poolPtr = rnds8Pool.length;
|
|
3
5
|
export default function rng() {
|
|
4
|
-
|
|
6
|
+
if (poolPtr > rnds8Pool.length - 16) {
|
|
7
|
+
crypto.randomFillSync(rnds8Pool);
|
|
8
|
+
poolPtr = 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
|
5
12
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import validate from './validate.js';
|
|
2
|
+
/**
|
|
3
|
+
* Convert array of 16 byte values to UUID string format of the form:
|
|
4
|
+
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const byteToHex = [];
|
|
8
|
+
|
|
9
|
+
for (let i = 0; i < 256; ++i) {
|
|
10
|
+
byteToHex.push((i + 0x100).toString(16).substr(1));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function stringify(arr, offset = 0) {
|
|
14
|
+
// Note: Be careful editing this code! It's been tuned for performance
|
|
15
|
+
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
16
|
+
const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
|
|
17
|
+
// of the following:
|
|
18
|
+
// - One or more input array values don't map to a hex octet (leading to
|
|
19
|
+
// "undefined" in the uuid)
|
|
20
|
+
// - Invalid input values for the RFC `version` or `variant` fields
|
|
21
|
+
|
|
22
|
+
if (!validate(uuid)) {
|
|
23
|
+
throw TypeError('Stringified UUID is invalid');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return uuid;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export default stringify;
|
package/dist/esm-node/v1.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rng from './rng.js';
|
|
2
|
-
import
|
|
2
|
+
import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**
|
|
3
3
|
//
|
|
4
4
|
// Inspired by https://github.com/LiosK/UUID.js
|
|
5
5
|
// and http://docs.python.org/library/uuid.html
|
|
@@ -89,7 +89,7 @@ function v1(options, buf, offset) {
|
|
|
89
89
|
b[i + n] = node[n];
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
return buf ||
|
|
92
|
+
return buf || stringify(b);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
export default v1;
|
package/dist/esm-node/v35.js
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
function uuidToBytes(uuid) {
|
|
4
|
-
// Note: We assume we're being passed a valid uuid string
|
|
5
|
-
const bytes = [];
|
|
6
|
-
uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {
|
|
7
|
-
bytes.push(parseInt(hex, 16));
|
|
8
|
-
});
|
|
9
|
-
return bytes;
|
|
10
|
-
}
|
|
1
|
+
import stringify from './stringify.js';
|
|
2
|
+
import parse from './parse.js';
|
|
11
3
|
|
|
12
4
|
function stringToBytes(str) {
|
|
13
5
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
|
@@ -30,19 +22,20 @@ export default function (name, version, hashfunc) {
|
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
if (typeof namespace === 'string') {
|
|
33
|
-
namespace =
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (!Array.isArray(value)) {
|
|
37
|
-
throw TypeError('value must be an array of bytes');
|
|
25
|
+
namespace = parse(namespace);
|
|
38
26
|
}
|
|
39
27
|
|
|
40
|
-
if (
|
|
41
|
-
throw TypeError('
|
|
42
|
-
} // Per 4.3
|
|
28
|
+
if (namespace.length !== 16) {
|
|
29
|
+
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
|
30
|
+
} // Compute hash of namespace and value, Per 4.3
|
|
31
|
+
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
|
32
|
+
// hashfunc([...namespace, ... value])`
|
|
43
33
|
|
|
44
34
|
|
|
45
|
-
|
|
35
|
+
let bytes = new Uint8Array(16 + value.length);
|
|
36
|
+
bytes.set(namespace);
|
|
37
|
+
bytes.set(value, namespace.length);
|
|
38
|
+
bytes = hashfunc(bytes);
|
|
46
39
|
bytes[6] = bytes[6] & 0x0f | version;
|
|
47
40
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
|
48
41
|
|
|
@@ -56,7 +49,7 @@ export default function (name, version, hashfunc) {
|
|
|
56
49
|
return buf;
|
|
57
50
|
}
|
|
58
51
|
|
|
59
|
-
return
|
|
52
|
+
return stringify(bytes);
|
|
60
53
|
} // Function#name is not settable on some platforms (#270)
|
|
61
54
|
|
|
62
55
|
|
package/dist/esm-node/v4.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rng from './rng.js';
|
|
2
|
-
import
|
|
2
|
+
import stringify from './stringify.js';
|
|
3
3
|
|
|
4
4
|
function v4(options, buf, offset) {
|
|
5
5
|
options = options || {};
|
|
@@ -18,7 +18,7 @@ function v4(options, buf, offset) {
|
|
|
18
18
|
return buf;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
return
|
|
21
|
+
return stringify(rnds);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export default v4;
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,36 @@ Object.defineProperty(exports, "v5", {
|
|
|
27
27
|
return _v4.default;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "NIL", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _nil.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "version", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _version.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "validate", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _validate.default;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "stringify", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _stringify.default;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "parse", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _parse.default;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
30
60
|
|
|
31
61
|
var _v = _interopRequireDefault(require("./v1.js"));
|
|
32
62
|
|
|
@@ -36,4 +66,14 @@ var _v3 = _interopRequireDefault(require("./v4.js"));
|
|
|
36
66
|
|
|
37
67
|
var _v4 = _interopRequireDefault(require("./v5.js"));
|
|
38
68
|
|
|
69
|
+
var _nil = _interopRequireDefault(require("./nil.js"));
|
|
70
|
+
|
|
71
|
+
var _version = _interopRequireDefault(require("./version.js"));
|
|
72
|
+
|
|
73
|
+
var _validate = _interopRequireDefault(require("./validate.js"));
|
|
74
|
+
|
|
75
|
+
var _stringify = _interopRequireDefault(require("./stringify.js"));
|
|
76
|
+
|
|
77
|
+
var _parse = _interopRequireDefault(require("./parse.js"));
|
|
78
|
+
|
|
39
79
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/dist/nil.js
ADDED
package/dist/parse.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _validate = _interopRequireDefault(require("./validate.js"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function parse(uuid) {
|
|
13
|
+
if (!(0, _validate.default)(uuid)) {
|
|
14
|
+
throw TypeError('Invalid UUID');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let v;
|
|
18
|
+
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
|
19
|
+
|
|
20
|
+
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
|
21
|
+
arr[1] = v >>> 16 & 0xff;
|
|
22
|
+
arr[2] = v >>> 8 & 0xff;
|
|
23
|
+
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
|
24
|
+
|
|
25
|
+
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
|
26
|
+
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
|
27
|
+
|
|
28
|
+
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
|
29
|
+
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
|
30
|
+
|
|
31
|
+
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
|
32
|
+
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
|
33
|
+
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
|
34
|
+
|
|
35
|
+
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
|
36
|
+
arr[11] = v / 0x100000000 & 0xff;
|
|
37
|
+
arr[12] = v >>> 24 & 0xff;
|
|
38
|
+
arr[13] = v >>> 16 & 0xff;
|
|
39
|
+
arr[14] = v >>> 8 & 0xff;
|
|
40
|
+
arr[15] = v & 0xff;
|
|
41
|
+
return arr;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var _default = parse;
|
|
45
|
+
exports.default = _default;
|
package/dist/regex.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
8
|
+
exports.default = _default;
|
package/dist/rng.js
CHANGED
|
@@ -9,8 +9,16 @@ var _crypto = _interopRequireDefault(require("crypto"));
|
|
|
9
9
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
|
|
13
|
+
|
|
14
|
+
let poolPtr = rnds8Pool.length;
|
|
13
15
|
|
|
14
16
|
function rng() {
|
|
15
|
-
|
|
17
|
+
if (poolPtr > rnds8Pool.length - 16) {
|
|
18
|
+
_crypto.default.randomFillSync(rnds8Pool);
|
|
19
|
+
|
|
20
|
+
poolPtr = 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
|
16
24
|
}
|
package/dist/sha1-browser.js
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _validate = _interopRequireDefault(require("./validate.js"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Convert array of 16 byte values to UUID string format of the form:
|
|
14
|
+
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
15
|
+
*/
|
|
16
|
+
const byteToHex = [];
|
|
17
|
+
|
|
18
|
+
for (let i = 0; i < 256; ++i) {
|
|
19
|
+
byteToHex.push((i + 0x100).toString(16).substr(1));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function stringify(arr, offset = 0) {
|
|
23
|
+
// Note: Be careful editing this code! It's been tuned for performance
|
|
24
|
+
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
25
|
+
const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
|
|
26
|
+
// of the following:
|
|
27
|
+
// - One or more input array values don't map to a hex octet (leading to
|
|
28
|
+
// "undefined" in the uuid)
|
|
29
|
+
// - Invalid input values for the RFC `version` or `variant` fields
|
|
30
|
+
|
|
31
|
+
if (!(0, _validate.default)(uuid)) {
|
|
32
|
+
throw TypeError('Stringified UUID is invalid');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return uuid;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var _default = stringify;
|
|
39
|
+
exports.default = _default;
|