@webex/internal-plugin-board 3.0.0-beta.15 → 3.0.0-beta.17

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/dist/board.js CHANGED
@@ -1,61 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
-
25
15
  var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
26
-
27
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
28
-
29
17
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
30
-
31
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
32
-
33
19
  var _pick2 = _interopRequireDefault(require("lodash/pick"));
34
-
35
20
  var _chunk2 = _interopRequireDefault(require("lodash/chunk"));
36
-
37
21
  var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
38
-
39
22
  var _assign2 = _interopRequireDefault(require("lodash/assign"));
40
-
41
23
  var _querystring = _interopRequireDefault(require("querystring"));
42
-
43
24
  var _webexCore = require("@webex/webex-core");
44
-
45
25
  var _es6PromiseSeries = _interopRequireDefault(require("es6-promise-series"));
46
-
47
26
  var _realtime = _interopRequireDefault(require("./realtime"));
48
-
49
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; }
50
-
51
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; }
52
-
53
29
  var Board = _webexCore.WebexPlugin.extend({
54
30
  namespace: 'Board',
55
31
  children: {
56
32
  realtime: _realtime.default
57
33
  },
58
-
59
34
  /**
60
35
  * Adds Content to a Channel
61
36
  * If contents length is greater than config.board.numberContentsPerPageForAdd, this method
@@ -68,16 +43,15 @@ var Board = _webexCore.WebexPlugin.extend({
68
43
  */
69
44
  addContent: function addContent(channel, contents) {
70
45
  var _this = this;
71
-
72
46
  var chunks = [];
73
- chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd); // we want the first promise to resolve before continuing with the next
74
- // chunk or else we'll have race conditions among patches
47
+ chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd);
75
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
76
51
  return (0, _es6PromiseSeries.default)(chunks.map(function (part) {
77
52
  return _this._addContentChunk.bind(_this, channel, part);
78
53
  }));
79
54
  },
80
-
81
55
  /**
82
56
  * Adds Image to a Channel
83
57
  * Uploads image to webex files and adds SCR + downloadUrl to the persistence
@@ -90,7 +64,6 @@ var Board = _webexCore.WebexPlugin.extend({
90
64
  */
