@webex/internal-plugin-board 3.0.0-beta.4 → 3.0.0-beta.41
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/README.md +1 -3
- package/dist/board.js +26 -108
- package/dist/board.js.map +1 -1
- package/dist/config.js +0 -8
- package/dist/config.js.map +1 -1
- package/dist/index.js +7 -28
- package/dist/index.js.map +1 -1
- package/dist/realtime-channel-collection.js +2 -8
- package/dist/realtime-channel-collection.js.map +1 -1
- package/dist/realtime-channel.js +1 -5
- package/dist/realtime-channel.js.map +1 -1
- package/dist/realtime.js +38 -82
- package/dist/realtime.js.map +1 -1
- package/package.json +14 -14
- package/src/board.js +255 -205
- package/src/config.js +2 -2
- package/src/index.js +19 -21
- package/src/realtime-channel-collection.js +2 -2
- package/src/realtime-channel.js +8 -9
- package/src/realtime.js +109 -93
- package/test/integration/spec/board.js +347 -220
- package/test/integration/spec/realtime.js +82 -56
- package/test/integration/spec/sharing-mercury.js +154 -73
- package/test/unit/spec/board.js +301 -215
- package/test/unit/spec/encryption.js +152 -120
- package/test/unit/spec/realtime.js +131 -89
package/README.md
CHANGED
|
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-board
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```js
|
|
24
|
-
|
|
25
24
|
import '@webex/internal-plugin-board';
|
|
26
25
|
|
|
27
26
|
import WebexCore from '@webex/webex-core';
|
|
28
27
|
|
|
29
28
|
const webex = new WebexCore();
|
|
30
|
-
webex.internal.board.WHATEVER
|
|
31
|
-
|
|
29
|
+
webex.internal.board.WHATEVER;
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
## Maintainers
|
package/dist/board.js
CHANGED
|
@@ -1,50 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
11
|
value: true
|
|
9
12
|
});
|
|
10
|
-
|
|
11
13
|
exports.default = void 0;
|
|
12
|
-
|
|
13
|
-
var _assign2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
14
|
-
|
|
15
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
-
|
|
17
15
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
18
|
-
|
|
19
16
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
20
|
-
|
|
21
17
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
22
|
-
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
23
19
|
var _pick2 = _interopRequireDefault(require("lodash/pick"));
|
|
24
|
-
|
|
25
20
|
var _chunk2 = _interopRequireDefault(require("lodash/chunk"));
|
|
26
|
-
|
|
27
21
|
var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
|
|
28
|
-
|
|
29
|
-
var _assign3 = _interopRequireDefault(require("lodash/assign"));
|
|
30
|
-
|
|
22
|
+
var _assign2 = _interopRequireDefault(require("lodash/assign"));
|
|
31
23
|
var _querystring = _interopRequireDefault(require("querystring"));
|
|
32
|
-
|
|
33
24
|
var _webexCore = require("@webex/webex-core");
|
|
34
|
-
|
|
35
25
|
var _es6PromiseSeries = _interopRequireDefault(require("es6-promise-series"));
|
|
36
|
-
|
|
37
26
|
var _realtime = _interopRequireDefault(require("./realtime"));
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
41
|
-
*/
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
42
29
|
var Board = _webexCore.WebexPlugin.extend({
|
|
43
30
|
namespace: 'Board',
|
|
44
31
|
children: {
|
|
45
32
|
realtime: _realtime.default
|
|
46
33
|
},
|
|
47
|
-
|
|
48
34
|
/**
|
|
49
35
|
* Adds Content to a Channel
|
|
50
36
|
* If contents length is greater than config.board.numberContentsPerPageForAdd, this method
|
|
@@ -57,16 +43,15 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
57
43
|
*/
|
|
58
44
|
addContent: function addContent(channel, contents) {
|
|
59
45
|
var _this = this;
|
|
60
|
-
|
|
61
46
|
var chunks = [];
|
|
62
|
-
chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd);
|
|
63
|
-
// chunk or else we'll have race conditions among patches
|
|
47
|
+
chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd);
|
|
64
48
|
|
|
49
|
+
// we want the first promise to resolve before continuing with the next
|
|
50
|
+
// chunk or else we'll have race conditions among patches
|
|
65
51
|
return (0, _es6PromiseSeries.default)(chunks.map(function (part) {
|
|
66
52
|
return _this._addContentChunk.bind(_this, channel, part);
|
|
67
53
|
}));
|
|
68
54
|
},
|
|
69
|
-
|
|
70
55
|
/**
|
|
71
56
|
* Adds Image to a Channel
|
|
72
57
|
* Uploads image to webex files and adds SCR + downloadUrl to the persistence
|
|
@@ -79,7 +64,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
79
64
|
*/
|
|
80
65
|
addImage: function addImage(channel, image, metadata) {
|
|
81
66
|
var _this2 = this;
|
|
82
|
-
|
|
83
67
|
return this.webex.internal.board._uploadImage(channel, image).then(function (scr) {
|
|
84
68
|
return _this2.webex.internal.board.addContent(channel, [{
|
|
85
69
|
type: 'FILE',
|
|
@@ -93,7 +77,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
93
77
|
}]);
|
|
94
78
|
});
|
|
95
79
|
},
|
|
96
|
-
|
|
97
80
|
/**
|
|
98
81
|
* Set a snapshot image for a board
|
|
99
82
|
*
|
|
@@ -103,7 +86,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
103
86
|
*/
|
|
104
87
|
setSnapshotImage: function setSnapshotImage(channel, image) {
|
|
105
88
|
var _this3 = this;
|
|
106
|
-
|
|
107
89
|
var imageScr;
|
|
108
90
|
return this.webex.internal.board._uploadImage(channel, image, {
|
|
109
91
|
hiddenSpace: true
|
|
@@ -134,7 +116,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
134
116
|
return res.body;
|
|
135
117
|
});
|
|
136
118
|
},
|
|
137
|
-
|
|
138
119
|
/**
|
|
139
120
|
* Creates a Channel
|
|
140
121
|
* @memberof Board.BoardService
|
|
@@ -153,7 +134,7 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
153
134
|
});
|
|
154
135
|
},
|
|
155
136
|
_prepareChannel: function _prepareChannel(conversation, channel) {
|
|
156
|
-
return (
|
|
137
|
+
return _objectSpread({
|
|
157
138
|
aclUrlLink: conversation.aclUrl,
|
|
158
139
|
kmsMessage: {
|
|
159
140
|
method: 'create',
|
|
@@ -163,7 +144,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
163
144
|
}
|
|
164
145
|
}, channel);
|
|
165
146
|
},
|
|
166
|
-
|
|
167
147
|
/**
|
|
168
148
|
* Deletes a Channel from a Conversation
|
|
169
149
|
* @memberof Board.BoardService
|
|
@@ -175,7 +155,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
175
155
|
*/
|
|
176
156
|
deleteChannel: function deleteChannel(conversation, channel) {
|
|
177
157
|
var _this4 = this;
|
|
178
|
-
|
|
179
158
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
180
159
|
// remove the ACL link between conversation and board
|
|
181
160
|
// remove conversation auth from board KRO in kms message
|
|
@@ -190,13 +169,10 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
190
169
|
},
|
|
191
170
|
aclLinkOperation: 'DELETE'
|
|
192
171
|
};
|
|
193
|
-
|
|
194
172
|
var promise = _promise.default.resolve();
|
|
195
|
-
|
|
196
173
|
if (options.preventDeleteActiveChannel) {
|
|
197
174
|
promise = this.lockChannelForDeletion(channel);
|
|
198
175
|
}
|
|
199
|
-
|
|
200
176
|
return promise.then(function () {
|
|
201
177
|
return _this4.webex.request({
|
|
202
178
|
method: 'PUT',
|
|
@@ -207,7 +183,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
207
183
|
return res.body;
|
|
208
184
|
});
|
|
209
185
|
},
|
|
210
|
-
|
|
211
186
|
/**
|
|
212
187
|
* Locks and marks a channel for deletion
|
|
213
188
|
* If a channel is being used, it will return 409 - Conflict
|
|
@@ -226,7 +201,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
226
201
|
return res.body;
|
|
227
202
|
});
|
|
228
203
|
},
|
|
229
|
-
|
|
230
204
|
/**
|
|
231
205
|
* Keeps a channel as 'active' to prevent other people from deleting it
|
|
232
206
|
* @param {Board~Channel} channel
|
|
@@ -238,7 +212,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
238
212
|
uri: "".concat(channel.channelUrl, "/keepAlive")
|
|
239
213
|
});
|
|
240
214
|
},
|
|
241
|
-
|
|
242
215
|
/**
|
|
243
216
|
* Decrypts a collection of content objects
|
|
244
217
|
*
|
|
@@ -248,16 +221,13 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
248
221
|
*/
|
|
249
222
|
decryptContents: function decryptContents(contents) {
|
|
250
223
|
var _this5 = this;
|
|
251
|
-
|
|
252
224
|
return _promise.default.all(contents.items.map(function (content) {
|
|
253
225
|
var decryptPromise;
|
|
254
|
-
|
|
255
226
|
if (content.type === 'FILE') {
|
|
256
227
|
decryptPromise = _this5.decryptSingleFileContent(content.encryptionKeyUrl, content);
|
|
257
228
|
} else {
|
|
258
229
|
decryptPromise = _this5.decryptSingleContent(content.encryptionKeyUrl, content.payload);
|
|
259
230
|
}
|
|
260
|
-
|
|
261
231
|
return decryptPromise.then(function (res) {
|
|
262
232
|
(0, _deleteProperty.default)(content, 'payload');
|
|
263
233
|
(0, _deleteProperty.default)(content, 'encryptionKeyUrl');
|
|
@@ -265,7 +235,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
265
235
|
});
|
|
266
236
|
}));
|
|
267
237
|
},
|
|
268
|
-
|
|
269
238
|
/**
|
|
270
239
|
* Decryts a single STRING content object
|
|
271
240
|
* @memberof Board.BoardService
|
|
@@ -278,7 +247,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
278
247
|
return JSON.parse(res);
|
|
279
248
|
});
|
|
280
249
|
},
|
|
281
|
-
|
|
282
250
|
/**
|
|
283
251
|
* Decryts a single FILE content object
|
|
284
252
|
* @memberof Board.BoardService
|
|
@@ -288,36 +256,28 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
288
256
|
*/
|
|
289
257
|
decryptSingleFileContent: function decryptSingleFileContent(encryptionKeyUrl, encryptedContent) {
|
|
290
258
|
var _this6 = this;
|
|
291
|
-
|
|
292
259
|
var metadata;
|
|
293
|
-
|
|
294
260
|
if (encryptedContent.payload) {
|
|
295
261
|
metadata = encryptedContent.payload;
|
|
296
262
|
}
|
|
297
|
-
|
|
298
263
|
return this.webex.internal.encryption.decryptScr(encryptionKeyUrl, encryptedContent.file.scr).then(function (scr) {
|
|
299
264
|
encryptedContent.file.scr = scr;
|
|
300
|
-
|
|
301
265
|
if (metadata) {
|
|
302
266
|
return _this6.webex.internal.encryption.decryptText(encryptionKeyUrl, metadata);
|
|
303
267
|
}
|
|
304
|
-
|
|
305
268
|
return '';
|
|
306
269
|
}).then(function (decryptedMetadata) {
|
|
307
270
|
try {
|
|
308
271
|
encryptedContent.metadata = JSON.parse(decryptedMetadata);
|
|
309
|
-
|
|
310
272
|
if (encryptedContent.metadata.displayName) {
|
|
311
273
|
encryptedContent.displayName = encryptedContent.metadata.displayName;
|
|
312
274
|
}
|
|
313
275
|
} catch (error) {
|
|
314
276
|
encryptedContent.metadata = {};
|
|
315
277
|
}
|
|
316
|
-
|
|
317
278
|
return encryptedContent;
|
|
318
279
|
});
|
|
319
280
|
},
|
|
320
|
-
|
|
321
281
|
/**
|
|
322
282
|
* Deletes all Content from a Channel
|
|
323
283
|
* @memberof Board.BoardService
|
|
@@ -332,7 +292,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
332
292
|
return res.body;
|
|
333
293
|
});
|
|
334
294
|
},
|
|
335
|
-
|
|
336
295
|
/**
|
|
337
296
|
* Deletes Contents from a Channel except the ones listed in contentsToKeep
|
|
338
297
|
* @memberof Board.BoardService
|
|
@@ -355,7 +314,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
355
314
|
return res.body;
|
|
356
315
|
});
|
|
357
316
|
},
|
|
358
|
-
|
|
359
317
|
/**
|
|
360
318
|
* Encrypts a collection of content
|
|
361
319
|
* @memberof Board.BoardService
|
|
@@ -365,20 +323,19 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
365
323
|
*/
|
|
366
324
|
encryptContents: function encryptContents(encryptionKeyUrl, contents) {
|
|
367
325
|
var _this7 = this;
|
|
368
|
-
|
|
369
326
|
return _promise.default.all(contents.map(function (content) {
|
|
370
327
|
var encryptionPromise;
|
|
371
|
-
var contentType = 'STRING';
|
|
328
|
+
var contentType = 'STRING';
|
|
372
329
|
|
|
330
|
+
// the existence of an scr will determine if the content is a FILE.
|
|
373
331
|
if (content.file) {
|
|
374
332
|
contentType = 'FILE';
|
|
375
333
|
encryptionPromise = _this7.encryptSingleFileContent(encryptionKeyUrl, content);
|
|
376
334
|
} else {
|
|
377
335
|
encryptionPromise = _this7.encryptSingleContent(encryptionKeyUrl, content);
|
|
378
336
|
}
|
|
379
|
-
|
|
380
337
|
return encryptionPromise.then(function (res) {
|
|
381
|
-
return (0,
|
|
338
|
+
return (0, _assign2.default)({
|
|
382
339
|
device: _this7.webex.internal.device.deviceType,
|
|
383
340
|
type: contentType,
|
|
384
341
|
encryptionKeyUrl: encryptionKeyUrl
|
|
@@ -386,7 +343,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
386
343
|
});
|
|
387
344
|
}));
|
|
388
345
|
},
|
|
389
|
-
|
|
390
346
|
/**
|
|
391
347
|
* Encrypts a single STRING content object
|
|
392
348
|
* @memberof Board.BoardService
|
|
@@ -402,7 +358,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
402
358
|
};
|
|
403
359
|
});
|
|
404
360
|
},
|
|
405
|
-
|
|
406
361
|
/**
|
|
407
362
|
* Encrypts a single FILE content object
|
|
408
363
|
* @memberof Board.BoardService
|
|
@@ -412,22 +367,18 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
412
367
|
*/
|
|
413
368
|
encryptSingleFileContent: function encryptSingleFileContent(encryptionKeyUrl, content) {
|
|
414
369
|
var _this8 = this;
|
|
415
|
-
|
|
416
370
|
return this.webex.internal.encryption.encryptScr(encryptionKeyUrl, content.file.scr).then(function (encryptedScr) {
|
|
417
371
|
content.file.scr = encryptedScr;
|
|
418
|
-
|
|
419
372
|
if (content.displayName) {
|
|
420
|
-
content.metadata = (0,
|
|
373
|
+
content.metadata = (0, _assign2.default)(content.metadata, {
|
|
421
374
|
displayName: content.displayName
|
|
422
375
|
});
|
|
423
376
|
}
|
|
424
|
-
|
|
425
377
|
if (content.metadata) {
|
|
426
378
|
return _this8.webex.internal.encryption.encryptText(encryptionKeyUrl, (0, _stringify.default)(content.metadata)).then(function (encryptedMetadata) {
|
|
427
379
|
content.metadata = encryptedMetadata;
|
|
428
380
|
});
|
|
429
381
|
}
|
|
430
|
-
|
|
431
382
|
return content;
|
|
432
383
|
}).then(function () {
|
|
433
384
|
return {
|
|
@@ -437,7 +388,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
437
388
|
};
|
|
438
389
|
});
|
|
439
390
|
},
|
|
440
|
-
|
|
441
391
|
/**
|
|
442
392
|
* Retrieves contents from a specified channel
|
|
443
393
|
* @memberof Board.BoardService
|
|
@@ -448,7 +398,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
448
398
|
*/
|
|
449
399
|
getContents: function getContents(channel, options) {
|
|
450
400
|
var _this9 = this;
|
|
451
|
-
|
|
452
401
|
options = options || {};
|
|
453
402
|
var params = {
|
|
454
403
|
uri: "".concat(channel.channelUrl, "/contents"),
|
|
@@ -456,12 +405,11 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
456
405
|
contentsLimit: this.config.numberContentsPerPageForGet
|
|
457
406
|
}
|
|
458
407
|
};
|
|
459
|
-
(0,
|
|
408
|
+
(0, _assign2.default)(params.qs, (0, _pick2.default)(options, 'contentsLimit'));
|
|
460
409
|
return this.request(params).then(function (res) {
|
|
461
410
|
return new _webexCore.Page(res, _this9.webex);
|
|
462
411
|
});
|
|
463
412
|
},
|
|
464
|
-
|
|
465
413
|
/**
|
|
466
414
|
* Gets a Channel
|
|
467
415
|
* @memberof Board.BoardService
|
|
@@ -476,7 +424,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
476
424
|
return res.body;
|
|
477
425
|
});
|
|
478
426
|
},
|
|
479
|
-
|
|
480
427
|
/**
|
|
481
428
|
* Gets Channels
|
|
482
429
|
* @memberof Board.BoardService
|
|
@@ -488,13 +435,10 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
488
435
|
*/
|
|
489
436
|
getChannels: function getChannels(conversation, options) {
|
|
490
437
|
var _this10 = this;
|
|
491
|
-
|
|
492
438
|
options = options || {};
|
|
493
|
-
|
|
494
439
|
if (!conversation) {
|
|
495
440
|
return _promise.default.reject(new Error('`conversation` is required'));
|
|
496
441
|
}
|
|
497
|
-
|
|
498
442
|
var params = {
|
|
499
443
|
api: 'board',
|
|
500
444
|
resource: '/channels',
|
|
@@ -502,12 +446,11 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
502
446
|
aclUrlLink: conversation.aclUrl
|
|
503
447
|
}
|
|
504
448
|
};
|
|
505
|
-
(0,
|
|
449
|
+
(0, _assign2.default)(params.qs, (0, _pick2.default)(options, 'channelsLimit', 'type'));
|
|
506
450
|
return this.request(params).then(function (res) {
|
|
507
451
|
return new _webexCore.Page(res, _this10.webex);
|
|
508
452
|
});
|
|
509
453
|
},
|
|
510
|
-
|
|
511
454
|
/**
|
|
512
455
|
* Pings persistence
|
|
513
456
|
* @memberof Board.BoardService
|
|
@@ -524,20 +467,17 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
524
467
|
},
|
|
525
468
|
processActivityEvent: function processActivityEvent(message) {
|
|
526
469
|
var decryptionPromise;
|
|
527
|
-
|
|
528
470
|
if (message.contentType === 'FILE') {
|
|
529
471
|
decryptionPromise = this.decryptSingleFileContent(message.envelope.encryptionKeyUrl, message.payload);
|
|
530
472
|
} else {
|
|
531
473
|
decryptionPromise = this.decryptSingleContent(message.envelope.encryptionKeyUrl, message.payload);
|
|
532
474
|
}
|
|
533
|
-
|
|
534
475
|
return decryptionPromise.then(function (decryptedData) {
|
|
535
476
|
// call the event handlers
|
|
536
477
|
message.payload = decryptedData;
|
|
537
478
|
return message;
|
|
538
479
|
});
|
|
539
480
|
},
|
|
540
|
-
|
|
541
481
|
/**
|
|
542
482
|
* Registers with Mercury
|
|
543
483
|
* @memberof Board.BoardService
|
|
@@ -554,7 +494,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
554
494
|
return res.body;
|
|
555
495
|
});
|
|
556
496
|
},
|
|
557
|
-
|
|
558
497
|
/**
|
|
559
498
|
* Registers with Mercury for sharing web socket
|
|
560
499
|
* @memberof Board.BoardService
|
|
@@ -563,16 +502,13 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
563
502
|
*/
|
|
564
503
|
registerToShareMercury: function registerToShareMercury(channel) {
|
|
565
504
|
var _this11 = this;
|
|
566
|
-
|
|
567
505
|
return this.webex.internal.feature.getFeature('developer', 'web-shared-mercury').then(function (isSharingMercuryFeatureEnabled) {
|
|
568
506
|
if (!_this11.webex.internal.mercury.localClusterServiceUrls) {
|
|
569
507
|
return _promise.default.reject(new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected'));
|
|
570
508
|
}
|
|
571
|
-
|
|
572
509
|
if (!isSharingMercuryFeatureEnabled) {
|
|
573
510
|
return _promise.default.reject(new Error('`web-shared-mercury` is not enabled'));
|
|
574
511
|
}
|
|
575
|
-
|
|
576
512
|
var webSocketUrl = _this11.webex.internal.device.webSocketUrl;
|
|
577
513
|
var mercuryConnectionServiceClusterUrl = _this11.webex.internal.mercury.localClusterServiceUrls.mercuryConnectionServiceClusterUrl;
|
|
578
514
|
var data = {
|
|
@@ -589,7 +525,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
589
525
|
return res.body;
|
|
590
526
|
});
|
|
591
527
|
},
|
|
592
|
-
|
|
593
528
|
/**
|
|
594
529
|
* Remove board binding from existing mercury connection
|
|
595
530
|
* @memberof Board.BoardService
|
|
@@ -614,7 +549,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
614
549
|
},
|
|
615
550
|
_addContentChunk: function _addContentChunk(channel, contentChunk) {
|
|
616
551
|
var _this12 = this;
|
|
617
|
-
|
|
618
552
|
return this.webex.internal.board.encryptContents(channel.defaultEncryptionKeyUrl, contentChunk).then(function (res) {
|
|
619
553
|
return _this12.webex.request({
|
|
620
554
|
method: 'POST',
|
|
@@ -625,7 +559,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
625
559
|
return res.body;
|
|
626
560
|
});
|
|
627
561
|
},
|
|
628
|
-
|
|
629
562
|
/**
|
|
630
563
|
* Encrypts and uploads image to WebexFiles
|
|
631
564
|
* @memberof Board.BoardService
|
|
@@ -638,29 +571,25 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
638
571
|
*/
|
|
639
572
|
_uploadImage: function _uploadImage(channel, file, options) {
|
|
640
573
|
var _this13 = this;
|
|
641
|
-
|
|
642
574
|
options = options || {};
|
|
643
575
|
return this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
|
|
644
576
|
var scr = _ref.scr,
|
|
645
|
-
|
|
577
|
+
cdata = _ref.cdata;
|
|
646
578
|
return _promise.default.all([scr, _this13._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)]);
|
|
647
579
|
}).then(function (_ref2) {
|
|
648
580
|
var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
return (0, _assign3.default)(scr, {
|
|
581
|
+
scr = _ref3[0],
|
|
582
|
+
res = _ref3[1];
|
|
583
|
+
return (0, _assign2.default)(scr, {
|
|
653
584
|
loc: res.downloadUrl
|
|
654
585
|
});
|
|
655
586
|
});
|
|
656
587
|
},
|
|
657
588
|
_getSpaceUrl: function _getSpaceUrl(channel, hiddenSpace) {
|
|
658
589
|
var requestUri = "".concat(channel.channelUrl, "/spaces/open");
|
|
659
|
-
|
|
660
590
|
if (hiddenSpace) {
|
|
661
591
|
requestUri = "".concat(channel.channelUrl, "/spaces/hidden");
|
|
662
592
|
}
|
|
663
|
-
|
|
664
593
|
return this.webex.request({
|
|
665
594
|
method: 'PUT',
|
|
666
595
|
uri: requestUri
|
|
@@ -670,7 +599,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
670
599
|
},
|
|
671
600
|
_uploadImageToWebexFiles: function _uploadImageToWebexFiles(channel, file, hiddenSpace) {
|
|
672
601
|
var _this14 = this;
|
|
673
|
-
|
|
674
602
|
var fileSize = file.length || file.size || file.byteLength;
|
|
675
603
|
return this._getSpaceUrl(channel, hiddenSpace).then(function (spaceUrl) {
|
|
676
604
|
return _this14.webex.upload({
|
|
@@ -700,7 +628,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
700
628
|
});
|
|
701
629
|
});
|
|
702
630
|
},
|
|
703
|
-
|
|
704
631
|
/** Authorize transcoder (for sharing whiteboard to mobile)
|
|
705
632
|
*
|
|
706
633
|
* @param {Board~Channel} board
|
|
@@ -709,11 +636,9 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
709
636
|
*/
|
|
710
637
|
authorizeMediaInjector: function authorizeMediaInjector(board) {
|
|
711
638
|
var _this15 = this;
|
|
712
|
-
|
|
713
639
|
if (!board) {
|
|
714
640
|
_promise.default.reject(new Error('#authorizeMediaInjector --> cannot authorize transcoder without board'));
|
|
715
641
|
}
|
|
716
|
-
|
|
717
642
|
return this.webex.internal.encryption.kms.prepareRequest({
|
|
718
643
|
method: 'create',
|
|
719
644
|
uri: '/authorizations',
|
|
@@ -733,7 +658,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
733
658
|
if ((decryptedKmsMessage === null || decryptedKmsMessage === void 0 ? void 0 : decryptedKmsMessage.authorizations.length) > 0) {
|
|
734
659
|
return decryptedKmsMessage.authorizations[0].bearer;
|
|
735
660
|
}
|
|
736
|
-
|
|
737
661
|
return undefined;
|
|
738
662
|
}).catch(function (err) {
|
|
739
663
|
return (
|
|
@@ -744,7 +668,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
744
668
|
);
|
|
745
669
|
});
|
|
746
670
|
},
|
|
747
|
-
|
|
748
671
|
/** Unauthorize transcoder (for stopping whiteboard share to mobile)
|
|
749
672
|
*
|
|
750
673
|
* @param {Board~Channel} board
|
|
@@ -753,11 +676,9 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
753
676
|
*/
|
|
754
677
|
unauthorizeMediaInjector: function unauthorizeMediaInjector(board) {
|
|
755
678
|
var _this16 = this;
|
|
756
|
-
|
|
757
679
|
if (!board) {
|
|
758
680
|
_promise.default.reject(new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board'));
|
|
759
681
|
}
|
|
760
|
-
|
|
761
682
|
return this.webex.internal.encryption.kms.listAuthorizations({
|
|
762
683
|
kroUri: board.kmsResourceUrl
|
|
763
684
|
}).then(function (authorizations) {
|
|
@@ -774,25 +695,22 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
774
695
|
}).catch(function (err) {
|
|
775
696
|
return (
|
|
776
697
|
/* We don't want this to error out, otherwise the
|
|
777
|
-
|
|
778
|
-
|
|
698
|
+
* Promise.all will not process the rest of the request
|
|
699
|
+
*/
|
|
779
700
|
_promise.default.resolve(err)
|
|
780
701
|
);
|
|
781
702
|
});
|
|
782
703
|
});
|
|
783
|
-
|
|
784
704
|
if (promises.length > 0) {
|
|
785
705
|
return _promise.default.all(promises).then(function (responses) {
|
|
786
706
|
return responses;
|
|
787
707
|
});
|
|
788
708
|
}
|
|
789
|
-
|
|
790
709
|
return _promise.default.resolve([]);
|
|
791
710
|
});
|
|
792
711
|
},
|
|
793
|
-
version: "3.0.0-beta.
|
|
712
|
+
version: "3.0.0-beta.41"
|
|
794
713
|
});
|
|
795
|
-
|
|
796
714
|
var _default = Board;
|
|
797
715
|
exports.default = _default;
|
|
798
716
|
//# sourceMappingURL=board.js.map
|