@docknetwork/wallet-sdk-wasm 1.7.6 → 1.9.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 (327) hide show
  1. package/package.json +6 -7
  2. package/rollup.config.mjs +1 -0
  3. package/src/globals.d.ts +4 -1
  4. package/src/services/blockchain/cached-did-resolver.ts +4 -3
  5. package/src/services/blockchain/normalize-did-document.ts +73 -0
  6. package/src/services/blockchain/service.ts +0 -2
  7. package/src/services/credential/bbs-revocation.test.js +147 -0
  8. package/src/services/credential/bbs-revocation.ts +65 -18
  9. package/src/services/credential/config.ts +7 -0
  10. package/src/services/credential/index.test.js +261 -17
  11. package/src/services/credential/oid4vci.js +44 -0
  12. package/src/services/credential/oid4vci.test.js +162 -0
  13. package/src/services/credential/pex-helpers.js +77 -31
  14. package/src/services/credential/pex-helpers.test.js +4 -4
  15. package/src/services/credential/sd-jwt.ts +41 -5
  16. package/src/services/credential/service-rpc.js +6 -0
  17. package/src/services/credential/service.ts +171 -16
  18. package/src/services/credential/utils.js +3 -5
  19. package/src/services/delegation/index.android.js +3 -0
  20. package/src/services/delegation/index.ios.js +3 -0
  21. package/src/services/delegation/index.ts +1 -0
  22. package/src/services/delegation/service-rpc.ts +21 -0
  23. package/src/services/delegation/service.ts +59 -0
  24. package/src/services/edv/service-rpc.js +18 -2
  25. package/src/services/edv/service.test.js +327 -0
  26. package/src/services/edv/service.ts +103 -13
  27. package/src/services/index.js +2 -0
  28. package/src/wallet/rpc-storage-interface.js +9 -4
  29. package/lib/core/crypto.js +0 -45
  30. package/lib/core/crypto.mjs +0 -33
  31. package/lib/core/format-utils.js +0 -51
  32. package/lib/core/format-utils.mjs +0 -42
  33. package/lib/core/keychain.js +0 -61
  34. package/lib/core/keychain.mjs +0 -37
  35. package/lib/core/logger.js +0 -13
  36. package/lib/core/logger.mjs +0 -9
  37. package/lib/core/storage.js +0 -14
  38. package/lib/core/storage.mjs +0 -9
  39. package/lib/core/validation.js +0 -29
  40. package/lib/core/validation.mjs +0 -16
  41. package/lib/core/webview-logger.js +0 -49
  42. package/lib/core/webview-logger.mjs +0 -41
  43. package/lib/errors.js +0 -17
  44. package/lib/errors.mjs +0 -12
  45. package/lib/events.js +0 -18
  46. package/lib/events.mjs +0 -13
  47. package/lib/index.js +0 -146
  48. package/lib/index.mjs +0 -144
  49. package/lib/logger.js +0 -22
  50. package/lib/logger.mjs +0 -17
  51. package/lib/modules/event-manager.js +0 -46
  52. package/lib/modules/event-manager.mjs +0 -37
  53. package/lib/modules/network-manager.js +0 -80
  54. package/lib/modules/network-manager.mjs +0 -71
  55. package/lib/mrklt.js +0 -2
  56. package/lib/mrklt.mjs +0 -1
  57. package/lib/rpc-client.js +0 -83
  58. package/lib/rpc-client.mjs +0 -73
  59. package/lib/rpc-server.js +0 -97
  60. package/lib/rpc-server.mjs +0 -95
  61. package/lib/rpc-util.js +0 -113
  62. package/lib/rpc-util.mjs +0 -103
  63. package/lib/sandbox-rpc-server.js +0 -28
  64. package/lib/sandbox-rpc-server.mjs +0 -26
  65. package/lib/sandbox.js +0 -102
  66. package/lib/sandbox.mjs +0 -100
  67. package/lib/services/blockchain/cached-did-resolver.js +0 -113
  68. package/lib/services/blockchain/cached-did-resolver.mjs +0 -109
  69. package/lib/services/blockchain/configs.js +0 -7
  70. package/lib/services/blockchain/configs.mjs +0 -3
  71. package/lib/services/blockchain/index.android.js +0 -18
  72. package/lib/services/blockchain/index.android.mjs +0 -14
  73. package/lib/services/blockchain/index.ios.js +0 -18
  74. package/lib/services/blockchain/index.ios.mjs +0 -14
  75. package/lib/services/blockchain/index.js +0 -36
  76. package/lib/services/blockchain/index.mjs +0 -28
  77. package/lib/services/blockchain/service-rpc.js +0 -72
  78. package/lib/services/blockchain/service-rpc.mjs +0 -68
  79. package/lib/services/blockchain/service.js +0 -312
  80. package/lib/services/blockchain/service.mjs +0 -306
  81. package/lib/services/credential/bbs-revocation.js +0 -92
  82. package/lib/services/credential/bbs-revocation.mjs +0 -87
  83. package/lib/services/credential/bound-check.js +0 -77
  84. package/lib/services/credential/bound-check.mjs +0 -64
  85. package/lib/services/credential/config.js +0 -56
  86. package/lib/services/credential/config.mjs +0 -47
  87. package/lib/services/credential/delegatable-credentials.js +0 -300
  88. package/lib/services/credential/delegatable-credentials.mjs +0 -263
  89. package/lib/services/credential/index.android.js +0 -19
  90. package/lib/services/credential/index.android.mjs +0 -15
  91. package/lib/services/credential/index.ios.js +0 -19
  92. package/lib/services/credential/index.ios.mjs +0 -15
  93. package/lib/services/credential/index.js +0 -106
  94. package/lib/services/credential/index.mjs +0 -67
  95. package/lib/services/credential/pex-helpers.js +0 -333
  96. package/lib/services/credential/pex-helpers.mjs +0 -319
  97. package/lib/services/credential/range-proofs-example.js +0 -107
  98. package/lib/services/credential/range-proofs-example.mjs +0 -103
  99. package/lib/services/credential/sd-jwt.js +0 -214
  100. package/lib/services/credential/sd-jwt.mjs +0 -200
  101. package/lib/services/credential/service-rpc.js +0 -61
  102. package/lib/services/credential/service-rpc.mjs +0 -57
  103. package/lib/services/credential/service.js +0 -683
  104. package/lib/services/credential/service.mjs +0 -672
  105. package/lib/services/credential/utils.js +0 -103
  106. package/lib/services/credential/utils.mjs +0 -78
  107. package/lib/services/dids/config.js +0 -40
  108. package/lib/services/dids/config.mjs +0 -31
  109. package/lib/services/dids/index.android.js +0 -19
  110. package/lib/services/dids/index.android.mjs +0 -15
  111. package/lib/services/dids/index.ios.js +0 -19
  112. package/lib/services/dids/index.ios.mjs +0 -15
  113. package/lib/services/dids/index.js +0 -23
  114. package/lib/services/dids/index.mjs +0 -19
  115. package/lib/services/dids/keypair-utils.js +0 -142
  116. package/lib/services/dids/keypair-utils.mjs +0 -113
  117. package/lib/services/dids/service-rpc.js +0 -37
  118. package/lib/services/dids/service-rpc.mjs +0 -33
  119. package/lib/services/dids/service.js +0 -100
  120. package/lib/services/dids/service.mjs +0 -92
  121. package/lib/services/edv/configs.js +0 -25
  122. package/lib/services/edv/configs.mjs +0 -16
  123. package/lib/services/edv/hmac.js +0 -88
  124. package/lib/services/edv/hmac.mjs +0 -63
  125. package/lib/services/edv/index.android.js +0 -19
  126. package/lib/services/edv/index.android.mjs +0 -15
  127. package/lib/services/edv/index.ios.js +0 -19
  128. package/lib/services/edv/index.ios.mjs +0 -15
  129. package/lib/services/edv/index.js +0 -32
  130. package/lib/services/edv/index.mjs +0 -24
  131. package/lib/services/edv/service-rpc.js +0 -78
  132. package/lib/services/edv/service-rpc.mjs +0 -74
  133. package/lib/services/edv/service.js +0 -370
  134. package/lib/services/edv/service.mjs +0 -357
  135. package/lib/services/index.js +0 -94
  136. package/lib/services/index.mjs +0 -92
  137. package/lib/services/pex/config.js +0 -29
  138. package/lib/services/pex/config.mjs +0 -20
  139. package/lib/services/pex/index.android.js +0 -19
  140. package/lib/services/pex/index.android.mjs +0 -15
  141. package/lib/services/pex/index.ios.js +0 -19
  142. package/lib/services/pex/index.ios.mjs +0 -15
  143. package/lib/services/pex/index.js +0 -12
  144. package/lib/services/pex/index.mjs +0 -4
  145. package/lib/services/pex/service-rpc.js +0 -39
  146. package/lib/services/pex/service-rpc.mjs +0 -35
  147. package/lib/services/pex/service.js +0 -91
  148. package/lib/services/pex/service.mjs +0 -86
  149. package/lib/services/pex/tests/jest.config.js +0 -25
  150. package/lib/services/pex/tests/jest.config.mjs +0 -23
  151. package/lib/services/relay-service/configs.js +0 -45
  152. package/lib/services/relay-service/configs.mjs +0 -36
  153. package/lib/services/relay-service/index.android.js +0 -21
  154. package/lib/services/relay-service/index.android.mjs +0 -17
  155. package/lib/services/relay-service/index.ios.js +0 -21
  156. package/lib/services/relay-service/index.ios.mjs +0 -17
  157. package/lib/services/relay-service/index.js +0 -14
  158. package/lib/services/relay-service/index.mjs +0 -6
  159. package/lib/services/relay-service/service-rpc.js +0 -47
  160. package/lib/services/relay-service/service-rpc.mjs +0 -43
  161. package/lib/services/relay-service/service.js +0 -181
  162. package/lib/services/relay-service/service.mjs +0 -173
  163. package/lib/services/rpc-service-client.js +0 -36
  164. package/lib/services/rpc-service-client.mjs +0 -28
  165. package/lib/services/sandbox.js +0 -10
  166. package/lib/services/sandbox.mjs +0 -8
  167. package/lib/services/storage/configs.js +0 -7
  168. package/lib/services/storage/configs.mjs +0 -3
  169. package/lib/services/storage/index.android.js +0 -18
  170. package/lib/services/storage/index.android.mjs +0 -14
  171. package/lib/services/storage/index.ios.js +0 -18
  172. package/lib/services/storage/index.ios.mjs +0 -14
  173. package/lib/services/storage/index.js +0 -26
  174. package/lib/services/storage/index.mjs +0 -24
  175. package/lib/services/storage/service-rpc.js +0 -37
  176. package/lib/services/storage/service-rpc.mjs +0 -33
  177. package/lib/services/storage/service.js +0 -32
  178. package/lib/services/storage/service.mjs +0 -27
  179. package/lib/services/test-utils.js +0 -98
  180. package/lib/services/test-utils.mjs +0 -84
  181. package/lib/services/util-crypto/configs.js +0 -23
  182. package/lib/services/util-crypto/configs.mjs +0 -15
  183. package/lib/services/util-crypto/index.android.js +0 -19
  184. package/lib/services/util-crypto/index.android.mjs +0 -15
  185. package/lib/services/util-crypto/index.ios.js +0 -19
  186. package/lib/services/util-crypto/index.ios.mjs +0 -15
  187. package/lib/services/util-crypto/index.js +0 -14
  188. package/lib/services/util-crypto/index.mjs +0 -6
  189. package/lib/services/util-crypto/service-rpc.js +0 -42
  190. package/lib/services/util-crypto/service-rpc.mjs +0 -38
  191. package/lib/services/util-crypto/service.js +0 -108
  192. package/lib/services/util-crypto/service.mjs +0 -83
  193. package/lib/services/wallet/configs.js +0 -32
  194. package/lib/services/wallet/configs.mjs +0 -23
  195. package/lib/services/wallet/index.android.js +0 -21
  196. package/lib/services/wallet/index.android.mjs +0 -17
  197. package/lib/services/wallet/index.ios.js +0 -21
  198. package/lib/services/wallet/index.ios.mjs +0 -17
  199. package/lib/services/wallet/index.js +0 -17
  200. package/lib/services/wallet/index.mjs +0 -9
  201. package/lib/services/wallet/service-rpc.js +0 -33
  202. package/lib/services/wallet/service-rpc.mjs +0 -29
  203. package/lib/services/wallet/service.js +0 -62
  204. package/lib/services/wallet/service.mjs +0 -57
  205. package/lib/setup-nodejs.js +0 -93
  206. package/lib/setup-nodejs.mjs +0 -91
  207. package/lib/setup-tests.js +0 -92
  208. package/lib/setup-tests.mjs +0 -90
  209. package/lib/src/core/crypto.d.ts +0 -8
  210. package/lib/src/core/crypto.d.ts.map +0 -1
  211. package/lib/src/core/format-utils.d.ts +0 -26
  212. package/lib/src/core/format-utils.d.ts.map +0 -1
  213. package/lib/src/core/logger.d.ts +0 -3
  214. package/lib/src/core/logger.d.ts.map +0 -1
  215. package/lib/src/core/storage.d.ts +0 -8
  216. package/lib/src/core/storage.d.ts.map +0 -1
  217. package/lib/src/core/validation.d.ts +0 -6
  218. package/lib/src/core/validation.d.ts.map +0 -1
  219. package/lib/src/errors.d.ts +0 -7
  220. package/lib/src/errors.d.ts.map +0 -1
  221. package/lib/src/logger.d.ts +0 -5
  222. package/lib/src/logger.d.ts.map +0 -1
  223. package/lib/src/modules/event-manager.d.ts +0 -12
  224. package/lib/src/modules/event-manager.d.ts.map +0 -1
  225. package/lib/src/modules/network-manager.d.ts +0 -32
  226. package/lib/src/modules/network-manager.d.ts.map +0 -1
  227. package/lib/src/rpc-client.d.ts +0 -4
  228. package/lib/src/rpc-client.d.ts.map +0 -1
  229. package/lib/src/rpc-util.d.ts +0 -11
  230. package/lib/src/rpc-util.d.ts.map +0 -1
  231. package/lib/src/services/blockchain/cached-did-resolver.d.ts +0 -28
  232. package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +0 -1
  233. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +0 -2
  234. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +0 -1
  235. package/lib/src/services/blockchain/configs.d.ts +0 -7
  236. package/lib/src/services/blockchain/configs.d.ts.map +0 -1
  237. package/lib/src/services/blockchain/service.d.ts +0 -155
  238. package/lib/src/services/blockchain/service.d.ts.map +0 -1
  239. package/lib/src/services/credential/bbs-revocation.d.ts +0 -10
  240. package/lib/src/services/credential/bbs-revocation.d.ts.map +0 -1
  241. package/lib/src/services/credential/bound-check.d.ts +0 -61
  242. package/lib/src/services/credential/bound-check.d.ts.map +0 -1
  243. package/lib/src/services/credential/bound-check.test.d.ts +0 -2
  244. package/lib/src/services/credential/bound-check.test.d.ts.map +0 -1
  245. package/lib/src/services/credential/config.d.ts +0 -10
  246. package/lib/src/services/credential/config.d.ts.map +0 -1
  247. package/lib/src/services/credential/delegatable-credentials.d.ts +0 -272
  248. package/lib/src/services/credential/delegatable-credentials.d.ts.map +0 -1
  249. package/lib/src/services/credential/index.d.ts +0 -35
  250. package/lib/src/services/credential/index.d.ts.map +0 -1
  251. package/lib/src/services/credential/pex-helpers.d.ts +0 -23
  252. package/lib/src/services/credential/pex-helpers.d.ts.map +0 -1
  253. package/lib/src/services/credential/range-proofs-example.d.ts +0 -2
  254. package/lib/src/services/credential/range-proofs-example.d.ts.map +0 -1
  255. package/lib/src/services/credential/sd-jwt.test.d.ts +0 -2
  256. package/lib/src/services/credential/sd-jwt.test.d.ts.map +0 -1
  257. package/lib/src/services/credential/service.d.ts +0 -313
  258. package/lib/src/services/credential/service.d.ts.map +0 -1
  259. package/lib/src/services/credential/utils.d.ts +0 -3
  260. package/lib/src/services/credential/utils.d.ts.map +0 -1
  261. package/lib/src/services/dids/config.d.ts +0 -24
  262. package/lib/src/services/dids/config.d.ts.map +0 -1
  263. package/lib/src/services/dids/keypair-utils.d.ts +0 -15
  264. package/lib/src/services/dids/keypair-utils.d.ts.map +0 -1
  265. package/lib/src/services/dids/service-rpc.d.ts +0 -11
  266. package/lib/src/services/dids/service-rpc.d.ts.map +0 -1
  267. package/lib/src/services/dids/service.d.ts +0 -70
  268. package/lib/src/services/dids/service.d.ts.map +0 -1
  269. package/lib/src/services/edv/configs.d.ts +0 -12
  270. package/lib/src/services/edv/configs.d.ts.map +0 -1
  271. package/lib/src/services/edv/hmac.d.ts +0 -29
  272. package/lib/src/services/edv/hmac.d.ts.map +0 -1
  273. package/lib/src/services/edv/service.d.ts +0 -229
  274. package/lib/src/services/edv/service.d.ts.map +0 -1
  275. package/lib/src/services/pex/config.d.ts +0 -21
  276. package/lib/src/services/pex/config.d.ts.map +0 -1
  277. package/lib/src/services/pex/service.d.ts +0 -21
  278. package/lib/src/services/pex/service.d.ts.map +0 -1
  279. package/lib/src/services/relay-service/configs.d.ts +0 -35
  280. package/lib/src/services/relay-service/configs.d.ts.map +0 -1
  281. package/lib/src/services/relay-service/service-rpc.d.ts +0 -12
  282. package/lib/src/services/relay-service/service-rpc.d.ts.map +0 -1
  283. package/lib/src/services/relay-service/service.d.ts +0 -159
  284. package/lib/src/services/relay-service/service.d.ts.map +0 -1
  285. package/lib/src/services/rpc-service-client.d.ts +0 -7
  286. package/lib/src/services/rpc-service-client.d.ts.map +0 -1
  287. package/lib/src/services/storage/configs.d.ts +0 -2
  288. package/lib/src/services/storage/configs.d.ts.map +0 -1
  289. package/lib/src/services/storage/index.d.ts +0 -2
  290. package/lib/src/services/storage/index.d.ts.map +0 -1
  291. package/lib/src/services/storage/service-rpc.d.ts +0 -9
  292. package/lib/src/services/storage/service-rpc.d.ts.map +0 -1
  293. package/lib/src/services/storage/service.d.ts +0 -10
  294. package/lib/src/services/storage/service.d.ts.map +0 -1
  295. package/lib/src/services/util-crypto/configs.d.ts +0 -5
  296. package/lib/src/services/util-crypto/configs.d.ts.map +0 -1
  297. package/lib/src/services/util-crypto/index.d.ts +0 -2
  298. package/lib/src/services/util-crypto/index.d.ts.map +0 -1
  299. package/lib/src/services/util-crypto/service.d.ts +0 -10
  300. package/lib/src/services/util-crypto/service.d.ts.map +0 -1
  301. package/lib/src/services/wallet/configs.d.ts +0 -13
  302. package/lib/src/services/wallet/configs.d.ts.map +0 -1
  303. package/lib/src/services/wallet/service.d.ts +0 -13
  304. package/lib/src/services/wallet/service.d.ts.map +0 -1
  305. package/lib/src/types.d.ts +0 -12
  306. package/lib/src/types.d.ts.map +0 -1
  307. package/lib/src/wallet/memory-storage-interface.d.ts +0 -31
  308. package/lib/src/wallet/memory-storage-interface.d.ts.map +0 -1
  309. package/lib/src/wallet/memory-storage-wallet.d.ts +0 -6
  310. package/lib/src/wallet/memory-storage-wallet.d.ts.map +0 -1
  311. package/lib/src/wallet/rpc-storage-interface.d.ts +0 -32
  312. package/lib/src/wallet/rpc-storage-interface.d.ts.map +0 -1
  313. package/lib/src/wallet/rpc-storage-wallet.d.ts +0 -6
  314. package/lib/src/wallet/rpc-storage-wallet.d.ts.map +0 -1
  315. package/lib/test-utils.js +0 -46
  316. package/lib/test-utils.mjs +0 -38
  317. package/lib/tsconfig.tsbuildinfo +0 -1
  318. package/lib/types.js +0 -7
  319. package/lib/types.mjs +0 -3
  320. package/lib/wallet/memory-storage-interface.js +0 -101
  321. package/lib/wallet/memory-storage-interface.mjs +0 -95
  322. package/lib/wallet/memory-storage-wallet.js +0 -30
  323. package/lib/wallet/memory-storage-wallet.mjs +0 -24
  324. package/lib/wallet/rpc-storage-interface.js +0 -134
  325. package/lib/wallet/rpc-storage-interface.mjs +0 -128
  326. package/lib/wallet/rpc-storage-wallet.js +0 -46
  327. package/lib/wallet/rpc-storage-wallet.mjs +0 -40
