@docknetwork/wallet-sdk-wasm 1.5.14 → 1.7.6
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/generate-docs.js +49 -0
- package/jsdoc.conf.json +29 -6
- package/lib/index.js +9 -1
- package/lib/index.mjs +9 -1
- package/lib/modules/network-manager.js +15 -12
- package/lib/modules/network-manager.mjs +15 -12
- package/lib/rpc-server.js +11 -1
- package/lib/rpc-server.mjs +11 -1
- package/lib/services/blockchain/cached-did-resolver.js +113 -0
- package/lib/services/blockchain/cached-did-resolver.mjs +109 -0
- package/lib/services/blockchain/index.js +11 -0
- package/lib/services/blockchain/index.mjs +11 -0
- package/lib/services/blockchain/service-rpc.js +12 -0
- package/lib/services/blockchain/service-rpc.mjs +12 -0
- package/lib/services/blockchain/service.js +161 -19
- package/lib/services/blockchain/service.mjs +162 -20
- package/lib/services/credential/bbs-revocation.js +11 -0
- package/lib/services/credential/bbs-revocation.mjs +11 -0
- package/lib/services/credential/bound-check.js +1 -1
- package/lib/services/credential/bound-check.mjs +1 -1
- package/lib/services/credential/config.js +4 -1
- package/lib/services/credential/config.mjs +4 -1
- package/lib/services/credential/delegatable-credentials.js +300 -0
- package/lib/services/credential/delegatable-credentials.mjs +263 -0
- package/lib/services/credential/index.js +53 -0
- package/lib/services/credential/index.mjs +18 -0
- package/lib/services/credential/pex-helpers.js +4 -4
- package/lib/services/credential/pex-helpers.mjs +4 -4
- package/lib/services/credential/sd-jwt.js +214 -0
- package/lib/services/credential/sd-jwt.mjs +200 -0
- package/lib/services/credential/service-rpc.js +9 -0
- package/lib/services/credential/service-rpc.mjs +9 -0
- package/lib/services/credential/service.js +324 -7
- package/lib/services/credential/service.mjs +324 -7
- package/lib/services/edv/index.js +1 -0
- package/lib/services/edv/index.mjs +1 -0
- package/lib/services/edv/service-rpc.js +23 -0
- package/lib/services/edv/service-rpc.mjs +23 -0
- package/lib/services/edv/service.js +226 -2
- package/lib/services/edv/service.mjs +223 -3
- package/lib/services/index.js +14 -0
- package/lib/services/index.mjs +14 -0
- package/lib/services/pex/config.js +4 -0
- package/lib/services/pex/config.mjs +4 -0
- package/lib/services/pex/service-rpc.js +4 -0
- package/lib/services/pex/service-rpc.mjs +4 -0
- package/lib/services/pex/service.js +7 -0
- package/lib/services/pex/service.mjs +7 -0
- package/lib/services/relay-service/service.js +124 -1
- package/lib/services/relay-service/service.mjs +124 -1
- package/lib/services/rpc-service-client.js +0 -3
- package/lib/services/rpc-service-client.mjs +0 -3
- package/lib/services/storage/index.js +19 -2
- package/lib/services/storage/index.mjs +24 -1
- package/lib/services/storage/service-rpc.js +7 -3
- package/lib/services/storage/service-rpc.mjs +7 -3
- package/lib/services/storage/service.js +4 -0
- package/lib/services/storage/service.mjs +4 -0
- package/lib/setup-nodejs.js +9 -1
- package/lib/setup-nodejs.mjs +9 -1
- package/lib/setup-tests.js +9 -1
- package/lib/setup-tests.mjs +9 -1
- package/lib/src/modules/event-manager.d.ts +0 -1
- package/lib/src/modules/event-manager.d.ts.map +1 -1
- package/lib/src/modules/network-manager.d.ts +2 -4
- package/lib/src/modules/network-manager.d.ts.map +1 -1
- package/lib/src/services/blockchain/cached-did-resolver.d.ts +28 -0
- package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +1 -0
- package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +2 -0
- package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +1 -0
- package/lib/src/services/blockchain/configs.d.ts +1 -2
- package/lib/src/services/blockchain/configs.d.ts.map +1 -1
- package/lib/src/services/blockchain/service.d.ts +117 -19
- package/lib/src/services/blockchain/service.d.ts.map +1 -1
- package/lib/src/services/credential/bbs-revocation.d.ts +1 -1
- package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
- package/lib/src/services/credential/bound-check.d.ts.map +1 -1
- package/lib/src/services/credential/config.d.ts.map +1 -1
- package/lib/src/services/credential/delegatable-credentials.d.ts +272 -0
- package/lib/src/services/credential/delegatable-credentials.d.ts.map +1 -0
- package/lib/src/services/credential/index.d.ts +4 -0
- package/lib/src/services/credential/index.d.ts.map +1 -1
- package/lib/src/services/credential/pex-helpers.d.ts +2 -2
- package/lib/src/services/credential/pex-helpers.d.ts.map +1 -1
- package/lib/src/services/credential/sd-jwt.test.d.ts +2 -0
- package/lib/src/services/credential/sd-jwt.test.d.ts.map +1 -0
- package/lib/src/services/credential/service.d.ts +274 -4
- package/lib/src/services/credential/service.d.ts.map +1 -1
- package/lib/src/services/dids/keypair-utils.d.ts +2 -2
- package/lib/src/services/dids/keypair-utils.d.ts.map +1 -1
- package/lib/src/services/dids/service.d.ts +35 -3
- package/lib/src/services/dids/service.d.ts.map +1 -1
- package/lib/src/services/edv/service.d.ts +201 -2
- package/lib/src/services/edv/service.d.ts.map +1 -1
- package/lib/src/services/pex/config.d.ts +1 -0
- package/lib/src/services/pex/config.d.ts.map +1 -1
- package/lib/src/services/pex/service.d.ts +1 -0
- package/lib/src/services/pex/service.d.ts.map +1 -1
- package/lib/src/services/relay-service/service.d.ts +148 -8
- package/lib/src/services/relay-service/service.d.ts.map +1 -1
- package/lib/src/services/rpc-service-client.d.ts +2 -2
- package/lib/src/services/rpc-service-client.d.ts.map +1 -1
- package/lib/src/services/storage/index.d.ts +1 -1
- package/lib/src/services/storage/index.d.ts.map +1 -1
- package/lib/src/services/storage/service-rpc.d.ts +9 -0
- package/lib/src/services/storage/service-rpc.d.ts.map +1 -0
- package/lib/src/services/storage/service.d.ts +1 -0
- package/lib/src/services/storage/service.d.ts.map +1 -1
- package/lib/src/services/util-crypto/service.d.ts +2 -2
- package/lib/src/services/util-crypto/service.d.ts.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/wallet/rpc-storage-interface.js +13 -3
- package/lib/wallet/rpc-storage-interface.mjs +11 -1
- package/lib/wallet/rpc-storage-wallet.js +10 -0
- package/lib/wallet/rpc-storage-wallet.mjs +10 -0
- package/package.json +29 -16
- package/rollup.config.mjs +5 -3
- package/src/globals.d.ts +3 -0
- package/src/modules/network-manager.ts +15 -14
- package/src/services/blockchain/cached-did-resolver.test.ts +288 -0
- package/src/services/blockchain/cached-did-resolver.ts +126 -0
- package/src/services/blockchain/configs.ts +1 -2
- package/src/services/blockchain/service-rpc.js +12 -0
- package/src/services/blockchain/service.ts +167 -20
- package/src/services/credential/bound-check.ts +1 -1
- package/src/services/credential/config.ts +7 -1
- package/src/services/credential/delegatable-credentials.ts +409 -0
- package/src/services/credential/index.ts +16 -0
- package/src/services/credential/pex-helpers.js +4 -4
- package/src/services/credential/pex-helpers.test.js +2 -2
- package/src/services/credential/sd-jwt.test.ts +718 -0
- package/src/services/credential/sd-jwt.ts +231 -0
- package/src/services/credential/service-rpc.js +9 -0
- package/src/services/credential/service.ts +328 -7
- package/src/services/edv/index.test.js +229 -0
- package/src/services/edv/service-rpc.js +23 -0
- package/src/services/edv/service.ts +272 -1
- package/src/services/pex/config.ts +4 -0
- package/src/services/pex/service-rpc.js +4 -0
- package/src/services/pex/service.ts +13 -0
- package/src/services/pex/tests/pex-service.test.js +210 -0
- package/src/services/relay-service/service.ts +130 -1
- package/src/services/rpc-service-client.js +0 -3
- package/src/services/storage/index.js +15 -1
- package/src/services/storage/service-rpc.js +7 -3
- package/src/services/storage/service.ts +5 -0
|
@@ -30,6 +30,10 @@ class PEXServiceRPC extends services_rpcServiceClient.RpcService {
|
|
|
30
30
|
async presentationFrom(params ) {
|
|
31
31
|
return this.call('presentationFrom', params);
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
async isCredentialSelectionValid(params ) {
|
|
35
|
+
return this.call('isCredentialSelectionValid', params);
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
exports.PEXServiceRPC = PEXServiceRPC;
|
|
@@ -26,6 +26,10 @@ class PEXServiceRPC extends RpcService {
|
|
|
26
26
|
async presentationFrom(params ) {
|
|
27
27
|
return this.call('presentationFrom', params);
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
async isCredentialSelectionValid(params ) {
|
|
31
|
+
return this.call('isCredentialSelectionValid', params);
|
|
32
|
+
}
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
export { PEXServiceRPC };
|
|
@@ -58,6 +58,7 @@ class PEXService {
|
|
|
58
58
|
PEXService.prototype.filterCredentials,
|
|
59
59
|
PEXService.prototype.evaluatePresentation,
|
|
60
60
|
PEXService.prototype.presentationFrom,
|
|
61
|
+
PEXService.prototype.isCredentialSelectionValid,
|
|
61
62
|
];
|
|
62
63
|
filterCredentials(params) {
|
|
63
64
|
services_pex_config.validation.filterCredentials(params);
|
|
@@ -65,6 +66,12 @@ class PEXService {
|
|
|
65
66
|
const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
|
|
66
67
|
return result;
|
|
67
68
|
}
|
|
69
|
+
isCredentialSelectionValid(params) {
|
|
70
|
+
services_pex_config.validation.evaluateCredentials(params);
|
|
71
|
+
const { credentials, presentationDefinition, holderDIDs } = params;
|
|
72
|
+
const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
|
|
73
|
+
return result.errors.length === 0;
|
|
74
|
+
}
|
|
68
75
|
evaluatePresentation(params) {
|
|
69
76
|
services_pex_config.validation.evaluatePresentation(params);
|
|
70
77
|
const { presentation, presentationDefinition } = params;
|
|
@@ -54,6 +54,7 @@ class PEXService {
|
|
|
54
54
|
PEXService.prototype.filterCredentials,
|
|
55
55
|
PEXService.prototype.evaluatePresentation,
|
|
56
56
|
PEXService.prototype.presentationFrom,
|
|
57
|
+
PEXService.prototype.isCredentialSelectionValid,
|
|
57
58
|
];
|
|
58
59
|
filterCredentials(params) {
|
|
59
60
|
validation.filterCredentials(params);
|
|
@@ -61,6 +62,12 @@ class PEXService {
|
|
|
61
62
|
const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
|
|
62
63
|
return result;
|
|
63
64
|
}
|
|
65
|
+
isCredentialSelectionValid(params) {
|
|
66
|
+
validation.evaluateCredentials(params);
|
|
67
|
+
const { credentials, presentationDefinition, holderDIDs } = params;
|
|
68
|
+
const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
|
|
69
|
+
return result.errors.length === 0;
|
|
70
|
+
}
|
|
64
71
|
evaluatePresentation(params) {
|
|
65
72
|
validation.evaluatePresentation(params);
|
|
66
73
|
const { presentation, presentationDefinition } = params;
|
|
@@ -9,7 +9,16 @@ require('../../core/validation.js');
|
|
|
9
9
|
require('../../types.js');
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* @module relay-service
|
|
13
|
+
* @description DIDComm message relay service for the Wallet SDK.
|
|
14
|
+
* This module provides functionality for sending, receiving, and managing DIDComm messages
|
|
15
|
+
* through a relay service, including push notification support.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Service class for managing DIDComm message relay operations
|
|
19
|
+
* @class
|
|
20
|
+
* @description Provides methods for sending, receiving, and acknowledging DIDComm messages
|
|
21
|
+
* through a relay service infrastructure
|
|
13
22
|
*/
|
|
14
23
|
class RelayService {
|
|
15
24
|
name;
|
|
@@ -21,33 +30,147 @@ class RelayService {
|
|
|
21
30
|
RelayService.prototype.sendMessage,
|
|
22
31
|
RelayService.prototype.signJwt,
|
|
23
32
|
];
|
|
33
|
+
/**
|
|
34
|
+
* Creates a new RelayService instance
|
|
35
|
+
* @constructor
|
|
36
|
+
*/
|
|
24
37
|
constructor() {
|
|
25
38
|
this.name = services_relayService_configs.serviceName;
|
|
26
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Sends a DIDComm message through the relay service
|
|
42
|
+
* @param {SendMessageParams} params - Message parameters
|
|
43
|
+
* @param {Object} params.keyPairDoc - Key pair document for message encryption
|
|
44
|
+
* @param {Object} params.message - The message payload to send
|
|
45
|
+
* @param {string} params.recipientDid - DID of the message recipient
|
|
46
|
+
* @param {string} [params.type] - Message type identifier
|
|
47
|
+
* @returns {Promise<Object>} Result of the send operation
|
|
48
|
+
* @throws {Error} If validation fails or sending fails
|
|
49
|
+
* @example
|
|
50
|
+
* const result = await relayService.sendMessage({
|
|
51
|
+
* keyPairDoc: senderKeyPair,
|
|
52
|
+
* message: { content: 'Hello' },
|
|
53
|
+
* recipientDid: 'did:key:recipient123',
|
|
54
|
+
* type: 'basic-message'
|
|
55
|
+
* });
|
|
56
|
+
*/
|
|
27
57
|
sendMessage(params) {
|
|
28
58
|
services_relayService_configs.validation.sendMessage(params);
|
|
29
59
|
return src.RelayService.sendMessage(params);
|
|
30
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Acknowledges receipt of messages from the relay service
|
|
63
|
+
* @param {AckMessagesParams} params - Acknowledgment parameters
|
|
64
|
+
* @param {string} params.did - DID acknowledging the messages
|
|
65
|
+
* @param {Array<string>} params.messageIds - Array of message IDs to acknowledge
|
|
66
|
+
* @returns {Promise<Object>} Result of the acknowledgment operation
|
|
67
|
+
* @example
|
|
68
|
+
* await relayService.ackMessages({
|
|
69
|
+
* did: 'did:key:holder123',
|
|
70
|
+
* messageIds: ['msg-1', 'msg-2']
|
|
71
|
+
* });
|
|
72
|
+
*/
|
|
31
73
|
ackMessages(params) {
|
|
32
74
|
return src.RelayService.ackMessages(params);
|
|
33
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Resolves and decrypts a DIDComm message
|
|
78
|
+
* @param {ResolveDidcommMessageParams} params - Resolution parameters
|
|
79
|
+
* @param {Object} params.encryptedMessage - The encrypted message to resolve
|
|
80
|
+
* @param {Object} params.keyPairDoc - Key pair document for decryption
|
|
81
|
+
* @returns {Promise<Object>} The decrypted and resolved message
|
|
82
|
+
* @throws {Error} If validation fails or resolution fails
|
|
83
|
+
* @example
|
|
84
|
+
* const decrypted = await relayService.resolveDidcommMessage({
|
|
85
|
+
* encryptedMessage: encryptedData,
|
|
86
|
+
* keyPairDoc: recipientKeyPair
|
|
87
|
+
* });
|
|
88
|
+
*/
|
|
34
89
|
resolveDidcommMessage(params) {
|
|
35
90
|
services_relayService_configs.validation.resolveDidcommMessage(params);
|
|
36
91
|
return src.RelayService.resolveDidcommMessage(params);
|
|
37
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Signs a JWT using the provided key pair
|
|
95
|
+
* @param {ResolveDidcommMessageParams} params - Signing parameters
|
|
96
|
+
* @param {Object} params.payload - JWT payload to sign
|
|
97
|
+
* @param {Object} params.keyPairDoc - Key pair document for signing
|
|
98
|
+
* @returns {Promise<string>} The signed JWT token
|
|
99
|
+
* @throws {Error} If validation fails or signing fails
|
|
100
|
+
* @example
|
|
101
|
+
* const jwt = await relayService.signJwt({
|
|
102
|
+
* payload: { sub: 'did:key:123', iat: Date.now() },
|
|
103
|
+
* keyPairDoc: signerKeyPair
|
|
104
|
+
* });
|
|
105
|
+
*/
|
|
38
106
|
signJwt(params) {
|
|
39
107
|
services_relayService_configs.validation.signJwt(params);
|
|
40
108
|
return src.RelayService.signJwt(params);
|
|
41
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Retrieves messages from the relay service
|
|
112
|
+
* @param {GetMessagesParams} params - Retrieval parameters
|
|
113
|
+
* @param {Object} params.keyPairDocs - Key pair documents for decryption
|
|
114
|
+
* @param {number} [params.limit] - Maximum number of messages to retrieve
|
|
115
|
+
* @param {boolean} [params.skipMessageResolution] - Whether to skip message resolution
|
|
116
|
+
* @returns {Promise<Array>} Array of retrieved messages
|
|
117
|
+
* @throws {Error} If validation fails or retrieval fails
|
|
118
|
+
* @example
|
|
119
|
+
* const messages = await relayService.getMessages({
|
|
120
|
+
* keyPairDocs: [keyPairDoc1, keyPairDoc2],
|
|
121
|
+
* limit: 50,
|
|
122
|
+
* skipMessageResolution: false
|
|
123
|
+
* });
|
|
124
|
+
*/
|
|
42
125
|
getMessages(params) {
|
|
43
126
|
services_relayService_configs.validation.getMessages(params);
|
|
44
127
|
return src.RelayService.getMessages(params);
|
|
45
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Registers a DID for push notifications
|
|
131
|
+
* @param {RegisterDIDPushNotificationParams} params - Registration parameters
|
|
132
|
+
* @param {string} params.did - The DID to register for notifications
|
|
133
|
+
* @param {string} params.deviceToken - Device token for push notifications
|
|
134
|
+
* @param {string} [params.platform] - Platform identifier (ios, android, etc.)
|
|
135
|
+
* @returns {Promise<Object>} Result of the registration
|
|
136
|
+
* @throws {Error} If validation fails or registration fails
|
|
137
|
+
* @example
|
|
138
|
+
* await relayService.registerDIDPushNotification({
|
|
139
|
+
* did: 'did:key:holder123',
|
|
140
|
+
* deviceToken: 'fcm-token-123',
|
|
141
|
+
* platform: 'android'
|
|
142
|
+
* });
|
|
143
|
+
*/
|
|
46
144
|
registerDIDPushNotification(params) {
|
|
47
145
|
services_relayService_configs.validation.registerDIDPushNotification(params);
|
|
48
146
|
return src.RelayService.registerDIDPushNotification(params);
|
|
49
147
|
}
|
|
50
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Singleton instance of the relay service
|
|
151
|
+
* @type {RelayService}
|
|
152
|
+
* @example
|
|
153
|
+
* import { relayService } from '@docknetwork/wallet-sdk-wasm/services/relay-service';
|
|
154
|
+
*
|
|
155
|
+
* // Send a DIDComm message
|
|
156
|
+
* await relayService.sendMessage({
|
|
157
|
+
* keyPairDoc: senderKeyPair,
|
|
158
|
+
* message: { type: 'greeting', content: 'Hello!' },
|
|
159
|
+
* recipientDid: 'did:key:recipient123'
|
|
160
|
+
* });
|
|
161
|
+
*
|
|
162
|
+
* // Retrieve messages
|
|
163
|
+
* const messages = await relayService.getMessages({
|
|
164
|
+
* keyPairDocs: [recipientKeyPair],
|
|
165
|
+
* limit: 10
|
|
166
|
+
* });
|
|
167
|
+
*
|
|
168
|
+
* // Acknowledge messages
|
|
169
|
+
* await relayService.ackMessages({
|
|
170
|
+
* did: 'did:key:recipient123',
|
|
171
|
+
* messageIds: messages.map(m => m.id)
|
|
172
|
+
* });
|
|
173
|
+
*/
|
|
51
174
|
const relayService = new RelayService();
|
|
52
175
|
|
|
53
176
|
Object.defineProperty(exports, 'relayServiceClient', {
|
|
@@ -6,7 +6,16 @@ import '../../core/validation.mjs';
|
|
|
6
6
|
import '../../types.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
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
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
package/lib/setup-nodejs.js
CHANGED
|
@@ -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');
|
|
@@ -73,6 +80,7 @@ require('./services/edv/hmac.js');
|
|
|
73
80
|
require('base64url-universal');
|
|
74
81
|
require('@docknetwork/universal-wallet/crypto');
|
|
75
82
|
require('@docknetwork/wallet-sdk-data-store/lib/logger');
|
|
83
|
+
require('futoin-hkdf');
|
|
76
84
|
|
|
77
85
|
global.localStorage = new nodeLocalstorage.LocalStorage('./local-storage');
|
|
78
86
|
|
package/lib/setup-nodejs.mjs
CHANGED
|
@@ -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';
|
|
@@ -71,6 +78,7 @@ import './services/edv/hmac.mjs';
|
|
|
71
78
|
import 'base64url-universal';
|
|
72
79
|
import '@docknetwork/universal-wallet/crypto';
|
|
73
80
|
import '@docknetwork/wallet-sdk-data-store/lib/logger';
|
|
81
|
+
import 'futoin-hkdf';
|
|
74
82
|
|
|
75
83
|
global.localStorage = new LocalStorage('./local-storage');
|
|
76
84
|
|
package/lib/setup-tests.js
CHANGED
|
@@ -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');
|
|
@@ -73,6 +80,7 @@ require('./services/edv/hmac.js');
|
|
|
73
80
|
require('base64url-universal');
|
|
74
81
|
require('@docknetwork/universal-wallet/crypto');
|
|
75
82
|
require('@docknetwork/wallet-sdk-data-store/lib/logger');
|
|
83
|
+
require('futoin-hkdf');
|
|
76
84
|
|
|
77
85
|
core_storage.setStorage(global.localStorage);
|
|
78
86
|
|