@typed/id 0.17.2 → 1.0.0-beta.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.
- package/README.md +164 -0
- package/dist/Cuid.d.ts +28 -17
- package/dist/Cuid.d.ts.map +1 -0
- package/dist/Cuid.js +41 -46
- package/dist/DateTimes.d.ts +15 -15
- package/dist/DateTimes.d.ts.map +1 -0
- package/dist/DateTimes.js +18 -15
- package/dist/Id.test.d.ts +2 -0
- package/dist/Id.test.d.ts.map +1 -0
- package/dist/Id.test.js +190 -0
- package/dist/Ids.d.ts +71 -0
- package/dist/Ids.d.ts.map +1 -0
- package/dist/Ids.js +51 -0
- package/dist/Ksuid.d.ts +8 -7
- package/dist/Ksuid.d.ts.map +1 -0
- package/dist/Ksuid.js +26 -33
- package/dist/NanoId.d.ts +8 -32
- package/dist/NanoId.d.ts.map +1 -0
- package/dist/NanoId.js +10 -14
- package/dist/RandomValues.d.ts +13 -0
- package/dist/RandomValues.d.ts.map +1 -0
- package/dist/RandomValues.js +19 -0
- package/dist/Ulid.d.ts +8 -30
- package/dist/Ulid.d.ts.map +1 -0
- package/dist/Ulid.js +15 -20
- package/dist/Uuid4.d.ts +7 -6
- package/dist/Uuid4.d.ts.map +1 -0
- package/dist/Uuid4.js +8 -10
- package/dist/Uuid5.d.ts +13 -19
- package/dist/Uuid5.d.ts.map +1 -0
- package/dist/Uuid5.js +14 -16
- package/dist/Uuid7.d.ts +35 -18
- package/dist/Uuid7.d.ts.map +1 -0
- package/dist/Uuid7.js +23 -22
- package/dist/_sha.d.ts +4 -0
- package/dist/_sha.d.ts.map +1 -0
- package/dist/_sha.js +3 -0
- package/dist/{UuidStringify.d.ts → _uuid-stringify.d.ts} +1 -0
- package/dist/_uuid-stringify.d.ts.map +1 -0
- package/dist/_uuid-stringify.js +28 -0
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -10
- package/package.json +19 -30
- package/src/Cuid.ts +87 -100
- package/src/DateTimes.ts +22 -26
- package/src/Id.test.ts +217 -0
- package/src/Ids.ts +124 -0
- package/src/Ksuid.ts +54 -62
- package/src/NanoId.ts +20 -47
- package/src/RandomValues.ts +33 -0
- package/src/Ulid.ts +37 -68
- package/src/Uuid4.ts +20 -18
- package/src/Uuid5.ts +39 -46
- package/src/Uuid7.ts +79 -80
- package/src/_sha.ts +11 -0
- package/src/_uuid-stringify.ts +30 -0
- package/src/index.ts +10 -9
- package/tsconfig.json +5 -25
- package/vitest.config.ts +8 -0
- package/.nvmrc +0 -1
- package/biome.json +0 -36
- package/dist/Cuid.js.map +0 -1
- package/dist/DateTimes.js.map +0 -1
- package/dist/GetRandomValues.d.ts +0 -11
- package/dist/GetRandomValues.js +0 -17
- package/dist/GetRandomValues.js.map +0 -1
- package/dist/Ksuid.js.map +0 -1
- package/dist/NanoId.js.map +0 -1
- package/dist/Ulid.js.map +0 -1
- package/dist/Uuid4.js.map +0 -1
- package/dist/Uuid5.js.map +0 -1
- package/dist/Uuid7.js.map +0 -1
- package/dist/UuidStringify.js +0 -29
- package/dist/UuidStringify.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/readme.md +0 -169
- package/src/GetRandomValues.ts +0 -29
- package/src/UuidStringify.ts +0 -31
- package/src/id.test.ts +0 -133
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GetRandomValues.js","sourceRoot":"","sources":["../src/GetRandomValues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,OAAO,eAAgB,SAAQ,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAGhE;IACD,MAAM,CAAU,KAAK,GAAG,CAAC,CAAgD,EAAE,EAAE,CAC3E,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;IAEnC,MAAM,CAAU,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAE7F,MAAM,CAAU,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;QACjC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CACH,CAAA;IAED,MAAM,CAAU,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAClE,CAAA"}
|
package/dist/Ksuid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ksuid.js","sourceRoot":"","sources":["../src/Ksuid.ts"],"names":[],"mappings":"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"}
|
package/dist/NanoId.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NanoId.js","sourceRoot":"","sources":["../src/NanoId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,aAAa,GAAG,eAAe,CAAA;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAgB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;AA2B1E,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE;IAC9C,IAAI,IAAI,EAAE,CAAA;IACV,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACd,WAAW;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;SAAM,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACrB,QAAQ;QACR,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/C,CAAC;SAAM,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO,GAAG,CAAA;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAgB,EAAU,EAAE,CACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,cAAc,GACzB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,UAAU,GAAkD,MAAM,CAAC,GAAG,CACjF,cAAc,EACd,MAAM,CACP,CAAA"}
|
package/dist/Ulid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ulid.js","sourceRoot":"","sources":["../src/Ulid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAqC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAQ,CAAA;AAErF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAyBpE,qBAAqB;AACrB,MAAM,QAAQ,GAAG,kCAAkC,CAAA;AACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA;AACpC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAC5B,MAAM,QAAQ,GAAG,EAAE,CAAA;AACnB,MAAM,UAAU,GAAG,EAAE,CAAA;AAErB,MAAM,CAAC,MAAM,YAAY,GACvB,SAAS,CAAC,GAAG,CAAC,IAAI,CAChB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EACpB,MAAM,CAAC,IAAI,CACT,MAAM,EACN,GAAG,EAAE,CACH,eAAe,CAAC,KAAK,CAAC,EAAE,CAAmE,CAC9F,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,QAAQ,GAA4D,MAAM,CAAC,GAAG,CACzF,YAAY,EACZ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CACnC,CAAA;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,YAAY,CAAA;QAC9B,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;QAChC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,YAAY,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,IAAsB;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAsB,EAAE,GAAoB;IAC/D,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;AACjC,CAAC"}
|
package/dist/Uuid4.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Uuid4.js","sourceRoot":"","sources":["../src/Uuid4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAGtE,MAAM,CAAC,MAAM,OAAO,GAAsC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,SAAS,GAAiD,MAAM,CAAC,GAAG,CAC/E,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,EACzB,aAAa,CACd,CAAA;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,gEAAgE;IAChE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IACjC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAEjC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AACxC,CAAC"}
|
package/dist/Uuid5.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Uuid5.js","sourceRoot":"","sources":["../src/Uuid5.ts"],"names":[],"mappings":"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"}
|
package/dist/Uuid7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Uuid7.js","sourceRoot":"","sources":["../src/Uuid7.ts"],"names":[],"mappings":"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"}
|
package/dist/UuidStringify.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const byteToHex = [];
|
|
2
|
-
for (let i = 0; i < 256; ++i) {
|
|
3
|
-
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
4
|
-
}
|
|
5
|
-
export function uuidStringify(seed) {
|
|
6
|
-
return (
|
|
7
|
-
// biome-ignore lint/style/useTemplate: Faster than template literals
|
|
8
|
-
byteToHex[seed[0]] +
|
|
9
|
-
byteToHex[seed[1]] +
|
|
10
|
-
byteToHex[seed[2]] +
|
|
11
|
-
byteToHex[seed[3]] +
|
|
12
|
-
'-' +
|
|
13
|
-
byteToHex[seed[4]] +
|
|
14
|
-
byteToHex[seed[5]] +
|
|
15
|
-
'-' +
|
|
16
|
-
byteToHex[seed[6]] +
|
|
17
|
-
byteToHex[seed[7]] +
|
|
18
|
-
'-' +
|
|
19
|
-
byteToHex[seed[8]] +
|
|
20
|
-
byteToHex[seed[9]] +
|
|
21
|
-
'-' +
|
|
22
|
-
byteToHex[seed[10]] +
|
|
23
|
-
byteToHex[seed[11]] +
|
|
24
|
-
byteToHex[seed[12]] +
|
|
25
|
-
byteToHex[seed[13]] +
|
|
26
|
-
byteToHex[seed[14]] +
|
|
27
|
-
byteToHex[seed[15]]);
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=UuidStringify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UuidStringify.js","sourceRoot":"","sources":["../src/UuidStringify.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAkB,EAAE,CAAA;AAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO;IACL,qEAAqE;IACrE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG;QACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG;QACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG;QACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG;QACH,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACpB,CAAA;AACH,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
|
package/readme.md
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# @typed/id
|
|
2
|
-
|
|
3
|
-
A TypeScript library providing common ID format generation using [Effect](https://effect.website/). This package includes implementations for UUID, NanoID, ULID, CUID2, and KSUID generation with a focus on type safety and functional programming principles.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @typed/id effect
|
|
9
|
-
# or
|
|
10
|
-
pnpm add @typed/id effect
|
|
11
|
-
# or
|
|
12
|
-
yarn add @typed/id effect
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
- 🎯 Type-safe ID generation
|
|
18
|
-
- 🔧 Built on top of Effect
|
|
19
|
-
- 🎨 Multiple ID format support:
|
|
20
|
-
- UUID (v4, v5, v7)
|
|
21
|
-
- NanoID
|
|
22
|
-
- ULID
|
|
23
|
-
- CUID2
|
|
24
|
-
- KSUID
|
|
25
|
-
- ⚡ Efficient and secure random value generation
|
|
26
|
-
- 📦 Zero dependencies (except Effect)
|
|
27
|
-
|
|
28
|
-
## Stackblitz
|
|
29
|
-
|
|
30
|
-
Check the console to see the outputs
|
|
31
|
-
|
|
32
|
-
> https://stackblitz.com/edit/vitejs-vite-eukvweq2?file=src%2Fmain.ts
|
|
33
|
-
|
|
34
|
-
## Usage
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { Effect } from 'effect'
|
|
38
|
-
import {
|
|
39
|
-
DateTimes,
|
|
40
|
-
GetRandomValues,
|
|
41
|
-
makeUuid4,
|
|
42
|
-
makeUuid5,
|
|
43
|
-
makeUuid7,
|
|
44
|
-
Uuid7State,
|
|
45
|
-
Uuid5Namespace,
|
|
46
|
-
Sha1,
|
|
47
|
-
makeNanoId,
|
|
48
|
-
makeUlid,
|
|
49
|
-
makeCuid,
|
|
50
|
-
CuidState,
|
|
51
|
-
makeKsuid,
|
|
52
|
-
} from '@typed/id'
|
|
53
|
-
|
|
54
|
-
// Generate a UUID v4 (random)
|
|
55
|
-
await makeUuid4.pipe(
|
|
56
|
-
Effect.provide(GetRandomValues.CryptoRandom),
|
|
57
|
-
Effect.flatMap(Effect.log),
|
|
58
|
-
Effect.runPromise
|
|
59
|
-
)
|
|
60
|
-
// Output: "550e8400-e29b-41d4-a716-446655440000"
|
|
61
|
-
|
|
62
|
-
// Generate a UUID v5 (namespace + name based)
|
|
63
|
-
await makeUuid5(Uuid5Namespace.URL, 'https://example.com').pipe(
|
|
64
|
-
Effect.provide([GetRandomValues.CryptoRandom, DateTimes.Default, Sha1.Default]),
|
|
65
|
-
Effect.flatMap(Effect.log),
|
|
66
|
-
Effect.runPromise
|
|
67
|
-
)
|
|
68
|
-
// Output: "2ed6657d-e927-568b-95e1-2665a8aea6a2"
|
|
69
|
-
|
|
70
|
-
// Generate a UUID v7 (time-sortable)
|
|
71
|
-
await makeUuid7.pipe(
|
|
72
|
-
Effect.provide(Uuid7State.Default),
|
|
73
|
-
Effect.provide([GetRandomValues.CryptoRandom, DateTimes.Default]),
|
|
74
|
-
Effect.flatMap(Effect.log),
|
|
75
|
-
Effect.runPromise
|
|
76
|
-
)
|
|
77
|
-
// Output: "018e7768-c0b3-7000-8000-123456789abc"
|
|
78
|
-
|
|
79
|
-
// Generate a NanoID
|
|
80
|
-
await makeNanoId.pipe(
|
|
81
|
-
Effect.provide(GetRandomValues.CryptoRandom),
|
|
82
|
-
Effect.flatMap(Effect.log),
|
|
83
|
-
Effect.runPromise
|
|
84
|
-
)
|
|
85
|
-
// Output: "V1StGXR8_Z5jdHi6B-myT"
|
|
86
|
-
|
|
87
|
-
// Generate a ULID
|
|
88
|
-
await makeUlid.pipe(
|
|
89
|
-
Effect.provide([GetRandomValues.CryptoRandom, DateTimes.Default]),
|
|
90
|
-
Effect.flatMap(Effect.log),
|
|
91
|
-
Effect.runPromise
|
|
92
|
-
)
|
|
93
|
-
// Output: "01ARZ3NDEKTSV4RRFFQ69G5FAV"
|
|
94
|
-
|
|
95
|
-
// Generate a CUID
|
|
96
|
-
await makeCuid.pipe(
|
|
97
|
-
Effect.provide(CuidState.layer('my-environment')), // Provide environment fingerprint
|
|
98
|
-
Effect.provide([GetRandomValues.CryptoRandom, DateTimes.Default]),
|
|
99
|
-
Effect.flatMap(Effect.log),
|
|
100
|
-
Effect.runPromise
|
|
101
|
-
)
|
|
102
|
-
// Output: "clh3aqnd900003b64zpka3df"
|
|
103
|
-
|
|
104
|
-
// Generate a KSUID
|
|
105
|
-
await makeKsuid.pipe(
|
|
106
|
-
Effect.provide([GetRandomValues.CryptoRandom, DateTimes.Default]),
|
|
107
|
-
Effect.flatMap(Effect.log),
|
|
108
|
-
Effect.runPromise
|
|
109
|
-
)
|
|
110
|
-
// Output: "1jIGxyVFPeR4GkCcDPQU2bXhxy9"
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## API
|
|
114
|
-
|
|
115
|
-
### UUID
|
|
116
|
-
|
|
117
|
-
- `makeUuid4`: Generates a v4 UUID (random)
|
|
118
|
-
- `makeUuid5`: Generates a v5 UUID (SHA-1 hash of namespace + name)
|
|
119
|
-
- `makeUuid7`: Generates a v7 UUID (time-sortable)
|
|
120
|
-
|
|
121
|
-
### UUID v5 Namespaces
|
|
122
|
-
|
|
123
|
-
Pre-defined namespaces for UUID v5 generation:
|
|
124
|
-
- `Uuid5Namespace.DNS`: For DNS-based UUIDs
|
|
125
|
-
- `Uuid5Namespace.URL`: For URL-based UUIDs
|
|
126
|
-
- `Uuid5Namespace.OID`: For OID-based UUIDs
|
|
127
|
-
- `Uuid5Namespace.X500`: For X.500 DN-based UUIDs
|
|
128
|
-
|
|
129
|
-
### NanoID
|
|
130
|
-
|
|
131
|
-
- `makeNanoId`: Generates a NanoID with a default length of 21 characters
|
|
132
|
-
|
|
133
|
-
### ULID
|
|
134
|
-
|
|
135
|
-
- `makeUlid`: Generates a ULID (Universally Unique Lexicographically Sortable Identifier)
|
|
136
|
-
|
|
137
|
-
### CUID
|
|
138
|
-
|
|
139
|
-
- `makeCuid`: Generates a CUID2 (Collision-resistant Unique IDentifier)
|
|
140
|
-
- `CuidState.layer(envData)`: Creates a CUID state layer with environment fingerprint
|
|
141
|
-
- `envData`: A string identifying the environment (e.g., 'browser', 'node', 'mobile-ios', uniqueProcessId())
|
|
142
|
-
- Used to help prevent collisions in distributed systems
|
|
143
|
-
- Cached and reused for efficiency
|
|
144
|
-
- Format: 24 characters, starting with a lowercase letter, followed by numbers and lowercase letters
|
|
145
|
-
- Properties:
|
|
146
|
-
- Sequential for database performance
|
|
147
|
-
- Secure from enumeration
|
|
148
|
-
- URL-safe
|
|
149
|
-
- Horizontally scalable
|
|
150
|
-
- Includes timestamp for time-based sorting
|
|
151
|
-
|
|
152
|
-
### KSUID
|
|
153
|
-
|
|
154
|
-
- `makeKsuid`: Generates a KSUID (K-Sortable Unique IDentifier)
|
|
155
|
-
- Format: 27 characters of base62 (0-9A-Za-z)
|
|
156
|
-
- Components:
|
|
157
|
-
- 32-bit timestamp (seconds since 2014-03-01)
|
|
158
|
-
- 128-bit random payload
|
|
159
|
-
- Properties:
|
|
160
|
-
- Time-sortable (lexicographically ordered by time)
|
|
161
|
-
- URL-safe (base62 encoded)
|
|
162
|
-
- Includes entropy for uniqueness
|
|
163
|
-
- Fixed size (27 characters)
|
|
164
|
-
- ~136 years of timestamp space from 2014
|
|
165
|
-
- No special character dependencies
|
|
166
|
-
|
|
167
|
-
## License
|
|
168
|
-
|
|
169
|
-
MIT
|
package/src/GetRandomValues.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import * as Context from 'effect/Context'
|
|
2
|
-
import * as Effect from 'effect/Effect'
|
|
3
|
-
import * as Layer from 'effect/Layer'
|
|
4
|
-
import * as Random from 'effect/Random'
|
|
5
|
-
|
|
6
|
-
export class GetRandomValues extends Context.Tag('GetRandomValues')<
|
|
7
|
-
GetRandomValues,
|
|
8
|
-
(length: number) => Effect.Effect<Uint8Array>
|
|
9
|
-
>() {
|
|
10
|
-
static readonly layer = (f: (length: number) => Effect.Effect<Uint8Array>) =>
|
|
11
|
-
Layer.succeed(GetRandomValues, f)
|
|
12
|
-
|
|
13
|
-
static readonly apply = (length: number) => Effect.flatMap(GetRandomValues, (f) => f(length))
|
|
14
|
-
|
|
15
|
-
static readonly PseudoRandom = this.layer((length) =>
|
|
16
|
-
Effect.gen(function* () {
|
|
17
|
-
const view = new Uint8Array(length)
|
|
18
|
-
for (let i = 0; i < length; ++i) {
|
|
19
|
-
view[i] = yield* Random.nextInt
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return view
|
|
23
|
-
}),
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
static readonly CryptoRandom = this.layer((length) =>
|
|
27
|
-
Effect.sync(() => crypto.getRandomValues(new Uint8Array(length))),
|
|
28
|
-
)
|
|
29
|
-
}
|
package/src/UuidStringify.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
const byteToHex: Array<string> = []
|
|
2
|
-
|
|
3
|
-
for (let i = 0; i < 256; ++i) {
|
|
4
|
-
byteToHex.push((i + 0x100).toString(16).slice(1))
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function uuidStringify(seed: Uint8Array): string {
|
|
8
|
-
return (
|
|
9
|
-
// biome-ignore lint/style/useTemplate: Faster than template literals
|
|
10
|
-
byteToHex[seed[0]] +
|
|
11
|
-
byteToHex[seed[1]] +
|
|
12
|
-
byteToHex[seed[2]] +
|
|
13
|
-
byteToHex[seed[3]] +
|
|
14
|
-
'-' +
|
|
15
|
-
byteToHex[seed[4]] +
|
|
16
|
-
byteToHex[seed[5]] +
|
|
17
|
-
'-' +
|
|
18
|
-
byteToHex[seed[6]] +
|
|
19
|
-
byteToHex[seed[7]] +
|
|
20
|
-
'-' +
|
|
21
|
-
byteToHex[seed[8]] +
|
|
22
|
-
byteToHex[seed[9]] +
|
|
23
|
-
'-' +
|
|
24
|
-
byteToHex[seed[10]] +
|
|
25
|
-
byteToHex[seed[11]] +
|
|
26
|
-
byteToHex[seed[12]] +
|
|
27
|
-
byteToHex[seed[13]] +
|
|
28
|
-
byteToHex[seed[14]] +
|
|
29
|
-
byteToHex[seed[15]]
|
|
30
|
-
)
|
|
31
|
-
}
|
package/src/id.test.ts
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from '@effect/vitest'
|
|
2
|
-
import { Effect, flow, TestClock } from 'effect'
|
|
3
|
-
import {
|
|
4
|
-
DateTimes,
|
|
5
|
-
GetRandomValues,
|
|
6
|
-
isUuid4,
|
|
7
|
-
isUuid5,
|
|
8
|
-
isUuid7,
|
|
9
|
-
makeNanoId,
|
|
10
|
-
makeUlid,
|
|
11
|
-
makeUuid4,
|
|
12
|
-
makeUuid5,
|
|
13
|
-
makeUuid7,
|
|
14
|
-
Sha1,
|
|
15
|
-
Uuid5Namespace,
|
|
16
|
-
Uuid7State,
|
|
17
|
-
makeCuid,
|
|
18
|
-
isCuid,
|
|
19
|
-
CuidState,
|
|
20
|
-
makeKsuid,
|
|
21
|
-
isKsuid,
|
|
22
|
-
} from './index.js'
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const makeTestValues = (length: number) => {
|
|
26
|
-
const values = new Uint8Array(length)
|
|
27
|
-
for (let i = 0; i < length; ++i) {
|
|
28
|
-
values[i] = i % 256
|
|
29
|
-
}
|
|
30
|
-
return values
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const provideTestValues = flow(
|
|
34
|
-
Effect.provide(CuidState.layer('test')),
|
|
35
|
-
Effect.provide(Uuid7State.Default),
|
|
36
|
-
Effect.provide(Sha1.Default),
|
|
37
|
-
Effect.provide(GetRandomValues.layer((length) => Effect.succeed(makeTestValues(length)))),
|
|
38
|
-
Effect.provide(DateTimes.Fixed(new Date(0))),
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
describe(__filename, () => {
|
|
42
|
-
describe('Uuid4', () => {
|
|
43
|
-
it.effect('generates a UUID v4', () =>
|
|
44
|
-
Effect.gen(function* () {
|
|
45
|
-
const id = yield* makeUuid4
|
|
46
|
-
expect(id).toMatchInlineSnapshot(`"00010203-0405-4607-8809-0a0b0c0d0e0f"`)
|
|
47
|
-
expect(id.length).toEqual(36)
|
|
48
|
-
expect(isUuid4(id)).toEqual(true)
|
|
49
|
-
}).pipe(provideTestValues),
|
|
50
|
-
)
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
describe('Uuid5', () => {
|
|
54
|
-
it.effect('generates a UUID v5', () =>
|
|
55
|
-
Effect.gen(function* () {
|
|
56
|
-
const id = yield* makeUuid5(Uuid5Namespace.DNS, 'example.com')
|
|
57
|
-
expect(id).toMatchInlineSnapshot(`"cfbff0d1-9375-5685-968c-48ce8b15ae17"`)
|
|
58
|
-
expect(id.length).toEqual(36)
|
|
59
|
-
expect(isUuid5(id)).toEqual(true)
|
|
60
|
-
}).pipe(provideTestValues),
|
|
61
|
-
)
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
describe('Uuid7', () => {
|
|
65
|
-
it.effect('generates a UUID v7', () =>
|
|
66
|
-
Effect.gen(function* () {
|
|
67
|
-
const id = yield* makeUuid7
|
|
68
|
-
expect(id).toMatchInlineSnapshot(`"00000000-0000-7030-9c20-260b0c0d0e0f"`)
|
|
69
|
-
expect(id.length).toEqual(36)
|
|
70
|
-
expect(isUuid7(id)).toEqual(true)
|
|
71
|
-
}).pipe(provideTestValues),
|
|
72
|
-
)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
describe('NanoId', () => {
|
|
76
|
-
it.effect('generates a NanoId', () =>
|
|
77
|
-
Effect.gen(function* () {
|
|
78
|
-
const id = yield* makeNanoId
|
|
79
|
-
expect(id).toMatchInlineSnapshot(`"0123456789abcdefghijk"`)
|
|
80
|
-
expect(id.length).toEqual(21)
|
|
81
|
-
}).pipe(provideTestValues),
|
|
82
|
-
)
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
describe('Ulid', () => {
|
|
86
|
-
it.effect('generates a Ulid', () =>
|
|
87
|
-
Effect.gen(function* () {
|
|
88
|
-
const id = yield* makeUlid
|
|
89
|
-
expect(id).toMatchInlineSnapshot(`"00000000000123456789ABCDEF"`)
|
|
90
|
-
expect(id.length).toEqual(26)
|
|
91
|
-
}).pipe(provideTestValues),
|
|
92
|
-
)
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
describe('Cuid', () => {
|
|
96
|
-
it.effect('generates a CUID', () =>
|
|
97
|
-
Effect.gen(function* () {
|
|
98
|
-
const id = yield* makeCuid
|
|
99
|
-
expect(id.length).toEqual(24)
|
|
100
|
-
expect(isCuid(id)).toEqual(true)
|
|
101
|
-
expect(id).toMatchInlineSnapshot(`"ai17q5mkkp8w5f2cey3lyzu5"`)
|
|
102
|
-
|
|
103
|
-
// Generate another to ensure uniqueness
|
|
104
|
-
const id2 = yield* makeCuid
|
|
105
|
-
expect(id2).not.toEqual(id)
|
|
106
|
-
expect(isCuid(id2)).toEqual(true)
|
|
107
|
-
expect(id2).toMatchInlineSnapshot(`"abeo5wmlmnjxjrnjiidlfvzp"`)
|
|
108
|
-
}).pipe(provideTestValues),
|
|
109
|
-
)
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
describe('Ksuid', () => {
|
|
113
|
-
it.effect('generates a KSUID', () =>
|
|
114
|
-
Effect.gen(function* () {
|
|
115
|
-
console.log(yield* DateTimes.now)
|
|
116
|
-
const id = yield* makeKsuid
|
|
117
|
-
expect(id.length).toEqual(27)
|
|
118
|
-
expect(isKsuid(id)).toEqual(true)
|
|
119
|
-
expect(id).toMatchInlineSnapshot(`"00000000SYW7RiJxkEgOGusQGwp"`)
|
|
120
|
-
|
|
121
|
-
yield* TestClock.adjust(1000)
|
|
122
|
-
|
|
123
|
-
console.log(yield* DateTimes.now)
|
|
124
|
-
|
|
125
|
-
// Generate another to ensure uniqueness
|
|
126
|
-
const id2 = yield* makeKsuid
|
|
127
|
-
expect(id2).not.toEqual(id)
|
|
128
|
-
expect(isKsuid(id2)).toEqual(true)
|
|
129
|
-
expect(id2).toMatchInlineSnapshot(`"000007n4UlmTXBzjUOTX3nzfyYx"`)
|
|
130
|
-
}).pipe(provideTestValues),
|
|
131
|
-
)
|
|
132
|
-
})
|
|
133
|
-
})
|