@webex/internal-plugin-conversation 3.0.0-beta.15 → 3.0.0-beta.150

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.
@@ -1,88 +1,52 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
16
-
17
10
  var _Symbol2 = require("@babel/runtime-corejs2/core-js/symbol");
18
-
19
11
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
20
-
21
12
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
22
-
23
13
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
24
-
25
14
  _Object$defineProperty(exports, "__esModule", {
26
15
  value: true
27
16
  });
28
-
29
17
  exports.default = exports.FILE_SYMBOL = exports.EMITTER_SYMBOL = void 0;
30
-
31
18
  var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
32
-
33
19
  var _map2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
34
-
35
20
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
36
-
37
21
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
38
-
39
22
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
40
-
41
23
  var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
42
-
43
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
44
-
45
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
46
-
47
26
  var _some2 = _interopRequireDefault(require("lodash/some"));
48
-
49
27
  var _pick2 = _interopRequireDefault(require("lodash/pick"));
50
-
51
28
  var _map3 = _interopRequireDefault(require("lodash/map"));
52
-
53
29
  var _filter2 = _interopRequireDefault(require("lodash/filter"));
54
-
55
30
  var _events = require("events");
56
-
57
31
  var _nodeScr = _interopRequireDefault(require("node-scr"));
58
-
59
32
  var _common = require("@webex/common");
60
-
61
33
  var _webexCore = require("@webex/webex-core");
62
-
63
34
  var _helperImage = require("@webex/helper-image");
64
-
65
35
  var _sha = _interopRequireDefault(require("crypto-js/sha256"));
66
-
67
36
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol2 !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
68
-
69
37
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
70
-
71
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
72
-
38
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
73
39
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
74
-
75
40
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
76
-
77
41
  var EMITTER_SYMBOL = (0, _symbol.default)('EMITTER_SYMBOL');
78
42
  exports.EMITTER_SYMBOL = EMITTER_SYMBOL;
79
43
  var FILE_SYMBOL = (0, _symbol.default)('FILE_SYMBOL');
80
44
  exports.FILE_SYMBOL = FILE_SYMBOL;
81
45
  var PROMISE_SYMBOL = (0, _symbol.default)('PROMISE_SYMBOL');
46
+
82
47
  /**
83
48
  * @class
84
49
  */
