IDs for Allmaps
npm install @allmaps/idUses 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.
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.
``js`
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.
`html`
Generating Allmaps IDs is also possible using the Allmaps CLI.
For example:
`sh`
echo https://digital.zlb.de/viewer/api/v1/records/34231682/manifest/ | allmaps id
MIT
Generates a checksum of a JSON object.
###### Parameters
* obj (unknown)length
* JSON object.
* (number | undefined)
* Length of returned hash. The maximum length of the hash is 40 characters.
###### Returns
First length characters of the SHA-1 hash of sorted and serialized version of obj (Promise).
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)length
* Input string
* (number | undefined)
* Length of returned hash. The maximum length of the hash is 40 characters. The default length is 16.
###### Returns
First length characters of the SHA-1 hash of str (Promise).
Generates a random ID.
###### Parameters
* length (number | undefined)
* Length of returned hash. The maximum length of the hash is 40 characters.
###### Returns
First length characters of the SHA-1 hash of a random UUID (Promise