@webex/internal-plugin-board 3.10.0-next.1 → 3.10.0-next.11

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
@@ -449,7 +449,7 @@ var Board = _webexCore.WebexPlugin.extend({
449
449
  * @returns {Promise<Page<Board~Channel>>} Resolves with an array of Channel items
450
450
  */
451
451
  getChannels: function getChannels(conversation, options) {
452
- var _this10 = this;
452
+ var _this0 = this;
453
453
  options = options || {};
454
454
  if (!conversation) {
455
455
  return _promise.default.reject(new Error('`conversation` is required'));
@@ -463,7 +463,7 @@ var Board = _webexCore.WebexPlugin.extend({
463
463
  };
464
464
  (0, _lodash.assign)(params.qs, (0, _lodash.pick)(options, 'channelsLimit', 'type'));
465
465
  return this.request(params).then(function (res) {
466
- return new _webexCore.Page(res, _this10.webex);
466
+ return new _webexCore.Page(res, _this0.webex);
467
467
  });
468
468
  },
469
469
  /**
@@ -516,22 +516,22 @@ var Board = _webexCore.WebexPlugin.extend({
516
516
  * @returns {Promise<Board~Registration>}
517
517
  */
518
518
  registerToShareMercury: function registerToShareMercury(channel) {
519
- var _this11 = this;
519
+ var _this1 = this;
520
520
  return this.webex.internal.feature.getFeature('developer', 'web-shared-mercury').then(function (isSharingMercuryFeatureEnabled) {
521
- if (!_this11.webex.internal.mercury.localClusterServiceUrls) {
521
+ if (!_this1.webex.internal.mercury.localClusterServiceUrls) {
522
522
  return _promise.default.reject(new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected'));
523
523
  }
524
524
  if (!isSharingMercuryFeatureEnabled) {
525
525
  return _promise.default.reject(new Error('`web-shared-mercury` is not enabled'));
526
526
  }
527
- var webSocketUrl = _this11.webex.internal.device.webSocketUrl;
528
- var mercuryConnectionServiceClusterUrl = _this11.webex.internal.mercury.localClusterServiceUrls.mercuryConnectionServiceClusterUrl;
527
+ var webSocketUrl = _this1.webex.internal.device.webSocketUrl;
528
+ var mercuryConnectionServiceClusterUrl = _this1.webex.internal.mercury.localClusterServiceUrls.mercuryConnectionServiceClusterUrl;
529
529
  var data = {
530
530
  mercuryConnectionServiceClusterUrl: mercuryConnectionServiceClusterUrl,
531
531
  webSocketUrl: webSocketUrl,
532
532
  action: 'ADD'
533
533
  };
534
- return _this11.webex.request({
534
+ return _this1.webex.request({
535
535
  method: 'POST',
536
536
  uri: "".concat(channel.channelUrl, "/register"),
537
537
  body: data
@@ -563,9 +563,9 @@ var Board = _webexCore.WebexPlugin.extend({
563
563
  });
564
564
  },
565
565
  _addContentChunk: function _addContentChunk(channel, contentChunk) {
566
- var _this12 = this;
566
+ var _this10 = this;
567
567
  return this.webex.internal.board.encryptContents(channel.defaultEncryptionKeyUrl, contentChunk).then(function (res) {
568
- return _this12.webex.request({
568
+ return _this10.webex.request({
569
569
  method: 'POST',
570
570
  uri: "".concat(channel.channelUrl, "/contents"),
571
571
  body: res
@@ -585,12 +585,12 @@ var Board = _webexCore.WebexPlugin.extend({
585
585
  * @returns {Object} Encrypted Scr and KeyUrl
586
586
  */
587
587
  _uploadImage: function _uploadImage(channel, file, options) {
588
- var _this13 = this;
588
+ var _this11 = this;
589
589
  options = options || {};
590
590
  return this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
591
591
  var scr = _ref.scr,
592
592
  cdata = _ref.cdata;
593
- return _promise.default.all([scr, _this13._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)]);
593
+ return _promise.default.all([scr, _this11._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)]);
594
594
  }).then(function (_ref2) {
595
595
  var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
596
596
  scr = _ref3[0],
@@ -613,10 +613,10 @@ var Board = _webexCore.WebexPlugin.extend({
613
613
  });
614
614
  },
615
615
  _uploadImageToWebexFiles: function _uploadImageToWebexFiles(channel, file, hiddenSpace) {
616
- var _this14 = this;
616
+ var _this12 = this;
617
617
  var fileSize = file.length || file.size || file.byteLength;
618
618
  return this._getSpaceUrl(channel, hiddenSpace).then(function (spaceUrl) {
619
- return _this14.webex.upload({
619
+ return _this12.webex.upload({
620
620
  uri: "".concat(spaceUrl, "/upload_sessions"),
621
621
  file: file,
622
622
  qs: {
@@ -650,7 +650,7 @@ var Board = _webexCore.WebexPlugin.extend({
650
650
  * @returns {String} authorization
651
651
  */
652
652
  authorizeMediaInjector: function authorizeMediaInjector(board) {
653
- var _this15 = this;
653
+ var _this13 = this;
654
654
  if (!board) {
655
655
  _promise.default.reject(new Error('#authorizeMediaInjector --> cannot authorize transcoder without board'));
656
656
  }
@@ -660,7 +660,7 @@ var Board = _webexCore.WebexPlugin.extend({
660
660
  resourceUri: board.kmsResourceUrl,
661
661
  anonymous: 1
662
662
  }).then(function (request) {
663
- return _this15.webex.request({
663
+ return _this13.webex.request({
664
664
  uri: "".concat(board.channelUrl, "/sharePolicies/transcoder"),
665
665
  method: 'PUT',
666
666
  body: {
@@ -668,7 +668,7 @@ var Board = _webexCore.WebexPlugin.extend({
668
668
  }
669
669
  });
670
670
  }).then(function (res) {
671
- return _this15.webex.internal.encryption.kms.decryptKmsMessage(res.body.kmsResponse);
671
+ return _this13.webex.internal.encryption.kms.decryptKmsMessage(res.body.kmsResponse);
672
672
  }).then(function (decryptedKmsMessage) {
673
673
  if ((decryptedKmsMessage === null || decryptedKmsMessage === void 0 ? void 0 : decryptedKmsMessage.authorizations.length) > 0) {
674
674
  return decryptedKmsMessage.authorizations[0].bearer;
@@ -690,7 +690,7 @@ var Board = _webexCore.WebexPlugin.extend({
690
690
  * @returns {Array} list of authIds removed
691
691
  */
692
692
  unauthorizeMediaInjector: function unauthorizeMediaInjector(board) {
693
- var _this16 = this;
693
+ var _this14 = this;
694
694
  if (!board) {
695
695
  _promise.default.reject(new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board'));
696
696
  }
@@ -702,7 +702,7 @@ var Board = _webexCore.WebexPlugin.extend({
702
702
  */
703
703
  var promises = authorizations.map(function (auth) {
704
704
  var authId = auth.authId;
705
- return _this16.webex.internal.encryption.kms.removeAuthorization({
705
+ return _this14.webex.internal.encryption.kms.removeAuthorization({
706
706
  authId: authId,
707
707
  kroUri: board.kmsResourceUrl
708
708
  }).then(function () {
@@ -724,7 +724,7 @@ var Board = _webexCore.WebexPlugin.extend({
724
724
  return _promise.default.resolve([]);
725
725
  });
726
726
  },
727
- version: "3.10.0-next.1"
727
+ version: "3.10.0-next.11"
728
728
  });
729
729
  var _default = exports.default = Board;
730
730
  //# sourceMappingURL=board.js.map
package/dist/board.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_querystring","_interopRequireDefault","require","_webexCore","_es6PromiseSeries","_lodash","_realtime","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Board","WebexPlugin","extend","namespace","children","realtime","Realtime","addContent","channel","contents","_this","chunks","chunk","config","numberContentsPerPageForAdd","promiseSeries","map","part","_addContentChunk","bind","addImage","image","metadata","_this2","webex","internal","board","_uploadImage","then","scr","type","file","mimeType","size","url","loc","setSnapshotImage","_this3","imageScr","hiddenSpace","encryption","encryptScr","defaultEncryptionKeyUrl","encryptedScr","imageBody","height","width","encryptionKeyUrl","fileSize","request","method","uri","channelUrl","body","res","createChannel","conversation","api","resource","_prepareChannel","undefined","results","aclUrlLink","aclUrl","kmsMessage","userIds","keyUris","kmsResourceObjectUrl","deleteChannel","_this4","options","aclLinkType","linkedAcl","concat","kmsResourceUrl","querystring","stringify","authId","aclLinkOperation","promise","_promise","resolve","preventDeleteActiveChannel","lockChannelForDeletion","qs","intent","keepActive","decryptContents","_this5","all","items","content","decryptPromise","decryptSingleFileContent","decryptSingleContent","payload","_deleteProperty","defaults","encryptedData","decryptText","JSON","parse","encryptedContent","_this6","decryptScr","decryptedMetadata","displayName","error","deleteAllContent","deletePartialContent","contentsToKeep","pick","clearBoard","encryptContents","_this7","encryptionPromise","contentType","encryptSingleFileContent","encryptSingleContent","assign","device","deviceType","encryptText","_stringify","_this8","encryptedMetadata","getContents","_this9","params","contentsLimit","numberContentsPerPageForGet","Page","getChannel","getChannels","_this10","reject","Error","ping","processActivityEvent","message","decryptionPromise","envelope","decryptedData","register","data","registerToShareMercury","_this11","feature","getFeature","isSharingMercuryFeatureEnabled","mercury","localClusterServiceUrls","webSocketUrl","mercuryConnectionServiceClusterUrl","action","unregisterFromSharedMercury","binding","contentChunk","_this12","_this13","encryptBinary","_ref","cdata","_uploadImageToWebexFiles","_ref2","_ref3","_slicedToArray2","downloadUrl","_getSpaceUrl","requestUri","spaceUrl","_this14","byteLength","upload","transcode","phases","initialize","$url","session","uploadUrl","finalize","$uri","finishUploadUrl","authorizeMediaInjector","_this15","kms","prepareRequest","resourceUri","anonymous","wrapped","decryptKmsMessage","kmsResponse","decryptedKmsMessage","authorizations","bearer","catch","err","unauthorizeMediaInjector","_this16","listAuthorizations","kroUri","promises","auth","removeAuthorization","responses","version","_default","exports"],"sources":["board.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\n\nimport {WebexPlugin, Page} from '@webex/webex-core';\nimport promiseSeries from 'es6-promise-series';\nimport {assign, defaults, chunk, pick} from 'lodash';\n\nimport Realtime from './realtime';\n\nconst Board = WebexPlugin.extend({\n namespace: 'Board',\n\n children: {\n realtime: Realtime,\n },\n\n /**\n * Adds Content to a Channel\n * If contents length is greater than config.board.numberContentsPerPageForAdd, this method\n * will break contents into chunks and make multiple GET request to the\n * board service\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Array} contents - Array of {@link Board~Content} objects\n * @returns {Promise<Board~Content>}\n */\n addContent(channel, contents) {\n let chunks = [];\n\n chunks = chunk(contents, this.config.numberContentsPerPageForAdd);\n\n // we want the first promise to resolve before continuing with the next\n // chunk or else we'll have race conditions among patches\n return promiseSeries(chunks.map((part) => this._addContentChunk.bind(this, channel, part)));\n },\n\n /**\n * Adds Image to a Channel\n * Uploads image to webex files and adds SCR + downloadUrl to the persistence\n * service\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {File} image - image to be uploaded\n * @param {Object} metadata - metadata such as displayName\n * @returns {Promise<Board~Content>}\n */\n addImage(channel, image, metadata) {\n return this.webex.internal.board._uploadImage(channel, image).then((scr) =>\n this.webex.internal.board.addContent(channel, [\n {\n type: 'FILE',\n metadata,\n file: {\n mimeType: image.type,\n scr,\n size: image.size,\n url: scr.loc,\n },\n },\n ])\n );\n },\n\n /**\n * Set a snapshot image for a board\n *\n * @param {Board~Channel} channel\n * @param {File} image\n * @returns {Promise<Board~Channel>}\n */\n setSnapshotImage(channel, image) {\n let imageScr;\n\n return this.webex.internal.board\n ._uploadImage(channel, image, {hiddenSpace: true})\n .then((scr) => {\n imageScr = scr;\n\n return this.webex.internal.encryption.encryptScr(channel.defaultEncryptionKeyUrl, imageScr);\n })\n .then((encryptedScr) => {\n imageScr.encryptedScr = encryptedScr;\n\n return encryptedScr;\n })\n .then(() => {\n const imageBody = {\n image: {\n url: imageScr.loc,\n height: image.height || 900,\n width: image.width || 1600,\n mimeType: image.type || 'image/png',\n scr: imageScr.encryptedScr,\n encryptionKeyUrl: channel.defaultEncryptionKeyUrl,\n fileSize: image.size,\n },\n };\n\n return this.webex.request({\n method: 'PATCH',\n uri: channel.channelUrl,\n body: imageBody,\n });\n })\n .then((res) => res.body);\n },\n\n /**\n * Creates a Channel\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Channel>}\n */\n createChannel(conversation, channel) {\n return this.webex\n .request({\n method: 'POST',\n api: 'board',\n resource: '/channels',\n body: this._prepareChannel(conversation, channel),\n })\n .then((res) => res.body);\n },\n\n /**\n * Prepare a create request body to the board services based on the provided\n * conversation and channel.\n *\n * @param {Conversation} conversation - Conversation object.\n * @param {Channel} channel - Channel Object\n * @returns {Object} - Create channel request body.\n */\n _prepareChannel(conversation = {}, channel = {}) {\n const results = {\n aclUrlLink: conversation.aclUrl,\n kmsMessage: {\n method: 'create',\n uri: '/resources',\n userIds: [],\n keyUris: [],\n },\n ...channel,\n };\n\n if (conversation.kmsResourceObjectUrl) {\n results.kmsMessage.userIds.push(conversation.kmsResourceObjectUrl);\n }\n\n return results;\n },\n\n /**\n * Deletes a Channel from a Conversation\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Board~Channel} channel\n * @param {Object} options\n * @param {Object} options.preventDeleteActiveChannel Returns error if channel is in use\n * @returns {Promise}\n */\n deleteChannel(conversation, channel, options = {}) {\n // remove the ACL link between conversation and board\n // remove conversation auth from board KRO in kms message\n const body = {\n aclLinkType: 'INCOMING',\n linkedAcl: conversation.aclUrl,\n kmsMessage: {\n method: 'delete',\n uri: `${channel.kmsResourceUrl}/authorizations?${querystring.stringify({\n authId: conversation.kmsResourceObjectUrl,\n })}`,\n },\n aclLinkOperation: 'DELETE',\n };\n\n let promise = Promise.resolve();\n\n if (options.preventDeleteActiveChannel) {\n promise = this.lockChannelForDeletion(channel);\n }\n\n return promise\n .then(() =>\n this.webex.request({\n method: 'PUT',\n uri: `${channel.aclUrl}/links`,\n body,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Locks and marks a channel for deletion\n * If a channel is being used, it will return 409 - Conflict\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n lockChannelForDeletion(channel) {\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/lock`,\n qs: {\n intent: 'delete',\n },\n })\n .then((res) => res.body);\n },\n\n /**\n * Keeps a channel as 'active' to prevent other people from deleting it\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n keepActive(channel) {\n return this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/keepAlive`,\n });\n },\n\n /**\n * Decrypts a collection of content objects\n *\n * @memberof Board.BoardService\n * @param {Array} contents curves, text, and images\n * @returns {Promise<Array>} Resolves with an array of {@link Board~Content} objects.\n */\n decryptContents(contents) {\n return Promise.all(\n contents.items.map((content) => {\n let decryptPromise;\n\n if (content.type === 'FILE') {\n decryptPromise = this.decryptSingleFileContent(content.encryptionKeyUrl, content);\n } else {\n decryptPromise = this.decryptSingleContent(content.encryptionKeyUrl, content.payload);\n }\n\n return decryptPromise.then((res) => {\n Reflect.deleteProperty(content, 'payload');\n Reflect.deleteProperty(content, 'encryptionKeyUrl');\n\n return defaults(res, content);\n });\n })\n );\n },\n\n /**\n * Decryts a single STRING content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {string} encryptedData\n * @returns {Promise<Board~Content>}\n */\n decryptSingleContent(encryptionKeyUrl, encryptedData) {\n return this.webex.internal.encryption\n .decryptText(encryptionKeyUrl, encryptedData)\n .then((res) => JSON.parse(res));\n },\n\n /**\n * Decryts a single FILE content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {object} encryptedContent {file, payload}\n * @returns {Promise<Board~Content>}\n */\n decryptSingleFileContent(encryptionKeyUrl, encryptedContent) {\n let metadata;\n\n if (encryptedContent.payload) {\n metadata = encryptedContent.payload;\n }\n\n return this.webex.internal.encryption\n .decryptScr(encryptionKeyUrl, encryptedContent.file.scr)\n .then((scr) => {\n encryptedContent.file.scr = scr;\n if (metadata) {\n return this.webex.internal.encryption.decryptText(encryptionKeyUrl, metadata);\n }\n\n return '';\n })\n .then((decryptedMetadata) => {\n try {\n encryptedContent.metadata = JSON.parse(decryptedMetadata);\n if (encryptedContent.metadata.displayName) {\n encryptedContent.displayName = encryptedContent.metadata.displayName;\n }\n } catch (error) {\n encryptedContent.metadata = {};\n }\n\n return encryptedContent;\n });\n },\n\n /**\n * Deletes all Content from a Channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise} Resolves with an content response\n */\n deleteAllContent(channel) {\n return this.webex\n .request({\n method: 'DELETE',\n uri: `${channel.channelUrl}/contents`,\n })\n .then((res) => res.body);\n },\n\n /**\n * Deletes Contents from a Channel except the ones listed in contentsToKeep\n *\n * THIS API HAS CHANGED!!! SEE SPARK-412694. NEEDS UPDATING.\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Array<Board~Content>} contentsToKeep Array of board objects (curves, text, and images) with valid contentId (received from server)\n * @returns {Promise} Resolves with an content response\n */\n deletePartialContent(channel, contentsToKeep) {\n const body = contentsToKeep.map((content) => pick(content, 'contentId'));\n\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/contents`,\n body,\n qs: {\n clearBoard: true,\n },\n })\n .then((res) => res.body);\n },\n\n /**\n * Encrypts a collection of content\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl channel.defaultEncryptionKeyUrl\n * @param {Array} contents Array of {@link Board~Content} objects. (curves, text, and images)\n * @returns {Promise<Array>} Resolves with an array of encrypted {@link Board~Content} objects.\n */\n encryptContents(encryptionKeyUrl, contents) {\n return Promise.all(\n contents.map((content) => {\n let encryptionPromise;\n let contentType = 'STRING';\n\n // the existence of an scr will determine if the content is a FILE.\n if (content.file) {\n contentType = 'FILE';\n encryptionPromise = this.encryptSingleFileContent(encryptionKeyUrl, content);\n } else {\n encryptionPromise = this.encryptSingleContent(encryptionKeyUrl, content);\n }\n\n return encryptionPromise.then((res) =>\n assign(\n {\n device: this.webex.internal.device.deviceType,\n type: contentType,\n encryptionKeyUrl,\n },\n pick(res, 'file', 'payload')\n )\n );\n })\n );\n },\n\n /**\n * Encrypts a single STRING content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {Board~Content} content\n * @returns {Promise<Board~Content>}\n */\n encryptSingleContent(encryptionKeyUrl, content) {\n return this.webex.internal.encryption\n .encryptText(encryptionKeyUrl, JSON.stringify(content))\n .then((res) => ({\n payload: res,\n encryptionKeyUrl,\n }));\n },\n\n /**\n * Encrypts a single FILE content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {Board~Content} content\n * @returns {Promise<Board~Content>}\n */\n encryptSingleFileContent(encryptionKeyUrl, content) {\n return this.webex.internal.encryption\n .encryptScr(encryptionKeyUrl, content.file.scr)\n .then((encryptedScr) => {\n content.file.scr = encryptedScr;\n if (content.displayName) {\n content.metadata = assign(content.metadata, {displayName: content.displayName});\n }\n if (content.metadata) {\n return this.webex.internal.encryption\n .encryptText(encryptionKeyUrl, JSON.stringify(content.metadata))\n .then((encryptedMetadata) => {\n content.metadata = encryptedMetadata;\n });\n }\n\n return content;\n })\n .then(() => ({\n file: content.file,\n payload: content.metadata,\n encryptionKeyUrl,\n }));\n },\n\n /**\n * Retrieves contents from a specified channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Object} options\n * @param {Object} options.qs\n * @returns {Promise<Page<Board~Channel>>} Resolves with an array of Content items\n */\n getContents(channel, options) {\n options = options || {};\n\n const params = {\n uri: `${channel.channelUrl}/contents`,\n qs: {\n contentsLimit: this.config.numberContentsPerPageForGet,\n },\n };\n\n assign(params.qs, pick(options, 'contentsLimit'));\n\n return this.request(params).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Gets a Channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Channel>}\n */\n getChannel(channel) {\n return this.webex\n .request({\n method: 'GET',\n uri: channel.channelUrl,\n })\n .then((res) => res.body);\n },\n\n /**\n * Gets Channels\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Object} options\n * @param {number} options.channelsLimit number of boards to return per page\n * @param {number} options.type type of whiteboard: whiteboard or annotated\n * @returns {Promise<Page<Board~Channel>>} Resolves with an array of Channel items\n */\n getChannels(conversation, options) {\n options = options || {};\n\n if (!conversation) {\n return Promise.reject(new Error('`conversation` is required'));\n }\n\n const params = {\n api: 'board',\n resource: '/channels',\n qs: {\n aclUrlLink: conversation.aclUrl,\n },\n };\n\n assign(params.qs, pick(options, 'channelsLimit', 'type'));\n\n return this.request(params).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Pings persistence\n * @memberof Board.BoardService\n * @returns {Promise<Object>} ping response body\n */\n ping() {\n return this.webex\n .request({\n method: 'GET',\n api: 'board',\n resource: '/ping',\n })\n .then((res) => res.body);\n },\n\n processActivityEvent(message) {\n let decryptionPromise;\n\n if (message.contentType === 'FILE') {\n decryptionPromise = this.decryptSingleFileContent(\n message.envelope.encryptionKeyUrl,\n message.payload\n );\n } else {\n decryptionPromise = this.decryptSingleContent(\n message.envelope.encryptionKeyUrl,\n message.payload\n );\n }\n\n return decryptionPromise.then((decryptedData) => {\n // call the event handlers\n message.payload = decryptedData;\n\n return message;\n });\n },\n\n /**\n * Registers with Mercury\n * @memberof Board.BoardService\n * @param {Object} data - Mercury bindings\n * @returns {Promise<Board~Registration>}\n */\n register(data) {\n return this.webex\n .request({\n method: 'POST',\n api: 'board',\n resource: '/registrations',\n body: data,\n })\n .then((res) => res.body);\n },\n\n /**\n * Registers with Mercury for sharing web socket\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n registerToShareMercury(channel) {\n return this.webex.internal.feature\n .getFeature('developer', 'web-shared-mercury')\n .then((isSharingMercuryFeatureEnabled) => {\n if (!this.webex.internal.mercury.localClusterServiceUrls) {\n return Promise.reject(\n new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected')\n );\n }\n if (!isSharingMercuryFeatureEnabled) {\n return Promise.reject(new Error('`web-shared-mercury` is not enabled'));\n }\n\n const {webSocketUrl} = this.webex.internal.device;\n const {mercuryConnectionServiceClusterUrl} =\n this.webex.internal.mercury.localClusterServiceUrls;\n\n const data = {\n mercuryConnectionServiceClusterUrl,\n webSocketUrl,\n action: 'ADD',\n };\n\n return this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/register`,\n body: data,\n });\n })\n .then((res) => res.body);\n },\n\n /**\n * Remove board binding from existing mercury connection\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {String} binding - the binding as provided in board registration\n * @returns {Promise<Board~Registration>}\n */\n unregisterFromSharedMercury(channel, binding) {\n const {webSocketUrl} = this.webex.internal.device;\n const data = {\n binding,\n webSocketUrl,\n action: 'REMOVE',\n };\n\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/register`,\n body: data,\n })\n .then((res) => res.body);\n },\n\n _addContentChunk(channel, contentChunk) {\n return this.webex.internal.board\n .encryptContents(channel.defaultEncryptionKeyUrl, contentChunk)\n .then((res) =>\n this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/contents`,\n body: res,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Encrypts and uploads image to WebexFiles\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {File} file - File to be uploaded\n * @param {Object} options\n * @param {Object} options.hiddenSpace - true for hidden, false for open space\n * @private\n * @returns {Object} Encrypted Scr and KeyUrl\n */\n _uploadImage(channel, file, options) {\n options = options || {};\n\n return this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) =>\n Promise.all([scr, this._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)])\n )\n .then(([scr, res]) => assign(scr, {loc: res.downloadUrl}));\n },\n\n _getSpaceUrl(channel, hiddenSpace) {\n let requestUri = `${channel.channelUrl}/spaces/open`;\n\n if (hiddenSpace) {\n requestUri = `${channel.channelUrl}/spaces/hidden`;\n }\n\n return this.webex\n .request({\n method: 'PUT',\n uri: requestUri,\n })\n .then((res) => res.body.spaceUrl);\n },\n\n _uploadImageToWebexFiles(channel, file, hiddenSpace) {\n const fileSize = file.length || file.size || file.byteLength;\n\n return this._getSpaceUrl(channel, hiddenSpace).then((spaceUrl) =>\n this.webex.upload({\n uri: `${spaceUrl}/upload_sessions`,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {fileSize},\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize},\n },\n },\n })\n );\n },\n\n /** Authorize transcoder (for sharing whiteboard to mobile)\n *\n * @param {Board~Channel} board\n * @memberof Board.BoardService\n * @returns {String} authorization\n */\n authorizeMediaInjector(board) {\n if (!board) {\n Promise.reject(\n new Error('#authorizeMediaInjector --> cannot authorize transcoder without board')\n );\n }\n\n return this.webex.internal.encryption.kms\n .prepareRequest({\n method: 'create',\n uri: '/authorizations',\n resourceUri: board.kmsResourceUrl,\n anonymous: 1,\n })\n .then((request) =>\n this.webex.request({\n uri: `${board.channelUrl}/sharePolicies/transcoder`,\n method: 'PUT',\n body: {kmsMessage: request.wrapped},\n })\n )\n .then((res) => this.webex.internal.encryption.kms.decryptKmsMessage(res.body.kmsResponse))\n .then((decryptedKmsMessage) => {\n if (decryptedKmsMessage?.authorizations.length > 0) {\n return decryptedKmsMessage.authorizations[0].bearer;\n }\n\n return undefined;\n })\n .catch((err) =>\n /* We want to resolve any errors so that whiteboard share will still work\n * except mobile being able to receive the share\n */\n Promise.resolve(err)\n );\n },\n\n /** Unauthorize transcoder (for stopping whiteboard share to mobile)\n *\n * @param {Board~Channel} board\n * @memberof Board.BoardService\n * @returns {Array} list of authIds removed\n */\n unauthorizeMediaInjector(board) {\n if (!board) {\n Promise.reject(\n new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board')\n );\n }\n\n return this.webex.internal.encryption.kms\n .listAuthorizations({\n kroUri: board.kmsResourceUrl,\n })\n .then((authorizations) => {\n /* Attempt to remove the authorization made from starting whiteboard share\n * Also removing any previous authorizations that were not cleared\n */\n const promises = authorizations.map((auth) => {\n const {authId} = auth;\n\n return this.webex.internal.encryption.kms\n .removeAuthorization({\n authId,\n kroUri: board.kmsResourceUrl,\n })\n .then(() => Promise.resolve(authId))\n .catch((err) =>\n /* We don't want this to error out, otherwise the\n * Promise.all will not process the rest of the request\n */\n Promise.resolve(err)\n );\n });\n\n if (promises.length > 0) {\n return Promise.all(promises).then((responses) => responses);\n }\n\n return Promise.resolve([]);\n });\n },\n});\n\nexport default Board;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_querystring","_interopRequireDefault","require","_webexCore","_es6PromiseSeries","_lodash","_realtime","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Board","WebexPlugin","extend","namespace","children","realtime","Realtime","addContent","channel","contents","_this","chunks","chunk","config","numberContentsPerPageForAdd","promiseSeries","map","part","_addContentChunk","bind","addImage","image","metadata","_this2","webex","internal","board","_uploadImage","then","scr","type","file","mimeType","size","url","loc","setSnapshotImage","_this3","imageScr","hiddenSpace","encryption","encryptScr","defaultEncryptionKeyUrl","encryptedScr","imageBody","height","width","encryptionKeyUrl","fileSize","request","method","uri","channelUrl","body","res","createChannel","conversation","api","resource","_prepareChannel","undefined","results","aclUrlLink","aclUrl","kmsMessage","userIds","keyUris","kmsResourceObjectUrl","deleteChannel","_this4","options","aclLinkType","linkedAcl","concat","kmsResourceUrl","querystring","stringify","authId","aclLinkOperation","promise","_promise","resolve","preventDeleteActiveChannel","lockChannelForDeletion","qs","intent","keepActive","decryptContents","_this5","all","items","content","decryptPromise","decryptSingleFileContent","decryptSingleContent","payload","_deleteProperty","defaults","encryptedData","decryptText","JSON","parse","encryptedContent","_this6","decryptScr","decryptedMetadata","displayName","error","deleteAllContent","deletePartialContent","contentsToKeep","pick","clearBoard","encryptContents","_this7","encryptionPromise","contentType","encryptSingleFileContent","encryptSingleContent","assign","device","deviceType","encryptText","_stringify","_this8","encryptedMetadata","getContents","_this9","params","contentsLimit","numberContentsPerPageForGet","Page","getChannel","getChannels","_this0","reject","Error","ping","processActivityEvent","message","decryptionPromise","envelope","decryptedData","register","data","registerToShareMercury","_this1","feature","getFeature","isSharingMercuryFeatureEnabled","mercury","localClusterServiceUrls","webSocketUrl","mercuryConnectionServiceClusterUrl","action","unregisterFromSharedMercury","binding","contentChunk","_this10","_this11","encryptBinary","_ref","cdata","_uploadImageToWebexFiles","_ref2","_ref3","_slicedToArray2","downloadUrl","_getSpaceUrl","requestUri","spaceUrl","_this12","byteLength","upload","transcode","phases","initialize","$url","session","uploadUrl","finalize","$uri","finishUploadUrl","authorizeMediaInjector","_this13","kms","prepareRequest","resourceUri","anonymous","wrapped","decryptKmsMessage","kmsResponse","decryptedKmsMessage","authorizations","bearer","catch","err","unauthorizeMediaInjector","_this14","listAuthorizations","kroUri","promises","auth","removeAuthorization","responses","version","_default","exports"],"sources":["board.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\n\nimport {WebexPlugin, Page} from '@webex/webex-core';\nimport promiseSeries from 'es6-promise-series';\nimport {assign, defaults, chunk, pick} from 'lodash';\n\nimport Realtime from './realtime';\n\nconst Board = WebexPlugin.extend({\n namespace: 'Board',\n\n children: {\n realtime: Realtime,\n },\n\n /**\n * Adds Content to a Channel\n * If contents length is greater than config.board.numberContentsPerPageForAdd, this method\n * will break contents into chunks and make multiple GET request to the\n * board service\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Array} contents - Array of {@link Board~Content} objects\n * @returns {Promise<Board~Content>}\n */\n addContent(channel, contents) {\n let chunks = [];\n\n chunks = chunk(contents, this.config.numberContentsPerPageForAdd);\n\n // we want the first promise to resolve before continuing with the next\n // chunk or else we'll have race conditions among patches\n return promiseSeries(chunks.map((part) => this._addContentChunk.bind(this, channel, part)));\n },\n\n /**\n * Adds Image to a Channel\n * Uploads image to webex files and adds SCR + downloadUrl to the persistence\n * service\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {File} image - image to be uploaded\n * @param {Object} metadata - metadata such as displayName\n * @returns {Promise<Board~Content>}\n */\n addImage(channel, image, metadata) {\n return this.webex.internal.board._uploadImage(channel, image).then((scr) =>\n this.webex.internal.board.addContent(channel, [\n {\n type: 'FILE',\n metadata,\n file: {\n mimeType: image.type,\n scr,\n size: image.size,\n url: scr.loc,\n },\n },\n ])\n );\n },\n\n /**\n * Set a snapshot image for a board\n *\n * @param {Board~Channel} channel\n * @param {File} image\n * @returns {Promise<Board~Channel>}\n */\n setSnapshotImage(channel, image) {\n let imageScr;\n\n return this.webex.internal.board\n ._uploadImage(channel, image, {hiddenSpace: true})\n .then((scr) => {\n imageScr = scr;\n\n return this.webex.internal.encryption.encryptScr(channel.defaultEncryptionKeyUrl, imageScr);\n })\n .then((encryptedScr) => {\n imageScr.encryptedScr = encryptedScr;\n\n return encryptedScr;\n })\n .then(() => {\n const imageBody = {\n image: {\n url: imageScr.loc,\n height: image.height || 900,\n width: image.width || 1600,\n mimeType: image.type || 'image/png',\n scr: imageScr.encryptedScr,\n encryptionKeyUrl: channel.defaultEncryptionKeyUrl,\n fileSize: image.size,\n },\n };\n\n return this.webex.request({\n method: 'PATCH',\n uri: channel.channelUrl,\n body: imageBody,\n });\n })\n .then((res) => res.body);\n },\n\n /**\n * Creates a Channel\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Channel>}\n */\n createChannel(conversation, channel) {\n return this.webex\n .request({\n method: 'POST',\n api: 'board',\n resource: '/channels',\n body: this._prepareChannel(conversation, channel),\n })\n .then((res) => res.body);\n },\n\n /**\n * Prepare a create request body to the board services based on the provided\n * conversation and channel.\n *\n * @param {Conversation} conversation - Conversation object.\n * @param {Channel} channel - Channel Object\n * @returns {Object} - Create channel request body.\n */\n _prepareChannel(conversation = {}, channel = {}) {\n const results = {\n aclUrlLink: conversation.aclUrl,\n kmsMessage: {\n method: 'create',\n uri: '/resources',\n userIds: [],\n keyUris: [],\n },\n ...channel,\n };\n\n if (conversation.kmsResourceObjectUrl) {\n results.kmsMessage.userIds.push(conversation.kmsResourceObjectUrl);\n }\n\n return results;\n },\n\n /**\n * Deletes a Channel from a Conversation\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Board~Channel} channel\n * @param {Object} options\n * @param {Object} options.preventDeleteActiveChannel Returns error if channel is in use\n * @returns {Promise}\n */\n deleteChannel(conversation, channel, options = {}) {\n // remove the ACL link between conversation and board\n // remove conversation auth from board KRO in kms message\n const body = {\n aclLinkType: 'INCOMING',\n linkedAcl: conversation.aclUrl,\n kmsMessage: {\n method: 'delete',\n uri: `${channel.kmsResourceUrl}/authorizations?${querystring.stringify({\n authId: conversation.kmsResourceObjectUrl,\n })}`,\n },\n aclLinkOperation: 'DELETE',\n };\n\n let promise = Promise.resolve();\n\n if (options.preventDeleteActiveChannel) {\n promise = this.lockChannelForDeletion(channel);\n }\n\n return promise\n .then(() =>\n this.webex.request({\n method: 'PUT',\n uri: `${channel.aclUrl}/links`,\n body,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Locks and marks a channel for deletion\n * If a channel is being used, it will return 409 - Conflict\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n lockChannelForDeletion(channel) {\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/lock`,\n qs: {\n intent: 'delete',\n },\n })\n .then((res) => res.body);\n },\n\n /**\n * Keeps a channel as 'active' to prevent other people from deleting it\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n keepActive(channel) {\n return this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/keepAlive`,\n });\n },\n\n /**\n * Decrypts a collection of content objects\n *\n * @memberof Board.BoardService\n * @param {Array} contents curves, text, and images\n * @returns {Promise<Array>} Resolves with an array of {@link Board~Content} objects.\n */\n decryptContents(contents) {\n return Promise.all(\n contents.items.map((content) => {\n let decryptPromise;\n\n if (content.type === 'FILE') {\n decryptPromise = this.decryptSingleFileContent(content.encryptionKeyUrl, content);\n } else {\n decryptPromise = this.decryptSingleContent(content.encryptionKeyUrl, content.payload);\n }\n\n return decryptPromise.then((res) => {\n Reflect.deleteProperty(content, 'payload');\n Reflect.deleteProperty(content, 'encryptionKeyUrl');\n\n return defaults(res, content);\n });\n })\n );\n },\n\n /**\n * Decryts a single STRING content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {string} encryptedData\n * @returns {Promise<Board~Content>}\n */\n decryptSingleContent(encryptionKeyUrl, encryptedData) {\n return this.webex.internal.encryption\n .decryptText(encryptionKeyUrl, encryptedData)\n .then((res) => JSON.parse(res));\n },\n\n /**\n * Decryts a single FILE content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {object} encryptedContent {file, payload}\n * @returns {Promise<Board~Content>}\n */\n decryptSingleFileContent(encryptionKeyUrl, encryptedContent) {\n let metadata;\n\n if (encryptedContent.payload) {\n metadata = encryptedContent.payload;\n }\n\n return this.webex.internal.encryption\n .decryptScr(encryptionKeyUrl, encryptedContent.file.scr)\n .then((scr) => {\n encryptedContent.file.scr = scr;\n if (metadata) {\n return this.webex.internal.encryption.decryptText(encryptionKeyUrl, metadata);\n }\n\n return '';\n })\n .then((decryptedMetadata) => {\n try {\n encryptedContent.metadata = JSON.parse(decryptedMetadata);\n if (encryptedContent.metadata.displayName) {\n encryptedContent.displayName = encryptedContent.metadata.displayName;\n }\n } catch (error) {\n encryptedContent.metadata = {};\n }\n\n return encryptedContent;\n });\n },\n\n /**\n * Deletes all Content from a Channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise} Resolves with an content response\n */\n deleteAllContent(channel) {\n return this.webex\n .request({\n method: 'DELETE',\n uri: `${channel.channelUrl}/contents`,\n })\n .then((res) => res.body);\n },\n\n /**\n * Deletes Contents from a Channel except the ones listed in contentsToKeep\n *\n * THIS API HAS CHANGED!!! SEE SPARK-412694. NEEDS UPDATING.\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Array<Board~Content>} contentsToKeep Array of board objects (curves, text, and images) with valid contentId (received from server)\n * @returns {Promise} Resolves with an content response\n */\n deletePartialContent(channel, contentsToKeep) {\n const body = contentsToKeep.map((content) => pick(content, 'contentId'));\n\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/contents`,\n body,\n qs: {\n clearBoard: true,\n },\n })\n .then((res) => res.body);\n },\n\n /**\n * Encrypts a collection of content\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl channel.defaultEncryptionKeyUrl\n * @param {Array} contents Array of {@link Board~Content} objects. (curves, text, and images)\n * @returns {Promise<Array>} Resolves with an array of encrypted {@link Board~Content} objects.\n */\n encryptContents(encryptionKeyUrl, contents) {\n return Promise.all(\n contents.map((content) => {\n let encryptionPromise;\n let contentType = 'STRING';\n\n // the existence of an scr will determine if the content is a FILE.\n if (content.file) {\n contentType = 'FILE';\n encryptionPromise = this.encryptSingleFileContent(encryptionKeyUrl, content);\n } else {\n encryptionPromise = this.encryptSingleContent(encryptionKeyUrl, content);\n }\n\n return encryptionPromise.then((res) =>\n assign(\n {\n device: this.webex.internal.device.deviceType,\n type: contentType,\n encryptionKeyUrl,\n },\n pick(res, 'file', 'payload')\n )\n );\n })\n );\n },\n\n /**\n * Encrypts a single STRING content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {Board~Content} content\n * @returns {Promise<Board~Content>}\n */\n encryptSingleContent(encryptionKeyUrl, content) {\n return this.webex.internal.encryption\n .encryptText(encryptionKeyUrl, JSON.stringify(content))\n .then((res) => ({\n payload: res,\n encryptionKeyUrl,\n }));\n },\n\n /**\n * Encrypts a single FILE content object\n * @memberof Board.BoardService\n * @param {string} encryptionKeyUrl\n * @param {Board~Content} content\n * @returns {Promise<Board~Content>}\n */\n encryptSingleFileContent(encryptionKeyUrl, content) {\n return this.webex.internal.encryption\n .encryptScr(encryptionKeyUrl, content.file.scr)\n .then((encryptedScr) => {\n content.file.scr = encryptedScr;\n if (content.displayName) {\n content.metadata = assign(content.metadata, {displayName: content.displayName});\n }\n if (content.metadata) {\n return this.webex.internal.encryption\n .encryptText(encryptionKeyUrl, JSON.stringify(content.metadata))\n .then((encryptedMetadata) => {\n content.metadata = encryptedMetadata;\n });\n }\n\n return content;\n })\n .then(() => ({\n file: content.file,\n payload: content.metadata,\n encryptionKeyUrl,\n }));\n },\n\n /**\n * Retrieves contents from a specified channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {Object} options\n * @param {Object} options.qs\n * @returns {Promise<Page<Board~Channel>>} Resolves with an array of Content items\n */\n getContents(channel, options) {\n options = options || {};\n\n const params = {\n uri: `${channel.channelUrl}/contents`,\n qs: {\n contentsLimit: this.config.numberContentsPerPageForGet,\n },\n };\n\n assign(params.qs, pick(options, 'contentsLimit'));\n\n return this.request(params).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Gets a Channel\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Channel>}\n */\n getChannel(channel) {\n return this.webex\n .request({\n method: 'GET',\n uri: channel.channelUrl,\n })\n .then((res) => res.body);\n },\n\n /**\n * Gets Channels\n * @memberof Board.BoardService\n * @param {Conversation~ConversationObject} conversation\n * @param {Object} options\n * @param {number} options.channelsLimit number of boards to return per page\n * @param {number} options.type type of whiteboard: whiteboard or annotated\n * @returns {Promise<Page<Board~Channel>>} Resolves with an array of Channel items\n */\n getChannels(conversation, options) {\n options = options || {};\n\n if (!conversation) {\n return Promise.reject(new Error('`conversation` is required'));\n }\n\n const params = {\n api: 'board',\n resource: '/channels',\n qs: {\n aclUrlLink: conversation.aclUrl,\n },\n };\n\n assign(params.qs, pick(options, 'channelsLimit', 'type'));\n\n return this.request(params).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Pings persistence\n * @memberof Board.BoardService\n * @returns {Promise<Object>} ping response body\n */\n ping() {\n return this.webex\n .request({\n method: 'GET',\n api: 'board',\n resource: '/ping',\n })\n .then((res) => res.body);\n },\n\n processActivityEvent(message) {\n let decryptionPromise;\n\n if (message.contentType === 'FILE') {\n decryptionPromise = this.decryptSingleFileContent(\n message.envelope.encryptionKeyUrl,\n message.payload\n );\n } else {\n decryptionPromise = this.decryptSingleContent(\n message.envelope.encryptionKeyUrl,\n message.payload\n );\n }\n\n return decryptionPromise.then((decryptedData) => {\n // call the event handlers\n message.payload = decryptedData;\n\n return message;\n });\n },\n\n /**\n * Registers with Mercury\n * @memberof Board.BoardService\n * @param {Object} data - Mercury bindings\n * @returns {Promise<Board~Registration>}\n */\n register(data) {\n return this.webex\n .request({\n method: 'POST',\n api: 'board',\n resource: '/registrations',\n body: data,\n })\n .then((res) => res.body);\n },\n\n /**\n * Registers with Mercury for sharing web socket\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n registerToShareMercury(channel) {\n return this.webex.internal.feature\n .getFeature('developer', 'web-shared-mercury')\n .then((isSharingMercuryFeatureEnabled) => {\n if (!this.webex.internal.mercury.localClusterServiceUrls) {\n return Promise.reject(\n new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected')\n );\n }\n if (!isSharingMercuryFeatureEnabled) {\n return Promise.reject(new Error('`web-shared-mercury` is not enabled'));\n }\n\n const {webSocketUrl} = this.webex.internal.device;\n const {mercuryConnectionServiceClusterUrl} =\n this.webex.internal.mercury.localClusterServiceUrls;\n\n const data = {\n mercuryConnectionServiceClusterUrl,\n webSocketUrl,\n action: 'ADD',\n };\n\n return this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/register`,\n body: data,\n });\n })\n .then((res) => res.body);\n },\n\n /**\n * Remove board binding from existing mercury connection\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {String} binding - the binding as provided in board registration\n * @returns {Promise<Board~Registration>}\n */\n unregisterFromSharedMercury(channel, binding) {\n const {webSocketUrl} = this.webex.internal.device;\n const data = {\n binding,\n webSocketUrl,\n action: 'REMOVE',\n };\n\n return this.webex\n .request({\n method: 'POST',\n uri: `${channel.channelUrl}/register`,\n body: data,\n })\n .then((res) => res.body);\n },\n\n _addContentChunk(channel, contentChunk) {\n return this.webex.internal.board\n .encryptContents(channel.defaultEncryptionKeyUrl, contentChunk)\n .then((res) =>\n this.webex.request({\n method: 'POST',\n uri: `${channel.channelUrl}/contents`,\n body: res,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Encrypts and uploads image to WebexFiles\n * @memberof Board.BoardService\n * @param {Board~Channel} channel\n * @param {File} file - File to be uploaded\n * @param {Object} options\n * @param {Object} options.hiddenSpace - true for hidden, false for open space\n * @private\n * @returns {Object} Encrypted Scr and KeyUrl\n */\n _uploadImage(channel, file, options) {\n options = options || {};\n\n return this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) =>\n Promise.all([scr, this._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)])\n )\n .then(([scr, res]) => assign(scr, {loc: res.downloadUrl}));\n },\n\n _getSpaceUrl(channel, hiddenSpace) {\n let requestUri = `${channel.channelUrl}/spaces/open`;\n\n if (hiddenSpace) {\n requestUri = `${channel.channelUrl}/spaces/hidden`;\n }\n\n return this.webex\n .request({\n method: 'PUT',\n uri: requestUri,\n })\n .then((res) => res.body.spaceUrl);\n },\n\n _uploadImageToWebexFiles(channel, file, hiddenSpace) {\n const fileSize = file.length || file.size || file.byteLength;\n\n return this._getSpaceUrl(channel, hiddenSpace).then((spaceUrl) =>\n this.webex.upload({\n uri: `${spaceUrl}/upload_sessions`,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {fileSize},\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize},\n },\n },\n })\n );\n },\n\n /** Authorize transcoder (for sharing whiteboard to mobile)\n *\n * @param {Board~Channel} board\n * @memberof Board.BoardService\n * @returns {String} authorization\n */\n authorizeMediaInjector(board) {\n if (!board) {\n Promise.reject(\n new Error('#authorizeMediaInjector --> cannot authorize transcoder without board')\n );\n }\n\n return this.webex.internal.encryption.kms\n .prepareRequest({\n method: 'create',\n uri: '/authorizations',\n resourceUri: board.kmsResourceUrl,\n anonymous: 1,\n })\n .then((request) =>\n this.webex.request({\n uri: `${board.channelUrl}/sharePolicies/transcoder`,\n method: 'PUT',\n body: {kmsMessage: request.wrapped},\n })\n )\n .then((res) => this.webex.internal.encryption.kms.decryptKmsMessage(res.body.kmsResponse))\n .then((decryptedKmsMessage) => {\n if (decryptedKmsMessage?.authorizations.length > 0) {\n return decryptedKmsMessage.authorizations[0].bearer;\n }\n\n return undefined;\n })\n .catch((err) =>\n /* We want to resolve any errors so that whiteboard share will still work\n * except mobile being able to receive the share\n */\n Promise.resolve(err)\n );\n },\n\n /** Unauthorize transcoder (for stopping whiteboard share to mobile)\n *\n * @param {Board~Channel} board\n * @memberof Board.BoardService\n * @returns {Array} list of authIds removed\n */\n unauthorizeMediaInjector(board) {\n if (!board) {\n Promise.reject(\n new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board')\n );\n }\n\n return this.webex.internal.encryption.kms\n .listAuthorizations({\n kroUri: board.kmsResourceUrl,\n })\n .then((authorizations) => {\n /* Attempt to remove the authorization made from starting whiteboard share\n * Also removing any previous authorizations that were not cleared\n */\n const promises = authorizations.map((auth) => {\n const {authId} = auth;\n\n return this.webex.internal.encryption.kms\n .removeAuthorization({\n authId,\n kroUri: board.kmsResourceUrl,\n })\n .then(() => Promise.resolve(authId))\n .catch((err) =>\n /* We don't want this to error out, otherwise the\n * Promise.all will not process the rest of the request\n */\n Promise.resolve(err)\n );\n });\n\n if (promises.length > 0) {\n return Promise.all(promises).then((responses) => responses);\n }\n\n return Promise.resolve([]);\n });\n },\n});\n\nexport default Board;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_default","exports","default","board","numberContentsPerPageForAdd","numberContentsPerPageForGet","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY","mercuryBindingPrefix"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n board: {\n /**\n * Number of contents per batch when adding contents to a channel\n * @type {number}\n */\n numberContentsPerPageForAdd: 150,\n\n /**\n * Number of contents per batch when getting contents from a channel\n * @type {number}\n */\n numberContentsPerPageForGet: 1000,\n\n /**\n * Milliseconds between pings sent up the socket\n * @type {number}\n */\n pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,\n\n /**\n * Milliseconds to wait for a pong before declaring the connection dead\n * @type {number}\n */\n pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,\n\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * @type {[type]}\n */\n forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,\n\n /**\n * The prefix for board binding when open a new socket connection\n * @type {string}\n */\n mercuryBindingPrefix: 'board.',\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,KAAK,EAAE;IACL;AACJ;AACA;AACA;IACIC,2BAA2B,EAAE,GAAG;IAEhC;AACJ;AACA;AACA;IACIC,2BAA2B,EAAE,IAAI;IAEjC;AACJ;AACA;AACA;IACIC,YAAY,EAAEC,OAAO,CAACC,GAAG,CAACC,qBAAqB,IAAI,KAAK;IAExD;AACJ;AACA;AACA;IACIC,WAAW,EAAEH,OAAO,CAACC,GAAG,CAACG,oBAAoB,IAAI,KAAK;IAEtD;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAEL,OAAO,CAACC,GAAG,CAACK,yBAAyB,IAAI,IAAI;IAE9D;AACJ;AACA;AACA;IACIC,oBAAoB,EAAE;EACxB;AACF,CAAC"}
1
+ {"version":3,"names":["_default","exports","default","board","numberContentsPerPageForAdd","numberContentsPerPageForGet","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY","mercuryBindingPrefix"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n board: {\n /**\n * Number of contents per batch when adding contents to a channel\n * @type {number}\n */\n numberContentsPerPageForAdd: 150,\n\n /**\n * Number of contents per batch when getting contents from a channel\n * @type {number}\n */\n numberContentsPerPageForGet: 1000,\n\n /**\n * Milliseconds between pings sent up the socket\n * @type {number}\n */\n pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,\n\n /**\n * Milliseconds to wait for a pong before declaring the connection dead\n * @type {number}\n */\n pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,\n\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * @type {[type]}\n */\n forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,\n\n /**\n * The prefix for board binding when open a new socket connection\n * @type {string}\n */\n mercuryBindingPrefix: 'board.',\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,KAAK,EAAE;IACL;AACJ;AACA;AACA;IACIC,2BAA2B,EAAE,GAAG;IAEhC;AACJ;AACA;AACA;IACIC,2BAA2B,EAAE,IAAI;IAEjC;AACJ;AACA;AACA;IACIC,YAAY,EAAEC,OAAO,CAACC,GAAG,CAACC,qBAAqB,IAAI,KAAK;IAExD;AACJ;AACA;AACA;IACIC,WAAW,EAAEH,OAAO,CAACC,GAAG,CAACG,oBAAoB,IAAI,KAAK;IAEtD;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAEL,OAAO,CAACC,GAAG,CAACK,yBAAyB,IAAI,IAAI;IAE9D;AACJ;AACA;AACA;IACIC,oBAAoB,EAAE;EACxB;AACF,CAAC","ignoreList":[]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_webexCore","_lodash","_board","_interopRequireDefault","_realtimeChannel","_config","registerInternalPlugin","Board","config","payloadTransformer","predicates","name","direction","test","ctx","options","has","body","items","length","_promise","default","resolve","get","extract","service","webex","internal","services","getServiceFromUrl","uri","transforms","fn","object","board","decryptContents","then","decryptedContents","direciton","encryption","kms","createUnboundKeys","count","keys","key","defaultEncryptionKeyUrl","kmsMessage","keyUris","push","transform"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-mercury';\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-feature';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has, get} from 'lodash';\n\nimport Board from './board';\nimport RealtimeChannel from './realtime-channel';\nimport config from './config';\n\nregisterInternalPlugin('board', Board, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptContents',\n direction: 'inbound',\n\n test(ctx, options) {\n // we must have items\n if (!has(options, 'body.items') || options.body.items.length === 0) {\n return Promise.resolve(false);\n }\n\n // we must have a contentId\n if (!get(options, 'body.items[0].contentId')) {\n return Promise.resolve(false);\n }\n\n // we must have a encryptionKeyUrl\n /* istanbul ignore if */\n if (!get(options, 'body.items[0].encryptionKeyUrl')) {\n return Promise.resolve(false);\n }\n\n // we must have a payload or file\n /* istanbul ignore if */\n if (!get(options, 'body.items[0].payload') && !get(options, 'body.items[0].file')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n {\n name: 'encryptChannel',\n direction: 'outbound',\n\n test(ctx, options) {\n const service = ctx.webex.internal.services.getServiceFromUrl(options.uri);\n\n if (service && service.name === 'board' && has(options, 'body.aclUrlLink')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n ],\n transforms: [\n {\n name: 'decryptContents',\n direction: 'inbound',\n\n fn(ctx, object) {\n return ctx.webex.internal.board.decryptContents(object).then((decryptedContents) => {\n object.items = decryptedContents;\n });\n },\n },\n {\n name: 'encryptChannel',\n direciton: 'outbound',\n fn(ctx, object) {\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = keys[0];\n\n object.defaultEncryptionKeyUrl = key.uri;\n object.kmsMessage.keyUris.push(key.uri);\n\n return ctx.transform('encryptKmsMessage', object);\n });\n },\n },\n ],\n },\n});\n\nexport {default} from './board';\nexport {config};\nexport {RealtimeChannel};\n"],"mappings":"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"}
1
+ {"version":3,"names":["require","_webexCore","_lodash","_board","_interopRequireDefault","_realtimeChannel","_config","registerInternalPlugin","Board","config","payloadTransformer","predicates","name","direction","test","ctx","options","has","body","items","length","_promise","default","resolve","get","extract","service","webex","internal","services","getServiceFromUrl","uri","transforms","fn","object","board","decryptContents","then","decryptedContents","direciton","encryption","kms","createUnboundKeys","count","keys","key","defaultEncryptionKeyUrl","kmsMessage","keyUris","push","transform"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-mercury';\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-feature';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has, get} from 'lodash';\n\nimport Board from './board';\nimport RealtimeChannel from './realtime-channel';\nimport config from './config';\n\nregisterInternalPlugin('board', Board, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptContents',\n direction: 'inbound',\n\n test(ctx, options) {\n // we must have items\n if (!has(options, 'body.items') || options.body.items.length === 0) {\n return Promise.resolve(false);\n }\n\n // we must have a contentId\n if (!get(options, 'body.items[0].contentId')) {\n return Promise.resolve(false);\n }\n\n // we must have a encryptionKeyUrl\n /* istanbul ignore if */\n if (!get(options, 'body.items[0].encryptionKeyUrl')) {\n return Promise.resolve(false);\n }\n\n // we must have a payload or file\n /* istanbul ignore if */\n if (!get(options, 'body.items[0].payload') && !get(options, 'body.items[0].file')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n {\n name: 'encryptChannel',\n direction: 'outbound',\n\n test(ctx, options) {\n const service = ctx.webex.internal.services.getServiceFromUrl(options.uri);\n\n if (service && service.name === 'board' && has(options, 'body.aclUrlLink')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n ],\n transforms: [\n {\n name: 'decryptContents',\n direction: 'inbound',\n\n fn(ctx, object) {\n return ctx.webex.internal.board.decryptContents(object).then((decryptedContents) => {\n object.items = decryptedContents;\n });\n },\n },\n {\n name: 'encryptChannel',\n direciton: 'outbound',\n fn(ctx, object) {\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = keys[0];\n\n object.defaultEncryptionKeyUrl = key.uri;\n object.kmsMessage.keyUris.push(key.uri);\n\n return ctx.transform('encryptKmsMessage', object);\n });\n },\n },\n ],\n },\n});\n\nexport {default} from './board';\nexport {config};\nexport {RealtimeChannel};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_realtimeChannel","RealtimeChannelCollection","AmpCollection","extend","mainIndex","model","RealtimeChannel","namespace","_default","exports","default"],"sources":["realtime-channel-collection.js"],"sourcesContent":["/** !\n *\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n * @private\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport RealtimeChannel from './realtime-channel';\n\nconst RealtimeChannelCollection = AmpCollection.extend({\n mainIndex: 'channelId',\n model: RealtimeChannel,\n\n namespace: 'Board',\n});\n\nexport default RealtimeChannelCollection;\n"],"mappings":";;;;;;;;AAMA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AARA;AACA;AACA;AACA;AACA;;AAMA,IAAME,yBAAyB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EACrDC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAEC,wBAAe;EAEtBC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYT,yBAAyB"}
1
+ {"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_realtimeChannel","RealtimeChannelCollection","AmpCollection","extend","mainIndex","model","RealtimeChannel","namespace","_default","exports","default"],"sources":["realtime-channel-collection.js"],"sourcesContent":["/** !\n *\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n * @private\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport RealtimeChannel from './realtime-channel';\n\nconst RealtimeChannelCollection = AmpCollection.extend({\n mainIndex: 'channelId',\n model: RealtimeChannel,\n\n namespace: 'Board',\n});\n\nexport default RealtimeChannelCollection;\n"],"mappings":";;;;;;;;AAMA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AARA;AACA;AACA;AACA;AACA;;AAMA,IAAME,yBAAyB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EACrDC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAEC,wBAAe;EAEtBC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYT,yBAAyB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_internalPluginMercury","require","RealtimeChannel","Mercury","extend","namespace","props","channelId","type","required","socketUrl","binding","session","isSharingMercury","default","socket","send","data","_default","exports"],"sources":["realtime-channel.js"],"sourcesContent":["/** !\n *\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n * @private\n */\n\nimport {Mercury} from '@webex/internal-plugin-mercury';\n\nconst RealtimeChannel = Mercury.extend({\n namespace: 'Board',\n\n props: {\n channelId: {\n type: 'string',\n required: true,\n },\n socketUrl: {\n type: 'string',\n },\n binding: {\n type: 'string',\n },\n },\n\n session: {\n isSharingMercury: {\n type: 'boolean',\n default: false,\n },\n socket: {\n type: 'object',\n },\n },\n\n send(data) {\n return this.socket.send(data);\n },\n});\n\nexport default RealtimeChannel;\n"],"mappings":";;;;;;;AAMA,IAAAA,sBAAA,GAAAC,OAAA;AANA;AACA;AACA;AACA;AACA;;AAIA,IAAMC,eAAe,GAAGC,8BAAO,CAACC,MAAM,CAAC;EACrCC,SAAS,EAAE,OAAO;EAElBC,KAAK,EAAE;IACLC,SAAS,EAAE;MACTC,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE;IACZ,CAAC;IACDC,SAAS,EAAE;MACTF,IAAI,EAAE;IACR,CAAC;IACDG,OAAO,EAAE;MACPH,IAAI,EAAE;IACR;EACF,CAAC;EAEDI,OAAO,EAAE;IACPC,gBAAgB,EAAE;MAChBL,IAAI,EAAE,SAAS;MACfM,OAAO,EAAE;IACX,CAAC;IACDC,MAAM,EAAE;MACNP,IAAI,EAAE;IACR;EACF,CAAC;EAEDQ,IAAI,WAAAA,KAACC,IAAI,EAAE;IACT,OAAO,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC,IAAI,CAAC;EAC/B;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAEYZ,eAAe"}
1
+ {"version":3,"names":["_internalPluginMercury","require","RealtimeChannel","Mercury","extend","namespace","props","channelId","type","required","socketUrl","binding","session","isSharingMercury","default","socket","send","data","_default","exports"],"sources":["realtime-channel.js"],"sourcesContent":["/** !\n *\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n * @private\n */\n\nimport {Mercury} from '@webex/internal-plugin-mercury';\n\nconst RealtimeChannel = Mercury.extend({\n namespace: 'Board',\n\n props: {\n channelId: {\n type: 'string',\n required: true,\n },\n socketUrl: {\n type: 'string',\n },\n binding: {\n type: 'string',\n },\n },\n\n session: {\n isSharingMercury: {\n type: 'boolean',\n default: false,\n },\n socket: {\n type: 'object',\n },\n },\n\n send(data) {\n return this.socket.send(data);\n },\n});\n\nexport default RealtimeChannel;\n"],"mappings":";;;;;;;AAMA,IAAAA,sBAAA,GAAAC,OAAA;AANA;AACA;AACA;AACA;AACA;;AAIA,IAAMC,eAAe,GAAGC,8BAAO,CAACC,MAAM,CAAC;EACrCC,SAAS,EAAE,OAAO;EAElBC,KAAK,EAAE;IACLC,SAAS,EAAE;MACTC,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE;IACZ,CAAC;IACDC,SAAS,EAAE;MACTF,IAAI,EAAE;IACR,CAAC;IACDG,OAAO,EAAE;MACPH,IAAI,EAAE;IACR;EACF,CAAC;EAEDI,OAAO,EAAE;IACPC,gBAAgB,EAAE;MAChBL,IAAI,EAAE,SAAS;MACfM,OAAO,EAAE;IACX,CAAC;IACDC,MAAM,EAAE;MACNP,IAAI,EAAE;IACR;EACF,CAAC;EAEDQ,IAAI,WAAJA,IAAIA,CAACC,IAAI,EAAE;IACT,OAAO,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC,IAAI,CAAC;EAC/B;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAEYZ,eAAe","ignoreList":[]}
package/dist/realtime.js CHANGED
@@ -221,7 +221,7 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
221
221
  return _this7.realtimeChannels.remove(channel.channelId);
222
222
  }));
223
223
  },
224
- version: "3.10.0-next.1"
224
+ version: "3.10.0-next.11"
225
225
  });
226
226
  var _default = exports.default = RealtimeService;
227
227
  //# sourceMappingURL=realtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_common","_webexCore","_realtimeChannelCollection","RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","_this","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","_promise","default","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","_this2","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","_ref","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","_this3","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","_this4","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","_this5","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","_this6","forEach","disconnectFromSharedMercury","_this7","connected","unregisterFromSharedMercury","version","_default","exports"],"sources":["realtime.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport uuid from 'uuid';\nimport {tap} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport RealtimeChannelCollection from './realtime-channel-collection';\n\n/**\n * @class\n * @extends {Mercury}\n * @memberof Board\n */\nconst RealtimeService = WebexPlugin.extend({\n namespace: 'Board',\n\n collections: {\n realtimeChannels: RealtimeChannelCollection,\n },\n\n /**\n * Sends the message via the socket. Assumes that the message is already properly formatted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {string} message Contains the un-encrypted message to send.\n * @returns {Promise<Board~Content>}\n */\n publish(channel, message) {\n let encryptionPromise;\n let contentType = 'STRING';\n\n if (message.payload.file) {\n contentType = 'FILE';\n encryptionPromise = this.webex.internal.board.encryptSingleFileContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n } else {\n encryptionPromise = this.webex.internal.board.encryptSingleContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n }\n\n return encryptionPromise.then((encryptedPayloadAndKeyUrl) =>\n this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType)\n );\n },\n\n /**\n * Sends the message via the socket. The message should already have been\n * encrypted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {object} encryptedPayloadAndKeyUrl\n * @param {string} contentType - provides hint for decryption. Defaults to\n * `STRING`, and could also be `FILE`\n * @returns {Promise<Board~Content>}\n */\n publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found'));\n }\n\n const data = {\n id: uuid.v4(),\n type: 'publishRequest',\n recipients: [\n {\n alertType: 'none',\n route: realtimeChannel.binding,\n headers: {},\n },\n ],\n data: {\n eventType: 'board.activity',\n contentType,\n payload: encryptedPayloadAndKeyUrl.payload,\n envelope: {\n encryptionKeyUrl: encryptedPayloadAndKeyUrl.encryptionKeyUrl,\n channelId: channel.channelId,\n },\n },\n };\n\n // provide a hint for decryption\n if (contentType === 'FILE') {\n data.data.payload = {\n file: encryptedPayloadAndKeyUrl.file,\n payload: encryptedPayloadAndKeyUrl.payload,\n };\n }\n\n return realtimeChannel.send(data);\n },\n\n createRealtimeChannel(channel) {\n const requestBindings = [this._boardChannelIdToMercuryBinding(channel.channelId)];\n const bindingObj = {bindings: requestBindings};\n\n return this.webex.internal.board.register(bindingObj).then(({webSocketUrl, bindings}) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n socketUrl: webSocketUrl,\n binding: bindings[0],\n });\n\n return this.realtimeChannels.get(channel.channelId);\n });\n },\n\n /**\n * Open new mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n connectByOpenNewMercuryConnection(channel) {\n let promise = Promise.resolve();\n let realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n this.logger.info('board realtime: realtime channel not found, creating new channel');\n promise = this.createRealtimeChannel(channel).then((rc) => {\n realtimeChannel = rc;\n this.logger.info('board realtime: realtime channel created');\n\n return realtimeChannel;\n });\n }\n\n return promise.then(() => realtimeChannel.connect(realtimeChannel.socketUrl));\n },\n\n /**\n * Disconnect connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n disconnectMercuryConnection(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found!'));\n }\n\n return (\n realtimeChannel\n .disconnect()\n // even if we can't remove the channels from the collection, we can still\n // continue on execution\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n\n /**\n * Ensure board channelId is compatible with mercury bindings by replacing\n * '-' with '.' and '_' with '#'\n * @memberof Board.BoardService\n * @param {String} channelId channel.channelId\n * @returns {String} mercury-binding compatible string\n */\n _boardChannelIdToMercuryBinding(channelId) {\n // make channelId mercury compatible replace `-` with `.` and `_` with `#`\n return this.config.mercuryBindingPrefix + channelId.replace(/-/g, '.').replace(/_/g, '#');\n },\n\n /**\n * Connect and use an exisiting mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n connectToSharedMercury(channel) {\n return this.webex.internal.board.registerToShareMercury(channel).then((res) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n binding: res.binding,\n socketUrl: res.webSocketUrl,\n });\n\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!res.sharedWebSocket) {\n return realtimeChannel.connect(realtimeChannel.socketUrl).then(() => res);\n }\n\n realtimeChannel.isSharingMercury = true;\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n // refresh socket reference when mercury is reconnected\n this.webex.internal.mercury.off('online', this.refreshMercurySocketReference, this);\n this.webex.internal.mercury.on('online', this.refreshMercurySocketReference, this);\n\n // make sure there's only one handler\n this.webex.internal.mercury.off(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n this.webex.internal.mercury.on(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n\n return res;\n });\n },\n\n handleBoardActivityMessages(event) {\n const realtimeChannel = this.realtimeChannels.get(event.data.envelope.channelId);\n\n if (realtimeChannel) {\n realtimeChannel._emit('event:board.activity', event);\n }\n },\n\n refreshMercurySocketReference() {\n this.realtimeChannels.forEach((realtimeChannel) => {\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n });\n },\n\n /**\n * Remove board binding from existing mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n disconnectFromSharedMercury(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel.isSharingMercury && realtimeChannel.socket && realtimeChannel.connected) {\n return this.disconnectMercuryConnection(channel);\n }\n\n return (\n this.webex.internal.board\n .unregisterFromSharedMercury(channel, realtimeChannel.binding)\n // tap suppress errors but we can still go on if the channel can't be\n // removed from the collection\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n});\n\nexport default RealtimeService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_common","_webexCore","_realtimeChannelCollection","RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","_this","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","_promise","default","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","_this2","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","_ref","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","_this3","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","_this4","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","_this5","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","_this6","forEach","disconnectFromSharedMercury","_this7","connected","unregisterFromSharedMercury","version","_default","exports"],"sources":["realtime.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport uuid from 'uuid';\nimport {tap} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport RealtimeChannelCollection from './realtime-channel-collection';\n\n/**\n * @class\n * @extends {Mercury}\n * @memberof Board\n */\nconst RealtimeService = WebexPlugin.extend({\n namespace: 'Board',\n\n collections: {\n realtimeChannels: RealtimeChannelCollection,\n },\n\n /**\n * Sends the message via the socket. Assumes that the message is already properly formatted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {string} message Contains the un-encrypted message to send.\n * @returns {Promise<Board~Content>}\n */\n publish(channel, message) {\n let encryptionPromise;\n let contentType = 'STRING';\n\n if (message.payload.file) {\n contentType = 'FILE';\n encryptionPromise = this.webex.internal.board.encryptSingleFileContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n } else {\n encryptionPromise = this.webex.internal.board.encryptSingleContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n }\n\n return encryptionPromise.then((encryptedPayloadAndKeyUrl) =>\n this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType)\n );\n },\n\n /**\n * Sends the message via the socket. The message should already have been\n * encrypted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {object} encryptedPayloadAndKeyUrl\n * @param {string} contentType - provides hint for decryption. Defaults to\n * `STRING`, and could also be `FILE`\n * @returns {Promise<Board~Content>}\n */\n publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found'));\n }\n\n const data = {\n id: uuid.v4(),\n type: 'publishRequest',\n recipients: [\n {\n alertType: 'none',\n route: realtimeChannel.binding,\n headers: {},\n },\n ],\n data: {\n eventType: 'board.activity',\n contentType,\n payload: encryptedPayloadAndKeyUrl.payload,\n envelope: {\n encryptionKeyUrl: encryptedPayloadAndKeyUrl.encryptionKeyUrl,\n channelId: channel.channelId,\n },\n },\n };\n\n // provide a hint for decryption\n if (contentType === 'FILE') {\n data.data.payload = {\n file: encryptedPayloadAndKeyUrl.file,\n payload: encryptedPayloadAndKeyUrl.payload,\n };\n }\n\n return realtimeChannel.send(data);\n },\n\n createRealtimeChannel(channel) {\n const requestBindings = [this._boardChannelIdToMercuryBinding(channel.channelId)];\n const bindingObj = {bindings: requestBindings};\n\n return this.webex.internal.board.register(bindingObj).then(({webSocketUrl, bindings}) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n socketUrl: webSocketUrl,\n binding: bindings[0],\n });\n\n return this.realtimeChannels.get(channel.channelId);\n });\n },\n\n /**\n * Open new mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n connectByOpenNewMercuryConnection(channel) {\n let promise = Promise.resolve();\n let realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n this.logger.info('board realtime: realtime channel not found, creating new channel');\n promise = this.createRealtimeChannel(channel).then((rc) => {\n realtimeChannel = rc;\n this.logger.info('board realtime: realtime channel created');\n\n return realtimeChannel;\n });\n }\n\n return promise.then(() => realtimeChannel.connect(realtimeChannel.socketUrl));\n },\n\n /**\n * Disconnect connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n disconnectMercuryConnection(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found!'));\n }\n\n return (\n realtimeChannel\n .disconnect()\n // even if we can't remove the channels from the collection, we can still\n // continue on execution\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n\n /**\n * Ensure board channelId is compatible with mercury bindings by replacing\n * '-' with '.' and '_' with '#'\n * @memberof Board.BoardService\n * @param {String} channelId channel.channelId\n * @returns {String} mercury-binding compatible string\n */\n _boardChannelIdToMercuryBinding(channelId) {\n // make channelId mercury compatible replace `-` with `.` and `_` with `#`\n return this.config.mercuryBindingPrefix + channelId.replace(/-/g, '.').replace(/_/g, '#');\n },\n\n /**\n * Connect and use an exisiting mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n connectToSharedMercury(channel) {\n return this.webex.internal.board.registerToShareMercury(channel).then((res) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n binding: res.binding,\n socketUrl: res.webSocketUrl,\n });\n\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!res.sharedWebSocket) {\n return realtimeChannel.connect(realtimeChannel.socketUrl).then(() => res);\n }\n\n realtimeChannel.isSharingMercury = true;\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n // refresh socket reference when mercury is reconnected\n this.webex.internal.mercury.off('online', this.refreshMercurySocketReference, this);\n this.webex.internal.mercury.on('online', this.refreshMercurySocketReference, this);\n\n // make sure there's only one handler\n this.webex.internal.mercury.off(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n this.webex.internal.mercury.on(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n\n return res;\n });\n },\n\n handleBoardActivityMessages(event) {\n const realtimeChannel = this.realtimeChannels.get(event.data.envelope.channelId);\n\n if (realtimeChannel) {\n realtimeChannel._emit('event:board.activity', event);\n }\n },\n\n refreshMercurySocketReference() {\n this.realtimeChannels.forEach((realtimeChannel) => {\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n });\n },\n\n /**\n * Remove board binding from existing mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n disconnectFromSharedMercury(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel.isSharingMercury && realtimeChannel.socket && realtimeChannel.connected) {\n return this.disconnectMercuryConnection(channel);\n }\n\n return (\n this.webex.internal.board\n .unregisterFromSharedMercury(channel, realtimeChannel.binding)\n // tap suppress errors but we can still go on if the channel can't be\n // removed from the collection\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n});\n\nexport default RealtimeService;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -25,23 +25,23 @@
25
25
  "@webex/eslint-config-legacy": "0.0.0",
26
26
  "@webex/jest-config-legacy": "0.0.0",
27
27
  "@webex/legacy-tools": "0.0.0",
28
- "@webex/test-helper-chai": "3.8.1-next.11",
29
- "@webex/test-helper-file": "3.8.1-next.11",
30
- "@webex/test-helper-mocha": "3.8.1-next.11",
31
- "@webex/test-helper-mock-web-socket": "3.8.1-next.11",
32
- "@webex/test-helper-mock-webex": "3.8.1-next.11",
33
- "@webex/test-helper-test-users": "3.8.1-next.11",
28
+ "@webex/test-helper-chai": "3.10.0-next.1",
29
+ "@webex/test-helper-file": "3.10.0-next.1",
30
+ "@webex/test-helper-mocha": "3.10.0-next.1",
31
+ "@webex/test-helper-mock-web-socket": "3.10.0-next.1",
32
+ "@webex/test-helper-mock-webex": "3.10.0-next.1",
33
+ "@webex/test-helper-test-users": "3.10.0-next.1",
34
34
  "eslint": "^8.24.0",
35
35
  "prettier": "^2.7.1",
36
36
  "sinon": "^9.2.4"
37
37
  },
38
38
  "dependencies": {
39
- "@webex/common": "3.8.1-next.11",
40
- "@webex/internal-plugin-conversation": "3.10.0-next.1",
41
- "@webex/internal-plugin-encryption": "3.10.0-next.1",
42
- "@webex/internal-plugin-feature": "3.10.0-next.1",
43
- "@webex/internal-plugin-mercury": "3.10.0-next.1",
44
- "@webex/webex-core": "3.10.0-next.1",
39
+ "@webex/common": "3.10.0-next.1",
40
+ "@webex/internal-plugin-conversation": "3.10.0-next.11",
41
+ "@webex/internal-plugin-encryption": "3.10.0-next.11",
42
+ "@webex/internal-plugin-feature": "3.10.0-next.11",
43
+ "@webex/internal-plugin-mercury": "3.10.0-next.11",
44
+ "@webex/webex-core": "3.10.0-next.11",
45
45
  "ampersand-collection": "^2.0.2",
46
46
  "es6-promise-series": "^0.2.2",
47
47
  "lodash": "^4.17.21",
@@ -56,5 +56,5 @@
56
56
  "test:style": "eslint ./src/**/*.*",
57
57
  "test:unit": "webex-legacy-tools test --unit --runner jest"
58
58
  },
59
- "version": "3.10.0-next.1"
59
+ "version": "3.10.0-next.11"
60
60
  }