85
-
86
50
  var ShareActivity = _webexCore.WebexPlugin.extend({
87
51
  getSymbols: function getSymbols() {
88
52
  return {
@@ -124,7 +88,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
124
88
  },
125
89
  initialize: function initialize(attrs, options) {
126
90
  (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, [attrs, options]);
127
-
128
91
  if (attrs && attrs.conversation) {
129
92
  this.spaceUrl = _promise.default.resolve(attrs.conversation._spaceUrl || this._retrieveSpaceUrl("".concat(attrs.conversation.url, "/space")).then(function (url) {
130
93
  attrs.conversation._spaceUrl = url;
@@ -136,7 +99,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
136
99
  }));
137
100
  }
138
101
  },
139
-
140
102
  /**
141
103
  * Adds an additional GIF to the share activity
142
104
  * Different from regular add to skip uploading to webex files service
@@ -147,12 +109,12 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
147
109
  * @returns {Promise}
148
110
  */
149
111
  addGif: function addGif(gif, options) {
150
- var gifToAdd = this.uploads.get(gif); // If the gif already exists, then don't do anything
112
+ var gifToAdd = this.uploads.get(gif);
151
113
 
114
+ // If the gif already exists, then don't do anything
152
115
  if (gifToAdd) {
153
116
  return _promise.default.resolve();
154
117
  }
155
-
156
118
  gifToAdd = _objectSpread((0, _defineProperty2.default)({
157
119
  displayName: gif.name,
158
120
  fileSize: gif.size || gif.byteLength || gif.length,
@@ -168,12 +130,12 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
168
130
  }
169
131
  }, FILE_SYMBOL, gif), (0, _pick2.default)(options, 'actions'));
170
132
  this.uploads.set(gif, gifToAdd);
133
+
171
134
  /* Instead of encryptBinary, which produces a encrypted version of
172
135
  * the file for upload and a SCR (contains info needed to encrypt the
173
136
  * SCR itself and the displayName), we directly create an SCR.
174
137
  * Because we are skipping uploading, the encrypted file is not needed.
175
138
  */
176
-
177
139
  return _nodeScr.default.create().then(function (scr) {
178
140
  scr.loc = gif.url;
179
141
  gifToAdd.scr = scr;
@@ -183,7 +145,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
183
145
  gifToAdd.image.scr = thumbnailScr;
184
146
  });
185
147
  },
186
-
187
148
  /**
188
149
  * Adds an additional file to the share and begins submitting it to webex
189
150
  * files
@@ -194,16 +155,13 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
194
155
  */
195
156
  add: function add(file, options) {
196
157
  var _objectSpread3,
197
- _this = this;
198
-
158
+ _this = this;
199
159
  options = options || {};
200
- options.claimedFileType = file.displayName.substring(file.displayName.lastIndexOf('.'));
160
+ options.claimedFileType = file.name.substring(file.name.lastIndexOf('.'));
201
161
  var upload = this.uploads.get(file);
202
-
203
162
  if (upload) {
204
163
  return upload[PROMISE_SYMBOL];
205
164
  }
206
-
207
165
  var emitter = new _events.EventEmitter();
208
166
  upload = _objectSpread((_objectSpread3 = {
209
167
  displayName: file.name,
@@ -225,73 +183,61 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
225
183
  }).then(function (imageData) {
226
184
  var main = _this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
227
185
  var scr = _ref.scr,
228
- cdata = _ref.cdata;
186
+ cdata = _ref.cdata;
229
187
  upload.scr = scr;
230
188
  return _promise.default.all([cdata, _this.spaceUrl]);
231
189
  }).then(function (_ref2) {
232
190
  var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
233
- cdata = _ref3[0],
234
- spaceUrl = _ref3[1];
235
-
191
+ cdata = _ref3[0],
192
+ spaceUrl = _ref3[1];
236
193
  var uploadPromise = _this._upload(cdata, "".concat(spaceUrl, "/upload_sessions"), options);
237
-
238
194
  (0, _common.transferEvents)('progress', uploadPromise, emitter);
239
195
  return uploadPromise;
240
196
  }).then(function (metadata) {
241
197
  upload.url = upload.scr.loc = metadata.downloadUrl;
242
198
  });
243
-
244
199
  var thumb;
245
-
246
200
  if (imageData) {
247
201
  var _imageData = (0, _slicedToArray2.default)(imageData, 3),
248
- thumbnail = _imageData[0],
249
- fileDimensions = _imageData[1],
250
- thumbnailDimensions = _imageData[2];
251
-
202
+ thumbnail = _imageData[0],
203
+ fileDimensions = _imageData[1],
204
+ thumbnailDimensions = _imageData[2];
252
205
  (0, _assign.default)(upload, fileDimensions);
253
-
254
206
  if (thumbnail && thumbnailDimensions) {
255
207
  upload.image = thumbnailDimensions;
256
208
  thumb = _this.webex.internal.encryption.encryptBinary(thumbnail).then(function (_ref4) {
257
209
  var scr = _ref4.scr,
258
- cdata = _ref4.cdata;
210
+ cdata = _ref4.cdata;
259
211
  upload.image.scr = scr;
260
212
  return _promise.default.all([cdata, _this.hiddenSpaceUrl]);
261
213
  }).then(function (_ref5) {
262
214
  var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
263
- cdata = _ref6[0],
264
- spaceUrl = _ref6[1];
265
-
215
+ cdata = _ref6[0],
216
+ spaceUrl = _ref6[1];
266
217
  return _this._upload(cdata, "".concat(spaceUrl, "/upload_sessions"));
267
218
  }).then(function (metadata) {
268
219
  upload.image.url = upload.image.scr.loc = metadata.downloadUrl;
269
220
  });
270
221
  }
271
222
  }
272
-
273
223
  return _promise.default.all([main, thumb]);
274
224
  });
275
225
  upload[PROMISE_SYMBOL] = promise;
276
226
  (0, _common.proxyEvents)(emitter, promise);
277
227
  return promise;
278
228
  },
279
-
280
229
  /**
281
230
  * Fetches the files from the share
282
231
  * @returns {Array}
283
232
  */
284
233
  getFiles: function getFiles() {
285
234
  var files = [];
286
-
287
235
  var _iterator = _createForOfIteratorHelper(this.uploads),
288
- _step;
289
-
236
+ _step;
290
237
  try {
291
238
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
292
239
  var _step$value = (0, _slicedToArray2.default)(_step.value, 1),
293
- key = _step$value[0];
294
-
240
+ key = _step$value[0];
295
241
  files.push(this.uploads.get(key)[FILE_SYMBOL]);
296
242
  }
297
243
  } catch (err) {
@@ -299,10 +245,8 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
299
245
  } finally {
300
246
  _iterator.f();
301
247
  }
302
-
303
248
  return files;
304
249
  },
305
-
306
250
  /**
307
251
  * @param {File} file
308
252
  * @param {string} uri
@@ -313,18 +257,15 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
313
257
  _upload: function _upload(file, uri, uploadOptions) {
314
258
  var fileSize = file.length || file.size || file.byteLength;
315
259
  var fileHash = (0, _sha.default)(file).toString();
316
-
317
260
  var _ref7 = uploadOptions !== null && uploadOptions !== void 0 ? uploadOptions : {},
318
- role = _ref7.role,
319
- claimedFileType = _ref7.claimedFileType;
320
-
261
+ role = _ref7.role,
262
+ claimedFileType = _ref7.claimedFileType;
321
263
  var initializeBody = _objectSpread({
322
264
  fileSize: fileSize,
323
265
  claimedFileType: claimedFileType
324
266
  }, role && {
325
267
  role: role
326
268
  });
327
-
328
269
  return this.webex.upload({
329
270
  uri: uri,
330
271
  file: file,
@@ -352,7 +293,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
352
293
  }
353
294
  });
354
295
  },
355
-
356
296
  /**
357
297
  * Removes the specified file from the share (Does not currently delete the
358
298
  * uploaded file)
@@ -360,11 +300,11 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
360
300
  * @returns {Promise}
361
301
  */
362
302
  remove: function remove(file) {
363
- this.uploads.delete(file); // Returns a promise for future-proofiness.
303
+ this.uploads.delete(file);
364
304
 
305
+ // Returns a promise for future-proofiness.
365
306
  return _promise.default.resolve();
366
307
  },
