# @transmute/jsonld-document-loader

> ``` npm i @transmute/jsonld-document-loader --save ```

Latest version **0.7.0-unstable.82** (published 2023-12-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @transmute/jsonld-document-loader
pnpm add @transmute/jsonld-document-loader
yarn add @transmute/jsonld-document-loader
bun add @transmute/jsonld-document-loader
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.7.0-unstable.82 |
| Published | 2023-12-06 |
| First published | 2020-07-26 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16 |
| Dependencies | 1 |
| Unpacked size | 289 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 55 |
| Author | Orie Steele |
| Maintainers | ipbyrne, or13, transmute-ci |

## Links

- npm: https://www.npmjs.com/package/@transmute/jsonld-document-loader
- Repository: https://github.com/transmute-industries/verifiable-data
- Homepage: https://github.com/transmute-industries/verifiable-data/tree/main/packages/jsonld-document-loader
- Issues: https://github.com/transmute-industries/verifiable-data/issues
- npm.io page: https://npm.io/package/@transmute/jsonld-document-loader

## Dependencies (1)

- [factory.ts](https://npm.io/package/factory.ts.md) ^1.0.0

## Recent versions

- 0.7.0-unstable.82 (latest) — 2023-12-06
- 0.7.0-unstable.81 — 2023-06-10
- 0.7.0-unstable.80 — 2023-01-24
- 0.7.0-unstable.79 — 2023-01-17
- 0.7.0-unstable.78 — 2023-01-17
- 0.7.0-unstable.77 — 2022-12-16
- 0.7.0-unstable.76 — 2022-12-13
- 0.7.0-unstable.75 — 2022-12-09
- 0.7.0-unstable.74 — 2022-12-09
- 0.7.0-unstable.73 — 2022-12-06
- 0.7.0-unstable.72 — 2022-12-06
- 0.7.0-unstable.71 — 2022-11-28
- 0.7.0-unstable.70 — 2022-10-31
- 0.7.0-unstable.69 — 2022-10-31
- 0.7.0-unstable.68 — 2022-10-29
- … 18 more at https://npm.io/package/@transmute/jsonld-document-loader/versions

## README

### @transmute/jsonld-document-loader

```
npm i @transmute/jsonld-document-loader --save
```

Learn more about [Verifable Data](https://github.com/transmute-industries/verifiable-data).

## Usage

### With Static Context

```ts
import { documentLoaderFactory } from "@transmute/jsonld-document-loader";
const documentLoader = documentLoaderFactory.build({
  ["https://w3id.org/traceability/v1"]: {
    "@context": {
      "@version": 1.1,
      "@vocab": "https://w3id.org/traceability/#undefinedTerm",
      id: "@id",
      type: "@type",
      name: "https://schema.org/name",
      description: "https://schema.org/description",
      identifier: "https://schema.org/identifier",
      image: {
        "@id": "https://schema.org/image",
        "@type": "@id",
      },
    },
  },
});
const result = await documentLoader("https://w3id.org/traceability/v1");
// {
//   "document": {
//     "@context": {
//       "@version": 1.1,
//       "@vocab": "https://w3id.org/traceability/#undefinedTerm",
//       "id": "@id",
//       "type": "@type",
//       ...
//     }
//   }
// }
```

### With Dynamic Context

```ts
import axios from "axios";
import { documentLoaderFactory, Url } from "@transmute/jsonld-document-loader";
const documentLoader = documentLoaderFactory.build({
  ["https://w3id.org/rebase/v1"]: async (iri: Url) => {
    const { data } = await axios.get(iri);
    return data;
  },
});
const result = await documentLoader("https://w3id.org/rebase/v1");
// {
//   "document": {
//     "@context": {
//       "@version": 1.1,
//       "@vocab": "https://w3id.org/rebase#undefined-term",
//       "id": "@id",
//       "type": "@type",
//       ...
//     }
//   }
// }
```

### Resolve DID Document with remote did resolver

```ts
import axios from "axios";
import { documentLoaderFactory, Did } from "@transmute/jsonld-document-loader";
const documentLoader = documentLoaderFactory.build({
  ["did:key"]: async (did: Did) => {
    const endpoint = `https://api.did.actor/api/identifiers/${did}`;
    const { data } = await axios.get(endpoint);
    return data.didDocument;
  },
});
const result = await documentLoader(
  "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn"
);
// {
//   "document": {
//     "@context": [
//       "https://www.w3.org/ns/did/v1",
//       "https://w3id.org/security/suites/jws-2020/v1"
//     ],
//     "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
//     "verificationMethod": [
//       {
//         "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
//         "type": "JsonWebKey2020",
//         "controller": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
//         "publicKeyJwk": {
//           "kty": "OKP",
//           "crv": "Ed25519",
//           "x": "0-e2i2_Ua1S5HbTYnVB0lj2Z2ytXu2-tYmDFf8f5NjU"
//         }
//       }
//      ...
//   }
// }
```

### DID Dereference without Context

```ts
import axios from "axios";
import {
  documentLoaderFactory,
  DidUrl,
} from "@transmute/jsonld-document-loader";
const documentLoader = documentLoaderFactory.build({
  ["did:key"]: async (didUrl: DidUrl) => {
    const endpoint = `https://api.did.actor/api/identifiers/${didUrl}`;
    const { data } = await axios.get(endpoint);
    return data.didDocument;
  },
});
const result = await documentLoader(
  "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn"
);
// {
//   document: {
//     id: 'did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn',
//     type: 'JsonWebKey2020',
//     controller: 'did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn',
//     publicKeyJwk: {
//       kty: 'OKP',
//       crv: 'Ed25519',
//       x: '0-e2i2_Ua1S5HbTYnVB0lj2Z2ytXu2-tYmDFf8f5NjU'
//     }
//   }
// }
```

### DID Dereference with Context

```ts
import axios from "axios";
import {
  documentLoaderFactory,
  DidUrl,
} from "@transmute/jsonld-document-loader";
const documentLoader = documentLoaderFactory.build({
  ["did:key"]: async (didUrl: DidUrl) => {
    const endpoint = `https://api.did.actor/api/identifiers/${didUrl}`;
    const { data } = await axios.get(endpoint);
    return data.didDocument;
  },
});
const result = await documentLoader(
  "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
  {
    accept: "application/ld+json",
  }
);
// {
//   document: {
//     '@context': [
//       'https://www.w3.org/ns/did/v1',
//       'https://w3id.org/security/suites/jws-2020/v1'
//     ],
//     id: 'did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn',
//     type: 'JsonWebKey2020',
//     controller: 'did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn',
//     publicKeyJwk: {
//       kty: 'OKP',
//       crv: 'Ed25519',
//       x: '0-e2i2_Ua1S5HbTYnVB0lj2Z2ytXu2-tYmDFf8f5NjU'
//     }
//   }
// }
```

---
_Source: https://npm.io/package/@transmute/jsonld-document-loader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
