@sphereon/ssi-sdk.ebsi-support 0.34.1-next.91 → 0.36.1-feat.SSISDK.83.11
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 +83 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +327 -5
- package/dist/index.d.ts +327 -5
- package/dist/index.js +75 -9
- package/dist/index.js.map +1 -1
- package/package.json +24 -23
- package/src/agent/EbsiSupport.ts +4 -4
- package/src/did/functions.ts +2 -2
- package/src/did/index.ts +1 -0
- package/src/did/types.ts +1 -1
- package/src/functions/Attestation.ts +11 -6
- package/src/functions/AttestationHeadlessCallbacks.ts +2 -2
- package/src/index.ts +1 -1
- package/src/types/IEbsiSupport.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.ebsi-support",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -27,21 +27,21 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@ethersproject/random": "^5.7.0",
|
|
30
|
-
"@sphereon/did-auth-siop": "0.
|
|
31
|
-
"@sphereon/did-auth-siop-adapter": "0.
|
|
30
|
+
"@sphereon/did-auth-siop": "0.20.1-next.3",
|
|
31
|
+
"@sphereon/did-auth-siop-adapter": "0.20.1-next.3",
|
|
32
32
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
33
33
|
"@sphereon/pex-models": "^2.3.2",
|
|
34
|
-
"@sphereon/ssi-sdk-ext.did-resolver-ebsi": "0.
|
|
35
|
-
"@sphereon/ssi-sdk-ext.did-utils": "0.
|
|
36
|
-
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.
|
|
37
|
-
"@sphereon/ssi-sdk-ext.jwt-service": "0.
|
|
38
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.
|
|
39
|
-
"@sphereon/ssi-sdk.contact-manager": "0.
|
|
40
|
-
"@sphereon/ssi-sdk.core": "0.
|
|
41
|
-
"@sphereon/ssi-sdk.oid4vci-holder": "0.
|
|
42
|
-
"@sphereon/ssi-sdk.presentation-exchange": "0.
|
|
43
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.
|
|
44
|
-
"@sphereon/ssi-types": "0.
|
|
34
|
+
"@sphereon/ssi-sdk-ext.did-resolver-ebsi": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
35
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
36
|
+
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
37
|
+
"@sphereon/ssi-sdk-ext.jwt-service": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
38
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
39
|
+
"@sphereon/ssi-sdk.contact-manager": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
40
|
+
"@sphereon/ssi-sdk.core": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
41
|
+
"@sphereon/ssi-sdk.oid4vci-holder": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
42
|
+
"@sphereon/ssi-sdk.presentation-exchange": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
43
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
44
|
+
"@sphereon/ssi-types": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
45
45
|
"@veramo/core": "4.2.0",
|
|
46
46
|
"@veramo/did-manager": "4.2.0",
|
|
47
47
|
"@veramo/utils": "4.2.0",
|
|
@@ -56,14 +56,15 @@
|
|
|
56
56
|
"xstate": "^4.38.3"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@sphereon/oid4vci-client": "0.
|
|
60
|
-
"@sphereon/oid4vci-common": "0.
|
|
61
|
-
"@sphereon/ssi-express-support": "0.
|
|
62
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.
|
|
63
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.
|
|
64
|
-
"@sphereon/ssi-sdk.agent-config": "0.
|
|
65
|
-
"@sphereon/ssi-sdk.data-store": "0.
|
|
66
|
-
"@sphereon/ssi-sdk.
|
|
59
|
+
"@sphereon/oid4vci-client": "0.20.1-next.3",
|
|
60
|
+
"@sphereon/oid4vci-common": "0.20.1-next.3",
|
|
61
|
+
"@sphereon/ssi-express-support": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
62
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
63
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
64
|
+
"@sphereon/ssi-sdk.agent-config": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
65
|
+
"@sphereon/ssi-sdk.data-store": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
66
|
+
"@sphereon/ssi-sdk.data-store-types": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
67
|
+
"@sphereon/ssi-sdk.public-key-hosting": "0.36.1-feat.SSISDK.83.11+15665c90",
|
|
67
68
|
"@transmute/json-web-signature": "0.7.0-unstable.81",
|
|
68
69
|
"@types/cors": "^2.8.17",
|
|
69
70
|
"@types/express": "^4.17.21",
|
|
@@ -98,5 +99,5 @@
|
|
|
98
99
|
"EBSI",
|
|
99
100
|
"EBSI Authorization Client"
|
|
100
101
|
],
|
|
101
|
-
"gitHead": "
|
|
102
|
+
"gitHead": "15665c90d27b72a0c3b7267375f60512d2cd4085"
|
|
102
103
|
}
|
package/src/agent/EbsiSupport.ts
CHANGED
|
@@ -217,15 +217,15 @@ export class EbsiSupport implements IAgentPlugin {
|
|
|
217
217
|
|
|
218
218
|
const presentationSubmission = { id: v4(), definition_id: definitionResponse.id, descriptor_map: [] } satisfies PresentationSubmission
|
|
219
219
|
// FIXME SSISDK-40
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
//hasInputDescriptors
|
|
221
|
+
//? vp.presentationSubmission
|
|
222
|
+
//: ({ id: v4(), definition_id: definitionResponse.id, descriptor_map: [] } satisfies PresentationSubmission)
|
|
223
223
|
|
|
224
224
|
console.log(`Presentation submission`, presentationSubmission)
|
|
225
225
|
const tokenRequestArgs = {
|
|
226
226
|
grant_type: 'vp_token',
|
|
227
227
|
// FIXME SSISDK-40
|
|
228
|
-
vp_token: ''
|
|
228
|
+
vp_token: '', //CredentialMapper.toCompactJWT(vp.verifiablePresentations[0]), // FIXME How are we going to send multiple presentations in a vp_token?
|
|
229
229
|
scope,
|
|
230
230
|
presentation_submission: presentationSubmission,
|
|
231
231
|
apiOpts: { environment, version: 'v4' },
|
package/src/did/functions.ts
CHANGED
|
@@ -236,7 +236,7 @@ export const toMinimalImportableKey = async (args: { key?: IKeyOpts; type: EbsiK
|
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
minimalImportableKey.meta = {
|
|
239
|
-
purposes: assertedPurposes({ key }) ??
|
|
239
|
+
purposes: assertedPurposes({ key }) ?? setPurposes({ key, type }),
|
|
240
240
|
jwkThumbprint: calculateJwkThumbprintForKey({
|
|
241
241
|
key: minimalImportableKey as MinimalImportableKey,
|
|
242
242
|
digestAlgorithm: 'sha256',
|
|
@@ -275,7 +275,7 @@ export const assertedPurposes = (args: { key?: IKeyOpts }): EbsiPublicKeyPurpose
|
|
|
275
275
|
return key?.purposes
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
export const
|
|
278
|
+
export const setPurposes = (args: { key?: IKeyOpts; type: EbsiKeyType }): EbsiPublicKeyPurpose[] => {
|
|
279
279
|
const { key, type } = args
|
|
280
280
|
if (!key?.purposes || key.purposes.length === 0) {
|
|
281
281
|
switch (type) {
|
package/src/did/index.ts
CHANGED
package/src/did/types.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { IService } from '@veramo/core'
|
|
|
4
4
|
import { DIDDocument } from 'did-resolver'
|
|
5
5
|
import { AccessListish, BigNumberish, BytesLike } from 'ethers'
|
|
6
6
|
import { ApiOpts, EbsiEnvironment } from '../types/IEbsiSupport'
|
|
7
|
-
import { CredentialRole } from '@sphereon/ssi-
|
|
7
|
+
import { CredentialRole } from '@sphereon/ssi-types'
|
|
8
8
|
|
|
9
9
|
export type IContext = IAgentContext<IKeyManager>
|
|
10
10
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { OpenID4VCIClient } from '@sphereon/oid4vci-client'
|
|
2
2
|
import {
|
|
3
3
|
Alg,
|
|
4
|
-
|
|
4
|
+
AuthorizationDetailsV1_0_15,
|
|
5
5
|
AuthorizationRequestOpts,
|
|
6
6
|
AuthzFlowType,
|
|
7
7
|
CredentialConfigurationSupported,
|
|
8
|
+
CredentialConfigurationSupportedV1_0_15,
|
|
8
9
|
getJson,
|
|
9
10
|
getTypesFromCredentialSupported,
|
|
10
11
|
ProofOfPossessionCallbacks,
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
Siopv2OID4VPLinkHandler,
|
|
30
31
|
} from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth'
|
|
31
32
|
import { _ExtendedIKey } from '@veramo/utils'
|
|
32
|
-
import { waitFor } from 'xstate/lib/waitFor'
|
|
33
|
+
import { waitFor } from 'xstate/lib/waitFor.js'
|
|
33
34
|
import { logger } from '../index'
|
|
34
35
|
import { AttestationResult, CreateAttestationAuthRequestURLArgs, EbsiEnvironment, GetAttestationArgs, IRequiredContext } from '../types/IEbsiSupport'
|
|
35
36
|
import {
|
|
@@ -101,7 +102,7 @@ export const ebsiCreateAttestationAuthRequestURL = async (
|
|
|
101
102
|
retrieveServerMetadata: true,
|
|
102
103
|
})
|
|
103
104
|
|
|
104
|
-
const allMatches = vciClient.getCredentialsSupported(
|
|
105
|
+
const allMatches = {} as Record<string, CredentialConfigurationSupportedV1_0_15> | Array<CredentialConfigurationSupported> // vciClient.getCredentialsSupported(format) FIXME SSISDK-40
|
|
105
106
|
let arrayMatches: Array<CredentialConfigurationSupported>
|
|
106
107
|
if (Array.isArray(allMatches)) {
|
|
107
108
|
arrayMatches = allMatches
|
|
@@ -118,11 +119,15 @@ export const ebsiCreateAttestationAuthRequestURL = async (
|
|
|
118
119
|
throw Error(`Could not find '${credentialType}' with format(s) '${formats.join(',')}' in list of supported types for issuer: ${credentialIssuer}`)
|
|
119
120
|
}
|
|
120
121
|
const authorizationDetails = supportedConfigurations.map((supported) => {
|
|
122
|
+
const credential_configuration_id = supported.id as string
|
|
123
|
+
if (!credential_configuration_id) {
|
|
124
|
+
throw Error(`Credential configuration id missing for credential type: ${credentialType}`)
|
|
125
|
+
}
|
|
121
126
|
return {
|
|
122
127
|
type: 'openid_credential',
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
128
|
+
credential_configuration_id,
|
|
129
|
+
credential_identifiers: getTypesFromCredentialSupported(supported),
|
|
130
|
+
} satisfies AuthorizationDetailsV1_0_15
|
|
126
131
|
})
|
|
127
132
|
|
|
128
133
|
const signCallbacks: ProofOfPossessionCallbacks = requestObjectOpts.signCallbacks ?? {
|
|
@@ -3,15 +3,15 @@ import { getIssuerName } from '@sphereon/oid4vci-common'
|
|
|
3
3
|
import {
|
|
4
4
|
ConnectionType,
|
|
5
5
|
CorrelationIdentifierType,
|
|
6
|
-
CredentialRole,
|
|
7
6
|
IdentityOrigin,
|
|
8
7
|
NonPersistedParty,
|
|
9
8
|
Party,
|
|
10
9
|
PartyOrigin,
|
|
11
10
|
PartyTypeType,
|
|
12
|
-
} from '@sphereon/ssi-sdk.data-store'
|
|
11
|
+
} from '@sphereon/ssi-sdk.data-store-types'
|
|
13
12
|
import { OID4VCIMachine, OID4VCIMachineEvents, OID4VCIMachineInterpreter, OID4VCIMachineState } from '@sphereon/ssi-sdk.oid4vci-holder'
|
|
14
13
|
import { Siopv2MachineInterpreter, Siopv2MachineState, Siopv2OID4VPLinkHandler } from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth'
|
|
14
|
+
import { CredentialRole } from '@sphereon/ssi-types'
|
|
15
15
|
import fetch from 'cross-fetch'
|
|
16
16
|
import { logger } from '../index'
|
|
17
17
|
import { IRequiredContext } from '../types/IEbsiSupport'
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { OID4VCICredentialFormat, RequestObjectOpts } from '@sphereon/oid4vci-co
|
|
|
3
3
|
import { Format, PresentationDefinitionV2 } from '@sphereon/pex-models'
|
|
4
4
|
import { IIdentifierResolution, ManagedIdentifierDidOpts, ManagedIdentifierDidResult } from '@sphereon/ssi-sdk-ext.identifier-resolution'
|
|
5
5
|
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service'
|
|
6
|
-
import {
|
|
6
|
+
import { IBasicCredentialLocaleBranding, Party } from '@sphereon/ssi-sdk.data-store-types'
|
|
7
|
+
import { CredentialRole } from '@sphereon/ssi-types'
|
|
7
8
|
import { ErrorDetails, IOID4VCIHolder, MappedCredentialToAccept } from '@sphereon/ssi-sdk.oid4vci-holder'
|
|
8
9
|
import { IPresentationExchange } from '@sphereon/ssi-sdk.presentation-exchange'
|
|
9
10
|
import { IDidAuthSiopOpAuthenticator } from '@sphereon/ssi-sdk.siopv2-oid4vp-op-auth'
|