@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.
- package/README.md +1 -3
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/conversation.js +77 -60
- package/dist/conversation.js.map +1 -1
- package/dist/decryption-transforms.js +24 -24
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js +1 -1
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +25 -11
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js +16 -2
- package/dist/to-array.js.map +1 -1
- package/package.json +15 -15
- package/src/activities.js +10 -7
- package/src/activity-thread-ordering.js +27 -30
- package/src/activity-threading.md +68 -49
- package/src/config.js +5 -5
- package/src/conversation.js +604 -587
- package/src/decryption-transforms.js +103 -62
- package/src/encryption-transforms.js +103 -83
- package/src/index.js +82 -66
- package/src/share-activity.js +63 -54
- package/src/to-array.js +2 -2
- package/test/integration/spec/create.js +184 -118
- package/test/integration/spec/encryption.js +250 -186
- package/test/integration/spec/get.js +761 -513
- package/test/integration/spec/mercury.js +37 -27
- package/test/integration/spec/share.js +292 -229
- package/test/integration/spec/verbs.js +628 -441
- package/test/unit/spec/conversation.js +224 -163
- package/test/unit/spec/decrypt-transforms.js +112 -131
- package/test/unit/spec/encryption-transforms.js +24 -18
- package/test/unit/spec/share-activity.js +37 -40
package/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:
|
package/dist/activities.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,KAAK,GAAG,OAAd;;AACA,IAAMC,KAAK,GAAG,OAAd;;AACA,IAAMC,GAAG,GAAG,KAAZ;;AACA,IAAMC,OAAO,GAAG,SAAhB;;AAEA,IAAMC,cAAc,GAAG;EAC5BC,KAAK,EAAE,OADqB;EAE5BC,IAAI,EAAE,MAFsB;EAG5BC,QAAQ,EAAE,UAHkB;EAI5BC,aAAa,EAAE,eAJa;EAK5BC,IAAI,EAAE,MALsB;EAM5BC,MAAM,EAAE,QANoB;EAO5BC,SAAS,EAAE,WAPiB;EAQ5BC,MAAM,EAAE,QARoB;EAS5BC,UAAU,EAAE;AATgB,CAAvB;;AAYP,IAAMR,KAAK,GAAG,OAAd;AACA,IAAMC,IAAI,GAAG,MAAb;AACA,IAAMQ,gBAAgB,GAAG,iBAAzB;AACA,IAAMC,qBAAqB,GAAG,qBAA9B;AACA,IAAML,MAAM,GAAG,QAAf;AACA,IAAMC,SAAS,GAAG,WAAlB;AACA,IAAMC,MAAM,GAAG,QAAf;AACA,IAAMI,GAAG,GAAG,KAAZ;;AAEO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAAc;EAAA;;EAC3C,IAAI,qBAAAA,QAAQ,CAACC,MAAT,sEAAiBC,IAAjB,MAA0Bf,KAA9B,EAAqC;IACnC,OAAOD,cAAc,CAACC,KAAtB;EACD;;EACD,IAAI,sBAAAa,QAAQ,CAACC,MAAT,wEAAiBC,IAAjB,MAA0Bd,IAA9B,EAAoC;IAClC,OAAOF,cAAc,CAACE,IAAtB;EACD;;EACD,IAAIY,QAAQ,CAACG,IAAT,KAAkBL,GAAlB,IAAyBE,QAAQ,CAACE,IAAT,KAAkBN,gBAA/C,EAAiE;IAC/D,OAAOV,cAAc,CAACG,QAAtB;EACD;;EACD,IAAIW,QAAQ,CAACE,IAAT,KAAkBL,qBAAtB,EAA6C;IAC3C,OAAOX,cAAc,CAACI,aAAtB;EACD;;EACD,IAAIU,QAAQ,CAACG,IAAT,KAAkBX,MAAtB,EAA8B;IAC5B,OAAON,cAAc,CAACM,MAAtB;EACD;;EACD,IAAIQ,QAAQ,CAACG,IAAT,KAAkBV,SAAtB,EAAiC;IAC/B,OAAOP,cAAc,CAACO,SAAtB;EACD;;EACD,IAAIO,QAAQ,CAACG,IAAT,KAAkBT,MAAtB,EAA8B;IAC5B,OAAOR,cAAc,CAACQ,MAAtB;EACD;;EAED,OAAOR,cAAc,CAACK,IAAtB;AACD,CAxBM;;;;AA0BA,IAAMa,gBAAgB,GAAG,SAAnBA,gBAAmB;EAAA,IAACJ,QAAD,uEAAY,EAAZ;EAAA,OAAmB,IAAIK,IAAJ,CAASL,QAAQ,CAACM,SAAlB,EAA6BC,OAA7B,EAAnB;AAAA,CAAzB;AAEP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,SAAD,EAAYC,SAAZ;EAAA,OACrBN,gBAAgB,CAACK,SAAD,CAAhB,GAA8BL,gBAAgB,CAACM,SAAD,CADzB;AAAA,CAAhB;;;;AAGA,IAAMC,6BAA6B,GAAG,SAAhCA,6BAAgC,CAACC,UAAD;EAAA,OAC3C,sBAAOA,UAAP,EAAmB,UAACZ,QAAD;IAAA,OAAcI,gBAAgB,CAACJ,QAAD,CAA9B;EAAA,CAAnB,CAD2C;AAAA,CAAtC;;;;AAGA,IAAMa,WAAW,GAAG,SAAdA,WAAc,CAACb,QAAD;EAAA;;EAAA,OAAcA,QAAd,aAAcA,QAAd,4CAAcA,QAAQ,CAAEC,MAAxB,sDAAc,kBAAkBa,EAAhC;AAAA,CAApB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD;EAAA,OAASjB,eAAe,CAACiB,GAAD,CAAf,KAAyB9B,cAAc,CAACK,IAAjD;AAAA,CAAvB;;;;AACA,IAAM0B,eAAe,GAAG,SAAlBA,eAAkB,CAACD,GAAD;EAAA,OAASjB,eAAe,CAACiB,GAAD,CAAf,KAAyB9B,cAAc,CAACC,KAAjD;AAAA,CAAxB;;;;AACA,IAAM+B,cAAc,GAAG,SAAjBA,cAAiB,CAACF,GAAD;EAAA,OAASjB,eAAe,CAACiB,GAAD,CAAf,KAAyB9B,cAAc,CAACE,IAAjD;AAAA,CAAvB;;;;AACA,IAAM+B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACH,GAAD;EAAA,OAASjB,eAAe,CAACiB,GAAD,CAAf,KAAyB9B,cAAc,CAACM,MAAjD;AAAA,CAAzB;;;;AACA,IAAM4B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,GAAD;EAAA,OAASjB,eAAe,CAACiB,GAAD,CAAf,KAAyB9B,cAAc,CAACQ,MAAjD;AAAA,CAAzB;;;;AAEA,IAAM2B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACrB,QAAD,EAAc;EAC5C,IAAMsB,KAAK,qBAAOtB,QAAP,CAAX;;EAEAsB,KAAK,CAACC,QAAN,GAAiBvB,QAAQ,CAACuB,QAAT,IAAqB,EAAtC;EACAD,KAAK,CAACE,YAAN,GAAqBxB,QAAQ,CAACwB,YAAT,IAAyB,EAA9C,CAJ4C,CAM5C;;EACA,OAAOF,KAAK,CAACG,OAAb;EAEA,OAAOH,KAAP;AACD,CAVM;;;;AAYA,IAAMI,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC1B,QAAD,EAAWY,UAAX;EAAA,OACnCZ,QAAQ,CAACC,MAAT,IAAmBD,QAAQ,CAACC,MAAT,CAAgBa,EAAnC,IAAyC,CAACF,UAAU,CAACZ,QAAQ,CAACC,MAAT,CAAgBa,EAAjB,CADjB;AAAA,CAA9B;;;;AAGP,IAAMa,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAC3B,QAAD,EAAWY,UAAX,EAA0B;EACvD,IAAMgB,QAAQ,GAAG5B,QAAQ,CAACC,MAAT,CAAgBa,EAAjC;EACA,IAAMe,cAAc,GAAGjB,UAAU,CAACgB,QAAD,CAAjC;EAEA,OAAOC,cAAc,IAAIZ,eAAe,CAACY,cAAD,CAAxC;AACD,CALD;;AAOO,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC9B,QAAD,EAAWY,UAAX,EAA0B;EAC7D,IAAMmB,WAAW,GAAGhC,eAAe,CAACC,QAAD,CAAnC,CAD6D,CAG7D;EACA;;EACA,IAAI+B,WAAW,KAAK7C,cAAc,CAACE,IAAnC,EAAyC;IACvC,IAAM4C,mBAAmB,GAAGL,sBAAsB,CAAC3B,QAAD,EAAWY,UAAX,CAAlD;IAEA,OAAOoB,mBAAmB,GAAG9C,cAAc,CAACS,UAAlB,GAA+BoC,WAAzD;EACD;;EAED,OAAOA,WAAP;AACD,CAZM;;;;AAcA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACjC,QAAD;EAAA,OAAcA,QAAd;AAAA,CAA3B;;;;AAEA,IAAMkC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAClC,QAAD,EAAc;EAC/C,IAAMmC,QAAQ,mCACTnC,QADS;IAEZoC,WAAW,EAAEpC,QAAQ,CAACC;EAFV,EAAd;;EAKA,OAAOkC,QAAP;AACD,CAPM;;;;AASA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,YAAD,EAAe1B,UAAf,EAA8B;EAC9D,IAAM2B,gBAAgB,GAAGD,YAAY,CAACrC,MAAtC;EACA,IAAM2B,QAAQ,GAAGW,gBAAgB,CAACzB,EAAlC;EACA,IAAM0B,SAAS,GAAG5B,UAAU,CAACgB,QAAD,CAA5B;;EAEA,IAAMa,aAAa,mCACdD,SADc;IAEjB1B,EAAE,EAAEwB,YAAY,CAACxB,EAFA;IAGjBb,MAAM,EAAEsC,gBAHS;IAIjBG,UAAU,EAAEH,gBAJK;IAKjBI,MAAM,EAAEL,YAAY,CAACK,MALJ;IAMjBrC,SAAS,EAAEgC,YAAY,CAAChC;EANP,EAAnB;;EASA,OAAOmC,aAAP;AACD,CAfM,C,CAiBP;;;;;AACO,IAAMG,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACN,YAAD,EAAe1B,UAAf,EAA8B;EACnE,IAAM2B,gBAAgB,GAAGD,YAAY,CAACrC,MAAtC;EACA,IAAM2B,QAAQ,GAAGW,gBAAgB,CAACzB,EAAlC;EACA,IAAM+B,cAAc,GAAGjC,UAAU,CAACgB,QAAD,CAAjC;;EAEA,IAAMkB,uBAAuB,mCACxBD,cADwB;IAE3B/B,EAAE,EAAEwB,YAAY,CAACxB,EAFU;IAG3Bb,MAAM,EAAEsC,gBAHmB;IAI3BG,UAAU,EAAEH,gBAJe;IAK3BH,WAAW,EAAES,cAAc,CAAC5C,MALD;IAM3B0C,MAAM,EAAEL,YAAY,CAACK,MANM;IAO3BrC,SAAS,EAAEgC,YAAY,CAAChC;EAPG,EAA7B;;EAUA,OAAOwC,uBAAP;AACD,CAhBM"}
|
|
@@ -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
|
-
|
|
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
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -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']
|
|
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"}
|
package/dist/conversation.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
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
|
|
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: (
|
|
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 = (
|
|
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 = (
|
|
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
|
-
|
|
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: (
|
|
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 = (
|
|
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: (
|
|
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
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
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
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
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 = (
|
|
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
|
-
|
|
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.
|
|
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((
|
|
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 = (
|
|
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 = (
|
|
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((
|
|
3024
|
+
var c = this.prepareConversation(_objectSpread(_objectSpread({}, conversation), {}, {
|
|
3008
3025
|
url: this.getConvoUrl(conversation)
|
|
3009
3026
|
}));
|
|
3010
3027
|
return this.prepare(activity, {
|