@webex/internal-plugin-board 3.0.0-beta.8 → 3.0.0-bnr.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/realtime.js CHANGED
@@ -1,25 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
14
-
15
10
  var _uuid = _interopRequireDefault(require("uuid"));
16
-
17
11
  var _common = require("@webex/common");
18
-
19
12
  var _webexCore = require("@webex/webex-core");
20
-
21
- var _realtimeChannelCollection = _interopRequireDefault(require("./realtime-channel-collection.js"));
22
-
13
+ var _realtimeChannelCollection = _interopRequireDefault(require("./realtime-channel-collection"));
23
14
  /*!
24
15
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
25
16
  */
@@ -34,49 +25,42 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
34
25
  collections: {
35
26
  realtimeChannels: _realtimeChannelCollection.default
36
27
  },
37
-
38
28
  /**
39
- * Sends the message via the socket. Assumes that the message is already properly formatted
40
- * @memberof Board.RealtimeService
41
- * @param {Board~Channel} channel
42
- * @param {string} message Contains the un-encrypted message to send.
43
- * @returns {Promise<Board~Content>}
44
- */
29
+ * Sends the message via the socket. Assumes that the message is already properly formatted
30
+ * @memberof Board.RealtimeService
31
+ * @param {Board~Channel} channel
32
+ * @param {string} message Contains the un-encrypted message to send.
33
+ * @returns {Promise<Board~Content>}
34
+ */
45
35
  publish: function publish(channel, message) {
46
36
  var _this = this;
47
-
48
37
  var encryptionPromise;
49
38
  var contentType = 'STRING';
50
-
51
39
  if (message.payload.file) {
52
40
  contentType = 'FILE';
53
41
  encryptionPromise = this.webex.internal.board.encryptSingleFileContent(channel.defaultEncryptionKeyUrl, message.payload);
54
42
  } else {
55
43
  encryptionPromise = this.webex.internal.board.encryptSingleContent(channel.defaultEncryptionKeyUrl, message.payload);
56
44
  }
57
-
58
45
  return encryptionPromise.then(function (encryptedPayloadAndKeyUrl) {
59
46
  return _this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType);
60
47
  });
61
48
  },
62
-
63
49
  /**
64
- * Sends the message via the socket. The message should already have been
65
- * encrypted
66
- * @memberof Board.RealtimeService
67
- * @param {Board~Channel} channel
68
- * @param {object} encryptedPayloadAndKeyUrl
69
- * @param {string} contentType - provides hint for decryption. Defaults to
70
- * `STRING`, and could also be `FILE`
71
- * @returns {Promise<Board~Content>}
72
- */
50
+ * Sends the message via the socket. The message should already have been
51
+ * encrypted
52
+ * @memberof Board.RealtimeService
53
+ * @param {Board~Channel} channel
54
+ * @param {object} encryptedPayloadAndKeyUrl
55
+ * @param {string} contentType - provides hint for decryption. Defaults to
56
+ * `STRING`, and could also be `FILE`
57
+ * @returns {Promise<Board~Content>}
58
+ */
73
59
  publishEncrypted: function publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType) {
74
60
  var realtimeChannel = this.realtimeChannels.get(channel.channelId);
75
-
76
61
  if (!realtimeChannel) {
77
62
  return _promise.default.reject(new Error('Realtime Channel not found'));
78
63
  }
79
-
80
64
  var data = {
81
65
  id: _uuid.default.v4(),
82
66
  type: 'publishRequest',
@@ -94,89 +78,75 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
94
78
  channelId: channel.channelId
95
79
  }
96
80
  }
97
- }; // provide a hint for decryption
81
+ };
98
82
 
83
+ // provide a hint for decryption
99
84
  if (contentType === 'FILE') {
100
85
  data.data.payload = {
101
86
  file: encryptedPayloadAndKeyUrl.file,
102
87
  payload: encryptedPayloadAndKeyUrl.payload
103
88
  };
104
89
  }
105
-
106
90
  return realtimeChannel.send(data);
107
91
  },
