@sphereon/ssi-sdk.ebsi-support 0.27.1-next.6 → 0.27.1-next.7

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.
@@ -1,202 +1,215 @@
1
- import { CheckLinkedDomain, PresentationDefinitionLocation, SupportedVersion } from '@sphereon/did-auth-siop';
2
- import { CreateRequestObjectMode } from '@sphereon/oid4vci-common';
3
- import { getIdentifier } from '@sphereon/ssi-sdk-ext.did-utils';
4
- import { CredentialMapper } from '@sphereon/ssi-types';
5
- import fetch from 'cross-fetch';
6
- import { determineWellknownEndpoint, ebsiGetIssuerMock } from '../did/functions';
7
- import { ebsiCreateAttestationAuthRequestURL, ebsiGetAttestation } from '../functions';
8
- import { schema, } from '../index';
9
- import { v4 } from 'uuid';
10
- export class EbsiSupport {
11
- schema = schema.IEbsiSupport;
12
- methods = {
13
- ebsiWellknownMetadata: this.ebsiWellknownMetadata.bind(this),
14
- ebsiAuthorizationServerJwks: this.ebsiAuthorizationServerJwks.bind(this),
15
- ebsiPresentationDefinitionGet: this.ebsiPresentationDefinitionGet.bind(this),
16
- ebsiAccessTokenGet: this.ebsiAccessTokenGet.bind(this),
17
- ebsiCreateAttestationAuthRequestURL: ebsiCreateAttestationAuthRequestURL.bind(this),
18
- ebsiGetAttestation: ebsiGetAttestation.bind(this),
19
- };
20
- async ebsiWellknownMetadata(args) {
21
- const url = determineWellknownEndpoint(args);
22
- return await (await fetch(url, {
23
- method: 'GET',
24
- headers: {
25
- Accept: 'application/json',
26
- },
27
- })).json();
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.EbsiSupport = void 0;
16
+ const did_auth_siop_1 = require("@sphereon/did-auth-siop");
17
+ const oid4vci_common_1 = require("@sphereon/oid4vci-common");
18
+ const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
19
+ const ssi_types_1 = require("@sphereon/ssi-types");
20
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
21
+ const functions_1 = require("../did/functions");
22
+ const functions_2 = require("../functions");
23
+ const index_1 = require("../index");
24
+ const uuid_1 = require("uuid");
25
+ class EbsiSupport {
26
+ constructor() {
27
+ this.schema = index_1.schema.IEbsiSupport;
28
+ this.methods = {
29
+ ebsiWellknownMetadata: this.ebsiWellknownMetadata.bind(this),
30
+ ebsiAuthorizationServerJwks: this.ebsiAuthorizationServerJwks.bind(this),
31
+ ebsiPresentationDefinitionGet: this.ebsiPresentationDefinitionGet.bind(this),
32
+ ebsiAccessTokenGet: this.ebsiAccessTokenGet.bind(this),
33
+ ebsiCreateAttestationAuthRequestURL: functions_2.ebsiCreateAttestationAuthRequestURL.bind(this),
34
+ ebsiGetAttestation: functions_2.ebsiGetAttestation.bind(this),
35
+ };
28
36
  }
29
- async ebsiAuthorizationServerJwks(args) {
30
- const discoveryMetadata = await this.ebsiWellknownMetadata({
31
- ...args,
32
- type: 'openid-configuration',
37
+ ebsiWellknownMetadata(args) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const url = (0, functions_1.determineWellknownEndpoint)(args);
40
+ return yield (yield (0, cross_fetch_1.default)(url, {
41
+ method: 'GET',
42
+ headers: {
43
+ Accept: 'application/json',
44
+ },
45
+ })).json();
33
46
  });
34
- return await (await fetch(`${discoveryMetadata.jwks_uri}`, {
35
- method: 'GET',
36
- headers: {
37
- Accept: 'application/jwk-set+json',
38
- },
39
- })).json();
40
- }
41
- async ebsiPresentationDefinitionGet(args) {
42
- const { scope, apiOpts, openIDMetadata } = args;
43
- const discoveryMetadata = openIDMetadata ??
44
- (await this.ebsiWellknownMetadata({
45
- ...apiOpts,
46
- type: 'openid-configuration',
47
- system: apiOpts?.mock ? 'authorisation' : apiOpts?.system,
48
- version: apiOpts?.version ?? 'v4',
49
- }));
50
- return (await (await fetch(`${discoveryMetadata.presentation_definition_endpoint}?scope=openid%20${scope}`, {
51
- method: 'GET',
52
- headers: {
53
- Accept: 'application/json',
54
- },
55
- })).json());
56
47
  }
57
- async ebsiAccessTokenGet(args, context) {
58
- const { scope, idOpts, jwksUri, clientId, allVerifiableCredentials, redirectUri, environment, skipDidResolution = false } = args;
59
- const identifier = await getIdentifier(idOpts, context);
60
- const openIDMetadata = await this.ebsiWellknownMetadata({
61
- environment,
62
- version: 'v4',
63
- mock: undefined,
64
- system: 'authorisation',
65
- type: 'openid-configuration',
48
+ ebsiAuthorizationServerJwks(args) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const discoveryMetadata = yield this.ebsiWellknownMetadata(Object.assign(Object.assign({}, args), { type: 'openid-configuration' }));
51
+ return yield (yield (0, cross_fetch_1.default)(`${discoveryMetadata.jwks_uri}`, {
52
+ method: 'GET',
53
+ headers: {
54
+ Accept: 'application/jwk-set+json',
55
+ },
56
+ })).json();
66
57
  });
67
- const definitionResponse = await this.ebsiPresentationDefinitionGet({
68
- ...args,
69
- openIDMetadata,
70
- apiOpts: { environment, version: 'v4', type: 'openid-configuration' },
58
+ }
59
+ ebsiPresentationDefinitionGet(args) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ var _a;
62
+ const { scope, apiOpts, openIDMetadata } = args;
63
+ const discoveryMetadata = openIDMetadata !== null && openIDMetadata !== void 0 ? openIDMetadata : (yield this.ebsiWellknownMetadata(Object.assign(Object.assign({}, apiOpts), { type: 'openid-configuration', system: (apiOpts === null || apiOpts === void 0 ? void 0 : apiOpts.mock) ? 'authorisation' : apiOpts === null || apiOpts === void 0 ? void 0 : apiOpts.system, version: (_a = apiOpts === null || apiOpts === void 0 ? void 0 : apiOpts.version) !== null && _a !== void 0 ? _a : 'v4' })));
64
+ return (yield (yield (0, cross_fetch_1.default)(`${discoveryMetadata.presentation_definition_endpoint}?scope=openid%20${scope}`, {
65
+ method: 'GET',
66
+ headers: {
67
+ Accept: 'application/json',
68
+ },
69
+ })).json());
71
70
  });
72
- const hasInputDescriptors = definitionResponse.input_descriptors.length > 0;
73
- if (!hasInputDescriptors) {
74
- // Yes EBSI expects VPs without a VC in some situations. This is not according to the PEX spec!
75
- // They probably should have used SIOP in these cases. We need to go through hoops as our libs do not expect PDs/VPs without VCs :(
76
- console.warn(`No INPUT descriptor returned for scope ${scope}`);
77
- }
78
- let attestationCredential = args.attestationCredential;
79
- if (hasInputDescriptors && !attestationCredential) {
80
- if (allVerifiableCredentials && allVerifiableCredentials.length > 0) {
81
- const pexResult = await context.agent.pexDefinitionFilterCredentials({
82
- presentationDefinition: definitionResponse,
83
- credentialFilterOpts: { verifiableCredentials: allVerifiableCredentials },
84
- });
85
- if (pexResult.filteredCredentials.length > 0) {
86
- const filtered = pexResult.filteredCredentials
87
- .map((cred) => CredentialMapper.toUniformCredential(cred))
88
- .filter((cred) => {
89
- if (!cred.expirationDate) {
90
- return cred;
91
- }
92
- else if (new Date(cred.expirationDate).getDate() >= Date.now()) {
93
- return cred;
71
+ }
72
+ ebsiAccessTokenGet(args, context) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ var _a;
75
+ const { scope, idOpts, jwksUri, clientId, allVerifiableCredentials, redirectUri, environment, skipDidResolution = false } = args;
76
+ const identifier = yield (0, ssi_sdk_ext_did_utils_1.getIdentifier)(idOpts, context);
77
+ const openIDMetadata = yield this.ebsiWellknownMetadata({
78
+ environment,
79
+ version: 'v4',
80
+ mock: undefined,
81
+ system: 'authorisation',
82
+ type: 'openid-configuration',
83
+ });
84
+ const definitionResponse = yield this.ebsiPresentationDefinitionGet(Object.assign(Object.assign({}, args), { openIDMetadata, apiOpts: { environment, version: 'v4', type: 'openid-configuration' } }));
85
+ const hasInputDescriptors = definitionResponse.input_descriptors.length > 0;
86
+ if (!hasInputDescriptors) {
87
+ // Yes EBSI expects VPs without a VC in some situations. This is not according to the PEX spec!
88
+ // They probably should have used SIOP in these cases. We need to go through hoops as our libs do not expect PDs/VPs without VCs :(
89
+ console.warn(`No INPUT descriptor returned for scope ${scope}`);
90
+ }
91
+ let attestationCredential = args.attestationCredential;
92
+ if (hasInputDescriptors && !attestationCredential) {
93
+ if (allVerifiableCredentials && allVerifiableCredentials.length > 0) {
94
+ const pexResult = yield context.agent.pexDefinitionFilterCredentials({
95
+ presentationDefinition: definitionResponse,
96
+ credentialFilterOpts: { verifiableCredentials: allVerifiableCredentials },
97
+ });
98
+ if (pexResult.filteredCredentials.length > 0) {
99
+ const filtered = pexResult.filteredCredentials
100
+ .map((cred) => ssi_types_1.CredentialMapper.toUniformCredential(cred))
101
+ .filter((cred) => {
102
+ if (!cred.expirationDate) {
103
+ return cred;
104
+ }
105
+ else if (new Date(cred.expirationDate).getDate() >= Date.now()) {
106
+ return cred;
107
+ }
108
+ return undefined;
109
+ })
110
+ .filter((cred) => !!cred);
111
+ if (filtered.length > 0) {
112
+ attestationCredential = filtered[0];
94
113
  }
95
- return undefined;
96
- })
97
- .filter((cred) => !!cred);
98
- if (filtered.length > 0) {
99
- attestationCredential = filtered[0];
100
114
  }
101
115
  }
116
+ if (!attestationCredential) {
117
+ const credentialIssuer = (_a = args.credentialIssuer) !== null && _a !== void 0 ? _a : (0, functions_1.ebsiGetIssuerMock)({ environment });
118
+ const authReqResult = yield context.agent.ebsiCreateAttestationAuthRequestURL({
119
+ credentialIssuer,
120
+ idOpts,
121
+ formats: ['jwt_vc'],
122
+ clientId,
123
+ redirectUri,
124
+ requestObjectOpts: {
125
+ iss: clientId,
126
+ requestObjectMode: oid4vci_common_1.CreateRequestObjectMode.REQUEST_OBJECT,
127
+ jwksUri,
128
+ },
129
+ credentialType: 'VerifiableAuthorisationToOnboard',
130
+ });
131
+ const attestationResult = yield context.agent.ebsiGetAttestation({
132
+ authReqResult,
133
+ clientId,
134
+ opts: { timeout: 30000 },
135
+ });
136
+ // @ts-ignore
137
+ attestationCredential = attestationResult.credentials[0].rawVerifiableCredential;
138
+ }
102
139
  }
103
- if (!attestationCredential) {
104
- const credentialIssuer = args.credentialIssuer ?? ebsiGetIssuerMock({ environment });
105
- const authReqResult = await context.agent.ebsiCreateAttestationAuthRequestURL({
106
- credentialIssuer,
107
- idOpts,
108
- formats: ['jwt_vc'],
109
- clientId,
110
- redirectUri,
111
- requestObjectOpts: {
112
- iss: clientId,
113
- requestObjectMode: CreateRequestObjectMode.REQUEST_OBJECT,
114
- jwksUri,
115
- },
116
- credentialType: 'VerifiableAuthorisationToOnboard',
117
- });
118
- const attestationResult = await context.agent.ebsiGetAttestation({
119
- authReqResult,
120
- clientId,
121
- opts: { timeout: 30_000 },
140
+ const definition = {
141
+ definition: definitionResponse,
142
+ location: did_auth_siop_1.PresentationDefinitionLocation.TOPLEVEL_PRESENTATION_DEF,
143
+ version: did_auth_siop_1.SupportedVersion.SIOPv2_D11,
144
+ };
145
+ const pexResult = hasInputDescriptors
146
+ ? yield context.agent.pexDefinitionFilterCredentials({
147
+ presentationDefinition: definitionResponse,
148
+ credentialFilterOpts: { verifiableCredentials: [attestationCredential] },
149
+ // LOL, let's see whether we can trick PEX to create a VP without VCs
150
+ })
151
+ : ({
152
+ filteredCredentials: [],
153
+ id: definitionResponse.id,
154
+ selectResults: { verifiableCredential: [], areRequiredCredentialsPresent: 'info' },
122
155
  });
123
- // @ts-ignore
124
- attestationCredential = attestationResult.credentials[0].rawVerifiableCredential;
125
- }
126
- }
127
- const definition = {
128
- definition: definitionResponse,
129
- location: PresentationDefinitionLocation.TOPLEVEL_PRESENTATION_DEF,
130
- version: SupportedVersion.SIOPv2_D11,
131
- };
132
- const pexResult = hasInputDescriptors
133
- ? await context.agent.pexDefinitionFilterCredentials({
134
- presentationDefinition: definitionResponse,
135
- credentialFilterOpts: { verifiableCredentials: [attestationCredential] },
136
- // LOL, let's see whether we can trick PEX to create a VP without VCs
137
- })
138
- : ({
139
- filteredCredentials: [],
140
- id: definitionResponse.id,
141
- selectResults: { verifiableCredential: [], areRequiredCredentialsPresent: 'info' },
156
+ const opSesssion = yield context.agent.siopRegisterOPSession({
157
+ requestJwtOrUri: '', // Siop assumes we use an auth request, which we don't have in this case
158
+ op: { checkLinkedDomains: did_auth_siop_1.CheckLinkedDomain.NEVER },
159
+ providedPresentationDefinitions: [definition],
142
160
  });
143
- const opSesssion = await context.agent.siopRegisterOPSession({
144
- requestJwtOrUri: '', // Siop assumes we use an auth request, which we don't have in this case
145
- op: { checkLinkedDomains: CheckLinkedDomain.NEVER },
146
- providedPresentationDefinitions: [definition],
147
- });
148
- const oid4vp = await opSesssion.getOID4VP([identifier.did]);
149
- const vp = await oid4vp.createVerifiablePresentation({ definition, credentials: pexResult.filteredCredentials }, {
150
- proofOpts: { domain: openIDMetadata.issuer, nonce: v4(), created: new Date(Date.now() - 120_000).toString() },
151
- holderDID: identifier.did,
152
- identifierOpts: idOpts,
153
- skipDidResolution,
154
- forceNoCredentialsInVP: !hasInputDescriptors,
161
+ const oid4vp = yield opSesssion.getOID4VP([identifier.did]);
162
+ const vp = yield oid4vp.createVerifiablePresentation({ definition, credentials: pexResult.filteredCredentials }, {
163
+ proofOpts: { domain: openIDMetadata.issuer, nonce: (0, uuid_1.v4)(), created: new Date(Date.now() - 120000).toString() },
164
+ holderDID: identifier.did,
165
+ identifierOpts: idOpts,
166
+ skipDidResolution,
167
+ forceNoCredentialsInVP: !hasInputDescriptors,
168
+ });
169
+ const presentationSubmission = hasInputDescriptors
170
+ ? vp.presentationSubmission
171
+ : ({ id: (0, uuid_1.v4)(), definition_id: definitionResponse.id, descriptor_map: [] });
172
+ const tokenRequestArgs = {
173
+ grant_type: 'vp_token',
174
+ vp_token: ssi_types_1.CredentialMapper.toCompactJWT(vp.verifiablePresentation),
175
+ scope,
176
+ presentation_submission: presentationSubmission,
177
+ apiOpts: { environment, version: 'v4' },
178
+ openIDMetadata,
179
+ };
180
+ const accessTokenResponse = yield this.getAccessTokenResponse(tokenRequestArgs);
181
+ if (!('access_token' in accessTokenResponse)) {
182
+ throw Error(`Error response: ${JSON.stringify(accessTokenResponse)}`);
183
+ }
184
+ return {
185
+ accessTokenResponse,
186
+ // vp,
187
+ scope,
188
+ // definition,
189
+ identifier,
190
+ };
155
191
  });
156
- const presentationSubmission = hasInputDescriptors
157
- ? vp.presentationSubmission
158
- : ({ id: v4(), definition_id: definitionResponse.id, descriptor_map: [] });
159
- const tokenRequestArgs = {
160
- grant_type: 'vp_token',
161
- vp_token: CredentialMapper.toCompactJWT(vp.verifiablePresentation),
162
- scope,
163
- presentation_submission: presentationSubmission,
164
- apiOpts: { environment, version: 'v4' },
165
- openIDMetadata,
166
- };
167
- const accessTokenResponse = await this.getAccessTokenResponse(tokenRequestArgs);
168
- if (!('access_token' in accessTokenResponse)) {
169
- throw Error(`Error response: ${JSON.stringify(accessTokenResponse)}`);
170
- }
171
- return {
172
- accessTokenResponse,
173
- // vp,
174
- scope,
175
- // definition,
176
- identifier,
177
- };
178
192
  }
179
- async getAccessTokenResponse(args) {
180
- const { grant_type = 'vp_token', scope, vp_token, presentation_submission, apiOpts, openIDMetadata } = args;
181
- const discoveryMetadata = openIDMetadata ??
182
- (await this.ebsiWellknownMetadata({
183
- ...apiOpts,
184
- type: 'openid-configuration',
185
- }));
186
- const request = {
187
- grant_type,
188
- scope: `openid ${scope}`,
189
- vp_token,
190
- presentation_submission: JSON.stringify(presentation_submission),
191
- };
192
- return await (await fetch(`${discoveryMetadata.token_endpoint}`, {
193
- method: 'POST',
194
- headers: {
195
- ContentType: 'application/x-www-form-urlencoded',
196
- Accept: 'application/json',
197
- },
198
- body: new URLSearchParams(request),
199
- })).json();
193
+ getAccessTokenResponse(args) {
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ const { grant_type = 'vp_token', scope, vp_token, presentation_submission, apiOpts, openIDMetadata } = args;
196
+ const discoveryMetadata = openIDMetadata !== null && openIDMetadata !== void 0 ? openIDMetadata : (yield this.ebsiWellknownMetadata(Object.assign(Object.assign({}, apiOpts), { type: 'openid-configuration' })));
197
+ const request = {
198
+ grant_type,
199
+ scope: `openid ${scope}`,
200
+ vp_token,
201
+ presentation_submission: JSON.stringify(presentation_submission),
202
+ };
203
+ return yield (yield (0, cross_fetch_1.default)(`${discoveryMetadata.token_endpoint}`, {
204
+ method: 'POST',
205
+ headers: {
206
+ ContentType: 'application/x-www-form-urlencoded',
207
+ Accept: 'application/json',
208
+ },
209
+ body: new URLSearchParams(request),
210
+ })).json();
211
+ });
200
212
  }
201
213
  }
214
+ exports.EbsiSupport = EbsiSupport;
202
215
  //# sourceMappingURL=EbsiSupport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EbsiSupport.js","sourceRoot":"","sources":["../../src/agent/EbsiSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EbsiSupport.js","sourceRoot":"","sources":["../../src/agent/EbsiSupport.ts"],"names":[],"mappings":"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"}