@typed/id 0.17.2 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/Ids.d.ts +72 -0
- package/dist/Ids.d.ts.map +1 -0
- package/dist/Ids.js +52 -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 +25 -32
- package/src/Cuid.ts +87 -100
- package/src/DateTimes.ts +22 -26
- package/src/Id.test.ts +231 -0
- package/src/Ids.ts +128 -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/.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
- package/tsconfig.json +0 -26
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
|
-
})
|
package/tsconfig.json
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "bundler",
|
|
6
|
-
"lib": [
|
|
7
|
-
"ES2022"
|
|
8
|
-
],
|
|
9
|
-
"strict": true,
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"skipLibCheck": true,
|
|
12
|
-
"forceConsistentCasingInFileNames": true,
|
|
13
|
-
"declaration": true,
|
|
14
|
-
"sourceMap": true,
|
|
15
|
-
"outDir": "dist",
|
|
16
|
-
"rootDir": "src"
|
|
17
|
-
},
|
|
18
|
-
"include": [
|
|
19
|
-
"src/**/*"
|
|
20
|
-
],
|
|
21
|
-
"exclude": [
|
|
22
|
-
"node_modules",
|
|
23
|
-
"dist",
|
|
24
|
-
"**/*.test.ts"
|
|
25
|
-
]
|
|
26
|
-
}
|