108
92
  createRealtimeChannel: function createRealtimeChannel(channel) {
109
93
  var _this2 = this;
110
-
111
94
  var requestBindings = [this._boardChannelIdToMercuryBinding(channel.channelId)];
112
95
  var bindingObj = {
113
96
  bindings: requestBindings
114
97
  };
115
98
  return this.webex.internal.board.register(bindingObj).then(function (_ref) {
116
99
  var webSocketUrl = _ref.webSocketUrl,
117
- bindings = _ref.bindings;
118
-
100
+ bindings = _ref.bindings;
119
101
  _this2.realtimeChannels.add({
120
102
  channelId: channel.channelId,
121
103
  socketUrl: webSocketUrl,
122
104
  binding: bindings[0]
123
105
  });
124
-
125
106
  return _this2.realtimeChannels.get(channel.channelId);
126
107
  });
127
108
  },
128
-
129
109
  /**
130
- * Open new mercury connection
131
- * @memberof Board.RealtimeService
132
- * @param {Board~Channel} channel
133
- * @returns {Promise}
134
- */
110
+ * Open new mercury connection
111
+ * @memberof Board.RealtimeService
112
+ * @param {Board~Channel} channel
113
+ * @returns {Promise}
114
+ */
135
115
  connectByOpenNewMercuryConnection: function connectByOpenNewMercuryConnection(channel) {
136
116
  var _this3 = this;
137
-
138
117
  var promise = _promise.default.resolve();
139
-
140
118
  var realtimeChannel = this.realtimeChannels.get(channel.channelId);
141
-
142
119
  if (!realtimeChannel) {
143
120
  this.logger.info('board realtime: realtime channel not found, creating new channel');
144
121
  promise = this.createRealtimeChannel(channel).then(function (rc) {
145
122
  realtimeChannel = rc;
146
-
147
123
  _this3.logger.info('board realtime: realtime channel created');
148
-
149
124
  return realtimeChannel;
150
125
  });
151
126
  }
152
-
153
127
  return promise.then(function () {
154
128
  return realtimeChannel.connect(realtimeChannel.socketUrl);
155
129
  });
156
130
  },
157
-
158
131
  /**
159
- * Disconnect connection
160
- * @memberof Board.RealtimeService
161
- * @param {Board~Channel} channel
162
- * @returns {Promise}
163
- */
132
+ * Disconnect connection
133
+ * @memberof Board.RealtimeService
134
+ * @param {Board~Channel} channel
135
+ * @returns {Promise}
136
+ */
164
137
  disconnectMercuryConnection: function disconnectMercuryConnection(channel) {
165
138
  var _this4 = this;
166
-
167
139
  var realtimeChannel = this.realtimeChannels.get(channel.channelId);
168
-
169
140
  if (!realtimeChannel) {
170
141
  return _promise.default.reject(new Error('Realtime Channel not found!'));
171
142
  }
172
-
173
- return realtimeChannel.disconnect() // even if we can't remove the channels from the collection, we can still
143
+ return realtimeChannel.disconnect()
144
+ // even if we can't remove the channels from the collection, we can still
174
145
  // continue on execution
175
146
  .then((0, _common.tap)(function () {
176
147
  return _this4.realtimeChannels.remove(channel.channelId);
177
148
  }));
178
149
  },
179
-
180
150
  /**
181
151
  * Ensure board channelId is compatible with mercury bindings by replacing
182
152
  * '-' with '.' and '_' with '#'
@@ -188,7 +158,6 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
188
158
  // make channelId mercury compatible replace `-` with `.` and `_` with `#`
189
159
  return this.config.mercuryBindingPrefix + channelId.replace(/-/g, '.').replace(/_/g, '#');
190
160
  },
191
-
192
161
  /**
193
162
  * Connect and use an exisiting mercury connection
194
163
  * @memberof Board.RealtimeService
@@ -197,52 +166,42 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
197
166
  */
