@docknetwork/wallet-sdk-wasm 1.5.11 → 1.7.0

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 (97) hide show
  1. package/generate-docs.js +49 -0
  2. package/jsdoc.conf.json +29 -6
  3. package/lib/index.js +8 -1
  4. package/lib/index.mjs +8 -1
  5. package/lib/rpc-server.js +10 -1
  6. package/lib/rpc-server.mjs +10 -1
  7. package/lib/services/blockchain/cached-did-resolver.js +113 -0
  8. package/lib/services/blockchain/cached-did-resolver.mjs +109 -0
  9. package/lib/services/blockchain/index.js +11 -0
  10. package/lib/services/blockchain/index.mjs +11 -0
  11. package/lib/services/blockchain/service-rpc.js +16 -0
  12. package/lib/services/blockchain/service-rpc.mjs +16 -0
  13. package/lib/services/blockchain/service.js +144 -12
  14. package/lib/services/blockchain/service.mjs +144 -12
  15. package/lib/services/credential/bbs-revocation.js +11 -0
  16. package/lib/services/credential/bbs-revocation.mjs +11 -0
  17. package/lib/services/credential/config.js +4 -1
  18. package/lib/services/credential/config.mjs +4 -1
  19. package/lib/services/credential/index.js +14 -0
  20. package/lib/services/credential/index.mjs +14 -0
  21. package/lib/services/credential/pex-helpers.js +20 -0
  22. package/lib/services/credential/pex-helpers.mjs +20 -1
  23. package/lib/services/credential/sd-jwt.js +214 -0
  24. package/lib/services/credential/sd-jwt.mjs +200 -0
  25. package/lib/services/credential/service-rpc.js +9 -0
  26. package/lib/services/credential/service-rpc.mjs +9 -0
  27. package/lib/services/credential/service.js +325 -8
  28. package/lib/services/credential/service.mjs +326 -9
  29. package/lib/services/edv/service.js +145 -1
  30. package/lib/services/edv/service.mjs +145 -1
  31. package/lib/services/index.js +13 -0
  32. package/lib/services/index.mjs +13 -0
  33. package/lib/services/relay-service/service.js +124 -1
  34. package/lib/services/relay-service/service.mjs +124 -1
  35. package/lib/services/rpc-service-client.js +0 -3
  36. package/lib/services/rpc-service-client.mjs +0 -3
  37. package/lib/services/storage/index.js +19 -2
  38. package/lib/services/storage/index.mjs +24 -1
  39. package/lib/services/storage/service-rpc.js +7 -3
  40. package/lib/services/storage/service-rpc.mjs +7 -3
  41. package/lib/services/storage/service.js +4 -0
  42. package/lib/services/storage/service.mjs +4 -0
  43. package/lib/setup-nodejs.js +8 -1
  44. package/lib/setup-nodejs.mjs +8 -1
  45. package/lib/setup-tests.js +8 -1
  46. package/lib/setup-tests.mjs +8 -1
  47. package/lib/src/services/blockchain/cached-did-resolver.d.ts +28 -0
  48. package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +1 -0
  49. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +2 -0
  50. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +1 -0
  51. package/lib/src/services/blockchain/service.d.ts +115 -17
  52. package/lib/src/services/blockchain/service.d.ts.map +1 -1
  53. package/lib/src/services/credential/config.d.ts.map +1 -1
  54. package/lib/src/services/credential/index.d.ts +3 -0
  55. package/lib/src/services/credential/index.d.ts.map +1 -1
  56. package/lib/src/services/credential/pex-helpers.d.ts +13 -1
  57. package/lib/src/services/credential/pex-helpers.d.ts.map +1 -1
  58. package/lib/src/services/credential/sd-jwt.test.d.ts +2 -0
  59. package/lib/src/services/credential/sd-jwt.test.d.ts.map +1 -0
  60. package/lib/src/services/credential/service.d.ts +274 -4
  61. package/lib/src/services/credential/service.d.ts.map +1 -1
  62. package/lib/src/services/edv/service.d.ts +151 -1
  63. package/lib/src/services/edv/service.d.ts.map +1 -1
  64. package/lib/src/services/relay-service/service.d.ts +129 -1
  65. package/lib/src/services/relay-service/service.d.ts.map +1 -1
  66. package/lib/src/services/rpc-service-client.d.ts +2 -2
  67. package/lib/src/services/rpc-service-client.d.ts.map +1 -1
  68. package/lib/src/services/storage/index.d.ts +1 -1
  69. package/lib/src/services/storage/index.d.ts.map +1 -1
  70. package/lib/src/services/storage/service-rpc.d.ts +9 -0
  71. package/lib/src/services/storage/service-rpc.d.ts.map +1 -0
  72. package/lib/src/services/storage/service.d.ts +1 -0
  73. package/lib/src/services/storage/service.d.ts.map +1 -1
  74. package/lib/src/services/util-crypto/service.d.ts +1 -1
  75. package/lib/tsconfig.tsbuildinfo +1 -1
  76. package/lib/wallet/rpc-storage-interface.js +13 -3
  77. package/lib/wallet/rpc-storage-interface.mjs +11 -1
  78. package/lib/wallet/rpc-storage-wallet.js +10 -0
  79. package/lib/wallet/rpc-storage-wallet.mjs +10 -0
  80. package/package.json +13 -8
  81. package/src/services/blockchain/cached-did-resolver.test.ts +288 -0
  82. package/src/services/blockchain/cached-did-resolver.ts +126 -0
  83. package/src/services/blockchain/service-rpc.js +16 -0
  84. package/src/services/blockchain/service.ts +146 -12
  85. package/src/services/credential/config.ts +7 -1
  86. package/src/services/credential/pex-helpers.js +20 -1
  87. package/src/services/credential/pex-helpers.test.js +114 -0
  88. package/src/services/credential/sd-jwt.test.ts +718 -0
  89. package/src/services/credential/sd-jwt.ts +231 -0
  90. package/src/services/credential/service-rpc.js +9 -0
  91. package/src/services/credential/service.ts +330 -9
  92. package/src/services/edv/service.ts +153 -1
  93. package/src/services/relay-service/service.ts +130 -1
  94. package/src/services/rpc-service-client.js +0 -3
  95. package/src/services/storage/index.js +15 -1
  96. package/src/services/storage/service-rpc.js +7 -3
  97. package/src/services/storage/service.ts +5 -0
