@webex/internal-plugin-search 3.0.0-beta.15 → 3.0.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +0 -3
- package/dist/config.js.map +1 -1
- package/dist/index.js +1 -18
- package/dist/index.js.map +1 -1
- package/dist/search.js +4 -33
- package/dist/search.js.map +1 -1
- package/package.json +10 -10
package/dist/config.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
|
|
9
7
|
exports.default = void 0;
|
|
10
|
-
|
|
11
8
|
/*!
|
|
12
9
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
13
10
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["search"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n search: {},\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["search"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n search: {},\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,eAIe;EACbA,MAAM,EAAE,CAAC;AACX,CAAC;AAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,37 +1,27 @@
|
|
|
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, "default", {
|
|
12
9
|
enumerable: true,
|
|
13
10
|
get: function get() {
|
|
14
11
|
return _search.default;
|
|
15
12
|
}
|
|
16
13
|
});
|
|
17
|
-
|
|
18
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
19
|
-
|
|
20
15
|
var _has2 = _interopRequireDefault(require("lodash/has"));
|
|
21
|
-
|
|
22
16
|
require("@webex/internal-plugin-conversation");
|
|
23
|
-
|
|
24
17
|
require("@webex/internal-plugin-encryption");
|
|
25
|
-
|
|
26
18
|
var _webexCore = require("@webex/webex-core");
|
|
27
|
-
|
|
28
19
|
var _search = _interopRequireDefault(require("./search"));
|
|
29
|
-
|
|
30
20
|
var _config = _interopRequireDefault(require("./config"));
|
|
31
|
-
|
|
32
21
|
/*!
|
|
33
22
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
34
23
|
*/
|
|
24
|
+
|
|
35
25
|
(0, _webexCore.registerInternalPlugin)('search', _search.default, {
|
|
36
26
|
config: _config.default,
|
|
37
27
|
payloadTransformer: {
|
|
@@ -42,20 +32,16 @@ var _config = _interopRequireDefault(require("./config"));
|
|
|
42
32
|
if (!(0, _has2.default)(options, 'body.query')) {
|
|
43
33
|
return _promise.default.resolve(false);
|
|
44
34
|
}
|
|
45
|
-
|
|
46
35
|
if (!(0, _has2.default)(options, 'body.searchEncryptionKeyUrl')) {
|
|
47
36
|
return _promise.default.resolve(false);
|
|
48
37
|
}
|
|
49
|
-
|
|
50
38
|
if (options.service === 'argonaut') {
|
|
51
39
|
return _promise.default.resolve(true);
|
|
52
40
|
}
|
|
53
|
-
|
|
54
41
|
if (options.url) {
|
|
55
42
|
var service = ctx.webex.internal.services.getServiceFromUrl(options.url);
|
|
56
43
|
return _promise.default.resolve(service && service.name === 'argonaut');
|
|
57
44
|
}
|
|
58
|
-
|
|
59
45
|
return _promise.default.resolve(false);
|
|
60
46
|
},
|
|
61
47
|
extract: function extract(options) {
|
|
@@ -69,16 +55,13 @@ var _config = _interopRequireDefault(require("./config"));
|
|
|
69
55
|
if (!res) {
|
|
70
56
|
return _promise.default.resolve(false);
|
|
71
57
|
}
|
|
72
|
-
|
|
73
58
|
if (response.options.service === 'argonaut') {
|
|
74
59
|
return _promise.default.resolve(true);
|
|
75
60
|
}
|
|
76
|
-
|
|
77
61
|
if (response.options.url) {
|
|
78
62
|
var service = ctx.webex.internal.services.getServiceFromUrl(response.options.url);
|
|
79
63
|
return _promise.default.resolve(service && service.name === 'argonaut');
|
|
80
64
|
}
|
|
81
|
-
|
|
82
65
|
return _promise.default.resolve(false);
|
|
83
66
|
});
|
|
84
67
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerInternalPlugin","Search","config","payloadTransformer","predicates","name","direction","test","ctx","options","resolve","service","url","webex","internal","services","getServiceFromUrl","extract","body","response","then","res","activities","items","transforms","fn","object","encryption","encryptText","searchEncryptionKeyUrl","query","q"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-encryption';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport Search from './search';\nimport config from './config';\n\nregisterInternalPlugin('search', Search, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'encryptSearchQuery',\n direction: 'outbound',\n test(ctx, options) {\n if (!has(options, 'body.query')) {\n return Promise.resolve(false);\n }\n\n if (!has(options, 'body.searchEncryptionKeyUrl')) {\n return Promise.resolve(false);\n }\n\n if (options.service === 'argonaut') {\n return Promise.resolve(true);\n }\n\n if (options.url) {\n const service = ctx.webex.internal.services.getServiceFromUrl(options.url);\n\n return Promise.resolve(service && service.name === 'argonaut');\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.activities.items[0].objectType')).then(\n (res) => {\n if (!res) {\n return Promise.resolve(false);\n }\n\n if (response.options.service === 'argonaut') {\n return Promise.resolve(true);\n }\n\n if (response.options.url) {\n const service = ctx.webex.internal.services.getServiceFromUrl(response.options.url);\n\n return Promise.resolve(service && service.name === 'argonaut');\n }\n\n return Promise.resolve(false);\n }\n );\n },\n extract(response) {\n return Promise.resolve(response.body.activities.items);\n },\n },\n ],\n transforms: [\n {\n name: 'encryptSearchQuery',\n direction: 'outbound',\n fn(ctx, object) {\n return ctx.webex.internal.encryption\n .encryptText(object.searchEncryptionKeyUrl, object.query)\n .then((q) => {\n object.query = q;\n });\n },\n },\n ],\n },\n});\n\nexport {default} from './search';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["registerInternalPlugin","Search","config","payloadTransformer","predicates","name","direction","test","ctx","options","resolve","service","url","webex","internal","services","getServiceFromUrl","extract","body","response","then","res","activities","items","transforms","fn","object","encryption","encryptText","searchEncryptionKeyUrl","query","q"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-encryption';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport Search from './search';\nimport config from './config';\n\nregisterInternalPlugin('search', Search, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'encryptSearchQuery',\n direction: 'outbound',\n test(ctx, options) {\n if (!has(options, 'body.query')) {\n return Promise.resolve(false);\n }\n\n if (!has(options, 'body.searchEncryptionKeyUrl')) {\n return Promise.resolve(false);\n }\n\n if (options.service === 'argonaut') {\n return Promise.resolve(true);\n }\n\n if (options.url) {\n const service = ctx.webex.internal.services.getServiceFromUrl(options.url);\n\n return Promise.resolve(service && service.name === 'argonaut');\n }\n\n return Promise.resolve(false);\n },\n extract(options) {\n return Promise.resolve(options.body);\n },\n },\n {\n name: 'transformObjectArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.activities.items[0].objectType')).then(\n (res) => {\n if (!res) {\n return Promise.resolve(false);\n }\n\n if (response.options.service === 'argonaut') {\n return Promise.resolve(true);\n }\n\n if (response.options.url) {\n const service = ctx.webex.internal.services.getServiceFromUrl(response.options.url);\n\n return Promise.resolve(service && service.name === 'argonaut');\n }\n\n return Promise.resolve(false);\n }\n );\n },\n extract(response) {\n return Promise.resolve(response.body.activities.items);\n },\n },\n ],\n transforms: [\n {\n name: 'encryptSearchQuery',\n direction: 'outbound',\n fn(ctx, object) {\n return ctx.webex.internal.encryption\n .encryptText(object.searchEncryptionKeyUrl, object.query)\n .then((q) => {\n object.query = q;\n });\n },\n },\n ],\n },\n});\n\nexport {default} from './search';\n"],"mappings":";;;;;;;;;;;;;;;AAGA;AACA;AAEA;AAGA;AACA;AAVA;AACA;AACA;;AAUA,IAAAA,iCAAsB,EAAC,QAAQ,EAAEC,eAAM,EAAE;EACvCC,MAAM,EAANA,eAAM;EACNC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,CACV;MACEC,IAAI,EAAE,oBAAoB;MAC1BC,SAAS,EAAE,UAAU;MACrBC,IAAI,gBAACC,GAAG,EAAEC,OAAO,EAAE;QACjB,IAAI,CAAC,mBAAIA,OAAO,EAAE,YAAY,CAAC,EAAE;UAC/B,OAAO,iBAAQC,OAAO,CAAC,KAAK,CAAC;QAC/B;QAEA,IAAI,CAAC,mBAAID,OAAO,EAAE,6BAA6B,CAAC,EAAE;UAChD,OAAO,iBAAQC,OAAO,CAAC,KAAK,CAAC;QAC/B;QAEA,IAAID,OAAO,CAACE,OAAO,KAAK,UAAU,EAAE;UAClC,OAAO,iBAAQD,OAAO,CAAC,IAAI,CAAC;QAC9B;QAEA,IAAID,OAAO,CAACG,GAAG,EAAE;UACf,IAAMD,OAAO,GAAGH,GAAG,CAACK,KAAK,CAACC,QAAQ,CAACC,QAAQ,CAACC,iBAAiB,CAACP,OAAO,CAACG,GAAG,CAAC;UAE1E,OAAO,iBAAQF,OAAO,CAACC,OAAO,IAAIA,OAAO,CAACN,IAAI,KAAK,UAAU,CAAC;QAChE;QAEA,OAAO,iBAAQK,OAAO,CAAC,KAAK,CAAC;MAC/B,CAAC;MACDO,OAAO,mBAACR,OAAO,EAAE;QACf,OAAO,iBAAQC,OAAO,CAACD,OAAO,CAACS,IAAI,CAAC;MACtC;IACF,CAAC,EACD;MACEb,IAAI,EAAE,sBAAsB;MAC5BC,SAAS,EAAE,SAAS;MACpBC,IAAI,gBAACC,GAAG,EAAEW,QAAQ,EAAE;QAClB,OAAO,iBAAQT,OAAO,CAAC,mBAAIS,QAAQ,EAAE,qCAAqC,CAAC,CAAC,CAACC,IAAI,CAC/E,UAACC,GAAG,EAAK;UACP,IAAI,CAACA,GAAG,EAAE;YACR,OAAO,iBAAQX,OAAO,CAAC,KAAK,CAAC;UAC/B;UAEA,IAAIS,QAAQ,CAACV,OAAO,CAACE,OAAO,KAAK,UAAU,EAAE;YAC3C,OAAO,iBAAQD,OAAO,CAAC,IAAI,CAAC;UAC9B;UAEA,IAAIS,QAAQ,CAACV,OAAO,CAACG,GAAG,EAAE;YACxB,IAAMD,OAAO,GAAGH,GAAG,CAACK,KAAK,CAACC,QAAQ,CAACC,QAAQ,CAACC,iBAAiB,CAACG,QAAQ,CAACV,OAAO,CAACG,GAAG,CAAC;YAEnF,OAAO,iBAAQF,OAAO,CAACC,OAAO,IAAIA,OAAO,CAACN,IAAI,KAAK,UAAU,CAAC;UAChE;UAEA,OAAO,iBAAQK,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC,CACF;MACH,CAAC;MACDO,OAAO,mBAACE,QAAQ,EAAE;QAChB,OAAO,iBAAQT,OAAO,CAACS,QAAQ,CAACD,IAAI,CAACI,UAAU,CAACC,KAAK,CAAC;MACxD;IACF,CAAC,CACF;IACDC,UAAU,EAAE,CACV;MACEnB,IAAI,EAAE,oBAAoB;MAC1BC,SAAS,EAAE,UAAU;MACrBmB,EAAE,cAACjB,GAAG,EAAEkB,MAAM,EAAE;QACd,OAAOlB,GAAG,CAACK,KAAK,CAACC,QAAQ,CAACa,UAAU,CACjCC,WAAW,CAACF,MAAM,CAACG,sBAAsB,EAAEH,MAAM,CAACI,KAAK,CAAC,CACxDV,IAAI,CAAC,UAACW,CAAC,EAAK;UACXL,MAAM,CAACI,KAAK,GAAGC,CAAC;QAClB,CAAC,CAAC;MACN;IACF,CAAC;EAEL;AACF,CAAC,CAAC"}
|
package/dist/search.js
CHANGED
|
@@ -1,51 +1,33 @@
|
|
|
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
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
14
|
-
|
|
15
10
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
-
|
|
17
11
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
18
|
-
|
|
19
12
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
20
|
-
|
|
21
13
|
var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
|
|
22
|
-
|
|
23
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
24
|
-
|
|
25
15
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
|
|
26
|
-
|
|
27
16
|
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
28
|
-
|
|
29
17
|
var _common = require("@webex/common");
|
|
30
|
-
|
|
31
18
|
var _webexCore = require("@webex/webex-core");
|
|
32
|
-
|
|
33
19
|
var _obj;
|
|
34
|
-
|
|
35
20
|
var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
36
21
|
namespace: 'Search',
|
|
37
22
|
people: function people(options) {
|
|
38
23
|
options = options || {};
|
|
39
|
-
|
|
40
24
|
if (!options.queryString && options.query) {
|
|
41
25
|
options.queryString = options.query;
|
|
42
26
|
(0, _deleteProperty.default)(options, 'query');
|
|
43
27
|
}
|
|
44
|
-
|
|
45
28
|
if (!options.queryString) {
|
|
46
29
|
return _promise.default.reject(new Error('`options.query` is required'));
|
|
47
30
|
}
|
|
48
|
-
|
|
49
31
|
return this.request({
|
|
50
32
|
api: 'argonaut',
|
|
51
33
|
resource: 'directory',
|
|
@@ -57,13 +39,11 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
57
39
|
},
|
|
58
40
|
bindSearchKey: function bindSearchKey() {
|
|
59
41
|
var _this = this;
|
|
60
|
-
|
|
61
42
|
return this.webex.internal.encryption.kms.createUnboundKeys({
|
|
62
43
|
count: 1
|
|
63
44
|
}).then(function (_ref) {
|
|
64
45
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
|
|
65
|
-
|
|
66
|
-
|
|
46
|
+
key = _ref2[0];
|
|
67
47
|
return _this.webex.internal.encryption.kms.createResource({
|
|
68
48
|
key: key,
|
|
69
49
|
userIds: [_this.webex.internal.device.userId]
|
|
@@ -72,7 +52,6 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
72
52
|
});
|
|
73
53
|
});
|
|
74
54
|
},
|
|
75
|
-
|
|
76
55
|
/**
|
|
77
56
|
* Fetches search result activities
|
|
78
57
|
* @param {Object} options
|
|
@@ -82,16 +61,12 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
82
61
|
*/
|
|
83
62
|
search: function search(options) {
|
|
84
63
|
var _this2 = this;
|
|
85
|
-
|
|
86
64
|
/* eslint max-nested-callbacks: [0] */
|
|
87
65
|
options = options || {};
|
|
88
|
-
|
|
89
66
|
var promise = _promise.default.resolve();
|
|
90
|
-
|
|
91
67
|
if (!this.webex.internal.device.searchEncryptionKeyUrl) {
|
|
92
68
|
promise = this.bindSearchKey();
|
|
93
69
|
}
|
|
94
|
-
|
|
95
70
|
return promise.then(function () {
|
|
96
71
|
return _this2.webex.request({
|
|
97
72
|
service: 'argonaut',
|
|
@@ -103,7 +78,6 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
103
78
|
});
|
|
104
79
|
}).then(function (res) {
|
|
105
80
|
var resActivities = (0, _get2.default)(res, 'body.activities.items', []);
|
|
106
|
-
|
|
107
81
|
if (options.includeRemoteClusterReferences && res.body.breadcrumbs) {
|
|
108
82
|
var breadcrumbs = res.body.breadcrumbs;
|
|
109
83
|
var promises = [];
|
|
@@ -112,16 +86,15 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
112
86
|
var editedCluster = "".concat(cluster, ":identityLookup");
|
|
113
87
|
var clusterActivityUrls = breadcrumbs[cluster].items.map(function (activity) {
|
|
114
88
|
return activity.activityUrl;
|
|
115
|
-
});
|
|
89
|
+
});
|
|
116
90
|
|
|
91
|
+
// Find activities per cluster
|
|
117
92
|
var bulkActivitiesPromise = _this2.webex.internal.conversation.bulkActivitiesFetch(clusterActivityUrls, {
|
|
118
93
|
cluster: editedCluster
|
|
119
94
|
}).catch(function (err) {
|
|
120
95
|
_this2.logger.warn('search: error fetching from remote clusters', err);
|
|
121
|
-
|
|
122
96
|
return _promise.default.resolve([]);
|
|
123
97
|
});
|
|
124
|
-
|
|
125
98
|
promises.push(bulkActivitiesPromise);
|
|
126
99
|
});
|
|
127
100
|
return _promise.default.all(promises).then(function (clusterResults) {
|
|
@@ -130,13 +103,11 @@ var Search = _webexCore.WebexPlugin.extend((_obj = {
|
|
|
130
103
|
}, resActivities);
|
|
131
104
|
});
|
|
132
105
|
}
|
|
133
|
-
|
|
134
106
|
return resActivities;
|
|
135
107
|
});
|
|
136
108
|
},
|
|
137
|
-
version: "3.0.0-beta.
|
|
109
|
+
version: "3.0.0-beta.16"
|
|
138
110
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "bindSearchKey", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "bindSearchKey"), _obj)), _obj));
|
|
139
|
-
|
|
140
111
|
var _default = Search;
|
|
141
112
|
exports.default = _default;
|
|
142
113
|
//# sourceMappingURL=search.js.map
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Search","WebexPlugin","extend","namespace","people","options","queryString","query","reject","Error","request","api","resource","method","body","then","res","bindSearchKey","webex","internal","encryption","kms","createUnboundKeys","count","key","createResource","userIds","device","userId","set","uri","search","promise","resolve","searchEncryptionKeyUrl","service","resActivities","includeRemoteClusterReferences","breadcrumbs","promises","forEach","cluster","editedCluster","clusterActivityUrls","items","map","activity","activityUrl","bulkActivitiesPromise","conversation","bulkActivitiesFetch","catch","err","logger","warn","push","all","clusterResults","reduce","accumulator","clusterResult","concat","oneFlight"],"sources":["search.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {get} from 'lodash';\nimport {oneFlight} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst Search = WebexPlugin.extend({\n namespace: 'Search',\n\n people(options) {\n options = options || {};\n\n if (!options.queryString && options.query) {\n options.queryString = options.query;\n Reflect.deleteProperty(options, 'query');\n }\n\n if (!options.queryString) {\n return Promise.reject(new Error('`options.query` is required'));\n }\n\n return this.request({\n api: 'argonaut',\n resource: 'directory',\n method: 'POST',\n body: options,\n }).then((res) => res.body);\n },\n\n @oneFlight\n bindSearchKey() {\n return this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then(([key]) =>\n this.webex.internal.encryption.kms\n .createResource({\n key,\n userIds: [this.webex.internal.device.userId],\n })\n .then(() => this.webex.internal.device.set('searchEncryptionKeyUrl', key.uri))\n );\n },\n\n /**\n * Fetches search result activities\n * @param {Object} options\n * @param {boolean} options.includeRemoteClusterReferences when true,\n * includes search results from remote clusters\n * @returns {Promise<Array>} Resolves with the activities\n */\n search(options) {\n /* eslint max-nested-callbacks: [0] */\n options = options || {};\n\n let promise = Promise.resolve();\n\n if (!this.webex.internal.device.searchEncryptionKeyUrl) {\n promise = this.bindSearchKey();\n }\n\n return promise\n .then(() =>\n this.webex.request({\n service: 'argonaut',\n resource: 'search',\n method: 'POST',\n body: Object.assign(options, {\n searchEncryptionKeyUrl: this.webex.internal.device.searchEncryptionKeyUrl,\n }),\n })\n )\n .then((res) => {\n const resActivities = get(res, 'body.activities.items', []);\n\n if (options.includeRemoteClusterReferences && res.body.breadcrumbs) {\n const {breadcrumbs} = res.body;\n const promises = [];\n\n Object.keys(breadcrumbs).forEach((cluster) => {\n // Map activity URLs to their cluster\n const editedCluster = `${cluster}:identityLookup`;\n const clusterActivityUrls = breadcrumbs[cluster].items.map(\n (activity) => activity.activityUrl\n );\n\n // Find activities per cluster\n const bulkActivitiesPromise = this.webex.internal.conversation\n .bulkActivitiesFetch(clusterActivityUrls, {cluster: editedCluster})\n .catch((err) => {\n this.logger.warn('search: error fetching from remote clusters', err);\n\n return Promise.resolve([]);\n });\n\n promises.push(bulkActivitiesPromise);\n });\n\n return Promise.all(promises).then((clusterResults) =>\n clusterResults.reduce(\n (accumulator, clusterResult) => accumulator.concat(clusterResult),\n resActivities\n )\n );\n }\n\n return resActivities;\n });\n },\n});\n\nexport default Search;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Search","WebexPlugin","extend","namespace","people","options","queryString","query","reject","Error","request","api","resource","method","body","then","res","bindSearchKey","webex","internal","encryption","kms","createUnboundKeys","count","key","createResource","userIds","device","userId","set","uri","search","promise","resolve","searchEncryptionKeyUrl","service","resActivities","includeRemoteClusterReferences","breadcrumbs","promises","forEach","cluster","editedCluster","clusterActivityUrls","items","map","activity","activityUrl","bulkActivitiesPromise","conversation","bulkActivitiesFetch","catch","err","logger","warn","push","all","clusterResults","reduce","accumulator","clusterResult","concat","oneFlight"],"sources":["search.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {get} from 'lodash';\nimport {oneFlight} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst Search = WebexPlugin.extend({\n namespace: 'Search',\n\n people(options) {\n options = options || {};\n\n if (!options.queryString && options.query) {\n options.queryString = options.query;\n Reflect.deleteProperty(options, 'query');\n }\n\n if (!options.queryString) {\n return Promise.reject(new Error('`options.query` is required'));\n }\n\n return this.request({\n api: 'argonaut',\n resource: 'directory',\n method: 'POST',\n body: options,\n }).then((res) => res.body);\n },\n\n @oneFlight\n bindSearchKey() {\n return this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then(([key]) =>\n this.webex.internal.encryption.kms\n .createResource({\n key,\n userIds: [this.webex.internal.device.userId],\n })\n .then(() => this.webex.internal.device.set('searchEncryptionKeyUrl', key.uri))\n );\n },\n\n /**\n * Fetches search result activities\n * @param {Object} options\n * @param {boolean} options.includeRemoteClusterReferences when true,\n * includes search results from remote clusters\n * @returns {Promise<Array>} Resolves with the activities\n */\n search(options) {\n /* eslint max-nested-callbacks: [0] */\n options = options || {};\n\n let promise = Promise.resolve();\n\n if (!this.webex.internal.device.searchEncryptionKeyUrl) {\n promise = this.bindSearchKey();\n }\n\n return promise\n .then(() =>\n this.webex.request({\n service: 'argonaut',\n resource: 'search',\n method: 'POST',\n body: Object.assign(options, {\n searchEncryptionKeyUrl: this.webex.internal.device.searchEncryptionKeyUrl,\n }),\n })\n )\n .then((res) => {\n const resActivities = get(res, 'body.activities.items', []);\n\n if (options.includeRemoteClusterReferences && res.body.breadcrumbs) {\n const {breadcrumbs} = res.body;\n const promises = [];\n\n Object.keys(breadcrumbs).forEach((cluster) => {\n // Map activity URLs to their cluster\n const editedCluster = `${cluster}:identityLookup`;\n const clusterActivityUrls = breadcrumbs[cluster].items.map(\n (activity) => activity.activityUrl\n );\n\n // Find activities per cluster\n const bulkActivitiesPromise = this.webex.internal.conversation\n .bulkActivitiesFetch(clusterActivityUrls, {cluster: editedCluster})\n .catch((err) => {\n this.logger.warn('search: error fetching from remote clusters', err);\n\n return Promise.resolve([]);\n });\n\n promises.push(bulkActivitiesPromise);\n });\n\n return Promise.all(promises).then((clusterResults) =>\n clusterResults.reduce(\n (accumulator, clusterResult) => accumulator.concat(clusterResult),\n resActivities\n )\n );\n }\n\n return resActivities;\n });\n },\n});\n\nexport default Search;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-search",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Michael Wegman <mwegman@cisco.com>",
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
]
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
25
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
26
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
24
|
+
"@webex/test-helper-chai": "3.0.0-beta.16",
|
|
25
|
+
"@webex/test-helper-retry": "3.0.0-beta.16",
|
|
26
|
+
"@webex/test-helper-test-users": "3.0.0-beta.16"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@webex/common": "3.0.0-beta.
|
|
30
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
31
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
32
|
-
"@webex/internal-plugin-encryption": "3.0.0-beta.
|
|
33
|
-
"@webex/internal-plugin-search": "3.0.0-beta.
|
|
34
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
29
|
+
"@webex/common": "3.0.0-beta.16",
|
|
30
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.16",
|
|
31
|
+
"@webex/internal-plugin-device": "3.0.0-beta.16",
|
|
32
|
+
"@webex/internal-plugin-encryption": "3.0.0-beta.16",
|
|
33
|
+
"@webex/internal-plugin-search": "3.0.0-beta.16",
|
|
34
|
+
"@webex/webex-core": "3.0.0-beta.16",
|
|
35
35
|
"lodash": "^4.17.21",
|
|
36
36
|
"uuid": "^3.3.2"
|
|
37
37
|
}
|