@webex/internal-plugin-conversation 2.59.8-next.1 → 2.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activities.js +2 -2
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js +4 -4
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/conversation.js +49 -38
- package/dist/conversation.js.map +1 -1
- package/dist/decryption-transforms.js +6 -8
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js +19 -19
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +14 -11
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js +3 -3
- package/dist/to-array.js.map +1 -1
- package/package.json +20 -21
package/dist/activities.js
CHANGED
|
@@ -12,7 +12,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
12
12
|
});
|
|
13
13
|
exports.sortActivitiesByPublishedDate = exports.sanitizeActivity = exports.isRootActivity = exports.isReplyActivity = exports.isNewer = exports.isEditActivity = exports.isDeleteActivity = exports.isCreateActivity = exports.getPublishedDate = exports.getParentId = exports.getIsActivityOrphaned = exports.getActivityType = exports.determineActivityType = exports.createRootActivity = exports.createReplyEditActivity = exports.createReplyActivity = exports.createEditActivity = exports.OLDER = exports.NEWER = exports.MID = exports.INITIAL = exports.ACTIVITY_TYPES = void 0;
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
15
|
-
var
|
|
15
|
+
var _sortBy2 = _interopRequireDefault(require("lodash/sortBy"));
|
|
16
16
|
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; }
|
|
17
17
|
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; }
|
|
18
18
|
var OLDER = 'older';
|
|
@@ -85,7 +85,7 @@ var isNewer = function isNewer(activity1, activity2) {
|
|
|
85
85
|
};
|
|
86
86
|
exports.isNewer = isNewer;
|
|
87
87
|
var sortActivitiesByPublishedDate = function sortActivitiesByPublishedDate(activities) {
|
|
88
|
-
return (0,
|
|
88
|
+
return (0, _sortBy2.default)(activities, function (activity) {
|
|
89
89
|
return getPublishedDate(activity);
|
|
90
90
|
});
|
|
91
91
|
};
|
package/dist/activities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","OLDER","exports","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","_activity$parent","_activity$parent2","parent","type","verb","getPublishedDate","undefined","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","sortBy","getParentId","_activity$parent3","id","isRootActivity","act","isReplyActivity","isEditActivity","isCreateActivity","isDeleteActivity","sanitizeActivity","final","reaction","reactionSelf","replies","getIsActivityOrphaned","getIsReplyEditActivity","parentId","parentActivity","determineActivityType","initialType","isReplyEditActivity","createRootActivity","createReplyActivity","replyAct","replyParent","createEditActivity","editActivity","editActParentObj","parentAct","joinedEditAct","editParent","createReplyEditActivity","parentReplyAct","joinedReplyEditActivity"],"sources":["activities.js"],"sourcesContent":["import {sortBy} from 'lodash';\n\nexport const OLDER = 'older';\nexport const NEWER = 'newer';\nexport const MID = 'mid';\nexport const INITIAL = 'initial';\n\nexport const ACTIVITY_TYPES = {\n REPLY: 'REPLY',\n EDIT: 'EDIT',\n REACTION: 'REACTION',\n REACTION_SELF: 'REACTION_SELF',\n ROOT: 'ROOT',\n CREATE: 'CREATE',\n TOMBSTONE: 'TOMBSTONE',\n DELETE: 'DELETE',\n REPLY_EDIT: 'REPLY_EDIT',\n};\n\nconst REPLY = 'reply';\nconst EDIT = 'edit';\nconst REACTION_SUMMARY = 'reactionSummary';\nconst REACTION_SELF_SUMMARY = 'reactionSelfSummary';\nconst CREATE = 'create';\nconst TOMBSTONE = 'tombstone';\nconst DELETE = 'delete';\nconst ADD = 'add';\n\nexport const getActivityType = (activity) => {\n if (activity.parent?.type === REPLY) {\n return ACTIVITY_TYPES.REPLY;\n }\n if (activity.parent?.type === EDIT) {\n return ACTIVITY_TYPES.EDIT;\n }\n if (activity.verb === ADD || activity.type === REACTION_SUMMARY) {\n return ACTIVITY_TYPES.REACTION;\n }\n if (activity.type === REACTION_SELF_SUMMARY) {\n return ACTIVITY_TYPES.REACTION_SELF;\n }\n if (activity.verb === CREATE) {\n return ACTIVITY_TYPES.CREATE;\n }\n if (activity.verb === TOMBSTONE) {\n return ACTIVITY_TYPES.TOMBSTONE;\n }\n if (activity.verb === DELETE) {\n return ACTIVITY_TYPES.DELETE;\n }\n\n return ACTIVITY_TYPES.ROOT;\n};\n\nexport const getPublishedDate = (activity = {}) => new Date(activity.published).getTime();\n\n/**\n * @param {Object} activity1\n * @param {Object} activity2\n * @returns {boolean} true if first activity is newer than second\n */\nexport const isNewer = (activity1, activity2) =>\n getPublishedDate(activity1) > getPublishedDate(activity2);\n\nexport const sortActivitiesByPublishedDate = (activities) =>\n sortBy(activities, (activity) => getPublishedDate(activity));\n\nexport const getParentId = (activity) => activity?.parent?.id;\n\nexport const isRootActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.ROOT;\nexport const isReplyActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.REPLY;\nexport const isEditActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.EDIT;\nexport const isCreateActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.CREATE;\nexport const isDeleteActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.DELETE;\n\nexport const sanitizeActivity = (activity) => {\n const final = {...activity};\n\n final.reaction = activity.reaction || {};\n final.reactionSelf = activity.reactionSelf || {};\n\n // replies will be spread in order beneath parent, no need to include on final objects\n delete final.replies;\n\n return final;\n};\n\nexport const getIsActivityOrphaned = (activity, activities) =>\n activity.parent && activity.parent.id && !activities[activity.parent.id];\n\nconst getIsReplyEditActivity = (activity, activities) => {\n const parentId = activity.parent.id;\n const parentActivity = activities[parentId];\n\n return parentActivity && isReplyActivity(parentActivity);\n};\n\nexport const determineActivityType = (activity, activities) => {\n const initialType = getActivityType(activity);\n\n // edits to a reply, while they are replies themselves, appear in every way as edits\n // the only way to dermine their status as an edited reply is to find the original reply\n if (initialType === ACTIVITY_TYPES.EDIT) {\n const isReplyEditActivity = getIsReplyEditActivity(activity, activities);\n\n return isReplyEditActivity ? ACTIVITY_TYPES.REPLY_EDIT : initialType;\n }\n\n return initialType;\n};\n\nexport const createRootActivity = (activity) => activity;\n\nexport const createReplyActivity = (activity) => {\n const replyAct = {\n ...activity,\n replyParent: activity.parent,\n };\n\n return replyAct;\n};\n\nexport const createEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentAct = activities[parentId];\n\n const joinedEditAct = {\n ...parentAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedEditAct;\n};\n\n// takes an edit activity whose parent is a reply activity\nexport const createReplyEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentReplyAct = activities[parentId];\n\n const joinedReplyEditActivity = {\n ...parentReplyAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n replyParent: parentReplyAct.parent,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedReplyEditActivity;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["OLDER","exports","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","_activity$parent","_activity$parent2","parent","type","verb","getPublishedDate","arguments","length","undefined","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","_sortBy2","default","getParentId","_activity$parent3","id","isRootActivity","act","isReplyActivity","isEditActivity","isCreateActivity","isDeleteActivity","sanitizeActivity","final","_objectSpread","reaction","reactionSelf","replies","getIsActivityOrphaned","getIsReplyEditActivity","parentId","parentActivity","determineActivityType","initialType","isReplyEditActivity","createRootActivity","createReplyActivity","replyAct","replyParent","createEditActivity","editActivity","editActParentObj","parentAct","joinedEditAct","editParent","object","createReplyEditActivity","parentReplyAct","joinedReplyEditActivity"],"sources":["activities.js"],"sourcesContent":["import {sortBy} from 'lodash';\n\nexport const OLDER = 'older';\nexport const NEWER = 'newer';\nexport const MID = 'mid';\nexport const INITIAL = 'initial';\n\nexport const ACTIVITY_TYPES = {\n REPLY: 'REPLY',\n EDIT: 'EDIT',\n REACTION: 'REACTION',\n REACTION_SELF: 'REACTION_SELF',\n ROOT: 'ROOT',\n CREATE: 'CREATE',\n TOMBSTONE: 'TOMBSTONE',\n DELETE: 'DELETE',\n REPLY_EDIT: 'REPLY_EDIT',\n};\n\nconst REPLY = 'reply';\nconst EDIT = 'edit';\nconst REACTION_SUMMARY = 'reactionSummary';\nconst REACTION_SELF_SUMMARY = 'reactionSelfSummary';\nconst CREATE = 'create';\nconst TOMBSTONE = 'tombstone';\nconst DELETE = 'delete';\nconst ADD = 'add';\n\nexport const getActivityType = (activity) => {\n if (activity.parent?.type === REPLY) {\n return ACTIVITY_TYPES.REPLY;\n }\n if (activity.parent?.type === EDIT) {\n return ACTIVITY_TYPES.EDIT;\n }\n if (activity.verb === ADD || activity.type === REACTION_SUMMARY) {\n return ACTIVITY_TYPES.REACTION;\n }\n if (activity.type === REACTION_SELF_SUMMARY) {\n return ACTIVITY_TYPES.REACTION_SELF;\n }\n if (activity.verb === CREATE) {\n return ACTIVITY_TYPES.CREATE;\n }\n if (activity.verb === TOMBSTONE) {\n return ACTIVITY_TYPES.TOMBSTONE;\n }\n if (activity.verb === DELETE) {\n return ACTIVITY_TYPES.DELETE;\n }\n\n return ACTIVITY_TYPES.ROOT;\n};\n\nexport const getPublishedDate = (activity = {}) => new Date(activity.published).getTime();\n\n/**\n * @param {Object} activity1\n * @param {Object} activity2\n * @returns {boolean} true if first activity is newer than second\n */\nexport const isNewer = (activity1, activity2) =>\n getPublishedDate(activity1) > getPublishedDate(activity2);\n\nexport const sortActivitiesByPublishedDate = (activities) =>\n sortBy(activities, (activity) => getPublishedDate(activity));\n\nexport const getParentId = (activity) => activity?.parent?.id;\n\nexport const isRootActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.ROOT;\nexport const isReplyActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.REPLY;\nexport const isEditActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.EDIT;\nexport const isCreateActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.CREATE;\nexport const isDeleteActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.DELETE;\n\nexport const sanitizeActivity = (activity) => {\n const final = {...activity};\n\n final.reaction = activity.reaction || {};\n final.reactionSelf = activity.reactionSelf || {};\n\n // replies will be spread in order beneath parent, no need to include on final objects\n delete final.replies;\n\n return final;\n};\n\nexport const getIsActivityOrphaned = (activity, activities) =>\n activity.parent && activity.parent.id && !activities[activity.parent.id];\n\nconst getIsReplyEditActivity = (activity, activities) => {\n const parentId = activity.parent.id;\n const parentActivity = activities[parentId];\n\n return parentActivity && isReplyActivity(parentActivity);\n};\n\nexport const determineActivityType = (activity, activities) => {\n const initialType = getActivityType(activity);\n\n // edits to a reply, while they are replies themselves, appear in every way as edits\n // the only way to dermine their status as an edited reply is to find the original reply\n if (initialType === ACTIVITY_TYPES.EDIT) {\n const isReplyEditActivity = getIsReplyEditActivity(activity, activities);\n\n return isReplyEditActivity ? ACTIVITY_TYPES.REPLY_EDIT : initialType;\n }\n\n return initialType;\n};\n\nexport const createRootActivity = (activity) => activity;\n\nexport const createReplyActivity = (activity) => {\n const replyAct = {\n ...activity,\n replyParent: activity.parent,\n };\n\n return replyAct;\n};\n\nexport const createEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentAct = activities[parentId];\n\n const joinedEditAct = {\n ...parentAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedEditAct;\n};\n\n// takes an edit activity whose parent is a reply activity\nexport const createReplyEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentReplyAct = activities[parentId];\n\n const joinedReplyEditActivity = {\n ...parentReplyAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n replyParent: parentReplyAct.parent,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedReplyEditActivity;\n};\n"],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.setValue = exports.rootActivityManager = exports.noMoreActivitiesManager = exports.minBatchSize = exports.getValue = exports.getQuery = exports.getLoopCounterFailsafe = exports.getActivityObjectsFromMap = exports.fetchLoopCountMax = exports.defaultMinDisplayableActivities = exports.bookendManager = exports.batchSizeIncrementCount = exports.activityManager = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
11
9
|
var _from = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/from"));
|
|
12
10
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
13
|
-
var
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
13
|
+
var _last2 = _interopRequireDefault(require("lodash/last"));
|
|
14
14
|
var _activities = require("./activities");
|
|
15
15
|
var defaultMinDisplayableActivities = 20;
|
|
16
16
|
exports.defaultMinDisplayableActivities = defaultMinDisplayableActivities;
|
|
@@ -150,7 +150,7 @@ var bookendManager = function bookendManager() {
|
|
|
150
150
|
};
|
|
151
151
|
var setBookends = function setBookends(activities) {
|
|
152
152
|
var oldestActsFirst = (0, _activities.sortActivitiesByPublishedDate)(activities);
|
|
153
|
-
var newestInBatch = (0,
|
|
153
|
+
var newestInBatch = (0, _last2.default)(oldestActsFirst);
|
|
154
154
|
var oldestInBatch = oldestActsFirst[0];
|
|
155
155
|
setOldestAct(oldestInBatch);
|
|
156
156
|
setNewestAct(newestInBatch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","_activities","defaultMinDisplayableActivities","exports","minBatchSize","fetchLoopCountMax","batchSizeIncrementCount","setValue","destination","key","value","set","getValue","source","get","getActivityObjectsFromMap","hashMap","_from","default","map","_ref","_ref2","_slicedToArray2","activity","activityManager","replyActivityHash","_map","editActivityHash","reactionActivityHash","reactionSelfActivityHash","handleNewReply","replyAct","replyParentId","getParentId","existingReplyHash","id","replyHash","handleNewEdit","editAct","isTombstone","verb","ACTIVITY_TYPES","TOMBSTONE","editParentId","existingEdit","isNewer","reactionHelper","reactionAct","hash","reactionParentId","existingReaction","handleNewReaction","handleNewReactionSelf","reactionSelfAct","getActivityHandlerByKey","_ACTIVITY_TYPES$REACT","_defineProperty2","REACTION","REACTION_SELF","EDIT","REPLY","getActivityByTypeAndParentId","type","_ACTIVITY_TYPES$EDIT$","bookendManager","oldestAct","newestAct","getOldestAct","getNewestAct","setOldestAct","act","setNewestAct","setBookends","activities","oldestActsFirst","sortActivitiesByPublishedDate","newestInBatch","last","oldestInBatch","noMoreActivitiesManager","noMoreActs","noOlderActs","noNewerActs","getNoMoreActs","checkAndSetNoOlderActs","getActivityType","CREATE","checkAndSetNoNewerActs","length","checkAndSetNoMoreActs","queryType","visibleActs","currentBatchSize","NEWER","OLDER","INITIAL","MID","rootActivityManager","rootActivityHash","addNewRoot","rootAct","getRootActivityHash","getLoopCounterFailsafe","fetchLoopCount","Error","getQuery","queryOptions","newestPublishedDate","oldestPublishedDate","batchSize","_queryOptions$activit","activityToSearch","sinceDate","lastActivityFirst","searchType","midDate","parent","published","limit","maxDate"],"sources":["activity-thread-ordering.js"],"sourcesContent":["import {last} from 'lodash';\n\nimport {\n ACTIVITY_TYPES,\n getParentId,\n isNewer,\n getActivityType,\n sortActivitiesByPublishedDate,\n NEWER,\n OLDER,\n INITIAL,\n MID,\n} from './activities';\n\nexport const defaultMinDisplayableActivities = 20;\nexport const minBatchSize = 10;\nexport const fetchLoopCountMax = 100;\nexport const batchSizeIncrementCount = 10;\n\n// use accessors for ease of refactoring underlying implementation\n/**\n * @param {Map} destination destination map object for data. Currently a Map, but could be refactored to use any type.\n * @param {string} key\n * @param {any} value\n * @returns {Map}\n */\nexport const setValue = (destination, key, value) => destination.set(key, value);\n/**\n * @param {Map} source source map object to access. Currently expects a Map, but could be refactored to use any type\n * @param {string} key\n * @returns {Map}\n */\nexport const getValue = (source, key) => source.get(key);\n\nexport const getActivityObjectsFromMap = (hashMap) =>\n Array.from(hashMap).map(([, activity]) => activity);\n/**\n * creates maps for various activity types and defines handlers for working with stored activities\n * utilizes revealing module pattern to close over state and only expose certain necessary functions for altering state\n * @function\n * @returns {object}\n * getActivityHandlerByKey(activityType) - accepts a key to map to a defined activity handler\n * getActivityByTypeAndParentId(activityType, parentId) accepts a key and a parent ID to return an activity of that type whose parent is the parentId\n */\nexport const activityManager = () => {\n const replyActivityHash = new Map();\n const editActivityHash = new Map();\n const reactionActivityHash = new Map();\n const reactionSelfActivityHash = new Map();\n\n const handleNewReply = (replyAct) => {\n const replyParentId = getParentId(replyAct);\n const existingReplyHash = getValue(replyActivityHash, replyParentId);\n\n if (existingReplyHash) {\n setValue(existingReplyHash, replyAct.id, replyAct);\n } else {\n const replyHash = new Map();\n\n setValue(replyHash, replyAct.id, replyAct);\n setValue(replyActivityHash, replyParentId, replyHash);\n }\n };\n\n const handleNewEdit = (editAct) => {\n const isTombstone = editAct.verb === ACTIVITY_TYPES.TOMBSTONE;\n\n // we can ignore tombstone edits in favor of the newer one\n if (isTombstone) {\n return;\n }\n\n const editParentId = getParentId(editAct);\n const existingEdit = getValue(editActivityHash, editParentId);\n\n // edited activity must be newer than what we already have\n if (!existingEdit || isNewer(editAct, existingEdit)) {\n setValue(editActivityHash, editParentId, editAct);\n }\n };\n\n // logic is identical between reactions and reaction selfs, so handler simply passes the activity and the correct hash\n const reactionHelper = (reactionAct, hash) => {\n const reactionParentId = getParentId(reactionAct);\n const existingReaction = getValue(hash, reactionParentId);\n\n // reaction activity must be newer than what we already have\n if (!existingReaction || isNewer(reactionAct, existingReaction)) {\n setValue(hash, reactionParentId, reactionAct);\n }\n };\n\n const handleNewReaction = (reactionAct) => {\n reactionHelper(reactionAct, reactionActivityHash);\n };\n\n const handleNewReactionSelf = (reactionSelfAct) => {\n reactionHelper(reactionSelfAct, reactionSelfActivityHash);\n };\n\n const getActivityHandlerByKey = (key) =>\n ({\n [ACTIVITY_TYPES.REACTION]: handleNewReaction,\n [ACTIVITY_TYPES.REACTION_SELF]: handleNewReactionSelf,\n [ACTIVITY_TYPES.EDIT]: handleNewEdit,\n [ACTIVITY_TYPES.REPLY]: handleNewReply,\n }[key]);\n\n const getActivityByTypeAndParentId = (type, id) =>\n ({\n [ACTIVITY_TYPES.EDIT]: getValue(editActivityHash, id),\n [ACTIVITY_TYPES.REPLY]: getValue(replyActivityHash, id),\n [ACTIVITY_TYPES.REACTION]: getValue(reactionActivityHash, id),\n [ACTIVITY_TYPES.REACTION_SELF]: getValue(reactionSelfActivityHash, id),\n }[type]);\n\n return {\n getActivityHandlerByKey,\n getActivityByTypeAndParentId,\n };\n};\n\n/**\n * encapsulates state and logic for managing oldest and newest activities\n * @returns {object} setters and getters for activity state management\n */\nexport const bookendManager = () => {\n // keep track of generator state, like what our current oldest & newest activities are\n let oldestAct;\n let newestAct;\n\n const getOldestAct = () => oldestAct;\n const getNewestAct = () => newestAct;\n\n const setOldestAct = (act) => {\n if (!oldestAct) {\n oldestAct = act;\n } else if (isNewer(oldestAct, act)) {\n oldestAct = act;\n }\n };\n\n const setNewestAct = (act) => {\n if (!newestAct) {\n newestAct = act;\n } else if (isNewer(act, newestAct)) {\n newestAct = act;\n }\n };\n\n const setBookends = (activities) => {\n const oldestActsFirst = sortActivitiesByPublishedDate(activities);\n\n const newestInBatch = last(oldestActsFirst);\n const oldestInBatch = oldestActsFirst[0];\n\n setOldestAct(oldestInBatch);\n setNewestAct(newestInBatch);\n };\n\n return {\n setBookends,\n getNewestAct,\n getOldestAct,\n };\n};\n\n/**\n * encapsulates state and logic for when there are no more fetchable activities from convo\n * @returns {object} setters and getters for no more activities logic\n */\nexport const noMoreActivitiesManager = () => {\n // used to determine if we should continue to fetch older activities\n // must be set per iteration, as querying newer activities is still valid when all end of convo has been reached\n let noMoreActs = false;\n let noOlderActs = false;\n let noNewerActs = false;\n\n const getNoMoreActs = () => noMoreActs;\n\n const checkAndSetNoOlderActs = (act) => {\n if (!noOlderActs && getActivityType(act) === ACTIVITY_TYPES.CREATE) {\n noOlderActs = true;\n }\n };\n\n const checkAndSetNoNewerActs = (activities) => {\n if (!activities || !activities.length) {\n noNewerActs = true;\n }\n };\n\n const checkAndSetNoMoreActs = (queryType, visibleActs, currentBatchSize) => {\n if (\n (queryType === NEWER && noNewerActs) ||\n ((queryType === OLDER || queryType === INITIAL) && noOlderActs) ||\n (queryType === MID && visibleActs < currentBatchSize && noOlderActs)\n ) {\n noMoreActs = true;\n }\n };\n\n return {\n getNoMoreActs,\n checkAndSetNoMoreActs,\n checkAndSetNoNewerActs,\n checkAndSetNoOlderActs,\n };\n};\n\n/**\n * encapsulates state and logic for managing root activities\n * @returns {object} setters and getters for activity state management\n */\nexport const rootActivityManager = () => {\n const rootActivityHash = new Map();\n\n const addNewRoot = (rootAct) => {\n setValue(rootActivityHash, rootAct.id, rootAct);\n };\n\n const getRootActivityHash = () => rootActivityHash;\n\n return {\n addNewRoot,\n getRootActivityHash,\n };\n};\n\nexport const getLoopCounterFailsafe = () => {\n let fetchLoopCount = 0;\n\n return () => {\n fetchLoopCount += 1;\n if (fetchLoopCount > fetchLoopCountMax) {\n throw new Error('max fetches reached');\n }\n };\n};\n\n/**\n * creates activity query object\n * @param {string} type type of query to create\n * @param {object} queryOptions options to define query\n * @param {string} [queryOptions.newestPublishedDate] the date of the newest fetched activity\n * @param {string} [queryOptions.oldestPublishedDate] the date of the oldest fetched activity\n * @param {number} [queryOptions.batchSize] the number of activities to query\n * @param {object} [queryOptions.activityToSearch] a server activity to use to build middate query\n * @returns {object}\n */\nexport const getQuery = (type, queryOptions) => {\n const {newestPublishedDate, oldestPublishedDate, batchSize, activityToSearch = {}} = queryOptions;\n\n switch (type) {\n case NEWER: {\n const sinceDate = newestPublishedDate + 1;\n const lastActivityFirst = false;\n\n return {sinceDate, lastActivityFirst};\n }\n case MID: {\n const searchType = getActivityType(activityToSearch);\n let midDate;\n\n if (searchType === ACTIVITY_TYPES.REPLY || searchType === ACTIVITY_TYPES.EDIT) {\n midDate = activityToSearch.parent.published;\n } else {\n midDate = activityToSearch.published;\n }\n\n return {midDate, limit: batchSize};\n }\n case OLDER: {\n const maxDate = oldestPublishedDate - 1;\n\n return {maxDate};\n }\n case INITIAL:\n default: {\n return {};\n }\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_activities","require","defaultMinDisplayableActivities","exports","minBatchSize","fetchLoopCountMax","batchSizeIncrementCount","setValue","destination","key","value","set","getValue","source","get","getActivityObjectsFromMap","hashMap","_from","default","map","_ref","_ref2","_slicedToArray2","activity","activityManager","replyActivityHash","_map","editActivityHash","reactionActivityHash","reactionSelfActivityHash","handleNewReply","replyAct","replyParentId","getParentId","existingReplyHash","id","replyHash","handleNewEdit","editAct","isTombstone","verb","ACTIVITY_TYPES","TOMBSTONE","editParentId","existingEdit","isNewer","reactionHelper","reactionAct","hash","reactionParentId","existingReaction","handleNewReaction","handleNewReactionSelf","reactionSelfAct","getActivityHandlerByKey","_ACTIVITY_TYPES$REACT","_defineProperty2","REACTION","REACTION_SELF","EDIT","REPLY","getActivityByTypeAndParentId","type","_ACTIVITY_TYPES$EDIT$","bookendManager","oldestAct","newestAct","getOldestAct","getNewestAct","setOldestAct","act","setNewestAct","setBookends","activities","oldestActsFirst","sortActivitiesByPublishedDate","newestInBatch","_last2","oldestInBatch","noMoreActivitiesManager","noMoreActs","noOlderActs","noNewerActs","getNoMoreActs","checkAndSetNoOlderActs","getActivityType","CREATE","checkAndSetNoNewerActs","length","checkAndSetNoMoreActs","queryType","visibleActs","currentBatchSize","NEWER","OLDER","INITIAL","MID","rootActivityManager","rootActivityHash","addNewRoot","rootAct","getRootActivityHash","getLoopCounterFailsafe","fetchLoopCount","Error","getQuery","queryOptions","newestPublishedDate","oldestPublishedDate","batchSize","_queryOptions$activit","activityToSearch","sinceDate","lastActivityFirst","searchType","midDate","parent","published","limit","maxDate"],"sources":["activity-thread-ordering.js"],"sourcesContent":["import {last} from 'lodash';\n\nimport {\n ACTIVITY_TYPES,\n getParentId,\n isNewer,\n getActivityType,\n sortActivitiesByPublishedDate,\n NEWER,\n OLDER,\n INITIAL,\n MID,\n} from './activities';\n\nexport const defaultMinDisplayableActivities = 20;\nexport const minBatchSize = 10;\nexport const fetchLoopCountMax = 100;\nexport const batchSizeIncrementCount = 10;\n\n// use accessors for ease of refactoring underlying implementation\n/**\n * @param {Map} destination destination map object for data. Currently a Map, but could be refactored to use any type.\n * @param {string} key\n * @param {any} value\n * @returns {Map}\n */\nexport const setValue = (destination, key, value) => destination.set(key, value);\n/**\n * @param {Map} source source map object to access. Currently expects a Map, but could be refactored to use any type\n * @param {string} key\n * @returns {Map}\n */\nexport const getValue = (source, key) => source.get(key);\n\nexport const getActivityObjectsFromMap = (hashMap) =>\n Array.from(hashMap).map(([, activity]) => activity);\n/**\n * creates maps for various activity types and defines handlers for working with stored activities\n * utilizes revealing module pattern to close over state and only expose certain necessary functions for altering state\n * @function\n * @returns {object}\n * getActivityHandlerByKey(activityType) - accepts a key to map to a defined activity handler\n * getActivityByTypeAndParentId(activityType, parentId) accepts a key and a parent ID to return an activity of that type whose parent is the parentId\n */\nexport const activityManager = () => {\n const replyActivityHash = new Map();\n const editActivityHash = new Map();\n const reactionActivityHash = new Map();\n const reactionSelfActivityHash = new Map();\n\n const handleNewReply = (replyAct) => {\n const replyParentId = getParentId(replyAct);\n const existingReplyHash = getValue(replyActivityHash, replyParentId);\n\n if (existingReplyHash) {\n setValue(existingReplyHash, replyAct.id, replyAct);\n } else {\n const replyHash = new Map();\n\n setValue(replyHash, replyAct.id, replyAct);\n setValue(replyActivityHash, replyParentId, replyHash);\n }\n };\n\n const handleNewEdit = (editAct) => {\n const isTombstone = editAct.verb === ACTIVITY_TYPES.TOMBSTONE;\n\n // we can ignore tombstone edits in favor of the newer one\n if (isTombstone) {\n return;\n }\n\n const editParentId = getParentId(editAct);\n const existingEdit = getValue(editActivityHash, editParentId);\n\n // edited activity must be newer than what we already have\n if (!existingEdit || isNewer(editAct, existingEdit)) {\n setValue(editActivityHash, editParentId, editAct);\n }\n };\n\n // logic is identical between reactions and reaction selfs, so handler simply passes the activity and the correct hash\n const reactionHelper = (reactionAct, hash) => {\n const reactionParentId = getParentId(reactionAct);\n const existingReaction = getValue(hash, reactionParentId);\n\n // reaction activity must be newer than what we already have\n if (!existingReaction || isNewer(reactionAct, existingReaction)) {\n setValue(hash, reactionParentId, reactionAct);\n }\n };\n\n const handleNewReaction = (reactionAct) => {\n reactionHelper(reactionAct, reactionActivityHash);\n };\n\n const handleNewReactionSelf = (reactionSelfAct) => {\n reactionHelper(reactionSelfAct, reactionSelfActivityHash);\n };\n\n const getActivityHandlerByKey = (key) =>\n ({\n [ACTIVITY_TYPES.REACTION]: handleNewReaction,\n [ACTIVITY_TYPES.REACTION_SELF]: handleNewReactionSelf,\n [ACTIVITY_TYPES.EDIT]: handleNewEdit,\n [ACTIVITY_TYPES.REPLY]: handleNewReply,\n }[key]);\n\n const getActivityByTypeAndParentId = (type, id) =>\n ({\n [ACTIVITY_TYPES.EDIT]: getValue(editActivityHash, id),\n [ACTIVITY_TYPES.REPLY]: getValue(replyActivityHash, id),\n [ACTIVITY_TYPES.REACTION]: getValue(reactionActivityHash, id),\n [ACTIVITY_TYPES.REACTION_SELF]: getValue(reactionSelfActivityHash, id),\n }[type]);\n\n return {\n getActivityHandlerByKey,\n getActivityByTypeAndParentId,\n };\n};\n\n/**\n * encapsulates state and logic for managing oldest and newest activities\n * @returns {object} setters and getters for activity state management\n */\nexport const bookendManager = () => {\n // keep track of generator state, like what our current oldest & newest activities are\n let oldestAct;\n let newestAct;\n\n const getOldestAct = () => oldestAct;\n const getNewestAct = () => newestAct;\n\n const setOldestAct = (act) => {\n if (!oldestAct) {\n oldestAct = act;\n } else if (isNewer(oldestAct, act)) {\n oldestAct = act;\n }\n };\n\n const setNewestAct = (act) => {\n if (!newestAct) {\n newestAct = act;\n } else if (isNewer(act, newestAct)) {\n newestAct = act;\n }\n };\n\n const setBookends = (activities) => {\n const oldestActsFirst = sortActivitiesByPublishedDate(activities);\n\n const newestInBatch = last(oldestActsFirst);\n const oldestInBatch = oldestActsFirst[0];\n\n setOldestAct(oldestInBatch);\n setNewestAct(newestInBatch);\n };\n\n return {\n setBookends,\n getNewestAct,\n getOldestAct,\n };\n};\n\n/**\n * encapsulates state and logic for when there are no more fetchable activities from convo\n * @returns {object} setters and getters for no more activities logic\n */\nexport const noMoreActivitiesManager = () => {\n // used to determine if we should continue to fetch older activities\n // must be set per iteration, as querying newer activities is still valid when all end of convo has been reached\n let noMoreActs = false;\n let noOlderActs = false;\n let noNewerActs = false;\n\n const getNoMoreActs = () => noMoreActs;\n\n const checkAndSetNoOlderActs = (act) => {\n if (!noOlderActs && getActivityType(act) === ACTIVITY_TYPES.CREATE) {\n noOlderActs = true;\n }\n };\n\n const checkAndSetNoNewerActs = (activities) => {\n if (!activities || !activities.length) {\n noNewerActs = true;\n }\n };\n\n const checkAndSetNoMoreActs = (queryType, visibleActs, currentBatchSize) => {\n if (\n (queryType === NEWER && noNewerActs) ||\n ((queryType === OLDER || queryType === INITIAL) && noOlderActs) ||\n (queryType === MID && visibleActs < currentBatchSize && noOlderActs)\n ) {\n noMoreActs = true;\n }\n };\n\n return {\n getNoMoreActs,\n checkAndSetNoMoreActs,\n checkAndSetNoNewerActs,\n checkAndSetNoOlderActs,\n };\n};\n\n/**\n * encapsulates state and logic for managing root activities\n * @returns {object} setters and getters for activity state management\n */\nexport const rootActivityManager = () => {\n const rootActivityHash = new Map();\n\n const addNewRoot = (rootAct) => {\n setValue(rootActivityHash, rootAct.id, rootAct);\n };\n\n const getRootActivityHash = () => rootActivityHash;\n\n return {\n addNewRoot,\n getRootActivityHash,\n };\n};\n\nexport const getLoopCounterFailsafe = () => {\n let fetchLoopCount = 0;\n\n return () => {\n fetchLoopCount += 1;\n if (fetchLoopCount > fetchLoopCountMax) {\n throw new Error('max fetches reached');\n }\n };\n};\n\n/**\n * creates activity query object\n * @param {string} type type of query to create\n * @param {object} queryOptions options to define query\n * @param {string} [queryOptions.newestPublishedDate] the date of the newest fetched activity\n * @param {string} [queryOptions.oldestPublishedDate] the date of the oldest fetched activity\n * @param {number} [queryOptions.batchSize] the number of activities to query\n * @param {object} [queryOptions.activityToSearch] a server activity to use to build middate query\n * @returns {object}\n */\nexport const getQuery = (type, queryOptions) => {\n const {newestPublishedDate, oldestPublishedDate, batchSize, activityToSearch = {}} = queryOptions;\n\n switch (type) {\n case NEWER: {\n const sinceDate = newestPublishedDate + 1;\n const lastActivityFirst = false;\n\n return {sinceDate, lastActivityFirst};\n }\n case MID: {\n const searchType = getActivityType(activityToSearch);\n let midDate;\n\n if (searchType === ACTIVITY_TYPES.REPLY || searchType === ACTIVITY_TYPES.EDIT) {\n midDate = activityToSearch.parent.published;\n } else {\n midDate = activityToSearch.published;\n }\n\n return {midDate, limit: batchSize};\n }\n case OLDER: {\n const maxDate = oldestPublishedDate - 1;\n\n return {maxDate};\n }\n case INITIAL:\n default: {\n return {};\n }\n }\n};\n"],"mappings":"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"}
|
package/dist/conversation.js
CHANGED
|
@@ -16,7 +16,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
16
16
|
});
|
|
17
17
|
exports.default = void 0;
|
|
18
18
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
19
|
-
var
|
|
19
|
+
var _map2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
20
20
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
21
21
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
22
22
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
@@ -27,13 +27,24 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/
|
|
|
27
27
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
28
28
|
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/awaitAsyncGenerator"));
|
|
29
29
|
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/wrapAsyncGenerator"));
|
|
30
|
+
var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
|
|
31
|
+
var _pick2 = _interopRequireDefault(require("lodash/pick"));
|
|
32
|
+
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
33
|
+
var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
|
34
|
+
var _map3 = _interopRequireDefault(require("lodash/map"));
|
|
35
|
+
var _last2 = _interopRequireDefault(require("lodash/last"));
|
|
36
|
+
var _isString2 = _interopRequireDefault(require("lodash/isString"));
|
|
37
|
+
var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
|
|
38
|
+
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
|
39
|
+
var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
|
|
40
|
+
var _cloneDeepWith2 = _interopRequireDefault(require("lodash/cloneDeepWith"));
|
|
41
|
+
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
30
42
|
var _querystring = _interopRequireDefault(require("querystring"));
|
|
31
43
|
var _events = require("events");
|
|
32
44
|
var _hmacSha = _interopRequireDefault(require("crypto-js/hmac-sha256"));
|
|
33
45
|
var _encHex = _interopRequireDefault(require("crypto-js/enc-hex"));
|
|
34
46
|
var _common = require("@webex/common");
|
|
35
47
|
var _webexCore = require("@webex/webex-core");
|
|
36
|
-
var _lodash = require("lodash");
|
|
37
48
|
var _helperImage = require("@webex/helper-image");
|
|
38
49
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
39
50
|
var _convoError = require("./convo-error");
|
|
@@ -46,7 +57,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
46
57
|
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; }
|
|
47
58
|
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; }
|
|
48
59
|
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; }
|
|
49
|
-
var idToUrl = new
|
|
60
|
+
var idToUrl = new _map2.default();
|
|
50
61
|
var getConvoLimit = function getConvoLimit() {
|
|
51
62
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
52
63
|
var limit;
|
|
@@ -88,7 +99,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
88
99
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
89
100
|
url: url
|
|
90
101
|
});
|
|
91
|
-
if (!(0,
|
|
102
|
+
if (!(0, _isObject2.default)(object)) {
|
|
92
103
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
93
104
|
}
|
|
94
105
|
return this.prepare(activity, {
|
|
@@ -174,7 +185,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
174
185
|
});
|
|
175
186
|
})).then(function (participants) {
|
|
176
187
|
participants.unshift(_this4.webex.internal.device.userId);
|
|
177
|
-
participants = (0,
|
|
188
|
+
participants = (0, _uniq2.default)(participants);
|
|
178
189
|
var validParticipants = participants.filter(function (participant) {
|
|
179
190
|
return participant;
|
|
180
191
|
});
|
|
@@ -257,12 +268,12 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
257
268
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
258
269
|
url: url
|
|
259
270
|
});
|
|
260
|
-
if (!(0,
|
|
271
|
+
if (!(0, _isObject2.default)(reactionPayload)) {
|
|
261
272
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
262
273
|
}
|
|
263
274
|
return this.prepare(reactionPayload, {
|
|
264
275
|
target: this.prepareConversation(convoWithUrl),
|
|
265
|
-
object: (0,
|
|
276
|
+
object: (0, _pick2.default)(reactionPayload, 'id', 'url', 'objectType')
|
|
266
277
|
}).then(function (act) {
|
|
267
278
|
return _this5.submit(act);
|
|
268
279
|
});
|
|
@@ -339,13 +350,13 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
339
350
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
340
351
|
url: url
|
|
341
352
|
});
|
|
342
|
-
if (!(0,
|
|
353
|
+
if (!(0, _isObject2.default)(object)) {
|
|
343
354
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
344
355
|
}
|
|
345
356
|
var request = {
|
|
346
357
|
verb: 'delete',
|
|
347
358
|
target: this.prepareConversation(convoWithUrl),
|
|
348
|
-
object: (0,
|
|
359
|
+
object: (0, _pick2.default)(object, 'id', 'url', 'objectType')
|
|
349
360
|
};
|
|
350
361
|
|
|
351
362
|
// Deleting meeting container requires KMS message
|
|
@@ -445,7 +456,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
445
456
|
if (!actor) {
|
|
446
457
|
actor = this.webex.internal.device.userId;
|
|
447
458
|
}
|
|
448
|
-
if ((0,
|
|
459
|
+
if ((0, _isString2.default)(actor)) {
|
|
449
460
|
activity.actor = {
|
|
450
461
|
objectType: 'person',
|
|
451
462
|
id: actor
|
|
@@ -540,7 +551,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
540
551
|
activitiesLimit: 0,
|
|
541
552
|
includeConvWithDeletedUserUUID: false,
|
|
542
553
|
includeParticipants: false
|
|
543
|
-
}, (0,
|
|
554
|
+
}, (0, _omit2.default)(options, 'id', 'user', 'url')),
|
|
544
555
|
disableTransform: options.disableTransform
|
|
545
556
|
};
|
|
546
557
|
|
|
@@ -628,7 +639,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
628
639
|
return this._list({
|
|
629
640
|
service: 'conversation',
|
|
630
641
|
resource: options.summary ? 'conversationsSummary' : 'conversations',
|
|
631
|
-
qs: (0,
|
|
642
|
+
qs: (0, _omit2.default)(options, ['deferDecrypt', 'summary']),
|
|
632
643
|
deferDecrypt: options.deferDecrypt,
|
|
633
644
|
limit: getConvoLimit(options)
|
|
634
645
|
}).then(function (results) {
|
|
@@ -693,7 +704,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
693
704
|
activitiesLimit: 0,
|
|
694
705
|
participantsLimit: 0,
|
|
695
706
|
paginate: true
|
|
696
|
-
}, (0,
|
|
707
|
+
}, (0, _omit2.default)(options, ['deferDecrypt', 'url']));
|
|
697
708
|
reqOptions = {
|
|
698
709
|
qs: queryOptions,
|
|
699
710
|
deferDecrypt: options.deferDecrypt,
|
|
@@ -851,7 +862,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
851
862
|
break;
|
|
852
863
|
case 16:
|
|
853
864
|
// reverse list if needed (see _list for precedent)
|
|
854
|
-
if (items.length && (0,
|
|
865
|
+
if (items.length && (0, _last2.default)(items).published < items[0].published) {
|
|
855
866
|
items.reverse();
|
|
856
867
|
}
|
|
857
868
|
return _context3.abrupt("return", items);
|
|
@@ -939,7 +950,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
939
950
|
return this._list({
|
|
940
951
|
service: 'conversation',
|
|
941
952
|
resource: 'mentions',
|
|
942
|
-
qs: (0,
|
|
953
|
+
qs: (0, _omit2.default)(options, 'mentions')
|
|
943
954
|
});
|
|
944
955
|
},
|
|
945
956
|
/**
|
|
@@ -1017,7 +1028,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1017
1028
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
1018
1029
|
url: this.getConvoUrl(conversation)
|
|
1019
1030
|
});
|
|
1020
|
-
if ((0,
|
|
1031
|
+
if ((0, _isString2.default)(message)) {
|
|
1021
1032
|
message = {
|
|
1022
1033
|
displayName: message
|
|
1023
1034
|
};
|
|
@@ -1033,7 +1044,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1033
1044
|
});
|
|
1034
1045
|
},
|
|
1035
1046
|
prepareConversation: function prepareConversation(conversation) {
|
|
1036
|
-
return (0,
|
|
1047
|
+
return (0, _defaults2.default)((0, _pick2.default)(conversation, 'id', 'url', 'objectType', 'defaultActivityEncryptionKeyUrl', 'kmsResourceObjectUrl'), {
|
|
1037
1048
|
objectType: 'conversation'
|
|
1038
1049
|
});
|
|
1039
1050
|
},
|
|
@@ -1042,7 +1053,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1042
1053
|
params = params || {};
|
|
1043
1054
|
activity = activity || {};
|
|
1044
1055
|
return _promise.default.resolve(activity.prepare ? activity.prepare(params) : activity).then(function (act) {
|
|
1045
|
-
(0,
|
|
1056
|
+
(0, _defaults2.default)(act, {
|
|
1046
1057
|
verb: params.verb,
|
|
1047
1058
|
kmsMessage: params.kmsMessage,
|
|
1048
1059
|
objectType: 'activity',
|
|
@@ -1057,7 +1068,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1057
1068
|
type: activity.activityType || activity.parent.type
|
|
1058
1069
|
};
|
|
1059
1070
|
}
|
|
1060
|
-
if ((0,
|
|
1071
|
+
if ((0, _isString2.default)(act.actor)) {
|
|
1061
1072
|
act.actor = {
|
|
1062
1073
|
objectType: 'person',
|
|
1063
1074
|
id: act.actor
|
|
@@ -1066,12 +1077,12 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1066
1077
|
['actor', 'object'].forEach(function (key) {
|
|
1067
1078
|
if (params[key]) {
|
|
1068
1079
|
act[key] = act[key] || {};
|
|
1069
|
-
(0,
|
|
1080
|
+
(0, _defaults2.default)(act[key], params[key]);
|
|
1070
1081
|
}
|
|
1071
1082
|
});
|
|
1072
1083
|
if (params.target) {
|
|
1073
|
-
(0,
|
|
1074
|
-
target: (0,
|
|
1084
|
+
(0, _merge2.default)(act, {
|
|
1085
|
+
target: (0, _pick2.default)(params.target, 'id', 'url', 'objectType', 'kmsResourceObjectUrl', 'defaultActivityEncryptionKeyUrl')
|
|
1075
1086
|
});
|
|
1076
1087
|
}
|
|
1077
1088
|
['object', 'target'].forEach(function (key) {
|
|
@@ -1106,7 +1117,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1106
1117
|
return _context6.abrupt("return", _this19._list({
|
|
1107
1118
|
service: 'conversation',
|
|
1108
1119
|
resource: 'threads',
|
|
1109
|
-
qs: (0,
|
|
1120
|
+
qs: (0, _omit2.default)(options, 'showAllTypes')
|
|
1110
1121
|
}));
|
|
1111
1122
|
case 1:
|
|
1112
1123
|
case "end":
|
|
@@ -1277,7 +1288,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1277
1288
|
*/
|
|
1278
1289
|
share: function share(conversation, activity) {
|
|
1279
1290
|
var _this21 = this;
|
|
1280
|
-
if ((0,
|
|
1291
|
+
if ((0, _isArray2.default)(activity)) {
|
|
1281
1292
|
activity = {
|
|
1282
1293
|
object: {
|
|
1283
1294
|
files: activity
|
|
@@ -1329,13 +1340,13 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1329
1340
|
var customActivityCopy = function customActivityCopy(value) {
|
|
1330
1341
|
var files = params.body.object.files;
|
|
1331
1342
|
if (files && value && files.items.length > 0 && value.constructor === files.items[0].scr.constructor) {
|
|
1332
|
-
var copySrc = (0,
|
|
1343
|
+
var copySrc = (0, _cloneDeep2.default)(value);
|
|
1333
1344
|
copySrc.toJWE = value.toJWE;
|
|
1334
1345
|
copySrc.toJSON = value.toJSON;
|
|
1335
1346
|
return copySrc;
|
|
1336
1347
|
}
|
|
1337
1348
|
};
|
|
1338
|
-
var cloneActivity = (0,
|
|
1349
|
+
var cloneActivity = (0, _cloneDeepWith2.default)(params, customActivityCopy);
|
|
1339
1350
|
|
|
1340
1351
|
// triggers user-activity to reset logout timer
|
|
1341
1352
|
this.webex.trigger('user-activity');
|
|
@@ -1427,7 +1438,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1427
1438
|
*/
|
|
1428
1439
|
update: function update(conversation, object, activity) {
|
|
1429
1440
|
var _this24 = this;
|
|
1430
|
-
if (!(0,
|
|
1441
|
+
if (!(0, _isObject2.default)(object)) {
|
|
1431
1442
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
1432
1443
|
}
|
|
1433
1444
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
@@ -1480,7 +1491,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1480
1491
|
return _promise.default.resolve(key || this.webex.internal.encryption.kms.createUnboundKeys({
|
|
1481
1492
|
count: 1
|
|
1482
1493
|
})).then(function (keys) {
|
|
1483
|
-
var k = (0,
|
|
1494
|
+
var k = (0, _isArray2.default)(keys) ? keys[0] : keys;
|
|
1484
1495
|
var params = {
|
|
1485
1496
|
verb: 'updateKey',
|
|
1486
1497
|
target: _this26.prepareConversation(convoWithUrl),
|
|
@@ -1503,7 +1514,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1503
1514
|
params.kmsMessage = {
|
|
1504
1515
|
method: 'create',
|
|
1505
1516
|
uri: '/resources',
|
|
1506
|
-
userIds: (0,
|
|
1517
|
+
userIds: (0, _map3.default)(convoWithUrl.participants.items, 'id'),
|
|
1507
1518
|
keyUris: [k.uri]
|
|
1508
1519
|
};
|
|
1509
1520
|
}
|
|
@@ -1624,7 +1635,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1624
1635
|
});
|
|
1625
1636
|
var resource = options.resource;
|
|
1626
1637
|
return this._list({
|
|
1627
|
-
qs: (0,
|
|
1638
|
+
qs: (0, _omit2.default)(options, 'resource'),
|
|
1628
1639
|
url: "".concat(url, "/").concat(resource)
|
|
1629
1640
|
});
|
|
1630
1641
|
},
|
|
@@ -1663,7 +1674,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1663
1674
|
url: conversationUrl,
|
|
1664
1675
|
id: conversationId
|
|
1665
1676
|
});
|
|
1666
|
-
var baseOptions = _objectSpread(_objectSpread({}, (0,
|
|
1677
|
+
var baseOptions = _objectSpread(_objectSpread({}, (0, _omit2.default)(options, ['conversationUrl', 'conversationId'])), {}, {
|
|
1667
1678
|
url: url
|
|
1668
1679
|
});
|
|
1669
1680
|
var olderOptions = _objectSpread(_objectSpread({}, baseOptions), {}, {
|
|
@@ -2294,7 +2305,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2294
2305
|
list = [];
|
|
2295
2306
|
} else {
|
|
2296
2307
|
list = res.body.items.slice(0);
|
|
2297
|
-
if ((0,
|
|
2308
|
+
if ((0, _last2.default)(list).published < list[0].published) {
|
|
2298
2309
|
list.reverse();
|
|
2299
2310
|
}
|
|
2300
2311
|
}
|
|
@@ -2341,7 +2352,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2341
2352
|
result = _step6.value;
|
|
2342
2353
|
if (result.body && result.body.items && result.body.items.length) {
|
|
2343
2354
|
items = result.body.items;
|
|
2344
|
-
if ((0,
|
|
2355
|
+
if ((0, _last2.default)(items).published < items[0].published) {
|
|
2345
2356
|
items.reverse();
|
|
2346
2357
|
}
|
|
2347
2358
|
list = list.concat(items);
|
|
@@ -2374,7 +2385,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2374
2385
|
*/
|
|
2375
2386
|
_maybeCreateOneOnOneThenPost: function _maybeCreateOneOnOneThenPost(params, options) {
|
|
2376
2387
|
var _this31 = this;
|
|
2377
|
-
return this.get((0,
|
|
2388
|
+
return this.get((0, _defaults2.default)({
|
|
2378
2389
|
// the use of uniq in Conversation#create guarantees participant[1] will
|
|
2379
2390
|
// always be the other user
|
|
2380
2391
|
user: params.participants[1]
|
|
@@ -2414,7 +2425,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2414
2425
|
kmsMessage: {
|
|
2415
2426
|
method: 'create',
|
|
2416
2427
|
uri: '/resources',
|
|
2417
|
-
userIds: (0,
|
|
2428
|
+
userIds: (0, _cloneDeep2.default)(params.participants),
|
|
2418
2429
|
keyUris: []
|
|
2419
2430
|
}
|
|
2420
2431
|
};
|
|
@@ -2472,7 +2483,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2472
2483
|
});
|
|
2473
2484
|
}));
|
|
2474
2485
|
},
|
|
2475
|
-
version: "2.
|
|
2486
|
+
version: "2.60.0"
|
|
2476
2487
|
});
|
|
2477
2488
|
['favorite', 'hide', 'lock', 'mute', 'unfavorite', 'unhide', 'unlock', 'unmute'].forEach(function (verb) {
|
|
2478
2489
|
Conversation.prototype[verb] = function submitSimpleActivity(conversation, activity) {
|
|
@@ -2524,7 +2535,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2524
2535
|
var verb = fnName.startsWith('set') ? 'set' : 'unset';
|
|
2525
2536
|
Conversation.prototype[fnName] = function submitSpacePropertyActivity(conversation, tag, activity) {
|
|
2526
2537
|
var _this36 = this;
|
|
2527
|
-
if (!(0,
|
|
2538
|
+
if (!(0, _isString2.default)(tag)) {
|
|
2528
2539
|
return _promise.default.reject(new Error('`tag` must be a string'));
|
|
2529
2540
|
}
|
|
2530
2541
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
@@ -2545,7 +2556,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2545
2556
|
['tag', 'untag'].forEach(function (verb) {
|
|
2546
2557
|
Conversation.prototype[verb] = function submitObjectActivity(conversation, object, activity) {
|
|
2547
2558
|
var _this37 = this;
|
|
2548
|
-
if (!(0,
|
|
2559
|
+
if (!(0, _isObject2.default)(object)) {
|
|
2549
2560
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
2550
2561
|
}
|
|
2551
2562
|
var c = this.prepareConversation(_objectSpread(_objectSpread({}, conversation), {}, {
|