@webex/internal-plugin-conversation 3.0.0-beta.9 → 3.0.0-beta.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/activities.js +8 -69
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js +19 -79
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/config.js +1 -7
- package/dist/config.js.map +1 -1
- package/dist/constants.js +4 -5
- package/dist/constants.js.map +1 -1
- package/dist/conversation.js +790 -1199
- package/dist/conversation.js.map +1 -1
- package/dist/convo-error.js +0 -23
- package/dist/convo-error.js.map +1 -1
- package/dist/decryption-transforms.js +35 -98
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js +11 -48
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js +7 -50
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +40 -106
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js +9 -11
- package/dist/to-array.js.map +1 -1
- package/package.json +15 -15
- package/src/activities.js +10 -7
- package/src/activity-thread-ordering.js +27 -30
- package/src/activity-threading.md +68 -49
- package/src/config.js +5 -5
- package/src/conversation.js +621 -589
- package/src/decryption-transforms.js +103 -62
- package/src/encryption-transforms.js +103 -83
- package/src/index.js +82 -66
- package/src/share-activity.js +64 -55
- package/src/to-array.js +2 -2
- package/test/integration/spec/create.js +184 -118
- package/test/integration/spec/encryption.js +250 -186
- package/test/integration/spec/get.js +761 -513
- package/test/integration/spec/mercury.js +37 -27
- package/test/integration/spec/share.js +292 -229
- package/test/integration/spec/verbs.js +628 -441
- package/test/unit/spec/conversation.js +265 -163
- package/test/unit/spec/decrypt-transforms.js +112 -131
- package/test/unit/spec/encryption-transforms.js +24 -18
- package/test/unit/spec/share-activity.js +37 -40
package/dist/index.js
CHANGED
|
@@ -1,76 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
_Object$defineProperty(exports, "ConversationError", {
|
|
12
9
|
enumerable: true,
|
|
13
10
|
get: function get() {
|
|
14
11
|
return _convoError.ConversationError;
|
|
15
12
|
}
|
|
16
13
|
});
|
|
17
|
-
|
|
18
14
|
_Object$defineProperty(exports, "InvalidUserCreation", {
|
|
19
15
|
enumerable: true,
|
|
20
16
|
get: function get() {
|
|
21
17
|
return _convoError.InvalidUserCreation;
|
|
22
18
|
}
|
|
23
19
|
});
|
|
24
|
-
|
|
25
20
|
_Object$defineProperty(exports, "ShareActivity", {
|
|
26
21
|
enumerable: true,
|
|
27
22
|
get: function get() {
|
|
28
23
|
return _shareActivity.default;
|
|
29
24
|
}
|
|
30
25
|
});
|
|
31
|
-
|
|
32
26
|
_Object$defineProperty(exports, "default", {
|
|
33
27
|
enumerable: true,
|
|
34
28
|
get: function get() {
|
|
35
29
|
return _conversation.default;
|
|
36
30
|
}
|
|
37
31
|
});
|
|
38
|
-
|
|
39
32
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
40
|
-
|
|
41
33
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
42
|
-
|
|
43
34
|
var _has2 = _interopRequireDefault(require("lodash/has"));
|
|
44
|
-
|
|
45
35
|
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
46
|
-
|
|
47
36
|
var _capitalize2 = _interopRequireDefault(require("lodash/capitalize"));
|
|
48
|
-
|
|
49
37
|
require("@webex/internal-plugin-encryption");
|
|
50
|
-
|
|
51
38
|
require("@webex/internal-plugin-user");
|
|
52
|
-
|
|
53
39
|
var _common = require("@webex/common");
|
|
54
|
-
|
|
55
40
|
var _helperHtml = require("@webex/helper-html");
|
|
56
|
-
|
|
57
41
|
var _webexCore = require("@webex/webex-core");
|
|
58
|
-
|
|
59
42
|
var _conversation = _interopRequireDefault(require("./conversation"));
|
|
60
|
-
|
|
61
43
|
var _config = _interopRequireDefault(require("./config"));
|
|
62
|
-
|
|
63
44
|
var _encryptionTransforms = require("./encryption-transforms");
|
|
64
|
-
|
|
65
45
|
var _decryptionTransforms = require("./decryption-transforms");
|
|
66
|
-
|
|
67
46
|
var _shareActivity = _interopRequireDefault(require("./share-activity"));
|
|
68
|
-
|
|
69
47
|
var _convoError = require("./convo-error");
|
|
70
|
-
|
|
71
48
|
/*!
|
|
72
49
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
73
50
|
*/
|
|
51
|
+
|
|
74
52
|
(0, _webexCore.registerInternalPlugin)('conversation', _conversation.default, {
|
|
75
53
|
payloadTransformer: {
|
|
76
54
|
predicates: [{
|
|
@@ -108,11 +86,9 @@ var _convoError = require("./convo-error");
|
|
|
108
86
|
if (!(0, _has2.default)(options, 'body.items[0].objectType')) {
|
|
109
87
|
return _promise.default.resolve(false);
|
|
110
88
|
}
|
|
111
|
-
|
|
112
89
|
if ((0, _get2.default)(options, 'options.deferDecrypt')) {
|
|
113
90
|
return _promise.default.resolve(true);
|
|
114
91
|
}
|
|
115
|
-
|
|
116
92
|
return _promise.default.resolve(false);
|
|
117
93
|
},
|
|
118
94
|
extract: function extract(options) {
|
|
@@ -125,11 +101,9 @@ var _convoError = require("./convo-error");
|
|
|
125
101
|
if (!(0, _has2.default)(options, 'body.items[0].objectType')) {
|
|
126
102
|
return _promise.default.resolve(false);
|
|
127
103
|
}
|
|
128
|
-
|
|
129
104
|
if ((0, _get2.default)(options, 'options.deferDecrypt')) {
|
|
130
105
|
return _promise.default.resolve(false);
|
|
131
106
|
}
|
|
132
|
-
|
|
133
107
|
return _promise.default.resolve(true);
|
|
134
108
|
},
|
|
135
109
|
extract: function extract(options) {
|
|
@@ -142,11 +116,9 @@ var _convoError = require("./convo-error");
|
|
|
142
116
|
if (!(0, _has2.default)(options, 'body.items[0].childType') || !(0, _has2.default)(options, 'body.items[0].actorId')) {
|
|
143
117
|
return _promise.default.resolve(false);
|
|
144
118
|
}
|
|
145
|
-
|
|
146
119
|
if ((0, _get2.default)(options, 'options.deferDecrypt')) {
|
|
147
120
|
return _promise.default.resolve(false);
|
|
148
121
|
}
|
|
149
|
-
|
|
150
122
|
return _promise.default.resolve(true);
|
|
151
123
|
},
|
|
152
124
|
extract: function extract(options) {
|
|
@@ -162,7 +134,6 @@ var _convoError = require("./convo-error");
|
|
|
162
134
|
(0, _deleteProperty.default)(item, 'decrypt');
|
|
163
135
|
return ctx.transform('decryptObject', item);
|
|
164
136
|
};
|
|
165
|
-
|
|
166
137
|
return item;
|
|
167
138
|
});
|
|
168
139
|
}));
|
|
@@ -188,11 +159,9 @@ var _convoError = require("./convo-error");
|
|
|
188
159
|
if (!object) {
|
|
189
160
|
return _promise.default.resolve();
|
|
190
161
|
}
|
|
191
|
-
|
|
192
162
|
if (!object.objectType) {
|
|
193
163
|
return _promise.default.resolve();
|
|
194
164
|
}
|
|
195
|
-
|
|
196
165
|
return ctx.transform('normalizeObject', object).then(function () {
|
|
197
166
|
return ctx.transform('encryptObject', object);
|
|
198
167
|
}).then(function () {
|
|
@@ -206,11 +175,9 @@ var _convoError = require("./convo-error");
|
|
|
206
175
|
if (!object) {
|
|
207
176
|
return _promise.default.resolve();
|
|
208
177
|
}
|
|
209
|
-
|
|
210
178
|
if (!object.objectType) {
|
|
211
179
|
return _promise.default.resolve();
|
|
212
180
|
}
|
|
213
|
-
|
|
214
181
|
return ctx.transform('decryptObject', object).then(function () {
|
|
215
182
|
return ctx.transform('normalizeObject', object);
|
|
216
183
|
});
|
|
@@ -221,11 +188,9 @@ var _convoError = require("./convo-error");
|
|
|
221
188
|
if (!object) {
|
|
222
189
|
return _promise.default.resolve();
|
|
223
190
|
}
|
|
224
|
-
|
|
225
191
|
if (!object.objectType) {
|
|
226
192
|
return _promise.default.resolve();
|
|
227
193
|
}
|
|
228
|
-
|
|
229
194
|
return _promise.default.all([ctx.transform("normalize".concat((0, _capitalize2.default)(object.objectType)), object), ctx.transform('normalizePropContent', object)]);
|
|
230
195
|
}
|
|
231
196
|
}, {
|
|
@@ -235,7 +200,6 @@ var _convoError = require("./convo-error");
|
|
|
235
200
|
if (!object) {
|
|
236
201
|
return _promise.default.resolve();
|
|
237
202
|
}
|
|
238
|
-
|
|
239
203
|
return ctx.transform('decryptThread', object).then(function () {
|
|
240
204
|
return ctx.transform('normalizeThread', object);
|
|
241
205
|
});
|
|
@@ -247,11 +211,10 @@ var _convoError = require("./convo-error");
|
|
|
247
211
|
if (!object.content) {
|
|
248
212
|
return _promise.default.resolve();
|
|
249
213
|
}
|
|
250
|
-
|
|
251
214
|
var _ctx$webex$config$con = ctx.webex.config.conversation,
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
215
|
+
inboundProcessFunc = _ctx$webex$config$con.inboundProcessFunc,
|
|
216
|
+
allowedInboundTags = _ctx$webex$config$con.allowedInboundTags,
|
|
217
|
+
allowedInboundStyles = _ctx$webex$config$con.allowedInboundStyles;
|
|
255
218
|
return (0, _helperHtml.filter)(inboundProcessFunc, allowedInboundTags || {}, allowedInboundStyles, object.content).then(function (c) {
|
|
256
219
|
object.content = c;
|
|
257
220
|
});
|
|
@@ -263,11 +226,10 @@ var _convoError = require("./convo-error");
|
|
|
263
226
|
if (!object.content) {
|
|
264
227
|
return _promise.default.resolve();
|
|
265
228
|
}
|
|
266
|
-
|
|
267
229
|
var _ctx$webex$config$con2 = ctx.webex.config.conversation,
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
230
|
+
outboundProcessFunc = _ctx$webex$config$con2.outboundProcessFunc,
|
|
231
|
+
allowedOutboundTags = _ctx$webex$config$con2.allowedOutboundTags,
|
|
232
|
+
allowedOutboundStyles = _ctx$webex$config$con2.allowedOutboundStyles;
|
|
271
233
|
return (0, _helperHtml.filterEscape)(outboundProcessFunc, allowedOutboundTags || {}, allowedOutboundStyles, object.content).then(function (c) {
|
|
272
234
|
object.content = c;
|
|
273
235
|
});
|
|
@@ -304,27 +266,22 @@ var _convoError = require("./convo-error");
|
|
|
304
266
|
fn: function fn(ctx, person) {
|
|
305
267
|
var email = person.entryEmail || person.emailAddress || person.id;
|
|
306
268
|
var id = person.entryUUID || person.id;
|
|
307
|
-
|
|
308
269
|
if (_common.patterns.email.test(email)) {
|
|
309
270
|
person.entryEmail = person.emailAddress = email.toLowerCase();
|
|
310
271
|
} else {
|
|
311
272
|
(0, _deleteProperty.default)(person, 'entryEmail');
|
|
312
273
|
(0, _deleteProperty.default)(person, 'emailAddress');
|
|
313
274
|
}
|
|
314
|
-
|
|
315
275
|
if (person.roomProperties) {
|
|
316
276
|
person.roomProperties.isModerator = Boolean(person.roomProperties.isModerator);
|
|
317
277
|
}
|
|
318
|
-
|
|
319
278
|
if (_common.patterns.uuid.test(id)) {
|
|
320
279
|
person.entryUUID = person.id = id.toLowerCase();
|
|
321
280
|
return _promise.default.resolve(person);
|
|
322
281
|
}
|
|
323
|
-
|
|
324
282
|
if (!email) {
|
|
325
283
|
return _promise.default.reject(new Error('cannot determine id without an `emailAddress` or `entryUUID` property'));
|
|
326
284
|
}
|
|
327
|
-
|
|
328
285
|
return ctx.webex.internal.user.asUUID(email).then(function (uuid) {
|
|
329
286
|
person.entryUUID = person.id = uuid;
|
|
330
287
|
return person;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerInternalPlugin","Conversation","payloadTransformer","predicates","name","test","ctx","optionsOrResponse","resolve","extract","body","direction","event","activity","response","multistatus","map","item","data","options","items","transforms","fn","array","all","transform","then","decrypt","object","objectType","content","webex","config","conversation","inboundProcessFunc","allowedInboundTags","allowedInboundStyles","htmlFilter","c","outboundProcessFunc","allowedOutboundTags","allowedOutboundStyles","htmlFilterEscape","activities","participants","actor","target","threadActivity","childActivities","person","email","entryEmail","emailAddress","id","entryUUID","patterns","toLowerCase","roomProperties","isModerator","Boolean","uuid","reject","Error","internal","user","asUUID","concat","decryptionTransforms","encryptionTransforms"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-user';\n\nimport {patterns} from '@webex/common';\nimport {filter as htmlFilter, filterEscape as htmlFilterEscape} from '@webex/helper-html';\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {capitalize, get, has} from 'lodash';\n\nimport Conversation from './conversation';\nimport config from './config';\nimport {transforms as encryptionTransforms} from './encryption-transforms';\nimport {transforms as decryptionTransforms} from './decryption-transforms';\n\nregisterInternalPlugin('conversation', Conversation, {\n payloadTransformer: {\n predicates: [\n {\n name: 'transformObject',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'body.objectType'));\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.body);\n }\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n test(ctx, event) {\n return Promise.resolve(has(event, 'activity'));\n },\n extract(event) {\n return Promise.resolve(event.activity);\n }\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.multistatus'));\n },\n extract(response) {\n return Promise.resolve(response.body.multistatus.map((item) => item && item.data && item.data.activity));\n }\n },\n {\n name: 'normalizeConversationListAndBindDecrypters',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n }\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n }\n },\n {\n name: 'transformThreadArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].childType') || !has(options, 'body.items[0].actorId')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n }\n }\n ],\n transforms: [\n {\n name: 'normalizeConversationListAndBindDecrypters',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('normalizeObject', item)\n .then(() => {\n item.decrypt = function decrypt() {\n Reflect.deleteProperty(item, 'decrypt');\n\n return ctx.transform('decryptObject', item);\n };\n\n return item;\n })));\n }\n },\n {\n name: 'transformObjectArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformObject', item)));\n }\n },\n {\n name: 'transformThreadArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformThread', item)));\n }\n },\n {\n name: 'transformObject',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx.transform('normalizeObject', object)\n .then(() => ctx.transform('encryptObject', object))\n .then(() => ctx.transform('encryptKmsMessage', object));\n }\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx.transform('decryptObject', object)\n .then(() => ctx.transform('normalizeObject', object));\n }\n },\n {\n name: 'normalizeObject',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform(`normalize${capitalize(object.objectType)}`, object),\n ctx.transform('normalizePropContent', object)\n ]);\n }\n },\n {\n name: 'transformThread',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n return ctx.transform('decryptThread', object)\n .then(() => ctx.transform('normalizeThread', object));\n }\n },\n {\n name: 'normalizePropContent',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n const {\n inboundProcessFunc,\n allowedInboundTags,\n allowedInboundStyles\n } = ctx.webex.config.conversation;\n\n return htmlFilter(inboundProcessFunc, allowedInboundTags || {}, allowedInboundStyles, object.content)\n .then((c) => {\n object.content = c;\n });\n }\n },\n {\n name: 'normalizePropContent',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n\n const {\n outboundProcessFunc,\n allowedOutboundTags,\n allowedOutboundStyles\n } = ctx.webex.config.conversation;\n\n return htmlFilterEscape(outboundProcessFunc, allowedOutboundTags || {}, allowedOutboundStyles, object.content)\n .then((c) => {\n object.content = c;\n });\n }\n },\n {\n name: 'normalizeConversation',\n fn(ctx, conversation) {\n conversation.activities = conversation.activities || {};\n conversation.activities.items = conversation.activities.items || [];\n conversation.participants = conversation.participants || {};\n conversation.participants.items = conversation.participants.items || [];\n\n return Promise.all([\n Promise.all(conversation.activities.items.map((item) => ctx.transform('normalizeObject', item))),\n Promise.all(conversation.participants.items.map((item) => ctx.transform('normalizeObject', item)))\n ]);\n }\n },\n {\n name: 'normalizeActivity',\n fn(ctx, activity) {\n return Promise.all([\n ctx.transform('normalizeObject', activity.actor),\n ctx.transform('normalizeObject', activity.object),\n ctx.transform('normalizeObject', activity.target)\n ]);\n }\n },\n {\n name: 'normalizeThread',\n fn(ctx, threadActivity) {\n // childActivities are of type Activity\n return Promise.all(threadActivity.childActivities.map((item) => ctx.transform('normalizeObject', item)));\n }\n },\n {\n name: 'normalizePerson',\n // eslint-disable-next-line complexity\n fn(ctx, person) {\n const email = person.entryEmail || person.emailAddress || person.id;\n const id = person.entryUUID || person.id;\n\n if (patterns.email.test(email)) {\n person.entryEmail = person.emailAddress = email.toLowerCase();\n }\n else {\n Reflect.deleteProperty(person, 'entryEmail');\n Reflect.deleteProperty(person, 'emailAddress');\n }\n\n if (person.roomProperties) {\n person.roomProperties.isModerator = Boolean(person.roomProperties.isModerator);\n }\n\n if (patterns.uuid.test(id)) {\n person.entryUUID = person.id = id.toLowerCase();\n\n return Promise.resolve(person);\n }\n\n if (!email) {\n return Promise.reject(new Error('cannot determine id without an `emailAddress` or `entryUUID` property'));\n }\n\n return ctx.webex.internal.user.asUUID(email)\n .then((uuid) => {\n person.entryUUID = person.id = uuid;\n\n return person;\n });\n }\n }\n ]\n .concat(decryptionTransforms)\n .concat(encryptionTransforms)\n },\n config\n});\n\nexport {default} from './conversation';\nexport {default as ShareActivity} from './share-activity';\nexport {ConversationError, InvalidUserCreation} from './convo-error';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["registerInternalPlugin","Conversation","payloadTransformer","predicates","name","test","ctx","optionsOrResponse","resolve","extract","body","direction","event","activity","response","multistatus","map","item","data","options","items","transforms","fn","array","all","transform","then","decrypt","object","objectType","content","webex","config","conversation","inboundProcessFunc","allowedInboundTags","allowedInboundStyles","htmlFilter","c","outboundProcessFunc","allowedOutboundTags","allowedOutboundStyles","htmlFilterEscape","activities","participants","actor","target","threadActivity","childActivities","person","email","entryEmail","emailAddress","id","entryUUID","patterns","toLowerCase","roomProperties","isModerator","Boolean","uuid","reject","Error","internal","user","asUUID","concat","decryptionTransforms","encryptionTransforms"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-user';\n\nimport {patterns} from '@webex/common';\nimport {filter as htmlFilter, filterEscape as htmlFilterEscape} from '@webex/helper-html';\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {capitalize, get, has} from 'lodash';\n\nimport Conversation from './conversation';\nimport config from './config';\nimport {transforms as encryptionTransforms} from './encryption-transforms';\nimport {transforms as decryptionTransforms} from './decryption-transforms';\n\nregisterInternalPlugin('conversation', Conversation, {\n payloadTransformer: {\n predicates: [\n {\n name: 'transformObject',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'body.objectType'));\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.body);\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n test(ctx, event) {\n return Promise.resolve(has(event, 'activity'));\n },\n extract(event) {\n return Promise.resolve(event.activity);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.multistatus'));\n },\n extract(response) {\n return Promise.resolve(\n response.body.multistatus.map((item) => item && item.data && item.data.activity)\n );\n },\n },\n {\n name: 'normalizeConversationListAndBindDecrypters',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].objectType')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n {\n name: 'transformThreadArray',\n direction: 'inbound',\n test(ctx, options) {\n if (!has(options, 'body.items[0].childType') || !has(options, 'body.items[0].actorId')) {\n return Promise.resolve(false);\n }\n\n if (get(options, 'options.deferDecrypt')) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n extract(options) {\n return Promise.resolve(options.body.items);\n },\n },\n ],\n transforms: [\n {\n name: 'normalizeConversationListAndBindDecrypters',\n fn(ctx, array) {\n return Promise.all(\n array.map((item) =>\n ctx.transform('normalizeObject', item).then(() => {\n item.decrypt = function decrypt() {\n Reflect.deleteProperty(item, 'decrypt');\n\n return ctx.transform('decryptObject', item);\n };\n\n return item;\n })\n )\n );\n },\n },\n {\n name: 'transformObjectArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformObject', item)));\n },\n },\n {\n name: 'transformThreadArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformThread', item)));\n },\n },\n {\n name: 'transformObject',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('normalizeObject', object)\n .then(() => ctx.transform('encryptObject', object))\n .then(() => ctx.transform('encryptKmsMessage', object));\n },\n },\n {\n name: 'transformObject',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptObject', object)\n .then(() => ctx.transform('normalizeObject', object));\n },\n },\n {\n name: 'normalizeObject',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.objectType) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform(`normalize${capitalize(object.objectType)}`, object),\n ctx.transform('normalizePropContent', object),\n ]);\n },\n },\n {\n name: 'transformThread',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n return ctx\n .transform('decryptThread', object)\n .then(() => ctx.transform('normalizeThread', object));\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n const {inboundProcessFunc, allowedInboundTags, allowedInboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilter(\n inboundProcessFunc,\n allowedInboundTags || {},\n allowedInboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizePropContent',\n direction: 'outbound',\n fn(ctx, object) {\n if (!object.content) {\n return Promise.resolve();\n }\n\n const {outboundProcessFunc, allowedOutboundTags, allowedOutboundStyles} =\n ctx.webex.config.conversation;\n\n return htmlFilterEscape(\n outboundProcessFunc,\n allowedOutboundTags || {},\n allowedOutboundStyles,\n object.content\n ).then((c) => {\n object.content = c;\n });\n },\n },\n {\n name: 'normalizeConversation',\n fn(ctx, conversation) {\n conversation.activities = conversation.activities || {};\n conversation.activities.items = conversation.activities.items || [];\n conversation.participants = conversation.participants || {};\n conversation.participants.items = conversation.participants.items || [];\n\n return Promise.all([\n Promise.all(\n conversation.activities.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n Promise.all(\n conversation.participants.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n ]);\n },\n },\n {\n name: 'normalizeActivity',\n fn(ctx, activity) {\n return Promise.all([\n ctx.transform('normalizeObject', activity.actor),\n ctx.transform('normalizeObject', activity.object),\n ctx.transform('normalizeObject', activity.target),\n ]);\n },\n },\n {\n name: 'normalizeThread',\n fn(ctx, threadActivity) {\n // childActivities are of type Activity\n return Promise.all(\n threadActivity.childActivities.map((item) => ctx.transform('normalizeObject', item))\n );\n },\n },\n {\n name: 'normalizePerson',\n // eslint-disable-next-line complexity\n fn(ctx, person) {\n const email = person.entryEmail || person.emailAddress || person.id;\n const id = person.entryUUID || person.id;\n\n if (patterns.email.test(email)) {\n person.entryEmail = person.emailAddress = email.toLowerCase();\n } else {\n Reflect.deleteProperty(person, 'entryEmail');\n Reflect.deleteProperty(person, 'emailAddress');\n }\n\n if (person.roomProperties) {\n person.roomProperties.isModerator = Boolean(person.roomProperties.isModerator);\n }\n\n if (patterns.uuid.test(id)) {\n person.entryUUID = person.id = id.toLowerCase();\n\n return Promise.resolve(person);\n }\n\n if (!email) {\n return Promise.reject(\n new Error('cannot determine id without an `emailAddress` or `entryUUID` property')\n );\n }\n\n return ctx.webex.internal.user.asUUID(email).then((uuid) => {\n person.entryUUID = person.id = uuid;\n\n return person;\n });\n },\n },\n ]\n .concat(decryptionTransforms)\n .concat(encryptionTransforms),\n },\n config,\n});\n\nexport {default} from './conversation';\nexport {default as ShareActivity} from './share-activity';\nexport {ConversationError, InvalidUserCreation} from './convo-error';\n"],"mappings":"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"}
|