Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
c1361cd
Initial Openid4VC implementation (#706)
erbenjak Dec 2, 2025
33ae42b
Undo dockerfile changes (#770)
jkoenig134 Dec 2, 2025
552f567
Merge branch 'main' into release/openid4vc
jkoenig134 Dec 3, 2025
8dca8ab
Merge branch 'main' into release/openid4vc
jkoenig134 Dec 5, 2025
1c52ef1
Merge branch 'main' into release/openid4vc
jkoenig134 Dec 5, 2025
46ae324
Tests are not running because of missing dependencies (#776)
jkoenig134 Dec 5, 2025
39d116a
Transfer credential offers over requests (#778)
jkoenig134 Dec 5, 2025
e29e5c3
Merge branch 'main' into release/openid4vc
britsta Dec 8, 2025
9248c90
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 9, 2025
4bc2be5
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 9, 2025
e49d3f6
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 10, 2025
da5ee31
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 10, 2025
9f6d0ba
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 11, 2025
b3a1f8d
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 11, 2025
79103e5
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 11, 2025
fc0e0a7
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 12, 2025
3484a7a
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 12, 2025
1ba2165
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 12, 2025
f7b36a7
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 13, 2025
070efe3
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 14, 2025
101c182
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 15, 2025
6369729
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 16, 2025
b57c493
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 17, 2025
b004e72
Merge branch 'main' into release/openid4vc
jkoenig134 Dec 19, 2025
2c217e6
Bump runtime (#799)
jkoenig134 Dec 19, 2025
5aa9e77
Merge branch 'main' into release/openid4vc
mergify[bot] Dec 20, 2025
f598a37
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 7, 2026
de7f5e0
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 7, 2026
73e2c22
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 7, 2026
89bff0b
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 9, 2026
d4e10da
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 12, 2026
9c2cb7d
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 12, 2026
e6b5272
Bump runtime to 7.3.0-openid4vc.2 (#808)
Magnus-Kuhn Jan 12, 2026
8d72294
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 13, 2026
575efe8
Merge branch 'main' into release/openid4vc
mergify[bot] Jan 14, 2026
6cf6e69
Merge branch 'main' into release/openid4vc
Milena-Czierlinski Feb 10, 2026
ce0c620
Merge branch 'main' into release/openid4vc
mergify[bot] Feb 11, 2026
a3069ac
Merge branch 'main' into release/openid4vc
mergify[bot] Feb 12, 2026
06e95bc
Merge branch 'main' into release/openid4vc
mergify[bot] Feb 12, 2026
2e16ac8
Merge branch 'main' into release/openid4vc
mergify[bot] Feb 13, 2026
6cca35c
Merge branch 'main' into release/openid4vc
mergify[bot] Feb 14, 2026
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
4 changes: 2 additions & 2 deletions .ci/runChecks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ npm run lint:eslint
npm run lint:prettier

# auditing
npx license-check --ignoreRegex "@nmshd/*"
npx better-npm-audit audit
npx license-check --ignoreRegex "@nmshd/.*|@sphereon/kmp-mdoc-core@0\.2\..*|credentials-context@2\..*|sjcl@1\..*"
npx better-npm-audit audit --exclude=1112030
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ WORKDIR /usr/app
COPY package.json package-lock.json tsconfig.json tsconfig.publish.json ./
COPY packages/types/package.json packages/types/tsconfig.json packages/types/
COPY .ci .ci
COPY patches patches

RUN npm ci
COPY src src
Expand All @@ -24,6 +25,7 @@ WORKDIR /usr/app

COPY package.json package-lock.json ./
COPY packages/types/package.json packages/types/
COPY patches patches

RUN npm --prefix packages/types version --no-git-tag-version $VERSION

Expand Down
4,819 changes: 3,976 additions & 843 deletions package-lock.json

Large diffs are not rendered by default.

30 changes: 25 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"copy-additional-files": "cpx \"src/**/*.{json,yml,ico}\" dist",
"copy-additional-files:watch": "cpx \"src/**/*.{json,yml,ico}\" dist --watch",
"generate:connectorConfigSchema": "npx ts-json-schema-generator -p ./src/jsonSchemas/connectorConfig.ts -o ./src/jsonSchemas/connectorConfig.json -t \"ConnectorConfig\" --no-top-ref && prettier -w src/jsonSchemas/connectorConfig.json",
"postinstall": "npx patch-package && echo 'Postinstall done.'",
"lint": "npm run lint:tsc && npm run lint:prettier && npm run lint:eslint",
"lint:eslint": "eslint",
"lint:prettier": "prettier --check .",
Expand Down Expand Up @@ -57,13 +58,29 @@
],
"testTimeout": 60000,
"transform": {
"^.+\\.ts$": [
"^.+\\.(t|j)s$": [
"ts-jest",
{
"tsconfig": "test/tsconfig.json"
}
],
"^.+\\.mjs$": [
"babel-jest",
{
"presets": [
[
"@babel/preset-env",
{
"modules": "commonjs"
}
]
]
}
]
}
},
"transformIgnorePatterns": [
"<rootDir>/node_modules/(?!(@noble|@stablelib|@digitalcredentials|dcql|@openid4vc|@credo\\-ts)/)"
]
},
"c8": {
"all": true,
Expand All @@ -84,7 +101,7 @@
"@js-soft/node-logger": "1.2.1",
"@js-soft/ts-utils": "^2.3.5",
"@nmshd/connector-types": "*",
"@nmshd/runtime": "7.2.1",
"@nmshd/runtime": "7.3.0-openid4vc.4",
"@nmshd/typescript-ioc": "^3.2.5",
"@nmshd/typescript-rest": "^3.2.2",
"agentkeepalive": "4.6.0",
Expand Down Expand Up @@ -114,11 +131,13 @@
},
"devDependencies": {
"@apidevtools/swagger-parser": "^12.1.0",
"@babel/preset-env": "^7.28.5",
"@babel/preset-typescript": "^7.28.5",
"@js-soft/eslint-config-ts": "2.0.4",
"@js-soft/license-check": "1.0.10",
"@nmshd/connector-sdk": "*",
"@nmshd/content": "7.2.1",
"@nmshd/core-types": "7.2.1",
"@nmshd/content": "7.3.0-openid4vc.4",
"@nmshd/core-types": "7.3.0-openid4vc.4",
"@nmshd/typescript-rest-swagger": "^2.0.1",
"@types/amqplib": "^0.10.8",
"@types/compression": "^1.8.1",
Expand All @@ -145,6 +164,7 @@
"nodemon": "^3.1.11",
"npm-run-all2": "^8.0.4",
"openapi-types": "^12.1.3",
"patch-package": "^8.0.1",
"prettier": "^3.8.1",
"ts-jest": "^29.4.6",
"ts-node": "^10.9.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
"build:watch": "tsc --watch"
},
"dependencies": {
"@nmshd/content": "7.2.1",
"@nmshd/runtime-types": "7.2.1",
"@nmshd/content": "7.3.0-openid4vc.4",
"@nmshd/runtime-types": "7.3.0-openid4vc.4",
"axios": "^1.13.5",
"form-data": "^4.0.5",
"qs": "^6.14.2"
Expand Down
3 changes: 2 additions & 1 deletion packages/sdk/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
"strictPropertyInitialization": false,
"downlevelIteration": true,
"lib": ["es2022", "dom"],
"declarationMap": true
"declarationMap": true,
"skipLibCheck": true
},
"include": ["src/**/*"]
}
2 changes: 1 addition & 1 deletion packages/types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"peerDependencies": {
"@js-soft/docdb-access-abstractions": "^1.3.0",
"@js-soft/ts-utils": "^2.3.5",
"@nmshd/runtime": "7.2.1",
"@nmshd/runtime": "7.3.0-openid4vc.4",
"@nmshd/typescript-rest": "^3.2.2",
"express": "^5.2.1"
},
Expand Down
3 changes: 2 additions & 1 deletion packages/types/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
"strictPropertyInitialization": false,
"downlevelIteration": true,
"lib": ["es2022", "dom"],
"declarationMap": true
"declarationMap": true,
"skipLibCheck": true
},
"include": ["src/**/*"]
}
13 changes: 13 additions & 0 deletions patches/@openid4vc+openid4vp+0.4.3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/node_modules/@openid4vc/openid4vp/dist/index.mjs b/node_modules/@openid4vc/openid4vp/dist/index.mjs
index 4fbea61..3f67eaf 100644
--- a/node_modules/@openid4vc/openid4vp/dist/index.mjs
+++ b/node_modules/@openid4vc/openid4vp/dist/index.mjs
@@ -619,7 +619,7 @@ async function validateOpenid4vpClientId(options, parserConfig) {
});
if (!isOpenid4vpAuthorizationRequestDcApi(authorizationRequestPayload)) {
const uri = authorizationRequestPayload.redirect_uri ?? authorizationRequestPayload.response_uri;
- if (!uri || new URL(uri).hostname !== clientIdIdentifier) throw new Oauth2ServerErrorResponseError({
+ if (!uri || new URL(uri).hostname.toLowerCase() !== clientIdIdentifier.toLowerCase()) throw new Oauth2ServerErrorResponseError({
error: Oauth2ErrorCodes.InvalidRequest,
error_description: "Invalid client identifier. The fully qualified domain name of the redirect_uri value MUST match the Client Identifier without the prefix x509_san_dns."
});
4 changes: 3 additions & 1 deletion test/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
"strictPropertyInitialization": false,
"downlevelIteration": true,
"lib": ["es2022", "dom"],
"baseUrl": "../"
"baseUrl": "../",
"skipLibCheck": true,
"allowJs": true // we want to use the ts compiler to compile ESM node modules into CJS which is understood by jest. This is required since those node modules are javascript.
},
"files": ["../node_modules/jest-expect-message/types/index.d.ts"],
"include": ["**/*.ts"],
Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"strictPropertyInitialization": false,
"downlevelIteration": true,
"noImplicitOverride": true,
"lib": ["es2022", "dom"]
"lib": ["es2022", "dom"],
"skipLibCheck": true
},
"include": ["src/**/*"]
}