uuid 11.1.0 → 12.0.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.
Files changed (190) hide show
  1. package/README.md +8 -19
  2. package/dist/{esm/md5.js → md5.js} +1 -1
  3. package/dist/{esm/native.d.ts → native.d.ts} +1 -1
  4. package/dist/native.js +2 -0
  5. package/dist/{esm/rng.js → rng.js} +1 -1
  6. package/dist/{esm/sha1.js → sha1.js} +1 -1
  7. package/dist/{esm/uuid-bin.js → uuid-bin.js} +1 -1
  8. package/dist/{esm/v35.js → v35.js} +3 -0
  9. package/dist/{esm-browser/v4.js → v4.js} +7 -4
  10. package/dist/{esm-browser/v6.js → v6.js} +3 -0
  11. package/{dist/esm-browser → dist-browser}/uuid-bin.js +1 -1
  12. package/{dist/esm-browser → dist-browser}/v35.js +3 -0
  13. package/{dist/esm → dist-browser}/v4.js +7 -4
  14. package/{dist/esm → dist-browser}/v6.js +3 -0
  15. package/package.json +27 -40
  16. package/dist/cjs/index.d.ts +0 -15
  17. package/dist/cjs/index.js +0 -31
  18. package/dist/cjs/max.d.ts +0 -2
  19. package/dist/cjs/max.js +0 -3
  20. package/dist/cjs/md5.d.ts +0 -4
  21. package/dist/cjs/md5.js +0 -13
  22. package/dist/cjs/native.d.ts +0 -6
  23. package/dist/cjs/native.js +0 -4
  24. package/dist/cjs/nil.d.ts +0 -2
  25. package/dist/cjs/nil.js +0 -3
  26. package/dist/cjs/package.json +0 -1
  27. package/dist/cjs/parse.d.ts +0 -2
  28. package/dist/cjs/parse.js +0 -11
  29. package/dist/cjs/regex.d.ts +0 -2
  30. package/dist/cjs/regex.js +0 -3
  31. package/dist/cjs/rng.d.ts +0 -1
  32. package/dist/cjs/rng.js +0 -13
  33. package/dist/cjs/sha1.d.ts +0 -4
  34. package/dist/cjs/sha1.js +0 -13
  35. package/dist/cjs/stringify.d.ts +0 -3
  36. package/dist/cjs/stringify.js +0 -39
  37. package/dist/cjs/types.d.ts +0 -21
  38. package/dist/cjs/types.js +0 -2
  39. package/dist/cjs/uuid-bin.d.ts +0 -1
  40. package/dist/cjs/uuid-bin.js +0 -72
  41. package/dist/cjs/v1.d.ts +0 -11
  42. package/dist/cjs/v1.js +0 -87
  43. package/dist/cjs/v1ToV6.d.ts +0 -2
  44. package/dist/cjs/v1ToV6.js +0 -13
  45. package/dist/cjs/v3.d.ts +0 -9
  46. package/dist/cjs/v3.js +0 -14
  47. package/dist/cjs/v35.d.ts +0 -7
  48. package/dist/cjs/v35.js +0 -41
  49. package/dist/cjs/v4.d.ts +0 -4
  50. package/dist/cjs/v4.js +0 -29
  51. package/dist/cjs/v5.d.ts +0 -9
  52. package/dist/cjs/v5.js +0 -14
  53. package/dist/cjs/v6.d.ts +0 -4
  54. package/dist/cjs/v6.js +0 -19
  55. package/dist/cjs/v6ToV1.d.ts +0 -2
  56. package/dist/cjs/v6ToV1.js +0 -13
  57. package/dist/cjs/v7.d.ts +0 -9
  58. package/dist/cjs/v7.js +0 -69
  59. package/dist/cjs/validate.d.ts +0 -2
  60. package/dist/cjs/validate.js +0 -7
  61. package/dist/cjs/version.d.ts +0 -2
  62. package/dist/cjs/version.js +0 -10
  63. package/dist/cjs-browser/index.js +0 -31
  64. package/dist/cjs-browser/max.js +0 -3
  65. package/dist/cjs-browser/md5.d.ts +0 -2
  66. package/dist/cjs-browser/md5.js +0 -137
  67. package/dist/cjs-browser/native.d.ts +0 -4
  68. package/dist/cjs-browser/native.js +0 -4
  69. package/dist/cjs-browser/nil.js +0 -3
  70. package/dist/cjs-browser/package.json +0 -1
  71. package/dist/cjs-browser/parse.js +0 -11
  72. package/dist/cjs-browser/regex.js +0 -3
  73. package/dist/cjs-browser/rng.js +0 -14
  74. package/dist/cjs-browser/sha1.d.ts +0 -2
  75. package/dist/cjs-browser/sha1.js +0 -72
  76. package/dist/cjs-browser/stringify.js +0 -39
  77. package/dist/cjs-browser/types.js +0 -2
  78. package/dist/cjs-browser/uuid-bin.js +0 -72
  79. package/dist/cjs-browser/v1.js +0 -87
  80. package/dist/cjs-browser/v1ToV6.js +0 -13
  81. package/dist/cjs-browser/v3.js +0 -14
  82. package/dist/cjs-browser/v35.js +0 -41
  83. package/dist/cjs-browser/v4.js +0 -29
  84. package/dist/cjs-browser/v5.js +0 -14
  85. package/dist/cjs-browser/v6.js +0 -19
  86. package/dist/cjs-browser/v6ToV1.js +0 -13
  87. package/dist/cjs-browser/v7.js +0 -69
  88. package/dist/cjs-browser/validate.js +0 -7
  89. package/dist/cjs-browser/version.js +0 -10
  90. package/dist/esm/index.d.ts +0 -15
  91. package/dist/esm/max.d.ts +0 -2
  92. package/dist/esm/native.js +0 -2
  93. package/dist/esm/nil.d.ts +0 -2
  94. package/dist/esm/parse.d.ts +0 -2
  95. package/dist/esm/regex.d.ts +0 -2
  96. package/dist/esm/rng.d.ts +0 -1
  97. package/dist/esm/stringify.d.ts +0 -3
  98. package/dist/esm/types.d.ts +0 -21
  99. package/dist/esm/uuid-bin.d.ts +0 -1
  100. package/dist/esm/v1.d.ts +0 -11
  101. package/dist/esm/v1ToV6.d.ts +0 -2
  102. package/dist/esm/v3.d.ts +0 -9
  103. package/dist/esm/v35.d.ts +0 -7
  104. package/dist/esm/v4.d.ts +0 -4
  105. package/dist/esm/v5.d.ts +0 -9
  106. package/dist/esm/v6.d.ts +0 -4
  107. package/dist/esm/v6ToV1.d.ts +0 -2
  108. package/dist/esm/v7.d.ts +0 -9
  109. package/dist/esm/validate.d.ts +0 -2
  110. package/dist/esm/version.d.ts +0 -2
  111. package/dist/esm-browser/index.d.ts +0 -15
  112. package/dist/esm-browser/max.d.ts +0 -2
  113. package/dist/esm-browser/md5.d.ts +0 -2
  114. package/dist/esm-browser/native.d.ts +0 -4
  115. package/dist/esm-browser/nil.d.ts +0 -2
  116. package/dist/esm-browser/parse.d.ts +0 -2
  117. package/dist/esm-browser/regex.d.ts +0 -2
  118. package/dist/esm-browser/rng.d.ts +0 -1
  119. package/dist/esm-browser/sha1.d.ts +0 -2
  120. package/dist/esm-browser/stringify.d.ts +0 -3
  121. package/dist/esm-browser/types.d.ts +0 -21
  122. package/dist/esm-browser/uuid-bin.d.ts +0 -1
  123. package/dist/esm-browser/v1.d.ts +0 -11
  124. package/dist/esm-browser/v1ToV6.d.ts +0 -2
  125. package/dist/esm-browser/v3.d.ts +0 -9
  126. package/dist/esm-browser/v35.d.ts +0 -7
  127. package/dist/esm-browser/v4.d.ts +0 -4
  128. package/dist/esm-browser/v5.d.ts +0 -9
  129. package/dist/esm-browser/v6.d.ts +0 -4
  130. package/dist/esm-browser/v6ToV1.d.ts +0 -2
  131. package/dist/esm-browser/v7.d.ts +0 -9
  132. package/dist/esm-browser/validate.d.ts +0 -2
  133. package/dist/esm-browser/version.d.ts +0 -2
  134. /package/dist/{esm/bin → bin}/uuid +0 -0
  135. /package/dist/{cjs-browser/index.d.ts → index.d.ts} +0 -0
  136. /package/dist/{esm/index.js → index.js} +0 -0
  137. /package/dist/{cjs-browser/max.d.ts → max.d.ts} +0 -0
  138. /package/dist/{esm/max.js → max.js} +0 -0
  139. /package/dist/{esm/md5.d.ts → md5.d.ts} +0 -0
  140. /package/dist/{cjs-browser/nil.d.ts → nil.d.ts} +0 -0
  141. /package/dist/{esm/nil.js → nil.js} +0 -0
  142. /package/dist/{cjs-browser/parse.d.ts → parse.d.ts} +0 -0
  143. /package/dist/{esm/parse.js → parse.js} +0 -0
  144. /package/dist/{cjs-browser/regex.d.ts → regex.d.ts} +0 -0
  145. /package/dist/{esm/regex.js → regex.js} +0 -0
  146. /package/dist/{cjs-browser/rng.d.ts → rng.d.ts} +0 -0
  147. /package/dist/{esm/sha1.d.ts → sha1.d.ts} +0 -0
  148. /package/dist/{cjs-browser/stringify.d.ts → stringify.d.ts} +0 -0
  149. /package/dist/{esm/stringify.js → stringify.js} +0 -0
  150. /package/dist/{cjs-browser/types.d.ts → types.d.ts} +0 -0
  151. /package/dist/{esm/types.js → types.js} +0 -0
  152. /package/dist/{cjs-browser/uuid-bin.d.ts → uuid-bin.d.ts} +0 -0
  153. /package/dist/{cjs-browser/v1.d.ts → v1.d.ts} +0 -0
  154. /package/dist/{esm/v1.js → v1.js} +0 -0
  155. /package/dist/{cjs-browser/v1ToV6.d.ts → v1ToV6.d.ts} +0 -0
  156. /package/dist/{esm/v1ToV6.js → v1ToV6.js} +0 -0
  157. /package/dist/{cjs-browser/v3.d.ts → v3.d.ts} +0 -0
  158. /package/dist/{esm/v3.js → v3.js} +0 -0
  159. /package/dist/{cjs-browser/v35.d.ts → v35.d.ts} +0 -0
  160. /package/dist/{cjs-browser/v4.d.ts → v4.d.ts} +0 -0
  161. /package/dist/{cjs-browser/v5.d.ts → v5.d.ts} +0 -0
  162. /package/dist/{esm/v5.js → v5.js} +0 -0
  163. /package/dist/{cjs-browser/v6.d.ts → v6.d.ts} +0 -0
  164. /package/dist/{cjs-browser/v6ToV1.d.ts → v6ToV1.d.ts} +0 -0
  165. /package/dist/{esm/v6ToV1.js → v6ToV1.js} +0 -0
  166. /package/dist/{cjs-browser/v7.d.ts → v7.d.ts} +0 -0
  167. /package/dist/{esm/v7.js → v7.js} +0 -0
  168. /package/dist/{cjs-browser/validate.d.ts → validate.d.ts} +0 -0
  169. /package/dist/{esm/validate.js → validate.js} +0 -0
  170. /package/dist/{cjs-browser/version.d.ts → version.d.ts} +0 -0
  171. /package/dist/{esm/version.js → version.js} +0 -0
  172. /package/{dist/esm-browser → dist-browser}/index.js +0 -0
  173. /package/{dist/esm-browser → dist-browser}/max.js +0 -0
  174. /package/{dist/esm-browser → dist-browser}/md5.js +0 -0
  175. /package/{dist/esm-browser → dist-browser}/native.js +0 -0
  176. /package/{dist/esm-browser → dist-browser}/nil.js +0 -0
  177. /package/{dist/esm-browser → dist-browser}/parse.js +0 -0
  178. /package/{dist/esm-browser → dist-browser}/regex.js +0 -0
  179. /package/{dist/esm-browser → dist-browser}/rng.js +0 -0
  180. /package/{dist/esm-browser → dist-browser}/sha1.js +0 -0
  181. /package/{dist/esm-browser → dist-browser}/stringify.js +0 -0
  182. /package/{dist/esm-browser → dist-browser}/types.js +0 -0
  183. /package/{dist/esm-browser → dist-browser}/v1.js +0 -0
  184. /package/{dist/esm-browser → dist-browser}/v1ToV6.js +0 -0
  185. /package/{dist/esm-browser → dist-browser}/v3.js +0 -0
  186. /package/{dist/esm-browser → dist-browser}/v5.js +0 -0
  187. /package/{dist/esm-browser → dist-browser}/v6ToV1.js +0 -0
  188. /package/{dist/esm-browser → dist-browser}/v7.js +0 -0
  189. /package/{dist/esm-browser → dist-browser}/validate.js +0 -0
  190. /package/{dist/esm-browser → dist-browser}/version.js +0 -0
