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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +1 -3
  2. package/dist/activities.js.map +1 -1
  3. package/dist/activity-thread-ordering.js.map +1 -1
  4. package/dist/config.js +1 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/conversation.js +77 -60
  7. package/dist/conversation.js.map +1 -1
  8. package/dist/decryption-transforms.js +24 -24
  9. package/dist/decryption-transforms.js.map +1 -1
  10. package/dist/encryption-transforms.js +1 -1
  11. package/dist/encryption-transforms.js.map +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/share-activity.js +25 -11
  14. package/dist/share-activity.js.map +1 -1
  15. package/dist/to-array.js +16 -2
  16. package/dist/to-array.js.map +1 -1
  17. package/package.json +15 -15
  18. package/src/activities.js +10 -7
  19. package/src/activity-thread-ordering.js +27 -30
  20. package/src/activity-threading.md +68 -49
  21. package/src/config.js +5 -5
  22. package/src/conversation.js +604 -587
  23. package/src/decryption-transforms.js +103 -62
  24. package/src/encryption-transforms.js +103 -83
  25. package/src/index.js +82 -66
  26. package/src/share-activity.js +63 -54
  27. package/src/to-array.js +2 -2
  28. package/test/integration/spec/create.js +184 -118
  29. package/test/integration/spec/encryption.js +250 -186
  30. package/test/integration/spec/get.js +761 -513
  31. package/test/integration/spec/mercury.js +37 -27
  32. package/test/integration/spec/share.js +292 -229
  33. package/test/integration/spec/verbs.js +628 -441
  34. package/test/unit/spec/conversation.js +224 -163
  35. package/test/unit/spec/decrypt-transforms.js +112 -131
  36. package/test/unit/spec/encryption-transforms.js +24 -18
  37. package/test/unit/spec/share-activity.js +37 -40
