@sphereon/ssi-sdk.oid4vci-holder 0.34.1-next.7 → 0.34.1-next.86
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 +78 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -5
- package/dist/index.d.ts +7 -5
- package/dist/index.js +57 -34
- package/dist/index.js.map +1 -1
- package/package.json +25 -24
- package/src/agent/OID4VCIHolder.ts +35 -21
- package/src/services/OID4VCIHolderService.ts +28 -6
- package/src/types/FirstPartyMachine.ts +3 -2
- package/src/types/IOID4VCIHolder.ts +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.oid4vci-holder",
|
|
3
|
-
"version": "0.34.1-next.
|
|
3
|
+
"version": "0.34.1-next.86+38dc1ac2",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -26,40 +26,41 @@
|
|
|
26
26
|
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sphereon/did-auth-siop": "0.19.1-
|
|
29
|
+
"@sphereon/did-auth-siop": "0.19.1-feature.SSISDK.45.86",
|
|
30
30
|
"@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.26",
|
|
31
|
-
"@sphereon/oid4vci-client": "0.19.1-
|
|
32
|
-
"@sphereon/oid4vci-common": "0.19.1-
|
|
33
|
-
"@sphereon/ssi-sdk-ext.did-utils": "0.
|
|
34
|
-
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.
|
|
35
|
-
"@sphereon/ssi-sdk-ext.jwt-service": "0.
|
|
36
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.
|
|
37
|
-
"@sphereon/ssi-sdk.contact-manager": "0.34.1-next.
|
|
38
|
-
"@sphereon/ssi-sdk.core": "0.34.1-next.
|
|
39
|
-
"@sphereon/ssi-sdk.credential-store": "0.34.1-next.
|
|
40
|
-
"@sphereon/ssi-sdk.credential-validation": "0.34.1-next.
|
|
41
|
-
"@sphereon/ssi-sdk.data-store": "0.34.1-next.
|
|
42
|
-
"@sphereon/ssi-sdk.issuance-branding": "0.34.1-next.
|
|
43
|
-
"@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-next.
|
|
44
|
-
"@sphereon/ssi-sdk.oidf-client": "0.34.1-next.
|
|
45
|
-
"@sphereon/ssi-sdk.sd-jwt": "0.34.1-next.
|
|
46
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.34.1-next.
|
|
47
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.34.1-next.
|
|
48
|
-
"@sphereon/ssi-sdk.xstate-machine-persistence": "0.34.1-next.
|
|
49
|
-
"@sphereon/ssi-types": "0.34.1-next.
|
|
31
|
+
"@sphereon/oid4vci-client": "0.19.1-feature.SSISDK.45.86",
|
|
32
|
+
"@sphereon/oid4vci-common": "0.19.1-feature.SSISDK.45.86",
|
|
33
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.34.1-next.86+38dc1ac2",
|
|
34
|
+
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.34.1-next.86+38dc1ac2",
|
|
35
|
+
"@sphereon/ssi-sdk-ext.jwt-service": "0.34.1-next.86+38dc1ac2",
|
|
36
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-next.86+38dc1ac2",
|
|
37
|
+
"@sphereon/ssi-sdk.contact-manager": "0.34.1-next.86+38dc1ac2",
|
|
38
|
+
"@sphereon/ssi-sdk.core": "0.34.1-next.86+38dc1ac2",
|
|
39
|
+
"@sphereon/ssi-sdk.credential-store": "0.34.1-next.86+38dc1ac2",
|
|
40
|
+
"@sphereon/ssi-sdk.credential-validation": "0.34.1-next.86+38dc1ac2",
|
|
41
|
+
"@sphereon/ssi-sdk.data-store": "0.34.1-next.86+38dc1ac2",
|
|
42
|
+
"@sphereon/ssi-sdk.issuance-branding": "0.34.1-next.86+38dc1ac2",
|
|
43
|
+
"@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-next.86+38dc1ac2",
|
|
44
|
+
"@sphereon/ssi-sdk.oidf-client": "0.34.1-next.86+38dc1ac2",
|
|
45
|
+
"@sphereon/ssi-sdk.sd-jwt": "0.34.1-next.86+38dc1ac2",
|
|
46
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.34.1-next.86+38dc1ac2",
|
|
47
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.34.1-next.86+38dc1ac2",
|
|
48
|
+
"@sphereon/ssi-sdk.xstate-machine-persistence": "0.34.1-next.86+38dc1ac2",
|
|
49
|
+
"@sphereon/ssi-types": "0.34.1-next.86+38dc1ac2",
|
|
50
50
|
"@veramo/core": "4.2.0",
|
|
51
51
|
"@veramo/data-store": "4.2.0",
|
|
52
52
|
"@veramo/utils": "4.2.0",
|
|
53
53
|
"ajv": "^8.17.1",
|
|
54
54
|
"ajv-formats": "^3.0.1",
|
|
55
|
+
"dcql": "1.0.1",
|
|
55
56
|
"i18n-js": "^3.9.2",
|
|
56
57
|
"lodash.memoize": "^4.1.2",
|
|
57
58
|
"uuid": "^9.0.1",
|
|
58
59
|
"xstate": "^4.38.3"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
|
-
"@sphereon/oid4vc-common": "0.19.1-
|
|
62
|
-
"@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.
|
|
62
|
+
"@sphereon/oid4vc-common": "0.19.1-feature.SSISDK.45.86",
|
|
63
|
+
"@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.34.1-next.86+38dc1ac2",
|
|
63
64
|
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "workspace:*",
|
|
64
65
|
"@types/i18n-js": "^3.8.9",
|
|
65
66
|
"@types/lodash.memoize": "^4.1.9",
|
|
@@ -89,5 +90,5 @@
|
|
|
89
90
|
"OID4VCI",
|
|
90
91
|
"State Machine"
|
|
91
92
|
],
|
|
92
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "38dc1ac283787611ad5ebcedf1ca222438566dd9"
|
|
93
94
|
}
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
AuthorizationRequestOpts,
|
|
5
5
|
AuthorizationServerClientOpts,
|
|
6
6
|
AuthorizationServerOpts,
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
CredentialConfigurationSupportedJwtVcJsonLdAndLdpVcV1_0_15,
|
|
8
|
+
CredentialDefinitionJwtVcJsonLdAndLdpVcV1_0_15,
|
|
9
9
|
CredentialOfferRequestWithBaseUrl,
|
|
10
10
|
DefaultURISchemes,
|
|
11
11
|
EndpointMetadataResult,
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
} from '@sphereon/ssi-sdk-ext.identifier-resolution'
|
|
31
31
|
import { IJwtService, JwsHeader } from '@sphereon/ssi-sdk-ext.jwt-service'
|
|
32
32
|
import { signatureAlgorithmFromKey } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
33
|
+
import { defaultHasher } from '@sphereon/ssi-sdk.core'
|
|
33
34
|
import {
|
|
34
35
|
ConnectionType,
|
|
35
36
|
CorrelationIdentifierType,
|
|
@@ -73,6 +74,18 @@ import { asArray, computeEntryHash } from '@veramo/utils'
|
|
|
73
74
|
import { decodeJWT } from 'did-jwt'
|
|
74
75
|
import { v4 as uuidv4 } from 'uuid'
|
|
75
76
|
import { OID4VCIMachine } from '../machines/oid4vciMachine'
|
|
77
|
+
import {
|
|
78
|
+
getBasicIssuerLocaleBranding,
|
|
79
|
+
getCredentialBranding,
|
|
80
|
+
getCredentialConfigsSupportedMerged,
|
|
81
|
+
getIdentifierOpts,
|
|
82
|
+
getIssuanceOpts,
|
|
83
|
+
mapCredentialToAccept,
|
|
84
|
+
selectCredentialLocaleBranding,
|
|
85
|
+
startFirstPartApplicationMachine,
|
|
86
|
+
verifyCredentialToAccept,
|
|
87
|
+
} from '../services/OID4VCIHolderService'
|
|
88
|
+
import 'cross-fetch/polyfill'
|
|
76
89
|
import {
|
|
77
90
|
AddContactIdentityArgs,
|
|
78
91
|
AssertValidCredentialsArgs,
|
|
@@ -111,19 +124,6 @@ import {
|
|
|
111
124
|
VerifyEBSICredentialIssuerArgs,
|
|
112
125
|
VerifyEBSICredentialIssuerResult,
|
|
113
126
|
} from '../types/IOID4VCIHolder'
|
|
114
|
-
import {
|
|
115
|
-
getBasicIssuerLocaleBranding,
|
|
116
|
-
getCredentialBranding,
|
|
117
|
-
getCredentialConfigsSupportedMerged,
|
|
118
|
-
getIdentifierOpts,
|
|
119
|
-
getIssuanceOpts,
|
|
120
|
-
mapCredentialToAccept,
|
|
121
|
-
selectCredentialLocaleBranding,
|
|
122
|
-
startFirstPartApplicationMachine,
|
|
123
|
-
verifyCredentialToAccept,
|
|
124
|
-
} from '../services/OID4VCIHolderService'
|
|
125
|
-
import 'cross-fetch/polyfill'
|
|
126
|
-
import { defaultHasher } from '@sphereon/ssi-sdk.core'
|
|
127
127
|
|
|
128
128
|
/**
|
|
129
129
|
* {@inheritDoc IOID4VCIHolder}
|
|
@@ -151,7 +151,7 @@ export function signCallback(
|
|
|
151
151
|
context: IAgentContext<IKeyManager & IDIDManager & IResolver & IIdentifierResolution & IJwtService>,
|
|
152
152
|
nonce?: string,
|
|
153
153
|
) {
|
|
154
|
-
return async (jwt: Jwt, kid?: string) => {
|
|
154
|
+
return async (jwt: Jwt, kid?: string, noIssPayloadUpdate?: boolean) => {
|
|
155
155
|
let resolution = await context.agent.identifierManagedGet(identifier)
|
|
156
156
|
const jwk = jwt.header.jwk ?? (resolution.method === 'jwk' ? resolution.jwk : undefined)
|
|
157
157
|
if (!resolution.issuer && !jwt.payload.iss) {
|
|
@@ -170,7 +170,7 @@ export function signCallback(
|
|
|
170
170
|
}
|
|
171
171
|
return (
|
|
172
172
|
await context.agent.jwtCreateJwsCompactSignature({
|
|
173
|
-
issuer: { ...resolution, noIssPayloadUpdate: false },
|
|
173
|
+
issuer: { ...resolution, noIssPayloadUpdate: noIssPayloadUpdate ?? false },
|
|
174
174
|
protectedHeader: header,
|
|
175
175
|
payload,
|
|
176
176
|
})
|
|
@@ -229,7 +229,7 @@ export class OID4VCIHolder implements IAgentPlugin {
|
|
|
229
229
|
oid4vciHolderStoreIssuerBranding: this.oid4vciHolderStoreIssuerBranding.bind(this),
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
private readonly vcFormatPreferences: Array<string> = ['vc+sd-jwt', 'mso_mdoc', 'jwt_vc_json', 'jwt_vc', 'ldp_vc']
|
|
232
|
+
private readonly vcFormatPreferences: Array<string> = ['dc+sd-jwt', 'vc+sd-jwt', 'mso_mdoc', 'jwt_vc_json', 'jwt_vc', 'ldp_vc']
|
|
233
233
|
private readonly jsonldCryptographicSuitePreferences: Array<string> = [
|
|
234
234
|
'Ed25519Signature2018',
|
|
235
235
|
'EcdsaSecp256k1Signature2019',
|
|
@@ -939,7 +939,21 @@ export class OID4VCIHolder implements IAgentPlugin {
|
|
|
939
939
|
? 'credential_accepted_holder_signed'
|
|
940
940
|
: 'credential_deleted_holder_signed'
|
|
941
941
|
logger.log(`Subject issuance/signing will be used, with event`, event)
|
|
942
|
-
const
|
|
942
|
+
const credentialResponse = mappedCredentialToAccept.credentialToAccept.credentialResponse
|
|
943
|
+
let issuerVC
|
|
944
|
+
if ('credential' in credentialResponse) {
|
|
945
|
+
issuerVC = credentialResponse.credential as OriginalVerifiableCredential
|
|
946
|
+
} else if (
|
|
947
|
+
'credentials' in credentialResponse &&
|
|
948
|
+
credentialResponse.credentials &&
|
|
949
|
+
Array.isArray(credentialResponse.credentials) &&
|
|
950
|
+
credentialResponse.credentials.length > 0
|
|
951
|
+
) {
|
|
952
|
+
issuerVC = credentialResponse.credentials[0].credential as OriginalVerifiableCredential // FIXME SSISDK-13 (no multi-credential support yet)
|
|
953
|
+
}
|
|
954
|
+
if (!issuerVC) {
|
|
955
|
+
return Promise.reject(Error('No credential found in credential response'))
|
|
956
|
+
}
|
|
943
957
|
const wrappedIssuerVC = CredentialMapper.toWrappedVerifiableCredential(issuerVC, { hasher: this.hasher ?? defaultHasher })
|
|
944
958
|
console.log(`Wrapped VC: ${wrappedIssuerVC.type}, ${wrappedIssuerVC.format}`)
|
|
945
959
|
// We will use the subject of the VCI Issuer (the holder, as the issuer of the new credential, so the below is not a mistake!)
|
|
@@ -1169,9 +1183,9 @@ export class OID4VCIHolder implements IAgentPlugin {
|
|
|
1169
1183
|
return undefined
|
|
1170
1184
|
}
|
|
1171
1185
|
|
|
1172
|
-
private getCredentialDefinition(issuanceOpt: IssuanceOpts):
|
|
1186
|
+
private getCredentialDefinition(issuanceOpt: IssuanceOpts): CredentialDefinitionJwtVcJsonLdAndLdpVcV1_0_15 | undefined {
|
|
1173
1187
|
if (issuanceOpt.format == 'ldp_vc' || issuanceOpt.format == 'jwt_vc_json-ld') {
|
|
1174
|
-
return (issuanceOpt as
|
|
1188
|
+
return (issuanceOpt as CredentialConfigurationSupportedJwtVcJsonLdAndLdpVcV1_0_15).credential_definition
|
|
1175
1189
|
}
|
|
1176
1190
|
return undefined
|
|
1177
1191
|
}
|
|
@@ -2,7 +2,7 @@ import { LOG } from '@sphereon/oid4vci-client'
|
|
|
2
2
|
import {
|
|
3
3
|
CredentialConfigurationSupported,
|
|
4
4
|
CredentialSupportedSdJwtVc,
|
|
5
|
-
|
|
5
|
+
CredentialConfigurationSupportedSdJwtVcV1_0_15,
|
|
6
6
|
CredentialOfferFormatV1_0_11,
|
|
7
7
|
CredentialResponse,
|
|
8
8
|
getSupportedCredentials,
|
|
@@ -72,8 +72,8 @@ export const getCredentialBranding = async (args: GetCredentialBrandingArgs): Pr
|
|
|
72
72
|
await Promise.all(
|
|
73
73
|
Object.entries(credentialsSupported).map(async ([configId, credentialsConfigSupported]): Promise<void> => {
|
|
74
74
|
let sdJwtTypeMetadata: SdJwtTypeMetadata | undefined
|
|
75
|
-
if (credentialsConfigSupported.format === '
|
|
76
|
-
const vct = (<CredentialSupportedSdJwtVc |
|
|
75
|
+
if (credentialsConfigSupported.format === 'dc+sd-jwt') {
|
|
76
|
+
const vct = (<CredentialSupportedSdJwtVc | CredentialConfigurationSupportedSdJwtVcV1_0_15>credentialsConfigSupported).vct
|
|
77
77
|
if (vct.startsWith('http')) {
|
|
78
78
|
try {
|
|
79
79
|
sdJwtTypeMetadata = await context.agent.fetchSdJwtTypeMetadataFromVctUrl({ vct })
|
|
@@ -153,7 +153,18 @@ export const selectCredentialLocaleBranding = async (
|
|
|
153
153
|
export const verifyCredentialToAccept = async (args: VerifyCredentialToAcceptArgs): Promise<VerificationResult> => {
|
|
154
154
|
const { mappedCredential, hasher, onVerifyEBSICredentialIssuer, schemaValidation, context } = args
|
|
155
155
|
|
|
156
|
-
const
|
|
156
|
+
const credentialResponse = mappedCredential.credentialToAccept.credentialResponse
|
|
157
|
+
let credential
|
|
158
|
+
if ('credential' in credentialResponse) {
|
|
159
|
+
credential = credentialResponse.credential as OriginalVerifiableCredential
|
|
160
|
+
} else if (
|
|
161
|
+
'credentials' in credentialResponse &&
|
|
162
|
+
credentialResponse.credentials &&
|
|
163
|
+
Array.isArray(credentialResponse.credentials) &&
|
|
164
|
+
credentialResponse.credentials.length > 0
|
|
165
|
+
) {
|
|
166
|
+
credential = credentialResponse.credentials[0].credential as OriginalVerifiableCredential // FIXME SSISDK-13 (no multi-credential support yet)
|
|
167
|
+
}
|
|
157
168
|
if (!credential) {
|
|
158
169
|
return Promise.reject(Error('No credential found in credential response'))
|
|
159
170
|
}
|
|
@@ -206,7 +217,17 @@ export const mapCredentialToAccept = async (args: MapCredentialToAcceptArgs): Pr
|
|
|
206
217
|
const { credentialToAccept, hasher } = args
|
|
207
218
|
|
|
208
219
|
const credentialResponse: CredentialResponse = credentialToAccept.credentialResponse
|
|
209
|
-
|
|
220
|
+
let verifiableCredential: W3CVerifiableCredential | undefined
|
|
221
|
+
if ('credential' in credentialResponse) {
|
|
222
|
+
verifiableCredential = credentialResponse.credential
|
|
223
|
+
} else if (
|
|
224
|
+
'credentials' in credentialResponse &&
|
|
225
|
+
credentialResponse.credentials &&
|
|
226
|
+
Array.isArray(credentialResponse.credentials) &&
|
|
227
|
+
credentialResponse.credentials.length > 0
|
|
228
|
+
) {
|
|
229
|
+
verifiableCredential = credentialResponse.credentials[0].credential // FIXME SSISDK-13 (no multi-credential support yet)
|
|
230
|
+
}
|
|
210
231
|
if (!verifiableCredential) {
|
|
211
232
|
return Promise.reject(Error('No credential found in credential response'))
|
|
212
233
|
}
|
|
@@ -580,7 +601,8 @@ export const getIssuanceCryptoSuite = async (opts: GetIssuanceCryptoSuiteArgs):
|
|
|
580
601
|
case 'jwt':
|
|
581
602
|
case 'jwt_vc_json':
|
|
582
603
|
case 'jwt_vc':
|
|
583
|
-
case '
|
|
604
|
+
case 'dc+sd-jwt':
|
|
605
|
+
case 'dc+sd-jwt':
|
|
584
606
|
case 'mso_mdoc': {
|
|
585
607
|
const supportedPreferences: Array<JoseSignatureAlgorithm | JoseSignatureAlgorithmString> = jwtCryptographicSuitePreferences.filter(
|
|
586
608
|
(suite: JoseSignatureAlgorithm | JoseSignatureAlgorithmString) => signing_algs_supported.includes(suite),
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { BaseActionObject, Interpreter, ResolveTypegenMeta, ServiceMap, State, StateMachine, StatesConfig, TypegenDisabled } from 'xstate'
|
|
2
2
|
import { OpenID4VCIClientState } from '@sphereon/oid4vci-client'
|
|
3
3
|
import { DidAuthConfig, Party } from '@sphereon/ssi-sdk.data-store'
|
|
4
|
-
import {
|
|
4
|
+
import { RPRegistrationMetadataPayload } from '@sphereon/did-auth-siop'
|
|
5
5
|
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store'
|
|
6
6
|
import { AuthorizationChallengeCodeResponse } from '@sphereon/oid4vci-common'
|
|
7
7
|
import { IIdentifier } from '@veramo/core'
|
|
8
8
|
import { ErrorDetails, RequiredContext } from './IOID4VCIHolder'
|
|
9
|
+
import { DcqlQuery } from 'dcql'
|
|
9
10
|
|
|
10
11
|
export enum FirstPartyMachineStateTypes {
|
|
11
12
|
sendAuthorizationChallengeRequest = 'sendAuthorizationChallengeRequest',
|
|
@@ -149,7 +150,7 @@ export type SiopV2AuthorizationRequestData = {
|
|
|
149
150
|
clientIdScheme?: string
|
|
150
151
|
clientId?: string
|
|
151
152
|
entityId?: string
|
|
152
|
-
|
|
153
|
+
dcqlQuery: DcqlQuery
|
|
153
154
|
}
|
|
154
155
|
|
|
155
156
|
export type FirstPartyMachineNavigationArgs = {
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
CredentialConfigurationSupported,
|
|
8
8
|
CredentialOfferRequestWithBaseUrl,
|
|
9
9
|
CredentialResponse,
|
|
10
|
+
CredentialResponseV1_0_15,
|
|
10
11
|
CredentialsSupportedDisplay,
|
|
11
12
|
EndpointMetadataResult,
|
|
12
13
|
ExperimentalSubjectIssuance,
|
|
@@ -377,6 +378,7 @@ export enum OID4VCIMachineGuards {
|
|
|
377
378
|
requirePinGuard = 'oid4vciRequirePinGuard',
|
|
378
379
|
requireAuthorizationGuard = 'oid4vciRequireAuthorizationGuard',
|
|
379
380
|
noAuthorizationGuard = 'oid4vciNoAuthorizationGuard',
|
|
381
|
+
hasNonceEndpointGuard = 'oid4vciHasNonceEndpointGuard ',
|
|
380
382
|
hasAuthorizationResponse = 'oid4vciHasAuthorizationResponse',
|
|
381
383
|
hasNoContactIdentityGuard = 'oid4vciHasNoContactIdentityGuard',
|
|
382
384
|
verificationCodeGuard = 'oid4vciVerificationCodeGuard',
|
|
@@ -501,7 +503,7 @@ export type CredentialToAccept = {
|
|
|
501
503
|
id?: string
|
|
502
504
|
types: string[]
|
|
503
505
|
issuanceOpt: IssuanceOpts
|
|
504
|
-
credentialResponse: CredentialResponse
|
|
506
|
+
credentialResponse: CredentialResponseV1_0_15 | CredentialResponse
|
|
505
507
|
}
|
|
506
508
|
|
|
507
509
|
export type GetCredentialConfigsSupportedArgs = {
|