{"id":19123088,"url":"https://github.com/digitalbazaar/jsonld-document-loader","last_synced_at":"2025-05-05T18:33:35.250Z","repository":{"id":35206744,"uuid":"215892364","full_name":"digitalbazaar/jsonld-document-loader","owner":"digitalbazaar","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-30T22:30:09.000Z","size":41,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-19T11:08:40.305Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalbazaar.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-10-17T21:56:31.000Z","updated_at":"2025-01-30T22:30:12.000Z","dependencies_parsed_at":"2025-04-19T03:42:10.606Z","dependency_job_id":"d360bf06-57a2-4e0a-ae2a-64ba8eb78b3f","html_url":"https://github.com/digitalbazaar/jsonld-document-loader","commit_stats":{"total_commits":38,"total_committers":6,"mean_commits":6.333333333333333,"dds":0.6842105263157895,"last_synced_commit":"96fab0523598588b7f9d636094e6695179198ba0"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fjsonld-document-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fjsonld-document-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fjsonld-document-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fjsonld-document-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalbazaar","download_url":"https://codeload.github.com/digitalbazaar/jsonld-document-loader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252553107,"owners_count":21766830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T05:24:18.014Z","updated_at":"2025-05-05T18:33:35.210Z","avatar_url":"https://github.com/digitalbazaar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON-LD Document Loader _(jsonld-document-loader)_\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/digitalbazaar/jsonld-document-loader/main.yml)](https://github.com/digitalbazaar/jsonld-document-loader/actions/workflows/main.yml)\n[![NPM Version](https://img.shields.io/npm/v/jsonld-document-loader.svg)](https://npm.im/jsonld-document-loader)\n\n\u003e A document loader API for jsonld.js.\n\n## Table of Contents\n\n- [Background](#background)\n- [Security](#security)\n- [Install](#install)\n- [Usage](#usage)\n- [Contribute](#contribute)\n- [Commercial Support](#commercial-support)\n- [License](#license)\n\n## Background\n\nTBD\n\n## Security\n\nTBD\n\n## Install\n\n- Node.js \u003e= 18 is required.\n\n### NPM\n\nTo install via NPM:\n\n```sh\nnpm install --save jsonld-document-loader\n```\n\n### Development\n\nTo install locally (for development):\n\n```sh\ngit clone https://github.com/digitalbazaar/jsonld-document-loader.git\ncd jsonld-document-loader\nnpm install\n```\n\n## Usage\n\n```js\nimport {JsonLdDocumentLoader} from 'jsonld-document-loader';\n\nconst loader = new JsonLdDocumentLoader();\n```\n\n### `addStatic(url, document)`\n\nThe `addStatic()` method allows developers to load fixed static contexts and\ndocuments, to ensure known versions and contents, without going out to the\nnetwork. The context is cloned when added.\n\nFor example, to add support for the DID Core context, the VC context, and crypto\nsuite specific contexts:\n\n```js\nimport cred from 'credentials-context';\nimport didContext from 'did-context';\nimport ed25519Ctx from 'ed25519-signature-2020-context';\n\nconst {contexts: credentialsContexts, constants: {CREDENTIALS_CONTEXT_V1_URL}} =\n  cred;\n\nconst jdl = new JsonLdDocumentLoader();\n\njdl.addStatic(ed25519Ctx.CONTEXT_URL, ed25519Ctx.CONTEXT);\n\njdl.addStatic(\n  didContext.constants.DID_CONTEXT_URL,\n  didContext.contexts.get(didContext.constants.DID_CONTEXT_URL)\n);\n\njdl.addStatic(\n  CREDENTIALS_CONTEXT_V1_URL,\n  credentialsContexts.get(CREDENTIALS_CONTEXT_V1_URL)\n);\n\nconst documentLoader = jdl.build();\n// Pass to jsonld, jsonld-signatures, vc-js and similar libraries\n```\n\n### `addDocuments({documents})`\n\nUses `addStatic()` to add many documents from an iterable object that returns\nvalues of the form `[url, document]`. Can be used directly with a Map\nassociating URLs to documents.\n\n```js\nimport {contexts as credContexts} from '@digitalbazaar/credentials-context';\n\nconst jdl = new JsonLdDocumentLoader();\n\njdl.addDocuments({documents: credContexts});\n```\n\n### `setDidResolver()`\n\nTo add support for resolving DIDs and DID-related key ids:\n\n```js\nimport * as didKey from '@digitalbazaar/did-method-key';\nimport {CachedResolver} from '@digitalbazaar/did-io';\n\nconst cachedResolver = new CachedResolver();\nconst jdl = new JsonLdDocumentLoader();\n\ncachedResolver.use(didKey.driver());\n\njdl.setDidResolver(cachedResolver);\n\n// Now you can resolve did:key type DIDs and key objects\nconst verificationKeyId = 'did:key:z6MkuBLrjSGt1PPADAvuv6rmvj4FfSAfffJotC6K8ZEorYmv#z6MkuBLrjSGt1PPADAvuv6rmvj4FfSAfffJotC6K8ZEorYmv';\nawait jdl.documentLoader(verificationKeyId);\n// -\u003e\n{\n  documentUrl: 'did:key:z6MkuBLrjSGt1PPADAvuv6rmvj4FfSAfffJotC6K8ZEorYmv#z6MkuBLrjSGt1PPADAvuv6rmvj4FfSAfffJotC6K8ZEorYmv',\n  document: {\n    \"@context\": \"https://w3id.org/security/suites/ed25519-2020/v1\",\n    \"type\": \"Ed25519VerificationKey2020\",\n    \"controller\": \"did:key:z6MkuBLrjSGt1PPADAvuv6rmvj4FfSAfffJotC6K8ZEorYmv\",\n    \"publicKeyMultibase\": \"zFj5p9C2Sfqth6g6DEXtw5dWFqrtpFn4TCBBPJHGnwKzY\",\n    // ...\n  }\n}\n```\n\n### `setProtocolHandler()`\n\nYou can add support for loading `https`-based JSON-LD contexts (a common\ncase) by using your own loader or the one that comes with the\n[jsonld](https://www.npmjs.com/package/jsonld) package:\n\n```js\nimport * as jsonld from 'jsonld';\n\njdl.setProtocolHandler({protocol: 'https', handler: jsonld.documentLoader});\n```\n\nYou can also add support for a custom protocol handler:\n\n```js\nconst customHandler = {\n  get({url}) {\n    // return document\n  }\n}\n\njdl.setProtocolHandler({protocol: 'ipfs', handler: customHandler});\n```\n\n## Contribute\n\nSee [the contribute file](https://github.com/digitalbazaar/bedrock/blob/master/CONTRIBUTING.md)!\n\nPRs accepted.\n\nIf editing the Readme, please conform to the\n[standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## Commercial Support\n\nCommercial support for this library is available upon request from\nDigital Bazaar: support@digitalbazaar.com\n\n## License\n\n[New BSD License (3-clause)](LICENSE) © Digital Bazaar\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fjsonld-document-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalbazaar%2Fjsonld-document-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fjsonld-document-loader/lists"}