198
167
  connectToSharedMercury: function connectToSharedMercury(channel) {
199
168
  var _this5 = this;
200
-
201
169
  return this.webex.internal.board.registerToShareMercury(channel).then(function (res) {
202
170
  _this5.realtimeChannels.add({
203
171
  channelId: channel.channelId,
204
172
  binding: res.binding,
205
173
  socketUrl: res.webSocketUrl
206
174
  });
207
-
208
175
  var realtimeChannel = _this5.realtimeChannels.get(channel.channelId);
209
-
210
176
  if (!res.sharedWebSocket) {
211
177
  return realtimeChannel.connect(realtimeChannel.socketUrl).then(function () {
212
178
  return res;
213
179
  });
214
180
  }
215
-
216
181
  realtimeChannel.isSharingMercury = true;
217
- realtimeChannel.socket = _this5.webex.internal.mercury.socket; // refresh socket reference when mercury is reconnected
218
-
182
+ realtimeChannel.socket = _this5.webex.internal.mercury.socket;
183
+ // refresh socket reference when mercury is reconnected
219
184
  _this5.webex.internal.mercury.off('online', _this5.refreshMercurySocketReference, _this5);
185
+ _this5.webex.internal.mercury.on('online', _this5.refreshMercurySocketReference, _this5);
220
186
 
221
- _this5.webex.internal.mercury.on('online', _this5.refreshMercurySocketReference, _this5); // make sure there's only one handler
222
-
223
-
187
+ // make sure there's only one handler
224
188
  _this5.webex.internal.mercury.off('event:board.activity', _this5.handleBoardActivityMessages, _this5);
225
-
226
189
  _this5.webex.internal.mercury.on('event:board.activity', _this5.handleBoardActivityMessages, _this5);
227
-
228
190
  return res;
229
191
  });
230
192
  },
231
193
  handleBoardActivityMessages: function handleBoardActivityMessages(event) {
232
194
  var realtimeChannel = this.realtimeChannels.get(event.data.envelope.channelId);
233
-
234
195
  if (realtimeChannel) {
235
196
  realtimeChannel._emit('event:board.activity', event);
236
197
  }
237
198
  },
238
199
  refreshMercurySocketReference: function refreshMercurySocketReference() {
239
200
  var _this6 = this;
240
-
241
201
  this.realtimeChannels.forEach(function (realtimeChannel) {
242
202
  realtimeChannel.socket = _this6.webex.internal.mercury.socket;
243
203
  });
244
204
  },
245
-
246
205
  /**
247
206
  * Remove board binding from existing mercury connection
248
207
  * @memberof Board.RealtimeService
@@ -251,22 +210,19 @@ var RealtimeService = _webexCore.WebexPlugin.extend({
251
210
  */
252
211
  disconnectFromSharedMercury: function disconnectFromSharedMercury(channel) {
253
212
  var _this7 = this;
254
-
255
213
  var realtimeChannel = this.realtimeChannels.get(channel.channelId);
256
-
257
214
  if (!realtimeChannel.isSharingMercury && realtimeChannel.socket && realtimeChannel.connected) {
258
215
  return this.disconnectMercuryConnection(channel);
259
216
  }
260
-
261
- return this.webex.internal.board.unregisterFromSharedMercury(channel, realtimeChannel.binding) // tap suppress errors but we can still go on if the channel can't be
217
+ return this.webex.internal.board.unregisterFromSharedMercury(channel, realtimeChannel.binding)
218
+ // tap suppress errors but we can still go on if the channel can't be
262
219
  // removed from the collection
263
220
  .then((0, _common.tap)(function () {
264
221
  return _this7.realtimeChannels.remove(channel.channelId);
265
222
  }));
266
223
  },
267
- version: "3.0.0-beta.8"
224
+ version: "3.0.0-bnr.0"
268
225
  });
269
-
270
226
  var _default = RealtimeService;
271
227
  exports.default = _default;
272
228
  //# sourceMappingURL=realtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","forEach","disconnectFromSharedMercury","connected","unregisterFromSharedMercury"],"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.js';\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(channel.defaultEncryptionKeyUrl, message.payload);\n }\n else {\n encryptionPromise = this.webex.internal.board.encryptSingleContent(channel.defaultEncryptionKeyUrl, message.payload);\n }\n\n return encryptionPromise\n .then((encryptedPayloadAndKeyUrl) => this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType));\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 alertType: 'none',\n route: realtimeChannel.binding,\n headers: {}\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)\n .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)\n .then((rc) => {\n realtimeChannel = rc;\n this.logger.info('board realtime: realtime channel created');\n\n return realtimeChannel;\n });\n }\n\n return promise\n .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 realtimeChannel.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 * 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)\n .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)\n .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('event:board.activity', this.handleBoardActivityMessages, this);\n this.webex.internal.mercury.on('event:board.activity', this.handleBoardActivityMessages, this);\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 this.webex.internal.board.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":["RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","forEach","disconnectFromSharedMercury","connected","unregisterFromSharedMercury"],"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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"}