package/README.md CHANGED
@@ -8,7 +8,6 @@ For the creation of [RFC9562](https://www.rfc-editor.org/rfc/rfc9562.html) (form
8
8
 
9
9
  - **Complete** - Support for all RFC9562 UUID versions
10
10
  - **Cross-platform** - Support for...
11
- - ESM & Common JS
12
11
  - [Typescript](#support)
13
12
  - [Chrome, Safari, Firefox, and Edge](#support)
14
13
  - [NodeJS](#support)
@@ -19,10 +18,8 @@ For the creation of [RFC9562](https://www.rfc-editor.org/rfc/rfc9562.html) (form
19
18
 
20
19
  <!-- prettier-ignore -->
21
20
  > [!NOTE]
22
- > `uuid@11` is now available: See the [CHANGELOG](./CHANGELOG.md) for details. TL;DR:
23
- > * TypeScript support is now included (remove `@types/uuid` from your dependencies)
24
- > * Subtle changes to how the `options` arg is interpreted for `v1()`, `v6()`, and `v7()`. [See details](#options-handling-for-timestamp-uuids)
25
- > * Binary UUIDs are now `Uint8Array`s. (May impact callers of `parse()`, `stringify()`, or that pass an `option#buf` argument to `v1()`-`v7()`.)
21
+ >
22
+ > Starting with `uuid@12` CommonJS is no longer supported. See [implications](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and [motivation](https://github.com/uuidjs/uuid/issues/881) for details.
26
23
 
27
24
  ## Quickstart
28
25
 
@@ -34,18 +31,10 @@ npm install uuid
34
31
 
35
32
  **2. Create a UUID**
36
33
 
37
- ESM-syntax (must use named exports):
38
-
39
34
  ```javascript
40
35
  import { v4 as uuidv4 } from 'uuid';
41
- uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
42
- ```
43
36
 
44
- ... CommonJS:
45
-
46
- ```javascript
47
- const { v4: uuidv4 } = require('uuid');
48
- uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
37
+ uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
49
38
  ```
50
39
 
51
40
  For timestamp UUIDs, namespace UUIDs, and other options read on ...
@@ -198,7 +187,7 @@ Example:
198
187
  ```javascript
199
188
  import { v1 as uuidv1 } from 'uuid';
200
189
 
201
- uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9bdd-2b0d7b3dcb6d'
190
+ uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9b5d-ab8dfbbd4bed'
202
191
  ```
203
192
 
204
193
  Example using `options`:
@@ -253,7 +242,7 @@ Example:
253
242
  ```javascript
254
243
  import { v4 as uuidv4 } from 'uuid';
255
244
 
256
- uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
245
+ uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
257
246
  ```
258
247
 
259
248
  Example using predefined `random` values:
@@ -329,7 +318,7 @@ This method takes the same arguments as uuid.v1().
329
318
  ```javascript
330
319
  import { v6 as uuidv6 } from 'uuid';
331
320
 
332
- uuidv6(); // ⇨ '1e940672-c5ea-64c0-9b5d-ab8dfbbd4bed'
321
+ uuidv6(); // ⇨ '1e940672-c5ea-64c1-9bdd-2b0d7b3dcb6d'
333
322
  ```
334
323
 
335
324
  Example using `options`:
@@ -376,7 +365,7 @@ Example:
376
365
  ```javascript
377
366
  import { v7 as uuidv7 } from 'uuid';
378
367
 
379
- uuidv7(); // ⇨ '01695553-c90c-705a-b56d-778dfbbd4bed'
368
+ uuidv7(); // ⇨ '01695553-c90c-745a-b76f-770d7b3dcb6d'
380
369
  ```
381
370
 
382
371
  ### ~~uuid.v8()~~
@@ -483,7 +472,7 @@ Prior to `uuid@11`, it was possible for `options` state to interfere with the in
483
472
 
484
473
  **Browsers**: `uuid` [builds are tested](/uuidjs/uuid/blob/main/wdio.conf.js) against the latest version of desktop Chrome, Safari, Firefox, and Edge. Mobile versions of these same browsers are expected to work but aren't currently tested.
485
474
 
486
- **Node**: `uuid` [builds are tested](https://github.com/uuidjs/uuid/blob/main/.github/workflows/ci.yml#L26-L27) against node ([LTS releases](https://github.com/nodejs/Release)), plus one prior. E.g. `node@18` is in maintainence mode, and `node@22` is the current LTS release. So `uuid` supports `node@16`-`node@22`.
475
+ **Node**: `uuid` [builds are tested](https://github.com/uuidjs/uuid/blob/main/.github/workflows/ci.yml#L26-L27) against node ([LTS releases](https://github.com/nodejs/Release)), plus one prior. E.g. At the time of this writing `node@20` is the "maintenance" release and `node@24` is the "current" release, so `uuid` supports `node@18`-`node@24`.
487
476
 
488
477
  **Typescript**: TS versions released within the past two years are supported. [source](https://github.com/microsoft/TypeScript/issues/49088#issuecomment-2468723715)
489
478
 
@@ -1,4 +1,4 @@
1
- import { createHash } from 'crypto';
1
+ import { createHash } from 'node:crypto';
2
2
  function md5(bytes) {
3
3
  if (Array.isArray(bytes)) {
4
4
  bytes = Buffer.from(bytes);
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { randomUUID } from 'crypto';
2
+ import { randomUUID } from 'node:crypto';
3
3
  declare const _default: {
4
4
  randomUUID: typeof randomUUID;
5
5
  };
package/dist/native.js ADDED
@@ -0,0 +1,2 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ export default { randomUUID };
@@ -1,4 +1,4 @@
1
- import { randomFillSync } from 'crypto';
1
+ import { randomFillSync } from 'node:crypto';
2
2
  const rnds8Pool = new Uint8Array(256);
3
3
  let poolPtr = rnds8Pool.length;
4
4
  export default function rng() {
@@ -1,4 +1,4 @@
1
- import { createHash } from 'crypto';
1
+ import { createHash } from 'node:crypto';
2
2
  function sha1(bytes) {
3
3
  if (Array.isArray(bytes)) {
4
4
  bytes = Buffer.from(bytes);
@@ -1,4 +1,4 @@
1
- import * as assert from 'assert';
1
+ import * as assert from 'node:assert/strict';
2
2
  import v1 from './v1.js';
3
3
  import v3 from './v3.js';
4
4
  import v4 from './v4.js';
@@ -27,6 +27,9 @@ export default function v35(version, hash, value, namespace, buf, offset) {
27
27
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
28
28
  if (buf) {
29
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
+ }
30
33
  for (let i = 0; i < 16; ++i) {
31
34
  buf[offset + i] = bytes[i];
32
35
  }
@@ -1,10 +1,7 @@
1
1
  import native from './native.js';
2
2
  import rng from './rng.js';
3
3
  import { unsafeStringify } from './stringify.js';
4
- function v4(options, buf, offset) {
5
- if (native.randomUUID && !buf && !options) {
6
- return native.randomUUID();
7
- }
4
+ function _v4(options, buf, offset) {
8
5
  options = options || {};
9
6
  const rnds = options.random ?? options.rng?.() ?? rng();
10
7
  if (rnds.length < 16) {
@@ -24,4 +21,10 @@ function v4(options, buf, offset) {
24
21
  }
25
22
  return unsafeStringify(rnds);
26
23
  }
24
+ function v4(options, buf, offset) {
25
+ if (native.randomUUID && !buf && !options) {
26
+ return native.randomUUID();
27
+ }
28
+ return _v4(options, buf, offset);
29
+ }
27
30
  export default v4;
@@ -7,6 +7,9 @@ function v6(options, buf, offset) {
7
7
  let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));
8
8
  bytes = v1ToV6(bytes);
9
9
  if (buf) {
10
+ if (offset < 0 || offset + 16 > buf.length) {
11
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
12
+ }
10
13
  for (let i = 0; i < 16; i++) {
11
14
  buf[offset + i] = bytes[i];
12
15
  }
@@ -1,4 +1,4 @@
1
- import * as assert from 'assert';
1
+ import * as assert from 'node:assert/strict';
2
2
  import v1 from './v1.js';
3
3
  import v3 from './v3.js';
4
4
  import v4 from './v4.js';
@@ -27,6 +27,9 @@ export default function v35(version, hash, value, namespace, buf, offset) {
27
27
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
28
28
  if (buf) {
29
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
+ }
30
33
  for (let i = 0; i < 16; ++i) {
31
34
  buf[offset + i] = bytes[i];
32
35
  }
@@ -1,10 +1,7 @@
1
1
  import native from './native.js';
2
2
  import rng from './rng.js';
3
3
  import { unsafeStringify } from './stringify.js';
4
- function v4(options, buf, offset) {
5
- if (native.randomUUID && !buf && !options) {
6
- return native.randomUUID();
7
- }
4
+ function _v4(options, buf, offset) {
8
5
  options = options || {};
9
6
  const rnds = options.random ?? options.rng?.() ?? rng();
10
7
  if (rnds.length < 16) {
@@ -24,4 +21,10 @@ function v4(options, buf, offset) {
24
21
  }
25
22
  return unsafeStringify(rnds);
26
23
  }
24
+ function v4(options, buf, offset) {
25
+ if (native.randomUUID && !buf && !options) {
26
+ return native.randomUUID();
27
+ }
28
+ return _v4(options, buf, offset);
29
+ }
27
30
  export default v4;
@@ -7,6 +7,9 @@ function v6(options, buf, offset) {
7
7
  let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));
8
8
  bytes = v1ToV6(bytes);
9
9
  if (buf) {
10
+ if (offset < 0 || offset + 16 > buf.length) {
11
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
12
+ }
10
13
  for (let i = 0; i < 16; i++) {
11
14
  buf[offset + i] = bytes[i];
12
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uuid",
3
- "version": "11.1.0",
3
+ "version": "12.0.1",
4
4
  "description": "RFC9562 UUIDs",
5
5
  "type": "module",
6
6
  "funding": [
@@ -20,56 +20,44 @@
20
20
  ],
21
21
  "license": "MIT",
22
22
  "bin": {
23
- "uuid": "./dist/esm/bin/uuid"
23
+ "uuid": "./dist/bin/uuid"
24
24
  },
25
25
  "sideEffects": false,
26
- "main": "./dist/cjs/index.js",
26
+ "types": "./dist/index.d.ts",
27
27
  "exports": {
28
28
  ".": {
29
- "node": {
30
- "import": "./dist/esm/index.js",
31
- "require": "./dist/cjs/index.js"
32
- },
33
- "browser": {
34
- "import": "./dist/esm-browser/index.js",
35
- "require": "./dist/cjs-browser/index.js"
36
- },
37
- "default": "./dist/esm-browser/index.js"
29
+ "browser": "./dist-browser/index.js",
30
+ "default": "./dist/index.js"
38
31
  },
39
32
  "./package.json": "./package.json"
40
33
  },
41
- "module": "./dist/esm/index.js",
42
- "browser": {
43
- "./dist/esm/index.js": "./dist/esm-browser/index.js",
44
- "./dist/cjs/index.js": "./dist/cjs-browser/index.js"
45
- },
46
34
  "files": [
47
35
  "dist",
48
- "!dist/**/test"
36
+ "dist-browser",
37
+ "!**/test"
49
38
  ],
50
39
  "devDependencies": {
51
- "@babel/eslint-parser": "7.25.9",
52
- "@commitlint/cli": "19.6.1",
53
- "@commitlint/config-conventional": "19.6.0",
54
- "@eslint/js": "9.17.0",
55
- "@types/eslint__js": "8.42.3",
56
- "bundlewatch": "0.4.0",
57
- "commander": "12.1.0",
58
- "eslint": "9.17.0",
59
- "eslint-config-prettier": "9.1.0",
60
- "eslint-plugin-prettier": "5.2.1",
61
- "globals": "15.14.0",
40
+ "@babel/eslint-parser": "7.27.1",
41
+ "@commitlint/cli": "19.8.0",
42
+ "@commitlint/config-conventional": "19.8.0",
43
+ "@eslint/js": "9.26.0",
44
+ "bundlewatch": "0.4.1",
45
+ "commander": "13.1.0",
46
+ "eslint": "9.26.0",
47
+ "eslint-config-prettier": "10.1.2",
48
+ "eslint-plugin-prettier": "5.4.0",
49
+ "globals": "16.0.0",
62
50
  "husky": "9.1.7",
63
51
  "jest": "29.7.0",
64
- "lint-staged": "15.2.11",
65
- "neostandard": "0.12.0",
52
+ "lint-staged": "15.5.2",
53
+ "neostandard": "0.12.1",
66
54
  "npm-run-all": "4.1.5",
67
- "prettier": "3.4.2",
68
- "release-please": "16.15.0",
55
+ "prettier": "3.5.3",
56
+ "release-please": "17.0.0",
69
57
  "runmd": "1.4.1",
70
58
  "standard-version": "9.5.0",
71
- "typescript": "5.0.4",
72
- "typescript-eslint": "8.18.2"
59
+ "typescript": "5.2.2",
60
+ "typescript-eslint": "8.32.0"
73
61
  },
74
62
  "optionalDevDependencies": {
75
63
  "@wdio/browserstack-service": "9.2.1",
@@ -81,7 +69,7 @@
81
69
  },
82
70
  "scripts": {
83
71
  "build": "./scripts/build.sh",
84
- "build:watch": "tsc --watch -p tsconfig.esm.json",
72
+ "build:watch": "tsc --watch -p tsconfig.json",
85
73
  "bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json",
86
74
  "docs:diff": "npm run docs && git diff --quiet README.md",
87
75
  "docs": "npm run build && npx runmd --output=README.md README_js.md",
@@ -89,7 +77,6 @@
89
77
  "eslint:fix": "eslint --fix src/ test/ examples/ *.[jt]s",
90
78
  "examples:browser:rollup:build": "cd examples/browser-rollup && npm run build",
91
79
  "examples:browser:webpack:build": "cd examples/browser-webpack && npm run build",
92
- "examples:node:commonjs:test": "cd examples/node-commonjs && npm test",
93
80
  "examples:node:esmodules:test": "cd examples/node-esmodules && npm test",
94
81
  "examples:node:jest:test": "cd examples/node-jest && npm test",
95
82
  "examples:node:typescript:test": "cd examples/typescript && npm test",
@@ -108,8 +95,8 @@
108
95
  "test:benchmark": "cd examples/benchmark && npm test",
109
96
  "test:browser": "wdio run ./wdio.conf.js",
110
97
  "test:node": "npm-run-all --parallel examples:node:**",
111
- "test:watch": "node --test --enable-source-maps --watch dist/esm/test/*.js",
112
- "test": "node --test --enable-source-maps dist/esm/test/*.js"
98
+ "test:watch": "node --test --enable-source-maps --watch dist/test/*.js",
99
+ "test": "node --test --enable-source-maps dist/test/*.js"
113
100
  },
114
101
  "repository": {
115
102
  "type": "git",
@@ -128,5 +115,5 @@
128
115
  "postchangelog": "prettier --write CHANGELOG.md"
129
116
  }
130
117
  },
131
- "packageManager": "npm@11.0.0"
118
+ "packageManager": "npm@11.3.0"
132
119
  }
@@ -1,15 +0,0 @@
1
- export type * from './types.js';
2
- export { default as MAX } from './max.js';
3
- export { default as NIL } from './nil.js';
4
- export { default as parse } from './parse.js';
5
- export { default as stringify } from './stringify.js';
6
- export { default as v1 } from './v1.js';
7
- export { default as v1ToV6 } from './v1ToV6.js';
8
- export { default as v3 } from './v3.js';
9
- export { default as v4 } from './v4.js';
10
- export { default as v5 } from './v5.js';
11
- export { default as v6 } from './v6.js';
12
- export { default as v6ToV1 } from './v6ToV1.js';
13
- export { default as v7 } from './v7.js';
14
- export { default as validate } from './validate.js';
15
- export { default as version } from './version.js';
package/dist/cjs/index.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0;
4
- var max_js_1 = require("./max.js");
5
- Object.defineProperty(exports, "MAX", { enumerable: true, get: function () { return max_js_1.default; } });
6
- var nil_js_1 = require("./nil.js");
7
- Object.defineProperty(exports, "NIL", { enumerable: true, get: function () { return nil_js_1.default; } });
8
- var parse_js_1 = require("./parse.js");
9
- Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_js_1.default; } });
10
- var stringify_js_1 = require("./stringify.js");
11
- Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return stringify_js_1.default; } });
12
- var v1_js_1 = require("./v1.js");
13
- Object.defineProperty(exports, "v1", { enumerable: true, get: function () { return v1_js_1.default; } });
14
- var v1ToV6_js_1 = require("./v1ToV6.js");
15
- Object.defineProperty(exports, "v1ToV6", { enumerable: true, get: function () { return v1ToV6_js_1.default; } });
16
- var v3_js_1 = require("./v3.js");
17
- Object.defineProperty(exports, "v3", { enumerable: true, get: function () { return v3_js_1.default; } });
18
- var v4_js_1 = require("./v4.js");
19
- Object.defineProperty(exports, "v4", { enumerable: true, get: function () { return v4_js_1.default; } });
20
- var v5_js_1 = require("./v5.js");
21
- Object.defineProperty(exports, "v5", { enumerable: true, get: function () { return v5_js_1.default; } });
22
- var v6_js_1 = require("./v6.js");
23
- Object.defineProperty(exports, "v6", { enumerable: true, get: function () { return v6_js_1.default; } });
24
- var v6ToV1_js_1 = require("./v6ToV1.js");
25
- Object.defineProperty(exports, "v6ToV1", { enumerable: true, get: function () { return v6ToV1_js_1.default; } });
26
- var v7_js_1 = require("./v7.js");
27
- Object.defineProperty(exports, "v7", { enumerable: true, get: function () { return v7_js_1.default; } });
28
- var validate_js_1 = require("./validate.js");
29
- Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_js_1.default; } });
30
- var version_js_1 = require("./version.js");
31
- Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_js_1.default; } });
package/dist/cjs/max.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff";
2
- export default _default;
package/dist/cjs/max.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff';
package/dist/cjs/md5.d.ts DELETED
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- declare function md5(bytes: Uint8Array): Buffer;
4
- export default md5;
package/dist/cjs/md5.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- function md5(bytes) {
5
- if (Array.isArray(bytes)) {
6
- bytes = Buffer.from(bytes);
7
- }
8
- else if (typeof bytes === 'string') {
9
- bytes = Buffer.from(bytes, 'utf8');
10
- }
11
- return (0, crypto_1.createHash)('md5').update(bytes).digest();
12
- }
13
- exports.default = md5;
@@ -1,6 +0,0 @@
1
- /// <reference types="node" />
2
- import { randomUUID } from 'crypto';
3
- declare const _default: {
4
- randomUUID: typeof randomUUID;
5
- };
6
- export default _default;
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- exports.default = { randomUUID: crypto_1.randomUUID };
package/dist/cjs/nil.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const _default: "00000000-0000-0000-0000-000000000000";
2
- export default _default;
package/dist/cjs/nil.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '00000000-0000-0000-0000-000000000000';
@@ -1 +0,0 @@
1
- {"type":"commonjs"}
@@ -1,2 +0,0 @@
1
- declare function parse(uuid: string): Uint8Array;
2
- export default parse;
package/dist/cjs/parse.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const validate_js_1 = require("./validate.js");
4
- function parse(uuid) {
5
- if (!(0, validate_js_1.default)(uuid)) {
6
- throw TypeError('Invalid UUID');
7
- }
8
- let v;
9
- 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);
10
- }
11
- exports.default = parse;
@@ -1,2 +0,0 @@
1
- declare const _default: RegExp;
2
- export default _default;
package/dist/cjs/regex.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- 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;
package/dist/cjs/rng.d.ts DELETED
@@ -1 +0,0 @@
1
- export default function rng(): Uint8Array;
package/dist/cjs/rng.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- const rnds8Pool = new Uint8Array(256);
5
- let poolPtr = rnds8Pool.length;
6
- function rng() {
7
- if (poolPtr > rnds8Pool.length - 16) {
8
- (0, crypto_1.randomFillSync)(rnds8Pool);
9
- poolPtr = 0;
10
- }
11
- return rnds8Pool.slice(poolPtr, (poolPtr += 16));
12
- }
13
- exports.default = rng;
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- declare function sha1(bytes: Uint8Array): Buffer;
4
- export default sha1;
package/dist/cjs/sha1.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- function sha1(bytes) {
5
- if (Array.isArray(bytes)) {
6
- bytes = Buffer.from(bytes);
7
- }
8
- else if (typeof bytes === 'string') {
9
- bytes = Buffer.from(bytes, 'utf8');
10
- }
11
- return (0, crypto_1.createHash)('sha1').update(bytes).digest();
12
- }
13
- exports.default = sha1;
@@ -1,3 +0,0 @@
1
- export declare function unsafeStringify(arr: Uint8Array, offset?: number): string;
2
- declare function stringify(arr: Uint8Array, offset?: number): string;
3
- export default stringify;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsafeStringify = void 0;
4
- const validate_js_1 = require("./validate.js");
5
- const byteToHex = [];
6
- for (let i = 0; i < 256; ++i) {
7
- byteToHex.push((i + 0x100).toString(16).slice(1));
8
- }
9
- function unsafeStringify(arr, offset = 0) {
10
- return (byteToHex[arr[offset + 0]] +
11
- byteToHex[arr[offset + 1]] +
12
- byteToHex[arr[offset + 2]] +
13
- byteToHex[arr[offset + 3]] +
14
- '-' +
15
- byteToHex[arr[offset + 4]] +
16
- byteToHex[arr[offset + 5]] +
17
- '-' +
18
- byteToHex[arr[offset + 6]] +
19
- byteToHex[arr[offset + 7]] +
20
- '-' +
21
- byteToHex[arr[offset + 8]] +
22
- byteToHex[arr[offset + 9]] +
23
- '-' +
24
- byteToHex[arr[offset + 10]] +
25
- byteToHex[arr[offset + 11]] +
26
- byteToHex[arr[offset + 12]] +
27
- byteToHex[arr[offset + 13]] +
28
- byteToHex[arr[offset + 14]] +
29
- byteToHex[arr[offset + 15]]).toLowerCase();
30
- }
31
- exports.unsafeStringify = unsafeStringify;
32
- function stringify(arr, offset = 0) {
33
- const uuid = unsafeStringify(arr, offset);
34
- if (!(0, validate_js_1.default)(uuid)) {
35
- throw TypeError('Stringified UUID is invalid');
36
- }
37
- return uuid;
38
- }
39
- exports.default = stringify;
@@ -1,21 +0,0 @@
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
- };
package/dist/cjs/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export {};