Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.js → .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module.exports = {
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'prettier'],
parserOptions: {
project: './tsconfig.json'
project: './tsconfig.esm.json'
},
ignorePatterns: ['dist/', 'test'],
rules: {
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# security-document-loader Changelog

## 7.0.0 - 2025-04-30
### Changed
- switch to `@digitalcredentials/did-method-web` from `@interop/did-web-resolver` for did-web resolution
- rework build process
- update dependencies
- **BREAKING**: remove cjs build

## 6.0.1 - 2024-11-12
### Fixed
- Fix Typescript types declaration ([PR #17](https://github.com/digitalcredentials/security-document-loader/pull/17/files)).
Expand Down
12 changes: 0 additions & 12 deletions build-dist.sh

This file was deleted.

File renamed without changes.
39 changes: 14 additions & 25 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,36 +1,30 @@
{
"name": "@digitalcredentials/security-document-loader",
"description": "A secure and convenient JSON-LD document loader for Node.js, browsers, and React Native.",
"version": "6.0.1",
"version": "7.0.0",
"scripts": {
"build": "npm run clear && tsc -p tsconfig.json && ./build-dist.sh",
"build-esm": "tsc -p tsconfig.esm.json",
"build-types": "tsc -p tsconfig.types.json",
"build-test": "tsc -p tsconfig.test.json",
"build": "npm run clear && npm run build-types && npm run build-esm",
"clear": "rimraf dist/*",
"lint": "eslint .",
"lint:fix": "eslint --fix .",
"prepare": "npm run build",
"rebuild": "npm run clear && npm run build",
"test": "npm run lint && npm run test-node",
"test-karma": "karma start karma.conf.js",
"test-node": "cross-env NODE_ENV=test TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register 'test/*.ts'"
"test-node": "npm run build-test && mocha dist/test/*.spec.js",
"test-karma": "karma start karma.conf.cjs"
},
"files": [
"dist",
"src",
"README.md",
"LICENSE.md"
],
"main": "dist/index.js",
"module": "dist/esm/index.js",
"browser": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/esm/index.js",
"types": "./dist/index.d.ts"
},
"./package.json": "./package.json"
},
"type": "module",
"exports": "./dist/index.js",
"types": "./dist/index.d.ts",
"dependencies": {
"@digitalbazaar/data-integrity-context": "^2.0.0",
"@digitalbazaar/vc-bitstring-status-list-context": "^1.0.0",
Expand All @@ -39,12 +33,13 @@
"@digitalcredentials/crypto-ld": "^7.0.2",
"@digitalcredentials/dcc-context": "^1.0.0",
"@digitalcredentials/did-io": "^1.0.2",
"@digitalcredentials/did-method-key": "^2.0.3",
"@digitalcredentials/did-method-key": "^3.0.0",
"@digitalcredentials/did-method-web": "^1.1.0",
"@digitalcredentials/ed25519-multikey": "^1.4.0",
"@digitalcredentials/ed25519-verification-key-2020": "^3.2.2",
"@digitalcredentials/http-client": "^5.0.1",
"@digitalcredentials/open-badges-context": "^2.1.0",
"@digitalcredentials/x25519-key-agreement-key-2020": "^3.0.0",
"@interop/did-web-resolver": "^5.0.0",
"credentials-context": "^2.0.0",
"did-context": "^3.1.1",
"ed25519-signature-2020-context": "^1.1.0",
Expand All @@ -53,6 +48,7 @@
"x25519-key-agreement-2020-context": "^1.0.0"
},
"devDependencies": {
"@npmcli/package-json": "^6.1.1",
"@types/chai": "^4.3.3",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.0",
Expand Down Expand Up @@ -84,13 +80,6 @@
"publishConfig": {
"access": "public"
},
"mocha": {
"require": "ts-node/register",
"extension": [
"ts"
],
"spec": "test/**/*.ts"
},
"engines": {
"node": ">=16.0"
},
Expand Down
2 changes: 2 additions & 0 deletions src/declarations.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ declare module '@digitalcredentials/vc';
declare module '@digitalbazaar/vc-bitstring-status-list-context';
declare module '@digitalcredentials/vc-status-list';
declare module '@digitalbazaar/vc-status-list-context';
declare module '@digitalcredentials/did-method-web';
declare module '@digitalcredentials/ed25519-multikey';
declare module '@digitalcredentials/vpqr';
declare module '@digitalbazaar/data-integrity-context';
declare module '@digitalcredentials/ed25519-verification-key-2020';
Expand Down
32 changes: 19 additions & 13 deletions src/documentLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,43 @@
* Copyright (c) 2021 Interop Alliance and Dmitri Zagidulin. All rights reserved.
*/
import * as didKey from '@digitalcredentials/did-method-key';
import * as didWeb from '@interop/did-web-resolver';
import * as didWeb from '@digitalcredentials/did-method-web';
import * as vc2Context from '@digitalcredentials/credentials-v2-context';
import * as vcBitstringStatusListContext from '@digitalbazaar/vc-bitstring-status-list-context';
import vc1Context from 'credentials-context';
import vcStatusListContext from '@digitalbazaar/vc-status-list-context';
import dataIntegrityContext from '@digitalbazaar/data-integrity-context';
import { Ed25519VerificationKey2020 }
from '@digitalcredentials/ed25519-verification-key-2020';
import { X25519KeyAgreementKey2020 }
from '@digitalcredentials/x25519-key-agreement-key-2020';
import * as Ed25519Multikey from '@digitalcredentials/ed25519-multikey';
// import { Ed25519VerificationKey2020 }
// from '@digitalcredentials/ed25519-verification-key-2020';
// import { X25519KeyAgreementKey2020 }
// from '@digitalcredentials/x25519-key-agreement-key-2020';
import { CachedResolver } from '@digitalcredentials/did-io';
import dccContext from '@digitalcredentials/dcc-context';
import didContext from 'did-context';
import ed25519Context from 'ed25519-signature-2020-context';
import x25519Context from 'x25519-key-agreement-2020-context';
import { JsonLdDocumentLoader } from 'jsonld-document-loader';
import { CryptoLD } from '@digitalcredentials/crypto-ld';
import obContext from '@digitalcredentials/open-badges-context';
import { httpClient } from '@digitalcredentials/http-client';
import { parseResponseBody } from './parseResponse';
import { parseResponseBody } from './parseResponse.js';

const cryptoLd = new CryptoLD();
cryptoLd.use(Ed25519VerificationKey2020);
cryptoLd.use(X25519KeyAgreementKey2020);
const didWebDriver = didWeb.driver({ cryptoLd });

const didKeyDriver = didKey.driver();
const resolver = new CachedResolver();
const didKeyDriver = didKey.driver();
const didWebDriver = didWeb.driver();
resolver.use(didKeyDriver);
resolver.use(didWebDriver);

didWebDriver.use({
multibaseMultikeyHeader: 'z6Mk',
fromMultibase: Ed25519Multikey.from
});

didKeyDriver.use({
multibaseMultikeyHeader: 'z6Mk',
fromMultibase: Ed25519Multikey.from
});

export const httpClientHandler = {
/**
* @param {object} options - Options hashmap.
Expand Down
3 changes: 2 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*!
* Copyright (c) 2021 Interop Alliance and Dmitri Zagidulin. All rights reserved.
*/
export { securityLoader, httpClientHandler } from './documentLoader'
export { httpClientHandler, securityLoader } from './documentLoader.js'

19 changes: 18 additions & 1 deletion test/documentLoader.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { expect } from 'chai'
import { httpClientHandler, securityLoader } from '../src';
import { httpClientHandler, securityLoader } from '../src/index.js';

describe('documentLoader', () => {
it('should load a document', async () => {
Expand Down Expand Up @@ -31,6 +31,23 @@ describe('documentLoader', () => {
const result = await documentLoader(url);
expect(result.document).to.exist;
});

it('should load a did:web document from web', async () => {
const documentLoader = securityLoader({fetchRemoteContexts: true}).build();
const url = 'https://digitalcredentials.github.io/dcc-did-web/did.json';
const result = await documentLoader(url);
expect(result.document).to.exist;
expect(result.document.assertionMethod.type === 'Ed25519VerificationKey2020')
});

it('should load a multikey did:web document from web', async () => {
const documentLoader = securityLoader({fetchRemoteContexts: true}).build();
const url = 'https://digitalcredentials.github.io/dcc-did-web/multikey/did.json';
const result = await documentLoader(url);
expect(result.document).to.exist;
expect(result.document.verificationMethod.type === 'Multkey')
});


it('supports beta OBv3 context', async () => {
const load = securityLoader().build()
Expand Down
24 changes: 24 additions & 0 deletions tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"compilerOptions": {
"strict": true,
"target": "es2022",
"lib": ["es2022", "dom"],
"module": "es2022",
"moduleResolution": "nodenext",
"outDir": "dist",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": true,
"baseUrl": ".",
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"resolveJsonModule": true
},
"ts-node": { "files": true },
"include": [
"src/**/*",
".eslintrc.js",
"karma.conf.js"
],
"exclude": ["node_modules", "dist", "test"]
}
86 changes: 0 additions & 86 deletions tsconfig.json

This file was deleted.

20 changes: 20 additions & 0 deletions tsconfig.test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"compilerOptions": {
"strict": true,
"target": "es2022",
"lib": ["es2022", "dom"],
"module": "es2022",
"moduleResolution": "nodenext",
"outDir": "dist",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": true,
"baseUrl": ".",
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"resolveJsonModule": true
},
"ts-node": {"files": true},
"include": ["src/**/*", "test/**/*"],
"exclude": ["node_modules", "dist"]
}
22 changes: 22 additions & 0 deletions tsconfig.types.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"compilerOptions": {
"strict": true,
"target": "es2022",
"lib": ["es2022", "dom"],
"module": "es2022",
"moduleResolution": "nodenext",
"outDir": "dist",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": true,
"baseUrl": ".",
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"declaration": true,
"emitDeclarationOnly": true,
"declarationDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "test"]
}