@webex/internal-plugin-conversation 1.159.5 → 1.161.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activities.js +3 -3
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js +1 -1
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/conversation.js +3 -3
- package/dist/conversation.js.map +1 -1
- package/dist/convo-error.js +4 -2
- package/dist/convo-error.js.map +1 -1
- package/dist/decryption-transforms.js +29 -1
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +1 -1
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js.map +1 -1
- package/package.json +7 -7
- package/src/decryption-transforms.js +29 -1
- package/test/unit/spec/decrypt-transforms.js +55 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["share-activity.js"],"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","logger","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","cdata","all","uploadPromise","_upload","metadata","downloadUrl","thumb","thumbnail","fileDimensions","thumbnailDimensions","getFiles","files","key","push","uri","uploadOptions","fileHash","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"],"mappings":"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","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(attrs.conversation._spaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space`)\n .then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n }));\n this.hiddenSpaceUrl = Promise.resolve(attrs.conversation._hiddenSpaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`)\n .then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\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 = Object.assign({\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 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 = Object.assign({\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 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.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\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.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\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 /**\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 = Object.assign({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 atleast 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)\n .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.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(Object.assign({\n conversation\n }, object), {\n parent: webex\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"]}
|
|
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","logger","thumbnailMaxWidth","config","thumbnailMaxHeight","imageData","main","webex","internal","encryption","encryptBinary","cdata","all","uploadPromise","_upload","metadata","downloadUrl","thumb","thumbnail","fileDimensions","thumbnailDimensions","getFiles","files","key","push","uri","uploadOptions","fileHash","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(attrs.conversation._spaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space`)\n .then((url) => {\n attrs.conversation._spaceUrl = url;\n\n return url;\n }));\n this.hiddenSpaceUrl = Promise.resolve(attrs.conversation._hiddenSpaceUrl || this._retrieveSpaceUrl(`${attrs.conversation.url}/space/hidden`)\n .then((url) => {\n attrs.conversation._hiddenSpaceUrl = url;\n\n return url;\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 = Object.assign({\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 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 = Object.assign({\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 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.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\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.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\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 /**\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 = Object.assign({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 atleast 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)\n .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.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(Object.assign({\n conversation\n }, object), {\n parent: webex\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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"}
|
package/dist/to-array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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 Object.assign({name}, entry);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,OAAT,CAAiBC,SAAjB,EAA4BC,GAA5B,EAAiC;EAC9C,OAAO,mBAAYA,GAAZ,EAAiBC,GAAjB,CAAqB,UAACC,IAAD,EAAU;IACpC,IAAMC,KAAK,GAAGH,GAAG,CAACE,IAAD,CAAjB;;IAEA,IAAI,0BAAWC,KAAX,CAAJ,EAAuB;MACrB,OAAO;QACLD,IAAI,EAAJA,IADK;QAELH,SAAS,EAATA,SAFK;QAGLK,EAAE,EAAED;MAHC,CAAP;IAKD;;IAED,OAAO,qBAAc;MAACD,IAAI,EAAJA;IAAD,CAAd,EAAsBC,KAAtB,CAAP;EACD,CAZM,CAAP;AAaD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-conversation",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.161.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ian W. Remmel <iremmel@cisco.com>",
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime-corejs2": "^7.14.8",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
|
-
"@webex/internal-plugin-encryption": "1.
|
|
22
|
-
"@webex/internal-plugin-user": "1.
|
|
23
|
-
"@webex/common": "1.
|
|
24
|
-
"@webex/helper-html": "1.
|
|
25
|
-
"@webex/webex-core": "1.
|
|
21
|
+
"@webex/internal-plugin-encryption": "1.161.0",
|
|
22
|
+
"@webex/internal-plugin-user": "1.161.0",
|
|
23
|
+
"@webex/common": "1.161.0",
|
|
24
|
+
"@webex/helper-html": "1.161.0",
|
|
25
|
+
"@webex/webex-core": "1.161.0",
|
|
26
26
|
"crypto-js": "^4.1.1",
|
|
27
|
-
"@webex/helper-image": "1.
|
|
27
|
+
"@webex/helper-image": "1.161.0",
|
|
28
28
|
"uuid": "^3.3.2",
|
|
29
29
|
"node-scr": "^0.3.0",
|
|
30
30
|
"envify": "^4.1.0"
|
|
@@ -138,6 +138,32 @@ export const transforms = toArray('inbound', {
|
|
|
138
138
|
return Promise.all(promises);
|
|
139
139
|
},
|
|
140
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Decrypt an individual meeting container activity
|
|
143
|
+
* @param {Object} ctx An object containg a webex instance and a transform
|
|
144
|
+
* @param {object} key KMS encryption key url
|
|
145
|
+
* @param {Object} meetingContainerActivity An instance of a Webex meeting container activity
|
|
146
|
+
* @returns {Promise} Returns a ctx.transform promise
|
|
147
|
+
*/
|
|
148
|
+
decryptMeetingcontainer(ctx, key, meetingContainerActivity) {
|
|
149
|
+
const promises = [];
|
|
150
|
+
|
|
151
|
+
if (meetingContainerActivity.displayName) {
|
|
152
|
+
const usableKey = meetingContainerActivity.encryptionKeyUrl || key;
|
|
153
|
+
|
|
154
|
+
promises.push(ctx.transform('decryptPropDisplayName', usableKey, meetingContainerActivity));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (meetingContainerActivity.extensions) {
|
|
158
|
+
const itemsToDecrypt = meetingContainerActivity.extensions.items.filter((item) => item.data.objectType === 'recording');
|
|
159
|
+
|
|
160
|
+
itemsToDecrypt.forEach((itemToDecrypt) => {
|
|
161
|
+
promises.push(ctx.transform('decryptPropTopic', itemToDecrypt.encryptionKeyUrl, itemToDecrypt.data));
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return Promise.all(promises);
|
|
166
|
+
},
|
|
141
167
|
|
|
142
168
|
/**
|
|
143
169
|
* Decrypts a given conversation and it's activites by building an array of promises that call
|
|
@@ -468,5 +494,7 @@ export const transforms = toArray('inbound', {
|
|
|
468
494
|
|
|
469
495
|
decryptPropModel: decryptTextProp('model'),
|
|
470
496
|
|
|
471
|
-
decryptPropLocation: decryptTextProp('location')
|
|
497
|
+
decryptPropLocation: decryptTextProp('location'),
|
|
498
|
+
|
|
499
|
+
decryptPropTopic: decryptTextProp('topic')
|
|
472
500
|
});
|
|
@@ -419,6 +419,61 @@ describe('plugin-conversation', () => {
|
|
|
419
419
|
assert.equal(activity.sslr, DECRYPTED_SSLR);
|
|
420
420
|
});
|
|
421
421
|
});
|
|
422
|
+
|
|
423
|
+
describe('meeting containers', () => {
|
|
424
|
+
it('decrypts a meeting container activity with only display name', () => {
|
|
425
|
+
const transform = transforms.find((t) => t.name === 'decryptMeetingcontainer');
|
|
426
|
+
const transformStub = sinon.spy();
|
|
427
|
+
const ctx = {
|
|
428
|
+
transform: transformStub
|
|
429
|
+
};
|
|
430
|
+
const key = null;
|
|
431
|
+
const meetingContainer = {
|
|
432
|
+
id: 'd5416be0-aeb9-11ec-bac4-ad7fbcfb8ba2',
|
|
433
|
+
objectType: 'meetingContainer',
|
|
434
|
+
displayName: 'eyJraWQiOiJrbXM6XC9cL2ttcy1jaXNjby53YngyLmNvbVwva2V5c1wvYjhjOTg1MTYtNmY0OS00Zjk2LThhMmEtZGIxOTc2ZTAwYTk5IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6ImRpciJ9..H-Ef6wjRGeolqSTJ.xZUwyy5VnKPGdsWDCg0T1A.3Vrx_z7Z0Z2NlnNr3vf43A'
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
return transform.fn(ctx, key, meetingContainer)
|
|
438
|
+
.then(() => {
|
|
439
|
+
assert.equal(transformStub.callCount, 1); // once for the parents object and then once for each child
|
|
440
|
+
assert.equal(transformStub.getCall(0).args[0], 'decryptPropDisplayName');
|
|
441
|
+
});
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
it('decrypts a meeting container activity with display name and extension with recording', () => {
|
|
445
|
+
const transform = transforms.find((t) => t.name === 'decryptMeetingcontainer');
|
|
446
|
+
const transformStub = sinon.spy();
|
|
447
|
+
const ctx = {
|
|
448
|
+
transform: transformStub
|
|
449
|
+
};
|
|
450
|
+
const key = null;
|
|
451
|
+
const meetingContainer = {
|
|
452
|
+
id: 'd5416be0-aeb9-11ec-bac4-ad7fbcfb8ba2',
|
|
453
|
+
objectType: 'meetingContainer',
|
|
454
|
+
displayName: 'eyJraWQiOiJrbXM6XC9cL2ttcy1jaXNjby53YngyLmNvbVwva2V5c1wvYjhjOTg1MTYtNmY0OS00Zjk2LThhMmEtZGIxOTc2ZTAwYTk5IiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6ImRpciJ9..H-Ef6wjRGeolqSTJ.xZUwyy5VnKPGdsWDCg0T1A.3Vrx_z7Z0Z2NlnNr3vf43A',
|
|
455
|
+
extensions: {
|
|
456
|
+
items: [
|
|
457
|
+
{
|
|
458
|
+
data: {
|
|
459
|
+
id: '6a055bbe96aa103a9afd005056818248',
|
|
460
|
+
objectType: 'recording',
|
|
461
|
+
topic: 'eyJraWQiOiJrbXM6XC9cL2ttcy1jaXNjby53YngyLmNvbVwva2V5c1wvOTAwYjUwZmMtYzg0Yi00YTM4LTk0MGQtYWJjM2IyNjJiMWUyIiwiZW5jIjoiQTI1NkdDTSIsImFsZyI6ImRpciJ9..5LXICENQ0AvplBc4.yUlXzF86eyP9sZR75l6spOtAaEwYWIzRx2N-kWZQLVB2JwudN2U.-DWv7fce_Ac2K_l5QryDCQ'
|
|
462
|
+
},
|
|
463
|
+
encryptionKeyUrl: 'kms://kms-cisco.wbx2.com/keys/900b50fc-c84b-4a38-940d-abc3b262b1e2'
|
|
464
|
+
}
|
|
465
|
+
]
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
return transform.fn(ctx, key, meetingContainer)
|
|
470
|
+
.then(() => {
|
|
471
|
+
assert.equal(transformStub.callCount, 2); // once for the parents object and then once for each child
|
|
472
|
+
assert.equal(transformStub.getCall(0).args[0], 'decryptPropDisplayName');
|
|
473
|
+
assert.equal(transformStub.getCall(1).args[0], 'decryptPropTopic');
|
|
474
|
+
});
|
|
475
|
+
});
|
|
476
|
+
});
|
|
422
477
|
});
|
|
423
478
|
});
|
|
424
479
|
});
|