@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api 0.34.1-feature.SSISDK.58.host.nonce.endpoint.145 → 0.34.1-feature.SSISDK.58.host.nonce.endpoint.194
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/index.cjs +203 -125
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +101 -9
- package/dist/index.d.ts +101 -9
- package/dist/index.js +200 -122
- package/dist/index.js.map +1 -1
- package/package.json +21 -20
- package/src/index.ts +1 -1
- package/src/middleware/validationMiddleware.ts +20 -0
- package/src/schemas/index.ts +36 -0
- package/src/siop-api-functions.ts +12 -12
- package/src/siopv2-rp-api-server.ts +9 -10
- package/src/types/types.ts +69 -3
- package/src/universal-oid4vp-api-functions.ts +179 -0
- package/src/webapp-api-functions.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -32,11 +32,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
32
32
|
var index_exports = {};
|
|
33
33
|
__export(index_exports, {
|
|
34
34
|
SIOPv2RPApiServer: () => SIOPv2RPApiServer,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
authStatusUniversalOID4VPEndpoint: () => authStatusUniversalOID4VPEndpoint,
|
|
36
|
+
createAuthRequestUniversalOID4VPEndpoint: () => createAuthRequestUniversalOID4VPEndpoint,
|
|
37
37
|
getAuthRequestSIOPv2Endpoint: () => getAuthRequestSIOPv2Endpoint,
|
|
38
38
|
getDefinitionsEndpoint: () => getDefinitionsEndpoint,
|
|
39
|
-
|
|
39
|
+
removeAuthRequestStateUniversalOID4VPEndpoint: () => removeAuthRequestStateUniversalOID4VPEndpoint,
|
|
40
40
|
verifyAuthResponseSIOPv2Endpoint: () => verifyAuthResponseSIOPv2Endpoint
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -74,9 +74,9 @@ function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
|
74
74
|
const path = opts?.path ?? "/siop/definitions/:definitionId/auth-responses/:correlationId";
|
|
75
75
|
router.post(path, (0, import_ssi_express_support.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
76
76
|
try {
|
|
77
|
-
const { correlationId,
|
|
78
|
-
if (!correlationId || !
|
|
79
|
-
console.log(`No authorization request could be found for the given url. correlationId: ${correlationId},
|
|
77
|
+
const { correlationId, queryId, tenantId, version } = request.params;
|
|
78
|
+
if (!correlationId || !queryId) {
|
|
79
|
+
console.log(`No authorization request could be found for the given url. correlationId: ${correlationId}, queryId: ${queryId}`);
|
|
80
80
|
return (0, import_ssi_express_support.sendErrorResponse)(response, 404, "No authorization request could be found");
|
|
81
81
|
}
|
|
82
82
|
console.log("Authorization Response (siop-sessions");
|
|
@@ -84,16 +84,16 @@ function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
|
84
84
|
const definitionItems = await context.agent.pdmGetDefinitions({
|
|
85
85
|
filter: [
|
|
86
86
|
{
|
|
87
|
-
|
|
87
|
+
queryId,
|
|
88
88
|
tenantId,
|
|
89
89
|
version
|
|
90
90
|
}
|
|
91
91
|
]
|
|
92
92
|
});
|
|
93
93
|
if (definitionItems.length === 0) {
|
|
94
|
-
console.log(`Could not get definition ${
|
|
94
|
+
console.log(`Could not get definition ${queryId} from agent. Will return 404`);
|
|
95
95
|
response.statusCode = 404;
|
|
96
|
-
response.statusMessage = `No definition ${
|
|
96
|
+
response.statusMessage = `No definition ${queryId}`;
|
|
97
97
|
return response.send();
|
|
98
98
|
}
|
|
99
99
|
const authorizationResponse = parseAuthorizationResponse(request);
|
|
@@ -102,8 +102,8 @@ function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
|
102
102
|
const verifiedResponse = await context.agent.siopVerifyAuthResponse({
|
|
103
103
|
authorizationResponse,
|
|
104
104
|
correlationId,
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
queryId,
|
|
106
|
+
dcqlQuery: definitionItem.query
|
|
107
107
|
});
|
|
108
108
|
const presentation = verifiedResponse?.oid4vpSubmission?.presentation;
|
|
109
109
|
if (presentation && Object.keys(presentation).length > 0) {
|
|
@@ -118,7 +118,7 @@ function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
|
118
118
|
}
|
|
119
119
|
const responseRedirectURI = await context.agent.siopGetRedirectURI({
|
|
120
120
|
correlationId,
|
|
121
|
-
|
|
121
|
+
queryId,
|
|
122
122
|
state: verifiedResponse.state
|
|
123
123
|
});
|
|
124
124
|
if (responseRedirectURI) {
|
|
@@ -156,7 +156,7 @@ function getAuthRequestSIOPv2Endpoint(router, context, opts) {
|
|
|
156
156
|
}
|
|
157
157
|
const requestState = await context.agent.siopGetAuthRequestState({
|
|
158
158
|
correlationId,
|
|
159
|
-
definitionId,
|
|
159
|
+
queryId: definitionId,
|
|
160
160
|
errorOnNotFound: false
|
|
161
161
|
});
|
|
162
162
|
if (!requestState) {
|
|
@@ -177,8 +177,8 @@ function getAuthRequestSIOPv2Endpoint(router, context, opts) {
|
|
|
177
177
|
} finally {
|
|
178
178
|
await context.agent.siopUpdateAuthRequestState({
|
|
179
179
|
correlationId,
|
|
180
|
-
definitionId,
|
|
181
|
-
state: "
|
|
180
|
+
queryId: definitionId,
|
|
181
|
+
state: "authorization_request_created",
|
|
182
182
|
error
|
|
183
183
|
});
|
|
184
184
|
}
|
|
@@ -189,46 +189,126 @@ function getAuthRequestSIOPv2Endpoint(router, context, opts) {
|
|
|
189
189
|
}
|
|
190
190
|
__name(getAuthRequestSIOPv2Endpoint, "getAuthRequestSIOPv2Endpoint");
|
|
191
191
|
|
|
192
|
-
// src/
|
|
193
|
-
var
|
|
192
|
+
// src/universal-oid4vp-api-functions.ts
|
|
193
|
+
var import_did_auth_siop2 = require("@sphereon/did-auth-siop");
|
|
194
194
|
var import_ssi_express_support2 = require("@sphereon/ssi-express-support");
|
|
195
195
|
var import_ssi_sdk = require("@sphereon/ssi-sdk.siopv2-oid4vp-common");
|
|
196
|
-
var import_ssi_sdk2 = require("@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth");
|
|
197
196
|
var import_short_uuid = __toESM(require("short-uuid"), 1);
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
|
|
198
|
+
// src/middleware/validationMiddleware.ts
|
|
199
|
+
var import_zod = require("zod");
|
|
200
|
+
var validateData = /* @__PURE__ */ __name((schema) => {
|
|
201
|
+
return (req, res, next) => {
|
|
202
|
+
try {
|
|
203
|
+
schema.parse(req.body);
|
|
204
|
+
next();
|
|
205
|
+
} catch (error) {
|
|
206
|
+
if (error instanceof import_zod.ZodError) {
|
|
207
|
+
const errorMessages = error.issues.map((issue) => ({
|
|
208
|
+
message: `${issue.path.join(".")} is ${issue.message}`
|
|
209
|
+
}));
|
|
210
|
+
res.status(400).json({
|
|
211
|
+
status: 400,
|
|
212
|
+
message: "Invalid data",
|
|
213
|
+
error_details: errorMessages[0].message
|
|
214
|
+
});
|
|
215
|
+
} else {
|
|
216
|
+
res.status(500).json({
|
|
217
|
+
status: 500,
|
|
218
|
+
message: "Internal Server Error"
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}, "validateData");
|
|
224
|
+
|
|
225
|
+
// src/schemas/index.ts
|
|
226
|
+
var import_did_auth_siop = require("@sphereon/did-auth-siop");
|
|
227
|
+
var import_zod2 = require("zod");
|
|
228
|
+
var ResponseTypeSchema = import_zod2.z.enum([
|
|
229
|
+
import_did_auth_siop.ResponseType.VP_TOKEN
|
|
230
|
+
]);
|
|
231
|
+
var ResponseModeSchema = import_zod2.z.enum([
|
|
232
|
+
import_did_auth_siop.ResponseMode.DIRECT_POST,
|
|
233
|
+
import_did_auth_siop.ResponseMode.DIRECT_POST_JWT
|
|
234
|
+
]);
|
|
235
|
+
var requestUriMethods = [
|
|
236
|
+
"get",
|
|
237
|
+
"post"
|
|
238
|
+
];
|
|
239
|
+
var RequestUriMethodSchema = import_zod2.z.enum(requestUriMethods);
|
|
240
|
+
var QRCodeOptsSchema = import_zod2.z.object({
|
|
241
|
+
size: import_zod2.z.number().optional(),
|
|
242
|
+
color_dark: import_zod2.z.string().optional(),
|
|
243
|
+
color_light: import_zod2.z.string().optional()
|
|
244
|
+
});
|
|
245
|
+
var CreateAuthorizationRequestBodySchema = import_zod2.z.object({
|
|
246
|
+
query_id: import_zod2.z.string(),
|
|
247
|
+
client_id: import_zod2.z.string().optional(),
|
|
248
|
+
request_uri_base: import_zod2.z.string().optional(),
|
|
249
|
+
correlation_id: import_zod2.z.string().optional(),
|
|
250
|
+
request_uri_method: RequestUriMethodSchema.optional(),
|
|
251
|
+
response_type: ResponseTypeSchema.optional(),
|
|
252
|
+
response_mode: ResponseModeSchema.optional(),
|
|
253
|
+
transaction_data: import_zod2.z.array(import_zod2.z.string()).optional(),
|
|
254
|
+
qr_code: QRCodeOptsSchema.optional(),
|
|
255
|
+
direct_post_response_redirect_uri: import_zod2.z.string().optional(),
|
|
256
|
+
callback: import_did_auth_siop.CallbackOptsSchema.optional()
|
|
257
|
+
});
|
|
258
|
+
var CreateAuthorizationResponseSchema = import_zod2.z.object({
|
|
259
|
+
correlation_id: import_zod2.z.string(),
|
|
260
|
+
query_id: import_zod2.z.string(),
|
|
261
|
+
request_uri: import_zod2.z.string(),
|
|
262
|
+
status_uri: import_zod2.z.string(),
|
|
263
|
+
qr_uri: import_zod2.z.string().optional()
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
// src/universal-oid4vp-api-functions.ts
|
|
267
|
+
function createAuthRequestUniversalOID4VPEndpoint(router, context, opts) {
|
|
200
268
|
if (opts?.enabled === false) {
|
|
201
|
-
console.log(`createAuthRequest
|
|
269
|
+
console.log(`createAuthRequest universal OID4VP endpoint is disabled`);
|
|
202
270
|
return;
|
|
203
271
|
}
|
|
204
|
-
const path = opts?.path ?? "/
|
|
205
|
-
router.post(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
272
|
+
const path = opts?.path ?? "/backend/auth/requests";
|
|
273
|
+
router.post(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), validateData(CreateAuthorizationRequestBodySchema), async (request, response) => {
|
|
206
274
|
try {
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
275
|
+
const correlationId = request.body.correlation_id ?? import_short_uuid.default.uuid();
|
|
276
|
+
const qrCodeOpts = request.body.qr_code ?? opts?.qrCodeOpts;
|
|
277
|
+
const queryId = request.body.query_id;
|
|
278
|
+
const directPostResponseRedirectUri = request.body.direct_post_response_redirect_uri;
|
|
279
|
+
const requestUriBase = request.body.request_uri_base;
|
|
280
|
+
const callback = request.body.callback;
|
|
281
|
+
const definitionItems = await context.agent.pdmGetDefinitions({
|
|
282
|
+
filter: [
|
|
283
|
+
{
|
|
284
|
+
queryId
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
});
|
|
288
|
+
if (definitionItems.length === 0) {
|
|
289
|
+
console.log(`No query could be found for the given id. Query id: ${queryId}`);
|
|
290
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 404, {
|
|
291
|
+
status: 404,
|
|
292
|
+
message: "No query could be found"
|
|
293
|
+
});
|
|
210
294
|
}
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
const qrCodeOpts = request.body.qrCodeOpts ?? opts?.qrCodeOpts;
|
|
214
|
-
const requestByReferenceURI = (0, import_ssi_sdk.uriWithBase)(`/siop/definitions/${definitionId}/auth-requests/${state}`, {
|
|
215
|
-
baseURI: opts?.siopBaseURI
|
|
295
|
+
const requestByReferenceURI = (0, import_ssi_sdk.uriWithBase)(`/siop/definitions/${queryId}/auth-requests/${correlationId}`, {
|
|
296
|
+
baseURI: requestUriBase ?? opts?.siopBaseURI
|
|
216
297
|
});
|
|
217
|
-
const responseURI = (0, import_ssi_sdk.uriWithBase)(`/siop/definitions/${
|
|
298
|
+
const responseURI = (0, import_ssi_sdk.uriWithBase)(`/siop/definitions/${queryId}/auth-responses/${correlationId}`, {
|
|
218
299
|
baseURI: opts?.siopBaseURI
|
|
219
300
|
});
|
|
220
|
-
const responseRedirectURI = ("response_redirect_uri" in request.body && request.body.response_redirect_uri) ?? ("responseRedirectURI" in request.body && request.body.responseRedirectURI);
|
|
221
301
|
const authRequestURI = await context.agent.siopCreateAuthRequestURI({
|
|
222
|
-
|
|
302
|
+
queryId,
|
|
223
303
|
correlationId,
|
|
224
|
-
state,
|
|
225
304
|
nonce: import_short_uuid.default.uuid(),
|
|
226
305
|
requestByReferenceURI,
|
|
227
306
|
responseURIType: "response_uri",
|
|
228
307
|
responseURI,
|
|
229
|
-
...
|
|
230
|
-
responseRedirectURI
|
|
231
|
-
}
|
|
308
|
+
...directPostResponseRedirectUri && {
|
|
309
|
+
responseRedirectURI: directPostResponseRedirectUri
|
|
310
|
+
},
|
|
311
|
+
callback
|
|
232
312
|
});
|
|
233
313
|
let qrCodeDataUri;
|
|
234
314
|
if (qrCodeOpts) {
|
|
@@ -240,140 +320,138 @@ function createAuthRequestWebappEndpoint(router, context, opts) {
|
|
|
240
320
|
qrCodeDataUri = `data:image/png;base64,${(await qrCode.draw()).toString("base64")}`;
|
|
241
321
|
}
|
|
242
322
|
const authRequestBody = {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
authStatusURI: `${(0, import_ssi_sdk.uriWithBase)(opts?.webappAuthStatusPath ?? "/webapp/auth-status", {
|
|
323
|
+
query_id: queryId,
|
|
324
|
+
correlation_id: correlationId,
|
|
325
|
+
request_uri: authRequestURI,
|
|
326
|
+
status_uri: `${(0, import_ssi_sdk.uriWithBase)(opts?.webappAuthStatusPath ?? `/backend/auth/status/${correlationId}`, {
|
|
248
327
|
baseURI: opts?.webappBaseURI
|
|
249
328
|
})}`,
|
|
250
329
|
...qrCodeDataUri && {
|
|
251
|
-
qrCodeDataUri
|
|
330
|
+
qr_uri: qrCodeDataUri
|
|
252
331
|
}
|
|
253
332
|
};
|
|
254
333
|
console.log(`Auth Request URI data to send back: ${JSON.stringify(authRequestBody)}`);
|
|
255
|
-
return response.json(authRequestBody);
|
|
334
|
+
return response.status(201).json(authRequestBody);
|
|
256
335
|
} catch (error) {
|
|
257
|
-
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500,
|
|
336
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500, {
|
|
337
|
+
status: 500,
|
|
338
|
+
message: "Could not create an authorization request URI"
|
|
339
|
+
}, error);
|
|
258
340
|
}
|
|
259
341
|
});
|
|
260
342
|
}
|
|
261
|
-
__name(
|
|
262
|
-
function
|
|
343
|
+
__name(createAuthRequestUniversalOID4VPEndpoint, "createAuthRequestUniversalOID4VPEndpoint");
|
|
344
|
+
function removeAuthRequestStateUniversalOID4VPEndpoint(router, context, opts) {
|
|
263
345
|
if (opts?.enabled === false) {
|
|
264
|
-
console.log(`
|
|
346
|
+
console.log(`removeAuthStatus universal OID4VP endpoint is disabled`);
|
|
265
347
|
return;
|
|
266
348
|
}
|
|
267
|
-
const path = opts?.path ?? "/
|
|
268
|
-
router.
|
|
349
|
+
const path = opts?.path ?? "/backend/auth/requests/:correlationId";
|
|
350
|
+
router.delete(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
269
351
|
try {
|
|
270
|
-
|
|
271
|
-
const
|
|
272
|
-
const definitionId = request.body.definitionId;
|
|
273
|
-
const requestState = correlationId && definitionId ? await context.agent.siopGetAuthRequestState({
|
|
352
|
+
const correlationId = request.params.correlationId;
|
|
353
|
+
const authRequestState = await context.agent.siopGetAuthRequestState({
|
|
274
354
|
correlationId,
|
|
275
|
-
definitionId,
|
|
276
355
|
errorOnNotFound: false
|
|
277
|
-
})
|
|
278
|
-
if (!
|
|
279
|
-
console.log(`No
|
|
280
|
-
response
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
correlationId,
|
|
285
|
-
definitionId,
|
|
286
|
-
lastUpdated: requestState ? requestState.lastUpdated : Date.now()
|
|
287
|
-
};
|
|
288
|
-
return response.json(statusBody2);
|
|
356
|
+
});
|
|
357
|
+
if (!authRequestState) {
|
|
358
|
+
console.log(`No authorization request could be found for the given correlationId. correlationId: ${correlationId}`);
|
|
359
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 404, {
|
|
360
|
+
status: 404,
|
|
361
|
+
message: "No authorization request could be found"
|
|
362
|
+
});
|
|
289
363
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
364
|
+
await context.agent.siopDeleteAuthState({
|
|
365
|
+
correlationId
|
|
366
|
+
});
|
|
367
|
+
return response.status(204).json();
|
|
368
|
+
} catch (error) {
|
|
369
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500, {
|
|
370
|
+
status: 500,
|
|
371
|
+
message: error.message
|
|
372
|
+
}, error);
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
__name(removeAuthRequestStateUniversalOID4VPEndpoint, "removeAuthRequestStateUniversalOID4VPEndpoint");
|
|
377
|
+
function authStatusUniversalOID4VPEndpoint(router, context, opts) {
|
|
378
|
+
if (opts?.enabled === false) {
|
|
379
|
+
console.log(`authStatus universal OID4VP endpoint is disabled`);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
const path = opts?.path ?? "/backend/auth/status/:correlationId";
|
|
383
|
+
router.get(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
384
|
+
try {
|
|
385
|
+
console.log("Received auth-status request...");
|
|
386
|
+
const correlationId = request.params.correlationId;
|
|
387
|
+
const requestState = await context.agent.siopGetAuthRequestState({
|
|
388
|
+
correlationId,
|
|
389
|
+
errorOnNotFound: false
|
|
390
|
+
});
|
|
391
|
+
if (!requestState) {
|
|
392
|
+
console.log(`No authorization request could be found for the given correlationId. correlationId: ${correlationId}`);
|
|
393
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 404, {
|
|
394
|
+
status: 404,
|
|
395
|
+
message: "No authorization request could be found"
|
|
396
|
+
});
|
|
293
397
|
}
|
|
294
398
|
let responseState;
|
|
295
|
-
if (requestState.status === "
|
|
399
|
+
if (requestState.status === "authorization_request_created") {
|
|
296
400
|
responseState = await context.agent.siopGetAuthResponseState({
|
|
297
401
|
correlationId,
|
|
298
|
-
definitionId,
|
|
299
|
-
includeVerifiedData,
|
|
300
402
|
errorOnNotFound: false
|
|
301
403
|
});
|
|
302
404
|
}
|
|
303
405
|
const overallState = responseState ?? requestState;
|
|
304
406
|
const statusBody = {
|
|
305
407
|
status: overallState.status,
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
...
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}),
|
|
316
|
-
verifiedData: responseState.verifiedData
|
|
317
|
-
} : {}
|
|
408
|
+
correlation_id: overallState.correlationId,
|
|
409
|
+
query_id: overallState.queryId,
|
|
410
|
+
last_updated: overallState.lastUpdated,
|
|
411
|
+
...responseState?.status === import_did_auth_siop2.AuthorizationResponseStateStatus.VERIFIED && responseState.verifiedData !== void 0 && {
|
|
412
|
+
verified_data: responseState.verifiedData
|
|
413
|
+
},
|
|
414
|
+
...overallState.error && {
|
|
415
|
+
message: overallState.error.message
|
|
416
|
+
}
|
|
318
417
|
};
|
|
319
418
|
console.debug(`Will send auth status: ${JSON.stringify(statusBody)}`);
|
|
320
419
|
if (overallState.status === "error") {
|
|
321
|
-
response.
|
|
322
|
-
return response.json(statusBody);
|
|
420
|
+
return response.status(500).json(statusBody);
|
|
323
421
|
}
|
|
324
|
-
response.
|
|
325
|
-
return response.json(statusBody);
|
|
326
|
-
} catch (error) {
|
|
327
|
-
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500, error.message, error);
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
__name(authStatusWebappEndpoint, "authStatusWebappEndpoint");
|
|
332
|
-
function removeAuthRequestStateWebappEndpoint(router, context, opts) {
|
|
333
|
-
if (opts?.enabled === false) {
|
|
334
|
-
console.log(`removeAuthStatus Webapp endpoint is disabled`);
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
const path = opts?.path ?? "/webapp/definitions/:definitionId/auth-requests/:correlationId";
|
|
338
|
-
router.delete(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
339
|
-
try {
|
|
340
|
-
const correlationId = request.params.correlationId;
|
|
341
|
-
const definitionId = request.params.definitionId;
|
|
342
|
-
if (!correlationId || !definitionId) {
|
|
343
|
-
console.log(`No authorization request could be found for the given url. correlationId: ${correlationId}, definitionId: ${definitionId}`);
|
|
344
|
-
return (0, import_ssi_express_support2.sendErrorResponse)(response, 404, "No authorization request could be found");
|
|
345
|
-
}
|
|
346
|
-
response.statusCode = 200;
|
|
347
|
-
return response.json(await context.agent.siopDeleteAuthState({
|
|
348
|
-
definitionId,
|
|
349
|
-
correlationId
|
|
350
|
-
}));
|
|
422
|
+
return response.status(200).json(statusBody);
|
|
351
423
|
} catch (error) {
|
|
352
|
-
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500,
|
|
424
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500, {
|
|
425
|
+
status: 500,
|
|
426
|
+
message: error.message
|
|
427
|
+
}, error);
|
|
353
428
|
}
|
|
354
429
|
});
|
|
355
430
|
}
|
|
356
|
-
__name(
|
|
431
|
+
__name(authStatusUniversalOID4VPEndpoint, "authStatusUniversalOID4VPEndpoint");
|
|
357
432
|
function getDefinitionsEndpoint(router, context, opts) {
|
|
358
433
|
if (opts?.enabled === false) {
|
|
359
|
-
console.log(`getDefinitions
|
|
434
|
+
console.log(`getDefinitions universal OID4VP endpoint is disabled`);
|
|
360
435
|
return;
|
|
361
436
|
}
|
|
362
|
-
const path = opts?.path ?? "/
|
|
437
|
+
const path = opts?.path ?? "/backend/definitions";
|
|
363
438
|
router.get(path, (0, import_ssi_express_support2.checkAuth)(opts?.endpoint), async (request, response) => {
|
|
364
439
|
try {
|
|
365
440
|
const definitions = await context.agent.pdmGetDefinitions();
|
|
366
441
|
response.statusCode = 200;
|
|
367
442
|
return response.json(definitions);
|
|
368
443
|
} catch (error) {
|
|
369
|
-
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500,
|
|
444
|
+
return (0, import_ssi_express_support2.sendErrorResponse)(response, 500, {
|
|
445
|
+
status: 500,
|
|
446
|
+
message: error.message
|
|
447
|
+
}, error);
|
|
370
448
|
}
|
|
371
449
|
});
|
|
372
450
|
}
|
|
373
451
|
__name(getDefinitionsEndpoint, "getDefinitionsEndpoint");
|
|
374
452
|
|
|
375
453
|
// src/siopv2-rp-api-server.ts
|
|
376
|
-
var
|
|
454
|
+
var import_ssi_sdk2 = require("@sphereon/ssi-sdk.core");
|
|
377
455
|
var import_ssi_express_support3 = require("@sphereon/ssi-express-support");
|
|
378
456
|
var import_express = __toESM(require("express"), 1);
|
|
379
457
|
var import_swagger_ui_express = __toESM(require("swagger-ui-express"), 1);
|
|
@@ -410,16 +488,16 @@ var SIOPv2RPApiServer = class {
|
|
|
410
488
|
this._opts = opts;
|
|
411
489
|
this._express = args.expressSupport.express;
|
|
412
490
|
this._router = import_express.default.Router();
|
|
413
|
-
const context = (0,
|
|
491
|
+
const context = (0, import_ssi_sdk2.agentContext)(agent);
|
|
414
492
|
const features = opts?.enableFeatures ?? [
|
|
415
493
|
"rp-status",
|
|
416
494
|
"siop"
|
|
417
495
|
];
|
|
418
496
|
console.log(`SIOPv2 API enabled, with features: ${JSON.stringify(features)}}`);
|
|
419
497
|
if (features.includes("rp-status")) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
498
|
+
createAuthRequestUniversalOID4VPEndpoint(this._router, context, opts?.endpointOpts?.webappCreateAuthRequest);
|
|
499
|
+
authStatusUniversalOID4VPEndpoint(this._router, context, opts?.endpointOpts?.webappAuthStatus);
|
|
500
|
+
removeAuthRequestStateUniversalOID4VPEndpoint(this._router, context, opts?.endpointOpts?.webappDeleteAuthRequest);
|
|
423
501
|
getDefinitionsEndpoint(this._router, context, opts?.endpointOpts?.webappGetDefinitions);
|
|
424
502
|
}
|
|
425
503
|
if (features.includes("siop")) {
|