@sphereon/oid4vci-client 0.4.1-unstable.263 → 0.4.1-unstable.264
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CredentialOfferClient.d.ts.map +1 -1
- package/dist/CredentialOfferClient.js +6 -2
- package/dist/CredentialOfferClient.js.map +1 -1
- package/lib/CredentialOfferClient.ts +7 -0
- package/lib/__tests__/IssuanceInitiation.spec.ts +3 -3
- package/lib/__tests__/MetadataMocks.ts +8 -5
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialOfferClient.d.ts","sourceRoot":"","sources":["../lib/CredentialOfferClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iCAAiC,EAGjC,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,qBAAqB;WACZ,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"CredentialOfferClient.d.ts","sourceRoot":"","sources":["../lib/CredentialOfferClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iCAAiC,EAGjC,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,qBAAqB;WACZ,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC;WA+CpG,KAAK,CACjB,kBAAkB,EAAE,iCAAiC,EACrD,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B,GACA,MAAM;CAsCV"}
|
|
@@ -19,6 +19,7 @@ const functions_1 = require("./functions");
|
|
|
19
19
|
const debug = (0, debug_1.default)('sphereon:oid4vci:offer');
|
|
20
20
|
class CredentialOfferClient {
|
|
21
21
|
static fromURI(uri, opts) {
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
22
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
24
|
debug(`Credential Offer URI: ${uri}`);
|
|
24
25
|
if (!uri.includes('?') || !uri.includes('://')) {
|
|
@@ -49,8 +50,11 @@ class CredentialOfferClient {
|
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
const request = yield (0, oid4vci_common_1.toUniformCredentialOfferRequest)(credentialOffer, Object.assign(Object.assign({}, opts), { version }));
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
const grants = (_a = request.credential_offer) === null || _a === void 0 ? void 0 : _a.grants;
|
|
54
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({ scheme,
|
|
55
|
+
baseUrl }, request), (((_b = grants === null || grants === void 0 ? void 0 : grants.authorization_code) === null || _b === void 0 ? void 0 : _b.issuer_state) && { issuerState: grants.authorization_code.issuer_state })), (((_c = grants === null || grants === void 0 ? void 0 : grants['urn:ietf:params:oauth:grant-type:pre-authorized_code']) === null || _c === void 0 ? void 0 : _c['pre-authorized_code']) && {
|
|
56
|
+
preAuthorizedCode: grants['urn:ietf:params:oauth:grant-type:pre-authorized_code']['pre-authorized_code'],
|
|
57
|
+
})), { userPinRequired: (_g = (_f = (_e = (_d = request.credential_offer) === null || _d === void 0 ? void 0 : _d.grants) === null || _e === void 0 ? void 0 : _e['urn:ietf:params:oauth:grant-type:pre-authorized_code']) === null || _f === void 0 ? void 0 : _f.user_pin_required) !== null && _g !== void 0 ? _g : false });
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
static toURI(requestWithBaseUrl, opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialOfferClient.js","sourceRoot":"","sources":["../lib/CredentialOfferClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DASkC;AAClC,kDAA0B;AAE1B,2CAAuE;AAEvE,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,wBAAwB,CAAC,CAAC;AAE9C,MAAa,qBAAqB;IACzB,MAAM,CAAO,OAAO,CAAC,GAAW,EAAE,IAA4B
|
|
1
|
+
{"version":3,"file":"CredentialOfferClient.js","sourceRoot":"","sources":["../lib/CredentialOfferClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,10 +48,17 @@ export class CredentialOfferClient {
|
|
|
48
48
|
version,
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
+
const grants = request.credential_offer?.grants;
|
|
52
|
+
|
|
51
53
|
return {
|
|
52
54
|
scheme,
|
|
53
55
|
baseUrl,
|
|
54
56
|
...request,
|
|
57
|
+
...(grants?.authorization_code?.issuer_state && { issuerState: grants.authorization_code.issuer_state }),
|
|
58
|
+
...(grants?.['urn:ietf:params:oauth:grant-type:pre-authorized_code']?.['pre-authorized_code'] && {
|
|
59
|
+
preAuthorizedCode: grants['urn:ietf:params:oauth:grant-type:pre-authorized_code']['pre-authorized_code'],
|
|
60
|
+
}),
|
|
61
|
+
userPinRequired: request.credential_offer?.grants?.['urn:ietf:params:oauth:grant-type:pre-authorized_code']?.user_pin_required ?? false,
|
|
55
62
|
};
|
|
56
63
|
}
|
|
57
64
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { AuthzFlowType } from '@sphereon/oid4vci-common';
|
|
2
|
-
|
|
3
1
|
import { CredentialOfferClient } from '../CredentialOfferClient';
|
|
4
2
|
|
|
5
3
|
import { INITIATION_TEST, INITIATION_TEST_HTTPS_URI, INITIATION_TEST_URI } from './MetadataMocks';
|
|
@@ -17,13 +15,15 @@ describe('Issuance Initiation', () => {
|
|
|
17
15
|
},
|
|
18
16
|
},
|
|
19
17
|
},
|
|
18
|
+
issuerState: 'eyJhbGciOiJSU0Et...FYUaBy',
|
|
20
19
|
original_credential_offer: {
|
|
21
20
|
credential_type: ['https://did.example.org/healthCard', 'https://did.example.org/driverLicense'],
|
|
22
21
|
issuer: 'https://server.example.com',
|
|
23
22
|
op_state: 'eyJhbGciOiJSU0Et...FYUaBy',
|
|
24
23
|
},
|
|
25
24
|
scheme: 'https',
|
|
26
|
-
supportedFlows: [
|
|
25
|
+
supportedFlows: ['Authorization Code Flow'],
|
|
26
|
+
userPinRequired: false,
|
|
27
27
|
version: 1008,
|
|
28
28
|
});
|
|
29
29
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthzFlowType,
|
|
1
|
+
import { AuthzFlowType, CredentialOfferRequestWithBaseUrl } from '@sphereon/oid4vci-common';
|
|
2
2
|
|
|
3
3
|
export const IDENTIPROOF_ISSUER_URL = 'https://issuer.research.identiproof.io';
|
|
4
4
|
export const IDENTIPROOF_AS_URL = 'https://auth.research.identiproof.io';
|
|
@@ -11,11 +11,10 @@ export const INITIATION_TEST_URI =
|
|
|
11
11
|
'openid-initiate-issuance://?credential_type=OpenBadgeCredential&issuer=https%3A%2F%2Fjff%2Ewalt%2Eid%2Fissuer-api%2Foidc%2F&pre-authorized_code=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhOTUyZjUxNi1jYWVmLTQ4YjMtODIxYy00OTRkYzgyNjljZjAiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.YE5DlalcLC2ChGEg47CQDaN1gTxbaQqSclIVqsSAUHE&user_pin_required=false';
|
|
12
12
|
|
|
13
13
|
export const INITIATION_TEST: CredentialOfferRequestWithBaseUrl = {
|
|
14
|
-
scheme: 'openid-initiate-issuance',
|
|
15
14
|
baseUrl: 'openid-initiate-issuance://',
|
|
16
15
|
credential_offer: {
|
|
17
|
-
credentials: ['OpenBadgeCredential'],
|
|
18
16
|
credential_issuer: 'https://jff.walt.id/issuer-api/oidc/',
|
|
17
|
+
credentials: ['OpenBadgeCredential'],
|
|
19
18
|
grants: {
|
|
20
19
|
'urn:ietf:params:oauth:grant-type:pre-authorized_code': {
|
|
21
20
|
'pre-authorized_code':
|
|
@@ -30,9 +29,13 @@ export const INITIATION_TEST: CredentialOfferRequestWithBaseUrl = {
|
|
|
30
29
|
'pre-authorized_code':
|
|
31
30
|
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhOTUyZjUxNi1jYWVmLTQ4YjMtODIxYy00OTRkYzgyNjljZjAiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.YE5DlalcLC2ChGEg47CQDaN1gTxbaQqSclIVqsSAUHE',
|
|
32
31
|
user_pin_required: 'false',
|
|
33
|
-
}
|
|
32
|
+
},
|
|
33
|
+
preAuthorizedCode:
|
|
34
|
+
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhOTUyZjUxNi1jYWVmLTQ4YjMtODIxYy00OTRkYzgyNjljZjAiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.YE5DlalcLC2ChGEg47CQDaN1gTxbaQqSclIVqsSAUHE',
|
|
35
|
+
scheme: 'openid-initiate-issuance',
|
|
34
36
|
supportedFlows: [AuthzFlowType.PRE_AUTHORIZED_CODE_FLOW],
|
|
35
|
-
|
|
37
|
+
userPinRequired: false,
|
|
38
|
+
version: 1008,
|
|
36
39
|
};
|
|
37
40
|
export const IDENTIPROOF_AS_METADATA = {
|
|
38
41
|
issuer: 'https://auth.research.identiproof.io',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-client",
|
|
3
|
-
"version": "0.4.1-unstable.
|
|
3
|
+
"version": "0.4.1-unstable.264+579940b",
|
|
4
4
|
"description": "OpenID for Verifiable Credential Issuance (OpenID4VCI) client",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"build": "tsc"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@sphereon/oid4vci-common": "0.4.1-unstable.
|
|
18
|
+
"@sphereon/oid4vci-common": "0.4.1-unstable.264+579940b",
|
|
19
19
|
"@sphereon/ssi-types": "^0.9.0",
|
|
20
20
|
"cross-fetch": "^3.1.5",
|
|
21
21
|
"debug": "^4.3.4",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"OIDC4VCI",
|
|
65
65
|
"OID4VCI"
|
|
66
66
|
],
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "579940b7ec82a0f537f4ff90b310695edb4b38b9"
|
|
68
68
|
}
|