11/*!
22 * Copyright (c) 2023-2025 Digital Bazaar, Inc. All rights reserved.
33 */
4- import { createNamedError , selectJwk } from '../util.js' ;
4+ import { createNamedError , parseJSON , selectJwk } from '../util.js' ;
55import { importJWK , jwtDecrypt } from 'jose' ;
66
77// parses (and decrypts) an authz response from a response body object
@@ -31,7 +31,7 @@ export async function parseAuthorizationResponse({
3131 responseMode = 'direct_post' ;
3232 _assertSupportedResponseMode ( { responseMode, supportedResponseModes} ) ;
3333 payload = body ;
34- parsed . presentationSubmission = _jsonParse (
34+ parsed . presentationSubmission = parseJSON (
3535 payload . presentation_submission , 'presentation_submission' ) ;
3636 }
3737
@@ -46,7 +46,7 @@ export async function parseAuthorizationResponse({
4646 if ( typeof vp_token === 'string' &&
4747 ( vp_token . startsWith ( '{' ) || vp_token . startsWith ( '[' ) ||
4848 vp_token . startsWith ( '"' ) ) ) {
49- parsed . vpToken = _jsonParse ( vp_token , 'vp_token' ) ;
49+ parsed . vpToken = parseJSON ( vp_token , 'vp_token' ) ;
5050 } else {
5151 parsed . vpToken = vp_token ;
5252 }
@@ -100,16 +100,3 @@ async function _decrypt({jwt, getDecryptParameters}) {
100100 keyManagementAlgorithms : [ 'ECDH-ES' ]
101101 } ) ;
102102}
103-
104- function _jsonParse ( x , name ) {
105- try {
106- return JSON . parse ( x ) ;
107- } catch ( cause ) {
108- throw createNamedError ( {
109- message : `Could not parse "${ name } ".` ,
110- name : 'DataError' ,
111- details : { httpStatusCode : 400 , public : true } ,
112- cause
113- } ) ;
114- }
115- }
0 commit comments