@webex/internal-plugin-conversation 3.0.0-beta.8 → 3.0.0-bnr.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/activities.js +8 -69
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js +19 -79
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/config.js +1 -7
- package/dist/config.js.map +1 -1
- package/dist/constants.js +4 -5
- package/dist/constants.js.map +1 -1
- package/dist/conversation.js +790 -1199
- package/dist/conversation.js.map +1 -1
- package/dist/convo-error.js +0 -23
- package/dist/convo-error.js.map +1 -1
- package/dist/decryption-transforms.js +35 -98
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js +11 -48
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js +7 -50
- package/dist/index.js.map +1 -1
- package/dist/internal-plugin-conversation.d.ts +21 -0
- package/dist/share-activity.js +40 -106
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js +9 -11
- package/dist/to-array.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/activities.d.ts +32 -0
- package/dist/types/activity-thread-ordering.d.ts +18 -0
- package/dist/types/config.d.ts +19 -0
- package/dist/types/constants.d.ts +5 -0
- package/dist/types/conversation.d.ts +2 -0
- package/dist/types/convo-error.d.ts +10 -0
- package/dist/types/decryption-transforms.d.ts +1 -0
- package/dist/types/encryption-transforms.d.ts +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/share-activity.d.ts +7 -0
- package/dist/types/to-array.d.ts +9 -0
- package/package.json +15 -15
- package/src/activities.js +10 -7
- package/src/activity-thread-ordering.js +27 -30
- package/src/activity-threading.md +68 -49
- package/src/config.js +5 -5
- package/src/conversation.js +621 -589
- package/src/decryption-transforms.js +103 -62
- package/src/encryption-transforms.js +103 -83
- package/src/index.js +82 -66
- package/src/share-activity.js +64 -55
- package/src/to-array.js +2 -2
- package/test/integration/spec/create.js +184 -118
- package/test/integration/spec/encryption.js +250 -186
- package/test/integration/spec/get.js +761 -513
- package/test/integration/spec/mercury.js +37 -27
- package/test/integration/spec/share.js +292 -229
- package/test/integration/spec/verbs.js +628 -441
- package/test/unit/spec/conversation.js +265 -163
- package/test/unit/spec/decrypt-transforms.js +112 -131
- package/test/unit/spec/encryption-transforms.js +24 -18
- package/test/unit/spec/share-activity.js +37 -40
package/dist/share-activity.js
CHANGED
|
@@ -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
|
|
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);
|
|
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
|
|
183
|
-
|
|
184
|
-
|
|
157
|
+
var _objectSpread3,
|
|
158
|
+
_this = this;
|
|
185
159
|
options = options || {};
|
|
186
|
-
options.claimedFileType = file.
|
|
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 = (
|
|
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)(
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
-
|
|
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
|
-
|
|
250
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
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);
|
|
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
|
-
|
|
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-
|
|
398
|
+
version: "3.0.0-bnr.0"
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AAEA;AACA;AACA;AAEA;AACA;AAAsC;AAAA;AAAA;AAAA;AAAA;AAE/B,IAAMA,cAAc,GAAG,qBAAO,gBAAgB,CAAC;AAAC;AAChD,IAAMC,WAAW,GAAG,qBAAO,aAAa,CAAC;AAAC;AACjD,IAAMC,cAAc,GAAG,qBAAO,gBAAgB,CAAC;;AAE/C;AACA;AACA;AACA,IAAMC,aAAa,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACvCC,UAAU,wBAAG;IACX,OAAO;MACLC,IAAI,EAAEN,WAAW;MACjBO,OAAO,EAAER;IACX,CAAC;EACH,CAAC;EAEDS,SAAS,EAAE,cAAc;EAEzBC,OAAO,EAAE;IACPC,MAAM,EAAE;MACNC,IAAI,EAAE,CAAC,cAAc,CAAC;MACtBC,EAAE,gBAAG;QACH,OAAO,IAAI,CAACC,YAAY;MAC1B;IACF;EACF,CAAC;EAEDC,OAAO,EAAE;IACPC,eAAe,EAAE,QAAQ;IACzBF,YAAY,EAAE;MACZG,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAE;IACR,CAAC;IAEDC,OAAO,EAAE,QAAQ;IAEjBC,YAAY,EAAE,QAAQ;IAEtBC,WAAW,EAAE,QAAQ;IAErBC,gBAAgB,EAAE;MAChBC,OAAO,EAAE,IAAI;MACbL,IAAI,EAAE;IACR,CAAC;IAEDM,cAAc,EAAE,QAAQ;IAExBC,QAAQ,EAAE,QAAQ;IAElBC,QAAQ,EAAE,QAAQ;IAElBC,OAAO,EAAE;MACPT,IAAI,EAAE,QAAQ;MACdK,OAAO,sBAAG;QACR,OAAO,mBAAS;MAClB;IACF;EACF,CAAC;EAEDK,UAAU,sBAACC,KAAK,EAAEC,OAAO,EAAE;IACzB,oBAAc1B,sBAAW,CAAC2B,SAAS,CAACH,UAAU,EAAE,IAAI,EAAE,CAACC,KAAK,EAAEC,OAAO,CAAC,CAAC;IAEvE,IAAID,KAAK,IAAIA,KAAK,CAACf,YAAY,EAAE;MAC/B,IAAI,CAACY,QAAQ,GAAG,iBAAQM,OAAO,CAC7BH,KAAK,CAACf,YAAY,CAACmB,SAAS,IAC1B,IAAI,CAACC,iBAAiB,WAAIL,KAAK,CAACf,YAAY,CAACqB,GAAG,YAAS,CAACC,IAAI,CAAC,UAACD,GAAG,EAAK;QACtEN,KAAK,CAACf,YAAY,CAACmB,SAAS,GAAGE,GAAG;QAElC,OAAOA,GAAG;MACZ,CAAC,CAAC,CACL;MACD,IAAI,CAACX,cAAc,GAAG,iBAAQQ,OAAO,CACnCH,KAAK,CAACf,YAAY,CAACuB,eAAe,IAChC,IAAI,CAACH,iBAAiB,WAAIL,KAAK,CAACf,YAAY,CAACqB,GAAG,mBAAgB,CAACC,IAAI,CAAC,UAACD,GAAG,EAAK;QAC7EN,KAAK,CAACf,YAAY,CAACuB,eAAe,GAAGF,GAAG;QAExC,OAAOA,GAAG;MACZ,CAAC,CAAC,CACL;IACH;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,MAAM,kBAACC,GAAG,EAAET,OAAO,EAAE;IACnB,IAAIU,QAAQ,GAAG,IAAI,CAACb,OAAO,CAACc,GAAG,CAACF,GAAG,CAAC;;IAEpC;IACA,IAAIC,QAAQ,EAAE;MACZ,OAAO,iBAAQR,OAAO,EAAE;IAC1B;IAEAQ,QAAQ;MACNnB,WAAW,EAAEkB,GAAG,CAACG,IAAI;MACrBC,QAAQ,EAAEJ,GAAG,CAACK,IAAI,IAAIL,GAAG,CAACM,UAAU,IAAIN,GAAG,CAACO,MAAM;MAClDC,QAAQ,EAAER,GAAG,CAACrB,IAAI;MAClBiB,GAAG,EAAE,mBAAmB;MACxBa,UAAU,EAAE,MAAM;MAClBC,MAAM,EAAEV,GAAG,CAACU,MAAM;MAClBC,KAAK,EAAEX,GAAG,CAACW,KAAK;MAChBC,KAAK,EAAE;QACLF,MAAM,EAAEV,GAAG,CAACY,KAAK,CAACF,MAAM;QACxBC,KAAK,EAAEX,GAAG,CAACY,KAAK,CAACD,KAAK;QACtBf,GAAG,EAAE;MACP;IAAC,GACAlC,WAAW,EAAGsC,GAAG,GACf,oBAAKT,OAAO,EAAE,SAAS,CAAC,CAC5B;IAED,IAAI,CAACH,OAAO,CAACyB,GAAG,CAACb,GAAG,EAAEC,QAAQ,CAAC;;IAE/B;AACJ;AACA;AACA;AACA;IACI,OAAOa,gBAAG,CAACC,MAAM,EAAE,CAChBlB,IAAI,CAAC,UAACmB,GAAG,EAAK;MACbA,GAAG,CAACC,GAAG,GAAGjB,GAAG,CAACJ,GAAG;MACjBK,QAAQ,CAACe,GAAG,GAAGA,GAAG;MAElB,OAAOF,gBAAG,CAACC,MAAM,EAAE;IACrB,CAAC,CAAC,CACDlB,IAAI,CAAC,UAACqB,YAAY,EAAK;MACtBA,YAAY,CAACD,GAAG,GAAGjB,GAAG,CAACY,KAAK,CAAChB,GAAG;MAChCK,QAAQ,CAACW,KAAK,CAACI,GAAG,GAAGE,YAAY;IACnC,CAAC,CAAC;EACN,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,GAAG,eAACnD,IAAI,EAAEuB,OAAO,EAAE;IAAA;MAAA;IACjBA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IACvBA,OAAO,CAACd,eAAe,GAAGT,IAAI,CAACmC,IAAI,CAACiB,SAAS,CAACpD,IAAI,CAACmC,IAAI,CAACkB,WAAW,CAAC,GAAG,CAAC,CAAC;IACzE,IAAIC,MAAM,GAAG,IAAI,CAAClC,OAAO,CAACc,GAAG,CAAClC,IAAI,CAAC;IAEnC,IAAIsD,MAAM,EAAE;MACV,OAAOA,MAAM,CAAC3D,cAAc,CAAC;IAC/B;IACA,IAAMM,OAAO,GAAG,IAAIsD,oBAAY,EAAE;IAElCD,MAAM;MACJxC,WAAW,EAAEd,IAAI,CAACmC,IAAI;MACtBC,QAAQ,EAAEpC,IAAI,CAACqC,IAAI,IAAIrC,IAAI,CAACsC,UAAU,IAAItC,IAAI,CAACuC,MAAM;MACrDC,QAAQ,EAAExC,IAAI,CAACW,IAAI;MACnB8B,UAAU,EAAE;IAAM,iDACjBhD,cAAc,EAAGQ,OAAO,iDACxBP,WAAW,EAAGM,IAAI,oBAChB,oBAAKuB,OAAO,EAAE,SAAS,CAAC,CAC5B;IAED,IAAI,CAACH,OAAO,CAACyB,GAAG,CAAC7C,IAAI,EAAEsD,MAAM,CAAC;IAC9B,IAAME,OAAO,GAAG,IAAAC,2BAAc,EAACzD,IAAI,EAAE,IAAI,CAAC0D,MAAM,CAAC,CAC9C7B,IAAI,CAAC,UAAClB,IAAI,EAAK;MACd2C,MAAM,CAACd,QAAQ,GAAG7B,IAAI;MAEtB,OAAO,IAAAgD,yBAAY,EAAC;QAClB3D,IAAI,EAAJA,IAAI;QACJW,IAAI,EAAJA,IAAI;QACJiD,iBAAiB,EAAE,KAAI,CAACC,MAAM,CAACD,iBAAiB;QAChDE,kBAAkB,EAAE,KAAI,CAACD,MAAM,CAACC,kBAAkB;QAClD/C,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;QACvC2C,MAAM,EAAE,KAAI,CAACA;MACf,CAAC,CAAC;IACJ,CAAC,CAAC,CACD7B,IAAI,CAAC,UAACkC,SAAS,EAAK;MACnB,IAAMC,IAAI,GAAG,KAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,UAAU,CACxCC,aAAa,CAACpE,IAAI,CAAC,CACnB6B,IAAI,CAAC,gBAAkB;QAAA,IAAhBmB,GAAG,QAAHA,GAAG;UAAEqB,KAAK,QAALA,KAAK;QAChBf,MAAM,CAACN,GAAG,GAAGA,GAAG;QAEhB,OAAO,iBAAQsB,GAAG,CAAC,CAACD,KAAK,EAAE,KAAI,CAAClD,QAAQ,CAAC,CAAC;MAC5C,CAAC,CAAC,CACDU,IAAI,CAAC,iBAAuB;QAAA;UAArBwC,KAAK;UAAElD,QAAQ;QACrB,IAAMoD,aAAa,GAAG,KAAI,CAACC,OAAO,CAACH,KAAK,YAAKlD,QAAQ,uBAAoBI,OAAO,CAAC;QAEjF,IAAAkD,sBAAc,EAAC,UAAU,EAAEF,aAAa,EAAEtE,OAAO,CAAC;QAElD,OAAOsE,aAAa;MACtB,CAAC,CAAC,CACD1C,IAAI,CAAC,UAAC6C,QAAQ,EAAK;QAClBpB,MAAM,CAAC1B,GAAG,GAAG0B,MAAM,CAACN,GAAG,CAACC,GAAG,GAAGyB,QAAQ,CAACC,WAAW;MACpD,CAAC,CAAC;MAEJ,IAAIC,KAAK;MAET,IAAIb,SAAS,EAAE;QACb,8CAAyDA,SAAS;UAA3Dc,SAAS;UAAEC,cAAc;UAAEC,mBAAmB;QAErD,qBAAczB,MAAM,EAAEwB,cAAc,CAAC;QAErC,IAAID,SAAS,IAAIE,mBAAmB,EAAE;UACpCzB,MAAM,CAACV,KAAK,GAAGmC,mBAAmB;UAClCH,KAAK,GAAG,KAAI,CAACX,KAAK,CAACC,QAAQ,CAACC,UAAU,CACnCC,aAAa,CAACS,SAAS,CAAC,CACxBhD,IAAI,CAAC,iBAAkB;YAAA,IAAhBmB,GAAG,SAAHA,GAAG;cAAEqB,KAAK,SAALA,KAAK;YAChBf,MAAM,CAACV,KAAK,CAACI,GAAG,GAAGA,GAAG;YAEtB,OAAO,iBAAQsB,GAAG,CAAC,CAACD,KAAK,EAAE,KAAI,CAACpD,cAAc,CAAC,CAAC;UAClD,CAAC,CAAC,CACDY,IAAI,CAAC;YAAA;cAAEwC,KAAK;cAAElD,QAAQ;YAAA,OAAM,KAAI,CAACqD,OAAO,CAACH,KAAK,YAAKlD,QAAQ,sBAAmB;UAAA,EAAC,CAC/EU,IAAI,CAAC,UAAC6C,QAAQ,EAAK;YAClBpB,MAAM,CAACV,KAAK,CAAChB,GAAG,GAAG0B,MAAM,CAACV,KAAK,CAACI,GAAG,CAACC,GAAG,GAAGyB,QAAQ,CAACC,WAAW;UAChE,CAAC,CAAC;QACN;MACF;MAEA,OAAO,iBAAQL,GAAG,CAAC,CAACN,IAAI,EAAEY,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEJtB,MAAM,CAAC3D,cAAc,CAAC,GAAG6D,OAAO;IAEhC,IAAAwB,mBAAW,EAAC/E,OAAO,EAAEuD,OAAO,CAAC;IAE7B,OAAOA,OAAO;EAChB,CAAC;EAED;AACF;AACA;AACA;EACEyB,QAAQ,sBAAG;IACT,IAAMC,KAAK,GAAG,EAAE;IAAC,2CAEG,IAAI,CAAC9D,OAAO;MAAA;IAAA;MAAhC,oDAAkC;QAAA;UAAtB+D,GAAG;QACbD,KAAK,CAACE,IAAI,CAAC,IAAI,CAAChE,OAAO,CAACc,GAAG,CAACiD,GAAG,CAAC,CAACzF,WAAW,CAAC,CAAC;MAChD;IAAC;MAAA;IAAA;MAAA;IAAA;IAED,OAAOwF,KAAK;EACd,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEV,OAAO,mBAACxE,IAAI,EAAEqF,GAAG,EAAEC,aAAa,EAAE;IAChC,IAAMlD,QAAQ,GAAGpC,IAAI,CAACuC,MAAM,IAAIvC,IAAI,CAACqC,IAAI,IAAIrC,IAAI,CAACsC,UAAU;IAC5D,IAAMiD,QAAQ,GAAG,IAAAC,YAAM,EAACxF,IAAI,CAAC,CAACyF,QAAQ,EAAE;IACxC,YAAgCH,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAC;MAA5CI,IAAI,SAAJA,IAAI;MAAEjF,eAAe,SAAfA,eAAe;IAC5B,IAAMkF,cAAc;MAAIvD,QAAQ,EAARA,QAAQ;MAAE3B,eAAe,EAAfA;IAAe,GAAMiF,IAAI,IAAI;MAACA,IAAI,EAAJA;IAAI,CAAC,CAAE;IAEvE,OAAO,IAAI,CAACzB,KAAK,CAACX,MAAM,CAAC;MACvB+B,GAAG,EAAHA,GAAG;MACHrF,IAAI,EAAJA,IAAI;MACJ4F,EAAE,EAAE;QACFC,SAAS,EAAE;MACb,CAAC;MACDC,MAAM,EAAE;QACNzE,UAAU,EAAE;UACV0E,IAAI,EAAEJ;QACR,CAAC;QACDrC,MAAM,EAAE;UACN0C,IAAI,gBAACxF,OAAO,EAAE;YACZ,OAAOA,OAAO,CAACyF,SAAS;UAC1B;QACF,CAAC;QACDC,QAAQ,EAAE;UACRC,IAAI,gBAAC3F,OAAO,EAAE;YACZ,OAAOA,OAAO,CAAC4F,eAAe;UAChC,CAAC;UACDL,IAAI,EAAE;YAAC3D,QAAQ,EAARA,QAAQ;YAAEmD,QAAQ,EAARA;UAAQ;QAC3B;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEc,MAAM,kBAACrG,IAAI,EAAE;IACX,IAAI,CAACoB,OAAO,CAACkF,MAAM,CAACtG,IAAI,CAAC;;IAEzB;IACA,OAAO,iBAAQyB,OAAO,EAAE;EAC1B,CAAC;EAED;AACF;AACA;AACA;EACE8E,OAAO,qBAAG;IACR,IAAI,CAAC,IAAI,CAACnF,OAAO,CAACiB,IAAI,EAAE;MACtB,MAAM,IAAImE,KAAK,CAAC,0DAA0D,CAAC;IAC7E;IAEA,IAAMC,QAAQ,GAAG;MACfC,IAAI,EAAE,OAAO;MACbC,MAAM,EAAE;QACNlE,UAAU,EAAE,SAAS;QACrB3B,WAAW,EAAE,IAAI,CAAC6F,MAAM,IAAI,IAAI,CAACA,MAAM,CAAC7F,WAAW,GAAG,IAAI,CAAC6F,MAAM,CAAC7F,WAAW,GAAG8F,SAAS;QACzFhG,OAAO,EAAE,IAAI,CAAC+F,MAAM,IAAI,IAAI,CAACA,MAAM,CAAC/F,OAAO,GAAG,IAAI,CAAC+F,MAAM,CAAC/F,OAAO,GAAGgG,SAAS;QAC7E1F,QAAQ,EAAE,IAAI,CAACyF,MAAM,IAAI,IAAI,CAACA,MAAM,CAACzF,QAAQ,GAAG,IAAI,CAACyF,MAAM,CAACzF,QAAQ,GAAG0F,SAAS;QAChF1B,KAAK,EAAE;UACL2B,KAAK,EAAE;QACT;MACF,CAAC;MACDhG,YAAY,EAAE,IAAI,CAACA;IACrB,CAAC;IAED,IAAMiG,QAAQ,GAAG,EAAE;IAEnB,IAAI,CAAC1F,OAAO,CAAC2F,OAAO,CAAC,UAACC,IAAI,EAAK;MAC7BP,QAAQ,CAACE,MAAM,CAACzB,KAAK,CAAC2B,KAAK,CAACzB,IAAI,CAAC4B,IAAI,CAAC;MACtCF,QAAQ,CAAC1B,IAAI,CAAC4B,IAAI,CAACrH,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF8G,QAAQ,CAACE,MAAM,CAACM,eAAe,GAAG,IAAI,CAACC,yBAAyB,CAACT,QAAQ,CAACE,MAAM,CAACzB,KAAK,CAAC2B,KAAK,CAAC;IAE7F,OAAO,iBAAQvC,GAAG,CAACwC,QAAQ,CAAC,CAACjF,IAAI,CAAC;MAAA,OAAM4E,QAAQ;IAAA,EAAC;EACnD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,+BAA+B,2CAACN,KAAK,EAAErE,QAAQ,EAAE;IAC/C,OAAO,oBAAKqE,KAAK,CAACO,GAAG,CAAC,UAACJ,IAAI;MAAA,OAAK,oBAAKA,IAAI,CAACK,OAAO,EAAE;QAAC7E,QAAQ,EAARA;MAAQ,CAAC,CAAC;IAAA,EAAC,CAAC;EAClE,CAAC;EAED;AACF;AACA;AACA;AACA;EACE0E,yBAAyB,qCAACL,KAAK,EAAE;IAC/B;IACA,IAAI,IAAI,CAACM,+BAA+B,CAACN,KAAK,EAAE,sCAAsC,CAAC,EAAE;MACvF,OAAO,WAAW;IACpB;IAEA,IAAMS,SAAS,GAAG,sBAAO,mBAAIT,KAAK,EAAE,UAAU,CAAC,CAAC;IAEhD,IAAIS,SAAS,CAAC/E,MAAM,KAAKsE,KAAK,CAACtE,MAAM,EAAE;MACrC,OAAO,WAAW;IACpB;IAEA,IAAM0E,eAAe,GAAGK,SAAS,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,EAAE;IAEvD,IAAIP,eAAe,KAAK,OAAO,IAAIA,eAAe,KAAK,OAAO,EAAE;MAC9D,OAAO,WAAW;IACpB;IAAC,4CAEsBK,SAAS;MAAA;IAAA;MAAhC,uDAAkC;QAAA,IAAvB9E,QAAQ;QACjB,IAAIA,QAAQ,CAAC+E,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,EAAE,KAAKP,eAAe,EAAE;UACnD,OAAO,WAAW;QACpB;MACF;IAAC;MAAA;IAAA;MAAA;IAAA;IAED,iBAAUA,eAAe;EAC3B,CAAC;EAED;AACF;AACA;AACA;EACEtF,iBAAiB,6BAAC0D,GAAG,EAAE;IACrB,OAAO,IAAI,CAACpB,KAAK,CACdwD,OAAO,CAAC;MACPC,MAAM,EAAE,KAAK;MACbrC,GAAG,EAAHA;IACF,CAAC,CAAC,CACDxD,IAAI,CAAC,UAAC8F,GAAG;MAAA,OAAKA,GAAG,CAAC5B,IAAI,CAAC5E,QAAQ;IAAA,EAAC;EACrC,CAAC;EAAA;AACH,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACAvB,aAAa,CAACmD,MAAM,GAAG,SAASA,MAAM,CAACxC,YAAY,EAAEoG,MAAM,EAAE1C,KAAK,EAAE;EAAA;EAClE,IAAI0C,MAAM,YAAY/G,aAAa,EAAE;IACnC,OAAO+G,MAAM;EACf;EAEA,IAAIzB,KAAK;EAET,IAAIyB,MAAM,aAANA,MAAM,iCAANA,MAAM,CAAEA,MAAM,2CAAd,eAAgBzB,KAAK,EAAE;IACzBA,KAAK,GAAGyB,MAAM,CAACA,MAAM,CAACzB,KAAK;IAC3B,6BAAuByB,MAAM,CAACA,MAAM,EAAE,OAAO,CAAC;EAChD;EAEA,IAAMiB,KAAK,GAAG,IAAIhI,aAAa;IAE3BW,YAAY,EAAZA;EAAY,GACToG,MAAM,GAEX;IACEkB,MAAM,EAAE5D;EACV,CAAC,CACF;EAEDiB,KAAK,6BAAGA,KAAK,2CAAL,OAAO2B,KAAK,uDAAI3B,KAAK;EAC7B,IAAIA,KAAK,EAAE;IACTA,KAAK,CAAC6B,OAAO,CAAC,UAAC/G,IAAI;MAAA,OAAK4H,KAAK,CAACzE,GAAG,CAACnD,IAAI,CAAC;IAAA,EAAC;EAC1C;EAEA,OAAO4H,KAAK;AACd,CAAC;AAAC,gBAEahI,aAAa;AAAA"}
|
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
|
});
|
package/dist/to-array.js.map
CHANGED
|
@@ -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
|
|
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;
|