367
-
368
308
  /**
369
309
  * @private
370
310
  * @returns {Promise<Object>}
@@ -373,7 +313,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
373
313
  if (!this.uploads.size) {
374
314
  throw new Error('Cannot submit a share activity without at least one file');
375
315
  }
376
-
377
316
  var activity = {
378
317
  verb: 'share',
379
318
  object: {
@@ -397,7 +336,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
397
336
  return activity;
398
337
  });
399
338
  },
400
-
401
339
  /**
402
340
  * @param {Array} items
403
341
  * @param {string} mimeType
@@ -411,7 +349,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
411
349
  });
412
350
  }));
413
351
  },
414
-
415
352
  /**
416
353
  * @param {Array} items
417
354
  * @private
@@ -422,26 +359,19 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
422
359
  if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {
423
360
  return 'documents';
424
361
  }
425
-
426
362
  var mimeTypes = (0, _filter2.default)((0, _map3.default)(items, 'mimeType'));
427
-
428
363
  if (mimeTypes.length !== items.length) {
429
364
  return 'documents';
430
365
  }
431
-
432
366
  var contentCategory = mimeTypes[0].split('/').shift();
433
-
434
367
  if (contentCategory !== 'video' && contentCategory !== 'image') {
435
368
  return 'documents';
436
369
  }
437
-
438
370
  var _iterator2 = _createForOfIteratorHelper(mimeTypes),
439
- _step2;
440
-
371
+ _step2;
441
372
  try {
442
373
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
443
374
  var mimeType = _step2.value;
444
-
445
375
  if (mimeType.split('/').shift() !== contentCategory) {
446
376
  return 'documents';
447
377
  }
@@ -451,10 +381,8 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
451
381
  } finally {
452
382
  _iterator2.f();
453
383
  }
454
-
455
384
  return "".concat(contentCategory, "s");
456
385
  },
457
-
458
386
  /**
459
387
  * @param {string} uri
460
388
  * @returns {Promise}
@@ -467,8 +395,9 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
467
395
  return res.body.spaceUrl;
468
396
  });
469
397
  },
470
- version: "3.0.0-beta.15"
398
+ version: "3.0.0-beta.150"
471
399
  });
400
+
472
401
  /**
473
402
  * Instantiates a ShareActivity
474
403
  * @param {Object} conversation
@@ -476,38 +405,29 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
476
405
  * @param {ProxyWebex} webex
477
406
  * @returns {ShareActivity}
478
407
  */
479
-
480
-
481
408
  ShareActivity.create = function create(conversation, object, webex) {
482
409
  var _object$object, _files$items, _files;
483
-
484
410
  if (object instanceof ShareActivity) {
485
411
  return object;
486
412
  }
487
-
488
413
  var files;
489
-
490
414
  if (object !== null && object !== void 0 && (_object$object = object.object) !== null && _object$object !== void 0 && _object$object.files) {
491
415
  files = object.object.files;
492
416
  (0, _deleteProperty.default)(object.object, 'files');
493
417
  }
494
-
495
418
  var share = new ShareActivity(_objectSpread({
496
419
  conversation: conversation
497
420
  }, object), {
498
421
  parent: webex
499
422
  });
500
423
  files = (_files$items = (_files = files) === null || _files === void 0 ? void 0 : _files.items) !== null && _files$items !== void 0 ? _files$items : files;
501
-
502
424
  if (files) {
503
425
  files.forEach(function (file) {
504
426
  return share.add(file);
505
427
  });
506
428
  }
507
-
508
429
  return share;
509
430
  };
510
-
511
431
  var _default2 = ShareActivity;
512
432
  exports.default = _default2;
