@docknetwork/wallet-sdk-relay-service 0.4.19 → 0.4.23
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/lib/_rollupPluginBabelHelpers-4923c894.js +464 -0
- package/lib/_rollupPluginBabelHelpers-78739aa5.js +458 -0
- package/lib/did/did-resolver.js +38 -0
- package/lib/did/did-resolver.mjs +26 -0
- package/lib/did/dids.js +45 -0
- package/lib/did/dids.mjs +41 -0
- package/lib/didcomm.js +603 -0
- package/lib/didcomm.mjs +575 -0
- package/lib/index.js +491 -0
- package/lib/index.mjs +479 -0
- package/lib/payloads.js +146 -0
- package/lib/payloads.mjs +132 -0
- package/package.json +4 -4
- package/src/index.js +11 -1
package/lib/index.js
ADDED
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4923c894.js');
|
|
6
|
+
var utilCrypto = require('@polkadot/util-crypto');
|
|
7
|
+
var assert = require('assert');
|
|
8
|
+
var axios = require('axios');
|
|
9
|
+
var logger = require('@docknetwork/wallet-sdk-wasm/src/core/logger');
|
|
10
|
+
var didcomm$1 = require('./didcomm.js');
|
|
11
|
+
var payloads = require('./payloads.js');
|
|
12
|
+
var jwtDecode = require('jwt-decode');
|
|
13
|
+
var service = require('@docknetwork/wallet-sdk-wasm/src/services/dock/service');
|
|
14
|
+
require('@digitalbazaar/x25519-key-agreement-key-2020');
|
|
15
|
+
require('@digitalbazaar/ed25519-verification-key-2020');
|
|
16
|
+
require('@docknetwork/minimal-cipher');
|
|
17
|
+
require('uuid');
|
|
18
|
+
require('base64url');
|
|
19
|
+
require('./did/dids.js');
|
|
20
|
+
require('@docknetwork/sdk/utils/did');
|
|
21
|
+
require('@docknetwork/sdk/verifiable-credential');
|
|
22
|
+
require('@docknetwork/sdk/utils/vc/helpers');
|
|
23
|
+
require('@docknetwork/universal-wallet/methods/keypairs');
|
|
24
|
+
|
|
25
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
26
|
+
|
|
27
|
+
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
|
|
28
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
29
|
+
var jwtDecode__default = /*#__PURE__*/_interopDefaultLegacy(jwtDecode);
|
|
30
|
+
|
|
31
|
+
var serviceURL = process.env.RELAY_SERVICE_URL || 'https://relay.dock.io';
|
|
32
|
+
var didcomm = {
|
|
33
|
+
encrypt: didcomm$1.didcommCreateEncrypted,
|
|
34
|
+
decrypt: didcomm$1.didcommDecrypt
|
|
35
|
+
};
|
|
36
|
+
var sendMessage = /*#__PURE__*/function () {
|
|
37
|
+
var _ref2 = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee(_ref) {
|
|
38
|
+
var keyPairDoc, recipientDid, message, type, keyAgreementKey, jweMessage, _yield$generateSigned, payload, did, result;
|
|
39
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee$(_context) {
|
|
40
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
|
+
case 0:
|
|
42
|
+
keyPairDoc = _ref.keyPairDoc, recipientDid = _ref.recipientDid, message = _ref.message, type = _ref.type;
|
|
43
|
+
assert__default["default"](!!keyPairDoc, 'keyPairDoc is required');
|
|
44
|
+
assert__default["default"](!!recipientDid, 'recipientDid is required');
|
|
45
|
+
assert__default["default"](!!message, 'message is required');
|
|
46
|
+
_context.next = 6;
|
|
47
|
+
return didcomm$1.getDerivedAgreementKey(keyPairDoc);
|
|
48
|
+
case 6:
|
|
49
|
+
keyAgreementKey = _context.sent;
|
|
50
|
+
_context.next = 9;
|
|
51
|
+
return didcomm.encrypt({
|
|
52
|
+
recipientDids: [recipientDid],
|
|
53
|
+
type: type || didcomm$1.DIDCOMM_TYPE_ISSUE_DIRECT,
|
|
54
|
+
senderDid: keyPairDoc.controller,
|
|
55
|
+
payload: message,
|
|
56
|
+
keyAgreementKey: keyAgreementKey
|
|
57
|
+
});
|
|
58
|
+
case 9:
|
|
59
|
+
jweMessage = _context.sent;
|
|
60
|
+
_context.next = 12;
|
|
61
|
+
return payloads.generateSignedPayload(keyPairDoc, {
|
|
62
|
+
to: recipientDid,
|
|
63
|
+
msg: payloads.toBase64(jweMessage)
|
|
64
|
+
});
|
|
65
|
+
case 12:
|
|
66
|
+
_yield$generateSigned = _context.sent;
|
|
67
|
+
payload = _yield$generateSigned.payload;
|
|
68
|
+
did = _yield$generateSigned.did;
|
|
69
|
+
_context.prev = 15;
|
|
70
|
+
_context.next = 18;
|
|
71
|
+
return axios__default["default"].post("".concat(serviceURL, "/messages/").concat(encodeURIComponent(did)), {
|
|
72
|
+
payload: payloads.toBase64(payload)
|
|
73
|
+
});
|
|
74
|
+
case 18:
|
|
75
|
+
result = _context.sent;
|
|
76
|
+
return _context.abrupt("return", result.data);
|
|
77
|
+
case 22:
|
|
78
|
+
_context.prev = 22;
|
|
79
|
+
_context.t0 = _context["catch"](15);
|
|
80
|
+
console.error(_context.t0.response);
|
|
81
|
+
return _context.abrupt("return", _context.t0);
|
|
82
|
+
case 26:
|
|
83
|
+
case "end":
|
|
84
|
+
return _context.stop();
|
|
85
|
+
}
|
|
86
|
+
}, _callee, null, [[15, 22]]);
|
|
87
|
+
}));
|
|
88
|
+
return function sendMessage(_x) {
|
|
89
|
+
return _ref2.apply(this, arguments);
|
|
90
|
+
};
|
|
91
|
+
}();
|
|
92
|
+
var getMessages = /*#__PURE__*/function () {
|
|
93
|
+
var _ref4 = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee3(_ref3) {
|
|
94
|
+
var keyPairDocs, _ref3$limit, limit, _ref3$skipMessageReso, skipMessageResolution, _yield$generateSigned2, payload, dids, result, data, messages;
|
|
95
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
96
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
97
|
+
case 0:
|
|
98
|
+
keyPairDocs = _ref3.keyPairDocs, _ref3$limit = _ref3.limit, limit = _ref3$limit === void 0 ? 20 : _ref3$limit, _ref3$skipMessageReso = _ref3.skipMessageResolution, skipMessageResolution = _ref3$skipMessageReso === void 0 ? false : _ref3$skipMessageReso;
|
|
99
|
+
assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
|
|
100
|
+
assert__default["default"](Array.isArray(keyPairDocs), 'keyPairDocs must be an array');
|
|
101
|
+
assert__default["default"](!!keyPairDocs.length, 'keyPairDocs must not be empty');
|
|
102
|
+
_context3.next = 6;
|
|
103
|
+
return service.dockService.waitDockReady();
|
|
104
|
+
case 6:
|
|
105
|
+
_context3.next = 8;
|
|
106
|
+
return payloads.generateSignedPayloadFromList(keyPairDocs, {
|
|
107
|
+
limit: limit
|
|
108
|
+
});
|
|
109
|
+
case 8:
|
|
110
|
+
_yield$generateSigned2 = _context3.sent;
|
|
111
|
+
payload = _yield$generateSigned2.payload;
|
|
112
|
+
dids = _yield$generateSigned2.dids;
|
|
113
|
+
_context3.prev = 11;
|
|
114
|
+
_context3.next = 14;
|
|
115
|
+
return axios__default["default"].get("".concat(serviceURL, "/messages/batch-dids?dids=").concat(encodeURIComponent(JSON.stringify(dids)), "&payload=").concat(payloads.toBase64(payload), "&keepMessages=true"));
|
|
116
|
+
case 14:
|
|
117
|
+
result = _context3.sent;
|
|
118
|
+
data = result.data;
|
|
119
|
+
if (!skipMessageResolution) {
|
|
120
|
+
_context3.next = 18;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
return _context3.abrupt("return", data);
|
|
124
|
+
case 18:
|
|
125
|
+
_context3.next = 20;
|
|
126
|
+
return Promise.all(data.map( /*#__PURE__*/function () {
|
|
127
|
+
var _ref5 = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee2(message) {
|
|
128
|
+
var didCommMessage;
|
|
129
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
130
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
_context2.next = 2;
|
|
133
|
+
return resolveDidcommMessage({
|
|
134
|
+
message: message,
|
|
135
|
+
keyPairDocs: keyPairDocs
|
|
136
|
+
});
|
|
137
|
+
case 2:
|
|
138
|
+
didCommMessage = _context2.sent;
|
|
139
|
+
return _context2.abrupt("return", _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, message), didCommMessage), {}, {
|
|
140
|
+
msg: didCommMessage.body
|
|
141
|
+
}));
|
|
142
|
+
case 4:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context2.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee2);
|
|
147
|
+
}));
|
|
148
|
+
return function (_x3) {
|
|
149
|
+
return _ref5.apply(this, arguments);
|
|
150
|
+
};
|
|
151
|
+
}()));
|
|
152
|
+
case 20:
|
|
153
|
+
messages = _context3.sent;
|
|
154
|
+
return _context3.abrupt("return", messages.filter(function (item) {
|
|
155
|
+
return !!item;
|
|
156
|
+
}));
|
|
157
|
+
case 24:
|
|
158
|
+
_context3.prev = 24;
|
|
159
|
+
_context3.t0 = _context3["catch"](11);
|
|
160
|
+
console.error(_context3.t0.response);
|
|
161
|
+
return _context3.abrupt("return", _context3.t0);
|
|
162
|
+
case 28:
|
|
163
|
+
case "end":
|
|
164
|
+
return _context3.stop();
|
|
165
|
+
}
|
|
166
|
+
}, _callee3, null, [[11, 24]]);
|
|
167
|
+
}));
|
|
168
|
+
return function getMessages(_x2) {
|
|
169
|
+
return _ref4.apply(this, arguments);
|
|
170
|
+
};
|
|
171
|
+
}();
|
|
172
|
+
var ackMessages = function ackMessages(_ref6) {
|
|
173
|
+
var did = _ref6.did,
|
|
174
|
+
messageIds = _ref6.messageIds;
|
|
175
|
+
assert__default["default"](!!did, 'did is required');
|
|
176
|
+
assert__default["default"](!!messageIds, 'messageIds is required');
|
|
177
|
+
return axios__default["default"].post("".concat(serviceURL, "/messages/ack"), {
|
|
178
|
+
ack: messageIds,
|
|
179
|
+
did: did
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
var registerDIDPushNotification = /*#__PURE__*/function () {
|
|
183
|
+
var _ref8 = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee4(_ref7) {
|
|
184
|
+
var keyPairDocs, token, _yield$generateSigned3, payload, dids, result;
|
|
185
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
186
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
187
|
+
case 0:
|
|
188
|
+
keyPairDocs = _ref7.keyPairDocs, token = _ref7.token;
|
|
189
|
+
assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
|
|
190
|
+
assert__default["default"](Array.isArray(keyPairDocs), 'keyPairDocs must be an array');
|
|
191
|
+
assert__default["default"](!!keyPairDocs.length, 'keyPairDocs must not be empty');
|
|
192
|
+
assert__default["default"](!!token, 'token is required');
|
|
193
|
+
_context4.next = 7;
|
|
194
|
+
return payloads.generateSignedPayloadFromList(keyPairDocs, {
|
|
195
|
+
token: token
|
|
196
|
+
});
|
|
197
|
+
case 7:
|
|
198
|
+
_yield$generateSigned3 = _context4.sent;
|
|
199
|
+
payload = _yield$generateSigned3.payload;
|
|
200
|
+
dids = _yield$generateSigned3.dids;
|
|
201
|
+
_context4.prev = 10;
|
|
202
|
+
_context4.next = 13;
|
|
203
|
+
return axios__default["default"].post("".concat(serviceURL, "/register/batch-dids?dids=").concat(encodeURIComponent(JSON.stringify(dids)), "&payload=").concat(payloads.toBase64(payload)));
|
|
204
|
+
case 13:
|
|
205
|
+
result = _context4.sent;
|
|
206
|
+
return _context4.abrupt("return", result.data);
|
|
207
|
+
case 17:
|
|
208
|
+
_context4.prev = 17;
|
|
209
|
+
_context4.t0 = _context4["catch"](10);
|
|
210
|
+
console.error(_context4.t0.response);
|
|
211
|
+
return _context4.abrupt("return", _context4.t0);
|
|
212
|
+
case 21:
|
|
213
|
+
case "end":
|
|
214
|
+
return _context4.stop();
|
|
215
|
+
}
|
|
216
|
+
}, _callee4, null, [[10, 17]]);
|
|
217
|
+
}));
|
|
218
|
+
return function registerDIDPushNotification(_x4) {
|
|
219
|
+
return _ref8.apply(this, arguments);
|
|
220
|
+
};
|
|
221
|
+
}();
|
|
222
|
+
function jwtHandler(_x5) {
|
|
223
|
+
return _jwtHandler.apply(this, arguments);
|
|
224
|
+
}
|
|
225
|
+
function _jwtHandler() {
|
|
226
|
+
_jwtHandler = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee5(message) {
|
|
227
|
+
var jwt;
|
|
228
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
229
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
230
|
+
case 0:
|
|
231
|
+
_context5.prev = 0;
|
|
232
|
+
_context5.next = 3;
|
|
233
|
+
return jwtDecode__default["default"](message);
|
|
234
|
+
case 3:
|
|
235
|
+
jwt = _context5.sent;
|
|
236
|
+
return _context5.abrupt("return", jwt);
|
|
237
|
+
case 7:
|
|
238
|
+
_context5.prev = 7;
|
|
239
|
+
_context5.t0 = _context5["catch"](0);
|
|
240
|
+
return _context5.abrupt("return", false);
|
|
241
|
+
case 10:
|
|
242
|
+
case "end":
|
|
243
|
+
return _context5.stop();
|
|
244
|
+
}
|
|
245
|
+
}, _callee5, null, [[0, 7]]);
|
|
246
|
+
}));
|
|
247
|
+
return _jwtHandler.apply(this, arguments);
|
|
248
|
+
}
|
|
249
|
+
function base64Handler(_x6) {
|
|
250
|
+
return _base64Handler.apply(this, arguments);
|
|
251
|
+
}
|
|
252
|
+
function _base64Handler() {
|
|
253
|
+
_base64Handler = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee6(message) {
|
|
254
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
255
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
256
|
+
case 0:
|
|
257
|
+
if (utilCrypto.isBase64(message)) {
|
|
258
|
+
_context6.next = 2;
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
return _context6.abrupt("return", false);
|
|
262
|
+
case 2:
|
|
263
|
+
return _context6.abrupt("return", payloads.fromBase64(message));
|
|
264
|
+
case 3:
|
|
265
|
+
case "end":
|
|
266
|
+
return _context6.stop();
|
|
267
|
+
}
|
|
268
|
+
}, _callee6);
|
|
269
|
+
}));
|
|
270
|
+
return _base64Handler.apply(this, arguments);
|
|
271
|
+
}
|
|
272
|
+
function jsonHandler(_x7) {
|
|
273
|
+
return _jsonHandler.apply(this, arguments);
|
|
274
|
+
}
|
|
275
|
+
function _jsonHandler() {
|
|
276
|
+
_jsonHandler = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee7(message) {
|
|
277
|
+
var json;
|
|
278
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
279
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
280
|
+
case 0:
|
|
281
|
+
_context7.prev = 0;
|
|
282
|
+
json = JSON.parse(message);
|
|
283
|
+
return _context7.abrupt("return", json);
|
|
284
|
+
case 5:
|
|
285
|
+
_context7.prev = 5;
|
|
286
|
+
_context7.t0 = _context7["catch"](0);
|
|
287
|
+
return _context7.abrupt("return", false);
|
|
288
|
+
case 8:
|
|
289
|
+
case "end":
|
|
290
|
+
return _context7.stop();
|
|
291
|
+
}
|
|
292
|
+
}, _callee7, null, [[0, 5]]);
|
|
293
|
+
}));
|
|
294
|
+
return _jsonHandler.apply(this, arguments);
|
|
295
|
+
}
|
|
296
|
+
var messageHandlers = [base64Handler, jwtHandler, jsonHandler];
|
|
297
|
+
function resolveJweString(_x8) {
|
|
298
|
+
return _resolveJweString.apply(this, arguments);
|
|
299
|
+
}
|
|
300
|
+
function _resolveJweString() {
|
|
301
|
+
_resolveJweString = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee8(message) {
|
|
302
|
+
var resolvedMessage, _iterator, _step, handler, _result;
|
|
303
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
304
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
305
|
+
case 0:
|
|
306
|
+
resolvedMessage = message;
|
|
307
|
+
_context8.prev = 1;
|
|
308
|
+
_iterator = _rollupPluginBabelHelpers._createForOfIteratorHelper(messageHandlers);
|
|
309
|
+
_context8.prev = 3;
|
|
310
|
+
_iterator.s();
|
|
311
|
+
case 5:
|
|
312
|
+
if ((_step = _iterator.n()).done) {
|
|
313
|
+
_context8.next = 13;
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
handler = _step.value;
|
|
317
|
+
_context8.next = 9;
|
|
318
|
+
return handler(resolvedMessage);
|
|
319
|
+
case 9:
|
|
320
|
+
_result = _context8.sent;
|
|
321
|
+
if (_result) {
|
|
322
|
+
resolvedMessage = _result;
|
|
323
|
+
}
|
|
324
|
+
case 11:
|
|
325
|
+
_context8.next = 5;
|
|
326
|
+
break;
|
|
327
|
+
case 13:
|
|
328
|
+
_context8.next = 18;
|
|
329
|
+
break;
|
|
330
|
+
case 15:
|
|
331
|
+
_context8.prev = 15;
|
|
332
|
+
_context8.t0 = _context8["catch"](3);
|
|
333
|
+
_iterator.e(_context8.t0);
|
|
334
|
+
case 18:
|
|
335
|
+
_context8.prev = 18;
|
|
336
|
+
_iterator.f();
|
|
337
|
+
return _context8.finish(18);
|
|
338
|
+
case 21:
|
|
339
|
+
_context8.next = 28;
|
|
340
|
+
break;
|
|
341
|
+
case 23:
|
|
342
|
+
_context8.prev = 23;
|
|
343
|
+
_context8.t1 = _context8["catch"](1);
|
|
344
|
+
logger.Logger.debug("Invalid JWE message received: ".concat(message));
|
|
345
|
+
console.error(_context8.t1);
|
|
346
|
+
return _context8.abrupt("return", null);
|
|
347
|
+
case 28:
|
|
348
|
+
return _context8.abrupt("return", resolvedMessage);
|
|
349
|
+
case 29:
|
|
350
|
+
case "end":
|
|
351
|
+
return _context8.stop();
|
|
352
|
+
}
|
|
353
|
+
}, _callee8, null, [[1, 23], [3, 15, 18, 21]]);
|
|
354
|
+
}));
|
|
355
|
+
return _resolveJweString.apply(this, arguments);
|
|
356
|
+
}
|
|
357
|
+
function isURL(str) {
|
|
358
|
+
try {
|
|
359
|
+
// eslint-disable-next-line no-new
|
|
360
|
+
new URL(str);
|
|
361
|
+
return true;
|
|
362
|
+
} catch (err) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function resolveDidcommMessage(_x9) {
|
|
367
|
+
return _resolveDidcommMessage.apply(this, arguments);
|
|
368
|
+
}
|
|
369
|
+
function _resolveDidcommMessage() {
|
|
370
|
+
_resolveDidcommMessage = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee9(_ref9) {
|
|
371
|
+
var _jwe;
|
|
372
|
+
var keyPairDocs, message, jwe, _yield$axios$get, data, result, didCommRecipients, keyPairDoc, keyAgreementKey;
|
|
373
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
374
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
375
|
+
case 0:
|
|
376
|
+
keyPairDocs = _ref9.keyPairDocs, message = _ref9.message;
|
|
377
|
+
assert__default["default"](!!keyPairDocs, 'keyPairDoc is required');
|
|
378
|
+
assert__default["default"](Array.isArray(keyPairDocs), 'keyPairDocs must be an array');
|
|
379
|
+
assert__default["default"](!!keyPairDocs.length, 'keyPairDocs must not be empty');
|
|
380
|
+
jwe = message.msg || message;
|
|
381
|
+
if (jwe && jwe.indexOf('didcomm://') > -1) {
|
|
382
|
+
jwe = jwe.replace('didcomm://', '');
|
|
383
|
+
}
|
|
384
|
+
if (!isURL(jwe)) {
|
|
385
|
+
_context9.next = 19;
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
388
|
+
_context9.prev = 7;
|
|
389
|
+
_context9.next = 10;
|
|
390
|
+
return axios__default["default"].get(jwe);
|
|
391
|
+
case 10:
|
|
392
|
+
_yield$axios$get = _context9.sent;
|
|
393
|
+
data = _yield$axios$get.data;
|
|
394
|
+
jwe = data;
|
|
395
|
+
_context9.next = 19;
|
|
396
|
+
break;
|
|
397
|
+
case 15:
|
|
398
|
+
_context9.prev = 15;
|
|
399
|
+
_context9.t0 = _context9["catch"](7);
|
|
400
|
+
console.error(_context9.t0);
|
|
401
|
+
return _context9.abrupt("return", null);
|
|
402
|
+
case 19:
|
|
403
|
+
try {
|
|
404
|
+
// Parse JSON strings
|
|
405
|
+
jwe = JSON.parse(jwe);
|
|
406
|
+
} catch (_err) {}
|
|
407
|
+
if (!(typeof jwe === 'string')) {
|
|
408
|
+
_context9.next = 24;
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
_context9.next = 23;
|
|
412
|
+
return resolveJweString(jwe);
|
|
413
|
+
case 23:
|
|
414
|
+
jwe = _context9.sent;
|
|
415
|
+
case 24:
|
|
416
|
+
result = jwe;
|
|
417
|
+
didCommRecipients = (_jwe = jwe) === null || _jwe === void 0 || (_jwe = _jwe.recipients) === null || _jwe === void 0 ? void 0 : _jwe.map(function (recipient) {
|
|
418
|
+
return recipient.header.kid;
|
|
419
|
+
}); // if no recipients, the message is not encrypted
|
|
420
|
+
if (!didCommRecipients) {
|
|
421
|
+
_context9.next = 35;
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
keyPairDoc = keyPairDocs.find(function (doc) {
|
|
425
|
+
return didCommRecipients.find(function (did) {
|
|
426
|
+
return did.indexOf(doc.controller) > -1;
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
assert__default["default"](!!keyPairDoc, "keyPairDoc not found for recipients ".concat(JSON.stringify(didCommRecipients)));
|
|
430
|
+
_context9.next = 31;
|
|
431
|
+
return didcomm$1.getDerivedAgreementKey(keyPairDoc);
|
|
432
|
+
case 31:
|
|
433
|
+
keyAgreementKey = _context9.sent;
|
|
434
|
+
_context9.next = 34;
|
|
435
|
+
return didcomm$1.didcommDecrypt(jwe, keyAgreementKey);
|
|
436
|
+
case 34:
|
|
437
|
+
result = _context9.sent;
|
|
438
|
+
case 35:
|
|
439
|
+
if (!result.body && result.payload) {
|
|
440
|
+
result.body = result.payload;
|
|
441
|
+
}
|
|
442
|
+
return _context9.abrupt("return", result);
|
|
443
|
+
case 37:
|
|
444
|
+
case "end":
|
|
445
|
+
return _context9.stop();
|
|
446
|
+
}
|
|
447
|
+
}, _callee9, null, [[7, 15]]);
|
|
448
|
+
}));
|
|
449
|
+
return _resolveDidcommMessage.apply(this, arguments);
|
|
450
|
+
}
|
|
451
|
+
function signJwt(_x10) {
|
|
452
|
+
return _signJwt.apply(this, arguments);
|
|
453
|
+
}
|
|
454
|
+
function _signJwt() {
|
|
455
|
+
_signJwt = _rollupPluginBabelHelpers._asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers._regeneratorRuntime().mark(function _callee10(_ref10) {
|
|
456
|
+
var keyPairDocs, message;
|
|
457
|
+
return _rollupPluginBabelHelpers._regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
458
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
459
|
+
case 0:
|
|
460
|
+
keyPairDocs = _ref10.keyPairDocs, message = _ref10.message;
|
|
461
|
+
_context10.next = 3;
|
|
462
|
+
return didcomm$1.didcommCreateSignedJWT(message, keyPairDocs, true);
|
|
463
|
+
case 3:
|
|
464
|
+
return _context10.abrupt("return", _context10.sent);
|
|
465
|
+
case 4:
|
|
466
|
+
case "end":
|
|
467
|
+
return _context10.stop();
|
|
468
|
+
}
|
|
469
|
+
}, _callee10);
|
|
470
|
+
}));
|
|
471
|
+
return _signJwt.apply(this, arguments);
|
|
472
|
+
}
|
|
473
|
+
var setServiceURL = function setServiceURL(_ref11) {
|
|
474
|
+
var url = _ref11.url;
|
|
475
|
+
assert__default["default"](!!url, 'url is required');
|
|
476
|
+
serviceURL = url;
|
|
477
|
+
};
|
|
478
|
+
var RelayService = {
|
|
479
|
+
sendMessage: sendMessage,
|
|
480
|
+
getMessages: getMessages,
|
|
481
|
+
resolveDidcommMessage: resolveDidcommMessage,
|
|
482
|
+
registerDIDPushNotification: registerDIDPushNotification,
|
|
483
|
+
setServiceURL: setServiceURL,
|
|
484
|
+
ackMessages: ackMessages,
|
|
485
|
+
serviceURL: serviceURL,
|
|
486
|
+
signJwt: signJwt
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
exports.RelayService = RelayService;
|
|
490
|
+
exports.didcomm = didcomm;
|
|
491
|
+
exports.resolveDidcommMessage = resolveDidcommMessage;
|