@allmaps/id
v1.0.0-beta.30
Published
IDs for Allmaps
Downloads
333
Maintainers
Readme
@allmaps/id
Uses the SHA-1 algorithm to generate IDs from strings, random IDs from UUIDs and checksums from JSON objects.
Allmaps uses this module to create IDs from IIIF URIs. For example:
- Given the following manifest URL: https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/,
- The output of the
generateId
function will be:6f5a7b547c8f6fbe
, - We can use this ID to lookup the Georeference Annotation for the georeferenced maps in this manifest using Allmaps API: https://annotations.allmaps.org/manifests/6f5a7b547c8f6fbe.
To see @allmaps/id in action, view this Observable notebook.
Usage
This is an ESM-only module that works in browsers and Node.js.
Node.js:
The Node.js version of @allmaps/id usescrypto.createHash()
and crypto.randomUUID()
from the crypto
module. First, run npm install @allmaps/id
.
import { generateId } from '@allmaps/id'
const url = 'https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/'
const id = await generateId(url)
// id = '6f5a7b547c8f6fbe'
Browser:
The browser version of @allmaps/id uses the SubtleCrypto.digest()
and Crypto.randomUUID()
Web APIs.
<script type="module">
import { generateId } from 'https://esm.run/@allmaps/id'
const url =
'https://orka.bibliothek.uni-kassel.de/viewer/rest/iiif/manifests/1535113582549/manifest/'
const id = await generateId(url)
console.log(id)
</script>
CLI
Generating Allmaps IDs is also possible using the Allmaps CLI.
For example:
echo https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/ | allmaps id
API
Table of Contents
generateHash
Computes SHA-1 hash of input string.
Parameters
str
string Input string.
Returns string SHA-1 hash of str
.
generateId
Generates an ID from a string using the SHA-1 algorithm. Given the same input, the ID will always be the same.
Parameters
str
string Input string.length
number? Length of returned hash. The maximum length of the hash is 40 characters. The default length is 16. (optional, default16
)
Returns Promise<string> First length
characters of the SHA-1 hash of str
.
generateRandomId
Generates a random ID.
Parameters
length
number? Length of returned hash. The maximum length of the hash is 40 characters.
Returns Promise<string> First length
characters of the SHA-1 hash of a random UUID.
generateChecksum
Generates a checksum of a JSON object.
Parameters
obj
Object JSON object.length
number? Length of returned hash. The maximum length of the hash is 40 characters.
Returns Promise<string> First length
characters of the SHA-1 hash of sorted and serialized version of obj
.