@@ -6,7 +6,16 @@ import '../../core/validation.mjs';
6
6
  import '../../types.mjs';
7
7
 
8
8
  /**
9
- * RelayService
9
+ * @module relay-service
10
+ * @description DIDComm message relay service for the Wallet SDK.
11
+ * This module provides functionality for sending, receiving, and managing DIDComm messages
12
+ * through a relay service, including push notification support.
13
+ */
14
+ /**
15
+ * Service class for managing DIDComm message relay operations
16
+ * @class
17
+ * @description Provides methods for sending, receiving, and acknowledging DIDComm messages
18
+ * through a relay service infrastructure
10
19
  */
11
20
  class RelayService {
12
21
  name;
@@ -18,33 +27,147 @@ class RelayService {
18
27
  RelayService.prototype.sendMessage,
19
28
  RelayService.prototype.signJwt,
20
29
  ];
30
+ /**
31
+ * Creates a new RelayService instance
32
+ * @constructor
33
+ */
21
34
  constructor() {
22
35
  this.name = serviceName;
23
36
  }
37
+ /**
38
+ * Sends a DIDComm message through the relay service
39
+ * @param {SendMessageParams} params - Message parameters
40
+ * @param {Object} params.keyPairDoc - Key pair document for message encryption
41
+ * @param {Object} params.message - The message payload to send
42
+ * @param {string} params.recipientDid - DID of the message recipient
43
+ * @param {string} [params.type] - Message type identifier
44
+ * @returns {Promise<Object>} Result of the send operation
45
+ * @throws {Error} If validation fails or sending fails
46
+ * @example
47
+ * const result = await relayService.sendMessage({
48
+ * keyPairDoc: senderKeyPair,
49
+ * message: { content: 'Hello' },
50
+ * recipientDid: 'did:key:recipient123',
51
+ * type: 'basic-message'
52
+ * });
53
+ */
24
54
  sendMessage(params) {
25
55
  validation.sendMessage(params);
26
56
  return RelayService$1.sendMessage(params);
27
57
  }
58
+ /**
59
+ * Acknowledges receipt of messages from the relay service
60
+ * @param {AckMessagesParams} params - Acknowledgment parameters
61
+ * @param {string} params.did - DID acknowledging the messages
62
+ * @param {Array<string>} params.messageIds - Array of message IDs to acknowledge
63
+ * @returns {Promise<Object>} Result of the acknowledgment operation
64
+ * @example
65
+ * await relayService.ackMessages({
66
+ * did: 'did:key:holder123',
67
+ * messageIds: ['msg-1', 'msg-2']
68
+ * });
69
+ */
28
70
  ackMessages(params) {
29
71
  return RelayService$1.ackMessages(params);
30
72
  }
73
+ /**
74
+ * Resolves and decrypts a DIDComm message
75
+ * @param {ResolveDidcommMessageParams} params - Resolution parameters
76
+ * @param {Object} params.encryptedMessage - The encrypted message to resolve
77
+ * @param {Object} params.keyPairDoc - Key pair document for decryption
78
+ * @returns {Promise<Object>} The decrypted and resolved message
79
+ * @throws {Error} If validation fails or resolution fails
80
+ * @example
81
+ * const decrypted = await relayService.resolveDidcommMessage({
82
+ * encryptedMessage: encryptedData,
83
+ * keyPairDoc: recipientKeyPair
84
+ * });
85
+ */
31
86
  resolveDidcommMessage(params) {
32
87
  validation.resolveDidcommMessage(params);
33
88
  return RelayService$1.resolveDidcommMessage(params);
34
89
  }
90
+ /**
91
+ * Signs a JWT using the provided key pair
92
+ * @param {ResolveDidcommMessageParams} params - Signing parameters
93
+ * @param {Object} params.payload - JWT payload to sign
94
+ * @param {Object} params.keyPairDoc - Key pair document for signing
95
+ * @returns {Promise<string>} The signed JWT token
96
+ * @throws {Error} If validation fails or signing fails
97
+ * @example
98
+ * const jwt = await relayService.signJwt({
99
+ * payload: { sub: 'did:key:123', iat: Date.now() },
100
+ * keyPairDoc: signerKeyPair
101
+ * });
102
+ */
35
103
  signJwt(params) {
36
104
  validation.signJwt(params);
37
105
  return RelayService$1.signJwt(params);
38
106
  }
107
+ /**
108
+ * Retrieves messages from the relay service
109
+ * @param {GetMessagesParams} params - Retrieval parameters
110
+ * @param {Object} params.keyPairDocs - Key pair documents for decryption
111
+ * @param {number} [params.limit] - Maximum number of messages to retrieve
112
+ * @param {boolean} [params.skipMessageResolution] - Whether to skip message resolution
113
+ * @returns {Promise<Array>} Array of retrieved messages
114
+ * @throws {Error} If validation fails or retrieval fails
115
+ * @example
116
+ * const messages = await relayService.getMessages({
117
+ * keyPairDocs: [keyPairDoc1, keyPairDoc2],
118
+ * limit: 50,
119
+ * skipMessageResolution: false
120
+ * });
121
+ */
39
122
  getMessages(params) {
40
123
  validation.getMessages(params);
41
124
  return RelayService$1.getMessages(params);
42
125
  }
126
+ /**
127
+ * Registers a DID for push notifications
128
+ * @param {RegisterDIDPushNotificationParams} params - Registration parameters
129
+ * @param {string} params.did - The DID to register for notifications
130
+ * @param {string} params.deviceToken - Device token for push notifications
131
+ * @param {string} [params.platform] - Platform identifier (ios, android, etc.)
132
+ * @returns {Promise<Object>} Result of the registration
133
+ * @throws {Error} If validation fails or registration fails
134
+ * @example
135
+ * await relayService.registerDIDPushNotification({
136
+ * did: 'did:key:holder123',
137
+ * deviceToken: 'fcm-token-123',
138
+ * platform: 'android'
139
+ * });
140
+ */
43
141
  registerDIDPushNotification(params) {
44
142
  validation.registerDIDPushNotification(params);
45
143
  return RelayService$1.registerDIDPushNotification(params);
46
144
  }
47
145
  }