@@ -1,4 +0,0 @@
1
- export { pexService } from './service.mjs';
2
- import './config.mjs';
3
- import 'assert';
4
- import '@sphereon/pex';
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_rpcServiceClient = require('../rpc-service-client.js');
6
- var services_pex_config = require('./config.js');
7
- require('assert');
8
- require('../../rpc-client.js');
9
- require('json-rpc-2.0');
10
- require('../../core/crypto.js');
11
- require('crypto');
12
- require('../../core/logger.js');
13
- require('../../logger.js');
14
- require('../../rpc-util.js');
15
-
16
- class PEXServiceRPC extends services_rpcServiceClient.RpcService {
17
- constructor() {
18
- super(services_pex_config.serviceName);
19
- this.sandbox = process.env.NODE_ENV !== 'test';
20
- }
21
- async filterCredentials(params ) {
22
- services_pex_config.validation.filterCredentials(params);
23
- return this.call('filterCredentials', params);
24
- }
25
- async evaluatePresentation(params ) {
26
- services_pex_config.validation.evaluatePresentation(params);
27
- return this.call('evaluatePresentation', params);
28
- }
29
-
30
- async presentationFrom(params ) {
31
- return this.call('presentationFrom', params);
32
- }
33
-
34
- async isCredentialSelectionValid(params ) {
35
- return this.call('isCredentialSelectionValid', params);
36
- }
37
- }
38
-
39
- exports.PEXServiceRPC = PEXServiceRPC;
@@ -1,35 +0,0 @@
1
- import { RpcService } from '../rpc-service-client.mjs';
2
- import { serviceName, validation } from './config.mjs';
3
- import 'assert';
4
- import '../../rpc-client.mjs';
5
- import 'json-rpc-2.0';
6
- import '../../core/crypto.mjs';
7
- import 'crypto';
8
- import '../../core/logger.mjs';
9
- import '../../logger.mjs';
10
- import '../../rpc-util.mjs';
11
-
12
- class PEXServiceRPC extends RpcService {
13
- constructor() {
14
- super(serviceName);
15
- this.sandbox = process.env.NODE_ENV !== 'test';
16
- }
17
- async filterCredentials(params ) {
18
- validation.filterCredentials(params);
19
- return this.call('filterCredentials', params);
20
- }
21
- async evaluatePresentation(params ) {
22
- validation.evaluatePresentation(params);
23
- return this.call('evaluatePresentation', params);
24
- }
25
-
26
- async presentationFrom(params ) {
27
- return this.call('presentationFrom', params);
28
- }
29
-
30
- async isCredentialSelectionValid(params ) {
31
- return this.call('isCredentialSelectionValid', params);
32
- }
33
- }
34
-
35
- export { PEXServiceRPC };
@@ -1,91 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_pex_config = require('./config.js');
6
- var pex$1 = require('@sphereon/pex');
7
- require('assert');
8
-
9
- // @ts-nocheck
10
- const pex = new pex$1.PEX();
11
- /**
12
- * @sphereon/pex is not able to handle optional attributes in the presentation definition
13
- * https://github.com/Sphereon-Opensource/PEX/issues/150
14
- * Any optional attribute in the presentation definition will cause the library to throw an error
15
- * This function removes the optional attribute from the presentation definition
16
- * This is a temporary workaround until the issue is fixed in the @sphereon/pex library
17
- **/
18
- function removeOptionalAttribute(presentationDefinition) {
19
- // Deep clone the presentationDefinition to avoid mutating the original
20
- const clonedPresentationDefinition = JSON.parse(JSON.stringify(presentationDefinition));
21
- clonedPresentationDefinition.input_descriptors.forEach(inputDescriptor => {
22
- if (!inputDescriptor.constraints?.fields?.length) {
23
- return;
24
- }
25
- // Filter the optional fields
26
- inputDescriptor.constraints.fields =
27
- inputDescriptor.constraints.fields.filter(field => field.optional !== true);
28
- inputDescriptor.constraints.fields = inputDescriptor.constraints.fields.map(field => {
29
- const updatedField = { ...field };
30
- // Remove the optional attribute if it exists
31
- if (updatedField.optional !== undefined) {
32
- delete updatedField.optional;
33
- }
34
- // Remove the did format attribute if it exists
35
- if (updatedField.filter?.format === 'did') {
36
- delete updatedField.filter.format;
37
- }
38
- return updatedField;
39
- });
40
- // Handle case where all fields are optional
41
- if (inputDescriptor.constraints.fields.length === 0) {
42
- inputDescriptor.constraints.fields.push({
43
- path: ['$.id'],
44
- });
45
- }
46
- });
47
- if (!clonedPresentationDefinition.id) {
48
- clonedPresentationDefinition.id = 'id';
49
- }
50
- return clonedPresentationDefinition;
51
- }
52
- class PEXService {
53
- name;
54
- constructor() {
55
- this.name = services_pex_config.serviceName;
56
- }
57
- rpcMethods = [
58
- PEXService.prototype.filterCredentials,
59
- PEXService.prototype.evaluatePresentation,
60
- PEXService.prototype.presentationFrom,
61
- PEXService.prototype.isCredentialSelectionValid,
62
- ];
63
- filterCredentials(params) {
64
- services_pex_config.validation.filterCredentials(params);
65
- const { credentials, presentationDefinition, holderDIDs } = params;
66
- const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
67
- return result;
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
- }
75
- evaluatePresentation(params) {
76
- services_pex_config.validation.evaluatePresentation(params);
77
- const { presentation, presentationDefinition } = params;
78
- const result = pex.evaluatePresentation(removeOptionalAttribute(presentationDefinition), presentation);
79
- return result;
80
- }
81
- presentationFrom(params) {
82
- const { credentials, presentationDefinition, holderDID } = params;
83
- const evaluateResult = pex.evaluateCredentials(removeOptionalAttribute(presentationDefinition), credentials, holderDID);
84
- const result = pex.presentationFrom(presentationDefinition, evaluateResult.verifiableCredential, holderDID);
85
- return result;
86
- }
87
- }
88
- const pexService = new PEXService();
89
-
90
- exports.pexService = pexService;
91
- exports.removeOptionalAttribute = removeOptionalAttribute;
@@ -1,86 +0,0 @@
1
- import { serviceName, validation } from './config.mjs';
2
- import { PEX } from '@sphereon/pex';
3
- import 'assert';
4
-
5
- // @ts-nocheck
6
- const pex = new PEX();
7
- /**
8
- * @sphereon/pex is not able to handle optional attributes in the presentation definition
9
- * https://github.com/Sphereon-Opensource/PEX/issues/150
10
- * Any optional attribute in the presentation definition will cause the library to throw an error
11
- * This function removes the optional attribute from the presentation definition
12
- * This is a temporary workaround until the issue is fixed in the @sphereon/pex library
13
- **/
14
- function removeOptionalAttribute(presentationDefinition) {
15
- // Deep clone the presentationDefinition to avoid mutating the original
16
- const clonedPresentationDefinition = JSON.parse(JSON.stringify(presentationDefinition));
17
- clonedPresentationDefinition.input_descriptors.forEach(inputDescriptor => {
18
- if (!inputDescriptor.constraints?.fields?.length) {
19
- return;
20
- }
21
- // Filter the optional fields
22
- inputDescriptor.constraints.fields =
23
- inputDescriptor.constraints.fields.filter(field => field.optional !== true);
24
- inputDescriptor.constraints.fields = inputDescriptor.constraints.fields.map(field => {
25
- const updatedField = { ...field };
26
- // Remove the optional attribute if it exists
27
- if (updatedField.optional !== undefined) {
28
- delete updatedField.optional;
29
- }
30
- // Remove the did format attribute if it exists
31
- if (updatedField.filter?.format === 'did') {
32
- delete updatedField.filter.format;
33
- }
34
- return updatedField;
35
- });
36
- // Handle case where all fields are optional
37
- if (inputDescriptor.constraints.fields.length === 0) {
38
- inputDescriptor.constraints.fields.push({
39
- path: ['$.id'],
40
- });
41
- }
42
- });
43
- if (!clonedPresentationDefinition.id) {
44
- clonedPresentationDefinition.id = 'id';
45
- }
46
- return clonedPresentationDefinition;
47
- }
48
- class PEXService {
49
- name;
50
- constructor() {
51
- this.name = serviceName;
52
- }
53
- rpcMethods = [
54
- PEXService.prototype.filterCredentials,
55
- PEXService.prototype.evaluatePresentation,
56
- PEXService.prototype.presentationFrom,
57
- PEXService.prototype.isCredentialSelectionValid,
58
- ];
59
- filterCredentials(params) {
60
- validation.filterCredentials(params);
61
- const { credentials, presentationDefinition, holderDIDs } = params;
62
- const result = pex.selectFrom(removeOptionalAttribute(presentationDefinition), credentials, holderDIDs);
63
- return result;
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
- }
71
- evaluatePresentation(params) {
72
- validation.evaluatePresentation(params);
73
- const { presentation, presentationDefinition } = params;
74
- const result = pex.evaluatePresentation(removeOptionalAttribute(presentationDefinition), presentation);
75
- return result;
76
- }
77
- presentationFrom(params) {
78
- const { credentials, presentationDefinition, holderDID } = params;
79
- const evaluateResult = pex.evaluateCredentials(removeOptionalAttribute(presentationDefinition), credentials, holderDID);
80
- const result = pex.presentationFrom(presentationDefinition, evaluateResult.verifiableCredential, holderDID);
81
- return result;
82
- }
83
- }
84
- const pexService = new PEXService();
85
-
86
- export { pexService, removeOptionalAttribute };
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- var jest_config = {
4
- testEnvironment: 'node',
5
- testTimeout: 30000,
6
- coverageThreshold: {
7
- global: {
8
- branches: 10,
9
- functions: 10,
10
- lines: 10,
11
- statements: 10,
12
- },
13
- },
14
- transform: {
15
- '^.+\\.(js|jsx)$': [
16
- 'babel-jest',
17
- {
18
- configFile: require.resolve('../../../../babel.config.js'),
19
- },
20
- ],
21
- },
22
- resetMocks: false,
23
- };
24
-
25
- module.exports = jest_config;
@@ -1,23 +0,0 @@
1
- var jest_config = {
2
- testEnvironment: 'node',
3
- testTimeout: 30000,
4
- coverageThreshold: {
5
- global: {
6
- branches: 10,
7
- functions: 10,
8
- lines: 10,
9
- statements: 10,
10
- },
11
- },
12
- transform: {
13
- '^.+\\.(js|jsx)$': [
14
- 'babel-jest',
15
- {
16
- configFile: require.resolve('../../../../babel.config.js'),
17
- },
18
- ],
19
- },
20
- resetMocks: false,
21
- };
22
-
23
- export { jest_config as default };
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var assert = require('assert');
6
- var core_validation = require('../../core/validation.js');
7
- require('../../types.js');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
12
-
13
- const validation = {
14
- sendMessage({ keyPairDoc, recipientDid, message }) {
15
- assert__default["default"](!!keyPairDoc, 'keyPairDoc is required');
16
- assert__default["default"](!!recipientDid, 'recipientDid is required');
17
- assert__default["default"](!!message, 'message is required');
18
- },
19
- getMessages({ keyPairDocs, limit }) {
20
- assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
21
- if (limit) {
22
- assert__default["default"](core_validation.isNumberValid(limit), 'invalid limit');
23
- }
24
- },
25
- resolveDidcommMessage({ message, keyPairDocs }) {
26
- assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
27
- assert__default["default"](!!message, 'message is required');
28
- },
29
- ackMessages({ did, messageIds }) {
30
- assert__default["default"](!!did, 'did is required');
31
- assert__default["default"](!!messageIds, 'messageIds is required');
32
- },
33
- registerDIDPushNotification({ keyPairDocs, token, }) {
34
- assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
35
- assert__default["default"](!!token, 'token is required');
36
- },
37
- signJwt({ message, keyPairDocs }) {
38
- assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
39
- assert__default["default"](!!message, 'message is required');
40
- },
41
- };
42
- const serviceName = 'relayService';
43
-
44
- exports.serviceName = serviceName;
45
- exports.validation = validation;
@@ -1,36 +0,0 @@
1
- import assert from 'assert';
2
- import { isNumberValid } from '../../core/validation.mjs';
3
- import '../../types.mjs';
4
-
5
- const validation = {
6
- sendMessage({ keyPairDoc, recipientDid, message }) {
7
- assert(!!keyPairDoc, 'keyPairDoc is required');
8
- assert(!!recipientDid, 'recipientDid is required');
9
- assert(!!message, 'message is required');
10
- },
11
- getMessages({ keyPairDocs, limit }) {
12
- assert(!!keyPairDocs, 'keyPairDoc is required');
13
- if (limit) {
14
- assert(isNumberValid(limit), 'invalid limit');
15
- }
16
- },
17
- resolveDidcommMessage({ message, keyPairDocs }) {
18
- assert(!!keyPairDocs, 'keyPairDoc is required');
19
- assert(!!message, 'message is required');
20
- },
21
- ackMessages({ did, messageIds }) {
22
- assert(!!did, 'did is required');
23
- assert(!!messageIds, 'messageIds is required');
24
- },
25
- registerDIDPushNotification({ keyPairDocs, token, }) {
26
- assert(!!keyPairDocs, 'keyPairDoc is required');
27
- assert(!!token, 'token is required');
28
- },
29
- signJwt({ message, keyPairDocs }) {
30
- assert(!!keyPairDocs, 'keyPairDoc is required');
31
- assert(!!message, 'message is required');
32
- },
33
- };
34
- const serviceName = 'relayService';
35
-
36
- export { serviceName, validation };
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_relayService_serviceRpc = require('./service-rpc.js');
6
- require('../rpc-service-client.js');
7
- require('assert');
8
- require('../../rpc-client.js');
9
- require('json-rpc-2.0');
10
- require('../../core/crypto.js');
11
- require('crypto');
12
- require('../../core/logger.js');
13
- require('../../logger.js');
14
- require('../../rpc-util.js');
15
- require('./configs.js');
16
- require('../../core/validation.js');
17
- require('../../types.js');
18
-
19
- const relayService = new services_relayService_serviceRpc.RelayServiceRpc();
20
-
21
- exports.relayService = relayService;
@@ -1,17 +0,0 @@
1
- import { RelayServiceRpc } from './service-rpc.mjs';
2
- import '../rpc-service-client.mjs';
3
- import 'assert';
4
- import '../../rpc-client.mjs';
5
- import 'json-rpc-2.0';
6
- import '../../core/crypto.mjs';
7
- import 'crypto';
8
- import '../../core/logger.mjs';
9
- import '../../logger.mjs';
10
- import '../../rpc-util.mjs';
11
- import './configs.mjs';
12
- import '../../core/validation.mjs';
13
- import '../../types.mjs';
14
-
15
- const relayService = new RelayServiceRpc();
16
-
17
- export { relayService };
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_relayService_serviceRpc = require('./service-rpc.js');
6
- require('../rpc-service-client.js');
7
- require('assert');
8
- require('../../rpc-client.js');
9
- require('json-rpc-2.0');
10
- require('../../core/crypto.js');
11
- require('crypto');
12
- require('../../core/logger.js');
13
- require('../../logger.js');
14
- require('../../rpc-util.js');
15
- require('./configs.js');
16
- require('../../core/validation.js');
17
- require('../../types.js');
18
-
19
- const relayService = new services_relayService_serviceRpc.RelayServiceRpc();
20
-
21
- exports.relayService = relayService;
@@ -1,17 +0,0 @@
1
- import { RelayServiceRpc } from './service-rpc.mjs';
2
- import '../rpc-service-client.mjs';
3
- import 'assert';
4
- import '../../rpc-client.mjs';
5
- import 'json-rpc-2.0';
6
- import '../../core/crypto.mjs';
7
- import 'crypto';
8
- import '../../core/logger.mjs';
9
- import '../../logger.mjs';
10
- import '../../rpc-util.mjs';
11
- import './configs.mjs';
12
- import '../../core/validation.mjs';
13
- import '../../types.mjs';
14
-
15
- const relayService = new RelayServiceRpc();
16
-
17
- export { relayService };
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_relayService_service = require('./service.js');
6
- require('./configs.js');
7
- require('assert');
8
- require('../../core/validation.js');
9
- require('../../types.js');
10
- require('@docknetwork/wallet-sdk-relay-service/lib');
11
-
12
-
13
-
14
- exports.relayService = services_relayService_service.relayService;
@@ -1,6 +0,0 @@
1
- export { relayService } from './service.mjs';
2
- import './configs.mjs';
3
- import 'assert';
4
- import '../../core/validation.mjs';
5
- import '../../types.mjs';
6
- import '@docknetwork/wallet-sdk-relay-service/lib';
@@ -1,47 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_rpcServiceClient = require('../rpc-service-client.js');
6
- var services_relayService_configs = require('./configs.js');
7
- require('assert');
8
- require('../../rpc-client.js');
9
- require('json-rpc-2.0');
10
- require('../../core/crypto.js');
11
- require('crypto');
12
- require('../../core/logger.js');
13
- require('../../logger.js');
14
- require('../../rpc-util.js');
15
- require('../../core/validation.js');
16
- require('../../types.js');
17
-
18
- class RelayServiceRpc extends services_rpcServiceClient.RpcService {
19
- constructor() {
20
- super(services_relayService_configs.serviceName);
21
- }
22
- sendMessage(params) {
23
- services_relayService_configs.validation.sendMessage(params);
24
- return this.call('sendMessage', params);
25
- }
26
- getMessages(params) {
27
- services_relayService_configs.validation.getMessages(params);
28
- return this.call('getMessages', params);
29
- }
30
- registerDIDPushNotification(params) {
31
- services_relayService_configs.validation.registerDIDPushNotification(params);
32
- return this.call('registerDIDPushNotification', params);
33
- }
34
- resolveDidcommMessage(params) {
35
- services_relayService_configs.validation.resolveDidcommMessage(params);
36
- return this.call('resolveDidcommMessage', params);
37
- }
38
- signJwt(params) {
39
- services_relayService_configs.validation.signJwt(params);
40
- return this.call('signJwt', params);
41
- }
42
- ackMessages(params) {
43
- return this.call('ackMessages', params);
44
- }
45
- }
46
-
47
- exports.RelayServiceRpc = RelayServiceRpc;
@@ -1,43 +0,0 @@
1
- import { RpcService } from '../rpc-service-client.mjs';
2
- import { serviceName, validation } from './configs.mjs';
3
- import 'assert';
4
- import '../../rpc-client.mjs';
5
- import 'json-rpc-2.0';
6
- import '../../core/crypto.mjs';
7
- import 'crypto';
8
- import '../../core/logger.mjs';
9
- import '../../logger.mjs';
10
- import '../../rpc-util.mjs';
11
- import '../../core/validation.mjs';
12
- import '../../types.mjs';
13
-
14
- class RelayServiceRpc extends RpcService {
15
- constructor() {
16
- super(serviceName);
17
- }
18
- sendMessage(params) {
19
- validation.sendMessage(params);
20
- return this.call('sendMessage', params);
21
- }
22
- getMessages(params) {
23
- validation.getMessages(params);
24
- return this.call('getMessages', params);
25
- }
26
- registerDIDPushNotification(params) {
27
- validation.registerDIDPushNotification(params);
28
- return this.call('registerDIDPushNotification', params);
29
- }
30
- resolveDidcommMessage(params) {
31
- validation.resolveDidcommMessage(params);
32
- return this.call('resolveDidcommMessage', params);
33
- }
34
- signJwt(params) {
35
- validation.signJwt(params);
36
- return this.call('signJwt', params);
37
- }
38
- ackMessages(params) {
39
- return this.call('ackMessages', params);
40
- }
41
- }
42
-
43
- export { RelayServiceRpc };