@webex/internal-plugin-conversation 2.42.0 → 2.43.1

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.
@@ -1 +1 @@
1
- {"version":3,"names":["ConversationError","Exception","InvalidUserCreation"],"sources":["convo-error.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\n\n/**\n * General conversation error\n */\nexport class ConversationError extends Exception {}\n\n/**\n * InvalidUserCreation thrown when failed to create conversation with invalid user\n */\nexport class InvalidUserCreation extends ConversationError {}\n"],"mappings":";;;;;;;;;;;;;;AAIA;AAAwC;AAAA;AAExC;AACA;AACA;AAFA,IAGaA,iBAAiB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAASC,iBAAS;AAEhD;AACA;AACA;AAFA;AAAA,IAGaC,mBAAmB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAASF,iBAAiB;AAAA"}
1
+ {"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","ConversationError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","Exception","exports","InvalidUserCreation","_ConversationError","_super2"],"sources":["convo-error.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\n\n/**\n * General conversation error\n */\nexport class ConversationError extends Exception {}\n\n/**\n * InvalidUserCreation thrown when failed to create conversation with invalid user\n */\nexport class InvalidUserCreation extends ConversationError {}\n"],"mappings":";;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAAwC,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAExC;AACA;AACA;AAFA,IAGaC,iBAAiB,0BAAAC,UAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,iBAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,iBAAA;EAAA,SAAAA,kBAAA;IAAA,IAAAI,gBAAA,CAAApB,OAAA,QAAAgB,iBAAA;IAAA,OAAAG,MAAA,CAAAb,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAgB,iBAAA;AAAA,EAASM,iBAAS;AAEhD;AACA;AACA;AAFAC,OAAA,CAAAP,iBAAA,GAAAA,iBAAA;AAAA,IAGaQ,mBAAmB,0BAAAC,kBAAA;EAAA,IAAAP,UAAA,CAAAlB,OAAA,EAAAwB,mBAAA,EAAAC,kBAAA;EAAA,IAAAC,OAAA,GAAAjC,YAAA,CAAA+B,mBAAA;EAAA,SAAAA,oBAAA;IAAA,IAAAJ,gBAAA,CAAApB,OAAA,QAAAwB,mBAAA;IAAA,OAAAE,OAAA,CAAApB,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAwB,mBAAA;AAAA,EAASR,iBAAiB;AAAAO,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["decryptTextProp","name","ctx","key","object","transform","transforms","toArray","decryptObject","undefined","resolve","objectType","encryptionKeyUrl","all","files","items","map","item","decryptSubmit","inputs","decryptionFailureMessage","webex","internal","conversation","config","then","JSON","parse","catch","reason","logger","warn","decryptReaction2summary","reactions","reaction","decryptReaction2selfsummary","decryptReaction2","decryptThread","threadObject","promises","childActivities","child","decryptMeetingcontainer","meetingContainerActivity","displayName","usableKey","push","extensions","itemsToDecrypt","filter","data","forEach","itemToDecrypt","decryptConversation","activities","error","url","avatarEncryptionKeyUrl","avatar","previous","previousValue","decryptActivity","activity","keyUrl","children","decryptMicroappinstance","microappInstance","decryptComment","comment","cards","index","decryptContent","content","contentCategory","decryptContentFiles","links","decryptContentLinks","decryptEvent","event","location","split","length","decryptFile","file","transcodedCollection","image","decryptLink","link","decryptTranscodedContent","transcodedContent","decryptImageURI","imageURI","encryption","decryptText","plaintext","keepEncryptedProperties","encryptedPropName","decryptPropCardItem","array","String","decryptPropScr","decryptScr","scr","decryptPropSslr","sslr","decryptPropDisplayName","decryptPropContent","decryptPropModel","decryptPropLocation","decryptPropTopic"],"sources":["decryption-transforms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {camelCase, capitalize, curry} from 'lodash';\n\nimport toArray from './to-array';\n\nconst decryptTextProp = curry((name, ctx, key, object) =>\n ctx.transform('decryptTextProp', name, key, object)\n);\n\n// eslint-disable-next-line import/prefer-default-export\nexport const transforms = toArray('inbound', {\n /**\n * This function is used recursively to decrypt various properties on conversations, activities, etc\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url\n * @param {Object} object Generic object that you want to decrypt some property on based on the type\n * @returns {Promise} Returns a transform promise\n */\n decryptObject(ctx, key, object) {\n if (!object) {\n object = key; // eslint-disable-line no-param-reassign\n key = undefined; // eslint-disable-line no-param-reassign\n }\n\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n if (!key && object.encryptionKeyUrl) {\n key = object.encryptionKeyUrl; // eslint-disable-line no-param-reassign\n }\n\n // Transcoded content was not showing up on the activities since the\n // decryptFile was not being called. Calling decryptFile for\n // transcodedContent fixes the issue.\n if (object.objectType === 'transcodedContent') {\n return Promise.all(object.files.items.map((item) => ctx.transform('decryptFile', key, item)));\n }\n\n return ctx.transform(`decrypt${capitalize(object.objectType)}`, key, object);\n },\n\n /**\n * Decrypt an individual submit object from a cardAction activity\n * (object.objectType === 'submit')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex submit object\n * these objects are returned when a user clicks on a Action.Submit button in a card\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptSubmit(ctx, key, object) {\n if (!object.inputs) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx\n .transform('decryptPropCardItem', 0, key, [object.inputs])\n .then((inputs) => {\n object.inputs = JSON.parse(inputs[0]); // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(\n `plugin-conversation: failed to decrypt attachmentAction.inputs: ${reason}`\n );\n object.inputs = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n\n /**\n * Decrypt an individual reaction2Summary activity (object.objectType === 'reaction2Summary')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2Summary object\n * these objects are returned by various conversation APIs and over mercury\n * represents an aggregated summary of all reactions to a specific activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2summary(ctx, key, object) {\n if (!object.reactions) {\n return Promise.resolve();\n }\n\n return Promise.all(\n object.reactions.map((reaction) => ctx.transform('decryptPropDisplayName', key, reaction))\n );\n },\n\n /**\n * Decrypt an individual reaction2SelfSummary activity (object.objectType === 'reaction2SelfSummary')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2SelfSummary object\n * these objects are returned by various conversation APIs and NOT over mercury\n * they are ONLY received by the self user\n * they represent ONLY the self user's reactions and are used for enforcing\n * limit of times they can react to a specific activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2selfsummary(ctx, key, object) {\n if (!object.reactions) {\n return Promise.resolve();\n }\n\n return Promise.all(\n object.reactions.map((reaction) => ctx.transform('decryptPropDisplayName', key, reaction))\n );\n },\n\n /**\n * Decrypt an individual reaction2 activity (object.objectType === 'reaction2')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2 object\n * these objects are returned by various conversation APIs and over mercury\n * ONLY self users receive these objects\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2(ctx, key, object) {\n return ctx.transform('decryptPropDisplayName', key, object);\n },\n\n /**\n * Decrypt an individual threadObject\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {Object} threadObject An instance of a Webex threadObject (the objects returned by the /conversation/api/v1/threads api)\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptThread(ctx, threadObject) {\n let promises = [];\n\n if (threadObject.childActivities && Array.isArray(threadObject.childActivities)) {\n promises = threadObject.childActivities.map((child) =>\n ctx.transform('decryptObject', null, child)\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypt an individual meeting container activity\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {object} key KMS encryption key url\n * @param {Object} meetingContainerActivity An instance of a Webex meeting container activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptMeetingcontainer(ctx, key, meetingContainerActivity) {\n const promises = [];\n\n if (meetingContainerActivity.displayName) {\n const usableKey = meetingContainerActivity.encryptionKeyUrl || key;\n\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, meetingContainerActivity));\n }\n\n if (meetingContainerActivity.extensions) {\n const itemsToDecrypt = meetingContainerActivity.extensions.items.filter(\n (item) => item.data.objectType === 'recording'\n );\n\n itemsToDecrypt.forEach((itemToDecrypt) => {\n promises.push(\n ctx.transform('decryptPropTopic', itemToDecrypt.encryptionKeyUrl, itemToDecrypt.data)\n );\n });\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a given conversation and it's activities by building an array of promises that call\n * decryptObject, which may then call other decrypt functions\n *\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url (or actual key?)\n * @param {Object} conversation A Webex conversation object\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptConversation(ctx, key, conversation) {\n const promises = [];\n\n if (conversation.activities.items) {\n promises.push(\n Promise.all(\n conversation.activities.items.map((item) => ctx.transform('decryptObject', null, item))\n )\n );\n }\n\n const usableKey = conversation.encryptionKeyUrl || key;\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n if (usableKey) {\n promises.push(\n ctx.transform('decryptPropDisplayName', usableKey, conversation).catch((error) => {\n ctx.webex.logger.warn(\n 'plugin-conversation: failed to decrypt display name of ',\n conversation.url,\n error\n );\n Promise.resolve(decryptionFailureMessage);\n })\n );\n promises.push(ctx.transform('decryptPropContent', usableKey, conversation));\n }\n if (conversation.avatarEncryptionKeyUrl) {\n promises.push(\n ctx.transform('decryptObject', conversation.avatarEncryptionKeyUrl, conversation.avatar)\n );\n }\n // TODO (holsted 04/06/19): This was deprecated in favor of .previousValue below. I wanted to remove this entirely\n // but I wasn't sure if some open source use cases may be reading from cached conversations or not so leaving it for now.\n if (conversation.previous) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, conversation.previous));\n }\n if (conversation.previousValue) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, conversation.previousValue));\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypt an individual activity\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url (or actual key?)\n * @param {Object} activity An instance of a Webex activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptActivity(ctx, key, activity) {\n if (!activity.encryptionKeyUrl && !(activity.object && activity.object.encryptionKeyUrl)) {\n return Promise.resolve(activity);\n }\n\n const keyUrl = activity.encryptionKeyUrl || activity.object.encryptionKeyUrl || key;\n\n let promises = [];\n\n // iterate and recursively decrypt over children objects\n\n if (activity.children && Array.isArray(activity.children)) {\n promises = activity.children.map((child) =>\n ctx.transform('decryptObject', keyUrl, child.activity)\n );\n }\n\n promises.push(ctx.transform('decryptObject', keyUrl, activity.object));\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a microappInstance (recording) model\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} microappInstance A microappInstance which includes several properties of a recording\n * @param {String} microappInstance.model An encrypted string which decrypts to an object\n * @returns {Promise} Returns a context transform\n */\n decryptMicroappinstance(ctx, key, microappInstance) {\n return ctx.transform('decryptPropModel', key, microappInstance);\n },\n\n /**\n * Decrypts a comment...\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} comment A comment object with a displayName and content (encrypted)\n * @returns {Promise} Returns the results of Promise.all on two transforms\n */\n decryptComment(ctx, key, comment) {\n const promises = [\n ctx.transform('decryptPropDisplayName', key, comment),\n ctx.transform('decryptPropContent', key, comment),\n ];\n\n if (comment.cards && Array.isArray(comment.cards)) {\n comment.cards.map((item, index) =>\n promises.push(ctx.transform('decryptPropCardItem', index, key, comment.cards))\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a content field\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContent(ctx, key, content) {\n if (content.contentCategory === 'links') {\n return ctx.transform('decryptContentLinks', key, content);\n }\n\n return ctx.transform('decryptContentFiles', key, content);\n },\n\n /**\n * Decrypts a content field which contains files and possibly links\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @param {Array} content.files An array of files to decrypt by calling decryptObject\n * @param {Array} content.links An array of links to decrypt by calling decryptObject\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContentFiles(ctx, key, content) {\n if (!content.files || !content.files.items || !Array.isArray(content.files.items)) {\n return Promise.resolve();\n }\n\n const promises = content.files.items.map((item) => ctx.transform('decryptObject', key, item));\n\n promises.push(ctx.transform('decryptComment', key, content));\n\n if (content.links && content.links.items && Array.isArray(content.links.items)) {\n content.links.items.forEach((item) =>\n promises.push(ctx.transform('decryptObject', key, item))\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a content field which contains links\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @param {Array} content.links An array of links to decrypt by calling decryptObject\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContentLinks(ctx, key, content) {\n if (!content.links || !content.links.items || !Array.isArray(content.links.items)) {\n return Promise.resolve();\n }\n\n const promises = content.links.items.map((item) => ctx.transform('decryptObject', key, item));\n\n promises.push(ctx.transform('decryptComment', key, content));\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts what may be a meeting event?\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} event An object with a display name and location to be decrypted\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptEvent(ctx, key, event) {\n const promises = [ctx.transform('decryptPropDisplayName', key, event)];\n\n if (event.location && event.location.split('.').length === 5) {\n promises.push(ctx.transform('decryptPropLocation', key, event));\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a file and it's transcodedContents if they exist\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} file A file object with file props an optional transcodedCollection to decrypt\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptFile(ctx, key, file) {\n // using object encryption keyUrl for images instead of activity encryptionKeyUrl\n if (file.encryptionKeyUrl && file.encryptionKeyUrl !== key) {\n key = file.encryptionKeyUrl;\n }\n\n return Promise.all([\n file.transcodedCollection &&\n Promise.all(\n file.transcodedCollection.items.map((item) => ctx.transform('decryptObject', key, item))\n ),\n ctx.transform('decryptPropScr', key, file),\n ctx.transform('decryptPropDisplayName', key, file),\n ctx.transform('decryptPropContent', key, file),\n file.image && ctx.transform('decryptPropScr', key, file.image),\n ]);\n },\n\n /**\n * Decrypts a file and it's transcodedContents if they exist\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} link A link object with a URL to decrypt\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptLink(ctx, key, link) {\n return Promise.all([\n ctx.transform('decryptPropSslr', key, link),\n ctx.transform('decryptPropDisplayName', key, link),\n ]);\n },\n\n /**\n * Decrypts transcoded file content. Calls decryptFile\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} transcodedContent Transcoded content with a files prop\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptTranscodedContent(ctx, key, transcodedContent) {\n return Promise.all(\n transcodedContent.files.items.map((item) => ctx.transform('decryptFile', key, item))\n );\n },\n\n /**\n * Decrypts an image uri\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {String} imageURI URI of the image to decrypt\n * @returns {Promise} Returns a promise.\n */\n decryptImageURI(ctx, key, imageURI) {\n return ctx.transform('decryptPropLocation', key, imageURI);\n },\n\n /**\n * The heart of most decryption logic ends here. Decrypting text.\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} name Property of an object to be decrypted\n * @param {String} key KMS key\n * @param {Object} object A generic object with text props to be decrypted\n * @returns {Promise} Returns a lonely Promise\n */\n decryptTextProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx.webex.internal.encryption\n .decryptText(key, object[name])\n .then((plaintext) => {\n if (ctx.webex.config.conversation.keepEncryptedProperties) {\n const encryptedPropName = camelCase(`encrypted_${name}`);\n\n object[encryptedPropName] = object[name]; // eslint-disable-line no-param-reassign\n }\n\n object[name] = plaintext; // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`plugin-conversation: failed to decrypt ${name} `, reason);\n object[name] = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n\n /**\n * Decrypting an element in an Array.\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {Integer} index Property of an object to be decrypted\n * @param {String} key KMS key\n * @param {Array} array An array of Strings to be decrypted\n * @returns {Promise} Returns a lonely Promise\n */\n decryptPropCardItem(ctx, index, key, array) {\n if (\n !Number.isInteger(index) ||\n !array ||\n !Array.isArray(array) ||\n index < 0 ||\n index >= array.length ||\n !(array[index] instanceof String || typeof array[index] === 'string')\n ) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx.webex.internal.encryption\n .decryptText(key, array[index])\n .then((plaintext) => {\n array[index] = plaintext; // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`plugin-conversation: failed to decrypt card at ${index} `, reason);\n array[index] = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n /**\n * Decrypts the src of an object (for images?)\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} object An object with a scr property to be decrypted\n * @returns {Promise} Returns a promise\n */\n decryptPropScr(ctx, key, object) {\n return ctx.webex.internal.encryption.decryptScr(key, object.scr).then((scr) => {\n object.scr = scr; // eslint-disable-line no-param-reassign\n });\n },\n\n /**\n * Decrypts the sslr object\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} object An object with a sslr property to be decrypted\n * @returns {Promise} Returns a promise\n */\n decryptPropSslr(ctx, key, object) {\n return ctx.webex.internal.encryption.decryptScr(key, object.sslr).then((sslr) => {\n object.sslr = sslr; // eslint-disable-line no-param-reassign\n });\n },\n\n decryptPropDisplayName: decryptTextProp('displayName'),\n\n decryptPropContent: decryptTextProp('content'),\n\n decryptPropModel: decryptTextProp('model'),\n\n decryptPropLocation: decryptTextProp('location'),\n\n decryptPropTopic: decryptTextProp('topic'),\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_toArray","_interopRequireDefault","require","decryptTextProp","_curry2","default","name","ctx","key","object","transform","transforms","toArray","decryptObject","undefined","_promise","resolve","objectType","encryptionKeyUrl","all","files","items","map","item","concat","_capitalize2","decryptSubmit","inputs","decryptionFailureMessage","webex","internal","conversation","config","then","JSON","parse","catch","reason","logger","warn","decryptReaction2summary","reactions","reaction","decryptReaction2selfsummary","decryptReaction2","decryptThread","threadObject","promises","childActivities","_isArray","child","decryptMeetingcontainer","meetingContainerActivity","displayName","usableKey","push","extensions","itemsToDecrypt","filter","data","forEach","itemToDecrypt","decryptConversation","activities","error","url","avatarEncryptionKeyUrl","avatar","previous","previousValue","decryptActivity","activity","keyUrl","children","decryptMicroappinstance","microappInstance","decryptComment","comment","cards","index","decryptContent","content","contentCategory","decryptContentFiles","links","decryptContentLinks","decryptEvent","event","location","split","length","decryptFile","file","transcodedCollection","image","decryptLink","link","decryptTranscodedContent","transcodedContent","decryptImageURI","imageURI","encryption","decryptText","plaintext","keepEncryptedProperties","encryptedPropName","_camelCase2","decryptPropCardItem","array","_isInteger","String","decryptPropScr","decryptScr","scr","decryptPropSslr","sslr","decryptPropDisplayName","decryptPropContent","decryptPropModel","decryptPropLocation","decryptPropTopic","exports"],"sources":["decryption-transforms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {camelCase, capitalize, curry} from 'lodash';\n\nimport toArray from './to-array';\n\nconst decryptTextProp = curry((name, ctx, key, object) =>\n ctx.transform('decryptTextProp', name, key, object)\n);\n\n// eslint-disable-next-line import/prefer-default-export\nexport const transforms = toArray('inbound', {\n /**\n * This function is used recursively to decrypt various properties on conversations, activities, etc\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url\n * @param {Object} object Generic object that you want to decrypt some property on based on the type\n * @returns {Promise} Returns a transform promise\n */\n decryptObject(ctx, key, object) {\n if (!object) {\n object = key; // eslint-disable-line no-param-reassign\n key = undefined; // eslint-disable-line no-param-reassign\n }\n\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n if (!key && object.encryptionKeyUrl) {\n key = object.encryptionKeyUrl; // eslint-disable-line no-param-reassign\n }\n\n // Transcoded content was not showing up on the activities since the\n // decryptFile was not being called. Calling decryptFile for\n // transcodedContent fixes the issue.\n if (object.objectType === 'transcodedContent') {\n return Promise.all(object.files.items.map((item) => ctx.transform('decryptFile', key, item)));\n }\n\n return ctx.transform(`decrypt${capitalize(object.objectType)}`, key, object);\n },\n\n /**\n * Decrypt an individual submit object from a cardAction activity\n * (object.objectType === 'submit')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex submit object\n * these objects are returned when a user clicks on a Action.Submit button in a card\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptSubmit(ctx, key, object) {\n if (!object.inputs) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx\n .transform('decryptPropCardItem', 0, key, [object.inputs])\n .then((inputs) => {\n object.inputs = JSON.parse(inputs[0]); // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(\n `plugin-conversation: failed to decrypt attachmentAction.inputs: ${reason}`\n );\n object.inputs = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n\n /**\n * Decrypt an individual reaction2Summary activity (object.objectType === 'reaction2Summary')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2Summary object\n * these objects are returned by various conversation APIs and over mercury\n * represents an aggregated summary of all reactions to a specific activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2summary(ctx, key, object) {\n if (!object.reactions) {\n return Promise.resolve();\n }\n\n return Promise.all(\n object.reactions.map((reaction) => ctx.transform('decryptPropDisplayName', key, reaction))\n );\n },\n\n /**\n * Decrypt an individual reaction2SelfSummary activity (object.objectType === 'reaction2SelfSummary')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2SelfSummary object\n * these objects are returned by various conversation APIs and NOT over mercury\n * they are ONLY received by the self user\n * they represent ONLY the self user's reactions and are used for enforcing\n * limit of times they can react to a specific activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2selfsummary(ctx, key, object) {\n if (!object.reactions) {\n return Promise.resolve();\n }\n\n return Promise.all(\n object.reactions.map((reaction) => ctx.transform('decryptPropDisplayName', key, reaction))\n );\n },\n\n /**\n * Decrypt an individual reaction2 activity (object.objectType === 'reaction2')\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS key\n * @param {Object} object An instance of a Webex reaction2 object\n * these objects are returned by various conversation APIs and over mercury\n * ONLY self users receive these objects\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptReaction2(ctx, key, object) {\n return ctx.transform('decryptPropDisplayName', key, object);\n },\n\n /**\n * Decrypt an individual threadObject\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {Object} threadObject An instance of a Webex threadObject (the objects returned by the /conversation/api/v1/threads api)\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptThread(ctx, threadObject) {\n let promises = [];\n\n if (threadObject.childActivities && Array.isArray(threadObject.childActivities)) {\n promises = threadObject.childActivities.map((child) =>\n ctx.transform('decryptObject', null, child)\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypt an individual meeting container activity\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {object} key KMS encryption key url\n * @param {Object} meetingContainerActivity An instance of a Webex meeting container activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptMeetingcontainer(ctx, key, meetingContainerActivity) {\n const promises = [];\n\n if (meetingContainerActivity.displayName) {\n const usableKey = meetingContainerActivity.encryptionKeyUrl || key;\n\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, meetingContainerActivity));\n }\n\n if (meetingContainerActivity.extensions) {\n const itemsToDecrypt = meetingContainerActivity.extensions.items.filter(\n (item) => item.data.objectType === 'recording'\n );\n\n itemsToDecrypt.forEach((itemToDecrypt) => {\n promises.push(\n ctx.transform('decryptPropTopic', itemToDecrypt.encryptionKeyUrl, itemToDecrypt.data)\n );\n });\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a given conversation and it's activities by building an array of promises that call\n * decryptObject, which may then call other decrypt functions\n *\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url (or actual key?)\n * @param {Object} conversation A Webex conversation object\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptConversation(ctx, key, conversation) {\n const promises = [];\n\n if (conversation.activities.items) {\n promises.push(\n Promise.all(\n conversation.activities.items.map((item) => ctx.transform('decryptObject', null, item))\n )\n );\n }\n\n const usableKey = conversation.encryptionKeyUrl || key;\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n if (usableKey) {\n promises.push(\n ctx.transform('decryptPropDisplayName', usableKey, conversation).catch((error) => {\n ctx.webex.logger.warn(\n 'plugin-conversation: failed to decrypt display name of ',\n conversation.url,\n error\n );\n Promise.resolve(decryptionFailureMessage);\n })\n );\n promises.push(ctx.transform('decryptPropContent', usableKey, conversation));\n }\n if (conversation.avatarEncryptionKeyUrl) {\n promises.push(\n ctx.transform('decryptObject', conversation.avatarEncryptionKeyUrl, conversation.avatar)\n );\n }\n // TODO (holsted 04/06/19): This was deprecated in favor of .previousValue below. I wanted to remove this entirely\n // but I wasn't sure if some open source use cases may be reading from cached conversations or not so leaving it for now.\n if (conversation.previous) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, conversation.previous));\n }\n if (conversation.previousValue) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, conversation.previousValue));\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypt an individual activity\n * @param {Object} ctx An object containing a webex instance and a transform\n * @param {String} key KMS encryption key url (or actual key?)\n * @param {Object} activity An instance of a Webex activity\n * @returns {Promise} Returns a ctx.transform promise\n */\n decryptActivity(ctx, key, activity) {\n if (!activity.encryptionKeyUrl && !(activity.object && activity.object.encryptionKeyUrl)) {\n return Promise.resolve(activity);\n }\n\n const keyUrl = activity.encryptionKeyUrl || activity.object.encryptionKeyUrl || key;\n\n let promises = [];\n\n // iterate and recursively decrypt over children objects\n\n if (activity.children && Array.isArray(activity.children)) {\n promises = activity.children.map((child) =>\n ctx.transform('decryptObject', keyUrl, child.activity)\n );\n }\n\n promises.push(ctx.transform('decryptObject', keyUrl, activity.object));\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a microappInstance (recording) model\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} microappInstance A microappInstance which includes several properties of a recording\n * @param {String} microappInstance.model An encrypted string which decrypts to an object\n * @returns {Promise} Returns a context transform\n */\n decryptMicroappinstance(ctx, key, microappInstance) {\n return ctx.transform('decryptPropModel', key, microappInstance);\n },\n\n /**\n * Decrypts a comment...\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} comment A comment object with a displayName and content (encrypted)\n * @returns {Promise} Returns the results of Promise.all on two transforms\n */\n decryptComment(ctx, key, comment) {\n const promises = [\n ctx.transform('decryptPropDisplayName', key, comment),\n ctx.transform('decryptPropContent', key, comment),\n ];\n\n if (comment.cards && Array.isArray(comment.cards)) {\n comment.cards.map((item, index) =>\n promises.push(ctx.transform('decryptPropCardItem', index, key, comment.cards))\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a content field\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContent(ctx, key, content) {\n if (content.contentCategory === 'links') {\n return ctx.transform('decryptContentLinks', key, content);\n }\n\n return ctx.transform('decryptContentFiles', key, content);\n },\n\n /**\n * Decrypts a content field which contains files and possibly links\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @param {Array} content.files An array of files to decrypt by calling decryptObject\n * @param {Array} content.links An array of links to decrypt by calling decryptObject\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContentFiles(ctx, key, content) {\n if (!content.files || !content.files.items || !Array.isArray(content.files.items)) {\n return Promise.resolve();\n }\n\n const promises = content.files.items.map((item) => ctx.transform('decryptObject', key, item));\n\n promises.push(ctx.transform('decryptComment', key, content));\n\n if (content.links && content.links.items && Array.isArray(content.links.items)) {\n content.links.items.forEach((item) =>\n promises.push(ctx.transform('decryptObject', key, item))\n );\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a content field which contains links\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} content An object with properties to be decrypted\n * @param {Array} content.links An array of links to decrypt by calling decryptObject\n * @returns {Promise} A promise that will return when the decryption has finished\n */\n decryptContentLinks(ctx, key, content) {\n if (!content.links || !content.links.items || !Array.isArray(content.links.items)) {\n return Promise.resolve();\n }\n\n const promises = content.links.items.map((item) => ctx.transform('decryptObject', key, item));\n\n promises.push(ctx.transform('decryptComment', key, content));\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts what may be a meeting event?\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} event An object with a display name and location to be decrypted\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptEvent(ctx, key, event) {\n const promises = [ctx.transform('decryptPropDisplayName', key, event)];\n\n if (event.location && event.location.split('.').length === 5) {\n promises.push(ctx.transform('decryptPropLocation', key, event));\n }\n\n return Promise.all(promises);\n },\n\n /**\n * Decrypts a file and it's transcodedContents if they exist\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} file A file object with file props an optional transcodedCollection to decrypt\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptFile(ctx, key, file) {\n // using object encryption keyUrl for images instead of activity encryptionKeyUrl\n if (file.encryptionKeyUrl && file.encryptionKeyUrl !== key) {\n key = file.encryptionKeyUrl;\n }\n\n return Promise.all([\n file.transcodedCollection &&\n Promise.all(\n file.transcodedCollection.items.map((item) => ctx.transform('decryptObject', key, item))\n ),\n ctx.transform('decryptPropScr', key, file),\n ctx.transform('decryptPropDisplayName', key, file),\n ctx.transform('decryptPropContent', key, file),\n file.image && ctx.transform('decryptPropScr', key, file.image),\n ]);\n },\n\n /**\n * Decrypts a file and it's transcodedContents if they exist\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} link A link object with a URL to decrypt\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptLink(ctx, key, link) {\n return Promise.all([\n ctx.transform('decryptPropSslr', key, link),\n ctx.transform('decryptPropDisplayName', key, link),\n ]);\n },\n\n /**\n * Decrypts transcoded file content. Calls decryptFile\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} transcodedContent Transcoded content with a files prop\n * @returns {Promise} Returns the result of Promise.all\n */\n decryptTranscodedContent(ctx, key, transcodedContent) {\n return Promise.all(\n transcodedContent.files.items.map((item) => ctx.transform('decryptFile', key, item))\n );\n },\n\n /**\n * Decrypts an image uri\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {String} imageURI URI of the image to decrypt\n * @returns {Promise} Returns a promise.\n */\n decryptImageURI(ctx, key, imageURI) {\n return ctx.transform('decryptPropLocation', key, imageURI);\n },\n\n /**\n * The heart of most decryption logic ends here. Decrypting text.\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} name Property of an object to be decrypted\n * @param {String} key KMS key\n * @param {Object} object A generic object with text props to be decrypted\n * @returns {Promise} Returns a lonely Promise\n */\n decryptTextProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx.webex.internal.encryption\n .decryptText(key, object[name])\n .then((plaintext) => {\n if (ctx.webex.config.conversation.keepEncryptedProperties) {\n const encryptedPropName = camelCase(`encrypted_${name}`);\n\n object[encryptedPropName] = object[name]; // eslint-disable-line no-param-reassign\n }\n\n object[name] = plaintext; // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`plugin-conversation: failed to decrypt ${name} `, reason);\n object[name] = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n\n /**\n * Decrypting an element in an Array.\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {Integer} index Property of an object to be decrypted\n * @param {String} key KMS key\n * @param {Array} array An array of Strings to be decrypted\n * @returns {Promise} Returns a lonely Promise\n */\n decryptPropCardItem(ctx, index, key, array) {\n if (\n !Number.isInteger(index) ||\n !array ||\n !Array.isArray(array) ||\n index < 0 ||\n index >= array.length ||\n !(array[index] instanceof String || typeof array[index] === 'string')\n ) {\n return Promise.resolve();\n }\n const {decryptionFailureMessage} = ctx.webex.internal.conversation.config;\n\n return ctx.webex.internal.encryption\n .decryptText(key, array[index])\n .then((plaintext) => {\n array[index] = plaintext; // eslint-disable-line no-param-reassign\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`plugin-conversation: failed to decrypt card at ${index} `, reason);\n array[index] = decryptionFailureMessage; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(decryptionFailureMessage);\n });\n },\n /**\n * Decrypts the src of an object (for images?)\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} object An object with a scr property to be decrypted\n * @returns {Promise} Returns a promise\n */\n decryptPropScr(ctx, key, object) {\n return ctx.webex.internal.encryption.decryptScr(key, object.scr).then((scr) => {\n object.scr = scr; // eslint-disable-line no-param-reassign\n });\n },\n\n /**\n * Decrypts the sslr object\n * @param {Object} ctx An object containing a webex instance and transform prop\n * @param {String} key KMS key\n * @param {Object} object An object with a sslr property to be decrypted\n * @returns {Promise} Returns a promise\n */\n decryptPropSslr(ctx, key, object) {\n return ctx.webex.internal.encryption.decryptScr(key, object.sslr).then((sslr) => {\n object.sslr = sslr; // eslint-disable-line no-param-reassign\n });\n },\n\n decryptPropDisplayName: decryptTextProp('displayName'),\n\n decryptPropContent: decryptTextProp('content'),\n\n decryptPropModel: decryptTextProp('model'),\n\n decryptPropLocation: decryptTextProp('location'),\n\n decryptPropTopic: decryptTextProp('topic'),\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["KEY","encryptTextProp","name","ctx","key","object","transform","encryptJsonProp","transforms","toArray","encryptObject","undefined","resolve","objectType","encryptReaction2","reaction2","encryptConversation","conversation","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","kmsMessage","keyUris","includes","uri","push","all","activities","items","reduce","p","activity","encryptionKeyUrl","defaultActivityEncryptionKeyUrl","encryptActivity","created","verb","encryptVerbActivity","maybeEncryptTarget","target","conversationUrl","url","reject","Error","get","updateKey","updateKeyActivity","resource","kmsResourceObjectUrl","logger","warn","prepareActivityKmsMessage","kro","forEach","replace","keyUrl","encryptVerbActivityWithKey","direction","fn","encryptAddActivity","encryptAssignActivity","alias","encryptCreateActivity","encryptPostActivity","encryptShareActivity","encryptCardactionActivity","encryptUpdateActivity","encryptUpdateKeyActivity","encryptComment","comment","encryptContent","content","promises","files","map","item","encryptFile","file","image","scr","encryptSubmit","submit","encryptImageURI","imageURI","encryptPropContent","encryptPropDisplayName","encryptPropInputs","encryptPropLocation","encryptPropScr","encryptScr","encryptText","ciphertext"],"sources":["encryption-transforms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {capitalize, curry, get, has, isArray} from 'lodash';\n\nimport toArray from './to-array';\n\nconst KEY = Symbol('KEY');\n\nconst encryptTextProp = curry((name, ctx, key, object) =>\n ctx.transform('encryptTextProp', name, key, object)\n);\n\nconst encryptJsonProp = curry((name, ctx, key, object) =>\n ctx.transform('encryptJsonProp', name, key, object)\n);\n\n// eslint-disable-next-line import/prefer-default-export\nexport const transforms = toArray('outbound', {\n encryptObject(ctx, key, object) {\n if (!object) {\n object = key;\n key = undefined;\n }\n\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n if (key === false) {\n return Promise.resolve();\n }\n\n return ctx.transform(`encrypt${capitalize(object.objectType)}`, key, object);\n },\n\n encryptReaction2(ctx, key, reaction2) {\n return ctx.transform('encryptPropDisplayName', key, reaction2);\n },\n\n encryptConversation(ctx, key, conversation) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(\n key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n ).then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (\n has(conversation, 'kmsMessage.keyUris') &&\n !conversation.kmsMessage.keyUris.includes(k.uri)\n ) {\n conversation.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n // too many implicit returns on the same line is difficult to interpret\n // eslint-disable-next-line arrow-body-style\n has(conversation, 'activities.items') &&\n conversation.activities.items.reduce((p, activity) => {\n // eslint-disable-next-line max-nested-callbacks\n return p.then(() => ctx.transform('encryptObject', k, activity));\n }, Promise.resolve()),\n ctx.transform('encryptPropDisplayName', k, conversation),\n ]).then(() => {\n conversation.encryptionKeyUrl = k.uri || k;\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n conversation.defaultActivityEncryptionKeyUrl =\n conversation.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n },\n\n encryptActivity(ctx, key, activity) {\n // Activity is already encrypted\n if (activity.encryptionKeyUrl || activity.object?.created === 'True') {\n return Promise.resolve();\n }\n\n return ctx.transform(`encrypt${capitalize(activity.verb)}Activity`, key, activity).then(() => {\n key = key || activity[KEY];\n\n return ctx.transform('prepareActivityKmsMessage', key, activity);\n });\n },\n\n encryptVerbActivity(ctx, key, activity) {\n return ctx\n .transform('maybeEncryptTarget', key, activity)\n .then(() => {\n key = key || activity[KEY];\n })\n .then(() => ctx.transform('encryptObject', key, activity.object));\n },\n\n maybeEncryptTarget(ctx, key, activity) {\n // This isn't quite right; if we just go by key, we have no guarantee that\n // we have a proper KRO available for add activities\n if (key) {\n return Promise.resolve();\n }\n\n if (\n has(activity, 'target.defaultActivityEncryptionKeyUrl') &&\n activity.target.defaultActivityEncryptionKeyUrl &&\n has(activity, 'target.kmsResourceObjectUrl')\n ) {\n activity[KEY] = key || activity.target.defaultActivityEncryptionKeyUrl;\n\n return Promise.resolve();\n }\n\n const conversationUrl = activity.target && activity.target.url;\n\n if (!conversationUrl) {\n return Promise.reject(\n new Error(\n \"Cannot determine encryption key for activity's conversation; no key url or conversation url provided\"\n )\n );\n }\n\n return ctx.webex.internal.conversation.get({url: conversationUrl}).then((conversation) => {\n if (!conversation.defaultActivityEncryptionKeyUrl) {\n return ctx.webex.internal.conversation.updateKey(conversation).then((updateKeyActivity) => {\n if (updateKeyActivity.kmsMessage.resource) {\n activity.target.kmsResourceObjectUrl = updateKeyActivity.kmsMessage.resource.uri;\n }\n activity[KEY] = activity.target.defaultActivityEncryptionKeyUrl =\n updateKeyActivity.object.defaultActivityEncryptionKeyUrl;\n });\n }\n\n if (!activity.target.defaultActivityEncryptionKeyUrl) {\n ctx.webex.logger.warn(\n 'plugin-conversation: downloaded conversation to determine its defaultActivityEncryptionKeyUrl; make sure to pass all encryption related properties when calling Webex.conversation methods.'\n );\n }\n\n if (!activity.target.kmsResourceObjectUrl) {\n ctx.webex.logger.warn(\n 'plugin-conversation: downloaded conversation to determine its kmsResourceObjectUrl; make sure to pass all encryption related properties when calling Webex.conversation methods.'\n );\n }\n\n activity[KEY] = activity.target.defaultActivityEncryptionKeyUrl =\n conversation.defaultActivityEncryptionKeyUrl;\n activity.target.kmsResourceObjectUrl = conversation.kmsResourceObjectUrl;\n\n return Promise.resolve();\n });\n },\n\n prepareActivityKmsMessage(ctx, key, activity) {\n if (activity.kmsMessage) {\n if (!key && activity.verb === 'delete') {\n key = get(activity, 'target.defaultActivityEncryptionKeyUrl');\n }\n\n if (\n !key &&\n activity.verb === 'updateKey' &&\n has(activity, 'object.defaultActivityEncryptionKeyUrl')\n ) {\n key = get(activity, 'object.defaultActivityEncryptionKeyUrl');\n }\n\n if (\n !key &&\n activity.verb === 'leave' &&\n has(activity, 'target.defaultActivityEncryptionKeyUrl')\n ) {\n key = get(activity, 'target.defaultActivityEncryptionKeyUrl');\n }\n\n if (key) {\n const kro = activity.target.kmsResourceObjectUrl;\n\n ['uri', 'resourceUri'].forEach((k) => {\n if (activity.kmsMessage[k] && !kro && activity.kmsMessage[k].includes('<KRO>')) {\n throw new Error('encrypter: cannot determine kro');\n }\n\n if (activity.kmsMessage[k]) {\n activity.kmsMessage[k] = activity.kmsMessage[k].replace('<KRO>', kro);\n // key may be a key or a key url\n activity.kmsMessage[k] = activity.kmsMessage[k].replace('<KEYURL>', key.keyUrl || key);\n }\n });\n }\n // If we made it this far and still don't have an encryption key, assume\n // this is a conversation that is not encrypted and we're performing an\n // action that should not encrypt it (e.g. `leave`)\n else {\n Reflect.deleteProperty(activity, 'kmsMessage');\n }\n }\n },\n\n encryptVerbActivityWithKey: {\n direction: 'outbound',\n fn(ctx, key, activity) {\n return ctx.transform('encryptVerbActivity', key, activity).then(() => {\n key = key || activity[KEY];\n activity.encryptionKeyUrl = key.uri || key;\n });\n },\n },\n\n encryptAddActivity: {\n direction: 'outbound',\n fn(ctx, key, activity) {\n if (has(activity, 'object.objectType') && activity.object.objectType === 'reaction2') {\n return ctx.transform('encryptVerbActivityWithKey', key, activity);\n }\n\n return ctx.transform('encryptVerbActivity', key, activity);\n },\n },\n\n encryptAssignActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptCreateActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivity',\n },\n\n encryptPostActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptShareActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptCardactionActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptUpdateActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptUpdateKeyActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivity',\n },\n\n encryptComment(ctx, key, comment) {\n return Promise.all([\n ctx.transform('encryptPropDisplayName', key, comment),\n ctx.transform('encryptPropContent', key, comment),\n ]);\n },\n\n encryptContent(ctx, key, content) {\n const promises = content.files.items.map((item) => ctx.transform('encryptObject', key, item));\n\n promises.push(ctx.transform('encryptPropContent', key, content));\n promises.push(ctx.transform('encryptPropDisplayName', key, content));\n\n return Promise.all(promises);\n },\n\n encryptFile(ctx, key, file) {\n if (file.image && !file.image.scr) {\n return Promise.reject(new Error('`file.image` must have an `scr`'));\n }\n\n return Promise.all([\n ctx.transform('encryptPropScr', key, file),\n ctx.transform('encryptPropDisplayName', key, file),\n ctx.transform('encryptPropContent', key, file),\n file.image && ctx.transform('encryptPropScr', key, file.image),\n ]);\n },\n\n encryptSubmit(ctx, key, submit) {\n return ctx.transform('encryptPropInputs', key, submit);\n },\n\n // TODO is this used for anything other than the now-removed stickies service?\n encryptImageURI(ctx, key, imageURI) {\n return ctx.transform('encryptPropLocation', key, imageURI);\n },\n\n encryptPropContent: encryptTextProp('content'),\n\n encryptPropDisplayName: encryptTextProp('displayName'),\n\n encryptPropInputs: encryptJsonProp('inputs'),\n\n encryptPropLocation: encryptTextProp('location'),\n\n encryptPropScr(ctx, key, object) {\n if (!object.scr) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption.encryptScr(key, object.scr).then((scr) => {\n object.scr = scr;\n });\n },\n\n encryptJsonProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, JSON.stringify(object[name]))\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n },\n\n encryptTextProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, object[name])\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_toArray","_interopRequireDefault","require","KEY","_symbol","default","encryptTextProp","_curry2","name","ctx","key","object","transform","encryptJsonProp","transforms","toArray","encryptObject","undefined","_promise","resolve","objectType","concat","_capitalize2","encryptReaction2","reaction2","encryptConversation","conversation","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","_isArray2","_has2","kmsMessage","keyUris","includes","uri","push","all","activities","items","reduce","p","activity","encryptionKeyUrl","defaultActivityEncryptionKeyUrl","encryptActivity","_activity$object","created","verb","encryptVerbActivity","maybeEncryptTarget","target","conversationUrl","url","reject","Error","get","updateKey","updateKeyActivity","resource","kmsResourceObjectUrl","logger","warn","prepareActivityKmsMessage","_get2","kro","forEach","replace","keyUrl","_deleteProperty","encryptVerbActivityWithKey","direction","fn","encryptAddActivity","encryptAssignActivity","alias","encryptCreateActivity","encryptPostActivity","encryptShareActivity","encryptCardactionActivity","encryptUpdateActivity","encryptUpdateKeyActivity","encryptComment","comment","encryptContent","content","promises","files","map","item","encryptFile","file","image","scr","encryptSubmit","submit","encryptImageURI","imageURI","encryptPropContent","encryptPropDisplayName","encryptPropInputs","encryptPropLocation","encryptPropScr","encryptScr","encryptText","_stringify","ciphertext","exports"],"sources":["encryption-transforms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {capitalize, curry, get, has, isArray} from 'lodash';\n\nimport toArray from './to-array';\n\nconst KEY = Symbol('KEY');\n\nconst encryptTextProp = curry((name, ctx, key, object) =>\n ctx.transform('encryptTextProp', name, key, object)\n);\n\nconst encryptJsonProp = curry((name, ctx, key, object) =>\n ctx.transform('encryptJsonProp', name, key, object)\n);\n\n// eslint-disable-next-line import/prefer-default-export\nexport const transforms = toArray('outbound', {\n encryptObject(ctx, key, object) {\n if (!object) {\n object = key;\n key = undefined;\n }\n\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n if (key === false) {\n return Promise.resolve();\n }\n\n return ctx.transform(`encrypt${capitalize(object.objectType)}`, key, object);\n },\n\n encryptReaction2(ctx, key, reaction2) {\n return ctx.transform('encryptPropDisplayName', key, reaction2);\n },\n\n encryptConversation(ctx, key, conversation) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(\n key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n ).then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (\n has(conversation, 'kmsMessage.keyUris') &&\n !conversation.kmsMessage.keyUris.includes(k.uri)\n ) {\n conversation.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n // too many implicit returns on the same line is difficult to interpret\n // eslint-disable-next-line arrow-body-style\n has(conversation, 'activities.items') &&\n conversation.activities.items.reduce((p, activity) => {\n // eslint-disable-next-line max-nested-callbacks\n return p.then(() => ctx.transform('encryptObject', k, activity));\n }, Promise.resolve()),\n ctx.transform('encryptPropDisplayName', k, conversation),\n ]).then(() => {\n conversation.encryptionKeyUrl = k.uri || k;\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n conversation.defaultActivityEncryptionKeyUrl =\n conversation.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n },\n\n encryptActivity(ctx, key, activity) {\n // Activity is already encrypted\n if (activity.encryptionKeyUrl || activity.object?.created === 'True') {\n return Promise.resolve();\n }\n\n return ctx.transform(`encrypt${capitalize(activity.verb)}Activity`, key, activity).then(() => {\n key = key || activity[KEY];\n\n return ctx.transform('prepareActivityKmsMessage', key, activity);\n });\n },\n\n encryptVerbActivity(ctx, key, activity) {\n return ctx\n .transform('maybeEncryptTarget', key, activity)\n .then(() => {\n key = key || activity[KEY];\n })\n .then(() => ctx.transform('encryptObject', key, activity.object));\n },\n\n maybeEncryptTarget(ctx, key, activity) {\n // This isn't quite right; if we just go by key, we have no guarantee that\n // we have a proper KRO available for add activities\n if (key) {\n return Promise.resolve();\n }\n\n if (\n has(activity, 'target.defaultActivityEncryptionKeyUrl') &&\n activity.target.defaultActivityEncryptionKeyUrl &&\n has(activity, 'target.kmsResourceObjectUrl')\n ) {\n activity[KEY] = key || activity.target.defaultActivityEncryptionKeyUrl;\n\n return Promise.resolve();\n }\n\n const conversationUrl = activity.target && activity.target.url;\n\n if (!conversationUrl) {\n return Promise.reject(\n new Error(\n \"Cannot determine encryption key for activity's conversation; no key url or conversation url provided\"\n )\n );\n }\n\n return ctx.webex.internal.conversation.get({url: conversationUrl}).then((conversation) => {\n if (!conversation.defaultActivityEncryptionKeyUrl) {\n return ctx.webex.internal.conversation.updateKey(conversation).then((updateKeyActivity) => {\n if (updateKeyActivity.kmsMessage.resource) {\n activity.target.kmsResourceObjectUrl = updateKeyActivity.kmsMessage.resource.uri;\n }\n activity[KEY] = activity.target.defaultActivityEncryptionKeyUrl =\n updateKeyActivity.object.defaultActivityEncryptionKeyUrl;\n });\n }\n\n if (!activity.target.defaultActivityEncryptionKeyUrl) {\n ctx.webex.logger.warn(\n 'plugin-conversation: downloaded conversation to determine its defaultActivityEncryptionKeyUrl; make sure to pass all encryption related properties when calling Webex.conversation methods.'\n );\n }\n\n if (!activity.target.kmsResourceObjectUrl) {\n ctx.webex.logger.warn(\n 'plugin-conversation: downloaded conversation to determine its kmsResourceObjectUrl; make sure to pass all encryption related properties when calling Webex.conversation methods.'\n );\n }\n\n activity[KEY] = activity.target.defaultActivityEncryptionKeyUrl =\n conversation.defaultActivityEncryptionKeyUrl;\n activity.target.kmsResourceObjectUrl = conversation.kmsResourceObjectUrl;\n\n return Promise.resolve();\n });\n },\n\n prepareActivityKmsMessage(ctx, key, activity) {\n if (activity.kmsMessage) {\n if (!key && activity.verb === 'delete') {\n key = get(activity, 'target.defaultActivityEncryptionKeyUrl');\n }\n\n if (\n !key &&\n activity.verb === 'updateKey' &&\n has(activity, 'object.defaultActivityEncryptionKeyUrl')\n ) {\n key = get(activity, 'object.defaultActivityEncryptionKeyUrl');\n }\n\n if (\n !key &&\n activity.verb === 'leave' &&\n has(activity, 'target.defaultActivityEncryptionKeyUrl')\n ) {\n key = get(activity, 'target.defaultActivityEncryptionKeyUrl');\n }\n\n if (key) {\n const kro = activity.target.kmsResourceObjectUrl;\n\n ['uri', 'resourceUri'].forEach((k) => {\n if (activity.kmsMessage[k] && !kro && activity.kmsMessage[k].includes('<KRO>')) {\n throw new Error('encrypter: cannot determine kro');\n }\n\n if (activity.kmsMessage[k]) {\n activity.kmsMessage[k] = activity.kmsMessage[k].replace('<KRO>', kro);\n // key may be a key or a key url\n activity.kmsMessage[k] = activity.kmsMessage[k].replace('<KEYURL>', key.keyUrl || key);\n }\n });\n }\n // If we made it this far and still don't have an encryption key, assume\n // this is a conversation that is not encrypted and we're performing an\n // action that should not encrypt it (e.g. `leave`)\n else {\n Reflect.deleteProperty(activity, 'kmsMessage');\n }\n }\n },\n\n encryptVerbActivityWithKey: {\n direction: 'outbound',\n fn(ctx, key, activity) {\n return ctx.transform('encryptVerbActivity', key, activity).then(() => {\n key = key || activity[KEY];\n activity.encryptionKeyUrl = key.uri || key;\n });\n },\n },\n\n encryptAddActivity: {\n direction: 'outbound',\n fn(ctx, key, activity) {\n if (has(activity, 'object.objectType') && activity.object.objectType === 'reaction2') {\n return ctx.transform('encryptVerbActivityWithKey', key, activity);\n }\n\n return ctx.transform('encryptVerbActivity', key, activity);\n },\n },\n\n encryptAssignActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptCreateActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivity',\n },\n\n encryptPostActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptShareActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptCardactionActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptUpdateActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivityWithKey',\n },\n\n encryptUpdateKeyActivity: {\n direction: 'outbound',\n alias: 'encryptVerbActivity',\n },\n\n encryptComment(ctx, key, comment) {\n return Promise.all([\n ctx.transform('encryptPropDisplayName', key, comment),\n ctx.transform('encryptPropContent', key, comment),\n ]);\n },\n\n encryptContent(ctx, key, content) {\n const promises = content.files.items.map((item) => ctx.transform('encryptObject', key, item));\n\n promises.push(ctx.transform('encryptPropContent', key, content));\n promises.push(ctx.transform('encryptPropDisplayName', key, content));\n\n return Promise.all(promises);\n },\n\n encryptFile(ctx, key, file) {\n if (file.image && !file.image.scr) {\n return Promise.reject(new Error('`file.image` must have an `scr`'));\n }\n\n return Promise.all([\n ctx.transform('encryptPropScr', key, file),\n ctx.transform('encryptPropDisplayName', key, file),\n ctx.transform('encryptPropContent', key, file),\n file.image && ctx.transform('encryptPropScr', key, file.image),\n ]);\n },\n\n encryptSubmit(ctx, key, submit) {\n return ctx.transform('encryptPropInputs', key, submit);\n },\n\n // TODO is this used for anything other than the now-removed stickies service?\n encryptImageURI(ctx, key, imageURI) {\n return ctx.transform('encryptPropLocation', key, imageURI);\n },\n\n encryptPropContent: encryptTextProp('content'),\n\n encryptPropDisplayName: encryptTextProp('displayName'),\n\n encryptPropInputs: encryptJsonProp('inputs'),\n\n encryptPropLocation: encryptTextProp('location'),\n\n encryptPropScr(ctx, key, object) {\n if (!object.scr) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption.encryptScr(key, object.scr).then((scr) => {\n object.scr = scr;\n });\n },\n\n encryptJsonProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, JSON.stringify(object[name]))\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n },\n\n encryptTextProp(ctx, name, key, object) {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, object[name])\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n },\n});\n"],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","Conversation","payloadTransformer","predicates","name","test","ctx","optionsOrResponse","resolve","extract","body","direction","event","activity","response","multistatus","map","item","data","options","items","transforms","fn","array","all","transform","then","decrypt","object","objectType","content","webex","config","conversation","inboundProcessFunc","allowedInboundTags","allowedInboundStyles","htmlFilter","c","outboundProcessFunc","allowedOutboundTags","allowedOutboundStyles","htmlFilterEscape","activities","participants","actor","target","threadActivity","childActivities","person","email","entryEmail","emailAddress","id","entryUUID","patterns","toLowerCase","roomProperties","isModerator","Boolean","uuid","reject","Error","internal","user","asUUID","concat","decryptionTransforms","encryptionTransforms"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-user';\n\nimport {patterns} from '@webex/common';\nimport {filter as htmlFilter, filterEscape as htmlFilterEscape} from '@webex/helper-html';\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {capitalize, get, has} from 'lodash';\n\nimport Conversation from './conversation';\nimport config from './config';\nimport {transforms as encryptionTransforms} from './encryption-transforms';\nimport {transforms as decryptionTransforms} from './decryption-transforms';\n\nregisterInternalPlugin('conversation', Conversation, {\n payloadTransformer: {\n predicates: [\n {\n name: 'transformObject',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'body.objectType'));\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.body);\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n test(ctx, event) {\n return Promise.resolve(has(event, 'activity'));\n },\n extract(event) {\n return Promise.resolve(event.activity);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.multistatus'));\n },\n extract(response) {\n return Promise.resolve(\n response.body.multistatus.map((item) => item && item.data && item.data.activity)\n );\n },\n },\n {\n name: 'normalizeConversationListAndBindDecrypters',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformThreadArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].childType') || !has(options, 'body.items[0].actorId')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n ],\n transforms: [\n {\n name: 'normalizeConversationListAndBindDecrypters',\n fn(ctx, array) {\n return Promise.all(\n array.map((item) =>\n ctx.transform('normalizeObject', item).then(() => {\n item.decrypt = function decrypt() {\n Reflect.deleteProperty(item, 'decrypt');\n\n return ctx.transform('decryptObject', item);\n };\n\n return item;\n })\n )\n );\n },\n },\n {\n name: 'transformObjectArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformObject', item)));\n },\n },\n {\n name: 'transformThreadArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformThread', item)));\n },\n },\n {\n name: 'transformObject',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('normalizeObject', object)\n .then(() => ctx.transform('encryptObject', object))\n .then(() => ctx.transform('encryptKmsMessage', object));\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptObject', object)\n .then(() => ctx.transform('normalizeObject', object));\n },\n },\n {\n name: 'normalizeObject',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform(`normalize${capitalize(object.objectType)}`, object),\n ctx.transform('normalizePropContent', object),\n ]);\n },\n },\n {\n name: 'transformThread',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptThread', object)\n .then(() => ctx.transform('normalizeThread', object));\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n const {inboundProcessFunc, allowedInboundTags, allowedInboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilter(\n inboundProcessFunc,\n allowedInboundTags || {},\n allowedInboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n\n const {outboundProcessFunc, allowedOutboundTags, allowedOutboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilterEscape(\n outboundProcessFunc,\n allowedOutboundTags || {},\n allowedOutboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizeConversation',\n fn(ctx, conversation) {\n conversation.activities = conversation.activities || {};\n conversation.activities.items = conversation.activities.items || [];\n conversation.participants = conversation.participants || {};\n conversation.participants.items = conversation.participants.items || [];\n\n return Promise.all([\n Promise.all(\n conversation.activities.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n Promise.all(\n conversation.participants.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n ]);\n },\n },\n {\n name: 'normalizeActivity',\n fn(ctx, activity) {\n return Promise.all([\n ctx.transform('normalizeObject', activity.actor),\n ctx.transform('normalizeObject', activity.object),\n ctx.transform('normalizeObject', activity.target),\n ]);\n },\n },\n {\n name: 'normalizeThread',\n fn(ctx, threadActivity) {\n // childActivities are of type Activity\n return Promise.all(\n threadActivity.childActivities.map((item) => ctx.transform('normalizeObject', item))\n );\n },\n },\n {\n name: 'normalizePerson',\n // eslint-disable-next-line complexity\n fn(ctx, person) {\n const email = person.entryEmail || person.emailAddress || person.id;\n const id = person.entryUUID || person.id;\n\n if (patterns.email.test(email)) {\n person.entryEmail = person.emailAddress = email.toLowerCase();\n } else {\n Reflect.deleteProperty(person, 'entryEmail');\n Reflect.deleteProperty(person, 'emailAddress');\n }\n\n if (person.roomProperties) {\n person.roomProperties.isModerator = Boolean(person.roomProperties.isModerator);\n }\n\n if (patterns.uuid.test(id)) {\n person.entryUUID = person.id = id.toLowerCase();\n\n return Promise.resolve(person);\n }\n\n if (!email) {\n return Promise.reject(\n new Error('cannot determine id without an `emailAddress` or `entryUUID` property')\n );\n }\n\n return ctx.webex.internal.user.asUUID(email).then((uuid) => {\n person.entryUUID = person.id = uuid;\n\n return person;\n });\n },\n },\n ]\n .concat(decryptionTransforms)\n .concat(encryptionTransforms),\n },\n config,\n});\n\nexport {default} from './conversation';\nexport {default as ShareActivity} from './share-activity';\nexport {ConversationError, InvalidUserCreation} from './convo-error';\n"],"mappings":"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"}
1
+ {"version":3,"names":["require","_common","_helperHtml","_webexCore","_conversation","_interopRequireDefault","_config","_encryptionTransforms","_decryptionTransforms","_shareActivity","_convoError","registerInternalPlugin","Conversation","payloadTransformer","predicates","name","test","ctx","optionsOrResponse","_promise","default","resolve","_has2","extract","body","direction","event","activity","response","multistatus","map","item","data","options","_get2","items","transforms","fn","array","all","transform","then","decrypt","_deleteProperty","object","objectType","concat","_capitalize2","content","_ctx$webex$config$con","webex","config","conversation","inboundProcessFunc","allowedInboundTags","allowedInboundStyles","htmlFilter","c","_ctx$webex$config$con2","outboundProcessFunc","allowedOutboundTags","allowedOutboundStyles","htmlFilterEscape","activities","participants","actor","target","threadActivity","childActivities","person","email","entryEmail","emailAddress","id","entryUUID","patterns","toLowerCase","roomProperties","isModerator","Boolean","uuid","reject","Error","internal","user","asUUID","decryptionTransforms","encryptionTransforms"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-user';\n\nimport {patterns} from '@webex/common';\nimport {filter as htmlFilter, filterEscape as htmlFilterEscape} from '@webex/helper-html';\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {capitalize, get, has} from 'lodash';\n\nimport Conversation from './conversation';\nimport config from './config';\nimport {transforms as encryptionTransforms} from './encryption-transforms';\nimport {transforms as decryptionTransforms} from './decryption-transforms';\n\nregisterInternalPlugin('conversation', Conversation, {\n payloadTransformer: {\n predicates: [\n {\n name: 'transformObject',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'body.objectType'));\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.body);\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n test(ctx, event) {\n return Promise.resolve(has(event, 'activity'));\n },\n extract(event) {\n return Promise.resolve(event.activity);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.multistatus'));\n },\n extract(response) {\n return Promise.resolve(\n response.body.multistatus.map((item) => item && item.data && item.data.activity)\n );\n },\n },\n {\n name: 'normalizeConversationListAndBindDecrypters',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformThreadArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].childType') || !has(options, 'body.items[0].actorId')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n ],\n transforms: [\n {\n name: 'normalizeConversationListAndBindDecrypters',\n fn(ctx, array) {\n return Promise.all(\n array.map((item) =>\n ctx.transform('normalizeObject', item).then(() => {\n item.decrypt = function decrypt() {\n Reflect.deleteProperty(item, 'decrypt');\n\n return ctx.transform('decryptObject', item);\n };\n\n return item;\n })\n )\n );\n },\n },\n {\n name: 'transformObjectArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformObject', item)));\n },\n },\n {\n name: 'transformThreadArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformThread', item)));\n },\n },\n {\n name: 'transformObject',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('normalizeObject', object)\n .then(() => ctx.transform('encryptObject', object))\n .then(() => ctx.transform('encryptKmsMessage', object));\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptObject', object)\n .then(() => ctx.transform('normalizeObject', object));\n },\n },\n {\n name: 'normalizeObject',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform(`normalize${capitalize(object.objectType)}`, object),\n ctx.transform('normalizePropContent', object),\n ]);\n },\n },\n {\n name: 'transformThread',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptThread', object)\n .then(() => ctx.transform('normalizeThread', object));\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n const {inboundProcessFunc, allowedInboundTags, allowedInboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilter(\n inboundProcessFunc,\n allowedInboundTags || {},\n allowedInboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n\n const {outboundProcessFunc, allowedOutboundTags, allowedOutboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilterEscape(\n outboundProcessFunc,\n allowedOutboundTags || {},\n allowedOutboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizeConversation',\n fn(ctx, conversation) {\n conversation.activities = conversation.activities || {};\n conversation.activities.items = conversation.activities.items || [];\n conversation.participants = conversation.participants || {};\n conversation.participants.items = conversation.participants.items || [];\n\n return Promise.all([\n Promise.all(\n conversation.activities.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n Promise.all(\n conversation.participants.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n ]);\n },\n },\n {\n name: 'normalizeActivity',\n fn(ctx, activity) {\n return Promise.all([\n ctx.transform('normalizeObject', activity.actor),\n ctx.transform('normalizeObject', activity.object),\n ctx.transform('normalizeObject', activity.target),\n ]);\n },\n },\n {\n name: 'normalizeThread',\n fn(ctx, threadActivity) {\n // childActivities are of type Activity\n return Promise.all(\n threadActivity.childActivities.map((item) => ctx.transform('normalizeObject', item))\n );\n },\n },\n {\n name: 'normalizePerson',\n // eslint-disable-next-line complexity\n fn(ctx, person) {\n const email = person.entryEmail || person.emailAddress || person.id;\n const id = person.entryUUID || person.id;\n\n if (patterns.email.test(email)) {\n person.entryEmail = person.emailAddress = email.toLowerCase();\n } else {\n Reflect.deleteProperty(person, 'entryEmail');\n Reflect.deleteProperty(person, 'emailAddress');\n }\n\n if (person.roomProperties) {\n person.roomProperties.isModerator = Boolean(person.roomProperties.isModerator);\n }\n\n if (patterns.uuid.test(id)) {\n person.entryUUID = person.id = id.toLowerCase();\n\n return Promise.resolve(person);\n }\n\n if (!email) {\n return Promise.reject(\n new Error('cannot determine id without an `emailAddress` or `entryUUID` property')\n );\n }\n\n return ctx.webex.internal.user.asUUID(email).then((uuid) => {\n person.entryUUID = person.id = uuid;\n\n return person;\n });\n },\n },\n ]\n .concat(decryptionTransforms)\n .concat(encryptionTransforms),\n },\n config,\n});\n\nexport {default} from './conversation';\nexport {default as ShareActivity} from './share-activity';\nexport {ConversationError, InvalidUserCreation} from './convo-error';\n"],"mappings":"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"}
@@ -157,7 +157,7 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
157
157
  var _objectSpread3,
158
158
  _this = this;
159
159
  options = options || {};
160
- options.claimedFileType = file.displayName.substring(file.displayName.lastIndexOf('.'));
160
+ options.claimedFileType = file.name.substring(file.name.lastIndexOf('.'));
161
161
  var upload = this.uploads.get(file);
162
162
  if (upload) {
163
163
  return upload[PROMISE_SYMBOL];
@@ -395,7 +395,7 @@ var ShareActivity = _webexCore.WebexPlugin.extend({
395
395
  return res.body.spaceUrl;
396
396
  });
397
397
  },
398
- version: "2.42.0"
398
+ version: "2.43.1"
399
399
  });
400
400
 
401
401
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["EMITTER_SYMBOL","FILE_SYMBOL","PROMISE_SYMBOL","ShareActivity","WebexPlugin","extend","getSymbols","file","emitter","namespace","derived","target","deps","fn","conversation","session","claimedFileType","required","type","content","clientTempId","displayName","enableThumbnails","default","hiddenSpaceUrl","mentions","spaceUrl","uploads","initialize","attrs","options","prototype","resolve","_spaceUrl","_retrieveSpaceUrl","url","then","_hiddenSpaceUrl","addGif","gif","gifToAdd","get","name","fileSize","size","byteLength","length","mimeType","objectType","height","width","image","set","SCR","create","scr","loc","thumbnailScr","add","substring","lastIndexOf","upload","EventEmitter","promise","detectFileType","logger","processImage","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","cdata","all","uploadPromise","_upload","transferEvents","metadata","downloadUrl","thumb","thumbnail","fileDimensions","thumbnailDimensions","proxyEvents","getFiles","files","key","push","uri","uploadOptions","fileHash","sha256","toString","role","initializeBody","qs","transcode","phases","body","$url","uploadUrl","finalize","$uri","finishUploadUrl","remove","delete","prepare","Error","activity","verb","object","undefined","items","promises","forEach","item","contentCategory","_determineContentCategory","_itemContainsActionWithMimeType","map","actions","mimeTypes","split","shift","request","method","res","share","parent"],"sources":["share-activity.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport SCR from 'node-scr';\nimport {proxyEvents, transferEvents} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {filter, map, pick, some} from 'lodash';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport sha256 from 'crypto-js/sha256';\n\nexport const EMITTER_SYMBOL = Symbol('EMITTER_SYMBOL');\nexport const FILE_SYMBOL = Symbol('FILE_SYMBOL');\nconst PROMISE_SYMBOL = Symbol('PROMISE_SYMBOL');\n\n/**\n * @class\n */\nconst ShareActivity = WebexPlugin.extend({\n getSymbols() {\n return {\n file: FILE_SYMBOL,\n emitter: EMITTER_SYMBOL,\n };\n },\n\n namespace: 'Conversation',\n\n derived: {\n target: {\n deps: ['conversation'],\n fn() {\n return this.conversation;\n },\n },\n },\n\n session: {\n claimedFileType: 'string',\n conversation: {\n required: true,\n type: 'object',\n },\n\n content: 'string',\n\n clientTempId: 'string',\n\n displayName: 'string',\n\n enableThumbnails: {\n default: true,\n type: 'boolean',\n },\n\n hiddenSpaceUrl: 'object',\n\n mentions: 'object',\n\n spaceUrl: 'object',\n\n uploads: {\n type: 'object',\n default() {\n return new Map();\n },\n },\n },\n\n initialize(attrs, options) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\n\n if (attrs && attrs.conversation) {\n this.spaceUrl = Promise.resolve(\n attrs.conversation._spaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space`).then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n })\n );\n this.hiddenSpaceUrl = Promise.resolve(\n attrs.conversation._hiddenSpaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`).then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\n })\n );\n }\n },\n\n /**\n * Adds an additional GIF to the share activity\n * Different from regular add to skip uploading to webex files service\n * @param {File} gif\n * @param {File} gif.image // thumbnail\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {Promise}\n */\n addGif(gif, options) {\n let gifToAdd = this.uploads.get(gif);\n\n // If the gif already exists, then don't do anything\n if (gifToAdd) {\n return Promise.resolve();\n }\n\n gifToAdd = {\n displayName: gif.name,\n fileSize: gif.size || gif.byteLength || gif.length,\n mimeType: gif.type,\n url: 'https://giphy.com',\n objectType: 'file',\n height: gif.height,\n width: gif.width,\n image: {\n height: gif.image.height,\n width: gif.image.width,\n url: 'https://giphy.com',\n },\n [FILE_SYMBOL]: gif,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(gif, gifToAdd);\n\n /* Instead of encryptBinary, which produces a encrypted version of\n * the file for upload and a SCR (contains info needed to encrypt the\n * SCR itself and the displayName), we directly create an SCR.\n * Because we are skipping uploading, the encrypted file is not needed.\n */\n return SCR.create()\n .then((scr) => {\n scr.loc = gif.url;\n gifToAdd.scr = scr;\n\n return SCR.create();\n })\n .then((thumbnailScr) => {\n thumbnailScr.loc = gif.image.url;\n gifToAdd.image.scr = thumbnailScr;\n });\n },\n\n /**\n * Adds an additional file to the share and begins submitting it to webex\n * files\n * @param {File} file\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {EventEmittingPromise}\n */\n add(file, options) {\n options = options || {};\n options.claimedFileType = file.displayName.substring(file.displayName.lastIndexOf('.'));\n let upload = this.uploads.get(file);\n\n if (upload) {\n return upload[PROMISE_SYMBOL];\n }\n const emitter = new EventEmitter();\n\n upload = {\n displayName: file.name,\n fileSize: file.size || file.byteLength || file.length,\n mimeType: file.type,\n objectType: 'file',\n [EMITTER_SYMBOL]: emitter,\n [FILE_SYMBOL]: file,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(file, upload);\n const promise = detectFileType(file, this.logger)\n .then((type) => {\n upload.mimeType = type;\n\n return processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n });\n })\n .then((imageData) => {\n const main = this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) => {\n upload.scr = scr;\n\n return Promise.all([cdata, this.spaceUrl]);\n })\n .then(([cdata, spaceUrl]) => {\n const uploadPromise = this._upload(cdata, `${spaceUrl}/upload_sessions`, options);\n\n transferEvents('progress', uploadPromise, emitter);\n\n return uploadPromise;\n })\n .then((metadata) => {\n upload.url = upload.scr.loc = metadata.downloadUrl;\n });\n\n let thumb;\n\n if (imageData) {\n const [thumbnail, fileDimensions, thumbnailDimensions] = imageData;\n\n Object.assign(upload, fileDimensions);\n\n if (thumbnail && thumbnailDimensions) {\n upload.image = thumbnailDimensions;\n thumb = this.webex.internal.encryption\n .encryptBinary(thumbnail)\n .then(({scr, cdata}) => {\n upload.image.scr = scr;\n\n return Promise.all([cdata, this.hiddenSpaceUrl]);\n })\n .then(([cdata, spaceUrl]) => this._upload(cdata, `${spaceUrl}/upload_sessions`))\n .then((metadata) => {\n upload.image.url = upload.image.scr.loc = metadata.downloadUrl;\n });\n }\n }\n\n return Promise.all([main, thumb]);\n });\n\n upload[PROMISE_SYMBOL] = promise;\n\n proxyEvents(emitter, promise);\n\n return promise;\n },\n\n /**\n * Fetches the files from the share\n * @returns {Array}\n */\n getFiles() {\n const files = [];\n\n for (const [key] of this.uploads) {\n files.push(this.uploads.get(key)[FILE_SYMBOL]);\n }\n\n return files;\n },\n\n /**\n * @param {File} file\n * @param {string} uri\n * @param {Object} uploadOptions - Optional object adding additional params to request body\n * @private\n * @returns {Promise}\n */\n _upload(file, uri, uploadOptions) {\n const fileSize = file.length || file.size || file.byteLength;\n const fileHash = sha256(file).toString();\n const {role, claimedFileType} = uploadOptions ?? {};\n const initializeBody = {fileSize, claimedFileType, ...(role && {role})};\n\n return this.webex.upload({\n uri,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {\n body: initializeBody,\n },\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize, fileHash},\n },\n },\n });\n },\n\n /**\n * Removes the specified file from the share (Does not currently delete the\n * uploaded file)\n * @param {File} file\n * @returns {Promise}\n */\n remove(file) {\n this.uploads.delete(file);\n\n // Returns a promise for future-proofiness.\n return Promise.resolve();\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n prepare() {\n if (!this.uploads.size) {\n throw new Error('Cannot submit a share activity without at least one file');\n }\n\n const activity = {\n verb: 'share',\n object: {\n objectType: 'content',\n displayName: this.object && this.object.displayName ? this.object.displayName : undefined,\n content: this.object && this.object.content ? this.object.content : undefined,\n mentions: this.object && this.object.mentions ? this.object.mentions : undefined,\n files: {\n items: [],\n },\n },\n clientTempId: this.clientTempId,\n };\n\n const promises = [];\n\n this.uploads.forEach((item) => {\n activity.object.files.items.push(item);\n promises.push(item[PROMISE_SYMBOL]);\n });\n\n activity.object.contentCategory = this._determineContentCategory(activity.object.files.items);\n\n return Promise.all(promises).then(() => activity);\n },\n\n /**\n * @param {Array} items\n * @param {string} mimeType\n * @private\n * @returns {boolean}\n */\n _itemContainsActionWithMimeType(items, mimeType) {\n return some(items.map((item) => some(item.actions, {mimeType})));\n },\n\n /**\n * @param {Array} items\n * @private\n * @returns {string}\n */\n _determineContentCategory(items) {\n // determine if the items contain an image\n if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {\n return 'documents';\n }\n\n const mimeTypes = filter(map(items, 'mimeType'));\n\n if (mimeTypes.length !== items.length) {\n return 'documents';\n }\n\n const contentCategory = mimeTypes[0].split('/').shift();\n\n if (contentCategory !== 'video' && contentCategory !== 'image') {\n return 'documents';\n }\n\n for (const mimeType of mimeTypes) {\n if (mimeType.split('/').shift() !== contentCategory) {\n return 'documents';\n }\n }\n\n return `${contentCategory}s`;\n },\n\n /**\n * @param {string} uri\n * @returns {Promise}\n */\n _retrieveSpaceUrl(uri) {\n return this.webex\n .request({\n method: 'PUT',\n uri,\n })\n .then((res) => res.body.spaceUrl);\n },\n});\n\n/**\n * Instantiates a ShareActivity\n * @param {Object} conversation\n * @param {ShareActivity|Object|array} object\n * @param {ProxyWebex} webex\n * @returns {ShareActivity}\n */\nShareActivity.create = function create(conversation, object, webex) {\n if (object instanceof ShareActivity) {\n return object;\n }\n\n let files;\n\n if (object?.object?.files) {\n files = object.object.files;\n Reflect.deleteProperty(object.object, 'files');\n }\n\n const share = new ShareActivity(\n {\n conversation,\n ...object,\n },\n {\n parent: webex,\n }\n );\n\n files = files?.items ?? files;\n if (files) {\n files.forEach((file) => share.add(file));\n }\n\n return share;\n};\n\nexport default ShareActivity;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_nodeScr","_interopRequireDefault","_common","_webexCore","_helperImage","_sha","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol2","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","EMITTER_SYMBOL","_symbol","exports","FILE_SYMBOL","PROMISE_SYMBOL","ShareActivity","WebexPlugin","extend","getSymbols","file","emitter","namespace","derived","deps","fn","conversation","session","claimedFileType","required","type","content","clientTempId","displayName","enableThumbnails","hiddenSpaceUrl","mentions","spaceUrl","uploads","_default","_map2","initialize","attrs","options","_apply","_promise","resolve","_spaceUrl","_retrieveSpaceUrl","concat","url","then","_hiddenSpaceUrl","addGif","gif","gifToAdd","get","fileSize","size","byteLength","mimeType","objectType","height","width","image","_pick2","set","SCR","create","scr","loc","thumbnailScr","add","_objectSpread3","_this","substring","lastIndexOf","upload","EventEmitter","promise","detectFileType","logger","processImage","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","_ref","cdata","all","_ref2","_ref3","_slicedToArray2","uploadPromise","_upload","transferEvents","metadata","downloadUrl","thumb","_imageData","thumbnail","fileDimensions","thumbnailDimensions","_assign","_ref4","_ref5","_ref6","proxyEvents","getFiles","files","_iterator","_step","_step$value","uri","uploadOptions","fileHash","sha256","_ref7","role","initializeBody","qs","transcode","phases","body","$url","uploadUrl","finalize","$uri","finishUploadUrl","remove","delete","prepare","Error","activity","verb","undefined","items","promises","item","contentCategory","_determineContentCategory","_itemContainsActionWithMimeType","_some2","map","actions","mimeTypes","_filter2","_map3","split","shift","_iterator2","_step2","request","method","res","version","_object$object","_files$items","_files","_deleteProperty","share","parent","_default2"],"sources":["share-activity.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport SCR from 'node-scr';\nimport {proxyEvents, transferEvents} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {filter, map, pick, some} from 'lodash';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport sha256 from 'crypto-js/sha256';\n\nexport const EMITTER_SYMBOL = Symbol('EMITTER_SYMBOL');\nexport const FILE_SYMBOL = Symbol('FILE_SYMBOL');\nconst PROMISE_SYMBOL = Symbol('PROMISE_SYMBOL');\n\n/**\n * @class\n */\nconst ShareActivity = WebexPlugin.extend({\n getSymbols() {\n return {\n file: FILE_SYMBOL,\n emitter: EMITTER_SYMBOL,\n };\n },\n\n namespace: 'Conversation',\n\n derived: {\n target: {\n deps: ['conversation'],\n fn() {\n return this.conversation;\n },\n },\n },\n\n session: {\n claimedFileType: 'string',\n conversation: {\n required: true,\n type: 'object',\n },\n\n content: 'string',\n\n clientTempId: 'string',\n\n displayName: 'string',\n\n enableThumbnails: {\n default: true,\n type: 'boolean',\n },\n\n hiddenSpaceUrl: 'object',\n\n mentions: 'object',\n\n spaceUrl: 'object',\n\n uploads: {\n type: 'object',\n default() {\n return new Map();\n },\n },\n },\n\n initialize(attrs, options) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\n\n if (attrs && attrs.conversation) {\n this.spaceUrl = Promise.resolve(\n attrs.conversation._spaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space`).then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n })\n );\n this.hiddenSpaceUrl = Promise.resolve(\n attrs.conversation._hiddenSpaceUrl ||\n this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`).then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\n })\n );\n }\n },\n\n /**\n * Adds an additional GIF to the share activity\n * Different from regular add to skip uploading to webex files service\n * @param {File} gif\n * @param {File} gif.image // thumbnail\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {Promise}\n */\n addGif(gif, options) {\n let gifToAdd = this.uploads.get(gif);\n\n // If the gif already exists, then don't do anything\n if (gifToAdd) {\n return Promise.resolve();\n }\n\n gifToAdd = {\n displayName: gif.name,\n fileSize: gif.size || gif.byteLength || gif.length,\n mimeType: gif.type,\n url: 'https://giphy.com',\n objectType: 'file',\n height: gif.height,\n width: gif.width,\n image: {\n height: gif.image.height,\n width: gif.image.width,\n url: 'https://giphy.com',\n },\n [FILE_SYMBOL]: gif,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(gif, gifToAdd);\n\n /* Instead of encryptBinary, which produces a encrypted version of\n * the file for upload and a SCR (contains info needed to encrypt the\n * SCR itself and the displayName), we directly create an SCR.\n * Because we are skipping uploading, the encrypted file is not needed.\n */\n return SCR.create()\n .then((scr) => {\n scr.loc = gif.url;\n gifToAdd.scr = scr;\n\n return SCR.create();\n })\n .then((thumbnailScr) => {\n thumbnailScr.loc = gif.image.url;\n gifToAdd.image.scr = thumbnailScr;\n });\n },\n\n /**\n * Adds an additional file to the share and begins submitting it to webex\n * files\n * @param {File} file\n * @param {Object} options\n * @param {Object} options.actions\n * @returns {EventEmittingPromise}\n */\n add(file, options) {\n options = options || {};\n options.claimedFileType = file.name.substring(file.name.lastIndexOf('.'));\n let upload = this.uploads.get(file);\n\n if (upload) {\n return upload[PROMISE_SYMBOL];\n }\n const emitter = new EventEmitter();\n\n upload = {\n displayName: file.name,\n fileSize: file.size || file.byteLength || file.length,\n mimeType: file.type,\n objectType: 'file',\n [EMITTER_SYMBOL]: emitter,\n [FILE_SYMBOL]: file,\n ...pick(options, 'actions'),\n };\n\n this.uploads.set(file, upload);\n const promise = detectFileType(file, this.logger)\n .then((type) => {\n upload.mimeType = type;\n\n return processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n });\n })\n .then((imageData) => {\n const main = this.webex.internal.encryption\n .encryptBinary(file)\n .then(({scr, cdata}) => {\n upload.scr = scr;\n\n return Promise.all([cdata, this.spaceUrl]);\n })\n .then(([cdata, spaceUrl]) => {\n const uploadPromise = this._upload(cdata, `${spaceUrl}/upload_sessions`, options);\n\n transferEvents('progress', uploadPromise, emitter);\n\n return uploadPromise;\n })\n .then((metadata) => {\n upload.url = upload.scr.loc = metadata.downloadUrl;\n });\n\n let thumb;\n\n if (imageData) {\n const [thumbnail, fileDimensions, thumbnailDimensions] = imageData;\n\n Object.assign(upload, fileDimensions);\n\n if (thumbnail && thumbnailDimensions) {\n upload.image = thumbnailDimensions;\n thumb = this.webex.internal.encryption\n .encryptBinary(thumbnail)\n .then(({scr, cdata}) => {\n upload.image.scr = scr;\n\n return Promise.all([cdata, this.hiddenSpaceUrl]);\n })\n .then(([cdata, spaceUrl]) => this._upload(cdata, `${spaceUrl}/upload_sessions`))\n .then((metadata) => {\n upload.image.url = upload.image.scr.loc = metadata.downloadUrl;\n });\n }\n }\n\n return Promise.all([main, thumb]);\n });\n\n upload[PROMISE_SYMBOL] = promise;\n\n proxyEvents(emitter, promise);\n\n return promise;\n },\n\n /**\n * Fetches the files from the share\n * @returns {Array}\n */\n getFiles() {\n const files = [];\n\n for (const [key] of this.uploads) {\n files.push(this.uploads.get(key)[FILE_SYMBOL]);\n }\n\n return files;\n },\n\n /**\n * @param {File} file\n * @param {string} uri\n * @param {Object} uploadOptions - Optional object adding additional params to request body\n * @private\n * @returns {Promise}\n */\n _upload(file, uri, uploadOptions) {\n const fileSize = file.length || file.size || file.byteLength;\n const fileHash = sha256(file).toString();\n const {role, claimedFileType} = uploadOptions ?? {};\n const initializeBody = {fileSize, claimedFileType, ...(role && {role})};\n\n return this.webex.upload({\n uri,\n file,\n qs: {\n transcode: true,\n },\n phases: {\n initialize: {\n body: initializeBody,\n },\n upload: {\n $url(session) {\n return session.uploadUrl;\n },\n },\n finalize: {\n $uri(session) {\n return session.finishUploadUrl;\n },\n body: {fileSize, fileHash},\n },\n },\n });\n },\n\n /**\n * Removes the specified file from the share (Does not currently delete the\n * uploaded file)\n * @param {File} file\n * @returns {Promise}\n */\n remove(file) {\n this.uploads.delete(file);\n\n // Returns a promise for future-proofiness.\n return Promise.resolve();\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n prepare() {\n if (!this.uploads.size) {\n throw new Error('Cannot submit a share activity without at least one file');\n }\n\n const activity = {\n verb: 'share',\n object: {\n objectType: 'content',\n displayName: this.object && this.object.displayName ? this.object.displayName : undefined,\n content: this.object && this.object.content ? this.object.content : undefined,\n mentions: this.object && this.object.mentions ? this.object.mentions : undefined,\n files: {\n items: [],\n },\n },\n clientTempId: this.clientTempId,\n };\n\n const promises = [];\n\n this.uploads.forEach((item) => {\n activity.object.files.items.push(item);\n promises.push(item[PROMISE_SYMBOL]);\n });\n\n activity.object.contentCategory = this._determineContentCategory(activity.object.files.items);\n\n return Promise.all(promises).then(() => activity);\n },\n\n /**\n * @param {Array} items\n * @param {string} mimeType\n * @private\n * @returns {boolean}\n */\n _itemContainsActionWithMimeType(items, mimeType) {\n return some(items.map((item) => some(item.actions, {mimeType})));\n },\n\n /**\n * @param {Array} items\n * @private\n * @returns {string}\n */\n _determineContentCategory(items) {\n // determine if the items contain an image\n if (this._itemContainsActionWithMimeType(items, 'application/x-cisco-webex-whiteboard')) {\n return 'documents';\n }\n\n const mimeTypes = filter(map(items, 'mimeType'));\n\n if (mimeTypes.length !== items.length) {\n return 'documents';\n }\n\n const contentCategory = mimeTypes[0].split('/').shift();\n\n if (contentCategory !== 'video' && contentCategory !== 'image') {\n return 'documents';\n }\n\n for (const mimeType of mimeTypes) {\n if (mimeType.split('/').shift() !== contentCategory) {\n return 'documents';\n }\n }\n\n return `${contentCategory}s`;\n },\n\n /**\n * @param {string} uri\n * @returns {Promise}\n */\n _retrieveSpaceUrl(uri) {\n return this.webex\n .request({\n method: 'PUT',\n uri,\n })\n .then((res) => res.body.spaceUrl);\n },\n});\n\n/**\n * Instantiates a ShareActivity\n * @param {Object} conversation\n * @param {ShareActivity|Object|array} object\n * @param {ProxyWebex} webex\n * @returns {ShareActivity}\n */\nShareActivity.create = function create(conversation, object, webex) {\n if (object instanceof ShareActivity) {\n return object;\n }\n\n let files;\n\n if (object?.object?.files) {\n files = object.object.files;\n Reflect.deleteProperty(object.object, 'files');\n }\n\n const share = new ShareActivity(\n {\n conversation,\n ...object,\n },\n {\n parent: webex,\n }\n );\n\n files = files?.items ?? files;\n if (files) {\n files.forEach((file) => share.add(file));\n }\n\n return share;\n};\n\nexport default ShareActivity;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["toArray","direction","obj","map","name","entry","fn"],"sources":["to-array.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isFunction} from 'lodash';\n\n/**\n * Helper to convert objects into arrays of transforms. probably belongs in\n * webex-core\n * @param {string} direction \"inbound\"|\"outbound\"\n * @param {Object} obj\n * @private\n * @returns {Array}\n */\nexport default function toArray(direction, obj) {\n return Object.keys(obj).map((name) => {\n const entry = obj[name];\n\n if (isFunction(entry)) {\n return {\n name,\n direction,\n fn: entry,\n };\n }\n\n return {name, ...entry};\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,OAAO,CAACC,SAAS,EAAEC,GAAG,EAAE;EAC9C,OAAO,mBAAYA,GAAG,CAAC,CAACC,GAAG,CAAC,UAACC,IAAI,EAAK;IACpC,IAAMC,KAAK,GAAGH,GAAG,CAACE,IAAI,CAAC;IAEvB,IAAI,0BAAWC,KAAK,CAAC,EAAE;MACrB,OAAO;QACLD,IAAI,EAAJA,IAAI;QACJH,SAAS,EAATA,SAAS;QACTK,EAAE,EAAED;MACN,CAAC;IACH;IAEA;MAAQD,IAAI,EAAJA;IAAI,GAAKC,KAAK;EACxB,CAAC,CAAC;AACJ"}
1
+ {"version":3,"names":["toArray","direction","obj","_keys","default","map","name","entry","_isFunction2","fn","_objectSpread"],"sources":["to-array.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isFunction} from 'lodash';\n\n/**\n * Helper to convert objects into arrays of transforms. probably belongs in\n * webex-core\n * @param {string} direction \"inbound\"|\"outbound\"\n * @param {Object} obj\n * @private\n * @returns {Array}\n */\nexport default function toArray(direction, obj) {\n return Object.keys(obj).map((name) => {\n const entry = obj[name];\n\n if (isFunction(entry)) {\n return {\n name,\n direction,\n fn: entry,\n };\n }\n\n return {name, ...entry};\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,OAAOA,CAACC,SAAS,EAAEC,GAAG,EAAE;EAC9C,OAAO,IAAAC,KAAA,CAAAC,OAAA,EAAYF,GAAG,CAAC,CAACG,GAAG,CAAC,UAACC,IAAI,EAAK;IACpC,IAAMC,KAAK,GAAGL,GAAG,CAACI,IAAI,CAAC;IAEvB,IAAI,IAAAE,YAAA,CAAAJ,OAAA,EAAWG,KAAK,CAAC,EAAE;MACrB,OAAO;QACLD,IAAI,EAAJA,IAAI;QACJL,SAAS,EAATA,SAAS;QACTQ,EAAE,EAAEF;MACN,CAAC;IACH;IAEA,OAAAG,aAAA;MAAQJ,IAAI,EAAJA;IAAI,GAAKC,KAAK;EACxB,CAAC,CAAC;AACJ"}