513
433
  //# sourceMappingURL=share-activity.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EMITTER_SYMBOL","FILE_SYMBOL","PROMISE_SYMBOL","ShareActivity","WebexPlugin","extend","getSymbols","file","emitter","namespace","derived","target","deps","fn","conversation","session","claimedFileType","required","type","content","clientTempId","displayName","enableThumbnails","default","hiddenSpaceUrl","mentions","spaceUrl","uploads","initialize","attrs","options","prototype","resolve","_spaceUrl","_retrieveSpaceUrl","url","then","_hiddenSpaceUrl","addGif","gif","gifToAdd","get","name","fileSize","size","byteLength","length","mimeType","objectType","height","width","image","set","SCR","create","scr","loc","thumbnailScr","add","substring","lastIndexOf","upload","EventEmitter","promise","detectFileType","logger","processImage","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","cdata","all","uploadPromise","_upload","transferEvents","metadata","downloadUrl","thumb","thumbnail","fileDimensions","thumbnailDimensions","proxyEvents","getFiles","files","key","push","uri","uploadOptions","fileHash","sha256","toString","role","initializeBody","qs","transcode","phases","body","$url","uploadUrl","finalize","$uri","finishUploadUrl","remove","delete","prepare","Error","activity","verb","object","undefined","items","promises","forEach","item","contentCategory","_determineContentCategory","_itemContainsActionWithMimeType","map","actions","mimeTypes","split","shift","request","method","res","share","parent"],"sources":["share-activity.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport SCR from 'node-scr';\nimport {proxyEvents, transferEvents} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {filter, map, pick, some} from 'lodash';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport sha256 from 'crypto-js/sha256';\n\nexport const EMITTER_SYMBOL = Symbol('EMITTER_SYMBOL');\nexport const FILE_SYMBOL = Symbol('FILE_SYMBOL');\nconst PROMISE_SYMBOL = Symbol('PROMISE_SYMBOL');\n\n/**\n * @class\n */\nconst ShareActivity = WebexPlugin.extend({\n getSymbols() {\n return {\n file: FILE_SYMBOL,\n emitter: EMITTER_SYMBOL,\n };\n },\n\n namespace: 'Conversation',\n\n derived: {\n target: {\n deps: ['conversation'],\n fn() {\n return this.conversation;\n },\n },\n },\n\n session: {\n claimedFileType: 'string',\n conversation: {\n required: true,\n type: 'object',\n },\n\n content: 'string',\n\n clientTempId: 'string',\n\n displayName: 'string',\n\n enableThumbnails: {\n default: true,\n type: 'boolean',\n },\n\n hiddenSpaceUrl: 'object',\n\n mentions: 'object',\n\n spaceUrl: 'object',\n\n uploads: {\n type: 'object',\n default() {\n return new Map();\n },\n },\n },\n\n initialize(attrs, options) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\n\n if (attrs && attrs.conversation) {\n this.spaceUrl = Promise.resolve(\n attrs.conversation._spaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space`).then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n })\n );\n this.hiddenSpaceUrl = Promise.resolve(\n attrs.conversation._hiddenSpaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`).then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\n })\n );\n }\n },\n\n /**\n * Adds an additional GIF to the share activity\n * Different from regular add to skip uploading to webex files service\n * @param {File} gif\n * @param {File} gif.image // thumbnail\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {Promise}\n */\n addGif(gif, options) {\n let gifToAdd = this.uploads.get(gif);\n\n // If the gif already exists, then don't do anything\n if (gifToAdd) {\n return Promise.resolve();\n }\n\n gifToAdd = {\n displayName: gif.name,\n fileSize: gif.size || gif.byteLength || gif.length,\n mimeType: gif.type,\n url: 'https://giphy.com',\n objectType: 'file',\n height: gif.height,\n width: gif.width,\n image: {\n height: gif.image.height,\n width: gif.image.width,\n url: 'https://giphy.com',\n },\n [FILE_SYMBOL]: gif,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(gif, gifToAdd);\n\n /* Instead of encryptBinary, which produces a encrypted version of\n * the file for upload and a SCR (contains info needed to encrypt the\n * SCR itself and the displayName), we directly create an SCR.\n * Because we are skipping uploading, the encrypted file is not needed.\n */\n return SCR.create()\n .then((scr) => {\n scr.loc = gif.url;\n gifToAdd.scr = scr;\n\n return SCR.create();\n })\n .then((thumbnailScr) => {\n thumbnailScr.loc = gif.image.url;\n gifToAdd.image.scr = thumbnailScr;\n });\n },\n\n /**\n * Adds an additional file to the share and begins submitting it to webex\n * files\n * @param {File} file\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {EventEmittingPromise}\n */\n add(file, options) {\n options = options || {};\n options.claimedFileType = file.displayName.substring(file.displayName.lastIndexOf('.'));\n let upload = this.uploads.get(file);\n\n if (upload) {\n return upload[PROMISE_SYMBOL];\n }\n const emitter = new EventEmitter();\n\n upload = {\n displayName: file.name,\n fileSize: file.size || file.byteLength || file.length,\n mimeType: file.type,\n objectType: 'file',\n [EMITTER_SYMBOL]: emitter,\n [FILE_SYMBOL]: file,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(file, upload);\n const promise = detectFileType(file, this.logger)\n .then((type) => {\n upload.mimeType = type;\n\n return processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n });\n })\n .then((imageData) => {\n const main = this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) => {\n upload.scr = scr;\n\n return Promise.all([cdata, this.spaceUrl]);\n })\n .then(([cdata, spaceUrl]) => {\n const uploadPromise = this._upload(cdata, `${spaceUrl}/upload_sessions`, options);\n\n transferEvents('progress', uploadPromise, emitter);\n\n return uploadPromise;\n })\n .then((metadata) => {\n upload.url = upload.scr.loc = metadata.downloadUrl;\n });\n\n let thumb;\n\n if (imageData) {\n const [thumbnail, fileDimensions, thumbnailDimensions] = imageData;\n\n Object.assign(upload, fileDimensions);\n\n if (thumbnail && thumbnailDimensions) {\n upload.image = thumbnailDimensions;\n thumb = this.webex.internal.encryption\n .encryptBinary(thumbnail)\n .then(({scr, cdata}) => {\n upload.image.scr = scr;\n\n return Promise.all([cdata, this.hiddenSpaceUrl]);\n })\n .then(([cdata, spaceUrl]) => this._upload(cdata, `${spaceUrl}/upload_sessions`))\n .then((metadata) => {\n upload.image.url = upload.image.scr.loc = metadata.downloadUrl;\n });\n }\n }\n\n return Promise.all([main, thumb]);\n });\n\n upload[PROMISE_SYMBOL] = promise;\n\n proxyEvents(emitter, promise);\n\n return promise;\n },\n\n /**\n * Fetches the files from the share\n * @returns {Array}\n */\n getFiles() {\n const files = [];\n\n for (const [key] of this.uploads) {\n files.push(this.uploads.get(key)[FILE_SYMBOL]);\n }\n\n return files;\n },\n\n /**\n * @param {File} file\n * @param {string} uri\n * @param {Object} uploadOptions - Optional object adding additional params to request body\n * @private\n * @returns {Promise}\n */\n _upload(file, uri, uploadOptions) {\n const fileSize = file.length || file.size || file.byteLength;\n const fileHash = sha256(file).toString();\n const {role, claimedFileType} = uploadOptions ?? {};\n const initializeBody = {fileSize, claimedFileType, ...(role && {role})};\n\n return this.webex.upload({\n uri,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {\n body: initializeBody,\n },\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize, fileHash},\n },\n },\n });\n },\n\n /**\n * Removes the specified file from the share (Does not currently delete the\n * uploaded file)\n * @param {File} file\n * @returns {Promise}\n */\n remove(file) {\n this.uploads.delete(file);\n\n // Returns a promise for future-proofiness.\n return Promise.resolve();\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n prepare() {\n if (!this.uploads.size) {\n throw new Error('Cannot submit a share activity without at least one file');\n }\n\n const activity = {\n verb: 'share',\n object: {\n objectType: 'content',\n displayName: this.object && this.object.displayName ? this.object.displayName : undefined,\n content: this.object && this.object.content ? this.object.content : undefined,\n mentions: this.object && this.object.mentions ? this.object.mentions : undefined,\n files: {\n items: [],\n },\n },\n clientTempId: this.clientTempId,\n };\n\n const promises = [];\n\n this.uploads.forEach((item) => {\n activity.object.files.items.push(item);\n promises.push(item[PROMISE_SYMBOL]);\n });\n\n activity.object.contentCategory = this._determineContentCategory(activity.object.files.items);\n\n return Promise.all(promises).then(() => activity);\n },\n\n /**\n * @param {Array} items\n * @param {string} mimeType\n * @private\n * @returns {boolean}\n */\n _itemContainsActionWithMimeType(items, mimeType) {\n return some(items.map((item) => some(item.actions, {mimeType})));\n },\n\n /**\n * @param {Array} items\n * @private\n * @returns {string}\n */\n _determineContentCategory(items) {\n // determine if the items contain an image\n if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {\n return 'documents';\n }\n\n const mimeTypes = filter(map(items, 'mimeType'));\n\n if (mimeTypes.length !== items.length) {\n return 'documents';\n }\n\n const contentCategory = mimeTypes[0].split('/').shift();\n\n if (contentCategory !== 'video' && contentCategory !== 'image') {\n return 'documents';\n }\n\n for (const mimeType of mimeTypes) {\n if (mimeType.split('/').shift() !== contentCategory) {\n return 'documents';\n }\n }\n\n return `${contentCategory}s`;\n },\n\n /**\n * @param {string} uri\n * @returns {Promise}\n */\n _retrieveSpaceUrl(uri) {\n return this.webex\n .request({\n method: 'PUT',\n uri,\n })\n .then((res) => res.body.spaceUrl);\n },\n});\n\n/**\n * Instantiates a ShareActivity\n * @param {Object} conversation\n * @param {ShareActivity|Object|array} object\n * @param {ProxyWebex} webex\n * @returns {ShareActivity}\n */\nShareActivity.create = function create(conversation, object, webex) {\n if (object instanceof ShareActivity) {\n return object;\n }\n\n let files;\n\n if (object?.object?.files) {\n files = object.object.files;\n Reflect.deleteProperty(object.object, 'files');\n }\n\n const share = new ShareActivity(\n {\n conversation,\n ...object,\n },\n {\n parent: webex,\n }\n );\n\n files = files?.items ?? files;\n if (files) {\n files.forEach((file) => share.add(file));\n }\n\n return share;\n};\n\nexport default ShareActivity;\n"],"mappings":"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"}
