uuid 9.0.1 → 10.0.0

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.
Files changed (89) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +134 -16
  3. package/dist/commonjs-browser/index.js +40 -15
  4. package/dist/commonjs-browser/max.js +7 -0
  5. package/dist/commonjs-browser/md5.js +30 -53
  6. package/dist/commonjs-browser/native.js +3 -4
  7. package/dist/commonjs-browser/nil.js +1 -2
  8. package/dist/commonjs-browser/parse.js +14 -15
  9. package/dist/commonjs-browser/regex.js +1 -2
  10. package/dist/commonjs-browser/rng.js +2 -4
  11. package/dist/commonjs-browser/sha1.js +27 -49
  12. package/dist/commonjs-browser/stringify.js +10 -16
  13. package/dist/commonjs-browser/v1.js +73 -49
  14. package/dist/commonjs-browser/v1ToV6.js +26 -0
  15. package/dist/commonjs-browser/v3.js +3 -8
  16. package/dist/commonjs-browser/v35.js +15 -32
  17. package/dist/commonjs-browser/v4.js +7 -18
  18. package/dist/commonjs-browser/v5.js +3 -8
  19. package/dist/commonjs-browser/v6.js +42 -0
  20. package/dist/commonjs-browser/v6ToV1.js +26 -0
  21. package/dist/commonjs-browser/v7.js +152 -0
  22. package/dist/commonjs-browser/validate.js +2 -7
  23. package/dist/commonjs-browser/version.js +2 -8
  24. package/dist/esm-browser/index.js +9 -4
  25. package/dist/esm-browser/max.js +1 -0
  26. package/dist/esm-browser/md5.js +29 -50
  27. package/dist/esm-browser/native.js +1 -1
  28. package/dist/esm-browser/parse.js +12 -10
  29. package/dist/esm-browser/regex.js +1 -1
  30. package/dist/esm-browser/rng.js +3 -4
  31. package/dist/esm-browser/sha1.js +26 -46
  32. package/dist/esm-browser/stringify.js +9 -11
  33. package/dist/esm-browser/v1.js +74 -44
  34. package/dist/esm-browser/v1ToV6.js +20 -0
  35. package/dist/esm-browser/v3.js +1 -1
  36. package/dist/esm-browser/v35.js +14 -25
  37. package/dist/esm-browser/v4.js +5 -9
  38. package/dist/esm-browser/v5.js +1 -1
  39. package/dist/esm-browser/v6.js +36 -0
  40. package/dist/esm-browser/v6ToV1.js +20 -0
  41. package/dist/esm-browser/v7.js +146 -0
  42. package/dist/esm-browser/validate.js +0 -2
  43. package/dist/esm-browser/version.js +0 -3
  44. package/dist/esm-node/index.js +9 -4
  45. package/dist/esm-node/max.js +1 -0
  46. package/dist/esm-node/md5.js +1 -4
  47. package/dist/esm-node/native.js +1 -1
  48. package/dist/esm-node/parse.js +11 -9
  49. package/dist/esm-node/regex.js +1 -1
  50. package/dist/esm-node/rng.js +1 -3
  51. package/dist/esm-node/sha1.js +1 -4
  52. package/dist/esm-node/stringify.js +7 -9
  53. package/dist/esm-node/v1.js +66 -36
  54. package/dist/esm-node/v1ToV6.js +20 -0
  55. package/dist/esm-node/v35.js +8 -19
  56. package/dist/esm-node/v4.js +4 -8
  57. package/dist/esm-node/v6.js +32 -0
  58. package/dist/esm-node/v6ToV1.js +20 -0
  59. package/dist/esm-node/v7.js +146 -0
  60. package/dist/esm-node/validate.js +0 -2
  61. package/dist/esm-node/version.js +0 -3
  62. package/dist/index.js +40 -15
  63. package/dist/max.js +7 -0
  64. package/dist/md5-browser.js +8 -31
  65. package/dist/md5.js +4 -10
  66. package/dist/native-browser.js +2 -3
  67. package/dist/native.js +5 -9
  68. package/dist/nil.js +1 -2
  69. package/dist/parse.js +13 -14
  70. package/dist/regex.js +1 -2
  71. package/dist/rng-browser.js +1 -3
  72. package/dist/rng.js +3 -10
  73. package/dist/sha1-browser.js +1 -23
  74. package/dist/sha1.js +4 -10
  75. package/dist/stringify.js +8 -14
  76. package/dist/uuid-bin.js +12 -22
  77. package/dist/v1.js +66 -42
  78. package/dist/v1ToV6.js +26 -0
  79. package/dist/v3.js +2 -7
  80. package/dist/v35.js +11 -28
  81. package/dist/v4.js +6 -17
  82. package/dist/v5.js +2 -7
  83. package/dist/v6.js +38 -0
  84. package/dist/v6ToV1.js +26 -0
  85. package/dist/v7.js +152 -0
  86. package/dist/validate.js +2 -7
  87. package/dist/version.js +2 -8
  88. package/package.json +41 -34
  89. package/wrapper.mjs +5 -0
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /*
9
8
  * Browser-compatible JavaScript MD5
10
9
  *
@@ -30,45 +29,38 @@ function md5(bytes) {
30
29
  const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
31
30
 
32
31
  bytes = new Uint8Array(msg.length);
33
-
34
32
  for (let i = 0; i < msg.length; ++i) {
35
33
  bytes[i] = msg.charCodeAt(i);
36
34
  }
37
35
  }
38
-
39
36
  return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
40
37
  }
38
+
41
39
  /*
42
40
  * Convert an array of little-endian words to an array of bytes
43
41
  */
