Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F101421122
v35.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Feb 10, 07:13
Size
1 KB
Mime Type
text/x-java
Expires
Wed, Feb 12, 07:13 (1 d, 10 h)
Engine
blob
Format
Raw Data
Handle
24159373
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
v35.js
View Options
import
stringify
from
'./stringify.js'
;
import
parse
from
'./parse.js'
;
function
stringToBytes
(
str
)
{
str
=
unescape
(
encodeURIComponent
(
str
));
// UTF8 escape
const
bytes
=
[];
for
(
let
i
=
0
;
i
<
str
.
length
;
++
i
)
{
bytes
.
push
(
str
.
charCodeAt
(
i
));
}
return
bytes
;
}
export
const
DNS
=
'6ba7b810-9dad-11d1-80b4-00c04fd430c8'
;
export
const
URL
=
'6ba7b811-9dad-11d1-80b4-00c04fd430c8'
;
export
default
function
(
name
,
version
,
hashfunc
)
{
function
generateUUID
(
value
,
namespace
,
buf
,
offset
)
{
if
(
typeof
value
===
'string'
)
{
value
=
stringToBytes
(
value
);
}
if
(
typeof
namespace
===
'string'
)
{
namespace
=
parse
(
namespace
);
}
if
(
namespace
.
length
!==
16
)
{
throw
TypeError
(
'Namespace must be array-like (16 iterable integer values, 0-255)'
);
}
// Compute hash of namespace and value, Per 4.3
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
// hashfunc([...namespace, ... value])`
let
bytes
=
new
Uint8Array
(
16
+
value
.
length
);
bytes
.
set
(
namespace
);
bytes
.
set
(
value
,
namespace
.
length
);
bytes
=
hashfunc
(
bytes
);
bytes
[
6
]
=
bytes
[
6
]
&
0x0f
|
version
;
bytes
[
8
]
=
bytes
[
8
]
&
0x3f
|
0x80
;
if
(
buf
)
{
offset
=
offset
||
0
;
for
(
let
i
=
0
;
i
<
16
;
++
i
)
{
buf
[
offset
+
i
]
=
bytes
[
i
];
}
return
buf
;
}
return
stringify
(
bytes
);
}
// Function#name is not settable on some platforms (#270)
try
{
generateUUID
.
name
=
name
;
// eslint-disable-next-line no-empty
}
catch
(
err
)
{}
// For CommonJS default export support
generateUUID
.
DNS
=
DNS
;
generateUUID
.
URL
=
URL
;
return
generateUUID
;
}
Event Timeline
Log In to Comment