91
65
  addImage: function addImage(channel, image, metadata) {
92
66
  var _this2 = this;
93
-
94
67
  return this.webex.internal.board._uploadImage(channel, image).then(function (scr) {
95
68
  return _this2.webex.internal.board.addContent(channel, [{
96
69
  type: 'FILE',
@@ -104,7 +77,6 @@ var Board = _webexCore.WebexPlugin.extend({
104
77
  }]);
105
78
  });
106
79
  },
107
-
108
80
  /**
109
81
  * Set a snapshot image for a board
110
82
  *
@@ -114,7 +86,6 @@ var Board = _webexCore.WebexPlugin.extend({
114
86
  */
115
87
  setSnapshotImage: function setSnapshotImage(channel, image) {
116
88
  var _this3 = this;
117
-
118
89
  var imageScr;
119
90
  return this.webex.internal.board._uploadImage(channel, image, {
120
91
  hiddenSpace: true
@@ -145,7 +116,6 @@ var Board = _webexCore.WebexPlugin.extend({
145
116
  return res.body;
146
117
  });
147
118
  },
148
-
149
119
  /**
150
120
  * Creates a Channel
151
121
  * @memberof Board.BoardService
@@ -174,7 +144,6 @@ var Board = _webexCore.WebexPlugin.extend({
174
144
  }
175
145
  }, channel);
176
146
  },
177
-
178
147
  /**
179
148
  * Deletes a Channel from a Conversation
180
149
  * @memberof Board.BoardService
@@ -186,7 +155,6 @@ var Board = _webexCore.WebexPlugin.extend({
186
155
  */
187
156
  deleteChannel: function deleteChannel(conversation, channel) {
188
157
  var _this4 = this;
189
-
190
158
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
191
159
  // remove the ACL link between conversation and board
192
160
  // remove conversation auth from board KRO in kms message
@@ -201,13 +169,10 @@ var Board = _webexCore.WebexPlugin.extend({
201
169
  },
202
170
  aclLinkOperation: 'DELETE'
203
171
  };
204
-
205
172
  var promise = _promise.default.resolve();
206
-
207
173
  if (options.preventDeleteActiveChannel) {
208
174
  promise = this.lockChannelForDeletion(channel);
209
175
  }
210
-
211
176
  return promise.then(function () {
212
177
  return _this4.webex.request({
213
178
  method: 'PUT',
@@ -218,7 +183,6 @@ var Board = _webexCore.WebexPlugin.extend({
218
183
  return res.body;
219
184
  });
220
185
  },
221
-
222
186
  /**
223
187
  * Locks and marks a channel for deletion
224
188
  * If a channel is being used, it will return 409 - Conflict
@@ -237,7 +201,6 @@ var Board = _webexCore.WebexPlugin.extend({
237
201
  return res.body;
238
202
  });
239
203
  },
240
-
241
204
  /**
242
205
  * Keeps a channel as 'active' to prevent other people from deleting it
243
206
  * @param {Board~Channel} channel
@@ -249,7 +212,6 @@ var Board = _webexCore.WebexPlugin.extend({
249
212
  uri: "".concat(channel.channelUrl, "/keepAlive")
250
213
  });
251
214
  },
252
-
253
215
  /**
254
216
  * Decrypts a collection of content objects
255
217
  *
@@ -259,16 +221,13 @@ var Board = _webexCore.WebexPlugin.extend({
259
221
  */
260
222
  decryptContents: function decryptContents(contents) {
261
223
  var _this5 = this;
262
-
263
224
  return _promise.default.all(contents.items.map(function (content) {
264
225
  var decryptPromise;
265
-
266
226
  if (content.type === 'FILE') {
267
227
  decryptPromise = _this5.decryptSingleFileContent(content.encryptionKeyUrl, content);
268
228
  } else {
269
229
  decryptPromise = _this5.decryptSingleContent(content.encryptionKeyUrl, content.payload);
270
230
  }
271
-
272
231
  return decryptPromise.then(function (res) {
273
232
  (0, _deleteProperty.default)(content, 'payload');
274
233
  (0, _deleteProperty.default)(content, 'encryptionKeyUrl');
@@ -276,7 +235,6 @@ var Board = _webexCore.WebexPlugin.extend({
276
235
  });
277
236
  }));
278
237
  },
279
-
280
238
  /**
281
239
  * Decryts a single STRING content object
282
240
  * @memberof Board.BoardService
@@ -289,7 +247,6 @@ var Board = _webexCore.WebexPlugin.extend({
289
247
  return JSON.parse(res);
290
248
  });
291
249
  },
292
-
293
250
  /**
294
251
  * Decryts a single FILE content object
295
252
  * @memberof Board.BoardService
@@ -299,36 +256,28 @@ var Board = _webexCore.WebexPlugin.extend({
299
256
  */
300
257
  decryptSingleFileContent: function decryptSingleFileContent(encryptionKeyUrl, encryptedContent) {
301
258
  var _this6 = this;
302
-
303
259
  var metadata;
304
-
305
260
  if (encryptedContent.payload) {
306
261
  metadata = encryptedContent.payload;
307
262
  }
308
-
309
263
  return this.webex.internal.encryption.decryptScr(encryptionKeyUrl, encryptedContent.file.scr).then(function (scr) {
310
264
  encryptedContent.file.scr = scr;
311
-
312
265
  if (metadata) {
313
266
  return _this6.webex.internal.encryption.decryptText(encryptionKeyUrl, metadata);
314
267
  }
315
-
316
268
  return '';
317
269
  }).then(function (decryptedMetadata) {
318
270
  try {
319
271
  encryptedContent.metadata = JSON.parse(decryptedMetadata);
320
-
321
272
  if (encryptedContent.metadata.displayName) {
322
273
  encryptedContent.displayName = encryptedContent.metadata.displayName;
323
274
  }
324
275
  } catch (error) {
325
276
  encryptedContent.metadata = {};
326
277
  }
327
-
328
278
  return encryptedContent;
329
279
  });
330
280
  },
331
-
332
281
  /**
333
282
  * Deletes all Content from a Channel
334
283
  * @memberof Board.BoardService
@@ -343,7 +292,6 @@ var Board = _webexCore.WebexPlugin.extend({
343
292
  return res.body;
344
293
  });
345
294
  },
346
-
347
295
  /**
348
296
  * Deletes Contents from a Channel except the ones listed in contentsToKeep
349
297
  * @memberof Board.BoardService
@@ -366,7 +314,6 @@ var Board = _webexCore.WebexPlugin.extend({
366
314
  return res.body;
367
315
  });
368
316
  },
369
-
370
317
  /**
371
318
  * Encrypts a collection of content
372
319
  * @memberof Board.BoardService
@@ -376,18 +323,17 @@ var Board = _webexCore.WebexPlugin.extend({
376
323
  */
377
324
  encryptContents: function encryptContents(encryptionKeyUrl, contents) {
378
325
  var _this7 = this;
379
-
380
326
  return _promise.default.all(contents.map(function (content) {
381
327
  var encryptionPromise;
382
- var contentType = 'STRING'; // the existence of an scr will determine if the content is a FILE.
328
+ var contentType = 'STRING';
383
329
 
330
+ // the existence of an scr will determine if the content is a FILE.
384
331
  if (content.file) {
385
332
  contentType = 'FILE';
386
333
  encryptionPromise = _this7.encryptSingleFileContent(encryptionKeyUrl, content);
387
334
  } else {
388
335
  encryptionPromise = _this7.encryptSingleContent(encryptionKeyUrl, content);
389
336
  }
390
-
391
337
  return encryptionPromise.then(function (res) {
392
338
  return (0, _assign2.default)({
393
339
  device: _this7.webex.internal.device.deviceType,
@@ -397,7 +343,6 @@ var Board = _webexCore.WebexPlugin.extend({
397
343
  });
398
344
  }));
399
345
  },
400
-
401
346
  /**
402
347
  * Encrypts a single STRING content object
403
348
  * @memberof Board.BoardService
@@ -413,7 +358,6 @@ var Board = _webexCore.WebexPlugin.extend({
413
358
  };
414
359
  });
415
360
  },
416
-
417
361
  /**
418
362
  * Encrypts a single FILE content object
419
363
  * @memberof Board.BoardService
@@ -423,22 +367,18 @@ var Board = _webexCore.WebexPlugin.extend({
423
367
  */
424
368
  encryptSingleFileContent: function encryptSingleFileContent(encryptionKeyUrl, content) {
425
369
  var _this8 = this;
426
-
427
370
  return this.webex.internal.encryption.encryptScr(encryptionKeyUrl, content.file.scr).then(function (encryptedScr) {
428
371
  content.file.scr = encryptedScr;
429
-
430
372
  if (content.displayName) {
431
373
  content.metadata = (0, _assign2.default)(content.metadata, {
432
374
  displayName: content.displayName
433
375
  });
434
376
  }
435
-
436
377
  if (content.metadata) {
437
378
  return _this8.webex.internal.encryption.encryptText(encryptionKeyUrl, (0, _stringify.default)(content.metadata)).then(function (encryptedMetadata) {
438
379
  content.metadata = encryptedMetadata;
439
380
  });
440
381
  }
441
-
442
382
  return content;
443
383
  }).then(function () {
444
384
  return {
@@ -448,7 +388,6 @@ var Board = _webexCore.WebexPlugin.extend({
448
388
  };
449
389
  });
450
390
  },
451
-
452
391
  /**
453
392
  * Retrieves contents from a specified channel
454
393
  * @memberof Board.BoardService
@@ -459,7 +398,6 @@ var Board = _webexCore.WebexPlugin.extend({
459
398
  */
460
399
  getContents: function getContents(channel, options) {
461
400
  var _this9 = this;
462
-
463
401
  options = options || {};
464
402
  var params = {
465
403
  uri: "".concat(channel.channelUrl, "/contents"),
@@ -472,7 +410,6 @@ var Board = _webexCore.WebexPlugin.extend({
472
410
  return new _webexCore.Page(res, _this9.webex);
473
411
  });
474
412
  },
475
-
476
413
  /**
477
414
  * Gets a Channel
478
415
  * @memberof Board.BoardService
@@ -487,7 +424,6 @@ var Board = _webexCore.WebexPlugin.extend({
487
424
  return res.body;
488
425
  });
489
426
  },
490
-
491
427
  /**
492
428
  * Gets Channels
493
429
  * @memberof Board.BoardService
@@ -499,13 +435,10 @@ var Board = _webexCore.WebexPlugin.extend({
499
435
  */
500
436
  getChannels: function getChannels(conversation, options) {
501
437
  var _this10 = this;
502
-
503
438
  options = options || {};
504
-
505
439
  if (!conversation) {
506
440
  return _promise.default.reject(new Error('`conversation` is required'));
507
441
  }
508
-
509
442
  var params = {
510
443
  api: 'board',
511
444
  resource: '/channels',
@@ -518,7 +451,6 @@ var Board = _webexCore.WebexPlugin.extend({
518
451
  return new _webexCore.Page(res, _this10.webex);
519
452
  });
520
453
  },
521
-
522
454
  /**
523
455
  * Pings persistence
524
456
  * @memberof Board.BoardService
@@ -535,20 +467,17 @@ var Board = _webexCore.WebexPlugin.extend({
535
467
  },
536
468
  processActivityEvent: function processActivityEvent(message) {
537
469
  var decryptionPromise;
538
-
539
470
  if (message.contentType === 'FILE') {
540
471
  decryptionPromise = this.decryptSingleFileContent(message.envelope.encryptionKeyUrl, message.payload);
541
472
  } else {
542
473
  decryptionPromise = this.decryptSingleContent(message.envelope.encryptionKeyUrl, message.payload);
543
474
  }
544
-
545
475
  return decryptionPromise.then(function (decryptedData) {
546
476
  // call the event handlers
547
477
  message.payload = decryptedData;
548
478
  return message;
549
479
  });
550
480
  },
551
-
552
481
  /**
553
482
  * Registers with Mercury
554
483
  * @memberof Board.BoardService
@@ -565,7 +494,6 @@ var Board = _webexCore.WebexPlugin.extend({
565
494
  return res.body;
566
495
  });
567
496
  },
568
-
569
497
  /**
570
498
  * Registers with Mercury for sharing web socket
571
499
  * @memberof Board.BoardService
@@ -574,16 +502,13 @@ var Board = _webexCore.WebexPlugin.extend({
574
502
  */
575
503
  registerToShareMercury: function registerToShareMercury(channel) {
576
504
  var _this11 = this;
577
-
578
505
  return this.webex.internal.feature.getFeature('developer', 'web-shared-mercury').then(function (isSharingMercuryFeatureEnabled) {
579
506
  if (!_this11.webex.internal.mercury.localClusterServiceUrls) {
580
507
  return _promise.default.reject(new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected'));
581
508
  }
582
-
583
509
  if (!isSharingMercuryFeatureEnabled) {
584
510
  return _promise.default.reject(new Error('`web-shared-mercury` is not enabled'));
585
511
  }
586
-
587
512
  var webSocketUrl = _this11.webex.internal.device.webSocketUrl;
588
513
  var mercuryConnectionServiceClusterUrl = _this11.webex.internal.mercury.localClusterServiceUrls.mercuryConnectionServiceClusterUrl;
589
514
  var data = {
@@ -600,7 +525,6 @@ var Board = _webexCore.WebexPlugin.extend({
600
525
  return res.body;
601
526
  });
602
527
  },
603
-
604
528
  /**
605
529
  * Remove board binding from existing mercury connection
606
530
  * @memberof Board.BoardService
@@ -625,7 +549,6 @@ var Board = _webexCore.WebexPlugin.extend({
625
549
  },
626
550
  _addContentChunk: function _addContentChunk(channel, contentChunk) {
627
551
  var _this12 = this;
628
-
629
552
  return this.webex.internal.board.encryptContents(channel.defaultEncryptionKeyUrl, contentChunk).then(function (res) {
630
553
  return _this12.webex.request({
631
554
  method: 'POST',
@@ -636,7 +559,6 @@ var Board = _webexCore.WebexPlugin.extend({
636
559
  return res.body;
637
560
  });
638
561
  },
639
-
640
562
  /**
641
563
  * Encrypts and uploads image to WebexFiles
642
564
  * @memberof Board.BoardService
@@ -649,17 +571,15 @@ var Board = _webexCore.WebexPlugin.extend({
649
571
  */
650
572
  _uploadImage: function _uploadImage(channel, file, options) {
651
573
  var _this13 = this;
652
-
653
574
  options = options || {};
654
575
  return this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
655
576
  var scr = _ref.scr,
656
- cdata = _ref.cdata;
577
+ cdata = _ref.cdata;
657
578
  return _promise.default.all([scr, _this13._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)]);
658
579
  }).then(function (_ref2) {
659
580
  var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
660
- scr = _ref3[0],
661
- res = _ref3[1];
662
-
581
+ scr = _ref3[0],
582
+ res = _ref3[1];
663
583
  return (0, _assign2.default)(scr, {
664
584
  loc: res.downloadUrl
665
585
  });
@@ -667,11 +587,9 @@ var Board = _webexCore.WebexPlugin.extend({
667
587
  },
668
588
  _getSpaceUrl: function _getSpaceUrl(channel, hiddenSpace) {
669
589
  var requestUri = "".concat(channel.channelUrl, "/spaces/open");
670
-
671
590
  if (hiddenSpace) {
672
591
  requestUri = "".concat(channel.channelUrl, "/spaces/hidden");
673
592
  }
674
-
675
593
  return this.webex.request({
676
594
  method: 'PUT',
677
595
  uri: requestUri
@@ -681,7 +599,6 @@ var Board = _webexCore.WebexPlugin.extend({
681
599
  },
682
600
  _uploadImageToWebexFiles: function _uploadImageToWebexFiles(channel, file, hiddenSpace) {
683
601
  var _this14 = this;
684
-
685
602
  var fileSize = file.length || file.size || file.byteLength;
686
603
  return this._getSpaceUrl(channel, hiddenSpace).then(function (spaceUrl) {
687
604
  return _this14.webex.upload({
@@ -711,7 +628,6 @@ var Board = _webexCore.WebexPlugin.extend({
711
628
  });
712
629
  });
713
630
  },
714
-
715
631
  /** Authorize transcoder (for sharing whiteboard to mobile)
716
632
  *
717
633
  * @param {Board~Channel} board
@@ -720,11 +636,9 @@ var Board = _webexCore.WebexPlugin.extend({
720
636
  */
721
637
  authorizeMediaInjector: function authorizeMediaInjector(board) {
722
638
  var _this15 = this;
723
-
724
639
  if (!board) {
725
640
  _promise.default.reject(new Error('#authorizeMediaInjector --> cannot authorize transcoder without board'));
726
641
  }
727
-
728
642
  return this.webex.internal.encryption.kms.prepareRequest({
729
643
  method: 'create',
730
644
  uri: '/authorizations',
@@ -744,7 +658,6 @@ var Board = _webexCore.WebexPlugin.extend({
744
658
  if ((decryptedKmsMessage === null || decryptedKmsMessage === void 0 ? void 0 : decryptedKmsMessage.authorizations.length) > 0) {
745
659
  return decryptedKmsMessage.authorizations[0].bearer;
746
660
  }
747
-
748
661
  return undefined;
749
662
  }).catch(function (err) {
750
663
  return (
@@ -755,7 +668,6 @@ var Board = _webexCore.WebexPlugin.extend({
755
668
  );
756
669
  });
757
670
  },
758
-
759
671
  /** Unauthorize transcoder (for stopping whiteboard share to mobile)
760
672
  *
761
673
  * @param {Board~Channel} board
@@ -764,11 +676,9 @@ var Board = _webexCore.WebexPlugin.extend({
764
676
  */
765
677
  unauthorizeMediaInjector: function unauthorizeMediaInjector(board) {
766
678
  var _this16 = this;
767
-
768
679
  if (!board) {
769
680
  _promise.default.reject(new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board'));
770
681
  }
771
-
772
682
  return this.webex.internal.encryption.kms.listAuthorizations({
773
683
  kroUri: board.kmsResourceUrl
774
684
  }).then(function (authorizations) {
@@ -791,19 +701,16 @@ var Board = _webexCore.WebexPlugin.extend({
791
701
  );
792
702
  });
793
703
  });
794
-
795
704
  if (promises.length > 0) {
796
705
  return _promise.default.all(promises).then(function (responses) {
797
706
  return responses;
798
707
  });
799
708
  }
800
-
801
709
  return _promise.default.resolve([]);
802
710
  });
803
711
  },
804
- version: "3.0.0-beta.15"
712
+ version: "3.0.0-beta.17"
805
713
  });
806
-
807
714
  var _default = Board;
808
715
  exports.default = _default;
809
716
  //# sourceMappingURL=board.js.map