@webex/internal-plugin-ediscovery 2.29.3 → 2.29.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -37,13 +37,15 @@ webex.internal.plugin.ediscovery.WHATEVER
37
37
 
38
38
  Run the ediscovery from the top level using
39
39
 
40
- > npm test -- --packages @webex/internal-plugin-ediscovery
40
+ > yarn run test --packages @webex/internal-plugin-ediscovery
41
+
41
42
 
42
43
  ## Debug Tests
43
44
 
44
45
  Run the following command
45
46
 
46
- > npm test -- --packages @webex/internal-plugin-ediscovery --grep "test name" --karmaDebug --browsers=Chrome
47
+ > yarn run test --packages @webex/internal-plugin-ediscovery --grep "test name" --karmaDebug --browsers=Chrome
48
+
47
49
 
48
50
  ## Maintainers
49
51
 
package/dist/config.js CHANGED
@@ -7,10 +7,6 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
 
9
9
  exports.default = void 0;
10
-
11
- /*!
12
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
13
- */
14
10
  var _default = {
15
11
  ediscovery: {
16
12
  defaultOptions: {
@@ -1 +1 @@
1
- {"version":3,"names":["ediscovery","defaultOptions","offset","size","timeoutMs","types"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n ediscovery: {\n defaultOptions: {\n offset: 0, size: 100, timeoutMs: 30000, types: []\n }\n }\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,UAAU,EAAE;IACVC,cAAc,EAAE;MACdC,MAAM,EAAE,CADM;MACHC,IAAI,EAAE,GADH;MACQC,SAAS,EAAE,KADnB;MAC0BC,KAAK,EAAE;IADjC;EADN;AADC,C"}
1
+ {"version":3,"names":["ediscovery","defaultOptions","offset","size","timeoutMs","types"],"sources":["config.js"],"sourcesContent":["\nexport default {\n ediscovery: {\n defaultOptions: {\n offset: 0, size: 100, timeoutMs: 30000, types: []\n }\n }\n};\n"],"mappings":";;;;;;;;;eACe;EACbA,UAAU,EAAE;IACVC,cAAc,EAAE;MACdC,MAAM,EAAE,CADM;MACHC,IAAI,EAAE,GADH;MACQC,SAAS,EAAE,KADnB;MAC0BC,KAAK,EAAE;IADjC;EADN;AADC,C"}
@@ -722,7 +722,7 @@ var EDiscovery = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForVal
722
722
  }, _callee10);
723
723
  }))();
724
724
  },
725
- version: "2.29.3"
725
+ version: "2.29.5"
726
726
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "createReport", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "createReport"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getReport", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "getReport"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getReports", [_dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "getReports"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "deleteReport", [_dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "deleteReport"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "restartReport", [_dec5], (0, _getOwnPropertyDescriptor.default)(_obj, "restartReport"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getContent", [_dec6, _dec7], (0, _getOwnPropertyDescriptor.default)(_obj, "getContent"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getContentContainer", [_dec8, _dec9], (0, _getOwnPropertyDescriptor.default)(_obj, "getContentContainer"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getContentContainerByContainerId", [_dec10, _dec11], (0, _getOwnPropertyDescriptor.default)(_obj, "getContentContainerByContainerId"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getClientConfig", [_dec12], (0, _getOwnPropertyDescriptor.default)(_obj, "getClientConfig"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "postAuditLog", [_dec13], (0, _getOwnPropertyDescriptor.default)(_obj, "postAuditLog"), _obj)), _obj)));
727
727
 
728
728
  var _default2 = EDiscovery;
package/dist/index.js CHANGED
@@ -208,6 +208,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
208
208
  }]
209
209
  }
210
210
  });
211
- var _default = _ediscovery.default;
211
+ var _default = _ediscovery.default; // eslint-disable-next-line import/named
212
+
212
213
  exports.default = _default;
