@sphereon/ssi-sdk.ebsi-support 0.26.1-unstable.101

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.
Files changed (68) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +13 -0
  3. package/dist/agent/EbsiSupport.d.ts +12 -0
  4. package/dist/agent/EbsiSupport.d.ts.map +1 -0
  5. package/dist/agent/EbsiSupport.js +202 -0
  6. package/dist/agent/EbsiSupport.js.map +1 -0
  7. package/dist/did/EbsiDidProvider.d.ts +47 -0
  8. package/dist/did/EbsiDidProvider.d.ts.map +1 -0
  9. package/dist/did/EbsiDidProvider.js +172 -0
  10. package/dist/did/EbsiDidProvider.js.map +1 -0
  11. package/dist/did/EbsiDidResolver.d.ts +5 -0
  12. package/dist/did/EbsiDidResolver.d.ts.map +1 -0
  13. package/dist/did/EbsiDidResolver.js +10 -0
  14. package/dist/did/EbsiDidResolver.js.map +1 -0
  15. package/dist/did/functions.d.ts +66 -0
  16. package/dist/did/functions.d.ts.map +1 -0
  17. package/dist/did/functions.js +416 -0
  18. package/dist/did/functions.js.map +1 -0
  19. package/dist/did/index.d.ts +6 -0
  20. package/dist/did/index.d.ts.map +1 -0
  21. package/dist/did/index.js +6 -0
  22. package/dist/did/index.js.map +1 -0
  23. package/dist/did/services/EbsiRPCService.d.ts +13 -0
  24. package/dist/did/services/EbsiRPCService.d.ts.map +1 -0
  25. package/dist/did/services/EbsiRPCService.js +64 -0
  26. package/dist/did/services/EbsiRPCService.js.map +1 -0
  27. package/dist/did/services/EbsiRestService.d.ts +37 -0
  28. package/dist/did/services/EbsiRestService.d.ts.map +1 -0
  29. package/dist/did/services/EbsiRestService.js +90 -0
  30. package/dist/did/services/EbsiRestService.js.map +1 -0
  31. package/dist/did/types.d.ts +386 -0
  32. package/dist/did/types.d.ts.map +1 -0
  33. package/dist/did/types.js +47 -0
  34. package/dist/did/types.js.map +1 -0
  35. package/dist/functions/Attestation.d.ts +32 -0
  36. package/dist/functions/Attestation.d.ts.map +1 -0
  37. package/dist/functions/Attestation.js +182 -0
  38. package/dist/functions/Attestation.js.map +1 -0
  39. package/dist/functions/AttestationHeadlessCallbacks.d.ts +17 -0
  40. package/dist/functions/AttestationHeadlessCallbacks.d.ts.map +1 -0
  41. package/dist/functions/AttestationHeadlessCallbacks.js +194 -0
  42. package/dist/functions/AttestationHeadlessCallbacks.js.map +1 -0
  43. package/dist/functions/index.d.ts +7 -0
  44. package/dist/functions/index.d.ts.map +1 -0
  45. package/dist/functions/index.js +8 -0
  46. package/dist/functions/index.js.map +1 -0
  47. package/dist/index.d.ts +7 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +8 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/types/IEbsiSupport.d.ts +211 -0
  52. package/dist/types/IEbsiSupport.d.ts.map +1 -0
  53. package/dist/types/IEbsiSupport.js +5 -0
  54. package/dist/types/IEbsiSupport.js.map +1 -0
  55. package/package.json +86 -0
  56. package/src/agent/EbsiSupport.ts +250 -0
  57. package/src/did/EbsiDidProvider.ts +269 -0
  58. package/src/did/EbsiDidResolver.ts +16 -0
  59. package/src/did/functions.ts +528 -0
  60. package/src/did/index.ts +5 -0
  61. package/src/did/services/EbsiRPCService.ts +68 -0
  62. package/src/did/services/EbsiRestService.ts +117 -0
  63. package/src/did/types.ts +449 -0
  64. package/src/functions/Attestation.ts +262 -0
  65. package/src/functions/AttestationHeadlessCallbacks.ts +242 -0
  66. package/src/functions/index.ts +15 -0
  67. package/src/index.ts +8 -0
  68. package/src/types/IEbsiSupport.ts +241 -0
