@webex/internal-plugin-conversation 2.58.1 → 2.59.1-next.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 +38 -49
- package/dist/conversation.js.map +1 -1
- package/dist/decryption-transforms.js +8 -6
- 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 +11 -13
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +11 -14
- 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 -19
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 _lodash = require("lodash");
|
|
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, _lodash.sortBy)(activities, function (activity) {
|
|
89
89
|
return getPublishedDate(activity);
|
|
90
90
|
});
|
|
91
91
|
};
|
package/dist/activities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
|
@@ -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 _from = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/from"));
|
|
10
|
-
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
11
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
12
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
13
|
-
var
|
|
11
|
+
var _from = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/from"));
|
|
12
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
13
|
+
var _lodash = require("lodash");
|
|
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, _lodash.last)(oldestActsFirst);
|
|
154
154
|
var oldestInBatch = oldestActsFirst[0];
|
|
155
155
|
setOldestAct(oldestInBatch);
|
|
156
156
|
setNewestAct(newestInBatch);
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
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 _map = _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,24 +27,13 @@ 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"));
|
|
42
30
|
var _querystring = _interopRequireDefault(require("querystring"));
|
|
43
31
|
var _events = require("events");
|
|
44
32
|
var _hmacSha = _interopRequireDefault(require("crypto-js/hmac-sha256"));
|
|
45
33
|
var _encHex = _interopRequireDefault(require("crypto-js/enc-hex"));
|
|
46
34
|
var _common = require("@webex/common");
|
|
47
35
|
var _webexCore = require("@webex/webex-core");
|
|
36
|
+
var _lodash = require("lodash");
|
|
48
37
|
var _helperImage = require("@webex/helper-image");
|
|
49
38
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
50
39
|
var _convoError = require("./convo-error");
|
|
@@ -57,7 +46,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
57
46
|
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; }
|
|
58
47
|
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; }
|
|
59
48
|
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; }
|
|
60
|
-
var idToUrl = new
|
|
49
|
+
var idToUrl = new _map.default();
|
|
61
50
|
var getConvoLimit = function getConvoLimit() {
|
|
62
51
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
63
52
|
var limit;
|
|
@@ -99,7 +88,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
99
88
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
100
89
|
url: url
|
|
101
90
|
});
|
|
102
|
-
if (!(0,
|
|
91
|
+
if (!(0, _lodash.isObject)(object)) {
|
|
103
92
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
104
93
|
}
|
|
105
94
|
return this.prepare(activity, {
|
|
@@ -185,7 +174,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
185
174
|
});
|
|
186
175
|
})).then(function (participants) {
|
|
187
176
|
participants.unshift(_this4.webex.internal.device.userId);
|
|
188
|
-
participants = (0,
|
|
177
|
+
participants = (0, _lodash.uniq)(participants);
|
|
189
178
|
var validParticipants = participants.filter(function (participant) {
|
|
190
179
|
return participant;
|
|
191
180
|
});
|
|
@@ -268,12 +257,12 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
268
257
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
269
258
|
url: url
|
|
270
259
|
});
|
|
271
|
-
if (!(0,
|
|
260
|
+
if (!(0, _lodash.isObject)(reactionPayload)) {
|
|
272
261
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
273
262
|
}
|
|
274
263
|
return this.prepare(reactionPayload, {
|
|
275
264
|
target: this.prepareConversation(convoWithUrl),
|
|
276
|
-
object: (0,
|
|
265
|
+
object: (0, _lodash.pick)(reactionPayload, 'id', 'url', 'objectType')
|
|
277
266
|
}).then(function (act) {
|
|
278
267
|
return _this5.submit(act);
|
|
279
268
|
});
|
|
@@ -350,13 +339,13 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
350
339
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
351
340
|
url: url
|
|
352
341
|
});
|
|
353
|
-
if (!(0,
|
|
342
|
+
if (!(0, _lodash.isObject)(object)) {
|
|
354
343
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
355
344
|
}
|
|
356
345
|
var request = {
|
|
357
346
|
verb: 'delete',
|
|
358
347
|
target: this.prepareConversation(convoWithUrl),
|
|
359
|
-
object: (0,
|
|
348
|
+
object: (0, _lodash.pick)(object, 'id', 'url', 'objectType')
|
|
360
349
|
};
|
|
361
350
|
|
|
362
351
|
// Deleting meeting container requires KMS message
|
|
@@ -456,7 +445,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
456
445
|
if (!actor) {
|
|
457
446
|
actor = this.webex.internal.device.userId;
|
|
458
447
|
}
|
|
459
|
-
if ((0,
|
|
448
|
+
if ((0, _lodash.isString)(actor)) {
|
|
460
449
|
activity.actor = {
|
|
461
450
|
objectType: 'person',
|
|
462
451
|
id: actor
|
|
@@ -551,7 +540,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
551
540
|
activitiesLimit: 0,
|
|
552
541
|
includeConvWithDeletedUserUUID: false,
|
|
553
542
|
includeParticipants: false
|
|
554
|
-
}, (0,
|
|
543
|
+
}, (0, _lodash.omit)(options, 'id', 'user', 'url')),
|
|
555
544
|
disableTransform: options.disableTransform
|
|
556
545
|
};
|
|
557
546
|
|
|
@@ -639,7 +628,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
639
628
|
return this._list({
|
|
640
629
|
service: 'conversation',
|
|
641
630
|
resource: options.summary ? 'conversationsSummary' : 'conversations',
|
|
642
|
-
qs: (0,
|
|
631
|
+
qs: (0, _lodash.omit)(options, ['deferDecrypt', 'summary']),
|
|
643
632
|
deferDecrypt: options.deferDecrypt,
|
|
644
633
|
limit: getConvoLimit(options)
|
|
645
634
|
}).then(function (results) {
|
|
@@ -704,7 +693,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
704
693
|
activitiesLimit: 0,
|
|
705
694
|
participantsLimit: 0,
|
|
706
695
|
paginate: true
|
|
707
|
-
}, (0,
|
|
696
|
+
}, (0, _lodash.omit)(options, ['deferDecrypt', 'url']));
|
|
708
697
|
reqOptions = {
|
|
709
698
|
qs: queryOptions,
|
|
710
699
|
deferDecrypt: options.deferDecrypt,
|
|
@@ -862,7 +851,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
862
851
|
break;
|
|
863
852
|
case 16:
|
|
864
853
|
// reverse list if needed (see _list for precedent)
|
|
865
|
-
if (items.length && (0,
|
|
854
|
+
if (items.length && (0, _lodash.last)(items).published < items[0].published) {
|
|
866
855
|
items.reverse();
|
|
867
856
|
}
|
|
868
857
|
return _context3.abrupt("return", items);
|
|
@@ -950,7 +939,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
950
939
|
return this._list({
|
|
951
940
|
service: 'conversation',
|
|
952
941
|
resource: 'mentions',
|
|
953
|
-
qs: (0,
|
|
942
|
+
qs: (0, _lodash.omit)(options, 'mentions')
|
|
954
943
|
});
|
|
955
944
|
},
|
|
956
945
|
/**
|
|
@@ -1028,7 +1017,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1028
1017
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
1029
1018
|
url: this.getConvoUrl(conversation)
|
|
1030
1019
|
});
|
|
1031
|
-
if ((0,
|
|
1020
|
+
if ((0, _lodash.isString)(message)) {
|
|
1032
1021
|
message = {
|
|
1033
1022
|
displayName: message
|
|
1034
1023
|
};
|
|
@@ -1044,7 +1033,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1044
1033
|
});
|
|
1045
1034
|
},
|
|
1046
1035
|
prepareConversation: function prepareConversation(conversation) {
|
|
1047
|
-
return (0,
|
|
1036
|
+
return (0, _lodash.defaults)((0, _lodash.pick)(conversation, 'id', 'url', 'objectType', 'defaultActivityEncryptionKeyUrl', 'kmsResourceObjectUrl'), {
|
|
1048
1037
|
objectType: 'conversation'
|
|
1049
1038
|
});
|
|
1050
1039
|
},
|
|
@@ -1053,7 +1042,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1053
1042
|
params = params || {};
|
|
1054
1043
|
activity = activity || {};
|
|
1055
1044
|
return _promise.default.resolve(activity.prepare ? activity.prepare(params) : activity).then(function (act) {
|
|
1056
|
-
(0,
|
|
1045
|
+
(0, _lodash.defaults)(act, {
|
|
1057
1046
|
verb: params.verb,
|
|
1058
1047
|
kmsMessage: params.kmsMessage,
|
|
1059
1048
|
objectType: 'activity',
|
|
@@ -1068,7 +1057,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1068
1057
|
type: activity.activityType || activity.parent.type
|
|
1069
1058
|
};
|
|
1070
1059
|
}
|
|
1071
|
-
if ((0,
|
|
1060
|
+
if ((0, _lodash.isString)(act.actor)) {
|
|
1072
1061
|
act.actor = {
|
|
1073
1062
|
objectType: 'person',
|
|
1074
1063
|
id: act.actor
|
|
@@ -1077,12 +1066,12 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1077
1066
|
['actor', 'object'].forEach(function (key) {
|
|
1078
1067
|
if (params[key]) {
|
|
1079
1068
|
act[key] = act[key] || {};
|
|
1080
|
-
(0,
|
|
1069
|
+
(0, _lodash.defaults)(act[key], params[key]);
|
|
1081
1070
|
}
|
|
1082
1071
|
});
|
|
1083
1072
|
if (params.target) {
|
|
1084
|
-
(0,
|
|
1085
|
-
target: (0,
|
|
1073
|
+
(0, _lodash.merge)(act, {
|
|
1074
|
+
target: (0, _lodash.pick)(params.target, 'id', 'url', 'objectType', 'kmsResourceObjectUrl', 'defaultActivityEncryptionKeyUrl')
|
|
1086
1075
|
});
|
|
1087
1076
|
}
|
|
1088
1077
|
['object', 'target'].forEach(function (key) {
|
|
@@ -1117,7 +1106,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1117
1106
|
return _context6.abrupt("return", _this19._list({
|
|
1118
1107
|
service: 'conversation',
|
|
1119
1108
|
resource: 'threads',
|
|
1120
|
-
qs: (0,
|
|
1109
|
+
qs: (0, _lodash.omit)(options, 'showAllTypes')
|
|
1121
1110
|
}));
|
|
1122
1111
|
case 1:
|
|
1123
1112
|
case "end":
|
|
@@ -1288,7 +1277,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1288
1277
|
*/
|
|
1289
1278
|
share: function share(conversation, activity) {
|
|
1290
1279
|
var _this21 = this;
|
|
1291
|
-
if ((0,
|
|
1280
|
+
if ((0, _lodash.isArray)(activity)) {
|
|
1292
1281
|
activity = {
|
|
1293
1282
|
object: {
|
|
1294
1283
|
files: activity
|
|
@@ -1340,13 +1329,13 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1340
1329
|
var customActivityCopy = function customActivityCopy(value) {
|
|
1341
1330
|
var files = params.body.object.files;
|
|
1342
1331
|
if (files && value && files.items.length > 0 && value.constructor === files.items[0].scr.constructor) {
|
|
1343
|
-
var copySrc = (0,
|
|
1332
|
+
var copySrc = (0, _lodash.cloneDeep)(value);
|
|
1344
1333
|
copySrc.toJWE = value.toJWE;
|
|
1345
1334
|
copySrc.toJSON = value.toJSON;
|
|
1346
1335
|
return copySrc;
|
|
1347
1336
|
}
|
|
1348
1337
|
};
|
|
1349
|
-
var cloneActivity = (0,
|
|
1338
|
+
var cloneActivity = (0, _lodash.cloneDeepWith)(params, customActivityCopy);
|
|
1350
1339
|
|
|
1351
1340
|
// triggers user-activity to reset logout timer
|
|
1352
1341
|
this.webex.trigger('user-activity');
|
|
@@ -1438,7 +1427,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1438
1427
|
*/
|
|
1439
1428
|
update: function update(conversation, object, activity) {
|
|
1440
1429
|
var _this24 = this;
|
|
1441
|
-
if (!(0,
|
|
1430
|
+
if (!(0, _lodash.isObject)(object)) {
|
|
1442
1431
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
1443
1432
|
}
|
|
1444
1433
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
@@ -1491,7 +1480,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1491
1480
|
return _promise.default.resolve(key || this.webex.internal.encryption.kms.createUnboundKeys({
|
|
1492
1481
|
count: 1
|
|
1493
1482
|
})).then(function (keys) {
|
|
1494
|
-
var k = (0,
|
|
1483
|
+
var k = (0, _lodash.isArray)(keys) ? keys[0] : keys;
|
|
1495
1484
|
var params = {
|
|
1496
1485
|
verb: 'updateKey',
|
|
1497
1486
|
target: _this26.prepareConversation(convoWithUrl),
|
|
@@ -1514,7 +1503,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1514
1503
|
params.kmsMessage = {
|
|
1515
1504
|
method: 'create',
|
|
1516
1505
|
uri: '/resources',
|
|
1517
|
-
userIds: (0,
|
|
1506
|
+
userIds: (0, _lodash.map)(convoWithUrl.participants.items, 'id'),
|
|
1518
1507
|
keyUris: [k.uri]
|
|
1519
1508
|
};
|
|
1520
1509
|
}
|
|
@@ -1635,7 +1624,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1635
1624
|
});
|
|
1636
1625
|
var resource = options.resource;
|
|
1637
1626
|
return this._list({
|
|
1638
|
-
qs: (0,
|
|
1627
|
+
qs: (0, _lodash.omit)(options, 'resource'),
|
|
1639
1628
|
url: "".concat(url, "/").concat(resource)
|
|
1640
1629
|
});
|
|
1641
1630
|
},
|
|
@@ -1674,7 +1663,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
1674
1663
|
url: conversationUrl,
|
|
1675
1664
|
id: conversationId
|
|
1676
1665
|
});
|
|
1677
|
-
var baseOptions = _objectSpread(_objectSpread({}, (0,
|
|
1666
|
+
var baseOptions = _objectSpread(_objectSpread({}, (0, _lodash.omit)(options, ['conversationUrl', 'conversationId'])), {}, {
|
|
1678
1667
|
url: url
|
|
1679
1668
|
});
|
|
1680
1669
|
var olderOptions = _objectSpread(_objectSpread({}, baseOptions), {}, {
|
|
@@ -2305,7 +2294,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2305
2294
|
list = [];
|
|
2306
2295
|
} else {
|
|
2307
2296
|
list = res.body.items.slice(0);
|
|
2308
|
-
if ((0,
|
|
2297
|
+
if ((0, _lodash.last)(list).published < list[0].published) {
|
|
2309
2298
|
list.reverse();
|
|
2310
2299
|
}
|
|
2311
2300
|
}
|
|
@@ -2352,7 +2341,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2352
2341
|
result = _step6.value;
|
|
2353
2342
|
if (result.body && result.body.items && result.body.items.length) {
|
|
2354
2343
|
items = result.body.items;
|
|
2355
|
-
if ((0,
|
|
2344
|
+
if ((0, _lodash.last)(items).published < items[0].published) {
|
|
2356
2345
|
items.reverse();
|
|
2357
2346
|
}
|
|
2358
2347
|
list = list.concat(items);
|
|
@@ -2385,7 +2374,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2385
2374
|
*/
|
|
2386
2375
|
_maybeCreateOneOnOneThenPost: function _maybeCreateOneOnOneThenPost(params, options) {
|
|
2387
2376
|
var _this31 = this;
|
|
2388
|
-
return this.get((0,
|
|
2377
|
+
return this.get((0, _lodash.defaults)({
|
|
2389
2378
|
// the use of uniq in Conversation#create guarantees participant[1] will
|
|
2390
2379
|
// always be the other user
|
|
2391
2380
|
user: params.participants[1]
|
|
@@ -2425,7 +2414,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2425
2414
|
kmsMessage: {
|
|
2426
2415
|
method: 'create',
|
|
2427
2416
|
uri: '/resources',
|
|
2428
|
-
userIds: (0,
|
|
2417
|
+
userIds: (0, _lodash.cloneDeep)(params.participants),
|
|
2429
2418
|
keyUris: []
|
|
2430
2419
|
}
|
|
2431
2420
|
};
|
|
@@ -2483,7 +2472,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2483
2472
|
});
|
|
2484
2473
|
}));
|
|
2485
2474
|
},
|
|
2486
|
-
version: "
|
|
2475
|
+
version: "modern"
|
|
2487
2476
|
});
|
|
2488
2477
|
['favorite', 'hide', 'lock', 'mute', 'unfavorite', 'unhide', 'unlock', 'unmute'].forEach(function (verb) {
|
|
2489
2478
|
Conversation.prototype[verb] = function submitSimpleActivity(conversation, activity) {
|
|
@@ -2535,7 +2524,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2535
2524
|
var verb = fnName.startsWith('set') ? 'set' : 'unset';
|
|
2536
2525
|
Conversation.prototype[fnName] = function submitSpacePropertyActivity(conversation, tag, activity) {
|
|
2537
2526
|
var _this36 = this;
|
|
2538
|
-
if (!(0,
|
|
2527
|
+
if (!(0, _lodash.isString)(tag)) {
|
|
2539
2528
|
return _promise.default.reject(new Error('`tag` must be a string'));
|
|
2540
2529
|
}
|
|
2541
2530
|
var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
|
|
@@ -2556,7 +2545,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
|
|
|
2556
2545
|
['tag', 'untag'].forEach(function (verb) {
|
|
2557
2546
|
Conversation.prototype[verb] = function submitObjectActivity(conversation, object, activity) {
|
|
2558
2547
|
var _this37 = this;
|
|
2559
|
-
if (!(0,
|
|
2548
|
+
if (!(0, _lodash.isObject)(object)) {
|
|
2560
2549
|
return _promise.default.reject(new Error('`object` must be an object'));
|
|
2561
2550
|
}
|
|
2562
2551
|
var c = this.prepareConversation(_objectSpread(_objectSpread({}, conversation), {}, {
|