package/README.md CHANGED
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-conversation
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-conversation';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.conversation.WHATEVER
31
-
29
+ webex.internal.conversation.WHATEVER;
32
30
  ```
33
31
 
34
32
  This is the list of environment variable used by this plugin:
@@ -1 +1 @@
1
- {"version":3,"names":["OLDER","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","parent","type","verb","getPublishedDate","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","getParentId","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","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) => getPublishedDate(activity1) > getPublishedDate(activity2);\n\nexport const sortActivitiesByPublishedDate = (activities) => 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) => 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","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","parent","type","verb","getPublishedDate","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","getParentId","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","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 +1 @@
1
- {"version":3,"names":["defaultMinDisplayableActivities","minBatchSize","fetchLoopCountMax","batchSizeIncrementCount","setValue","destination","key","value","set","getValue","source","get","getActivityObjectsFromMap","hashMap","map","activity","activityManager","replyActivityHash","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","REACTION","REACTION_SELF","EDIT","REPLY","getActivityByTypeAndParentId","type","bookendManager","oldestAct","newestAct","getOldestAct","getNewestAct","setOldestAct","act","setNewestAct","setBookends","activities","oldestActsFirst","sortActivitiesByPublishedDate","newestInBatch","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","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) => 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 }\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 [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 [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 }\n else if (isNewer(oldestAct, act)) {\n oldestAct = act;\n }\n };\n\n const setNewestAct = (act) => {\n if (!newestAct) {\n newestAct = act;\n }\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 {\n newestPublishedDate, oldestPublishedDate, batchSize, activityToSearch = {}\n } = 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 }\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":["defaultMinDisplayableActivities","minBatchSize","fetchLoopCountMax","batchSizeIncrementCount","setValue","destination","key","value","set","getValue","source","get","getActivityObjectsFromMap","hashMap","map","activity","activityManager","replyActivityHash","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","REACTION","REACTION_SELF","EDIT","REPLY","getActivityByTypeAndParentId","type","bookendManager","oldestAct","newestAct","getOldestAct","getNewestAct","setOldestAct","act","setNewestAct","setBookends","activities","oldestActsFirst","sortActivitiesByPublishedDate","newestInBatch","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","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/config.js CHANGED
@@ -39,7 +39,7 @@ var _default = {
39
39
  thumbnailMaxWidth: 640,
40
40
 
41
41
  /**
42
- * Primarily for testing. When true, decrypting an activity will create a
42
+ * Primarily for testing. When true, decrypting an activity will create a
43
43
  * sister property with the original encrypted string
44
44
  * @type {Boolean}
45
45
  */
@@ -1 +1 @@
1
- {"version":3,"names":["conversation","allowedInboundTags","allowedOutboundTags","inboundProcessFunc","outboundProcessFunc","allowedInboundStyles","allowedOutboundStyles","thumbnailMaxHeight","thumbnailMaxWidth","keepEncryptedProperties","decryptionFailureMessage"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n conversation: {\n allowedInboundTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url']\n },\n allowedOutboundTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url']\n },\n // eslint-disable-next-line no-empty-function\n inboundProcessFunc: () => {},\n // eslint-disable-next-line no-empty-function\n outboundProcessFunc: () => {},\n allowedInboundStyles: [],\n allowedOutboundStyles: [],\n /**\n * Max height for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxHeight: 960,\n /**\n * Max width for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxWidth: 640,\n /**\n * Primarily for testing. When true, decrypting an activity will create a\n * sister property with the original encrypted string\n * @type {Boolean}\n */\n keepEncryptedProperties: false,\n decryptionFailureMessage: 'This message cannot be decrypted'\n }\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,YAAY,EAAE;IACZC,kBAAkB,EAAE;MAClB,iBAAiB,CAAC,kBAAD,EAAqB,gBAArB,EAAuC,iBAAvC;IADC,CADR;IAIZC,mBAAmB,EAAE;MACnB,iBAAiB,CAAC,kBAAD,EAAqB,gBAArB,EAAuC,iBAAvC;IADE,CAJT;IAOZ;IACAC,kBAAkB,EAAE,8BAAM,CAAE,CARhB;IASZ;IACAC,mBAAmB,EAAE,+BAAM,CAAE,CAVjB;IAWZC,oBAAoB,EAAE,EAXV;IAYZC,qBAAqB,EAAE,EAZX;;IAaZ;AACJ;AACA;AACA;IACIC,kBAAkB,EAAE,GAjBR;;IAkBZ;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE,GAtBP;;IAuBZ;AACJ;AACA;AACA;AACA;IACIC,uBAAuB,EAAE,KA5Bb;IA6BZC,wBAAwB,EAAE;EA7Bd;AADD,C"}
1
+ {"version":3,"names":["conversation","allowedInboundTags","allowedOutboundTags","inboundProcessFunc","outboundProcessFunc","allowedInboundStyles","allowedOutboundStyles","thumbnailMaxHeight","thumbnailMaxWidth","keepEncryptedProperties","decryptionFailureMessage"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n conversation: {\n allowedInboundTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url'],\n },\n allowedOutboundTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url'],\n },\n // eslint-disable-next-line no-empty-function\n inboundProcessFunc: () => {},\n // eslint-disable-next-line no-empty-function\n outboundProcessFunc: () => {},\n allowedInboundStyles: [],\n allowedOutboundStyles: [],\n /**\n * Max height for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxHeight: 960,\n /**\n * Max width for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxWidth: 640,\n /**\n * Primarily for testing. When true, decrypting an activity will create a\n * sister property with the original encrypted string\n * @type {Boolean}\n */\n keepEncryptedProperties: false,\n decryptionFailureMessage: 'This message cannot be decrypted',\n },\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,YAAY,EAAE;IACZC,kBAAkB,EAAE;MAClB,iBAAiB,CAAC,kBAAD,EAAqB,gBAArB,EAAuC,iBAAvC;IADC,CADR;IAIZC,mBAAmB,EAAE;MACnB,iBAAiB,CAAC,kBAAD,EAAqB,gBAArB,EAAuC,iBAAvC;IADE,CAJT;IAOZ;IACAC,kBAAkB,EAAE,8BAAM,CAAE,CARhB;IASZ;IACAC,mBAAmB,EAAE,+BAAM,CAAE,CAVjB;IAWZC,oBAAoB,EAAE,EAXV;IAYZC,qBAAqB,EAAE,EAZX;;IAaZ;AACJ;AACA;AACA;IACIC,kBAAkB,EAAE,GAjBR;;IAkBZ;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE,GAtBP;;IAuBZ;AACJ;AACA;AACA;AACA;IACIC,uBAAuB,EAAE,KA5Bb;IA6BZC,wBAAwB,EAAE;EA7Bd;AADD,C"}
@@ -1,13 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
4
-
5
- var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
6
-
7
- var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
8
-
9
- var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
10
-
11
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
12
4
 
13
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
@@ -20,6 +12,14 @@ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/de
20
12
 
21
13
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
22
14
 
15
+ var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
16
+
17
+ var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
18
+
19
+ var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
20
+
21
+ var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
22
+
23
23
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
24
24
 
25
25
  _Object$defineProperty(exports, "__esModule", {
@@ -32,22 +32,22 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
32
32
 
33
33
  var _map2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
34
34
 
35
- var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
36
-
37
35
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
38
36
 
39
37
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
40
38
 
39
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
40
+
41
41
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
42
42
 
43
43
  var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
44
44
 
45
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
46
-
47
45
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
48
46
 
49
47
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
50
48
 
49
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
50
+
51
51
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/awaitAsyncGenerator"));
52
52
 
53
53
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/wrapAsyncGenerator"));
@@ -102,16 +102,16 @@ var _activities = require("./activities");
102
102
 
103
103
  var _constants = require("./constants");
104
104
 
105
- 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; }
106
-
107
- 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; }
108
-
109
105
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
110
106
 
111
107
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
112
108
 
113
109
  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; }
114
110
 
111
+ 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; }
112
+
113
+ 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; }
114
+
115
115
  var CLUSTER_SERVICE = process.env.WEBEX_CONVERSATION_CLUSTER_SERVICE || _constants.DEFAULT_CLUSTER_SERVICE;
116
116
  var DEFAULT_CLUSTER_IDENTIFIER = process.env.WEBEX_CONVERSATION_DEFAULT_CLUSTER || "".concat(_constants.DEFAULT_CLUSTER, ":").concat(CLUSTER_SERVICE);
117
117
  var idToUrl = new _map2.default();
@@ -174,7 +174,8 @@ var Conversation = _webexCore.WebexPlugin.extend({
174
174
  var _this2 = this;
175
175
 
176
176
  var url = this.getConvoUrl(conversation);
177
- var convoWithUrl = (0, _assign.default)({}, conversation, {
177
+
178
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
178
179
  url: url
179
180
  });
180
181
 
@@ -208,9 +209,11 @@ var Conversation = _webexCore.WebexPlugin.extend({
208
209
  var _this3 = this;
209
210
 
210
211
  var url = this.getConvoUrl(conversation);
211
- var convoWithUrl = (0, _assign.default)({}, conversation, {
212
+
213
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
212
214
  url: url
213
215
  });
216
+
214
217
  return this.webex.internal.user.asUUID(participant, {
215
218
  create: true
216
219
  }).then(function (id) {
@@ -359,7 +362,8 @@ var Conversation = _webexCore.WebexPlugin.extend({
359
362
  var _this5 = this;
360
363
 
361
364
  var url = this.getConvoUrl(conversation);
362
- var convoWithUrl = (0, _assign.default)({}, conversation, {
365
+
366
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
363
367
  url: url
364
368
  });
365
369
 
@@ -448,7 +452,8 @@ var Conversation = _webexCore.WebexPlugin.extend({
448
452
  var _this7 = this;
449
453
 
450
454
  var url = this.getConvoUrl(conversation);
451
- var convoWithUrl = (0, _assign.default)({}, conversation, {
455
+
456
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
452
457
  url: url
453
458
  });
454
459
 
@@ -591,16 +596,17 @@ var Conversation = _webexCore.WebexPlugin.extend({
591
596
  },
592
597
 
593
598
  /**
594
- * Gets an array of activities with an array of activity URLS
595
- * @param {Array} activityUrls
596
- * @param {Object} options
597
- * @param {String} options.cluster cluster where the activities are located
598
- * @param {String} options.url base convo url where the activities are located
599
- * @returns {Promise<Object>} Resolves with the activities
600
- */
599
+ * Gets an array of activities with an array of activity URLS
600
+ * @param {Array} activityUrls
601
+ * @param {Object} options
602
+ * @param {String} options.cluster cluster where the activities are located
603
+ * @param {String} options.url base convo url where the activities are located
604
+ * @returns {Promise<Object>} Resolves with the activities
605
+ */
601
606
  bulkActivitiesFetch: function bulkActivitiesFetch(activityUrls) {
602
607
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
603
- var cluster, url;
608
+ var cluster;
609
+ var url;
604
610
 
605
611
  if (typeof options === 'string') {
606
612
  cluster = options;
@@ -675,7 +681,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
675
681
  }
676
682
 
677
683
  var params = {
678
- qs: (0, _assign.default)({
684
+ qs: _objectSpread({
679
685
  uuidEntryFormat: true,
680
686
  personRefresh: true,
681
687
  activitiesLimit: 0,
@@ -730,9 +736,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
730
736
  leave: function leave(conversation, participant, activity) {
731
737
  var _this10 = this;
732
738
 
733
- var convoWithUrl = (0, _assign.default)({}, conversation, {
739
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
734
740
  url: this.getConvoUrl(conversation)
735
741
  });
742
+
736
743
  return _promise.default.resolve().then(function () {
737
744
  if (!participant) {
738
745
  participant = _this10.webex.internal.device.userId;
@@ -845,7 +852,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
845
852
 
846
853
  case 5:
847
854
  // No page - so this is the first request to kick off the pagination process
848
- queryOptions = (0, _assign.default)({
855
+ queryOptions = _objectSpread({
849
856
  personRefresh: true,
850
857
  uuidEntryFormat: true,
851
858
  activitiesLimit: 0,
@@ -1192,9 +1199,11 @@ var Conversation = _webexCore.WebexPlugin.extend({
1192
1199
  var _this16 = this;
1193
1200
 
1194
1201
  var activity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
1195
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1202
+
1203
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1196
1204
  url: this.getConvoUrl(conversation)
1197
1205
  });
1206
+
1198
1207
  activity.parent = {
1199
1208
  id: parentActivity.id,
1200
1209
  type: 'cardAction'
@@ -1202,7 +1211,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
1202
1211
  return this.prepare(activity, {
1203
1212
  verb: 'cardAction',
1204
1213
  target: this.prepareConversation(convoWithUrl),
1205
- object: (0, _assign.default)({
1214
+ object: _objectSpread({
1206
1215
  objectType: 'submit'
1207
1216
  }, inputs)
1208
1217
  }).then(function (a) {
@@ -1223,7 +1232,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
1223
1232
  post: function post(conversation, message, activity) {
1224
1233
  var _this17 = this;
1225
1234
 
1226
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1235
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1227
1236
  url: this.getConvoUrl(conversation)
1228
1237
  });
1229
1238
 
@@ -1236,7 +1245,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
1236
1245
  return this.prepare(activity, {
1237
1246
  verb: 'post',
1238
1247
  target: this.prepareConversation(convoWithUrl),
1239
- object: (0, _assign.default)({
1248
+ object: _objectSpread({
1240
1249
  objectType: 'comment'
1241
1250
  }, message)
1242
1251
  }).then(function (a) {
@@ -1311,10 +1320,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1311
1320
  },
1312
1321
 
1313
1322
  /**
1314
- * Get a subset of threads for a user.
1315
- * @param {Object} options
1316
- * @returns {Promise<Array<Activity>>}
1317
- */
1323
+ * Get a subset of threads for a user.
1324
+ * @param {Object} options
1325
+ * @returns {Promise<Array<Activity>>}
1326
+ */
1318
1327
  listThreads: function listThreads(options) {
1319
1328
  var _this19 = this;
1320
1329
 
@@ -1404,9 +1413,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1404
1413
  return _promise.default.reject(new Error('Room avatars must be less than 1MB'));
1405
1414
  }
1406
1415
 
1407
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1416
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1408
1417
  url: this.getConvoUrl(conversation)
1409
1418
  });
1419
+
1410
1420
  return _promise.default.resolve().then(function () {
1411
1421
  var activity = _shareActivity.default.create(conversation, null, _this20.webex);
1412
1422
 
@@ -1530,7 +1540,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
1530
1540
  };
1531
1541
  }
1532
1542
 
1533
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1543
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1534
1544
  url: this.getConvoUrl(conversation)
1535
1545
  });
1536
1546
 
@@ -1627,9 +1637,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1627
1637
  unassign: function unassign(conversation, activity) {
1628
1638
  var _this23 = this;
1629
1639
 
1630
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1640
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1631
1641
  url: this.getConvoUrl(conversation)
1632
1642
  });
1643
+
1633
1644
  return this.prepare(activity, {
1634
1645
  verb: 'unassign',
1635
1646
  target: this.prepareConversation(convoWithUrl),
@@ -1694,9 +1705,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1694
1705
  return _promise.default.reject(new Error('`object` must be an object'));
1695
1706
  }
1696
1707
 
1697
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1708
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1698
1709
  url: this.getConvoUrl(conversation)
1699
1710
  });
1711
+
1700
1712
  return this.prepare(activity, {
1701
1713
  verb: 'update',
1702
1714
  target: this.prepareConversation(convoWithUrl),
@@ -1718,9 +1730,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1718
1730
  updateKey: function updateKey(conversation, key, activity) {
1719
1731
  var _this25 = this;
1720
1732
 
1721
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1733
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1722
1734
  url: this.getConvoUrl(conversation)
1723
1735
  });
1736
+
1724
1737
  return this.get(convoWithUrl, {
1725
1738
  activitiesLimit: 0,
1726
1739
  includeParticipants: true
@@ -1742,9 +1755,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
1742
1755
  _updateKey: function _updateKey(conversation, key, activity) {
1743
1756
  var _this26 = this;
1744
1757
 
1745
- var convoWithUrl = (0, _assign.default)({}, conversation, {
1758
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
1746
1759
  url: this.getConvoUrl(conversation)
1747
1760
  });
1761
+
1748
1762
  return _promise.default.resolve(key || this.webex.internal.encryption.kms.createUnboundKeys({
1749
1763
  count: 1
1750
1764
  })).then(function (keys) {
@@ -2113,10 +2127,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
2113
2127
  },
2114
2128
 
2115
2129
  /**
2116
- * Represents reactions to messages
2117
- * @typedef {object} Reaction
2118
- * @property {object} activity reaction2summary server activity object
2119
- */
2130
+ * Represents reactions to messages
2131
+ * @typedef {object} Reaction
2132
+ * @property {object} activity reaction2summary server activity object
2133
+ */
2120
2134
 
2121
2135
  /**
2122
2136
  * Represents a root (parent, with or without children) activity, along with any replies and reactions
@@ -2627,10 +2641,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
2627
2641
  */
2628
2642
 
2629
2643
  /**
2630
- * hashmap of server activities, keyed by id
2631
- * @typedef {object} ActivityHash
2632
- * @property {Object}
2633
- */
2644
+ * hashmap of server activities, keyed by id
2645
+ * @typedef {object} ActivityHash
2646
+ * @property {Object}
2647
+ */
2634
2648
 
2635
2649
  /**
2636
2650
  * extends a given server object with fields that point to their parent activities from the hashmap passed in
@@ -2693,7 +2707,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
2693
2707
  while (1) {
2694
2708
  switch (_context13.prev = _context13.next) {
2695
2709
  case 0:
2696
- options.qs = (0, _assign.default)({
2710
+ options.qs = _objectSpread({
2697
2711
  personRefresh: true,
2698
2712
  uuidEntryFormat: true,
2699
2713
  activitiesLimit: 0,
@@ -2743,7 +2757,8 @@ var Conversation = _webexCore.WebexPlugin.extend({
2743
2757
  _context13.next = 11;
2744
2758
  return _promise.default.all(res.body.additionalUrls.map(function (host) {
2745
2759
  var url = "".concat(host, "/").concat(options.resource);
2746
- var newOptions = (0, _assign.default)({}, options, {
2760
+
2761
+ var newOptions = _objectSpread(_objectSpread({}, options), {}, {
2747
2762
  uri: url,
2748
2763
  url: url
2749
2764
  });
@@ -2919,14 +2934,14 @@ var Conversation = _webexCore.WebexPlugin.extend({
2919
2934
  });
2920
2935
  }));
2921
2936
  },
2922
- version: "3.0.0-beta.13"
2937
+ version: "3.0.0-beta.15"
2923
2938
  });
2924
2939
 
2925
2940
  ['favorite', 'hide', 'lock', 'mute', 'unfavorite', 'unhide', 'unlock', 'unmute'].forEach(function (verb) {
2926
2941
  Conversation.prototype[verb] = function submitSimpleActivity(conversation, activity) {
2927
2942
  var _this34 = this;
2928
2943
 
2929
- var convoWithUrl = this.prepareConversation((0, _assign.default)({}, conversation, {
2944
+ var convoWithUrl = this.prepareConversation(_objectSpread(_objectSpread({}, conversation), {}, {
2930
2945
  url: this.getConvoUrl(conversation)
2931
2946
  }));
2932
2947
  return this.prepare(activity, {
@@ -2942,9 +2957,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
2942
2957
  Conversation.prototype[verb] = function submitModerationChangeActivity(conversation, moderator, activity) {
2943
2958
  var _this35 = this;
2944
2959
 
2945
- var convoWithUrl = (0, _assign.default)({}, conversation, {
2960
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
2946
2961
  url: this.getConvoUrl(conversation)
2947
2962
  });
2963
+
2948
2964
  return _promise.default.all([convoWithUrl, moderator ? this.webex.internal.user.asUUID(moderator) : this.webex.internal.device.userId]).then(function (_ref8) {
2949
2965
  var _ref9 = (0, _slicedToArray2.default)(_ref8, 2),
2950
2966
  c = _ref9[0],
@@ -2981,9 +2997,10 @@ var Conversation = _webexCore.WebexPlugin.extend({
2981
2997
  return _promise.default.reject(new Error('`tag` must be a string'));
2982
2998
  }
2983
2999
 
2984
- var convoWithUrl = (0, _assign.default)({}, conversation, {
3000
+ var convoWithUrl = _objectSpread(_objectSpread({}, conversation), {}, {
2985
3001
  url: this.getConvoUrl(conversation)
2986
3002
  });
3003
+
2987
3004
  return this.prepare(activity, {
2988
3005
  verb: verb,
2989
3006
  target: this.prepareConversation(convoWithUrl),
@@ -3004,7 +3021,7 @@ var Conversation = _webexCore.WebexPlugin.extend({
3004
3021
  return _promise.default.reject(new Error('`object` must be an object'));
3005
3022
  }
3006
3023
 
3007
- var c = this.prepareConversation((0, _assign.default)({}, conversation, {
3024
+ var c = this.prepareConversation(_objectSpread(_objectSpread({}, conversation), {}, {
3008
3025
  url: this.getConvoUrl(conversation)
3009
3026
  }));
3010
3027
  return this.prepare(activity, {