1
+ {"version":3,"names":["EMITTER_SYMBOL","FILE_SYMBOL","PROMISE_SYMBOL","ShareActivity","WebexPlugin","extend","getSymbols","file","emitter","namespace","derived","target","deps","fn","conversation","session","claimedFileType","required","type","content","clientTempId","displayName","enableThumbnails","default","hiddenSpaceUrl","mentions","spaceUrl","uploads","initialize","attrs","options","prototype","resolve","_spaceUrl","_retrieveSpaceUrl","url","then","_hiddenSpaceUrl","addGif","gif","gifToAdd","get","name","fileSize","size","byteLength","length","mimeType","objectType","height","width","image","set","SCR","create","scr","loc","thumbnailScr","add","substring","lastIndexOf","upload","EventEmitter","promise","detectFileType","logger","processImage","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","cdata","all","uploadPromise","_upload","transferEvents","metadata","downloadUrl","thumb","thumbnail","fileDimensions","thumbnailDimensions","proxyEvents","getFiles","files","key","push","uri","uploadOptions","fileHash","sha256","toString","role","initializeBody","qs","transcode","phases","body","$url","uploadUrl","finalize","$uri","finishUploadUrl","remove","delete","prepare","Error","activity","verb","object","undefined","items","promises","forEach","item","contentCategory","_determineContentCategory","_itemContainsActionWithMimeType","map","actions","mimeTypes","split","shift","request","method","res","share","parent"],"sources":["share-activity.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport SCR from 'node-scr';\nimport {proxyEvents, transferEvents} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {filter, map, pick, some} from 'lodash';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport sha256 from 'crypto-js/sha256';\n\nexport const EMITTER_SYMBOL = Symbol('EMITTER_SYMBOL');\nexport const FILE_SYMBOL = Symbol('FILE_SYMBOL');\nconst PROMISE_SYMBOL = Symbol('PROMISE_SYMBOL');\n\n/**\n * @class\n */\nconst ShareActivity = WebexPlugin.extend({\n getSymbols() {\n return {\n file: FILE_SYMBOL,\n emitter: EMITTER_SYMBOL,\n };\n },\n\n namespace: 'Conversation',\n\n derived: {\n target: {\n deps: ['conversation'],\n fn() {\n return this.conversation;\n },\n },\n },\n\n session: {\n claimedFileType: 'string',\n conversation: {\n required: true,\n type: 'object',\n },\n\n content: 'string',\n\n clientTempId: 'string',\n\n displayName: 'string',\n\n enableThumbnails: {\n default: true,\n type: 'boolean',\n },\n\n hiddenSpaceUrl: 'object',\n\n mentions: 'object',\n\n spaceUrl: 'object',\n\n uploads: {\n type: 'object',\n default() {\n return new Map();\n },\n },\n },\n\n initialize(attrs, options) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\n\n if (attrs && attrs.conversation) {\n this.spaceUrl = Promise.resolve(\n attrs.conversation._spaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space`).then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n })\n );\n this.hiddenSpaceUrl = Promise.resolve(\n attrs.conversation._hiddenSpaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`).then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\n })\n );\n }\n },\n\n /**\n * Adds an additional GIF to the share activity\n * Different from regular add to skip uploading to webex files service\n * @param {File} gif\n * @param {File} gif.image // thumbnail\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {Promise}\n */\n addGif(gif, options) {\n let gifToAdd = this.uploads.get(gif);\n\n // If the gif already exists, then don't do anything\n if (gifToAdd) {\n return Promise.resolve();\n }\n\n gifToAdd = {\n displayName: gif.name,\n fileSize: gif.size || gif.byteLength || gif.length,\n mimeType: gif.type,\n url: 'https://giphy.com',\n objectType: 'file',\n height: gif.height,\n width: gif.width,\n image: {\n height: gif.image.height,\n width: gif.image.width,\n url: 'https://giphy.com',\n },\n [FILE_SYMBOL]: gif,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(gif, gifToAdd);\n\n /* Instead of encryptBinary, which produces a encrypted version of\n * the file for upload and a SCR (contains info needed to encrypt the\n * SCR itself and the displayName), we directly create an SCR.\n * Because we are skipping uploading, the encrypted file is not needed.\n */\n return SCR.create()\n .then((scr) => {\n scr.loc = gif.url;\n gifToAdd.scr = scr;\n\n return SCR.create();\n })\n .then((thumbnailScr) => {\n thumbnailScr.loc = gif.image.url;\n gifToAdd.image.scr = thumbnailScr;\n });\n },\n\n /**\n * Adds an additional file to the share and begins submitting it to webex\n * files\n * @param {File} file\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {EventEmittingPromise}\n */\n add(file, options) {\n options = options || {};\n options.claimedFileType = file.name.substring(file.name.lastIndexOf('.'));\n let upload = this.uploads.get(file);\n\n if (upload) {\n return upload[PROMISE_SYMBOL];\n }\n const emitter = new EventEmitter();\n\n upload = {\n displayName: file.name,\n fileSize: file.size || file.byteLength || file.length,\n mimeType: file.type,\n objectType: 'file',\n [EMITTER_SYMBOL]: emitter,\n [FILE_SYMBOL]: file,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(file, upload);\n const promise = detectFileType(file, this.logger)\n .then((type) => {\n upload.mimeType = type;\n\n return processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n });\n })\n .then((imageData) => {\n const main = this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) => {\n upload.scr = scr;\n\n return Promise.all([cdata, this.spaceUrl]);\n })\n .then(([cdata, spaceUrl]) => {\n const uploadPromise = this._upload(cdata, `${spaceUrl}/upload_sessions`, options);\n\n transferEvents('progress', uploadPromise, emitter);\n\n return uploadPromise;\n })\n .then((metadata) => {\n upload.url = upload.scr.loc = metadata.downloadUrl;\n });\n\n let thumb;\n\n if (imageData) {\n const [thumbnail, fileDimensions, thumbnailDimensions] = imageData;\n\n Object.assign(upload, fileDimensions);\n\n if (thumbnail && thumbnailDimensions) {\n upload.image = thumbnailDimensions;\n thumb = this.webex.internal.encryption\n .encryptBinary(thumbnail)\n .then(({scr, cdata}) => {\n upload.image.scr = scr;\n\n return Promise.all([cdata, this.hiddenSpaceUrl]);\n })\n .then(([cdata, spaceUrl]) => this._upload(cdata, `${spaceUrl}/upload_sessions`))\n .then((metadata) => {\n upload.image.url = upload.image.scr.loc = metadata.downloadUrl;\n });\n }\n }\n\n return Promise.all([main, thumb]);\n });\n\n upload[PROMISE_SYMBOL] = promise;\n\n proxyEvents(emitter, promise);\n\n return promise;\n },\n\n /**\n * Fetches the files from the share\n * @returns {Array}\n */\n getFiles() {\n const files = [];\n\n for (const [key] of this.uploads) {\n files.push(this.uploads.get(key)[FILE_SYMBOL]);\n }\n\n return files;\n },\n\n /**\n * @param {File} file\n * @param {string} uri\n * @param {Object} uploadOptions - Optional object adding additional params to request body\n * @private\n * @returns {Promise}\n */\n _upload(file, uri, uploadOptions) {\n const fileSize = file.length || file.size || file.byteLength;\n const fileHash = sha256(file).toString();\n const {role, claimedFileType} = uploadOptions ?? {};\n const initializeBody = {fileSize, claimedFileType, ...(role && {role})};\n\n return this.webex.upload({\n uri,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {\n body: initializeBody,\n },\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize, fileHash},\n },\n },\n });\n },\n\n /**\n * Removes the specified file from the share (Does not currently delete the\n * uploaded file)\n * @param {File} file\n * @returns {Promise}\n */\n remove(file) {\n this.uploads.delete(file);\n\n // Returns a promise for future-proofiness.\n return Promise.resolve();\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n prepare() {\n if (!this.uploads.size) {\n throw new Error('Cannot submit a share activity without at least one file');\n }\n\n const activity = {\n verb: 'share',\n object: {\n objectType: 'content',\n displayName: this.object && this.object.displayName ? this.object.displayName : undefined,\n content: this.object && this.object.content ? this.object.content : undefined,\n mentions: this.object && this.object.mentions ? this.object.mentions : undefined,\n files: {\n items: [],\n },\n },\n clientTempId: this.clientTempId,\n };\n\n const promises = [];\n\n this.uploads.forEach((item) => {\n activity.object.files.items.push(item);\n promises.push(item[PROMISE_SYMBOL]);\n });\n\n activity.object.contentCategory = this._determineContentCategory(activity.object.files.items);\n\n return Promise.all(promises).then(() => activity);\n },\n\n /**\n * @param {Array} items\n * @param {string} mimeType\n * @private\n * @returns {boolean}\n */\n _itemContainsActionWithMimeType(items, mimeType) {\n return some(items.map((item) => some(item.actions, {mimeType})));\n },\n\n /**\n * @param {Array} items\n * @private\n * @returns {string}\n */\n _determineContentCategory(items) {\n // determine if the items contain an image\n if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {\n return 'documents';\n }\n\n const mimeTypes = filter(map(items, 'mimeType'));\n\n if (mimeTypes.length !== items.length) {\n return 'documents';\n }\n\n const contentCategory = mimeTypes[0].split('/').shift();\n\n if (contentCategory !== 'video' && contentCategory !== 'image') {\n return 'documents';\n }\n\n for (const mimeType of mimeTypes) {\n if (mimeType.split('/').shift() !== contentCategory) {\n return 'documents';\n }\n }\n\n return `${contentCategory}s`;\n },\n\n /**\n * @param {string} uri\n * @returns {Promise}\n */\n _retrieveSpaceUrl(uri) {\n return this.webex\n .request({\n method: 'PUT',\n uri,\n })\n .then((res) => res.body.spaceUrl);\n },\n});\n\n/**\n * Instantiates a ShareActivity\n * @param {Object} conversation\n * @param {ShareActivity|Object|array} object\n * @param {ProxyWebex} webex\n * @returns {ShareActivity}\n */\nShareActivity.create = function create(conversation, object, webex) {\n if (object instanceof ShareActivity) {\n return object;\n }\n\n let files;\n\n if (object?.object?.files) {\n files = object.object.files;\n Reflect.deleteProperty(object.object, 'files');\n }\n\n const share = new ShareActivity(\n {\n conversation,\n ...object,\n },\n {\n parent: webex,\n }\n );\n\n files = files?.items ?? files;\n if (files) {\n files.forEach((file) => share.add(file));\n }\n\n return share;\n};\n\nexport default ShareActivity;\n"],"mappings":"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"}
package/dist/to-array.js CHANGED
@@ -1,35 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = toArray;
22
-
23
14
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
24
-
25
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
-
27
16
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
28
-
29
17
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
-
31
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
32
-
33
19
  /**
34
20
  * Helper to convert objects into arrays of transforms. probably belongs in
35
21
  * webex-core
@@ -41,7 +27,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
41
27
  function toArray(direction, obj) {
42
28
  return (0, _keys.default)(obj).map(function (name) {
43
29
  var entry = obj[name];
44
-
45
30
  if ((0, _isFunction2.default)(entry)) {
46
31
  return {
47
32
  name: name,
@@ -49,7 +34,6 @@ function toArray(direction, obj) {
49
34
  fn: entry
50
35
  };
51
36
  }
52
-
53
37
  return _objectSpread({
54
38
  name: name
55
39
  }, entry);
@@ -1 +1 @@
1
- {"version":3,"names":["toArray","direction","obj","map","name","entry","fn"],"sources":["to-array.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isFunction} from 'lodash';\n\n/**\n * Helper to convert objects into arrays of transforms. probably belongs in\n * webex-core\n * @param {string} direction \"inbound\"|\"outbound\"\n * @param {Object} obj\n * @private\n * @returns {Array}\n */\nexport default function toArray(direction, obj) {\n return Object.keys(obj).map((name) => {\n const entry = obj[name];\n\n if (isFunction(entry)) {\n return {\n name,\n direction,\n fn: entry,\n };\n }\n\n return {name, ...entry};\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,OAAT,CAAiBC,SAAjB,EAA4BC,GAA5B,EAAiC;EAC9C,OAAO,mBAAYA,GAAZ,EAAiBC,GAAjB,CAAqB,UAACC,IAAD,EAAU;IACpC,IAAMC,KAAK,GAAGH,GAAG,CAACE,IAAD,CAAjB;;IAEA,IAAI,0BAAWC,KAAX,CAAJ,EAAuB;MACrB,OAAO;QACLD,IAAI,EAAJA,IADK;QAELH,SAAS,EAATA,SAFK;QAGLK,EAAE,EAAED;MAHC,CAAP;IAKD;;IAED;MAAQD,IAAI,EAAJA;IAAR,GAAiBC,KAAjB;EACD,CAZM,CAAP;AAaD"}
1
+ {"version":3,"names":["toArray","direction","obj","map","name","entry","fn"],"sources":["to-array.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isFunction} from 'lodash';\n\n/**\n * Helper to convert objects into arrays of transforms. probably belongs in\n * webex-core\n * @param {string} direction \"inbound\"|\"outbound\"\n * @param {Object} obj\n * @private\n * @returns {Array}\n */\nexport default function toArray(direction, obj) {\n return Object.keys(obj).map((name) => {\n const entry = obj[name];\n\n if (isFunction(entry)) {\n return {\n name,\n direction,\n fn: entry,\n };\n }\n\n return {name, ...entry};\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,OAAO,CAACC,SAAS,EAAEC,GAAG,EAAE;EAC9C,OAAO,mBAAYA,GAAG,CAAC,CAACC,GAAG,CAAC,UAACC,IAAI,EAAK;IACpC,IAAMC,KAAK,GAAGH,GAAG,CAACE,IAAI,CAAC;IAEvB,IAAI,0BAAWC,KAAK,CAAC,EAAE;MACrB,OAAO;QACLD,IAAI,EAAJA,IAAI;QACJH,SAAS,EAATA,SAAS;QACTK,EAAE,EAAED;MACN,CAAC;IACH;IAEA;MAAQD,IAAI,EAAJA;IAAI,GAAKC,KAAK;EACxB,CAAC,CAAC;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-conversation",
3
- "version": "3.0.0-beta.15",
3
+ "version": "3.0.0-beta.150",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -20,26 +20,26 @@
20
20
  ]
21
21
  },
22
22
  "dependencies": {
23
- "@webex/common": "3.0.0-beta.15",
24
- "@webex/helper-html": "3.0.0-beta.15",
25
- "@webex/helper-image": "3.0.0-beta.15",
26
- "@webex/internal-plugin-conversation": "3.0.0-beta.15",
27
- "@webex/internal-plugin-encryption": "3.0.0-beta.15",
28
- "@webex/internal-plugin-user": "3.0.0-beta.15",
29
- "@webex/webex-core": "3.0.0-beta.15",
23
+ "@webex/common": "3.0.0-beta.150",
24
+ "@webex/helper-html": "3.0.0-beta.150",
25
+ "@webex/helper-image": "3.0.0-beta.150",
26
+ "@webex/internal-plugin-conversation": "3.0.0-beta.150",
27
+ "@webex/internal-plugin-encryption": "3.0.0-beta.150",
28
+ "@webex/internal-plugin-user": "3.0.0-beta.150",
29
+ "@webex/webex-core": "3.0.0-beta.150",
30
30
  "crypto-js": "^4.1.1",
31
31
  "lodash": "^4.17.21",
32
32
  "node-scr": "^0.3.0",
33
33
  "uuid": "^3.3.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@webex/test-helper-chai": "3.0.0-beta.15",
37
- "@webex/test-helper-file": "3.0.0-beta.15",
38
- "@webex/test-helper-make-local-url": "3.0.0-beta.15",
39
- "@webex/test-helper-mocha": "3.0.0-beta.15",
40
- "@webex/test-helper-mock-webex": "3.0.0-beta.15",
41
- "@webex/test-helper-retry": "3.0.0-beta.15",
42
- "@webex/test-helper-test-users": "3.0.0-beta.15",
36
+ "@webex/test-helper-chai": "3.0.0-beta.150",
37
+ "@webex/test-helper-file": "3.0.0-beta.150",
38
+ "@webex/test-helper-make-local-url": "3.0.0-beta.150",
39
+ "@webex/test-helper-mocha": "3.0.0-beta.150",
40
+ "@webex/test-helper-mock-webex": "3.0.0-beta.150",
41
+ "@webex/test-helper-retry": "3.0.0-beta.150",
42
+ "@webex/test-helper-test-users": "3.0.0-beta.150",
43
43
  "sinon": "^9.2.4"
44
44
  }
45
45
  }