@@ -0,0 +1,2 @@
1
+ export default Board;
2
+ declare const Board: any;
@@ -0,0 +1,11 @@
1
+ declare namespace _default {
2
+ namespace board {
3
+ const numberContentsPerPageForAdd: number;
4
+ const numberContentsPerPageForGet: number;
5
+ const pingInterval: number;
6
+ const pongTimeout: number;
7
+ const forceCloseDelay: [type];
8
+ const mercuryBindingPrefix: string;
9
+ }
10
+ }
11
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { default } from "./board";
2
+ import config from "./config";
3
+ import RealtimeChannel from "./realtime-channel";
4
+ export { config, RealtimeChannel };
@@ -0,0 +1,2 @@
1
+ export default RealtimeChannelCollection;
2
+ declare const RealtimeChannelCollection: any;
@@ -0,0 +1,2 @@
1
+ export default RealtimeChannel;
2
+ declare const RealtimeChannel: any;
@@ -0,0 +1,7 @@
1
+ export default RealtimeService;
2
+ /**
3
+ * @class
4
+ * @extends {Mercury}
5
+ * @memberof Board
6
+ */
7
+ declare const RealtimeService: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-board",
3
- "version": "3.0.0-beta.8",
3
+ "version": "3.0.0-bnr.0",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "author": "Greg Hewett <ghewett@cisco.com>",
@@ -21,22 +21,22 @@
21
21
  ]
22
22
  },
23
23
  "devDependencies": {
24
- "@webex/test-helper-chai": "3.0.0-beta.8",
25
- "@webex/test-helper-file": "3.0.0-beta.8",
26
- "@webex/test-helper-mocha": "3.0.0-beta.8",
27
- "@webex/test-helper-mock-web-socket": "3.0.0-beta.8",
28
- "@webex/test-helper-mock-webex": "3.0.0-beta.8",
29
- "@webex/test-helper-test-users": "3.0.0-beta.8",
24
+ "@webex/test-helper-chai": "3.0.0-bnr.0",
25
+ "@webex/test-helper-file": "3.0.0-bnr.0",
26
+ "@webex/test-helper-mocha": "3.0.0-bnr.0",
27
+ "@webex/test-helper-mock-web-socket": "3.0.0-bnr.0",
28
+ "@webex/test-helper-mock-webex": "3.0.0-bnr.0",
29
+ "@webex/test-helper-test-users": "3.0.0-bnr.0",
30
30
  "sinon": "^9.2.4"
31
31
  },
32
32
  "dependencies": {
33
- "@webex/common": "3.0.0-beta.8",
34
- "@webex/internal-plugin-board": "3.0.0-beta.8",
35
- "@webex/internal-plugin-conversation": "3.0.0-beta.8",
36
- "@webex/internal-plugin-encryption": "3.0.0-beta.8",
37
- "@webex/internal-plugin-feature": "3.0.0-beta.8",
38
- "@webex/internal-plugin-mercury": "3.0.0-beta.8",
39
- "@webex/webex-core": "3.0.0-beta.8",
33
+ "@webex/common": "3.0.0-bnr.0",
34
+ "@webex/internal-plugin-board": "3.0.0-bnr.0",
35
+ "@webex/internal-plugin-conversation": "3.0.0-bnr.0",
36
+ "@webex/internal-plugin-encryption": "3.0.0-bnr.0",
37
+ "@webex/internal-plugin-feature": "3.0.0-bnr.0",
38
+ "@webex/internal-plugin-mercury": "3.0.0-bnr.0",
39
+ "@webex/webex-core": "3.0.0-bnr.0",
40
40
  "ampersand-collection": "^2.0.2",
41
41
  "es6-promise-series": "^0.2.2",
42
42
  "lodash": "^4.17.21",