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