@sphereon/ssi-sdk.ebsi-support 0.27.0 → 0.27.1-next.12
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/agent/EbsiSupport.d.ts +2 -0
- package/dist/agent/EbsiSupport.d.ts.map +1 -1
- package/dist/agent/EbsiSupport.js +213 -185
- package/dist/agent/EbsiSupport.js.map +1 -1
- package/dist/did/EbsiDidProvider.d.ts.map +1 -1
- package/dist/did/EbsiDidProvider.js +174 -136
- package/dist/did/EbsiDidProvider.js.map +1 -1
- package/dist/did/EbsiDidResolver.js +19 -6
- package/dist/did/EbsiDidResolver.js.map +1 -1
- package/dist/did/functions.d.ts +3 -9
- package/dist/did/functions.d.ts.map +1 -1
- package/dist/did/functions.js +158 -120
- package/dist/did/functions.js.map +1 -1
- package/dist/did/index.js +28 -5
- package/dist/did/index.js.map +1 -1
- package/dist/did/services/EbsiRPCService.js +36 -20
- package/dist/did/services/EbsiRPCService.js.map +1 -1
- package/dist/did/services/EbsiRestService.js +37 -19
- package/dist/did/services/EbsiRestService.js.map +1 -1
- package/dist/did/types.d.ts +9 -1
- package/dist/did/types.d.ts.map +1 -1
- package/dist/did/types.js +10 -7
- package/dist/did/types.js.map +1 -1
- package/dist/functions/Attestation.js +79 -69
- package/dist/functions/Attestation.js.map +1 -1
- package/dist/functions/AttestationHeadlessCallbacks.js +91 -72
- package/dist/functions/AttestationHeadlessCallbacks.js.map +1 -1
- package/dist/functions/index.js +32 -4
- package/dist/functions/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -6
- package/dist/index.js.map +1 -1
- package/dist/types/IEbsiSupport.d.ts +2 -0
- package/dist/types/IEbsiSupport.d.ts.map +1 -1
- package/dist/types/IEbsiSupport.js +5 -2
- package/dist/types/IEbsiSupport.js.map +1 -1
- package/package.json +13 -12
- package/plugin.schema.json +2030 -0
- package/src/agent/EbsiSupport.ts +17 -1
- package/src/did/EbsiDidProvider.ts +19 -1
- package/src/did/functions.ts +5 -12
- package/src/did/types.ts +9 -2
- package/src/index.ts +1 -1
- package/src/types/IEbsiSupport.ts +3 -0
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ebsiGetIssuer = exports.ebsiAuthRequestExecution = exports.ebsiGetAttestation = exports.ebsiGetAttestationInterpreter = exports.ebsiCreateAttestationAuthRequestURL = void 0;
|
|
13
|
+
const oid4vci_client_1 = require("@sphereon/oid4vci-client");
|
|
14
|
+
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
15
|
+
const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
16
|
+
const ssi_sdk_ext_key_utils_1 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
17
|
+
const ssi_sdk_oid4vci_holder_1 = require("@sphereon/ssi-sdk.oid4vci-holder");
|
|
18
|
+
const ssi_sdk_siopv2_oid4vp_op_auth_1 = require("@sphereon/ssi-sdk.siopv2-oid4vp-op-auth");
|
|
19
|
+
const link_handler_1 = require("@sphereon/ssi-sdk.siopv2-oid4vp-op-auth/dist/link-handler");
|
|
20
|
+
const waitFor_1 = require("xstate/lib/waitFor");
|
|
21
|
+
const index_1 = require("../index");
|
|
22
|
+
const AttestationHeadlessCallbacks_1 = require("./AttestationHeadlessCallbacks");
|
|
23
|
+
const index_2 = require("./index");
|
|
12
24
|
/**
|
|
13
25
|
* Method to generate an authz url for getting attestation credentials from a (R)TAO on EBSI using a cloud/service wallet
|
|
14
26
|
*
|
|
@@ -18,17 +30,18 @@ import { getEbsiApiBaseUrl } from './index';
|
|
|
18
30
|
* @param opts
|
|
19
31
|
* @param context
|
|
20
32
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
const ebsiCreateAttestationAuthRequestURL = (_a, context_1) => __awaiter(void 0, [_a, context_1], void 0, function* ({ clientId: clientIdArg, credentialIssuer, credentialType, idOpts, redirectUri, requestObjectOpts, formats = ['jwt_vc', 'jwt_vc_json'], }, context) {
|
|
34
|
+
var _b, _c, _d, _e;
|
|
35
|
+
const identifier = yield (0, ssi_sdk_ext_did_utils_1.getIdentifier)(idOpts, context);
|
|
23
36
|
if (identifier.provider !== 'did:ebsi' && identifier.provider !== 'did:key') {
|
|
24
37
|
throw Error(`EBSI only supports did:key for natural persons and did:ebsi for legal persons. Provider: ${identifier.provider}, did: ${identifier.did}`);
|
|
25
38
|
}
|
|
26
39
|
// This only works if the DID is actually registered, otherwise use our internal KMS;
|
|
27
40
|
// that is why the offline argument is passed in when type is Verifiable Auth to Onboard, as no DID is present at that point yet
|
|
28
|
-
const authKey =
|
|
29
|
-
const kid = authKey.meta
|
|
30
|
-
const clientId = clientIdArg
|
|
31
|
-
const vciClient =
|
|
41
|
+
const authKey = yield (0, ssi_sdk_ext_did_utils_1.getAuthenticationKey)(identifier, context, credentialType === 'VerifiableAuthorisationToOnboard', true);
|
|
42
|
+
const kid = (_c = (_b = authKey.meta) === null || _b === void 0 ? void 0 : _b.jwkThumbprint) !== null && _c !== void 0 ? _c : (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprintForKey)({ key: authKey });
|
|
43
|
+
const clientId = clientIdArg !== null && clientIdArg !== void 0 ? clientIdArg : identifier.did;
|
|
44
|
+
const vciClient = yield oid4vci_client_1.OpenID4VCIClient.fromCredentialIssuer({
|
|
32
45
|
credentialIssuer,
|
|
33
46
|
kid,
|
|
34
47
|
clientId,
|
|
@@ -47,7 +60,7 @@ export const ebsiCreateAttestationAuthRequestURL = async ({ clientId: clientIdAr
|
|
|
47
60
|
});
|
|
48
61
|
}
|
|
49
62
|
const supportedConfigurations = arrayMatches
|
|
50
|
-
.filter((supported) => getTypesFromCredentialSupported(supported, { filterVerifiableCredential: false }).includes(credentialType))
|
|
63
|
+
.filter((supported) => (0, oid4vci_common_1.getTypesFromCredentialSupported)(supported, { filterVerifiableCredential: false }).includes(credentialType))
|
|
51
64
|
.filter((supported) => (supported.format === 'jwt_vc' || supported.format === 'jwt_vc_json') && formats.includes(supported.format));
|
|
52
65
|
if (supportedConfigurations.length === 0) {
|
|
53
66
|
throw Error(`Could not find '${credentialType}' with format(s) '${formats.join(',')}' in list of supported types for issuer: ${credentialIssuer}`);
|
|
@@ -56,36 +69,32 @@ export const ebsiCreateAttestationAuthRequestURL = async ({ clientId: clientIdAr
|
|
|
56
69
|
return {
|
|
57
70
|
type: 'openid_credential',
|
|
58
71
|
format: supported.format,
|
|
59
|
-
types: getTypesFromCredentialSupported(supported),
|
|
72
|
+
types: (0, oid4vci_common_1.getTypesFromCredentialSupported)(supported),
|
|
60
73
|
};
|
|
61
74
|
});
|
|
62
|
-
const signCallbacks = requestObjectOpts.signCallbacks
|
|
63
|
-
signCallback: signCallback(vciClient, idOpts, context),
|
|
75
|
+
const signCallbacks = (_d = requestObjectOpts.signCallbacks) !== null && _d !== void 0 ? _d : {
|
|
76
|
+
signCallback: (0, ssi_sdk_oid4vci_holder_1.signCallback)(vciClient, idOpts, context),
|
|
64
77
|
};
|
|
65
78
|
const authorizationRequestOpts = {
|
|
66
79
|
redirectUri,
|
|
67
80
|
clientId,
|
|
68
81
|
authorizationDetails,
|
|
69
|
-
requestObjectOpts: {
|
|
70
|
-
...requestObjectOpts,
|
|
71
|
-
signCallbacks,
|
|
72
|
-
kid: requestObjectOpts.kid ?? kid,
|
|
73
|
-
},
|
|
82
|
+
requestObjectOpts: Object.assign(Object.assign({}, requestObjectOpts), { signCallbacks, kid: (_e = requestObjectOpts.kid) !== null && _e !== void 0 ? _e : kid }),
|
|
74
83
|
};
|
|
75
84
|
// todo: Do we really need to do this, or can we just set the create option to true at this point? We are passing in the authzReq opts
|
|
76
|
-
const authorizationCodeURL =
|
|
85
|
+
const authorizationCodeURL = yield vciClient.createAuthorizationRequestUrl({
|
|
77
86
|
authorizationRequest: authorizationRequestOpts,
|
|
78
87
|
});
|
|
79
88
|
return {
|
|
80
89
|
requestData: {
|
|
81
90
|
createAuthorizationRequestURL: false,
|
|
82
|
-
flowType: AuthzFlowType.AUTHORIZATION_CODE_FLOW,
|
|
91
|
+
flowType: oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW,
|
|
83
92
|
uri: credentialIssuer,
|
|
84
|
-
existingClientState: JSON.parse(
|
|
93
|
+
existingClientState: JSON.parse(yield vciClient.exportState()),
|
|
85
94
|
},
|
|
86
95
|
accessTokenOpts: {
|
|
87
96
|
clientOpts: {
|
|
88
|
-
alg: Alg[
|
|
97
|
+
alg: oid4vci_common_1.Alg[yield (0, ssi_sdk_oid4vci_holder_1.signatureAlgorithmFromKey)({ key: authKey })],
|
|
89
98
|
clientId,
|
|
90
99
|
kid,
|
|
91
100
|
signCallbacks,
|
|
@@ -97,53 +106,51 @@ export const ebsiCreateAttestationAuthRequestURL = async ({ clientId: clientIdAr
|
|
|
97
106
|
identifier,
|
|
98
107
|
// @ts-ignore
|
|
99
108
|
authKey,
|
|
100
|
-
didMethodPreferences: [SupportedDidMethodEnum.DID_EBSI, SupportedDidMethodEnum.DID_KEY],
|
|
109
|
+
didMethodPreferences: [ssi_sdk_ext_did_utils_1.SupportedDidMethodEnum.DID_EBSI, ssi_sdk_ext_did_utils_1.SupportedDidMethodEnum.DID_KEY],
|
|
101
110
|
};
|
|
102
|
-
};
|
|
103
|
-
|
|
111
|
+
});
|
|
112
|
+
exports.ebsiCreateAttestationAuthRequestURL = ebsiCreateAttestationAuthRequestURL;
|
|
113
|
+
const ebsiGetAttestationInterpreter = (_f, context_2) => __awaiter(void 0, [_f, context_2], void 0, function* ({ clientId, authReqResult }, context) {
|
|
114
|
+
var _g, _h, _j, _k;
|
|
104
115
|
const identifier = authReqResult.identifier;
|
|
105
116
|
const vciStateCallbacks = new Map();
|
|
106
117
|
const vpStateCallbacks = new Map();
|
|
107
|
-
const oid4vciMachine =
|
|
108
|
-
...authReqResult,
|
|
109
|
-
issuanceOpt: {
|
|
118
|
+
const oid4vciMachine = yield context.agent.oid4vciHolderGetMachineInterpreter(Object.assign(Object.assign({}, authReqResult), { issuanceOpt: {
|
|
110
119
|
identifier,
|
|
111
|
-
didMethod: SupportedDidMethodEnum.DID_EBSI,
|
|
112
|
-
kid: authReqResult.authKey.meta
|
|
113
|
-
},
|
|
114
|
-
clientOpts: {
|
|
120
|
+
didMethod: ssi_sdk_ext_did_utils_1.SupportedDidMethodEnum.DID_EBSI,
|
|
121
|
+
kid: (_h = (_g = authReqResult.authKey.meta) === null || _g === void 0 ? void 0 : _g.jwkThumbprint) !== null && _h !== void 0 ? _h : authReqResult.authKey.kid,
|
|
122
|
+
}, clientOpts: {
|
|
115
123
|
clientAssertionType: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
|
|
116
|
-
kid: authReqResult.authKey.meta
|
|
124
|
+
kid: (_k = (_j = authReqResult.authKey.meta) === null || _j === void 0 ? void 0 : _j.jwkThumbprint) !== null && _k !== void 0 ? _k : authReqResult.authKey.kid,
|
|
117
125
|
clientId,
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
stateNavigationListener: OID4VCICallbackStateListener(vciStateCallbacks),
|
|
121
|
-
});
|
|
122
|
-
const vpLinkHandler = new Siopv2OID4VPLinkHandler({
|
|
126
|
+
}, didMethodPreferences: [ssi_sdk_ext_did_utils_1.SupportedDidMethodEnum.DID_EBSI, ssi_sdk_ext_did_utils_1.SupportedDidMethodEnum.DID_KEY], stateNavigationListener: (0, ssi_sdk_oid4vci_holder_1.OID4VCICallbackStateListener)(vciStateCallbacks) }));
|
|
127
|
+
const vpLinkHandler = new link_handler_1.Siopv2OID4VPLinkHandler({
|
|
123
128
|
protocols: ['openid:'],
|
|
124
129
|
// @ts-ignore
|
|
125
130
|
context,
|
|
126
131
|
noStateMachinePersistence: true,
|
|
127
|
-
stateNavigationListener: OID4VPCallbackStateListener(vpStateCallbacks),
|
|
132
|
+
stateNavigationListener: (0, ssi_sdk_siopv2_oid4vp_op_auth_1.OID4VPCallbackStateListener)(vpStateCallbacks),
|
|
128
133
|
});
|
|
129
134
|
vpStateCallbacks
|
|
130
|
-
.set(Siopv2MachineStates.done, siopDoneCallback({ oid4vciMachine }, context))
|
|
131
|
-
.set(Siopv2MachineStates.handleError, handleErrorCallback(context));
|
|
135
|
+
.set(ssi_sdk_siopv2_oid4vp_op_auth_1.Siopv2MachineStates.done, (0, AttestationHeadlessCallbacks_1.siopDoneCallback)({ oid4vciMachine }, context))
|
|
136
|
+
.set(ssi_sdk_siopv2_oid4vp_op_auth_1.Siopv2MachineStates.handleError, (0, AttestationHeadlessCallbacks_1.handleErrorCallback)(context));
|
|
132
137
|
vciStateCallbacks
|
|
133
|
-
.set(OID4VCIMachineStates.handleError, handleErrorCallback(context))
|
|
134
|
-
.set(OID4VCIMachineStates.addContact, addContactCallback(context))
|
|
135
|
-
.set(OID4VCIMachineStates.selectCredentials, selectCredentialsCallback(context))
|
|
136
|
-
.set(OID4VCIMachineStates.initiateAuthorizationRequest, authorizationCodeUrlCallback({
|
|
138
|
+
.set(ssi_sdk_oid4vci_holder_1.OID4VCIMachineStates.handleError, (0, AttestationHeadlessCallbacks_1.handleErrorCallback)(context))
|
|
139
|
+
.set(ssi_sdk_oid4vci_holder_1.OID4VCIMachineStates.addContact, (0, AttestationHeadlessCallbacks_1.addContactCallback)(context))
|
|
140
|
+
.set(ssi_sdk_oid4vci_holder_1.OID4VCIMachineStates.selectCredentials, (0, AttestationHeadlessCallbacks_1.selectCredentialsCallback)(context))
|
|
141
|
+
.set(ssi_sdk_oid4vci_holder_1.OID4VCIMachineStates.initiateAuthorizationRequest, (0, AttestationHeadlessCallbacks_1.authorizationCodeUrlCallback)({
|
|
137
142
|
authReqResult,
|
|
138
143
|
vpLinkHandler,
|
|
139
144
|
}, context))
|
|
140
|
-
.set(OID4VCIMachineStates.reviewCredentials, reviewCredentialsCallback(context));
|
|
145
|
+
.set(ssi_sdk_oid4vci_holder_1.OID4VCIMachineStates.reviewCredentials, (0, AttestationHeadlessCallbacks_1.reviewCredentialsCallback)(context));
|
|
141
146
|
return oid4vciMachine.interpreter;
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
});
|
|
148
|
+
exports.ebsiGetAttestationInterpreter = ebsiGetAttestationInterpreter;
|
|
149
|
+
const ebsiGetAttestation = (_l, context_3) => __awaiter(void 0, [_l, context_3], void 0, function* ({ clientId, authReqResult, opts = { timeout: 30000 } }, context) {
|
|
150
|
+
var _m, _o, _p;
|
|
151
|
+
const interpreter = yield (0, exports.ebsiGetAttestationInterpreter)({ clientId, authReqResult }, context);
|
|
152
|
+
const state = yield (0, waitFor_1.waitFor)(interpreter.start(), (state) => state.matches('done') || state.matches('handleError'), {
|
|
153
|
+
timeout: (_m = opts.timeout) !== null && _m !== void 0 ? _m : 30000,
|
|
147
154
|
});
|
|
148
155
|
if (state.matches('handleError')) {
|
|
149
156
|
console.error(JSON.stringify(state.context.error));
|
|
@@ -153,30 +160,33 @@ export const ebsiGetAttestation = async ({ clientId, authReqResult, opts = { tim
|
|
|
153
160
|
contactAlias: state.context.contactAlias,
|
|
154
161
|
contact: state.context.contact,
|
|
155
162
|
credentialBranding: state.context.credentialBranding,
|
|
156
|
-
identifier: state.context.issuanceOpt
|
|
163
|
+
identifier: (_p = (_o = state.context.issuanceOpt) === null || _o === void 0 ? void 0 : _o.identifier) !== null && _p !== void 0 ? _p : authReqResult.identifier,
|
|
157
164
|
error: state.context.error,
|
|
158
165
|
credentials: state.context.credentialsToAccept,
|
|
159
166
|
};
|
|
160
|
-
};
|
|
167
|
+
});
|
|
168
|
+
exports.ebsiGetAttestation = ebsiGetAttestation;
|
|
161
169
|
/**
|
|
162
170
|
* Normally you would use the browser to let the user make this call in the front channel,
|
|
163
171
|
* however EBSI mainly uses mocks at present, and we want to be able to test as well
|
|
164
172
|
*/
|
|
165
|
-
|
|
173
|
+
const ebsiAuthRequestExecution = (authRequestResult, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
166
174
|
const { requestData, authorizationCodeURL } = authRequestResult;
|
|
167
|
-
const vciClient =
|
|
168
|
-
logger.debug(`URL: ${authorizationCodeURL}, according to client: ${vciClient.authorizationURL}`);
|
|
169
|
-
const authResponse =
|
|
175
|
+
const vciClient = yield oid4vci_client_1.OpenID4VCIClient.fromState({ state: requestData === null || requestData === void 0 ? void 0 : requestData.existingClientState });
|
|
176
|
+
index_1.logger.debug(`URL: ${authorizationCodeURL}, according to client: ${vciClient.authorizationURL}`);
|
|
177
|
+
const authResponse = yield (0, oid4vci_common_1.getJson)(authorizationCodeURL);
|
|
170
178
|
const location = authResponse.origResponse.headers.get('location');
|
|
171
|
-
logger.debug(`LOCATION: ${location}`);
|
|
172
|
-
};
|
|
173
|
-
|
|
179
|
+
index_1.logger.debug(`LOCATION: ${location}`);
|
|
180
|
+
});
|
|
181
|
+
exports.ebsiAuthRequestExecution = ebsiAuthRequestExecution;
|
|
182
|
+
const ebsiGetIssuer = ({ credentialIssuer, environment = 'pilot' }) => {
|
|
174
183
|
if (credentialIssuer) {
|
|
175
184
|
return credentialIssuer;
|
|
176
185
|
}
|
|
177
186
|
if (environment !== 'pilot') {
|
|
178
|
-
return `${getEbsiApiBaseUrl({ environment, version: 'v3' })}/issuer-mock`;
|
|
187
|
+
return `${(0, index_2.getEbsiApiBaseUrl)({ environment, version: 'v3' })}/issuer-mock`;
|
|
179
188
|
}
|
|
180
189
|
throw Error(`EBSI environment ${environment} needs explicit credential issuer`);
|
|
181
190
|
};
|
|
191
|
+
exports.ebsiGetIssuer = ebsiGetIssuer;
|
|
182
192
|
//# sourceMappingURL=Attestation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attestation.js","sourceRoot":"","sources":["../../src/functions/Attestation.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Attestation.js","sourceRoot":"","sources":["../../src/functions/Attestation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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.siopDoneCallback = exports.reviewCredentialsCallback = exports.authorizationCodeUrlCallback = exports.selectCredentialsCallback = exports.handleErrorCallback = exports.addContactCallback = void 0;
|
|
16
|
+
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
17
|
+
const ssi_sdk_data_store_1 = require("@sphereon/ssi-sdk.data-store");
|
|
18
|
+
const ssi_sdk_oid4vci_holder_1 = require("@sphereon/ssi-sdk.oid4vci-holder");
|
|
19
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
20
|
+
const index_1 = require("../index");
|
|
21
|
+
const addContactCallback = (context) => {
|
|
22
|
+
return (oid4vciMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
8
23
|
const { serverMetadata, hasContactConsent, contactAlias } = state.context;
|
|
9
24
|
if (!serverMetadata) {
|
|
10
25
|
return Promise.reject(Error('Missing serverMetadata in context'));
|
|
11
26
|
}
|
|
12
27
|
const issuerUrl = new URL(serverMetadata.issuer);
|
|
13
28
|
const correlationId = `${issuerUrl.protocol}//${issuerUrl.hostname}`;
|
|
14
|
-
let issuerName = getIssuerName(correlationId, serverMetadata.credentialIssuerMetadata);
|
|
29
|
+
let issuerName = (0, oid4vci_common_1.getIssuerName)(correlationId, serverMetadata.credentialIssuerMetadata);
|
|
15
30
|
const party = {
|
|
16
31
|
contact: {
|
|
17
32
|
displayName: issuerName,
|
|
@@ -22,8 +37,8 @@ export const addContactCallback = (context) => {
|
|
|
22
37
|
// TODO this is not used as the screen itself adds one, look at the params of the screen, this is not being passed in
|
|
23
38
|
partyType: {
|
|
24
39
|
id: '3875c12e-fdaa-4ef6-a340-c936e054b627',
|
|
25
|
-
origin: PartyOrigin.EXTERNAL,
|
|
26
|
-
type: PartyTypeType.ORGANIZATION,
|
|
40
|
+
origin: ssi_sdk_data_store_1.PartyOrigin.EXTERNAL,
|
|
41
|
+
type: ssi_sdk_data_store_1.PartyTypeType.ORGANIZATION,
|
|
27
42
|
name: 'Sphereon_default_type',
|
|
28
43
|
tenantId: '95e09cfc-c974-4174-86aa-7bf1d5251fb4',
|
|
29
44
|
},
|
|
@@ -31,15 +46,15 @@ export const addContactCallback = (context) => {
|
|
|
31
46
|
identities: [
|
|
32
47
|
{
|
|
33
48
|
alias: correlationId,
|
|
34
|
-
roles: [CredentialRole.ISSUER],
|
|
35
|
-
origin: IdentityOrigin.EXTERNAL,
|
|
49
|
+
roles: [ssi_sdk_data_store_1.CredentialRole.ISSUER],
|
|
50
|
+
origin: ssi_sdk_data_store_1.IdentityOrigin.EXTERNAL,
|
|
36
51
|
identifier: {
|
|
37
|
-
type: CorrelationIdentifierType.URL,
|
|
52
|
+
type: ssi_sdk_data_store_1.CorrelationIdentifierType.URL,
|
|
38
53
|
correlationId: issuerUrl.hostname,
|
|
39
54
|
},
|
|
40
55
|
// TODO WAL-476 add support for correct connection
|
|
41
56
|
connection: {
|
|
42
|
-
type: ConnectionType.OPENID_CONNECT,
|
|
57
|
+
type: ssi_sdk_data_store_1.ConnectionType.OPENID_CONNECT,
|
|
43
58
|
config: {
|
|
44
59
|
clientId: '138d7bf8-c930-4c6e-b928-97d3a4928b01',
|
|
45
60
|
clientSecret: '03b3955f-d020-4f2a-8a27-4e452d4e27a0',
|
|
@@ -53,9 +68,10 @@ export const addContactCallback = (context) => {
|
|
|
53
68
|
},
|
|
54
69
|
],
|
|
55
70
|
};
|
|
56
|
-
const onCreate =
|
|
57
|
-
|
|
58
|
-
const
|
|
71
|
+
const onCreate = (_a) => __awaiter(void 0, [_a], void 0, function* ({ party, issuerUrl, issuerName, correlationId, }) {
|
|
72
|
+
var _b, _c, _d;
|
|
73
|
+
const displayName = (_b = party.contact.displayName) !== null && _b !== void 0 ? _b : issuerName;
|
|
74
|
+
const contacts = yield context.agent.cmGetContacts({
|
|
59
75
|
filter: [
|
|
60
76
|
{
|
|
61
77
|
contact: {
|
|
@@ -65,36 +81,31 @@ export const addContactCallback = (context) => {
|
|
|
65
81
|
},
|
|
66
82
|
],
|
|
67
83
|
});
|
|
68
|
-
if (contacts.length === 0 || !contacts[0]
|
|
69
|
-
const contact =
|
|
70
|
-
|
|
71
|
-
displayName,
|
|
72
|
-
legalName: displayName,
|
|
73
|
-
contactType: {
|
|
74
|
-
type: PartyTypeType.ORGANIZATION,
|
|
84
|
+
if (contacts.length === 0 || !((_c = contacts[0]) === null || _c === void 0 ? void 0 : _c.contact)) {
|
|
85
|
+
const contact = yield context.agent.cmAddContact(Object.assign(Object.assign({}, party), { displayName, legalName: displayName, contactType: {
|
|
86
|
+
type: ssi_sdk_data_store_1.PartyTypeType.ORGANIZATION,
|
|
75
87
|
name: displayName,
|
|
76
|
-
origin: PartyOrigin.EXTERNAL,
|
|
77
|
-
tenantId: party.tenantId
|
|
78
|
-
}
|
|
79
|
-
});
|
|
88
|
+
origin: ssi_sdk_data_store_1.PartyOrigin.EXTERNAL,
|
|
89
|
+
tenantId: (_d = party.tenantId) !== null && _d !== void 0 ? _d : '1',
|
|
90
|
+
} }));
|
|
80
91
|
oid4vciMachine.send({
|
|
81
|
-
type: OID4VCIMachineEvents.CREATE_CONTACT,
|
|
92
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.CREATE_CONTACT,
|
|
82
93
|
data: contact,
|
|
83
94
|
});
|
|
84
95
|
}
|
|
85
|
-
};
|
|
86
|
-
const onConsentChange =
|
|
96
|
+
});
|
|
97
|
+
const onConsentChange = (hasConsent) => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
98
|
oid4vciMachine.send({
|
|
88
|
-
type: OID4VCIMachineEvents.SET_CONTACT_CONSENT,
|
|
99
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.SET_CONTACT_CONSENT,
|
|
89
100
|
data: hasConsent,
|
|
90
101
|
});
|
|
91
|
-
};
|
|
92
|
-
const onAliasChange =
|
|
102
|
+
});
|
|
103
|
+
const onAliasChange = (alias) => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
104
|
oid4vciMachine.send({
|
|
94
|
-
type: OID4VCIMachineEvents.SET_CONTACT_ALIAS,
|
|
105
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.SET_CONTACT_ALIAS,
|
|
95
106
|
data: alias,
|
|
96
107
|
});
|
|
97
|
-
};
|
|
108
|
+
});
|
|
98
109
|
if (!issuerName) {
|
|
99
110
|
issuerName = `EBSI unknown (${issuerUrl})`;
|
|
100
111
|
}
|
|
@@ -102,93 +113,101 @@ export const addContactCallback = (context) => {
|
|
|
102
113
|
issuerName = `EBSI ${issuerName.replace(/https?:\/\//, '')}`;
|
|
103
114
|
}
|
|
104
115
|
if (!contactAlias) {
|
|
105
|
-
return
|
|
116
|
+
return yield onAliasChange(issuerName);
|
|
106
117
|
}
|
|
107
118
|
issuerName = contactAlias;
|
|
108
119
|
if (!hasContactConsent) {
|
|
109
|
-
return
|
|
120
|
+
return yield onConsentChange(true);
|
|
110
121
|
}
|
|
111
|
-
|
|
112
|
-
};
|
|
122
|
+
yield onCreate({ party, issuerName, issuerUrl: issuerUrl.toString(), correlationId });
|
|
123
|
+
});
|
|
113
124
|
};
|
|
114
|
-
|
|
115
|
-
|
|
125
|
+
exports.addContactCallback = addContactCallback;
|
|
126
|
+
const handleErrorCallback = (context) => {
|
|
127
|
+
return (oid4vciMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
116
128
|
console.error(`error callback event: ${state.event}`, state.context.error);
|
|
117
|
-
};
|
|
129
|
+
});
|
|
118
130
|
};
|
|
119
|
-
|
|
120
|
-
|
|
131
|
+
exports.handleErrorCallback = handleErrorCallback;
|
|
132
|
+
const selectCredentialsCallback = (context) => {
|
|
133
|
+
return (oid4vciMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
134
|
const { contact, credentialToSelectFrom, selectedCredentials } = state.context;
|
|
122
135
|
if (selectedCredentials && selectedCredentials.length > 0) {
|
|
123
|
-
logger.info(`selected: ${selectedCredentials.join(', ')}`);
|
|
136
|
+
index_1.logger.info(`selected: ${selectedCredentials.join(', ')}`);
|
|
124
137
|
oid4vciMachine.send({
|
|
125
|
-
type: OID4VCIMachineEvents.NEXT,
|
|
138
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.NEXT,
|
|
126
139
|
});
|
|
127
140
|
return;
|
|
128
141
|
}
|
|
129
142
|
else if (!contact) {
|
|
130
143
|
return Promise.reject(Error('Missing contact in context'));
|
|
131
144
|
}
|
|
132
|
-
const onSelectType =
|
|
145
|
+
const onSelectType = (selectedCredentials) => __awaiter(void 0, void 0, void 0, function* () {
|
|
133
146
|
console.log(`Selected credentials: ${selectedCredentials.join(', ')}`);
|
|
134
147
|
oid4vciMachine.send({
|
|
135
|
-
type: OID4VCIMachineEvents.SET_SELECTED_CREDENTIALS,
|
|
148
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.SET_SELECTED_CREDENTIALS,
|
|
136
149
|
data: selectedCredentials,
|
|
137
150
|
});
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
};
|
|
151
|
+
});
|
|
152
|
+
yield onSelectType(credentialToSelectFrom.map((sel) => sel.credentialId));
|
|
153
|
+
});
|
|
141
154
|
};
|
|
142
|
-
|
|
143
|
-
|
|
155
|
+
exports.selectCredentialsCallback = selectCredentialsCallback;
|
|
156
|
+
const authorizationCodeUrlCallback = ({ authReqResult, vpLinkHandler, }, context) => {
|
|
157
|
+
return (oid4vciMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
158
|
const url = state.context.authorizationCodeURL;
|
|
145
159
|
console.log('navigateAuthorizationCodeURL: ', url);
|
|
146
160
|
if (!url) {
|
|
147
161
|
return Promise.reject(Error('Missing authorization URL in context'));
|
|
148
162
|
}
|
|
149
|
-
const onOpenAuthorizationUrl =
|
|
163
|
+
const onOpenAuthorizationUrl = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
+
var _a;
|
|
150
165
|
console.log('onOpenAuthorizationUrl being invoked: ', url);
|
|
151
166
|
oid4vciMachine.send({
|
|
152
|
-
type: OID4VCIMachineEvents.INVOKED_AUTHORIZATION_CODE_REQUEST,
|
|
167
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.INVOKED_AUTHORIZATION_CODE_REQUEST,
|
|
153
168
|
data: url,
|
|
154
169
|
});
|
|
155
|
-
const response =
|
|
170
|
+
const response = yield (0, cross_fetch_1.default)(url, { redirect: 'manual' });
|
|
156
171
|
if (response.status < 301 || response.status > 302) {
|
|
157
172
|
throw Error(`When doing a headless auth, we expect to be redirected on getting the authz URL`);
|
|
158
173
|
}
|
|
159
174
|
const openidUri = response.headers.get('location');
|
|
160
175
|
if (!openidUri || !openidUri.startsWith('openid://')) {
|
|
161
|
-
throw Error(`Expected a openid:// URI to be returned from EBSI in headless mode. Returned: ${openidUri}, ${JSON.stringify(
|
|
176
|
+
throw Error(`Expected a openid:// URI to be returned from EBSI in headless mode. Returned: ${openidUri}, ${JSON.stringify(yield response.text())}`);
|
|
162
177
|
}
|
|
163
178
|
console.log(`onOpenAuthorizationUrl after openUrl: ${url}`);
|
|
164
|
-
const kid = authReqResult.authKey.meta
|
|
179
|
+
const kid = ((_a = authReqResult.authKey.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint)
|
|
165
180
|
? `${authReqResult.identifier.did}#${authReqResult.authKey.meta.jwkThumbprint}`
|
|
166
181
|
: authReqResult.authKey.kid;
|
|
167
|
-
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
};
|
|
182
|
+
yield vpLinkHandler.handle(openidUri, { idOpts: { identifier: authReqResult.identifier, kid } });
|
|
183
|
+
});
|
|
184
|
+
yield onOpenAuthorizationUrl(url);
|
|
185
|
+
});
|
|
171
186
|
};
|
|
172
|
-
|
|
173
|
-
|
|
187
|
+
exports.authorizationCodeUrlCallback = authorizationCodeUrlCallback;
|
|
188
|
+
const reviewCredentialsCallback = (context) => {
|
|
189
|
+
return (oid4vciMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
190
|
console.log(`# REVIEW CREDENTIALS:`);
|
|
175
191
|
console.log(JSON.stringify(state.context.credentialsToAccept, null, 2));
|
|
176
192
|
oid4vciMachine.send({
|
|
177
|
-
type: OID4VCIMachineEvents.NEXT,
|
|
193
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.NEXT,
|
|
178
194
|
});
|
|
179
|
-
};
|
|
195
|
+
});
|
|
180
196
|
};
|
|
181
|
-
|
|
182
|
-
|
|
197
|
+
exports.reviewCredentialsCallback = reviewCredentialsCallback;
|
|
198
|
+
const siopDoneCallback = ({ oid4vciMachine }, context) => {
|
|
199
|
+
return (oid4vpMachine, state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
200
|
+
var _a, _b;
|
|
183
201
|
// console.log('SIOP result:')
|
|
184
202
|
// console.log(JSON.stringify(state.context, null , 2))
|
|
185
|
-
if (!state.context.authorizationResponseData
|
|
203
|
+
if (!((_b = (_a = state.context.authorizationResponseData) === null || _a === void 0 ? void 0 : _a.queryParams) === null || _b === void 0 ? void 0 : _b.code)) {
|
|
186
204
|
throw Error(`No code was returned from the authorization step`);
|
|
187
205
|
}
|
|
188
206
|
oid4vciMachine.interpreter.send({
|
|
189
|
-
type: OID4VCIMachineEvents.PROVIDE_AUTHORIZATION_CODE_RESPONSE,
|
|
207
|
+
type: ssi_sdk_oid4vci_holder_1.OID4VCIMachineEvents.PROVIDE_AUTHORIZATION_CODE_RESPONSE,
|
|
190
208
|
data: state.context.authorizationResponseData.url,
|
|
191
209
|
});
|
|
192
|
-
};
|
|
210
|
+
});
|
|
193
211
|
};
|
|
212
|
+
exports.siopDoneCallback = siopDoneCallback;
|
|
194
213
|
//# sourceMappingURL=AttestationHeadlessCallbacks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttestationHeadlessCallbacks.js","sourceRoot":"","sources":["../../src/functions/AttestationHeadlessCallbacks.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"AttestationHeadlessCallbacks.js","sourceRoot":"","sources":["../../src/functions/AttestationHeadlessCallbacks.ts"],"names":[],"mappings":"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"}
|