44
-
45
-
46
42
  function md5ToHexEncodedArray(input) {
47
43
  const output = [];
48
44
  const length32 = input.length * 32;
49
45
  const hexTab = '0123456789abcdef';
50
-
51
46
  for (let i = 0; i < length32; i += 8) {
52
47
  const x = input[i >> 5] >>> i % 32 & 0xff;
53
48
  const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
54
49
  output.push(hex);
55
50
  }
56
-
57
51
  return output;
58
52
  }
53
+
59
54
  /**
60
55
  * Calculate output length with padding and bit length
61
56
  */
62
-
63
-
64
57
  function getOutputLength(inputLength8) {
65
58
  return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
66
59
  }
60
+
67
61
  /*
68
62
  * Calculate the MD5 of an array of little-endian words, and a bit length.
69
63
  */
70
-
71
-
72
64
  function wordsToMd5(x, len) {
73
65
  /* append padding */
74
66
  x[len >> 5] |= 0x80 << len % 32;
@@ -77,7 +69,6 @@ function wordsToMd5(x, len) {
77
69
  let b = -271733879;
78
70
  let c = -1732584194;
79
71
  let d = 271733878;
80
-
81
72
  for (let i = 0; i < x.length; i += 16) {
82
73
  const olda = a;
83
74
  const oldb = b;
@@ -152,72 +143,58 @@ function wordsToMd5(x, len) {
152
143
  c = safeAdd(c, oldc);
153
144
  d = safeAdd(d, oldd);
154
145
  }
155
-
156
146
  return [a, b, c, d];
157
147
  }
148
+
158
149
  /*
159
150
  * Convert an array bytes to an array of little-endian words
160
151
  * Characters >255 have their high-byte silently ignored.
161
152
  */
162
-
163
-
164
153
  function bytesToWords(input) {
165
154
  if (input.length === 0) {
166
155
  return [];
167
156
  }
168
-
169
157
  const length8 = input.length * 8;
170
158
  const output = new Uint32Array(getOutputLength(length8));
171
-
172
159
  for (let i = 0; i < length8; i += 8) {
173
160
  output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
174
161
  }
175
-
176
162
  return output;
177
163
  }
164
+
178
165
  /*
179
166
  * Add integers, wrapping at 2^32. This uses 16-bit operations internally
180
167
  * to work around bugs in some JS interpreters.
181
168
  */
182
-
183
-
184
169
  function safeAdd(x, y) {
185
170
  const lsw = (x & 0xffff) + (y & 0xffff);
186
171
  const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
187
172
  return msw << 16 | lsw & 0xffff;
188
173
  }
174
+
189
175
  /*
190
176
  * Bitwise rotate a 32-bit number to the left.
191
177
  */
192
-
193
-
194
178
  function bitRotateLeft(num, cnt) {
195
179
  return num << cnt | num >>> 32 - cnt;
196
180
  }
181
+
197
182
  /*
198
183
  * These functions implement the four basic operations the algorithm uses.
199
184
  */
200
-
201
-
202
185
  function md5cmn(q, a, b, x, s, t) {
203
186
  return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
204
187
  }
205
-
206
188
  function md5ff(a, b, c, d, x, s, t) {
207
189
  return md5cmn(b & c | ~b & d, a, b, x, s, t);
208
190
  }
209
-
210
191
  function md5gg(a, b, c, d, x, s, t) {
211
192
  return md5cmn(b & d | c & ~d, a, b, x, s, t);
212
193
  }
213
-
214
194
  function md5hh(a, b, c, d, x, s, t) {
215
195
  return md5cmn(b ^ c ^ d, a, b, x, s, t);
216
196
  }
217
-
218
197
  function md5ii(a, b, c, d, x, s, t) {
219
198
  return md5cmn(c ^ (b | ~d), a, b, x, s, t);
220
199
  }
221
-
222
- var _default = md5;
223
- exports.default = _default;
200
+ var _default = exports.default = md5;
package/dist/md5.js CHANGED
@@ -4,20 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- var _crypto = _interopRequireDefault(require("crypto"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
7
+ var _nodeCrypto = _interopRequireDefault(require("node:crypto"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
9
  function md5(bytes) {
13
10
  if (Array.isArray(bytes)) {
14
11
  bytes = Buffer.from(bytes);
15
12
  } else if (typeof bytes === 'string') {
16
13
  bytes = Buffer.from(bytes, 'utf8');
17
14
  }
18
-
19
- return _crypto.default.createHash('md5').update(bytes).digest();
15
+ return _nodeCrypto.default.createHash('md5').update(bytes).digest();
20
16
  }
21
-
22
- var _default = md5;
23
- exports.default = _default;
17
+ var _default = exports.default = md5;
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
8
- var _default = {
8
+ var _default = exports.default = {
9
9
  randomUUID
10
- };
11
- exports.default = _default;
10
+ };
package/dist/native.js CHANGED
@@ -4,12 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- var _crypto = _interopRequireDefault(require("crypto"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- var _default = {
13
- randomUUID: _crypto.default.randomUUID
14
- };
15
- exports.default = _default;
7
+ var _nodeCrypto = _interopRequireDefault(require("node:crypto"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ var _default = exports.default = {
10
+ randomUUID: _nodeCrypto.default.randomUUID
11
+ };
package/dist/nil.js CHANGED
@@ -4,5 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '00000000-0000-0000-0000-000000000000';
8
- exports.default = _default;
7
+ var _default = exports.default = '00000000-0000-0000-0000-000000000000';
package/dist/parse.js CHANGED
@@ -4,34 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _validate = _interopRequireDefault(require("./validate.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
9
  function parse(uuid) {
13
10
  if (!(0, _validate.default)(uuid)) {
14
11
  throw TypeError('Invalid UUID');
15
12
  }
16
-
17
13
  let v;
18
- const arr = new Uint8Array(16); // Parse ########-....-....-....-............
14
+ const arr = new Uint8Array(16);
19
15
 
16
+ // Parse ########-....-....-....-............
20
17
  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
21
18
  arr[1] = v >>> 16 & 0xff;
22
19
  arr[2] = v >>> 8 & 0xff;
23
- arr[3] = v & 0xff; // Parse ........-####-....-....-............
20
+ arr[3] = v & 0xff;
24
21
 
22
+ // Parse ........-####-....-....-............
25
23
  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
26
- arr[5] = v & 0xff; // Parse ........-....-####-....-............
24
+ arr[5] = v & 0xff;
27
25
 
26
+ // Parse ........-....-####-....-............
28
27
  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
29
- arr[7] = v & 0xff; // Parse ........-....-....-####-............
28
+ arr[7] = v & 0xff;
30
29
 
30
+ // Parse ........-....-....-####-............
31
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)
32
+ arr[9] = v & 0xff;
34
33
 
34
+ // Parse ........-....-....-....-############
35
+ // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
35
36
  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
36
37
  arr[11] = v / 0x100000000 & 0xff;
37
38
  arr[12] = v >>> 24 & 0xff;
@@ -40,6 +41,4 @@ function parse(uuid) {
40
41
  arr[15] = v & 0xff;
41
42
  return arr;
42
43
  }
43
-
44
- var _default = parse;
45
- exports.default = _default;
44
+ var _default = exports.default = parse;
package/dist/regex.js CHANGED
@@ -4,5 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
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;
7
+ var _default = exports.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;
@@ -7,19 +7,17 @@ exports.default = rng;
7
7
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
8
8
  // require the crypto API and do not support built-in fallback to lower quality random number
9
9
  // generators (like Math.random()).
10
+
10
11
  let getRandomValues;
11
12
  const rnds8 = new Uint8Array(16);
12
-
13
13
  function rng() {
14
14
  // lazy load so that environments that need to polyfill have a chance to do so
15
15
  if (!getRandomValues) {
16
16
  // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
17
17
  getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
18
-
19
18
  if (!getRandomValues) {
20
19
  throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
21
20
  }
22
21
  }
23
-
24
22
  return getRandomValues(rnds8);
25
23
  }
package/dist/rng.js CHANGED
@@ -4,21 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = rng;
7
-
8
- var _crypto = _interopRequireDefault(require("crypto"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
7
+ var _nodeCrypto = _interopRequireDefault(require("node:crypto"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
9
  const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
13
-
14
10
  let poolPtr = rnds8Pool.length;
15
-
16
11
  function rng() {
17
12
  if (poolPtr > rnds8Pool.length - 16) {
18
- _crypto.default.randomFillSync(rnds8Pool);
19
-
13
+ _nodeCrypto.default.randomFillSync(rnds8Pool);
20
14
  poolPtr = 0;
21
15
  }
22
-
23
16
  return rnds8Pool.slice(poolPtr, poolPtr += 16);
24
17
  }
@@ -4,38 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  // Adapted from Chris Veness' SHA1 code at
9
8
  // http://www.movable-type.co.uk/scripts/sha1.html
10
9
  function f(s, x, y, z) {
11
10
  switch (s) {
12
11
  case 0:
13
12
  return x & y ^ ~x & z;
14
-
15
13
  case 1:
16
14
  return x ^ y ^ z;
17
-
18
15
  case 2:
19
16
  return x & y ^ x & z ^ y & z;
20
-
21
17
  case 3:
22
18
  return x ^ y ^ z;
23
19
  }
24
20
  }
25
-
26
21
  function ROTL(x, n) {
27
22
  return x << n | x >>> 32 - n;
28
23
  }
29
-
30
24
  function sha1(bytes) {
31
25
  const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
32
26
  const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
33
-
34
27
  if (typeof bytes === 'string') {
35
28
  const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
36
29
 
37
30
  bytes = [];
38
-
39
31
  for (let i = 0; i < msg.length; ++i) {
40
32
  bytes.push(msg.charCodeAt(i));
41
33
  }
@@ -43,43 +35,33 @@ function sha1(bytes) {
43
35
  // Convert Array-like to Array
44
36
  bytes = Array.prototype.slice.call(bytes);
45
37
  }
46
-
47
38
  bytes.push(0x80);
48
39
  const l = bytes.length / 4 + 2;
49
40
  const N = Math.ceil(l / 16);
50
41
  const M = new Array(N);
51
-
52
42
  for (let i = 0; i < N; ++i) {
53
43
  const arr = new Uint32Array(16);
54
-
55
44
  for (let j = 0; j < 16; ++j) {
56
45
  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];
57
46
  }
58
-
59
47
  M[i] = arr;
60
48
  }
61
-
62
49
  M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
63
50
  M[N - 1][14] = Math.floor(M[N - 1][14]);
64
51
  M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;
65
-
66
52
  for (let i = 0; i < N; ++i) {
67
53
  const W = new Uint32Array(80);
68
-
69
54
  for (let t = 0; t < 16; ++t) {
70
55
  W[t] = M[i][t];
71
56
  }
72
-
73
57
  for (let t = 16; t < 80; ++t) {
74
58
  W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
75
59
  }
76
-
77
60
  let a = H[0];
78
61
  let b = H[1];
79
62
  let c = H[2];
80
63
  let d = H[3];
81
64
  let e = H[4];
82
-
83
65
  for (let t = 0; t < 80; ++t) {
84
66
  const s = Math.floor(t / 20);
85
67
  const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
@@ -89,16 +71,12 @@ function sha1(bytes) {
89
71
  b = a;
90
72
  a = T;
91
73
  }
92
-
93
74
  H[0] = H[0] + a >>> 0;
94
75
  H[1] = H[1] + b >>> 0;
95
76
  H[2] = H[2] + c >>> 0;
96
77
  H[3] = H[3] + d >>> 0;
97
78
  H[4] = H[4] + e >>> 0;
98
79
  }
99
-
100
80
  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];
101
81
  }
102
-
103
- var _default = sha1;
104
- exports.default = _default;
82
+ var _default = exports.default = sha1;
package/dist/sha1.js CHANGED
@@ -4,20 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- var _crypto = _interopRequireDefault(require("crypto"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
7
+ var _nodeCrypto = _interopRequireDefault(require("node:crypto"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
9
  function sha1(bytes) {
13
10
  if (Array.isArray(bytes)) {
14
11
  bytes = Buffer.from(bytes);
15
12
  } else if (typeof bytes === 'string') {
16
13
  bytes = Buffer.from(bytes, 'utf8');
17
14
  }
18
-
19
- return _crypto.default.createHash('sha1').update(bytes).digest();
15
+ return _nodeCrypto.default.createHash('sha1').update(bytes).digest();
20
16
  }
21
-
22
- var _default = sha1;
23
- exports.default = _default;
17
+ var _default = exports.default = sha1;
package/dist/stringify.js CHANGED
@@ -5,40 +5,34 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  exports.unsafeStringify = unsafeStringify;
8
-
9
8
  var _validate = _interopRequireDefault(require("./validate.js"));
10
-
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
-
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
10
  /**
14
11
  * Convert array of 16 byte values to UUID string format of the form:
15
12
  * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
16
13
  */
17
14
  const byteToHex = [];
18
-
19
15
  for (let i = 0; i < 256; ++i) {
20
16
  byteToHex.push((i + 0x100).toString(16).slice(1));
21
17
  }
22
-
23
18
  function unsafeStringify(arr, offset = 0) {
24
19
  // Note: Be careful editing this code! It's been tuned for performance
25
20
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
26
- 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]];
21
+ //
22
+ // Note to future-self: No, you can't remove the `toLowerCase()` call.
23
+ // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351
24
+ 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();
27
25
  }
28
-
29
26
  function stringify(arr, offset = 0) {
30
- const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
27
+ const uuid = unsafeStringify(arr, offset);
28
+ // Consistency check for valid UUID. If this throws, it's likely due to one
31
29
  // of the following:
32
30
  // - One or more input array values don't map to a hex octet (leading to
33
31
  // "undefined" in the uuid)
34
32
  // - Invalid input values for the RFC `version` or `variant` fields
35
-
36
33
  if (!(0, _validate.default)(uuid)) {
37
34
  throw TypeError('Stringified UUID is invalid');
38
35
  }
39
-
40
36
  return uuid;
41
37
  }
42
-
43
- var _default = stringify;
44
- exports.default = _default;
38
+ var _default = exports.default = stringify;
package/dist/uuid-bin.js CHANGED
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _assert = _interopRequireDefault(require("assert"));
4
-
5
4
  var _v = _interopRequireDefault(require("./v1.js"));
6
-
7
5
  var _v2 = _interopRequireDefault(require("./v3.js"));
8
-
9
6
  var _v3 = _interopRequireDefault(require("./v4.js"));
10
-
11
7
  var _v4 = _interopRequireDefault(require("./v5.js"));
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
8
+ var _v5 = _interopRequireDefault(require("./v6.js"));
9
+ var _v6 = _interopRequireDefault(require("./v7.js"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
11
  function usage() {
16
12
  console.log('Usage:');
17
13
  console.log(' uuid');
@@ -19,66 +15,60 @@ function usage() {
19
15
  console.log(' uuid v3 <name> <namespace uuid>');
20
16
  console.log(' uuid v4');
21
17
  console.log(' uuid v5 <name> <namespace uuid>');
18
+ console.log(' uuid v6');
19
+ console.log(' uuid v7');
22
20
  console.log(' uuid --help');
23
- console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
21
+ console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562');
24
22
  }
25
-
26
23
  const args = process.argv.slice(2);
27
-
28
24
  if (args.indexOf('--help') >= 0) {
29
25
  usage();
30
26
  process.exit(0);
31
27
  }
32
-
33
28
  const version = args.shift() || 'v4';
34
-
35
29
  switch (version) {
36
30
  case 'v1':
37
31
  console.log((0, _v.default)());
38
32
  break;
39
-
40
33
  case 'v3':
41
34
  {
42
35
  const name = args.shift();
43
36
  let namespace = args.shift();
44
37
  (0, _assert.default)(name != null, 'v3 name not specified');
45
38
  (0, _assert.default)(namespace != null, 'v3 namespace not specified');
46
-
47
39
  if (namespace === 'URL') {
48
40
  namespace = _v2.default.URL;
49
41
  }
50
-
51
42
  if (namespace === 'DNS') {
52
43
  namespace = _v2.default.DNS;
53
44
  }
54
-
55
45
  console.log((0, _v2.default)(name, namespace));
56
46
  break;
57
47
  }
58
-
59
48
  case 'v4':
60
49
  console.log((0, _v3.default)());
61
50
  break;
62
-
63
51
  case 'v5':
64
52
  {
65
53
  const name = args.shift();
66
54
  let namespace = args.shift();
67
55
  (0, _assert.default)(name != null, 'v5 name not specified');
68
56
  (0, _assert.default)(namespace != null, 'v5 namespace not specified');
69
-
70
57
  if (namespace === 'URL') {
71
58
  namespace = _v4.default.URL;
72
59
  }
73
-
74
60
  if (namespace === 'DNS') {
75
61
  namespace = _v4.default.DNS;
76
62
  }
77
-
78
63
  console.log((0, _v4.default)(name, namespace));
79
64
  break;
80
65
  }
81
-
66
+ case 'v6':
67
+ console.log((0, _v5.default)());
68
+ break;
69
+ case 'v7':
70
+ console.log((0, _v6.default)());
71
+ break;
82
72
  default:
83
73
  usage();
84
74
  process.exit(1);