@@ -0,0 +1,172 @@
1
+ import { getControllerKey, getEthereumAddressFromKey } from '@sphereon/ssi-sdk-ext.did-utils';
2
+ import { calculateJwkThumbprint, calculateJwkThumbprintForKey, toJwk } from '@sphereon/ssi-sdk-ext.key-utils';
3
+ import { AbstractIdentifierProvider } from '@veramo/did-manager';
4
+ import Debug from 'debug';
5
+ import { ebsiCreateDidOnLedger, ebsiGenerateOrUseKeyPair, ebsiSignAndSendTransaction, formatEbsiPublicKey, generateEbsiMethodSpecificId, randomRpcId, } from './functions';
6
+ import { EBSI_DID_SPEC_INFOS, EbsiRpcMethod } from './types';
7
+ const debug = Debug('sphereon:did-provider-ebsi');
8
+ export class EbsiDidProvider extends AbstractIdentifierProvider {
9
+ static PROVIDER = 'did:ebsi';
10
+ defaultKms;
11
+ apiOpts;
12
+ constructor(options) {
13
+ super();
14
+ this.defaultKms = options.defaultKms;
15
+ this.apiOpts = options.apiOpts;
16
+ }
17
+ async createIdentifier(args, context) {
18
+ const { type, options, kms = this.defaultKms, alias } = args;
19
+ const { notBefore, notAfter, secp256k1Key, secp256r1Key, accessTokenOpts, executeLedgerOperation = !!args.options?.accessTokenOpts, methodSpecificId = generateEbsiMethodSpecificId(EBSI_DID_SPEC_INFOS.V1), baseDocument, services, } = { ...options };
20
+ if (executeLedgerOperation && !accessTokenOpts) {
21
+ throw new Error('Access token options must be provided to execute ledger operation');
22
+ }
23
+ const rpcId = options?.rpcId ?? randomRpcId();
24
+ if (type === EBSI_DID_SPEC_INFOS.KEY) {
25
+ throw new Error(`Type ${type} not supported. Please use @sphereon/ssi-sdk-ext.did-provider-key for Natural Person EBSI DIDs`);
26
+ }
27
+ else if (!kms) {
28
+ return Promise.reject(Error(`No KMS value provided`));
29
+ }
30
+ // CapabilityInvocation purpose
31
+ const secp256k1ImportKey = await ebsiGenerateOrUseKeyPair({
32
+ keyOpts: secp256k1Key,
33
+ keyType: 'Secp256k1',
34
+ kms,
35
+ controllerKey: true,
36
+ }, context);
37
+ const secp256k1ManagedKeyInfo = await context.agent.keyManagerImport(secp256k1ImportKey);
38
+ // Authentication, assertionMethod purpose
39
+ const secp256r1ImportKey = await ebsiGenerateOrUseKeyPair({
40
+ keyOpts: secp256r1Key,
41
+ keyType: 'Secp256r1',
42
+ kms,
43
+ }, context);
44
+ const secp256r1ManagedKeyInfo = await context.agent.keyManagerImport(secp256r1ImportKey);
45
+ const identifier = {
46
+ did: `${EBSI_DID_SPEC_INFOS.V1.method}${methodSpecificId}`,
47
+ controllerKeyId: secp256k1ManagedKeyInfo.kid,
48
+ keys: [secp256k1ManagedKeyInfo, secp256r1ManagedKeyInfo],
49
+ alias,
50
+ services: services ?? [],
51
+ provider: EbsiDidProvider.PROVIDER,
52
+ };
53
+ const apiOpts = { ...this.apiOpts };
54
+ if (!apiOpts.environment) {
55
+ apiOpts.environment = accessTokenOpts?.environment ?? 'pilot';
56
+ }
57
+ if (!apiOpts.version) {
58
+ apiOpts.version = 'v5';
59
+ }
60
+ if (executeLedgerOperation) {
61
+ await ebsiCreateDidOnLedger({
62
+ identifier,
63
+ baseDocument,
64
+ accessTokenOpts: accessTokenOpts,
65
+ rpcId,
66
+ notBefore,
67
+ notAfter,
68
+ }, context);
69
+ }
70
+ debug('Created', identifier.did);
71
+ return identifier;
72
+ }
73
+ async addKey(args, context) {
74
+ const { identifier, key, options } = args;
75
+ const { accessToken, vmRelationships, apiOpts, rpcId = randomRpcId() } = options;
76
+ if (vmRelationships.length === 0) {
77
+ return Promise.reject(Error(`No verification method relationship provided`));
78
+ }
79
+ const controllerKey = getControllerKey({ identifier });
80
+ const from = getEthereumAddressFromKey({ key: controllerKey });
81
+ const kid = controllerKey.kid;
82
+ const did = identifier.did;
83
+ const addVerificationMethodRequest = {
84
+ params: [
85
+ {
86
+ from,
87
+ did,
88
+ isSecp256k1: true,
89
+ vMethodId: calculateJwkThumbprint({ jwk: toJwk(key.publicKeyHex, key.type) }),
90
+ publicKey: formatEbsiPublicKey({ key: key, type: key.type }),
91
+ },
92
+ ],
93
+ rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_METHOD,
94
+ rpcId,
95
+ apiOpts,
96
+ accessToken,
97
+ };
98
+ let rpcResponse = await ebsiSignAndSendTransaction({
99
+ rpcRequest: addVerificationMethodRequest,
100
+ kid,
101
+ accessToken: accessToken,
102
+ apiOpts,
103
+ }, context);
104
+ const vMethodId = calculateJwkThumbprintForKey({ key });
105
+ for (const vmRelationshipsKey in vmRelationships) {
106
+ const addVerificationMethodRelationshipRequest = {
107
+ params: [
108
+ {
109
+ from,
110
+ did,
111
+ vMethodId,
112
+ name: vmRelationshipsKey,
113
+ notAfter: Date.now() / 1000 - 60_000,
114
+ notBefore: Date.now() / 1000 + 5 * 365 * 24 * 60 * 60,
115
+ },
116
+ ],
117
+ rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
118
+ rpcId,
119
+ apiOpts,
120
+ accessToken,
121
+ };
122
+ rpcResponse = await ebsiSignAndSendTransaction({
123
+ rpcRequest: addVerificationMethodRelationshipRequest,
124
+ previousTxResponse: rpcResponse,
125
+ kid,
126
+ accessToken,
127
+ apiOpts,
128
+ }, context);
129
+ }
130
+ }
131
+ async addService(args, context) {
132
+ const { identifier, service, options } = args;
133
+ const { accessToken, apiOpts, rpcId = randomRpcId() } = options;
134
+ const controllerKey = getControllerKey({ identifier });
135
+ const from = getEthereumAddressFromKey({ key: controllerKey });
136
+ const did = identifier.did;
137
+ const kid = controllerKey.kid;
138
+ const addServiceRequest = {
139
+ params: [
140
+ {
141
+ from,
142
+ did,
143
+ service,
144
+ },
145
+ ],
146
+ rpcMethod: EbsiRpcMethod.ADD_SERVICE,
147
+ rpcId,
148
+ apiOpts,
149
+ accessToken,
150
+ };
151
+ return await ebsiSignAndSendTransaction({
152
+ rpcRequest: addServiceRequest,
153
+ kid,
154
+ accessToken,
155
+ apiOpts,
156
+ }, context);
157
+ }
158
+ deleteIdentifier(args, context) {
159
+ return Promise.resolve(true);
160
+ }
161
+ removeKey(args, context) {
162
+ throw new Error(`Not (yet) implemented for the EBSI did provider`);
163
+ }
164
+ removeService(args, context) {
165
+ throw new Error(`Not (yet) implemented for the EBSI did provider`);
166
+ }
167
+ // TODO How does it work? Not inferable from the api: https://hub.ebsi.eu/apis/pilot/did-registry/v5/post-jsonrpc#updatebasedocument
168
+ async updateIdentifier(args, context) {
169
+ throw new Error(`Not (yet) implemented for the EBSI did provider`);
170
+ }
171
+ }
172
+ //# sourceMappingURL=EbsiDidProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EbsiDidProvider.js","sourceRoot":"","sources":["../../src/did/EbsiDidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAG7G,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,4BAA4B,EAC5B,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAiD,MAAM,SAAS,CAAA;AAE3G,MAAM,KAAK,GAAG,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAEjD,MAAM,OAAO,eAAgB,SAAQ,0BAA0B;IAC7D,MAAM,CAAU,QAAQ,GAAG,UAAU,CAAA;IACpB,UAAU,CAAS;IACnB,OAAO,CAAU;IAElC,YAAY,OAAmD;QAC7D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAA2B,EAAE,OAAyB;QAC3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;QAC5D,MAAM,EACJ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EACxD,gBAAgB,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,EAAE,CAAC,EACvE,YAAY,EACZ,QAAQ,GACT,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;QAElB,IAAI,sBAAsB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,CAAA;QAE7C,IAAI,IAAI,KAAK,mBAAmB,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,gGAAgG,CAAC,CAAA;QAC/H,CAAC;aAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CACvD;YACE,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,WAAW;YACpB,GAAG;YACH,aAAa,EAAE,IAAI;SACpB,EACD,OAAO,CACR,CAAA;QACD,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;QAExF,0CAA0C;QAC1C,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CACvD;YACE,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,WAAW;YACpB,GAAG;SACJ,EACD,OAAO,CACR,CAAA;QAED,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;QAExF,MAAM,UAAU,GAAgB;YAC9B,GAAG,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,gBAAgB,EAAE;YAC1D,eAAe,EAAE,uBAAuB,CAAC,GAAG;YAC5C,IAAI,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;YACxD,KAAK;YACL,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,QAAQ,EAAE,eAAe,CAAC,QAAQ;SACnC,CAAA;QAED,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,OAAO,CAAA;QAC/D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,CAAC;QAED,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,qBAAqB,CACzB;gBACE,UAAU;gBACV,YAAY;gBACZ,eAAe,EAAE,eAAgB;gBACjC,KAAK;gBACL,SAAS;gBACT,QAAQ;aACT,EACD,OAAO,CACR,CAAA;QACH,CAAC;QAED,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IASC,EACD,OAAmC;QAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACzC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,OAAO,CAAA;QAChF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;QAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QAE1B,MAAM,4BAA4B,GAAG;YACnC,MAAM,EAAE;gBACN;oBACE,IAAI;oBACJ,GAAG;oBACH,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,sBAAsB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7E,SAAS,EAAE,mBAAmB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;iBAC7D;aACF;YACD,SAAS,EAAE,aAAa,CAAC,uBAAuB;YAChD,KAAK;YACL,OAAO;YACP,WAAW;SACZ,CAAA;QAED,IAAI,WAAW,GAAG,MAAM,0BAA0B,CAChD;YACE,UAAU,EAAE,4BAA4B;YACxC,GAAG;YACH,WAAW,EAAE,WAAW;YACxB,OAAO;SACR,EACD,OAAO,CACR,CAAA;QAED,MAAM,SAAS,GAAG,4BAA4B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QACvD,KAAK,MAAM,kBAAkB,IAAI,eAA2B,EAAE,CAAC;YAC7D,MAAM,wCAAwC,GAAG;gBAC/C,MAAM,EAAE;oBACN;wBACE,IAAI;wBACJ,GAAG;wBACH,SAAS;wBACT,IAAI,EAAE,kBAAkB;wBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM;wBACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;qBACtD;iBACF;gBACD,SAAS,EAAE,aAAa,CAAC,6BAA6B;gBACtD,KAAK;gBACL,OAAO;gBACP,WAAW;aACZ,CAAA;YACD,WAAW,GAAG,MAAM,0BAA0B,CAC5C;gBACE,UAAU,EAAE,wCAAwC;gBACpD,kBAAkB,EAAE,WAAW;gBAC/B,GAAG;gBACH,WAAW;gBACX,OAAO;aACR,EACD,OAAO,CACR,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAQC,EACD,OAAmC;QAEnC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC7C,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,WAAW,EAAE,EAAE,GAAG,OAAO,CAAA;QAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;QAE7B,MAAM,iBAAiB,GAAG;YACxB,MAAM,EAAE;gBACN;oBACE,IAAI;oBACJ,GAAG;oBACH,OAAO;iBACR;aACF;YACD,SAAS,EAAE,aAAa,CAAC,WAAW;YACpC,KAAK;YACL,OAAO;YACP,WAAW;SACZ,CAAA;QAED,OAAO,MAAM,0BAA0B,CACrC;YACE,UAAU,EAAE,iBAAiB;YAC7B,GAAG;YACH,WAAW;YACX,OAAO;SACR,EACD,OAAO,CACR,CAAA;IACH,CAAC;IAED,gBAAgB,CAAC,IAAiB,EAAE,OAAmC;QACrE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS,CACP,IAIC,EACD,OAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,aAAa,CACX,IAIC,EACD,OAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,oIAAoI;IACpI,KAAK,CAAC,gBAAgB,CAAC,IAA4B,EAAE,OAAiD;QACpG,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DIDResolver } from 'did-resolver';
2
+ export declare function getDidEbsiResolver(): {
3
+ key: DIDResolver;
4
+ };
5
+ //# sourceMappingURL=EbsiDidResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EbsiDidResolver.d.ts","sourceRoot":"","sources":["../../src/did/EbsiDidResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,WAAW,EAAmC,MAAM,cAAc,CAAA;AAatH,wBAAgB,kBAAkB;;EAEjC"}
@@ -0,0 +1,10 @@
1
+ import { Resolver } from 'did-resolver';
2
+ import { getResolver } from '@sphereon/ssi-sdk-ext.did-resolver-ebsi';
3
+ const resolveDidEbsi = async (didUrl, _parsed, _resolver, options) => {
4
+ const resolver = new Resolver({ ...getResolver() });
5
+ return resolver.resolve(didUrl, options);
6
+ };
7
+ export function getDidEbsiResolver() {
8
+ return { key: resolveDidEbsi };
9
+ }
10
+ //# sourceMappingURL=EbsiDidResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EbsiDidResolver.js","sourceRoot":"","sources":["../../src/did/EbsiDidResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiF,QAAQ,EAAE,MAAM,cAAc,CAAA;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AAErE,MAAM,cAAc,GAAgB,KAAK,EACvC,MAAc,EACd,OAAkB,EAClB,SAAqB,EACrB,OAA6B,EACC,EAAE;IAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAA;IACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAA;AAChC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { IAgentContext, IIdentifier, IKey, IKeyManager, MinimalImportableKey, TKeyType } from '@veramo/core';
2
+ import { ApiOpts, EbsiApiVersion, EbsiEnvironment, IRequiredContext, WellknownOpts } from '../types/IEbsiSupport';
3
+ import { CreateEbsiDidParams, EbsiDidRegistryAPIEndpoints, EbsiDidSpecInfo, EbsiKeyType, EbsiPublicKeyPurpose, EbsiRPCResponse, IContext, IKeyOpts, RpcMethodArgs } from './types';
4
+ export declare function generateEbsiMethodSpecificId(specInfo?: EbsiDidSpecInfo): string;
5
+ export declare function generateOrUseProvidedEbsiPrivateKeyHex(specInfo?: EbsiDidSpecInfo, privateKeyBytes?: Uint8Array): string;
6
+ /**
7
+ * Returns the public key in the correct format to be used with the did registry v5
8
+ * - in case of Secp256k1 - returns the uncompressed public key as hex string prefixed with 0x04
9
+ * - in case of Secp256r1 - returns the jwk public key as hex string
10
+ * @param {{ key: IKey, type: EbsiKeyType }} args
11
+ * - key is the cryptographic key containing the public key
12
+ * - type is the type of the key which can be Secp256k1 or Secp256r1
13
+ * @returns {string} The properly formatted public key
14
+ * @throws {Error} If the key type is invalid
15
+ */
16
+ export declare const formatEbsiPublicKey: (args: {
17
+ key: IKey;
18
+ type: TKeyType;
19
+ }) => string;
20
+ export declare const ebsiGetIssuerMock: (args: {
21
+ environment?: EbsiEnvironment;
22
+ version?: EbsiApiVersion;
23
+ }) => string;
24
+ export declare const ebsiGetAuthorisationServer: (args: {
25
+ environment?: EbsiEnvironment;
26
+ version?: EbsiApiVersion;
27
+ }) => string;
28
+ export declare const ebsiGetRegistryAPIUrls: (args: {
29
+ environment?: EbsiEnvironment;
30
+ version?: EbsiApiVersion;
31
+ }) => EbsiDidRegistryAPIEndpoints;
32
+ export declare const determineWellknownEndpoint: ({ environment, version, type, system, mock }: WellknownOpts) => string;
33
+ export declare const ebsiSignAndSendTransaction: (args: {
34
+ rpcRequest: RpcMethodArgs;
35
+ previousTxResponse?: EbsiRPCResponse;
36
+ kid: string;
37
+ accessToken: string;
38
+ apiOpts?: ApiOpts;
39
+ }, context: IContext) => Promise<EbsiRPCResponse>;
40
+ export declare const ebsiGenerateOrUseKeyPair: (args: {
41
+ keyOpts?: IKeyOpts;
42
+ keyType: EbsiKeyType;
43
+ kms: string;
44
+ controllerKey?: boolean;
45
+ }, context: IAgentContext<IKeyManager>) => Promise<MinimalImportableKey>;
46
+ export declare const toMinimalImportableKey: (args: {
47
+ key?: IKeyOpts;
48
+ type: EbsiKeyType;
49
+ kms: string;
50
+ }) => Promise<MinimalImportableKey>;
51
+ export declare const assertedPurposes: (args: {
52
+ key?: IKeyOpts;
53
+ }) => EbsiPublicKeyPurpose[] | undefined;
54
+ export declare const setDefaultPurposes: (args: {
55
+ key?: IKeyOpts;
56
+ type: EbsiKeyType;
57
+ }) => EbsiPublicKeyPurpose[];
58
+ export declare const randomRpcId: () => number;
59
+ export declare const ebsiCreateDidOnLedger: (args: CreateEbsiDidParams, context: IRequiredContext) => Promise<{
60
+ identifier: IIdentifier;
61
+ addVerificationMethod: EbsiRPCResponse;
62
+ insertDidDoc: EbsiRPCResponse;
63
+ addAssertionMethodRelationship: EbsiRPCResponse;
64
+ addAuthenticationRelationship: EbsiRPCResponse;
65
+ }>;
66
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/did/functions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAM5G,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGjH,OAAO,EAEL,mBAAmB,EAEnB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,oBAAoB,EAEpB,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,aAAa,EAEd,MAAM,SAAS,CAAA;AAEhB,wBAAgB,4BAA4B,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAU/E;AAED,wBAAgB,sCAAsC,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,UAAU,GAAG,MAAM,CAWvH;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,SAAU;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,KAAG,MAwBzE,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,MAMrG,CAAA;AAED,eAAO,MAAM,0BAA0B,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,MAG9G,CAAA;AAED,eAAO,MAAM,sBAAsB,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,2BAO1G,CAAA;AAED,eAAO,MAAM,0BAA0B,iDAAgE,aAAa,KAAG,MAItH,CAAA;AAED,eAAO,MAAM,0BAA0B,SAC/B;IACJ,UAAU,EAAE,aAAa,CAAA;IACzB,kBAAkB,CAAC,EAAE,eAAe,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,wBAEA,QAAQ,eAAe,CAyDzB,CAAA;AAED,eAAO,MAAM,wBAAwB,SAC7B;IACJ,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,WACQ,cAAc,WAAW,CAAC,kCAyBpC,CAAA;AAED,eAAO,MAAM,sBAAsB,SAAgB;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAG,QAAQ,oBAAoB,CAkBnI,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,KAAG,oBAAoB,EAAE,GAAG,SA2BpF,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,KAAG,oBAAoB,EAapG,CAAA;AAED,eAAO,MAAM,WAAW,QAAO,MAE9B,CAAA;AAED,eAAO,MAAM,qBAAqB,SAC1B,mBAAmB;gBAGb,WAAW;2BACA,eAAe;kBACxB,eAAe;oCACG,eAAe;mCAChB,eAAe;EAsO/C,CAAA"}