@webex/internal-plugin-conversation 3.0.0-beta.9 → 3.0.0-bnr.2

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.
Files changed (57) hide show
  1. package/README.md +1 -3
  2. package/dist/activities.js +8 -69
  3. package/dist/activities.js.map +1 -1
  4. package/dist/activity-thread-ordering.js +19 -79
  5. package/dist/activity-thread-ordering.js.map +1 -1
  6. package/dist/config.js +1 -7
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +4 -5
  9. package/dist/constants.js.map +1 -1
  10. package/dist/conversation.js +790 -1199
  11. package/dist/conversation.js.map +1 -1
  12. package/dist/convo-error.js +0 -23
  13. package/dist/convo-error.js.map +1 -1
  14. package/dist/decryption-transforms.js +35 -98
  15. package/dist/decryption-transforms.js.map +1 -1
  16. package/dist/encryption-transforms.js +11 -48
  17. package/dist/encryption-transforms.js.map +1 -1
  18. package/dist/index.js +7 -50
  19. package/dist/index.js.map +1 -1
  20. package/dist/internal-plugin-conversation.d.ts +21 -0
  21. package/dist/share-activity.js +40 -106
  22. package/dist/share-activity.js.map +1 -1
  23. package/dist/to-array.js +9 -11
  24. package/dist/to-array.js.map +1 -1
  25. package/dist/tsdoc-metadata.json +11 -0
  26. package/dist/types/activities.d.ts +32 -0
  27. package/dist/types/activity-thread-ordering.d.ts +18 -0
  28. package/dist/types/config.d.ts +19 -0
  29. package/dist/types/constants.d.ts +5 -0
  30. package/dist/types/conversation.d.ts +2 -0
  31. package/dist/types/convo-error.d.ts +10 -0
  32. package/dist/types/decryption-transforms.d.ts +1 -0
  33. package/dist/types/encryption-transforms.d.ts +1 -0
  34. package/dist/types/index.d.ts +3 -0
  35. package/dist/types/share-activity.d.ts +7 -0
  36. package/dist/types/to-array.d.ts +9 -0
  37. package/package.json +15 -15
  38. package/src/activities.js +10 -7
  39. package/src/activity-thread-ordering.js +27 -30
  40. package/src/activity-threading.md +68 -49
  41. package/src/config.js +5 -5
  42. package/src/conversation.js +621 -589
  43. package/src/decryption-transforms.js +103 -62
  44. package/src/encryption-transforms.js +103 -83
  45. package/src/index.js +82 -66
  46. package/src/share-activity.js +64 -55
  47. package/src/to-array.js +2 -2
  48. package/test/integration/spec/create.js +184 -118
  49. package/test/integration/spec/encryption.js +250 -186
  50. package/test/integration/spec/get.js +761 -513
  51. package/test/integration/spec/mercury.js +37 -27
  52. package/test/integration/spec/share.js +292 -229
  53. package/test/integration/spec/verbs.js +628 -441
  54. package/test/unit/spec/conversation.js +265 -163
  55. package/test/unit/spec/decrypt-transforms.js +112 -131
  56. package/test/unit/spec/encryption-transforms.js +24 -18
  57. package/test/unit/spec/share-activity.js +37 -40
@@ -1,74 +1,52 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
8
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
3
9
  var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
4
-
5
10
  var _Symbol2 = require("@babel/runtime-corejs2/core-js/symbol");
6
-
7
11
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
8
-
9
12
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
10
-
11
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
12
-
13
13
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
14
-
15
14
  _Object$defineProperty(exports, "__esModule", {
16
15
  value: true
17
16
  });
18
-
19
17
  exports.default = exports.FILE_SYMBOL = exports.EMITTER_SYMBOL = void 0;
20
-
21
18
  var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
22
-
23
19
  var _map2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
24
-
25
20
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
26
-
27
21
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
28
-
29
22
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
30
-
31
23
  var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
32
-
33
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
34
-
35
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
36
-
37
26
  var _some2 = _interopRequireDefault(require("lodash/some"));
38
-
39
27
  var _pick2 = _interopRequireDefault(require("lodash/pick"));
40
-
41
28
  var _map3 = _interopRequireDefault(require("lodash/map"));
42
-
43
29
  var _filter2 = _interopRequireDefault(require("lodash/filter"));
44
-
45
30
  var _events = require("events");
46
-
47
31
  var _nodeScr = _interopRequireDefault(require("node-scr"));
48
-
49
32
  var _common = require("@webex/common");
50
-
51
33
  var _webexCore = require("@webex/webex-core");