146
+ /**
147
+ * Singleton instance of the relay service
148
+ * @type {RelayService}
149
+ * @example
150
+ * import { relayService } from '@docknetwork/wallet-sdk-wasm/services/relay-service';
151
+ *
152
+ * // Send a DIDComm message
153
+ * await relayService.sendMessage({
154
+ * keyPairDoc: senderKeyPair,
155
+ * message: { type: 'greeting', content: 'Hello!' },
156
+ * recipientDid: 'did:key:recipient123'
157
+ * });
158
+ *
159
+ * // Retrieve messages
160
+ * const messages = await relayService.getMessages({
161
+ * keyPairDocs: [recipientKeyPair],
162
+ * limit: 10
163
+ * });
164
+ *
165
+ * // Acknowledge messages
166
+ * await relayService.ackMessages({
167
+ * did: 'did:key:recipient123',
168
+ * messageIds: messages.map(m => m.id)
169
+ * });
170
+ */
48
171
  const relayService = new RelayService();
49
172
 
50
173
  export { RelayService, relayService };
@@ -16,9 +16,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
16
16
  var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
17
17
 
18
18
  class RpcService {
19
-
20
-
21
-
22
19
  constructor(serviceName) {
23
20
  assert__default["default"](!!serviceName, 'serviceName is required');
24
21
 
@@ -8,9 +8,6 @@ import '../logger.mjs';
8
8
  import '../rpc-util.mjs';
9
9
 
10
10
  class RpcService {
11
-
12
-
13
-
14
11
  constructor(serviceName) {
15
12
  assert(!!serviceName, 'serviceName is required');
16
13
 
@@ -3,7 +3,24 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var services_storage_service = require('./service.js');
6
+ var services_storage_serviceRpc = require('./service-rpc.js');
7
+ require('../rpc-service-client.js');
8
+ require('assert');
9
+ require('../../rpc-client.js');
10
+ require('json-rpc-2.0');
11
+ require('../../core/crypto.js');
12
+ require('crypto');
13
+ require('../../core/logger.js');
14
+ require('../../logger.js');
15
+ require('../../rpc-util.js');
6
16
 
17
+ exports.storageService = void 0;
7
18
 
8
-
9
- exports.storageService = services_storage_service.storageService;
19
+ if (typeof window !== 'undefined' && window.ReactNativeWebView) {
20
+ // Detect if we are running inside the webview
21
+ // then route the calls to the service-rpc
22
+ exports.storageService = new services_storage_serviceRpc.StorageServiceRpc();
23
+ } else {
24
+ // use the service directly for non-webview environments
25
+ exports.storageService = services_storage_service.storageService;
26
+ }
@@ -1 +1,24 @@
1
- export { storageService } from './service.mjs';
1
+ import { storageService as storageService$1 } from './service.mjs';
2
+ import { StorageServiceRpc } from './service-rpc.mjs';
3
+ import '../rpc-service-client.mjs';
4
+ import 'assert';
5
+ import '../../rpc-client.mjs';
6
+ import 'json-rpc-2.0';
7
+ import '../../core/crypto.mjs';
8
+ import 'crypto';
9
+ import '../../core/logger.mjs';
10
+ import '../../logger.mjs';
11
+ import '../../rpc-util.mjs';
12
+
13
+ let storageService;
14
+
15
+ if (typeof window !== 'undefined' && window.ReactNativeWebView) {
16
+ // Detect if we are running inside the webview
17
+ // then route the calls to the service-rpc
18
+ storageService = new StorageServiceRpc();
19
+ } else {
20
+ // use the service directly for non-webview environments
21
+ storageService = storageService$1;
22
+ }
23
+
24
+ export { storageService };
@@ -17,17 +17,21 @@ class StorageServiceRpc extends services_rpcServiceClient.RpcService {
17
17
  super('storage');
18
18
  }
19
19
 
20
- setItem(...args) {
20
+ setItem(...args) {
21
21
  return this.call('setItem', ...args);
22
22
  }
23
23
 
24
- removeItem(...args) {
24
+ removeItem(...args) {
25
25
  return this.call('removeItem', ...args);
26
26
  }
27
27
 
28
- getItem(...args) {
28
+ getItem(...args) {
29
29
  return this.call('getItem', ...args);
30
30
  }
31
+
32
+ getAllKeys() {
33
+ return this.call('getAllKeys');
34
+ }
31
35
  }
32
36
 
33
37
  exports.StorageServiceRpc = StorageServiceRpc;
@@ -13,17 +13,21 @@ class StorageServiceRpc extends RpcService {
13
13
  super('storage');
14
14
  }
15
15
 
16
- setItem(...args) {
16
+ setItem(...args) {
17
17
  return this.call('setItem', ...args);
18
18
  }
19
19
 
20
- removeItem(...args) {
20
+ removeItem(...args) {
21
21
  return this.call('removeItem', ...args);
22
22
  }
23
23
 
24
- getItem(...args) {
24
+ getItem(...args) {
25
25
  return this.call('getItem', ...args);
26
26
  }
27
+
28
+ getAllKeys() {
29
+ return this.call('getAllKeys');
30
+ }
27
31
  }
28
32
 
29
33
  export { StorageServiceRpc };
@@ -8,6 +8,7 @@ class StorageService {
8
8
  StorageService.prototype.setItem,
9
9
  StorageService.prototype.getItem,
10
10
  StorageService.prototype.removeItem,
11
+ StorageService.prototype.getAllKeys,
11
12
  ];
12
13
  constructor() {
13
14
  this.name = 'storage';
@@ -21,6 +22,9 @@ class StorageService {
21
22
  getItem(...args) {
22
23
  return global.localStorage.getItem(...args);
23
24
  }
25
+ getAllKeys() {
26
+ return Promise.resolve(Object.keys(global.localStorage));
27
+ }
24
28
  }
25
29
  const storageService = new StorageService();
26
30
 
@@ -4,6 +4,7 @@ class StorageService {
4
4
  StorageService.prototype.setItem,
5
5
  StorageService.prototype.getItem,
6
6
  StorageService.prototype.removeItem,
7
+ StorageService.prototype.getAllKeys,
7
8
  ];
8
9
  constructor() {
9
10
  this.name = 'storage';
@@ -17,6 +18,9 @@ class StorageService {
17
18
  getItem(...args) {
18
19
  return global.localStorage.getItem(...args);
19
20
  }
21
+ getAllKeys() {
22
+ return Promise.resolve(Object.keys(global.localStorage));
23
+ }
20
24
  }
21
25
  const storageService = new StorageService();
22
26
 
@@ -26,6 +26,11 @@ require('@scure/bip39');
26
26
  require('@scure/bip39/wordlists/english');
27
27
  require('./services/util-crypto/configs.js');
28
28
  require('@docknetwork/credential-sdk/types');
29
+ require('./services/blockchain/cached-did-resolver.js');
30
+ require('./services/storage/index.js');
31
+ require('./services/storage/service.js');
32
+ require('./services/storage/service-rpc.js');
33
+ require('./services/rpc-service-client.js');
29
34
  require('./services/wallet/service.js');
30
35
  require('./wallet/memory-storage-wallet.js');
31
36
  require('@docknetwork/universal-wallet/storage-wallet');
@@ -34,7 +39,6 @@ require('@docknetwork/universal-wallet/storage/storage-interface');
34
39
  require('./services/wallet/configs.js');
35
40
  require('./core/validation.js');
36
41
  require('./types.js');
37
- require('./services/storage/service.js');
38
42
  require('./services/dids/service.js');
39
43
  require('@docknetwork/wallet-sdk-dids/lib');
40
44
  require('./services/dids/config.js');
@@ -61,6 +65,9 @@ require('@docknetwork/crypto-wasm-ts/lib/legosnark');
61
65
  require('./services/credential/pex-helpers.js');
62
66
  require('@astronautlabs/jsonpath');
63
67
  require('./services/credential/bbs-revocation.js');
68
+ require('./services/credential/sd-jwt.js');
69
+ require('@sd-jwt/sd-jwt-vc');
70
+ require('@sd-jwt/crypto-nodejs');
64
71
  require('./services/relay-service/service.js');
65
72
  require('./services/relay-service/configs.js');
66
73
  require('@docknetwork/wallet-sdk-relay-service/lib');
@@ -24,6 +24,11 @@ import '@scure/bip39';
24
24
  import '@scure/bip39/wordlists/english';
25
25
  import './services/util-crypto/configs.mjs';
26
26
  import '@docknetwork/credential-sdk/types';
27
+ import './services/blockchain/cached-did-resolver.mjs';
28
+ import './services/storage/index.mjs';
29
+ import './services/storage/service.mjs';
30
+ import './services/storage/service-rpc.mjs';
31
+ import './services/rpc-service-client.mjs';
27
32
  import './services/wallet/service.mjs';
28
33
  import './wallet/memory-storage-wallet.mjs';
29
34
  import '@docknetwork/universal-wallet/storage-wallet';
@@ -32,7 +37,6 @@ import '@docknetwork/universal-wallet/storage/storage-interface';
32
37
  import './services/wallet/configs.mjs';
33
38
  import './core/validation.mjs';
34
39
  import './types.mjs';
35
- import './services/storage/service.mjs';
36
40
  import './services/dids/service.mjs';
37
41
  import '@docknetwork/wallet-sdk-dids/lib';
38
42
  import './services/dids/config.mjs';
@@ -59,6 +63,9 @@ import '@docknetwork/crypto-wasm-ts/lib/legosnark';
59
63
  import './services/credential/pex-helpers.mjs';
60
64
  import '@astronautlabs/jsonpath';
61
65
  import './services/credential/bbs-revocation.mjs';
66
+ import './services/credential/sd-jwt.mjs';
67
+ import '@sd-jwt/sd-jwt-vc';
68
+ import '@sd-jwt/crypto-nodejs';
62
69
  import './services/relay-service/service.mjs';
63
70
  import './services/relay-service/configs.mjs';
64
71
  import '@docknetwork/wallet-sdk-relay-service/lib';
@@ -26,6 +26,11 @@ require('@scure/bip39');
26
26
  require('@scure/bip39/wordlists/english');
27
27
  require('./services/util-crypto/configs.js');
28
28
  require('@docknetwork/credential-sdk/types');
29
+ require('./services/blockchain/cached-did-resolver.js');
30
+ require('./services/storage/index.js');
31
+ require('./services/storage/service.js');
32
+ require('./services/storage/service-rpc.js');
33
+ require('./services/rpc-service-client.js');
29
34
  require('./services/wallet/service.js');
30
35
  require('./wallet/memory-storage-wallet.js');
31
36
  require('@docknetwork/universal-wallet/storage-wallet');
@@ -34,7 +39,6 @@ require('@docknetwork/universal-wallet/storage/storage-interface');
34
39
  require('./services/wallet/configs.js');
35
40
  require('./core/validation.js');
36
41
  require('./types.js');
37
- require('./services/storage/service.js');
38
42
  require('./services/dids/service.js');
39
43
  require('@docknetwork/wallet-sdk-dids/lib');
40
44
  require('./services/dids/config.js');
@@ -61,6 +65,9 @@ require('@docknetwork/crypto-wasm-ts/lib/legosnark');
61
65
  require('./services/credential/pex-helpers.js');
62
66
  require('@astronautlabs/jsonpath');
63
67
  require('./services/credential/bbs-revocation.js');
68
+ require('./services/credential/sd-jwt.js');
69
+ require('@sd-jwt/sd-jwt-vc');
70
+ require('@sd-jwt/crypto-nodejs');
64
71
  require('./services/relay-service/service.js');
65
72
  require('./services/relay-service/configs.js');
66
73
  require('@docknetwork/wallet-sdk-relay-service/lib');
@@ -24,6 +24,11 @@ import '@scure/bip39';
24
24
  import '@scure/bip39/wordlists/english';
25
25
  import './services/util-crypto/configs.mjs';
26
26
  import '@docknetwork/credential-sdk/types';
27
+ import './services/blockchain/cached-did-resolver.mjs';
28
+ import './services/storage/index.mjs';
29
+ import './services/storage/service.mjs';
30
+ import './services/storage/service-rpc.mjs';
31
+ import './services/rpc-service-client.mjs';
27
32
  import './services/wallet/service.mjs';
28
33
  import './wallet/memory-storage-wallet.mjs';
29
34
  import '@docknetwork/universal-wallet/storage-wallet';
@@ -32,7 +37,6 @@ import '@docknetwork/universal-wallet/storage/storage-interface';
32
37
  import './services/wallet/configs.mjs';
33
38
  import './core/validation.mjs';
34
39
  import './types.mjs';
35
- import './services/storage/service.mjs';
36
40
  import './services/dids/service.mjs';
37
41
  import '@docknetwork/wallet-sdk-dids/lib';
38
42
  import './services/dids/config.mjs';
@@ -59,6 +63,9 @@ import '@docknetwork/crypto-wasm-ts/lib/legosnark';
59
63
  import './services/credential/pex-helpers.mjs';
60
64
  import '@astronautlabs/jsonpath';
61
65
  import './services/credential/bbs-revocation.mjs';
66
+ import './services/credential/sd-jwt.mjs';
67
+ import '@sd-jwt/sd-jwt-vc';
68
+ import '@sd-jwt/crypto-nodejs';
62
69
  import './services/relay-service/service.mjs';
63
70
  import './services/relay-service/configs.mjs';
64
71
  import '@docknetwork/wallet-sdk-relay-service/lib';
@@ -0,0 +1,28 @@
1
+ interface CacheOptions {
2
+ ttl?: number;
3
+ }
4
+ interface DIDResolver {
5
+ resolve(did: string): Promise<any>;
6
+ supports(id: string): boolean;
7
+ }
8
+ export declare class CachedDIDResolver {
9
+ private router;
10
+ private ttl;
11
+ private readonly CACHE_PREFIX;
12
+ constructor(router: DIDResolver, cacheOptions?: CacheOptions);
13
+ private getCacheKey;
14
+ private getCacheEntry;
15
+ private setCacheEntry;
16
+ getCachedDIDs(): Promise<string[]>;
17
+ resolve(did: string): Promise<any>;
18
+ private refreshInBackground;
19
+ /**
20
+ * if the did is provided, it will remove the specific did from the cache
21
+ * otherwise, it will clear the entire cache
22
+ * @param did
23
+ */
24
+ clearCache(did?: string): Promise<void>;
25
+ supports(id: string): boolean;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=cached-did-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-did-resolver.d.ts","sourceRoot":"","sources":["../../../../src/services/blockchain/cached-did-resolver.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,MAAM,EAAE,WAAW,EAAE,YAAY,GAAE,YAAiB;IAMhE,OAAO,CAAC,WAAW;YAKL,aAAa;YAYb,aAAa;IAKrB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAalC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YA0B1B,mBAAmB;IAiBjC;;;;OAIG;IACG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cached-did-resolver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-did-resolver.test.d.ts","sourceRoot":"","sources":["../../../../src/services/blockchain/cached-did-resolver.test.ts"],"names":[],"mappings":""}
@@ -1,11 +1,15 @@
1
- import { ResolverRouter } from '@docknetwork/credential-sdk/resolver';
2
1
  import { InitParams } from './configs';
2
+ /**
3
+ * Universal resolver URL for DID resolution fallback
4
+ * @constant {string}
5
+ */
3
6
  export declare const universalResolverUrl = "https://uniresolver.truvera.io";
4
- declare class AnyDIDResolver extends ResolverRouter {
5
- method: any;
6
- }
7
+ import { CachedDIDResolver } from './cached-did-resolver';
7
8
  /**
8
- *
9
+ * Main blockchain service class for managing blockchain connections and DID resolution
10
+ * @class
11
+ * @description Provides methods for connecting to Cheqd blockchain, resolving DIDs,
12
+ * and managing blockchain-related operations
9
13
  */
10
14
  export declare class BlockchainService {
11
15
  dock: any;
@@ -14,11 +18,30 @@ export declare class BlockchainService {
14
18
  cheqdApiUrl: any;
15
19
  isBlockchainReady: boolean;
16
20
  resolver: any;
21
+ /**
22
+ * Event names emitted by the blockchain service
23
+ * @static
24
+ * @readonly
25
+ * @property {string} BLOCKCHAIN_READY - Emitted when blockchain connection is established
26
+ */
17
27
  static Events: {
18
28
  BLOCKCHAIN_READY: string;
19
29
  };
20
- rpcMethods: ((() => Promise<any>) | ((params: InitParams) => Promise<boolean>))[];
30
+ rpcMethods: ((did: any) => any)[];
31
+ /**
32
+ * Creates a new BlockchainService instance
33
+ * @constructor
34
+ */
21
35
  constructor();
36
+ /**
37
+ * Gets the types and modules needed for DID or accumulator operations
38
+ * @param {string} didOrRegistryId - DID or registry identifier
39
+ * @returns {Object} Object containing accumulator-related types and modules
40
+ * @returns {typeof AccumulatorPublicKey} returns.PublicKey - Accumulator public key type
41
+ * @returns {typeof AccumulatorId} returns.AccumulatorId - Accumulator ID type
42
+ * @returns {typeof AccumulatorCommon} returns.AccumulatorCommon - Common accumulator type
43
+ * @returns {Object} returns.AccumulatorModule - Accumulator module instance
44
+ */
22
45
  getTypesForDIDOrAccumulator(didOrRegistryId: any): {
23
46
  PublicKey: any;
24
47
  AccumulatorId: any;
@@ -26,31 +49,106 @@ export declare class BlockchainService {
26
49
  AccumulatorModule: any;
27
50
  };
28
51
  /**
29
- *
30
- * @returns
52
+ * Ensures the blockchain connection is ready before proceeding
53
+ * @returns {Promise<void>} Resolves when blockchain is ready
54
+ * @example
55
+ * await blockchainService.ensureBlockchainReady();
56
+ * // Blockchain is now connected and ready
31
57
  */
32
58
  ensureBlockchainReady(): Promise<unknown>;
33
- createDIDResolver(): AnyDIDResolver;
34
59
  /**
35
- *
36
- * @param {*} params
37
- * @returns
60
+ * Gets the cached DIDs
61
+ * @returns {Promise<string[]>} Cached DIDs
62
+ */
63
+ getCachedDIDs(): any;
64
+ /**
65
+ * Gets the cached DID resolution data
66
+ * @param {string} did - The DID to get the cache entry for
67
+ * @returns {Promise<any>} Cached DID resolution data
68
+ */
69
+ getCacheEntry(did: any): any;
70
+ /**
71
+ * Clears cached data for a specific DID
72
+ * @param {string} did - The DID to clear from cache
73
+ * @returns {void}
74
+ */
75
+ clearCache(did: any): any;
76
+ /**
77
+ * Creates a DID resolver with caching support
78
+ * @private
79
+ * @returns {CachedDIDResolver} Cached DID resolver instance
80
+ */
81
+ createDIDResolver(): CachedDIDResolver;
82
+ /**
83
+ * Initializes the blockchain service with connection parameters
84
+ * @param {InitParams} params - Initialization parameters
85
+ * @param {string} params.cheqdApiUrl - URL of the Cheqd API endpoint
86
+ * @param {string} [params.networkId] - Cheqd network identifier
87
+ * @param {string} [params.cheqdMnemonic] - Mnemonic for Cheqd wallet (auto-generated if not provided)
88
+ * @returns {Promise<boolean>} True if initialization successful
89
+ * @throws {Error} If cheqdApiUrl is not provided
90
+ * @example
91
+ * await blockchainService.init({
92
+ * cheqdApiUrl: 'https://api.cheqd.network',
93
+ * networkId: 'mainnet'
94
+ * });
38
95
  */
39
96
  init(params: InitParams): Promise<boolean>;
40
97
  /**
41
- *
42
- * @returns
98
+ * Disconnects from the blockchain
99
+ * @returns {Promise<void>} Resolves when disconnection is complete
100
+ * @example
101
+ * await blockchainService.disconnect();
43
102
  */
44
103
  disconnect(): Promise<any>;
104
+ /**
105
+ * Waits for the blockchain to be ready
106
+ * @returns {Promise<void>} Resolves when blockchain is ready
107
+ * @private
108
+ */
45
109
  waitBlockchainReady(): Promise<unknown>;
46
110
  /**
47
- *
48
- * @returns
111
+ * Resolves a DID to its document
112
+ * @param {string} did - The DID to resolve
113
+ * @returns {Promise<Object>} The resolved DID document
114
+ * @example
115
+ * const didDoc = await blockchainService.resolveDID('did:key:z6Mk...');
116
+ */
117
+ resolveDID(did: string): Promise<any>;
118
+ /**
119
+ * Checks if the blockchain API is connected
120
+ * @returns {Promise<boolean>} True if connected, false otherwise
121
+ * @example
122
+ * const isConnected = await blockchainService.isApiConnected();
49
123
  */
50
124
  isApiConnected(): Promise<any>;
125
+ /**
126
+ * Gets the current Cheqd API URL
127
+ * @returns {Promise<string>} The Cheqd API URL
128
+ * @example
129
+ * const apiUrl = await blockchainService.getAddress();
130
+ */
51
131
  getAddress(): Promise<any>;
132
+ /**
133
+ * Sets the blockchain ready state and emits events
134
+ * @private
135
+ * @param {boolean} isBlockchainReady - Whether blockchain is ready
136
+ */
52
137
  _setBlockchainReady(isBlockchainReady: any): void;
53
138
  }
139
+ /**
140
+ * Singleton instance of the blockchain service
141
+ * @type {BlockchainService}
142
+ * @example
143
+ * import { blockchainService } from '@docknetwork/wallet-sdk-wasm/services/blockchain';
144
+ *
145
+ * // Initialize the service
146
+ * await blockchainService.init({
147
+ * cheqdApiUrl: 'https://api.cheqd.network'
148
+ * });
149
+ *
150
+ * // Resolve a DID
151
+ * const didDoc = await blockchainService.resolveDID('did:key:z6Mk...');
152
+ */
54
153
  export declare const blockchainService: BlockchainService;
55
- export {};
56
154
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/services/blockchain/service.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,cAAc,EAGf,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAErC,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AAQrE,cAAM,cAAe,SAAQ,cAAc;IACzC,MAAM,MAAY;CACnB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,IAAI,MAAC;IACL,OAAO,MAAC;IACR,QAAQ,MAAC;IACT,WAAW,MAAC;IACZ,iBAAiB,UAAS;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,MAAM;;MAEX;IAEF,UAAU,oCAkDS,UAAU,0BA5C3B;;IAWF,2BAA2B,CAAC,eAAe,KAAA;;;;;;IAS3C;;;OAGG;IACG,qBAAqB;IAQ3B,iBAAiB;IAOjB;;;;OAIG;IACG,IAAI,CAAC,MAAM,EAAE,UAAU;IAwD7B;;;OAGG;IACG,UAAU;IAYV,mBAAmB;IAUzB;;;OAGG;IACG,cAAc;IAId,UAAU;IAIhB,mBAAmB,CAAC,iBAAiB,KAAA;CAOtC;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAA2C,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/services/blockchain/service.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AAOrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAY1D;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,IAAI,MAAC;IACL,OAAO,MAAC;IACR,QAAQ,MAAC;IACT,WAAW,MAAC;IACZ,iBAAiB,UAAS;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,MAAM;;MAEX;IAEF,UAAU,wBAUR;IAEF;;;OAGG;;IAUH;;;;;;;;OAQG;IACH,2BAA2B,CAAC,eAAe,KAAA;;;;;;IAS3C;;;;;;OAMG;IACG,qBAAqB;IAS3B;;;OAGG;IACH,aAAa;IAIb;;;;OAIG;IACH,aAAa,CAAC,GAAG,KAAA;IAIjB;;;;OAIG;IACH,UAAU,CAAC,GAAG,KAAA;IAId;;;;OAIG;IACH,iBAAiB;IASjB;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,MAAM,EAAE,UAAU;IAwD7B;;;;;OAKG;IACG,UAAU;IAYhB;;;;OAIG;IACG,mBAAmB;IAUzB;;;;;;OAMG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM;IAG5B;;;;;OAKG;IACG,cAAc;IAIpB;;;;;OAKG;IACG,UAAU;IAIhB;;;;OAIG;IACH,mBAAmB,CAAC,iBAAiB,KAAA;CAOtC;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAA2C,CAAC"}