@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.
Files changed (146) hide show
  1. package/generate-docs.js +49 -0
  2. package/jsdoc.conf.json +29 -6
  3. package/lib/index.js +9 -1
  4. package/lib/index.mjs +9 -1
  5. package/lib/modules/network-manager.js +15 -12
  6. package/lib/modules/network-manager.mjs +15 -12
  7. package/lib/rpc-server.js +11 -1
  8. package/lib/rpc-server.mjs +11 -1
  9. package/lib/services/blockchain/cached-did-resolver.js +113 -0
  10. package/lib/services/blockchain/cached-did-resolver.mjs +109 -0
  11. package/lib/services/blockchain/index.js +11 -0
  12. package/lib/services/blockchain/index.mjs +11 -0
  13. package/lib/services/blockchain/service-rpc.js +12 -0
  14. package/lib/services/blockchain/service-rpc.mjs +12 -0
  15. package/lib/services/blockchain/service.js +161 -19
  16. package/lib/services/blockchain/service.mjs +162 -20
  17. package/lib/services/credential/bbs-revocation.js +11 -0
  18. package/lib/services/credential/bbs-revocation.mjs +11 -0
  19. package/lib/services/credential/bound-check.js +1 -1
  20. package/lib/services/credential/bound-check.mjs +1 -1
  21. package/lib/services/credential/config.js +4 -1
  22. package/lib/services/credential/config.mjs +4 -1
  23. package/lib/services/credential/delegatable-credentials.js +300 -0
  24. package/lib/services/credential/delegatable-credentials.mjs +263 -0
  25. package/lib/services/credential/index.js +53 -0
  26. package/lib/services/credential/index.mjs +18 -0
  27. package/lib/services/credential/pex-helpers.js +4 -4
  28. package/lib/services/credential/pex-helpers.mjs +4 -4
  29. package/lib/services/credential/sd-jwt.js +214 -0
  30. package/lib/services/credential/sd-jwt.mjs +200 -0
  31. package/lib/services/credential/service-rpc.js +9 -0
  32. package/lib/services/credential/service-rpc.mjs +9 -0
  33. package/lib/services/credential/service.js +324 -7
  34. package/lib/services/credential/service.mjs +324 -7
  35. package/lib/services/edv/index.js +1 -0
  36. package/lib/services/edv/index.mjs +1 -0
  37. package/lib/services/edv/service-rpc.js +23 -0
  38. package/lib/services/edv/service-rpc.mjs +23 -0
  39. package/lib/services/edv/service.js +226 -2
  40. package/lib/services/edv/service.mjs +223 -3
  41. package/lib/services/index.js +14 -0
  42. package/lib/services/index.mjs +14 -0
  43. package/lib/services/pex/config.js +4 -0
  44. package/lib/services/pex/config.mjs +4 -0
  45. package/lib/services/pex/service-rpc.js +4 -0
  46. package/lib/services/pex/service-rpc.mjs +4 -0
  47. package/lib/services/pex/service.js +7 -0
  48. package/lib/services/pex/service.mjs +7 -0
  49. package/lib/services/relay-service/service.js +124 -1
  50. package/lib/services/relay-service/service.mjs +124 -1
  51. package/lib/services/rpc-service-client.js +0 -3
  52. package/lib/services/rpc-service-client.mjs +0 -3
  53. package/lib/services/storage/index.js +19 -2
  54. package/lib/services/storage/index.mjs +24 -1
  55. package/lib/services/storage/service-rpc.js +7 -3
  56. package/lib/services/storage/service-rpc.mjs +7 -3
  57. package/lib/services/storage/service.js +4 -0
  58. package/lib/services/storage/service.mjs +4 -0
  59. package/lib/setup-nodejs.js +9 -1
  60. package/lib/setup-nodejs.mjs +9 -1
  61. package/lib/setup-tests.js +9 -1
  62. package/lib/setup-tests.mjs +9 -1
  63. package/lib/src/modules/event-manager.d.ts +0 -1
  64. package/lib/src/modules/event-manager.d.ts.map +1 -1
  65. package/lib/src/modules/network-manager.d.ts +2 -4
  66. package/lib/src/modules/network-manager.d.ts.map +1 -1
  67. package/lib/src/services/blockchain/cached-did-resolver.d.ts +28 -0
  68. package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +1 -0
  69. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +2 -0
  70. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +1 -0
  71. package/lib/src/services/blockchain/configs.d.ts +1 -2
  72. package/lib/src/services/blockchain/configs.d.ts.map +1 -1
  73. package/lib/src/services/blockchain/service.d.ts +117 -19
  74. package/lib/src/services/blockchain/service.d.ts.map +1 -1
  75. package/lib/src/services/credential/bbs-revocation.d.ts +1 -1
  76. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  77. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  78. package/lib/src/services/credential/config.d.ts.map +1 -1
  79. package/lib/src/services/credential/delegatable-credentials.d.ts +272 -0
  80. package/lib/src/services/credential/delegatable-credentials.d.ts.map +1 -0
  81. package/lib/src/services/credential/index.d.ts +4 -0
  82. package/lib/src/services/credential/index.d.ts.map +1 -1
  83. package/lib/src/services/credential/pex-helpers.d.ts +2 -2
  84. package/lib/src/services/credential/pex-helpers.d.ts.map +1 -1
  85. package/lib/src/services/credential/sd-jwt.test.d.ts +2 -0
  86. package/lib/src/services/credential/sd-jwt.test.d.ts.map +1 -0
  87. package/lib/src/services/credential/service.d.ts +274 -4
  88. package/lib/src/services/credential/service.d.ts.map +1 -1
  89. package/lib/src/services/dids/keypair-utils.d.ts +2 -2
  90. package/lib/src/services/dids/keypair-utils.d.ts.map +1 -1
  91. package/lib/src/services/dids/service.d.ts +35 -3
  92. package/lib/src/services/dids/service.d.ts.map +1 -1
  93. package/lib/src/services/edv/service.d.ts +201 -2
  94. package/lib/src/services/edv/service.d.ts.map +1 -1
  95. package/lib/src/services/pex/config.d.ts +1 -0
  96. package/lib/src/services/pex/config.d.ts.map +1 -1
  97. package/lib/src/services/pex/service.d.ts +1 -0
  98. package/lib/src/services/pex/service.d.ts.map +1 -1
  99. package/lib/src/services/relay-service/service.d.ts +148 -8
  100. package/lib/src/services/relay-service/service.d.ts.map +1 -1
  101. package/lib/src/services/rpc-service-client.d.ts +2 -2
  102. package/lib/src/services/rpc-service-client.d.ts.map +1 -1
  103. package/lib/src/services/storage/index.d.ts +1 -1
  104. package/lib/src/services/storage/index.d.ts.map +1 -1
  105. package/lib/src/services/storage/service-rpc.d.ts +9 -0
  106. package/lib/src/services/storage/service-rpc.d.ts.map +1 -0
  107. package/lib/src/services/storage/service.d.ts +1 -0
  108. package/lib/src/services/storage/service.d.ts.map +1 -1
  109. package/lib/src/services/util-crypto/service.d.ts +2 -2
  110. package/lib/src/services/util-crypto/service.d.ts.map +1 -1
  111. package/lib/tsconfig.tsbuildinfo +1 -1
  112. package/lib/wallet/rpc-storage-interface.js +13 -3
  113. package/lib/wallet/rpc-storage-interface.mjs +11 -1
  114. package/lib/wallet/rpc-storage-wallet.js +10 -0
  115. package/lib/wallet/rpc-storage-wallet.mjs +10 -0
  116. package/package.json +29 -16
  117. package/rollup.config.mjs +5 -3
  118. package/src/globals.d.ts +3 -0
  119. package/src/modules/network-manager.ts +15 -14
  120. package/src/services/blockchain/cached-did-resolver.test.ts +288 -0
  121. package/src/services/blockchain/cached-did-resolver.ts +126 -0
  122. package/src/services/blockchain/configs.ts +1 -2
  123. package/src/services/blockchain/service-rpc.js +12 -0
  124. package/src/services/blockchain/service.ts +167 -20
  125. package/src/services/credential/bound-check.ts +1 -1
  126. package/src/services/credential/config.ts +7 -1
  127. package/src/services/credential/delegatable-credentials.ts +409 -0
  128. package/src/services/credential/index.ts +16 -0
  129. package/src/services/credential/pex-helpers.js +4 -4
  130. package/src/services/credential/pex-helpers.test.js +2 -2
  131. package/src/services/credential/sd-jwt.test.ts +718 -0
  132. package/src/services/credential/sd-jwt.ts +231 -0
  133. package/src/services/credential/service-rpc.js +9 -0
  134. package/src/services/credential/service.ts +328 -7
  135. package/src/services/edv/index.test.js +229 -0
  136. package/src/services/edv/service-rpc.js +23 -0
  137. package/src/services/edv/service.ts +272 -1
  138. package/src/services/pex/config.ts +4 -0
  139. package/src/services/pex/service-rpc.js +4 -0
  140. package/src/services/pex/service.ts +13 -0
  141. package/src/services/pex/tests/pex-service.test.js +210 -0
  142. package/src/services/relay-service/service.ts +130 -1
  143. package/src/services/rpc-service-client.js +0 -3
  144. package/src/services/storage/index.js +15 -1
  145. package/src/services/storage/service-rpc.js +7 -3
  146. 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
- * RelayService
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
- * 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');
@@ -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
 
@@ -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
 
@@ -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