52
-
53
34
  var _helperImage = require("@webex/helper-image");
54
-
55
35
  var _sha = _interopRequireDefault(require("crypto-js/sha256"));
56
-
57
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; } } }; }
58
-
59
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); }
60
-
61
- 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; }
62
-
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; }
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; }
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; }
63
41
  var EMITTER_SYMBOL = (0, _symbol.default)('EMITTER_SYMBOL');
64
42
  exports.EMITTER_SYMBOL = EMITTER_SYMBOL;
65
43
  var FILE_SYMBOL = (0, _symbol.default)('FILE_SYMBOL');
66
44
  exports.FILE_SYMBOL = FILE_SYMBOL;
67
45
  var PROMISE_SYMBOL = (0, _symbol.default)('PROMISE_SYMBOL');
46
+
68
47
  /**
69
48
  * @class
70
49
  */
71
-
72
50
  var ShareActivity = _webexCore.WebexPlugin.extend({
73
51
  getSymbols: function getSymbols() {
74
52
  return {
@@ -110,7 +88,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
110
88
  },
111
89
  initialize: function initialize(attrs, options) {
112
90
  (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, [attrs, options]);
113
-
114
91
  if (attrs && attrs.conversation) {
115
92
  this.spaceUrl = _promise.default.resolve(attrs.conversation._spaceUrl || this._retrieveSpaceUrl("".concat(attrs.conversation.url, "/space")).then(function (url) {
116
93
  attrs.conversation._spaceUrl = url;
@@ -122,7 +99,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
122
99
  }));
123
100
  }
124
101
  },
125
-
126
102
  /**
127
103
  * Adds an additional GIF to the share activity
128
104
  * Different from regular add to skip uploading to webex files service
@@ -133,13 +109,13 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
133
109
  * @returns {Promise}
134
110
  */
135
111
  addGif: function addGif(gif, options) {
136
- var gifToAdd = this.uploads.get(gif); // If the gif already exists, then don't do anything
112
+ var gifToAdd = this.uploads.get(gif);
137
113
 
114
+ // If the gif already exists, then don't do anything
138
115
  if (gifToAdd) {
139
116
  return _promise.default.resolve();
140
117
  }
141
-
142
- gifToAdd = (0, _assign.default)((0, _defineProperty2.default)({
118
+ gifToAdd = _objectSpread((0, _defineProperty2.default)({
143
119
  displayName: gif.name,
144
120
  fileSize: gif.size || gif.byteLength || gif.length,
145
121
  mimeType: gif.type,
@@ -154,12 +130,12 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
154
130
  }
155
131
  }, FILE_SYMBOL, gif), (0, _pick2.default)(options, 'actions'));
156
132
  this.uploads.set(gif, gifToAdd);
133
+
157
134
  /* Instead of encryptBinary, which produces a encrypted version of
158
135
  * the file for upload and a SCR (contains info needed to encrypt the
159
136
  * SCR itself and the displayName), we directly create an SCR.
160
137
  * Because we are skipping uploading, the encrypted file is not needed.
161
138
  */
162
-
163
139
  return _nodeScr.default.create().then(function (scr) {
164
140
  scr.loc = gif.url;
165
141
  gifToAdd.scr = scr;
@@ -169,7 +145,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
169
145
  gifToAdd.image.scr = thumbnailScr;
170
146
  });
171
147
  },
172
-
173
148
  /**
174
149
  * Adds an additional file to the share and begins submitting it to webex
175
150
  * files
@@ -179,24 +154,21 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
179
154
  * @returns {EventEmittingPromise}
180
155
  */
181
156
  add: function add(file, options) {
182
- var _Object$assign3,
183
- _this = this;
184
-
157
+ var _objectSpread3,
158
+ _this = this;
185
159
  options = options || {};
186
- options.claimedFileType = file.displayName.substring(file.displayName.lastIndexOf('.'));
160
+ options.claimedFileType = file.name.substring(file.name.lastIndexOf('.'));
187
161
  var upload = this.uploads.get(file);
188
-
189
162
  if (upload) {
190
163
  return upload[PROMISE_SYMBOL];
191
164
  }
192
-
193
165
  var emitter = new _events.EventEmitter();
194
- upload = (0, _assign.default)((_Object$assign3 = {
166
+ upload = _objectSpread((_objectSpread3 = {
195
167
  displayName: file.name,
196
168
  fileSize: file.size || file.byteLength || file.length,
197
169
  mimeType: file.type,
198
170
  objectType: 'file'
199
- }, (0, _defineProperty2.default)(_Object$assign3, EMITTER_SYMBOL, emitter), (0, _defineProperty2.default)(_Object$assign3, FILE_SYMBOL, file), _Object$assign3), (0, _pick2.default)(options, 'actions'));
171
+ }, (0, _defineProperty2.default)(_objectSpread3, EMITTER_SYMBOL, emitter), (0, _defineProperty2.default)(_objectSpread3, FILE_SYMBOL, file), _objectSpread3), (0, _pick2.default)(options, 'actions'));
200
172
  this.uploads.set(file, upload);
201
173
  var promise = (0, _helperImage.detectFileType)(file, this.logger).then(function (type) {
202
174
  upload.mimeType = type;
@@ -211,73 +183,61 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
211
183
  }).then(function (imageData) {
212
184
  var main = _this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
213
185
  var scr = _ref.scr,
214
- cdata = _ref.cdata;
186
+ cdata = _ref.cdata;
215
187
  upload.scr = scr;
216
188
  return _promise.default.all([cdata, _this.spaceUrl]);
217
189
  }).then(function (_ref2) {
218
190
  var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
219
- cdata = _ref3[0],
220
- spaceUrl = _ref3[1];
221
-
191
+ cdata = _ref3[0],
192
+ spaceUrl = _ref3[1];
222
193
  var uploadPromise = _this._upload(cdata, "".concat(spaceUrl, "/upload_sessions"), options);
223
-
224
194
  (0, _common.transferEvents)('progress', uploadPromise, emitter);
225
195
  return uploadPromise;
226
196
  }).then(function (metadata) {
227
197
  upload.url = upload.scr.loc = metadata.downloadUrl;
228
198
  });
229
-
230
199
  var thumb;
231
-
232
200
  if (imageData) {
233
201
  var _imageData = (0, _slicedToArray2.default)(imageData, 3),
234
- thumbnail = _imageData[0],
235
- fileDimensions = _imageData[1],
236
- thumbnailDimensions = _imageData[2];
237
-
202
+ thumbnail = _imageData[0],
203
+ fileDimensions = _imageData[1],
204
+ thumbnailDimensions = _imageData[2];
238
205
  (0, _assign.default)(upload, fileDimensions);
239
-
240
206
  if (thumbnail && thumbnailDimensions) {
241
207
  upload.image = thumbnailDimensions;
242
208
  thumb = _this.webex.internal.encryption.encryptBinary(thumbnail).then(function (_ref4) {
243
209
  var scr = _ref4.scr,
244
- cdata = _ref4.cdata;
210
+ cdata = _ref4.cdata;
245
211
  upload.image.scr = scr;
246
212
  return _promise.default.all([cdata, _this.hiddenSpaceUrl]);
247
213
  }).then(function (_ref5) {
248
214
  var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
249
- cdata = _ref6[0],
250
- spaceUrl = _ref6[1];
251
-
215
+ cdata = _ref6[0],
216
+ spaceUrl = _ref6[1];
252
217
  return _this._upload(cdata, "".concat(spaceUrl, "/upload_sessions"));
253
218
  }).then(function (metadata) {
254
219
  upload.image.url = upload.image.scr.loc = metadata.downloadUrl;
255
220
  });
256
221
  }
257
222
  }
258
-
259
223
  return _promise.default.all([main, thumb]);
260
224
  });
261
225
  upload[PROMISE_SYMBOL] = promise;
262
226
  (0, _common.proxyEvents)(emitter, promise);
263
227
  return promise;
264
228
  },
265
-
266
229
  /**
267
230
  * Fetches the files from the share
268
231
  * @returns {Array}
269
232
  */
270
233
  getFiles: function getFiles() {
271
234
  var files = [];
272
-
273
235
  var _iterator = _createForOfIteratorHelper(this.uploads),
274
- _step;
275
-
236
+ _step;
276
237
  try {
277
238
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
278
239
  var _step$value = (0, _slicedToArray2.default)(_step.value, 1),
279
- key = _step$value[0];
280
-
240
+ key = _step$value[0];
281
241
  files.push(this.uploads.get(key)[FILE_SYMBOL]);
282
242
  }
283
243
  } catch (err) {
@@ -285,10 +245,8 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
285
245
  } finally {
286
246
  _iterator.f();
287
247
  }
288
-
289
248
  return files;
290
249
  },
291
-
292
250
  /**
293
251
  * @param {File} file
294
252
  * @param {string} uri
@@ -299,14 +257,11 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
299
257
  _upload: function _upload(file, uri, uploadOptions) {
300
258
  var fileSize = file.length || file.size || file.byteLength;
301
259
  var fileHash = (0, _sha.default)(file).toString();
302
-
303
260
  var _ref7 = uploadOptions !== null && uploadOptions !== void 0 ? uploadOptions : {},
304
- role = _ref7.role,
305
- claimedFileType = _ref7.claimedFileType;
306
-
307
- var initializeBody = (0, _assign.default)({
308
- fileSize: fileSize
309
- }, {
261
+ role = _ref7.role,
262
+ claimedFileType = _ref7.claimedFileType;
263
+ var initializeBody = _objectSpread({
264
+ fileSize: fileSize,
310
265
  claimedFileType: claimedFileType
311
266
  }, role && {
312
267
  role: role
@@ -338,7 +293,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
338
293
  }
339
294
  });
340
295
  },
341
-
342
296
  /**
343
297
  * Removes the specified file from the share (Does not currently delete the
344
298
  * uploaded file)
@@ -346,11 +300,11 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
346
300
  * @returns {Promise}
347
301
  */
348
302
  remove: function remove(file) {
349
- this.uploads.delete(file); // Returns a promise for future-proofiness.
303
+ this.uploads.delete(file);
350
304
 
305
+ // Returns a promise for future-proofiness.
351
306
  return _promise.default.resolve();
352
307
  },
353
-
354
308
  /**
355
309
  * @private
356
310
  * @returns {Promise<Object>}
@@ -359,7 +313,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
359
313
  if (!this.uploads.size) {
360
314
  throw new Error('Cannot submit a share activity without at least one file');
361
315
  }
362
-
363
316
  var activity = {
364
317
  verb: 'share',
365
318
  object: {
@@ -383,7 +336,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
383
336
  return activity;
384
337
  });
385
338
  },
386
-
387
339
  /**
388
340
  * @param {Array} items
389
341
  * @param {string} mimeType
@@ -397,7 +349,6 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
397
349
  });
398
350
  }));
399
351
  },
400
-
401
352
  /**
402
353
  * @param {Array} items
403
354
  * @private
@@ -408,26 +359,19 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
408
359
  if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {
409
360
  return 'documents';
410
361
  }
411
-
412
362
  var mimeTypes = (0, _filter2.default)((0, _map3.default)(items, 'mimeType'));
413
-
414
363
  if (mimeTypes.length !== items.length) {
415
364
  return 'documents';
416
365
  }
417
-
418
366
  var contentCategory = mimeTypes[0].split('/').shift();
419
-
420
367
  if (contentCategory !== 'video' && contentCategory !== 'image') {
421
368
  return 'documents';
422
369
  }
423
-
424
370
  var _iterator2 = _createForOfIteratorHelper(mimeTypes),
425
- _step2;
426
-
371
+ _step2;
427
372
  try {
428
373
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
429
374
  var mimeType = _step2.value;
430
-
431
375
  if (mimeType.split('/').shift() !== contentCategory) {
432
376
  return 'documents';
433
377
  }
@@ -437,10 +381,8 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
437
381
  } finally {
438
382
  _iterator2.f();
439
383
  }
440
-
441
384
  return "".concat(contentCategory, "s");
442
385
  },
443
-
444
386
  /**
445
387
  * @param {string} uri
446
388
  * @returns {Promise}
@@ -453,8 +395,9 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
453
395
  return res.body.spaceUrl;
454
396
  });
455
397
  },
456
- version: "3.0.0-beta.9"
398
+ version: "3.0.0-bnr.2"
457
399
  });
400
+
458
401
  /**
459
402
  * Instantiates a ShareActivity
460
403
  * @param {Object} conversation
@@ -462,38 +405,29 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
462
405
  * @param {ProxyWebex} webex
463
406
  * @returns {ShareActivity}
464
407
  */
465
-
466
-
467
408
  ShareActivity.create = function create(conversation, object, webex) {
468
409
  var _object$object, _files$items, _files;
469
-
470
410
  if (object instanceof ShareActivity) {
471
411
  return object;
472
412
  }
473
-
474
413
  var files;
475
-
476
414
  if (object !== null && object !== void 0 && (_object$object = object.object) !== null && _object$object !== void 0 && _object$object.files) {
477
415
  files = object.object.files;
478
416
  (0, _deleteProperty.default)(object.object, 'files');
479
417
  }
480
-
481
- var share = new ShareActivity((0, _assign.default)({
418
+ var share = new ShareActivity(_objectSpread({
482
419
  conversation: conversation
483
420
  }, object), {
484
421
  parent: webex
485
422
  });
486
423
  files = (_files$items = (_files = files) === null || _files === void 0 ? void 0 : _files.items) !== null && _files$items !== void 0 ? _files$items : files;
487
-
488
424
  if (files) {
489
425
  files.forEach(function (file) {
490
426
  return share.add(file);
491
427
  });
492
428
  }
493
-
494
429
  return share;
495
430
  };
496
-
497
431
  var _default2 = ShareActivity;
498
432
  exports.default = _default2;
499
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(attrs.conversation._spaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space`)\n .then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n }));\n this.hiddenSpaceUrl = Promise.resolve(attrs.conversation._hiddenSpaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`)\n .then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\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 = Object.assign({\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 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 = Object.assign({\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 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.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\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.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\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 /**\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 = Object.assign({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)\n .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.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(Object.assign({\n conversation\n }, object), {\n parent: webex\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,21 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
3
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
10
  _Object$defineProperty(exports, "__esModule", {
8
11
  value: true
9
12
  });
10
-
11
13
  exports.default = toArray;
12
-
13
14
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
14
-
15
- var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
16
-
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
17
16
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
18
-
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; }
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; }
19
19
  /**
20
20
  * Helper to convert objects into arrays of transforms. probably belongs in
21
21
  * webex-core
@@ -27,7 +27,6 @@ var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
27
27
  function toArray(direction, obj) {
28
28
  return (0, _keys.default)(obj).map(function (name) {
29
29
  var entry = obj[name];
30
-
31
30
  if ((0, _isFunction2.default)(entry)) {
32
31
  return {
33
32
  name: name,
@@ -35,8 +34,7 @@ function toArray(direction, obj) {
35
34
  fn: entry
36
35
  };
37
36
  }
38
-
39
- return (0, _assign.default)({
37
+ return _objectSpread({
40
38
  name: name
41
39
  }, entry);
42
40
  });
@@ -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 Object.assign({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,OAAO,qBAAc;MAACD,IAAI,EAAJA;IAAD,CAAd,EAAsBC,KAAtB,CAAP;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"}
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.34.4"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,32 @@
1
+ export const OLDER: "older";
2
+ export const NEWER: "newer";
3
+ export const MID: "mid";
4
+ export const INITIAL: "initial";
5
+ export namespace ACTIVITY_TYPES {
6
+ const REPLY: string;
7
+ const EDIT: string;
8
+ const REACTION: string;
9
+ const REACTION_SELF: string;
10
+ const ROOT: string;
11
+ const CREATE: string;
12
+ const TOMBSTONE: string;
13
+ const DELETE: string;
14
+ const REPLY_EDIT: string;
15
+ }
16
+ export function getActivityType(activity: any): string;
17
+ export function getPublishedDate(activity?: {}): number;
18
+ export function isNewer(activity1: any, activity2: any): boolean;
19
+ export function sortActivitiesByPublishedDate(activities: any): any[];
20
+ export function getParentId(activity: any): any;
21
+ export function isRootActivity(act: any): boolean;
22
+ export function isReplyActivity(act: any): boolean;
23
+ export function isEditActivity(act: any): boolean;
24
+ export function isCreateActivity(act: any): boolean;
25
+ export function isDeleteActivity(act: any): boolean;
26
+ export function sanitizeActivity(activity: any): any;
27
+ export function getIsActivityOrphaned(activity: any, activities: any): boolean;
28
+ export function determineActivityType(activity: any, activities: any): string;
29
+ export function createRootActivity(activity: any): any;
30
+ export function createReplyActivity(activity: any): any;
31
+ export function createEditActivity(editActivity: any, activities: any): any;
32
+ export function createReplyEditActivity(editActivity: any, activities: any): any;
@@ -0,0 +1,18 @@
1
+ export const defaultMinDisplayableActivities: 20;
2
+ export const minBatchSize: 10;
3
+ export const fetchLoopCountMax: 100;
4
+ export const batchSizeIncrementCount: 10;
5
+ export function setValue(destination: Map<any, any>, key: string, value: any): Map<any, any>;
6
+ export function getValue(source: Map<any, any>, key: string): Map<any, any>;
7
+ export function getActivityObjectsFromMap(hashMap: any): any[];
8
+ export function activityManager(): object;
9
+ export function bookendManager(): object;
10
+ export function noMoreActivitiesManager(): object;
11
+ export function rootActivityManager(): object;
12
+ export function getLoopCounterFailsafe(): () => void;
13
+ export function getQuery(type: string, queryOptions: {
14
+ newestPublishedDate?: string;
15
+ oldestPublishedDate?: string;
16
+ batchSize?: number;
17
+ activityToSearch?: object;
18
+ }): object;