213
214
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","EDiscovery","config","payloadTransformer","predicates","name","direction","test","ctx","object","resolve","extract","transforms","fn","Transforms","decryptReportRequest","body","all","map","item","transform","encryptReportRequest","reportId","decryptReportContent","options","uri","decryptReportContentContainer"],"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-conversation';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport EDiscovery from './ediscovery';\nimport Transforms from './transforms';\nimport config from './config';\n\nregisterInternalPlugin('ediscovery', EDiscovery, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptReportRequest',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.reportRequest'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportRequestArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].reportRequest'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'encryptReportRequest',\n direction: 'outbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.keywords') || has(object, 'body.spaceNames') || has(object, 'body.emails'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContent',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.activityId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].activityId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentContainer',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.containerId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentContainerArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].containerId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n }\n ],\n transforms: [\n {\n name: 'decryptReportRequest',\n direction: 'inbound',\n fn(ctx, object) {\n return Transforms.decryptReportRequest(ctx, object);\n }\n },\n {\n name: 'decryptReportRequestArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportRequest', {body: item})));\n }\n },\n {\n name: 'encryptReportRequest',\n direction: 'outbound',\n fn(ctx, object) {\n return Transforms.encryptReportRequest(ctx, object);\n }\n },\n {\n name: 'decryptReportContent',\n direction: 'inbound',\n fn(ctx, object, reportId) {\n return Transforms.decryptReportContent(ctx, object, reportId);\n }\n },\n {\n name: 'decryptReportContentArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n // Always use the report url as this'll resolve correctly for remote reports\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportContent', {body: item}, object.options.uri)));\n }\n },\n {\n name: 'decryptReportContentContainer',\n direction: 'inbound',\n fn(ctx, object) {\n return Transforms.decryptReportContentContainer(ctx, object);\n }\n },\n {\n name: 'decryptReportContentContainerArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportContentContainer', {body: item})));\n }\n }\n ]\n }\n});\n\nexport default EDiscovery;\n\nexport {config} from './config';\nexport {default as ReportRequest} from './report-request';\nexport {EdiscoveryError, InvalidEmailAddressError} from './ediscovery-error';\n"],"mappings":"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"}
1
+ {"version":3,"names":["registerInternalPlugin","EDiscovery","config","payloadTransformer","predicates","name","direction","test","ctx","object","resolve","extract","transforms","fn","Transforms","decryptReportRequest","body","all","map","item","transform","encryptReportRequest","reportId","decryptReportContent","options","uri","decryptReportContentContainer"],"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-conversation';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport EDiscovery from './ediscovery';\nimport Transforms from './transforms';\nimport config from './config';\n\nregisterInternalPlugin('ediscovery', EDiscovery, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptReportRequest',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.reportRequest'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportRequestArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].reportRequest'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'encryptReportRequest',\n direction: 'outbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.keywords') || has(object, 'body.spaceNames') || has(object, 'body.emails'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContent',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.activityId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].activityId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentContainer',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body.containerId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n },\n {\n name: 'decryptReportContentContainerArray',\n direction: 'inbound',\n test(ctx, object) {\n return Promise.resolve(has(object, 'body[0].containerId'));\n },\n extract(object) {\n return Promise.resolve(object);\n }\n }\n ],\n transforms: [\n {\n name: 'decryptReportRequest',\n direction: 'inbound',\n fn(ctx, object) {\n return Transforms.decryptReportRequest(ctx, object);\n }\n },\n {\n name: 'decryptReportRequestArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportRequest', {body: item})));\n }\n },\n {\n name: 'encryptReportRequest',\n direction: 'outbound',\n fn(ctx, object) {\n return Transforms.encryptReportRequest(ctx, object);\n }\n },\n {\n name: 'decryptReportContent',\n direction: 'inbound',\n fn(ctx, object, reportId) {\n return Transforms.decryptReportContent(ctx, object, reportId);\n }\n },\n {\n name: 'decryptReportContentArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n // Always use the report url as this'll resolve correctly for remote reports\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportContent', {body: item}, object.options.uri)));\n }\n },\n {\n name: 'decryptReportContentContainer',\n direction: 'inbound',\n fn(ctx, object) {\n return Transforms.decryptReportContentContainer(ctx, object);\n }\n },\n {\n name: 'decryptReportContentContainerArray',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n\n return Promise.all(object.body.map((item) => ctx.transform('decryptReportContentContainer', {body: item})));\n }\n }\n ]\n }\n});\n\nexport default EDiscovery;\n\n// eslint-disable-next-line import/named\nexport {config} from './config';\nexport {default as ReportRequest} from './report-request';\nexport {EdiscoveryError, InvalidEmailAddressError} from './ediscovery-error';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AACA;;AAEA;;AAGA;;AACA;;AACA;;AAoJA;;AACA;;;;;;AAjKA;AACA;AACA;AAYA,IAAAA,iCAAA,EAAuB,YAAvB,EAAqCC,mBAArC,EAAiD;EAC/CC,MAAM,EAANA,eAD+C;EAE/CC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,CACV;MACEC,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,oBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CADU,EAWV;MACEJ,IAAI,EAAE,2BADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,uBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CAXU,EAqBV;MACEJ,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,UAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,eAAZ,KAAgC,mBAAIA,MAAJ,EAAY,iBAAZ,CAAhC,IAAkE,mBAAIA,MAAJ,EAAY,aAAZ,CAAlF,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CArBU,EA+BV;MACEJ,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,iBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CA/BU,EAyCV;MACEJ,IAAI,EAAE,2BADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,oBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CAzCU,EAmDV;MACEJ,IAAI,EAAE,+BADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,kBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CAnDU,EA6DV;MACEJ,IAAI,EAAE,oCADR;MAEEC,SAAS,EAAE,SAFb;MAGEC,IAHF,gBAGOC,GAHP,EAGYC,MAHZ,EAGoB;QAChB,OAAO,iBAAQC,OAAR,CAAgB,mBAAID,MAAJ,EAAY,qBAAZ,CAAhB,CAAP;MACD,CALH;MAMEE,OANF,mBAMUF,MANV,EAMkB;QACd,OAAO,iBAAQC,OAAR,CAAgBD,MAAhB,CAAP;MACD;IARH,CA7DU,CADM;IAyElBG,UAAU,EAAE,CACV;MACEP,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,OAAOK,mBAAA,CAAWC,oBAAX,CAAgCP,GAAhC,EAAqCC,MAArC,CAAP;MACD;IALH,CADU,EAQV;MACEJ,IAAI,EAAE,2BADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,IAAI,CAACA,MAAD,IAAW,CAACA,MAAM,CAACO,IAAvB,EAA6B;UAC3B,OAAO,iBAAQN,OAAR,EAAP;QACD;;QAED,OAAO,iBAAQO,GAAR,CAAYR,MAAM,CAACO,IAAP,CAAYE,GAAZ,CAAgB,UAACC,IAAD;UAAA,OAAUX,GAAG,CAACY,SAAJ,CAAc,sBAAd,EAAsC;YAACJ,IAAI,EAAEG;UAAP,CAAtC,CAAV;QAAA,CAAhB,CAAZ,CAAP;MACD;IATH,CARU,EAmBV;MACEd,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,UAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,OAAOK,mBAAA,CAAWO,oBAAX,CAAgCb,GAAhC,EAAqCC,MAArC,CAAP;MACD;IALH,CAnBU,EA0BV;MACEJ,IAAI,EAAE,sBADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkBa,QAHlB,EAG4B;QACxB,OAAOR,mBAAA,CAAWS,oBAAX,CAAgCf,GAAhC,EAAqCC,MAArC,EAA6Ca,QAA7C,CAAP;MACD;IALH,CA1BU,EAiCV;MACEjB,IAAI,EAAE,2BADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,IAAI,CAACA,MAAD,IAAW,CAACA,MAAM,CAACO,IAAvB,EAA6B;UAC3B,OAAO,iBAAQN,OAAR,EAAP;QACD,CAHa,CAKd;;;QACA,OAAO,iBAAQO,GAAR,CAAYR,MAAM,CAACO,IAAP,CAAYE,GAAZ,CAAgB,UAACC,IAAD;UAAA,OAAUX,GAAG,CAACY,SAAJ,CAAc,sBAAd,EAAsC;YAACJ,IAAI,EAAEG;UAAP,CAAtC,EAAoDV,MAAM,CAACe,OAAP,CAAeC,GAAnE,CAAV;QAAA,CAAhB,CAAZ,CAAP;MACD;IAVH,CAjCU,EA6CV;MACEpB,IAAI,EAAE,+BADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,OAAOK,mBAAA,CAAWY,6BAAX,CAAyClB,GAAzC,EAA8CC,MAA9C,CAAP;MACD;IALH,CA7CU,EAoDV;MACEJ,IAAI,EAAE,oCADR;MAEEC,SAAS,EAAE,SAFb;MAGEO,EAHF,cAGKL,GAHL,EAGUC,MAHV,EAGkB;QACd,IAAI,CAACA,MAAD,IAAW,CAACA,MAAM,CAACO,IAAvB,EAA6B;UAC3B,OAAO,iBAAQN,OAAR,EAAP;QACD;;QAED,OAAO,iBAAQO,GAAR,CAAYR,MAAM,CAACO,IAAP,CAAYE,GAAZ,CAAgB,UAACC,IAAD;UAAA,OAAUX,GAAG,CAACY,SAAJ,CAAc,+BAAd,EAA+C;YAACJ,IAAI,EAAEG;UAAP,CAA/C,CAAV;QAAA,CAAhB,CAAZ,CAAP;MACD;IATH,CApDU;EAzEM;AAF2B,CAAjD;eA8IelB,mB,EAEf"}
@@ -31,7 +31,7 @@ var Transforms = /*#__PURE__*/function () {
31
31
  value:
32
32
  /**
33
33
  * This function is used to encrypt sensitive properties on the ReportRequest before it is sent to the eDiscovery Service createReport API
34
- * @param {Object} ctx - An object containg a webex instance and a transform
34
+ * @param {Object} ctx - An object containing a webex instance and a transform
35
35
  * @param {Object} object - Generic object that you want to encrypt some property on based on the type
36
36
  * @returns {Promise} - Returns a transform promise
37
37
  */
@@ -102,7 +102,7 @@ var Transforms = /*#__PURE__*/function () {
102
102
  }
103
103
  /**
104
104
  * This function is used to decrypt encrypted properties on the ReportRequest that is returned from the eDiscovery Service getReport(s) API
105
- * @param {Object} ctx - An object containg a webex instance and a transform
105
+ * @param {Object} ctx - An object containing a webex instance and a transform
106
106
  * @param {Object} object - Generic object that you want to decrypt some property on based on the type
107
107
  * @returns {Promise} - Returns a transform promise
108
108
  */
@@ -175,7 +175,7 @@ var Transforms = /*#__PURE__*/function () {
175
175
  }
176
176
  /**
177
177
  * This function is used to decrypt encrypted properties on the activities that are returned from the eDiscovery Service getContent API
178
- * @param {Object} ctx - An object containg a webex instance and a transform
178
+ * @param {Object} ctx - An object containing a webex instance and a transform
179
179
  * @param {Object} object - Generic object that you want to decrypt some property on based on the type
180
180
  * @param {String} reportId - Id of the report for which content is being retrieved
181
181
  * @returns {Promise} - Returns a transform promise
@@ -1 +1 @@
1
- {"version":3,"names":["Transforms","ctx","object","body","resolve","reportRequest","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","length","encryptionKeyUrl","uri","createResource","userIds","userId","promises","name","push","encryptText","encryptedName","description","encryptedDescription","spaceNames","all","map","spaceName","encryptedSpaceNames","keywords","keyword","encryptedKeywords","emails","unencryptedEmails","email","encryptedEmails","catch","reason","logger","error","reject","reportNamePromise","decryptText","decryptedName","id","reportDescriptionPromise","decryptedDescription","spaceNamePromises","decryptedSpaceNames","keywordPromises","decryptedKeywords","emailPromises","decryptedEmails","concat","reportId","activity","ediscovery","getContentContainerByContainerId","targetId","res","container","activityId","warning","spaceWarning","containerWarning","containerName","isOneOnOne","displayNames","participants","formerParticipants","p","displayName","join","includes","verb","meeting","recording","extension","extensionType","spaceInfo","info","onBehalfOfUser","objectDisplayName","requestWithRetries","onBehalfOf","decryptedMessage","previousName","previousEncryptionKeyUrl","objectType","contentUrl","decryptedContentUrl","decryptedDisplayName","webUrl","decryptedWebUrl","previous","decryptedPreviousContentUrl","decryptedPreviousDisplayName","title","topic","shares","Array","prototype","apply","files","whiteboards","links","i","share","warn","mimeType","fileSize","url","microsoftSharedLinkInfo","driveId","decryptedDriveId","itemId","decryptedItemId","scr","sslr","decryptScr","decryptedSCR","loc","containerType","containerId","descriptionEncryptionKeyUrl","decryptedContainerDescription","decryptedContainerName"],"sources":["transforms.js"],"sourcesContent":["import {requestWithRetries} from './retry';\n\n/**\n * This class is used to encrypt/decrypt various properties on ReportRequests, Activities and Spaces as they are sent/returned to/from the eDiscovery Service\n */\nclass Transforms {\n /**\n * This function is used to encrypt sensitive properties on the ReportRequest before it is sent to the eDiscovery Service createReport API\n * @param {Object} ctx - An object containg a webex instance and a transform\n * @param {Object} object - Generic object that you want to encrypt some property on based on the type\n * @returns {Promise} - Returns a transform promise\n */\n static encryptReportRequest(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve(object);\n }\n const reportRequest = object.body;\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n .then((keys) => {\n if (keys && keys.length > 0 && keys[0]) {\n reportRequest.encryptionKeyUrl = keys[0].uri;\n\n return ctx.webex.internal.encryption.kms.createResource({userIds: [keys[0].userId], keys})\n .then(() => {\n const promises = [];\n\n if (reportRequest.name) {\n promises.push(\n ctx.webex.internal.encryption.encryptText(keys[0], reportRequest.name)\n .then((encryptedName) => {\n reportRequest.name = encryptedName;\n })\n );\n }\n\n if (reportRequest.description) {\n promises.push(\n ctx.webex.internal.encryption.encryptText(keys[0], reportRequest.description)\n .then((encryptedDescription) => {\n reportRequest.description = encryptedDescription;\n })\n );\n }\n\n if (reportRequest.spaceNames) {\n promises.push(\n Promise.all(reportRequest.spaceNames.map((spaceName) => ctx.webex.internal.encryption.encryptText(keys[0], spaceName)))\n .then((encryptedSpaceNames) => {\n reportRequest.spaceNames = encryptedSpaceNames;\n })\n );\n }\n\n if (reportRequest.keywords) {\n promises.push(\n Promise.all(reportRequest.keywords.map((keyword) => ctx.webex.internal.encryption.encryptText(keys[0], keyword)))\n .then((encryptedKeywords) => {\n reportRequest.keywords = encryptedKeywords;\n })\n );\n }\n\n if (reportRequest.emails) {\n // store unencrypted emails for ediscovery service to convert to user ids\n reportRequest.unencryptedEmails = reportRequest.emails;\n promises.push(\n Promise.all(reportRequest.emails.map((email) => ctx.webex.internal.encryption.encryptText(keys[0], email)))\n .then((encryptedEmails) => {\n reportRequest.emails = encryptedEmails;\n })\n );\n }\n\n return Promise.all(promises);\n });\n }\n\n return Promise.resolve(object);\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error while encrypting report request: ${reportRequest} : ${reason}`);\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * This function is used to decrypt encrypted properties on the ReportRequest that is returned from the eDiscovery Service getReport(s) API\n * @param {Object} ctx - An object containg a webex instance and a transform\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 static decryptReportRequest(ctx, object) {\n if (!object || !object.body || !object.body.reportRequest || !object.body.reportRequest.encryptionKeyUrl) {\n return Promise.resolve(object);\n }\n const {reportRequest} = object.body;\n\n let reportNamePromise;\n\n if (reportRequest.name) {\n reportNamePromise = ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, reportRequest.name)\n .then((decryptedName) => {\n reportRequest.name = decryptedName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting report name for report ${object.body.id}: ${reason}`);\n });\n }\n\n let reportDescriptionPromise;\n\n if (reportRequest.description) {\n reportDescriptionPromise = ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, reportRequest.description)\n .then((decryptedDescription) => {\n reportRequest.description = decryptedDescription;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting description for report ${object.body.id}: ${reason}`);\n });\n }\n\n let spaceNamePromises = [];\n\n if (reportRequest.spaceNames) {\n spaceNamePromises = Promise.all(reportRequest.spaceNames.map((spaceName) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, spaceName)))\n .then((decryptedSpaceNames) => {\n reportRequest.spaceNames = decryptedSpaceNames;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting space name for report ${object.body.id}: ${reason}`);\n });\n }\n\n let keywordPromises = [];\n\n if (reportRequest.keywords) {\n keywordPromises = Promise.all(reportRequest.keywords.map((keyword) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, keyword)))\n .then((decryptedKeywords) => {\n reportRequest.keywords = decryptedKeywords;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting keywords for report ${object.body.id}: ${reason}`);\n });\n }\n\n let emailPromises = [];\n\n if (reportRequest.emails) {\n emailPromises = Promise.all(reportRequest.emails.map((email) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, email)))\n .then((decryptedEmails) => {\n reportRequest.emails = decryptedEmails;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting emails for report ${object.body.id}: ${reason}`);\n });\n }\n\n return Promise.all([reportNamePromise, reportDescriptionPromise].concat(spaceNamePromises, keywordPromises, emailPromises));\n }\n\n /**\n * This function is used to decrypt encrypted properties on the activities that are returned from the eDiscovery Service getContent API\n * @param {Object} ctx - An object containg a webex instance and a transform\n * @param {Object} object - Generic object that you want to decrypt some property on based on the type\n * @param {String} reportId - Id of the report for which content is being retrieved\n * @returns {Promise} - Returns a transform promise\n */\n static decryptReportContent(ctx, object, reportId) {\n if (!object || !object.body || !reportId) {\n return Promise.resolve();\n }\n const activity = object.body;\n\n const promises = [];\n\n return ctx.webex.internal.ediscovery.getContentContainerByContainerId(reportId, activity.targetId)\n .then((res) => {\n const container = res.body;\n\n if (!container) {\n const reason = `Container ${activity.targetId} not found - unable to decrypt activity ${activity.activityId}`;\n\n activity.error = reason;\n ctx.webex.logger.error(reason);\n\n return Promise.resolve(object);\n }\n\n // add warning properties to the activity - these will be recorded in the downloader\n if (container.warning) {\n activity.spaceWarning = container.warning; // Remove this property once all clients are using the content container model\n activity.containerWarning = container.warning;\n }\n\n // set space name and participants on activity\n if (container.containerName) {\n activity.spaceName = container.containerName; // Remove this property once all clients are using the content container model\n activity.containerName = container.containerName;\n }\n else if (container.isOneOnOne) {\n const displayNames = (container.participants || []).concat(container.formerParticipants || []).map((p) => p.displayName).join(' & ');\n\n // One to One spaces have no space name, use participant names as 'Subject' instead\n activity.spaceName = displayNames; // Remove this property once all clients are using the content container model\n activity.containerName = displayNames;\n }\n else {\n activity.spaceName = ''; // Remove this property once all clients are using the content container model\n activity.containerName = '';\n }\n\n // post and share activities have content which needs to be decrypted\n // as do meeting, recording activities, customApp extensions, and space information updates\n if (!['post', 'share'].includes(activity.verb) && !activity.meeting && !activity.recording && !(activity.extension && activity.extension.extensionType === 'customApp') &&\n !activity.spaceInfo?.name && !activity.spaceInfo?.description) {\n return Promise.resolve(object);\n }\n\n if (!activity.encryptionKeyUrl) {\n // If the encryptionKeyUrl is empty we assume the activity is unencrypted\n ctx.webex.logger.info(`Activity ${activity.activityId} cannot be decrypted due to a missing encryption key url`);\n\n return Promise.resolve(object);\n }\n\n if (!container.onBehalfOfUser) {\n const reason = `No user available with which to decrypt activity ${activity.activityId} in container ${activity.targetId}`;\n\n ctx.webex.logger.error(reason);\n activity.error = reason;\n\n return Promise.resolve(object);\n }\n\n // Decrypt activity message if present\n if (activity.objectDisplayName) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.objectDisplayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.objectDisplayName = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt message error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // If the activity is a space information update, decrypt the name and description if present\n if (activity.spaceInfo?.name) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.spaceInfo.name, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.name = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.name error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.spaceInfo?.description) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.spaceInfo.description, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.description = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.description error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.spaceInfo?.previousName && activity.spaceInfo.previousEncryptionKeyUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.spaceInfo.previousEncryptionKeyUrl, activity.spaceInfo.previousName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.previousName = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.previousName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt content url and display name if extension is present\n if (activity.extension && activity.extension.objectType === 'extension' && activity.extension.extensionType === 'customApp') {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.contentUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContentUrl) => {\n activity.extension.contentUrl = decryptedContentUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.contentUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDisplayName) => {\n activity.extension.displayName = decryptedDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.displayName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n\n // Decrypt webUrl.\n if (activity.extension.webUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.webUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedWebUrl) => {\n activity.extension.webUrl = decryptedWebUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.webUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.verb === 'update' && activity.extension.previous) {\n if (activity.extension.previous.contentUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.previous.contentUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedPreviousContentUrl) => {\n activity.extension.previous.contentUrl = decryptedPreviousContentUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.previous.contentUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.extension.previous.displayName) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.previous.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedPreviousDisplayName) => {\n activity.extension.previous.displayName = decryptedPreviousDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.previous.displayName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n }\n\n // Decrypt meeting title if present\n if (activity?.meeting?.title) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.meeting.title, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.meeting.title = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.meeting.title error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt meeting recording topic if present\n if (activity?.recording?.topic) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.recording.topic, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.recording.topic = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.recording.topic error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt shares (files, whiteboards, shared links)\n // Array.prototype.concat.apply ignores undefined\n let shares = Array.prototype.concat.apply([], activity.files);\n\n shares = Array.prototype.concat.apply(shares, activity.whiteboards);\n shares = Array.prototype.concat.apply(shares, activity.links);\n for (let i = 0; i < shares.length; i += 1) {\n const share = shares[i];\n\n // Decrypt the share's display name\n // Ignore display names for whiteboards which are unencrypted\n if (share.displayName && (!activity.whiteboards || !activity.whiteboards.includes(share))) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDisplayName) => {\n share.displayName = decryptedDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`Decrypt DisplayName error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add warning property to activity - this will present an indication that there was data loss on the downloader\n activity.warning = reason;\n }));\n }\n\n // Shared Links can have additional decryption fields\n if (share.microsoftSharedLinkInfo) {\n if (share.microsoftSharedLinkInfo.driveId) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.microsoftSharedLinkInfo.driveId, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDriveId) => {\n share.microsoftSharedLinkInfo.driveId = decryptedDriveId;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt share.microsoftSharedLinkInfo.driveId error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n if (share.microsoftSharedLinkInfo.itemId) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.microsoftSharedLinkInfo.itemId, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedItemId) => {\n share.microsoftSharedLinkInfo.itemId = decryptedItemId;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt share.microsoftSharedLinkInfo.itemId error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n\n // Decrypt the scr (Secure Content Reference) or sslr (Secure Shared Link Reference)\n // Unlike a scr the sslr contains only a loc. But decryptScr(...) is flexible and\n // leaves the tag, auth, IV, etc fields on the SCR object as undefined.\n if (share.scr || share.sslr) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptScr,\n // A share will have an encryptionKeyUrl when it's activity uses a different encryptionKeyUrl. This can happen when old activities are edited\n // and key rotation is turn on.\n [share.encryptionKeyUrl || activity.encryptionKeyUrl, share.scr || share.sslr, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedSCR) => {\n if (share.scr) {\n share.scr = decryptedSCR;\n }\n else {\n share.sslr = decryptedSCR.loc;\n }\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt file scr or sslr error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n\n return Promise.all(promises);\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error retrieving content container for: ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n });\n }\n\n /**\n * This function is used to decrypt encrypted properties on the containers that are returned from the eDiscovery Service getContentContainer API\n * @param {Object} ctx - An object containing a webex instance and a transform\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 static decryptReportContentContainer(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n const container = object.body;\n\n if (!container.containerName) {\n return Promise.resolve(object);\n }\n\n if (!container.encryptionKeyUrl) {\n // If the encryptionKeyUrl is empty we assume the container name is unencrypted\n ctx.webex.logger.info(`${container.containerType} container ${container.containerId} cannot be decrypted due to a missing encryption key url`);\n\n return Promise.resolve(object);\n }\n\n if (!container.onBehalfOfUser) {\n const reason = `No user available with which to decrypt ${container.containerType} container ${container.containerId}`;\n\n ctx.webex.logger.error(reason);\n container.error = reason;\n\n return Promise.resolve(object);\n }\n\n // decrypt description if present with a descriptionEncryptionKeyUrl\n if (container.description && container.descriptionEncryptionKeyUrl) {\n requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [container.descriptionEncryptionKeyUrl, container.description, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContainerDescription) => {\n container.description = decryptedContainerDescription;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt container description error for ${container.containerType} container ${container.containerId}: ${reason}`);\n // add warn property to container info - this warning will be recorded in the downloader\n container.warning = reason;\n // don't return, attempt to decrypt the name first\n });\n }\n\n return requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [container.encryptionKeyUrl, container.containerName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContainerName) => {\n container.containerName = decryptedContainerName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt container name error for ${container.containerType} container ${container.containerId}: ${reason}`);\n // add warn property to container info - this warning will be recorded in the downloader\n container.warning = reason;\n\n return Promise.resolve(object);\n });\n }\n}\n\nexport default Transforms;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Transforms","ctx","object","body","resolve","reportRequest","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","length","encryptionKeyUrl","uri","createResource","userIds","userId","promises","name","push","encryptText","encryptedName","description","encryptedDescription","spaceNames","all","map","spaceName","encryptedSpaceNames","keywords","keyword","encryptedKeywords","emails","unencryptedEmails","email","encryptedEmails","catch","reason","logger","error","reject","reportNamePromise","decryptText","decryptedName","id","reportDescriptionPromise","decryptedDescription","spaceNamePromises","decryptedSpaceNames","keywordPromises","decryptedKeywords","emailPromises","decryptedEmails","concat","reportId","activity","ediscovery","getContentContainerByContainerId","targetId","res","container","activityId","warning","spaceWarning","containerWarning","containerName","isOneOnOne","displayNames","participants","formerParticipants","p","displayName","join","includes","verb","meeting","recording","extension","extensionType","spaceInfo","info","onBehalfOfUser","objectDisplayName","requestWithRetries","onBehalfOf","decryptedMessage","previousName","previousEncryptionKeyUrl","objectType","contentUrl","decryptedContentUrl","decryptedDisplayName","webUrl","decryptedWebUrl","previous","decryptedPreviousContentUrl","decryptedPreviousDisplayName","title","topic","shares","Array","prototype","apply","files","whiteboards","links","i","share","warn","mimeType","fileSize","url","microsoftSharedLinkInfo","driveId","decryptedDriveId","itemId","decryptedItemId","scr","sslr","decryptScr","decryptedSCR","loc","containerType","containerId","descriptionEncryptionKeyUrl","decryptedContainerDescription","decryptedContainerName"],"sources":["transforms.js"],"sourcesContent":["import {requestWithRetries} from './retry';\n\n/**\n * This class is used to encrypt/decrypt various properties on ReportRequests, Activities and Spaces as they are sent/returned to/from the eDiscovery Service\n */\nclass Transforms {\n /**\n * This function is used to encrypt sensitive properties on the ReportRequest before it is sent to the eDiscovery Service createReport API\n * @param {Object} ctx - An object containing a webex instance and a transform\n * @param {Object} object - Generic object that you want to encrypt some property on based on the type\n * @returns {Promise} - Returns a transform promise\n */\n static encryptReportRequest(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve(object);\n }\n const reportRequest = object.body;\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n .then((keys) => {\n if (keys && keys.length > 0 && keys[0]) {\n reportRequest.encryptionKeyUrl = keys[0].uri;\n\n return ctx.webex.internal.encryption.kms.createResource({userIds: [keys[0].userId], keys})\n .then(() => {\n const promises = [];\n\n if (reportRequest.name) {\n promises.push(\n ctx.webex.internal.encryption.encryptText(keys[0], reportRequest.name)\n .then((encryptedName) => {\n reportRequest.name = encryptedName;\n })\n );\n }\n\n if (reportRequest.description) {\n promises.push(\n ctx.webex.internal.encryption.encryptText(keys[0], reportRequest.description)\n .then((encryptedDescription) => {\n reportRequest.description = encryptedDescription;\n })\n );\n }\n\n if (reportRequest.spaceNames) {\n promises.push(\n Promise.all(reportRequest.spaceNames.map((spaceName) => ctx.webex.internal.encryption.encryptText(keys[0], spaceName)))\n .then((encryptedSpaceNames) => {\n reportRequest.spaceNames = encryptedSpaceNames;\n })\n );\n }\n\n if (reportRequest.keywords) {\n promises.push(\n Promise.all(reportRequest.keywords.map((keyword) => ctx.webex.internal.encryption.encryptText(keys[0], keyword)))\n .then((encryptedKeywords) => {\n reportRequest.keywords = encryptedKeywords;\n })\n );\n }\n\n if (reportRequest.emails) {\n // store unencrypted emails for ediscovery service to convert to user ids\n reportRequest.unencryptedEmails = reportRequest.emails;\n promises.push(\n Promise.all(reportRequest.emails.map((email) => ctx.webex.internal.encryption.encryptText(keys[0], email)))\n .then((encryptedEmails) => {\n reportRequest.emails = encryptedEmails;\n })\n );\n }\n\n return Promise.all(promises);\n });\n }\n\n return Promise.resolve(object);\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error while encrypting report request: ${reportRequest} : ${reason}`);\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * This function is used to decrypt encrypted properties on the ReportRequest that is returned from the eDiscovery Service getReport(s) API\n * @param {Object} ctx - An object containing a webex instance and a transform\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 static decryptReportRequest(ctx, object) {\n if (!object || !object.body || !object.body.reportRequest || !object.body.reportRequest.encryptionKeyUrl) {\n return Promise.resolve(object);\n }\n const {reportRequest} = object.body;\n\n let reportNamePromise;\n\n if (reportRequest.name) {\n reportNamePromise = ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, reportRequest.name)\n .then((decryptedName) => {\n reportRequest.name = decryptedName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting report name for report ${object.body.id}: ${reason}`);\n });\n }\n\n let reportDescriptionPromise;\n\n if (reportRequest.description) {\n reportDescriptionPromise = ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, reportRequest.description)\n .then((decryptedDescription) => {\n reportRequest.description = decryptedDescription;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting description for report ${object.body.id}: ${reason}`);\n });\n }\n\n let spaceNamePromises = [];\n\n if (reportRequest.spaceNames) {\n spaceNamePromises = Promise.all(reportRequest.spaceNames.map((spaceName) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, spaceName)))\n .then((decryptedSpaceNames) => {\n reportRequest.spaceNames = decryptedSpaceNames;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting space name for report ${object.body.id}: ${reason}`);\n });\n }\n\n let keywordPromises = [];\n\n if (reportRequest.keywords) {\n keywordPromises = Promise.all(reportRequest.keywords.map((keyword) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, keyword)))\n .then((decryptedKeywords) => {\n reportRequest.keywords = decryptedKeywords;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting keywords for report ${object.body.id}: ${reason}`);\n });\n }\n\n let emailPromises = [];\n\n if (reportRequest.emails) {\n emailPromises = Promise.all(reportRequest.emails.map((email) => ctx.webex.internal.encryption.decryptText(reportRequest.encryptionKeyUrl, email)))\n .then((decryptedEmails) => {\n reportRequest.emails = decryptedEmails;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error decrypting emails for report ${object.body.id}: ${reason}`);\n });\n }\n\n return Promise.all([reportNamePromise, reportDescriptionPromise].concat(spaceNamePromises, keywordPromises, emailPromises));\n }\n\n /**\n * This function is used to decrypt encrypted properties on the activities that are returned from the eDiscovery Service getContent API\n * @param {Object} ctx - An object containing a webex instance and a transform\n * @param {Object} object - Generic object that you want to decrypt some property on based on the type\n * @param {String} reportId - Id of the report for which content is being retrieved\n * @returns {Promise} - Returns a transform promise\n */\n static decryptReportContent(ctx, object, reportId) {\n if (!object || !object.body || !reportId) {\n return Promise.resolve();\n }\n const activity = object.body;\n\n const promises = [];\n\n return ctx.webex.internal.ediscovery.getContentContainerByContainerId(reportId, activity.targetId)\n .then((res) => {\n const container = res.body;\n\n if (!container) {\n const reason = `Container ${activity.targetId} not found - unable to decrypt activity ${activity.activityId}`;\n\n activity.error = reason;\n ctx.webex.logger.error(reason);\n\n return Promise.resolve(object);\n }\n\n // add warning properties to the activity - these will be recorded in the downloader\n if (container.warning) {\n activity.spaceWarning = container.warning; // Remove this property once all clients are using the content container model\n activity.containerWarning = container.warning;\n }\n\n // set space name and participants on activity\n if (container.containerName) {\n activity.spaceName = container.containerName; // Remove this property once all clients are using the content container model\n activity.containerName = container.containerName;\n }\n else if (container.isOneOnOne) {\n const displayNames = (container.participants || []).concat(container.formerParticipants || []).map((p) => p.displayName).join(' & ');\n\n // One to One spaces have no space name, use participant names as 'Subject' instead\n activity.spaceName = displayNames; // Remove this property once all clients are using the content container model\n activity.containerName = displayNames;\n }\n else {\n activity.spaceName = ''; // Remove this property once all clients are using the content container model\n activity.containerName = '';\n }\n\n // post and share activities have content which needs to be decrypted\n // as do meeting, recording activities, customApp extensions, and space information updates\n if (!['post', 'share'].includes(activity.verb) && !activity.meeting && !activity.recording && !(activity.extension && activity.extension.extensionType === 'customApp') &&\n !activity.spaceInfo?.name && !activity.spaceInfo?.description) {\n return Promise.resolve(object);\n }\n\n if (!activity.encryptionKeyUrl) {\n // If the encryptionKeyUrl is empty we assume the activity is unencrypted\n ctx.webex.logger.info(`Activity ${activity.activityId} cannot be decrypted due to a missing encryption key url`);\n\n return Promise.resolve(object);\n }\n\n if (!container.onBehalfOfUser) {\n const reason = `No user available with which to decrypt activity ${activity.activityId} in container ${activity.targetId}`;\n\n ctx.webex.logger.error(reason);\n activity.error = reason;\n\n return Promise.resolve(object);\n }\n\n // Decrypt activity message if present\n if (activity.objectDisplayName) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.objectDisplayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.objectDisplayName = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt message error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // If the activity is a space information update, decrypt the name and description if present\n if (activity.spaceInfo?.name) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.spaceInfo.name, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.name = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.name error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.spaceInfo?.description) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.spaceInfo.description, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.description = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.description error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.spaceInfo?.previousName && activity.spaceInfo.previousEncryptionKeyUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.spaceInfo.previousEncryptionKeyUrl, activity.spaceInfo.previousName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.spaceInfo.previousName = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.spaceInfo.previousName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt content url and display name if extension is present\n if (activity.extension && activity.extension.objectType === 'extension' && activity.extension.extensionType === 'customApp') {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.contentUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContentUrl) => {\n activity.extension.contentUrl = decryptedContentUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.contentUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDisplayName) => {\n activity.extension.displayName = decryptedDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.displayName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n\n // Decrypt webUrl.\n if (activity.extension.webUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.webUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedWebUrl) => {\n activity.extension.webUrl = decryptedWebUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.webUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.verb === 'update' && activity.extension.previous) {\n if (activity.extension.previous.contentUrl) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.previous.contentUrl, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedPreviousContentUrl) => {\n activity.extension.previous.contentUrl = decryptedPreviousContentUrl;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.previous.contentUrl error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n if (activity.extension.previous.displayName) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.extension.previous.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedPreviousDisplayName) => {\n activity.extension.previous.displayName = decryptedPreviousDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.extension.previous.displayName error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n }\n\n // Decrypt meeting title if present\n if (activity?.meeting?.title) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.meeting.title, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.meeting.title = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.meeting.title error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt meeting recording topic if present\n if (activity?.recording?.topic) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, activity.recording.topic, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedMessage) => {\n activity.recording.topic = decryptedMessage;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt activity.recording.topic error for activity ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n // Decrypt shares (files, whiteboards, shared links)\n // Array.prototype.concat.apply ignores undefined\n let shares = Array.prototype.concat.apply([], activity.files);\n\n shares = Array.prototype.concat.apply(shares, activity.whiteboards);\n shares = Array.prototype.concat.apply(shares, activity.links);\n for (let i = 0; i < shares.length; i += 1) {\n const share = shares[i];\n\n // Decrypt the share's display name\n // Ignore display names for whiteboards which are unencrypted\n if (share.displayName && (!activity.whiteboards || !activity.whiteboards.includes(share))) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.displayName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDisplayName) => {\n share.displayName = decryptedDisplayName;\n })\n .catch((reason) => {\n ctx.webex.logger.warn(`Decrypt DisplayName error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add warning property to activity - this will present an indication that there was data loss on the downloader\n activity.warning = reason;\n }));\n }\n\n // Shared Links can have additional decryption fields\n if (share.microsoftSharedLinkInfo) {\n if (share.microsoftSharedLinkInfo.driveId) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.microsoftSharedLinkInfo.driveId, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedDriveId) => {\n share.microsoftSharedLinkInfo.driveId = decryptedDriveId;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt share.microsoftSharedLinkInfo.driveId error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n\n if (share.microsoftSharedLinkInfo.itemId) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [activity.encryptionKeyUrl, share.microsoftSharedLinkInfo.itemId, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedItemId) => {\n share.microsoftSharedLinkInfo.itemId = decryptedItemId;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt share.microsoftSharedLinkInfo.itemId error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n\n // Decrypt the scr (Secure Content Reference) or sslr (Secure Shared Link Reference)\n // Unlike a scr the sslr contains only a loc. But decryptScr(...) is flexible and\n // leaves the tag, auth, IV, etc fields on the SCR object as undefined.\n if (share.scr || share.sslr) {\n promises.push(requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptScr,\n // A share will have an encryptionKeyUrl when it's activity uses a different encryptionKeyUrl. This can happen when old activities are edited\n // and key rotation is turn on.\n [share.encryptionKeyUrl || activity.encryptionKeyUrl, share.scr || share.sslr, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedSCR) => {\n if (share.scr) {\n share.scr = decryptedSCR;\n }\n else {\n share.sslr = decryptedSCR.loc;\n }\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt file scr or sslr error for activity ${activity.activityId} in container ${activity.targetId} for share type: ${share.mimeType}, size: ${share.fileSize}, and url: ${share.url} due to error: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n }));\n }\n }\n\n return Promise.all(promises);\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Error retrieving content container for: ${activity.activityId} in container ${activity.targetId}: ${reason}`);\n // add error property to activity - this error will be recorded in the downloader and the activity omitted from the report\n activity.error = reason;\n\n return Promise.resolve(object);\n });\n }\n\n /**\n * This function is used to decrypt encrypted properties on the containers that are returned from the eDiscovery Service getContentContainer API\n * @param {Object} ctx - An object containing a webex instance and a transform\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 static decryptReportContentContainer(ctx, object) {\n if (!object || !object.body) {\n return Promise.resolve();\n }\n const container = object.body;\n\n if (!container.containerName) {\n return Promise.resolve(object);\n }\n\n if (!container.encryptionKeyUrl) {\n // If the encryptionKeyUrl is empty we assume the container name is unencrypted\n ctx.webex.logger.info(`${container.containerType} container ${container.containerId} cannot be decrypted due to a missing encryption key url`);\n\n return Promise.resolve(object);\n }\n\n if (!container.onBehalfOfUser) {\n const reason = `No user available with which to decrypt ${container.containerType} container ${container.containerId}`;\n\n ctx.webex.logger.error(reason);\n container.error = reason;\n\n return Promise.resolve(object);\n }\n\n // decrypt description if present with a descriptionEncryptionKeyUrl\n if (container.description && container.descriptionEncryptionKeyUrl) {\n requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [container.descriptionEncryptionKeyUrl, container.description, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContainerDescription) => {\n container.description = decryptedContainerDescription;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt container description error for ${container.containerType} container ${container.containerId}: ${reason}`);\n // add warn property to container info - this warning will be recorded in the downloader\n container.warning = reason;\n // don't return, attempt to decrypt the name first\n });\n }\n\n return requestWithRetries(ctx.webex.internal.encryption, ctx.webex.internal.encryption.decryptText,\n [container.encryptionKeyUrl, container.containerName, {onBehalfOf: container.onBehalfOfUser}])\n .then((decryptedContainerName) => {\n container.containerName = decryptedContainerName;\n })\n .catch((reason) => {\n ctx.webex.logger.error(`Decrypt container name error for ${container.containerType} container ${container.containerId}: ${reason}`);\n // add warn property to container info - this warning will be recorded in the downloader\n container.warning = reason;\n\n return Promise.resolve(object);\n });\n }\n}\n\nexport default Transforms;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,31 +1,39 @@
1
1
  {
2
- "name": "@webex/internal-plugin-ediscovery",
3
- "version": "2.29.3",
4
- "description": "",
5
- "license": "MIT",
6
- "contributors": [
7
- "Declan Ryan <decryan@cisco.com>",
8
- "Shane Gannon <gannons@cisco.com>",
9
- "Vincent Canning <vcanning@cisco.com>"
10
- ],
11
- "main": "dist/index.js",
12
- "devMain": "src/index.js",
13
- "repository": "https://github.com/webex/webex-js-sdk/tree/master/packages/node_modules/@webex/ediscovery",
14
- "engines": {
15
- "node": ">=8"
16
- },
17
- "browserify": {
18
- "transform": [
19
- "envify"
20
- ]
21
- },
22
- "dependencies": {
23
- "@babel/runtime-corejs2": "^7.14.8",
24
- "lodash": "^4.17.21",
25
- "@webex/internal-plugin-encryption": "2.29.3",
26
- "@webex/internal-plugin-conversation": "2.29.3",
27
- "@webex/webex-core": "2.29.3",
28
- "@webex/common": "2.29.3",
29
- "envify": "^4.1.0"
30
- }
2
+ "name": "@webex/internal-plugin-ediscovery",
3
+ "version": "2.29.5",
4
+ "description": "",
5
+ "license": "MIT",
6
+ "contributors": [
7
+ "Declan Ryan <decryan@cisco.com>",
8
+ "Shane Gannon <gannons@cisco.com>",
9
+ "Vincent Canning <vcanning@cisco.com>"
10
+ ],
11
+ "main": "dist/index.js",
12
+ "devMain": "src/index.js",
13
+ "repository": "https://github.com/webex/webex-js-sdk/tree/master/packages/@webex/ediscovery",
14
+ "engines": {
15
+ "node": ">=14"
16
+ },
17
+ "browserify": {
18
+ "transform": [
19
+ "babelify",
20
+ "envify"
21
+ ]
22
+ },
23
+ "devDependencies": {
24
+ "@webex/test-helper-chai": "workspace:^",
25
+ "@webex/test-helper-mock-webex": "workspace:^",
26
+ "@webex/test-helper-test-users": "workspace:^",
27
+ "sinon": "^9.2.4"
28
+ },
29
+ "dependencies": {
30
+ "@webex/common": "workspace:^",
31
+ "@webex/internal-plugin-conversation": "workspace:^",
32
+ "@webex/internal-plugin-ediscovery": "workspace:^",
33
+ "@webex/internal-plugin-encryption": "workspace:^",
34
+ "@webex/internal-plugin-mercury": "workspace:^",
35
+ "@webex/webex-core": "workspace:^",
36
+ "lodash": "^4.17.21",
37
+ "uuid": "^3.3.2"
38
+ }
31
39
  }
package/src/config.js CHANGED
@@ -1,6 +1,3 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
1
 
5
2
  export default {
6
3
  ediscovery: {
package/src/index.js CHANGED
@@ -156,6 +156,7 @@ registerInternalPlugin('ediscovery', EDiscovery, {
156
156
 
157
157
  export default EDiscovery;
158
158
 
159
+ // eslint-disable-next-line import/named
159
160
  export {config} from './config';
160
161
  export {default as ReportRequest} from './report-request';
161
162
  export {EdiscoveryError, InvalidEmailAddressError} from './ediscovery-error';
package/src/transforms.js CHANGED
@@ -6,7 +6,7 @@ import {requestWithRetries} from './retry';
6
6
  class Transforms {
7
7
  /**
8
8
  * This function is used to encrypt sensitive properties on the ReportRequest before it is sent to the eDiscovery Service createReport API
9
- * @param {Object} ctx - An object containg a webex instance and a transform
9
+ * @param {Object} ctx - An object containing a webex instance and a transform
10
10
  * @param {Object} object - Generic object that you want to encrypt some property on based on the type
11
11
  * @returns {Promise} - Returns a transform promise
12
12
  */
@@ -87,7 +87,7 @@ class Transforms {
87
87
 
88
88
  /**
89
89
  * This function is used to decrypt encrypted properties on the ReportRequest that is returned from the eDiscovery Service getReport(s) API
90
- * @param {Object} ctx - An object containg a webex instance and a transform
90
+ * @param {Object} ctx - An object containing a webex instance and a transform
91
91
  * @param {Object} object - Generic object that you want to decrypt some property on based on the type
92
92
  * @returns {Promise} - Returns a transform promise
93
93
  */
@@ -162,7 +162,7 @@ class Transforms {
162
162
 
163
163
  /**
164
164
  * This function is used to decrypt encrypted properties on the activities that are returned from the eDiscovery Service getContent API
165
- * @param {Object} ctx - An object containg a webex instance and a transform
165
+ * @param {Object} ctx - An object containing a webex instance and a transform
166
166
  * @param {Object} object - Generic object that you want to decrypt some property on based on the type
167
167
  * @param {String} reportId - Id of the report for which content is being retrieved
168
168
  * @returns {Promise} - Returns a transform promise