@nocobase/plugin-notification-in-app-message 2.1.7 → 2.1.8
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/dist/externalVersion.js +10 -10
- package/dist/node_modules/uuid/dist/cjs/index.d.ts +15 -0
- package/dist/node_modules/uuid/dist/cjs/index.js +1 -0
- package/dist/node_modules/uuid/dist/cjs/max.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/max.js +3 -0
- package/dist/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs/md5.js +13 -0
- package/dist/node_modules/uuid/dist/cjs/native.d.ts +6 -0
- package/dist/node_modules/uuid/dist/cjs/native.js +4 -0
- package/dist/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/nil.js +3 -0
- package/dist/node_modules/uuid/dist/cjs/package.json +1 -0
- package/dist/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/parse.js +11 -0
- package/dist/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/regex.js +3 -0
- package/dist/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
- package/dist/node_modules/uuid/dist/cjs/rng.js +13 -0
- package/dist/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs/sha1.js +13 -0
- package/dist/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
- package/dist/node_modules/uuid/dist/cjs/stringify.js +39 -0
- package/dist/node_modules/uuid/dist/cjs/types.d.ts +21 -0
- package/dist/node_modules/uuid/dist/cjs/types.js +2 -0
- package/dist/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
- package/dist/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
- package/dist/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
- package/dist/node_modules/uuid/dist/cjs/v1.js +87 -0
- package/dist/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
- package/dist/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs/v3.js +14 -0
- package/dist/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
- package/dist/node_modules/uuid/dist/cjs/v35.js +44 -0
- package/dist/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs/v4.js +29 -0
- package/dist/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs/v5.js +14 -0
- package/dist/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs/v6.js +22 -0
- package/dist/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
- package/dist/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs/v7.js +69 -0
- package/dist/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/validate.js +7 -0
- package/dist/node_modules/uuid/dist/cjs/version.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs/version.js +10 -0
- package/dist/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
- package/dist/node_modules/uuid/dist/cjs-browser/index.js +31 -0
- package/dist/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/max.js +3 -0
- package/dist/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
- package/dist/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs-browser/native.js +4 -0
- package/dist/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
- package/dist/node_modules/uuid/dist/cjs-browser/package.json +1 -0
- package/dist/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
- package/dist/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
- package/dist/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
- package/dist/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
- package/dist/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
- package/dist/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
- package/dist/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
- package/dist/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
- package/dist/node_modules/uuid/dist/cjs-browser/types.js +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
- package/dist/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v35.js +44 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v6.js +22 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
- package/dist/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
- package/dist/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
- package/dist/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
- package/dist/node_modules/uuid/dist/cjs-browser/version.js +10 -0
- package/dist/node_modules/uuid/dist/esm/bin/uuid +2 -0
- package/dist/node_modules/uuid/dist/esm/index.d.ts +15 -0
- package/dist/node_modules/uuid/dist/{esm-node → esm}/index.js +1 -1
- package/dist/node_modules/uuid/dist/esm/max.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/max.js +1 -0
- package/dist/node_modules/uuid/dist/esm/md5.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm/md5.js +11 -0
- package/dist/node_modules/uuid/dist/esm/native.d.ts +6 -0
- package/dist/node_modules/uuid/dist/esm/native.js +2 -0
- package/dist/node_modules/uuid/dist/esm/nil.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/nil.js +1 -0
- package/dist/node_modules/uuid/dist/esm/parse.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/parse.js +9 -0
- package/dist/node_modules/uuid/dist/esm/regex.d.ts +2 -0
- package/dist/node_modules/uuid/dist/{esm-node → esm}/regex.js +1 -1
- package/dist/node_modules/uuid/dist/esm/rng.d.ts +1 -0
- package/dist/node_modules/uuid/dist/esm/rng.js +10 -0
- package/dist/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm/sha1.js +11 -0
- package/dist/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
- package/dist/node_modules/uuid/dist/esm/stringify.js +35 -0
- package/dist/node_modules/uuid/dist/esm/types.d.ts +21 -0
- package/dist/node_modules/uuid/dist/esm/types.js +1 -0
- package/dist/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
- package/dist/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
- package/dist/node_modules/uuid/dist/esm/v1.d.ts +11 -0
- package/dist/node_modules/uuid/dist/esm/v1.js +83 -0
- package/dist/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
- package/dist/node_modules/uuid/dist/esm/v3.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm/v3.js +9 -0
- package/dist/node_modules/uuid/dist/esm/v35.d.ts +7 -0
- package/dist/node_modules/uuid/dist/esm/v35.js +39 -0
- package/dist/node_modules/uuid/dist/esm/v4.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm/v4.js +27 -0
- package/dist/node_modules/uuid/dist/esm/v5.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm/v5.js +9 -0
- package/dist/node_modules/uuid/dist/esm/v6.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm/v6.js +20 -0
- package/dist/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
- package/dist/node_modules/uuid/dist/esm/v7.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm/v7.js +65 -0
- package/dist/node_modules/uuid/dist/esm/validate.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/validate.js +5 -0
- package/dist/node_modules/uuid/dist/esm/version.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm/version.js +8 -0
- package/dist/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
- package/dist/node_modules/uuid/dist/esm-browser/index.js +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/max.js +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/md5.js +113 -172
- package/dist/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js +2 -4
- package/dist/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/nil.js +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/parse.js +6 -34
- package/dist/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +8 -14
- package/dist/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/sha1.js +62 -68
- package/dist/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +29 -25
- package/dist/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
- package/dist/node_modules/uuid/dist/esm-browser/types.js +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
- package/dist/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
- package/dist/node_modules/uuid/dist/esm-browser/v1.js +75 -117
- package/dist/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/v1ToV6.js +6 -16
- package/dist/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm-browser/v3.js +8 -3
- package/dist/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/v35.js +31 -47
- package/dist/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +21 -19
- package/dist/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm-browser/v5.js +8 -3
- package/dist/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/v6.js +16 -32
- package/dist/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/v6ToV1.js +5 -15
- package/dist/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
- package/dist/node_modules/uuid/dist/esm-browser/v7.js +58 -139
- package/dist/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +2 -2
- package/dist/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
- package/dist/node_modules/uuid/dist/esm-browser/version.js +5 -5
- package/dist/node_modules/uuid/package.json +1 -1
- package/package.json +2 -2
- package/dist/node_modules/uuid/dist/bin/uuid +0 -2
- package/dist/node_modules/uuid/dist/commonjs-browser/index.js +0 -104
- package/dist/node_modules/uuid/dist/commonjs-browser/max.js +0 -7
- package/dist/node_modules/uuid/dist/commonjs-browser/md5.js +0 -200
- package/dist/node_modules/uuid/dist/commonjs-browser/native.js +0 -10
- package/dist/node_modules/uuid/dist/commonjs-browser/nil.js +0 -7
- package/dist/node_modules/uuid/dist/commonjs-browser/parse.js +0 -44
- package/dist/node_modules/uuid/dist/commonjs-browser/regex.js +0 -7
- package/dist/node_modules/uuid/dist/commonjs-browser/rng.js +0 -23
- package/dist/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -82
- package/dist/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -38
- package/dist/node_modules/uuid/dist/commonjs-browser/v1.js +0 -131
- package/dist/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +0 -26
- package/dist/node_modules/uuid/dist/commonjs-browser/v3.js +0 -11
- package/dist/node_modules/uuid/dist/commonjs-browser/v35.js +0 -63
- package/dist/node_modules/uuid/dist/commonjs-browser/v4.js +0 -32
- package/dist/node_modules/uuid/dist/commonjs-browser/v5.js +0 -11
- package/dist/node_modules/uuid/dist/commonjs-browser/v6.js +0 -42
- package/dist/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +0 -26
- package/dist/node_modules/uuid/dist/commonjs-browser/v7.js +0 -152
- package/dist/node_modules/uuid/dist/commonjs-browser/validate.js +0 -12
- package/dist/node_modules/uuid/dist/commonjs-browser/version.js +0 -15
- package/dist/node_modules/uuid/dist/esm-node/max.js +0 -1
- package/dist/node_modules/uuid/dist/esm-node/md5.js +0 -10
- package/dist/node_modules/uuid/dist/esm-node/native.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/nil.js +0 -1
- package/dist/node_modules/uuid/dist/esm-node/parse.js +0 -37
- package/dist/node_modules/uuid/dist/esm-node/rng.js +0 -10
- package/dist/node_modules/uuid/dist/esm-node/sha1.js +0 -10
- package/dist/node_modules/uuid/dist/esm-node/stringify.js +0 -31
- package/dist/node_modules/uuid/dist/esm-node/v1.js +0 -125
- package/dist/node_modules/uuid/dist/esm-node/v1ToV6.js +0 -20
- package/dist/node_modules/uuid/dist/esm-node/v3.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/v35.js +0 -55
- package/dist/node_modules/uuid/dist/esm-node/v4.js +0 -25
- package/dist/node_modules/uuid/dist/esm-node/v5.js +0 -4
- package/dist/node_modules/uuid/dist/esm-node/v6.js +0 -32
- package/dist/node_modules/uuid/dist/esm-node/v6ToV1.js +0 -20
- package/dist/node_modules/uuid/dist/esm-node/v7.js +0 -146
- package/dist/node_modules/uuid/dist/esm-node/validate.js +0 -5
- package/dist/node_modules/uuid/dist/esm-node/version.js +0 -8
- package/dist/node_modules/uuid/dist/index.js +0 -1
- package/dist/node_modules/uuid/dist/max.js +0 -7
- package/dist/node_modules/uuid/dist/md5-browser.js +0 -200
- package/dist/node_modules/uuid/dist/md5.js +0 -17
- package/dist/node_modules/uuid/dist/native-browser.js +0 -10
- package/dist/node_modules/uuid/dist/native.js +0 -11
- package/dist/node_modules/uuid/dist/nil.js +0 -7
- package/dist/node_modules/uuid/dist/parse.js +0 -44
- package/dist/node_modules/uuid/dist/regex.js +0 -7
- package/dist/node_modules/uuid/dist/rng-browser.js +0 -23
- package/dist/node_modules/uuid/dist/rng.js +0 -17
- package/dist/node_modules/uuid/dist/sha1-browser.js +0 -82
- package/dist/node_modules/uuid/dist/sha1.js +0 -17
- package/dist/node_modules/uuid/dist/stringify.js +0 -38
- package/dist/node_modules/uuid/dist/uuid-bin.js +0 -75
- package/dist/node_modules/uuid/dist/v1.js +0 -131
- package/dist/node_modules/uuid/dist/v1ToV6.js +0 -26
- package/dist/node_modules/uuid/dist/v3.js +0 -11
- package/dist/node_modules/uuid/dist/v35.js +0 -63
- package/dist/node_modules/uuid/dist/v4.js +0 -32
- package/dist/node_modules/uuid/dist/v5.js +0 -11
- package/dist/node_modules/uuid/dist/v6.js +0 -38
- package/dist/node_modules/uuid/dist/v6ToV1.js +0 -26
- package/dist/node_modules/uuid/dist/v7.js +0 -152
- package/dist/node_modules/uuid/dist/validate.js +0 -12
- package/dist/node_modules/uuid/dist/version.js +0 -15
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
import validate from './validate.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
6
|
-
*/
|
|
7
|
-
var byteToHex = [];
|
|
8
|
-
for (var i = 0; i < 256; ++i) {
|
|
9
|
-
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
2
|
+
const byteToHex = [];
|
|
3
|
+
for (let i = 0; i < 256; ++i) {
|
|
4
|
+
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
10
5
|
}
|
|
11
6
|
export function unsafeStringify(arr, offset = 0) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
return (byteToHex[arr[offset + 0]] +
|
|
8
|
+
byteToHex[arr[offset + 1]] +
|
|
9
|
+
byteToHex[arr[offset + 2]] +
|
|
10
|
+
byteToHex[arr[offset + 3]] +
|
|
11
|
+
'-' +
|
|
12
|
+
byteToHex[arr[offset + 4]] +
|
|
13
|
+
byteToHex[arr[offset + 5]] +
|
|
14
|
+
'-' +
|
|
15
|
+
byteToHex[arr[offset + 6]] +
|
|
16
|
+
byteToHex[arr[offset + 7]] +
|
|
17
|
+
'-' +
|
|
18
|
+
byteToHex[arr[offset + 8]] +
|
|
19
|
+
byteToHex[arr[offset + 9]] +
|
|
20
|
+
'-' +
|
|
21
|
+
byteToHex[arr[offset + 10]] +
|
|
22
|
+
byteToHex[arr[offset + 11]] +
|
|
23
|
+
byteToHex[arr[offset + 12]] +
|
|
24
|
+
byteToHex[arr[offset + 13]] +
|
|
25
|
+
byteToHex[arr[offset + 14]] +
|
|
26
|
+
byteToHex[arr[offset + 15]]).toLowerCase();
|
|
18
27
|
}
|
|
19
28
|
function stringify(arr, offset = 0) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// - Invalid input values for the RFC `version` or `variant` fields
|
|
26
|
-
if (!validate(uuid)) {
|
|
27
|
-
throw TypeError('Stringified UUID is invalid');
|
|
28
|
-
}
|
|
29
|
-
return uuid;
|
|
29
|
+
const uuid = unsafeStringify(arr, offset);
|
|
30
|
+
if (!validate(uuid)) {
|
|
31
|
+
throw TypeError('Stringified UUID is invalid');
|
|
32
|
+
}
|
|
33
|
+
return uuid;
|
|
30
34
|
}
|
|
31
|
-
export default stringify;
|
|
35
|
+
export default stringify;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type UUIDTypes<TBuf extends Uint8Array = Uint8Array> = string | TBuf;
|
|
2
|
+
export type Version1Options = {
|
|
3
|
+
node?: Uint8Array;
|
|
4
|
+
clockseq?: number;
|
|
5
|
+
random?: Uint8Array;
|
|
6
|
+
rng?: () => Uint8Array;
|
|
7
|
+
msecs?: number;
|
|
8
|
+
nsecs?: number;
|
|
9
|
+
_v6?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type Version4Options = {
|
|
12
|
+
random?: Uint8Array;
|
|
13
|
+
rng?: () => Uint8Array;
|
|
14
|
+
};
|
|
15
|
+
export type Version6Options = Version1Options;
|
|
16
|
+
export type Version7Options = {
|
|
17
|
+
random?: Uint8Array;
|
|
18
|
+
msecs?: number;
|
|
19
|
+
seq?: number;
|
|
20
|
+
rng?: () => Uint8Array;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as assert from 'assert';
|
|
2
|
+
import v1 from './v1.js';
|
|
3
|
+
import v3 from './v3.js';
|
|
4
|
+
import v4 from './v4.js';
|
|
5
|
+
import v5 from './v5.js';
|
|
6
|
+
import v6 from './v6.js';
|
|
7
|
+
import v7 from './v7.js';
|
|
8
|
+
function usage() {
|
|
9
|
+
console.log('Usage:');
|
|
10
|
+
console.log(' uuid');
|
|
11
|
+
console.log(' uuid v1');
|
|
12
|
+
console.log(' uuid v3 <name> <namespace uuid>');
|
|
13
|
+
console.log(' uuid v4');
|
|
14
|
+
console.log(' uuid v5 <name> <namespace uuid>');
|
|
15
|
+
console.log(' uuid v6');
|
|
16
|
+
console.log(' uuid v7');
|
|
17
|
+
console.log(' uuid --help');
|
|
18
|
+
console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562');
|
|
19
|
+
}
|
|
20
|
+
const args = process.argv.slice(2);
|
|
21
|
+
if (args.indexOf('--help') >= 0) {
|
|
22
|
+
usage();
|
|
23
|
+
process.exit(0);
|
|
24
|
+
}
|
|
25
|
+
const version = args.shift() || 'v4';
|
|
26
|
+
switch (version) {
|
|
27
|
+
case 'v1':
|
|
28
|
+
console.log(v1());
|
|
29
|
+
break;
|
|
30
|
+
case 'v3': {
|
|
31
|
+
const name = args.shift();
|
|
32
|
+
let namespace = args.shift();
|
|
33
|
+
assert.ok(name != null, 'v3 name not specified');
|
|
34
|
+
assert.ok(namespace != null, 'v3 namespace not specified');
|
|
35
|
+
if (namespace === 'URL') {
|
|
36
|
+
namespace = v3.URL;
|
|
37
|
+
}
|
|
38
|
+
if (namespace === 'DNS') {
|
|
39
|
+
namespace = v3.DNS;
|
|
40
|
+
}
|
|
41
|
+
console.log(v3(name, namespace));
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'v4':
|
|
45
|
+
console.log(v4());
|
|
46
|
+
break;
|
|
47
|
+
case 'v5': {
|
|
48
|
+
const name = args.shift();
|
|
49
|
+
let namespace = args.shift();
|
|
50
|
+
assert.ok(name != null, 'v5 name not specified');
|
|
51
|
+
assert.ok(namespace != null, 'v5 namespace not specified');
|
|
52
|
+
if (namespace === 'URL') {
|
|
53
|
+
namespace = v5.URL;
|
|
54
|
+
}
|
|
55
|
+
if (namespace === 'DNS') {
|
|
56
|
+
namespace = v5.DNS;
|
|
57
|
+
}
|
|
58
|
+
console.log(v5(name, namespace));
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case 'v6':
|
|
62
|
+
console.log(v6());
|
|
63
|
+
break;
|
|
64
|
+
case 'v7':
|
|
65
|
+
console.log(v7());
|
|
66
|
+
break;
|
|
67
|
+
default:
|
|
68
|
+
usage();
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Version1Options } from './types.js';
|
|
2
|
+
type V1State = {
|
|
3
|
+
node?: Uint8Array;
|
|
4
|
+
clockseq?: number;
|
|
5
|
+
msecs?: number;
|
|
6
|
+
nsecs?: number;
|
|
7
|
+
};
|
|
8
|
+
declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string;
|
|
9
|
+
declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf;
|
|
10
|
+
export declare function updateV1State(state: V1State, now: number, rnds: Uint8Array): V1State;
|
|
11
|
+
export default v1;
|
|
@@ -1,125 +1,83 @@
|
|
|
1
1
|
import rng from './rng.js';
|
|
2
2
|
import { unsafeStringify } from './stringify.js';
|
|
3
|
-
|
|
4
|
-
// **`v1()` - Generate time-based UUID**
|
|
5
|
-
//
|
|
6
|
-
// Inspired by https://github.com/LiosK/UUID.js
|
|
7
|
-
// and http://docs.python.org/library/uuid.html
|
|
8
|
-
|
|
9
|
-
var _nodeId;
|
|
10
|
-
var _clockseq;
|
|
11
|
-
|
|
12
|
-
// Previous uuid creation time
|
|
13
|
-
var _lastMSecs = 0;
|
|
14
|
-
var _lastNSecs = 0;
|
|
15
|
-
|
|
16
|
-
// See https://github.com/uuidjs/uuid for API details
|
|
3
|
+
const _state = {};
|
|
17
4
|
function v1(options, buf, offset) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (!options._v6) {
|
|
26
|
-
if (!node) {
|
|
27
|
-
node = _nodeId;
|
|
5
|
+
let bytes;
|
|
6
|
+
const isV6 = options?._v6 ?? false;
|
|
7
|
+
if (options) {
|
|
8
|
+
const optionsKeys = Object.keys(options);
|
|
9
|
+
if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') {
|
|
10
|
+
options = undefined;
|
|
11
|
+
}
|
|
28
12
|
}
|
|
29
|
-
if (
|
|
30
|
-
|
|
13
|
+
if (options) {
|
|
14
|
+
bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);
|
|
31
15
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var seedBytes = options.random || (options.rng || rng)();
|
|
38
|
-
|
|
39
|
-
// Randomize node
|
|
40
|
-
if (node == null) {
|
|
41
|
-
node = [seedBytes[0], seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
|
42
|
-
|
|
43
|
-
// v1 only: cache node value for reuse
|
|
44
|
-
if (!_nodeId && !options._v6) {
|
|
45
|
-
// per RFC4122 4.5: Set MAC multicast bit (v1 only)
|
|
46
|
-
node[0] |= 0x01; // Set multicast bit
|
|
47
|
-
|
|
48
|
-
_nodeId = node;
|
|
49
|
-
}
|
|
16
|
+
else {
|
|
17
|
+
const now = Date.now();
|
|
18
|
+
const rnds = rng();
|
|
19
|
+
updateV1State(_state, now, rnds);
|
|
20
|
+
bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset);
|
|
50
21
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
22
|
+
return buf ?? unsafeStringify(bytes);
|
|
23
|
+
}
|
|
24
|
+
export function updateV1State(state, now, rnds) {
|
|
25
|
+
state.msecs ??= -Infinity;
|
|
26
|
+
state.nsecs ??= 0;
|
|
27
|
+
if (now === state.msecs) {
|
|
28
|
+
state.nsecs++;
|
|
29
|
+
if (state.nsecs >= 10000) {
|
|
30
|
+
state.node = undefined;
|
|
31
|
+
state.nsecs = 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (now > state.msecs) {
|
|
35
|
+
state.nsecs = 0;
|
|
36
|
+
}
|
|
37
|
+
else if (now < state.msecs) {
|
|
38
|
+
state.node = undefined;
|
|
39
|
+
}
|
|
40
|
+
if (!state.node) {
|
|
41
|
+
state.node = rnds.slice(10, 16);
|
|
42
|
+
state.node[0] |= 0x01;
|
|
43
|
+
state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;
|
|
44
|
+
}
|
|
45
|
+
state.msecs = now;
|
|
46
|
+
return state;
|
|
47
|
+
}
|
|
48
|
+
function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {
|
|
49
|
+
if (rnds.length < 16) {
|
|
50
|
+
throw new Error('Random bytes length must be >= 16');
|
|
51
|
+
}
|
|
52
|
+
if (!buf) {
|
|
53
|
+
buf = new Uint8Array(16);
|
|
54
|
+
offset = 0;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
if (offset < 0 || offset + 16 > buf.length) {
|
|
58
|
+
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
msecs ??= Date.now();
|
|
62
|
+
nsecs ??= 0;
|
|
63
|
+
clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;
|
|
64
|
+
node ??= rnds.slice(10, 16);
|
|
65
|
+
msecs += 12219292800000;
|
|
66
|
+
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
|
67
|
+
buf[offset++] = (tl >>> 24) & 0xff;
|
|
68
|
+
buf[offset++] = (tl >>> 16) & 0xff;
|
|
69
|
+
buf[offset++] = (tl >>> 8) & 0xff;
|
|
70
|
+
buf[offset++] = tl & 0xff;
|
|
71
|
+
const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;
|
|
72
|
+
buf[offset++] = (tmh >>> 8) & 0xff;
|
|
73
|
+
buf[offset++] = tmh & 0xff;
|
|
74
|
+
buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;
|
|
75
|
+
buf[offset++] = (tmh >>> 16) & 0xff;
|
|
76
|
+
buf[offset++] = (clockseq >>> 8) | 0x80;
|
|
77
|
+
buf[offset++] = clockseq & 0xff;
|
|
78
|
+
for (let n = 0; n < 6; ++n) {
|
|
79
|
+
buf[offset++] = node[n];
|
|
59
80
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
// v1 & v6 timestamps are 100 nano-second units since the Gregorian epoch,
|
|
63
|
-
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so time is
|
|
64
|
-
// handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
|
65
|
-
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
|
66
|
-
var msecs = options.msecs !== undefined ? options.msecs : Date.now();
|
|
67
|
-
|
|
68
|
-
// Per 4.2.1.2, use count of uuid's generated during the current clock
|
|
69
|
-
// cycle to simulate higher resolution clock
|
|
70
|
-
var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
|
|
71
|
-
|
|
72
|
-
// Time since last uuid creation (in msecs)
|
|
73
|
-
var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000;
|
|
74
|
-
|
|
75
|
-
// Per 4.2.1.2, Bump clockseq on clock regression
|
|
76
|
-
if (dt < 0 && options.clockseq === undefined) {
|
|
77
|
-
clockseq = clockseq + 1 & 0x3fff;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
|
81
|
-
// time interval
|
|
82
|
-
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
|
|
83
|
-
nsecs = 0;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Per 4.2.1.2 Throw error if too many uuids are requested
|
|
87
|
-
if (nsecs >= 10000) {
|
|
88
|
-
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
|
89
|
-
}
|
|
90
|
-
_lastMSecs = msecs;
|
|
91
|
-
_lastNSecs = nsecs;
|
|
92
|
-
_clockseq = clockseq;
|
|
93
|
-
|
|
94
|
-
// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
|
95
|
-
msecs += 12219292800000;
|
|
96
|
-
|
|
97
|
-
// `time_low`
|
|
98
|
-
var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
|
99
|
-
b[i++] = tl >>> 24 & 0xff;
|
|
100
|
-
b[i++] = tl >>> 16 & 0xff;
|
|
101
|
-
b[i++] = tl >>> 8 & 0xff;
|
|
102
|
-
b[i++] = tl & 0xff;
|
|
103
|
-
|
|
104
|
-
// `time_mid`
|
|
105
|
-
var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
|
|
106
|
-
b[i++] = tmh >>> 8 & 0xff;
|
|
107
|
-
b[i++] = tmh & 0xff;
|
|
108
|
-
|
|
109
|
-
// `time_high_and_version`
|
|
110
|
-
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
|
111
|
-
b[i++] = tmh >>> 16 & 0xff;
|
|
112
|
-
|
|
113
|
-
// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
|
114
|
-
b[i++] = clockseq >>> 8 | 0x80;
|
|
115
|
-
|
|
116
|
-
// `clock_seq_low`
|
|
117
|
-
b[i++] = clockseq & 0xff;
|
|
118
|
-
|
|
119
|
-
// `node`
|
|
120
|
-
for (var n = 0; n < 6; ++n) {
|
|
121
|
-
b[i + n] = node[n];
|
|
122
|
-
}
|
|
123
|
-
return buf || unsafeStringify(b);
|
|
81
|
+
return buf;
|
|
124
82
|
}
|
|
125
|
-
export default v1;
|
|
83
|
+
export default v1;
|
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
import parse from './parse.js';
|
|
2
2
|
import { unsafeStringify } from './stringify.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Convert a v1 UUID to a v6 UUID
|
|
6
|
-
*
|
|
7
|
-
* @param {string|Uint8Array} uuid - The v1 UUID to convert to v6
|
|
8
|
-
* @returns {string|Uint8Array} The v6 UUID as the same type as the `uuid` arg
|
|
9
|
-
* (string or Uint8Array)
|
|
10
|
-
*/
|
|
11
3
|
export default function v1ToV6(uuid) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
const v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid;
|
|
5
|
+
const v6Bytes = _v1ToV6(v1Bytes);
|
|
6
|
+
return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes;
|
|
7
|
+
}
|
|
8
|
+
function _v1ToV6(v1Bytes) {
|
|
9
|
+
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]);
|
|
15
10
|
}
|
|
16
|
-
|
|
17
|
-
// Do the field transformation needed for v1 -> v6
|
|
18
|
-
function _v1ToV6(v1Bytes, randomize = false) {
|
|
19
|
-
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]);
|
|
20
|
-
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UUIDTypes } from './types.js';
|
|
2
|
+
export { DNS, URL } from './v35.js';
|
|
3
|
+
declare function v3(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string;
|
|
4
|
+
declare function v3<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf;
|
|
5
|
+
declare namespace v3 {
|
|
6
|
+
var DNS: string;
|
|
7
|
+
var URL: string;
|
|
8
|
+
}
|
|
9
|
+
export default v3;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import v35 from './v35.js';
|
|
2
1
|
import md5 from './md5.js';
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
import v35, { DNS, URL } from './v35.js';
|
|
3
|
+
export { DNS, URL } from './v35.js';
|
|
4
|
+
function v3(value, namespace, buf, offset) {
|
|
5
|
+
return v35(0x30, md5, value, namespace, buf, offset);
|
|
6
|
+
}
|
|
7
|
+
v3.DNS = DNS;
|
|
8
|
+
v3.URL = URL;
|
|
9
|
+
export default v3;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UUIDTypes } from './types.js';
|
|
2
|
+
export declare function stringToBytes(str: string): Uint8Array;
|
|
3
|
+
export declare const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
|
4
|
+
export declare const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
|
5
|
+
type HashFunction = (bytes: Uint8Array) => Uint8Array;
|
|
6
|
+
export default function v35<TBuf extends Uint8Array = Uint8Array>(version: 0x30 | 0x50, hash: HashFunction, value: string | Uint8Array, namespace: UUIDTypes, buf?: TBuf, offset?: number): UUIDTypes<TBuf>;
|
|
7
|
+
export {};
|
|
@@ -1,55 +1,39 @@
|
|
|
1
|
-
import { unsafeStringify } from './stringify.js';
|
|
2
1
|
import parse from './parse.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
return bytes;
|
|
11
|
-
}
|
|
12
|
-
export var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
|
13
|
-
export var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
|
14
|
-
export default function v35(name, version, hashfunc) {
|
|
15
|
-
function generateUUID(value, namespace, buf, offset) {
|
|
16
|
-
var _namespace;
|
|
17
|
-
if (typeof value === 'string') {
|
|
18
|
-
value = stringToBytes(value);
|
|
2
|
+
import { unsafeStringify } from './stringify.js';
|
|
3
|
+
export function stringToBytes(str) {
|
|
4
|
+
str = unescape(encodeURIComponent(str));
|
|
5
|
+
const bytes = new Uint8Array(str.length);
|
|
6
|
+
for (let i = 0; i < str.length; ++i) {
|
|
7
|
+
bytes[i] = str.charCodeAt(i);
|
|
19
8
|
}
|
|
9
|
+
return bytes;
|
|
10
|
+
}
|
|
11
|
+
export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
|
12
|
+
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
|
13
|
+
export default function v35(version, hash, value, namespace, buf, offset) {
|
|
14
|
+
const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;
|
|
15
|
+
const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace;
|
|
20
16
|
if (typeof namespace === 'string') {
|
|
21
|
-
|
|
17
|
+
namespace = parse(namespace);
|
|
22
18
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
19
|
+
if (namespace?.length !== 16) {
|
|
20
|
+
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
|
25
21
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
bytes
|
|
32
|
-
bytes.set(value, namespace.length);
|
|
33
|
-
bytes = hashfunc(bytes);
|
|
34
|
-
bytes[6] = bytes[6] & 0x0f | version;
|
|
35
|
-
bytes[8] = bytes[8] & 0x3f | 0x80;
|
|
22
|
+
let bytes = new Uint8Array(16 + valueBytes.length);
|
|
23
|
+
bytes.set(namespaceBytes);
|
|
24
|
+
bytes.set(valueBytes, namespaceBytes.length);
|
|
25
|
+
bytes = hash(bytes);
|
|
26
|
+
bytes[6] = (bytes[6] & 0x0f) | version;
|
|
27
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
36
28
|
if (buf) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
offset = offset || 0;
|
|
30
|
+
if (offset < 0 || offset + 16 > buf.length) {
|
|
31
|
+
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
32
|
+
}
|
|
33
|
+
for (let i = 0; i < 16; ++i) {
|
|
34
|
+
buf[offset + i] = bytes[i];
|
|
35
|
+
}
|
|
36
|
+
return buf;
|
|
42
37
|
}
|
|
43
38
|
return unsafeStringify(bytes);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// Function#name is not settable on some platforms (#270)
|
|
47
|
-
try {
|
|
48
|
-
generateUUID.name = name;
|
|
49
|
-
} catch (err) {}
|
|
50
|
-
|
|
51
|
-
// For CommonJS default export support
|
|
52
|
-
generateUUID.DNS = DNS;
|
|
53
|
-
generateUUID.URL = URL;
|
|
54
|
-
return generateUUID;
|
|
55
|
-
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Version4Options } from './types.js';
|
|
2
|
+
declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string;
|
|
3
|
+
declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
4
|
+
export default v4;
|
|
@@ -2,24 +2,26 @@ import native from './native.js';
|
|
|
2
2
|
import rng from './rng.js';
|
|
3
3
|
import { unsafeStringify } from './stringify.js';
|
|
4
4
|
function v4(options, buf, offset) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
options = options || {};
|
|
9
|
-
var rnds = options.random || (options.rng || rng)();
|
|
10
|
-
|
|
11
|
-
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
12
|
-
rnds[6] = rnds[6] & 0x0f | 0x40;
|
|
13
|
-
rnds[8] = rnds[8] & 0x3f | 0x80;
|
|
14
|
-
|
|
15
|
-
// Copy bytes to buffer, if provided
|
|
16
|
-
if (buf) {
|
|
17
|
-
offset = offset || 0;
|
|
18
|
-
for (var i = 0; i < 16; ++i) {
|
|
19
|
-
buf[offset + i] = rnds[i];
|
|
5
|
+
if (native.randomUUID && !buf && !options) {
|
|
6
|
+
return native.randomUUID();
|
|
20
7
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
8
|
+
options = options || {};
|
|
9
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
10
|
+
if (rnds.length < 16) {
|
|
11
|
+
throw new Error('Random bytes length must be >= 16');
|
|
12
|
+
}
|
|
13
|
+
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
14
|
+
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
15
|
+
if (buf) {
|
|
16
|
+
offset = offset || 0;
|
|
17
|
+
if (offset < 0 || offset + 16 > buf.length) {
|
|
18
|
+
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
19
|
+
}
|
|
20
|
+
for (let i = 0; i < 16; ++i) {
|
|
21
|
+
buf[offset + i] = rnds[i];
|
|
22
|
+
}
|
|
23
|
+
return buf;
|
|
24
|
+
}
|
|
25
|
+
return unsafeStringify(rnds);
|
|
24
26
|
}
|
|
25
|
-
export default v4;
|
|
27
|
+
export default v4;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UUIDTypes } from './types.js';
|
|
2
|
+
export { DNS, URL } from './v35.js';
|
|
3
|
+
declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string;
|
|
4
|
+
declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf;
|
|
5
|
+
declare namespace v5 {
|
|
6
|
+
var DNS: string;
|
|
7
|
+
var URL: string;
|
|
8
|
+
}
|
|
9
|
+
export default v5;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import v35 from './v35.js';
|
|
2
1
|
import sha1 from './sha1.js';
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
import v35, { DNS, URL } from './v35.js';
|
|
3
|
+
export { DNS, URL } from './v35.js';
|
|
4
|
+
function v5(value, namespace, buf, offset) {
|
|
5
|
+
return v35(0x50, sha1, value, namespace, buf, offset);
|
|
6
|
+
}
|
|
7
|
+
v5.DNS = DNS;
|
|
8
|
+
v5.URL = URL;
|
|
9
|
+
export default v5;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Version6Options } from './types.js';
|
|
2
|
+
declare function v6(options?: Version6Options, buf?: undefined, offset?: number): string;
|
|
3
|
+
declare function v6<TBuf extends Uint8Array = Uint8Array>(options: Version6Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
4
|
+
export default v6;
|