-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathuuidjs.node.txt
58 lines (47 loc) · 3.16 KB
/
uuidjs.node.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
┏━━━━━━━━━━━━┓
┃ UUIDJS ┃
┗━━━━━━━━━━━━┛
ALTERNATIVES ==> # - crypto.randomUUID() (preferred for v4): v4 only
# - uuidjs: v1|4|3|5|6|7|max
# - uses crypto.randomUUID() for v4 if available
VERSION ==> #11.1.0
#Node/browser
BNUM #NUM_ARR|UINT8ARR
v1([OPTS[, BNUM[, NUM2]]]) #Generates UUID v1 (time-based)
->STR|BNUM #OPTS:
# - node 6_NUM_ARR: fifth part "Node" (def: random)
# - clockseq NUM (0-0x3fff): fourth part "ClockSeq" (def: internal)
# - msecs NUM|DATE (def: now)
# - nsecs NUM (0-9999) (def: internal counter, not now)
# - random 16_NUM_ARR (def: auto)
# - or rng FUNC()->16_NUM_ARR. Def depends on platform:
# - node.js: uses UUID.nodeRNG, i.e. CRYPTO.randomBytes()
# - browsers: uses UUID.whatwgRNG, i.e. crypto.getRandomValues()
# - errors if not supported
#If BNUM specified, returned and written starting at position NUM2
v6([OPTS[, BNUM[, NUM2]]]) #Generates UUID v6 (time-based)
->STR|BNUM #OPTS|BNUM|NUM2: like v1()
v1ToV6('UUIDv1'[_BNUM])->'UUIDv6' #
v6ToV1('UUIDv6'[_BNUM])->'UUIDv1' #
v4([OPTS[, BNUM[, NUM2]]]) #Similar for UUIDv4 (hardware randomness, 122 bits of randomness)
->STR|BNUM #OPTS:
# - random|rng: like v1
v7([OPTS[, BNUM[, NUM2]]]) #Similar for UUIDv7 (time+random-based)
->STR|BNUM #OPTS:
# - msecs|random|rng: like v1()
# - seq NUM (0-0xffffffff):
# - 32 bits of serial + 42 bits of randomness, instead of 74 bits of randomness
# - def: random, but incremented if same OPTS.msecs
# - when max, increments OPTS.msecs by 1
v3|v5(STR|NUM_ARR, #Similar for UUIDv3|v5 (name-based MD5|SHA1)
STR2[|NUM_ARR][, BNUM[, NUM2]]) #STR is name.
->STR|BNUM #STR2 or NUM_ARR (16 bytes) is namespace UUID, which can also use UUID.v3|v5.DNS|URL
NIL #'00000000-0000-0000-0000-000000000000'
MAX #'ffffffff-ffff-ffff-ffff-ffffffffffff'
validate(VAL)->BOOL #Is a UUID
version('UUID')->1-5 #Get UUID version
parse(STR)->UINT8ARR #
stringify(UINT8ARR)->STR #
uuid [vNUM] [STR] [STR2] #CLI printing UUID
#Def vNUM is v4
#STR|STR2 is for v3|v5