@tangle-js/ld-proofs
Version:
Linked Data Proofs on the Tangle. Powered by IOTA Identity & IOTA Streams
68 lines • 6.1 kB
JavaScript
/* eslint-disable jsdoc/require-jsdoc */
import LdProofError from "../errors/ldProofError.mjs";
import LdProofErrorNames from "../errors/ldProofErrorNames.mjs";
import { LinkedDataProofTypes } from "../models/linkedDataProofTypes.mjs";
export default class JsonHelper {
static getDocument(doc) {
if ((typeof doc !== "string" && typeof doc !== "object") || Array.isArray(doc)) {
throw new LdProofError(LdProofErrorNames.INVALID_DATA_TYPE, "Please provide a Javascript object or string in JSON format");
}
let document;
if (typeof doc === "string") {
try {
document = JSON.parse(doc);
}
catch {
throw new LdProofError(LdProofErrorNames.INVALID_DATA_TYPE, "Invalid JSON Format");
}
}
else {
document = JSON.parse(JSON.stringify(doc));
}
return document;
}
static getSignedDocument(doc) {
const result = this.getDocument(doc);
if (!result.proof) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON document does not include a Linked Data Signature");
}
return result;
}
static getJsonLdDocument(doc) {
const result = this.getDocument(doc);
if (!result["@context"]) {
throw new LdProofError(LdProofErrorNames.INVALID_DATA_TYPE, "Not a JSON-LD document. Use 'signJson' instead");
}
return result;
}
static getSignedJsonLdDocument(doc) {
const result = this.getJsonLdDocument(doc);
if (!result.proof) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON-LD document does not include a Linked Data Signature");
}
return result;
}
static getAnchoredJsonLdDocument(doc) {
const result = this.getJsonLdDocument(doc);
if (!result.proof) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON document does not include a proof");
}
const proofDetails = result.proof;
if (proofDetails.type !== LinkedDataProofTypes.IOTA_LD_PROOF_2021) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON document does not include an IOTA Linked Data Proof");
}
return result;
}
static getAnchoredDocument(doc) {
const result = this.getDocument(doc);
if (!result.proof) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON document does not include a proof");
}
const proofDetails = result.proof;
if (proofDetails.type !== LinkedDataProofTypes.IOTA_LD_PROOF_2021) {
throw new LdProofError(LdProofErrorNames.JSON_DOC_NOT_SIGNED, "The provided JSON document does not include an IOTA Linked Data Proof");
}
return result;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbkhlbHBlci5tanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9qc29uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUV4QyxPQUFPLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLGlCQUFpQixNQUFNLDZCQUE2QixDQUFDO0FBSzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sVUFBVTtJQUNwQixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQXFDO1FBQzNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1RSxNQUFNLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUN0RCw2REFBNkQsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsSUFBSSxRQUFRLENBQUM7UUFFYixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixJQUFJO2dCQUNBLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzlCO1lBQUMsTUFBTTtnQkFDSixNQUFNLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUN0RCxxQkFBcUIsQ0FBQyxDQUFDO2FBQzlCO1NBQ0o7YUFBTTtZQUNILFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sUUFBeUIsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQXFDO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUN4RCxxRUFBcUUsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsT0FBTyxNQUE2QixDQUFDO0lBQ3pDLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBcUM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQ3RELGdEQUFnRCxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQXFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNmLE1BQU0sSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQ3hELHdFQUF3RSxDQUFDLENBQUM7U0FDakY7UUFFRCxPQUFPLE1BQTZCLENBQUM7SUFDekMsQ0FBQztJQUVNLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFxQztRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUN4RCxxREFBcUQsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQXlCLENBQUM7UUFFdEQsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFO1lBQy9ELE1BQU0sSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQ3hELHVFQUF1RSxDQUFDLENBQUM7U0FDaEY7UUFFRCxPQUFPLE1BQStCLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFxQztRQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2YsTUFBTSxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFDeEQscURBQXFELENBQUMsQ0FBQztTQUM5RDtRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUF5QixDQUFDO1FBRXRELElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUMvRCxNQUFNLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUN4RCx1RUFBdUUsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsT0FBTyxNQUErQixDQUFDO0lBQzNDLENBQUM7Q0FDSiJ9