@webex/internal-plugin-user 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 -8
- package/dist/index.js.map +1 -1
- package/dist/user-uuid-batcher.js +4 -21
- package/dist/user-uuid-batcher.js.map +1 -1
- package/dist/user-uuid-store.js +5 -36
- package/dist/user-uuid-store.js.map +1 -1
- package/dist/user.js +7 -86
- package/dist/user.js.map +1 -1
- package/package.json +8 -8
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":["device","preDiscoveryServices","atlasServiceUrl","process","env","ATLAS_SERVICE_URL","atlas","user","batcherWait","batcherMaxCalls","batcherMaxWait","verifyDefaults","reqId"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n device: {\n preDiscoveryServices: {\n atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n },\n },\n\n user: {\n batcherWait: 100,\n batcherMaxCalls: 100,\n batcherMaxWait: 1500,\n verifyDefaults: {\n reqId: 'WEBCLIENT',\n },\n },\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["device","preDiscoveryServices","atlasServiceUrl","process","env","ATLAS_SERVICE_URL","atlas","user","batcherWait","batcherMaxCalls","batcherMaxWait","verifyDefaults","reqId"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n device: {\n preDiscoveryServices: {\n atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n },\n },\n\n user: {\n batcherWait: 100,\n batcherMaxCalls: 100,\n batcherMaxWait: 1500,\n verifyDefaults: {\n reqId: 'WEBCLIENT',\n },\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,eAIe;EACbA,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,eAAe,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI,uCAAuC;MACzFC,KAAK,EAAEH,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI;IAC1C;EACF,CAAC;EAEDE,IAAI,EAAE;IACJC,WAAW,EAAE,GAAG;IAChBC,eAAe,EAAE,GAAG;IACpBC,cAAc,EAAE,IAAI;IACpBC,cAAc,EAAE;MACdC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,24 @@
|
|
|
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 _user.default;
|
|
15
12
|
}
|
|
16
13
|
});
|
|
17
|
-
|
|
18
14
|
require("@webex/internal-plugin-device");
|
|
19
|
-
|
|
20
15
|
var _webexCore = require("@webex/webex-core");
|
|
21
|
-
|
|
22
16
|
var _user = _interopRequireDefault(require("./user"));
|
|
23
|
-
|
|
24
17
|
var _config = _interopRequireDefault(require("./config"));
|
|
25
|
-
|
|
26
18
|
/*!
|
|
27
19
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
28
20
|
*/
|
|
21
|
+
|
|
29
22
|
(0, _webexCore.registerInternalPlugin)('user', _user.default, {
|
|
30
23
|
config: _config.default
|
|
31
24
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerInternalPlugin","User","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport '@webex/internal-plugin-device';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport User from './user';\nimport config from './config';\n\nregisterInternalPlugin('user', User, {\n config,\n});\n\nexport {default} from './user';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["registerInternalPlugin","User","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport '@webex/internal-plugin-device';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport User from './user';\nimport config from './config';\n\nregisterInternalPlugin('user', User, {\n config,\n});\n\nexport {default} from './user';\n"],"mappings":";;;;;;;;;;;;;AAGA;AAEA;AAEA;AACA;AARA;AACA;AACA;;AAQA,IAAAA,iCAAsB,EAAC,MAAM,EAAEC,aAAI,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC"}
|
|
@@ -1,21 +1,14 @@
|
|
|
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 _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
14
|
-
|
|
15
10
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
16
|
-
|
|
17
11
|
var _webexCore = require("@webex/webex-core");
|
|
18
|
-
|
|
19
12
|
/*!
|
|
20
13
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
14
|
*/
|
|
@@ -25,7 +18,6 @@ var _webexCore = require("@webex/webex-core");
|
|
|
25
18
|
*/
|
|
26
19
|
var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
27
20
|
namespace: 'User',
|
|
28
|
-
|
|
29
21
|
/**
|
|
30
22
|
* @param {string} item
|
|
31
23
|
* @returns {Promise<Object>}
|
|
@@ -35,19 +27,16 @@ var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
|
35
27
|
email: item
|
|
36
28
|
});
|
|
37
29
|
},
|
|
38
|
-
|
|
39
30
|
/**
|
|
40
31
|
* @param {HttpResponseObject} res
|
|
41
32
|
* @returns {Promise}
|
|
42
33
|
*/
|
|
43
34
|
handleHttpSuccess: function handleHttpSuccess(res) {
|
|
44
35
|
var _this = this;
|
|
45
|
-
|
|
46
36
|
return _promise.default.all((0, _keys.default)(res.body).map(function (email) {
|
|
47
37
|
if (res.body[email] && res.body[email].id) {
|
|
48
38
|
return _this.handleItemSuccess(email, res.body[email]);
|
|
49
39
|
}
|
|
50
|
-
|
|
51
40
|
return _this.handleItemFailure(email, res.body[email]);
|
|
52
41
|
}));
|
|
53
42
|
},
|
|
@@ -56,7 +45,6 @@ var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
|
56
45
|
defer.reject(response);
|
|
57
46
|
});
|
|
58
47
|
},
|
|
59
|
-
|
|
60
48
|
/**
|
|
61
49
|
* @param {string} email
|
|
62
50
|
* @param {Object} response
|
|
@@ -67,7 +55,6 @@ var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
|
67
55
|
defer.resolve(response);
|
|
68
56
|
});
|
|
69
57
|
},
|
|
70
|
-
|
|
71
58
|
/**
|
|
72
59
|
* @param {string} email
|
|
73
60
|
* @returns {Promise<string>}
|
|
@@ -75,7 +62,6 @@ var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
|
75
62
|
fingerprintRequest: function fingerprintRequest(email) {
|
|
76
63
|
return _promise.default.resolve(email.email || email);
|
|
77
64
|
},
|
|
78
|
-
|
|
79
65
|
/**
|
|
80
66
|
* @param {string} email
|
|
81
67
|
* @returns {Promise<string>}
|
|
@@ -84,11 +70,10 @@ var AbstractUserUUIDRequestBatcher = _webexCore.Batcher.extend({
|
|
|
84
70
|
return _promise.default.resolve(email);
|
|
85
71
|
}
|
|
86
72
|
});
|
|
73
|
+
|
|
87
74
|
/**
|
|
88
75
|
* @class
|
|
89
76
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
77
|
var FakeUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({
|
|
93
78
|
/**
|
|
94
79
|
* @param {Object} payload
|
|
@@ -103,10 +88,10 @@ var FakeUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({
|
|
|
103
88
|
});
|
|
104
89
|
}
|
|
105
90
|
});
|
|
91
|
+
|
|
106
92
|
/**
|
|
107
93
|
* @class
|
|
108
94
|
*/
|
|
109
|
-
|
|
110
95
|
var RealUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({
|
|
111
96
|
/**
|
|
112
97
|
* @param {Object} payload
|
|
@@ -124,16 +109,15 @@ var RealUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({
|
|
|
124
109
|
});
|
|
125
110
|
}
|
|
126
111
|
});
|
|
112
|
+
|
|
127
113
|
/**
|
|
128
114
|
* @class
|
|
129
115
|
*/
|
|
130
|
-
|
|
131
116
|
var UserUUIDBatcher = _webexCore.WebexPlugin.extend({
|
|
132
117
|
children: {
|
|
133
118
|
faker: FakeUserUUIDRequestBatcher,
|
|
134
119
|
creator: RealUserUUIDRequestBatcher
|
|
135
120
|
},
|
|
136
|
-
|
|
137
121
|
/**
|
|
138
122
|
* @param {Object} payload
|
|
139
123
|
* @returns {Promise<Object>}
|
|
@@ -141,9 +125,8 @@ var UserUUIDBatcher = _webexCore.WebexPlugin.extend({
|
|
|
141
125
|
request: function request(payload) {
|
|
142
126
|
return payload.create ? this.creator.request(payload.email) : this.faker.request(payload.email);
|
|
143
127
|
},
|
|
144
|
-
version: "3.0.0-beta.
|
|
128
|
+
version: "3.0.0-beta.16"
|
|
145
129
|
});
|
|
146
|
-
|
|
147
130
|
var _default = UserUUIDBatcher;
|
|
148
131
|
exports.default = _default;
|
|
149
132
|
//# sourceMappingURL=user-uuid-batcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AbstractUserUUIDRequestBatcher","Batcher","extend","namespace","prepareItem","item","resolve","email","handleHttpSuccess","res","all","body","map","id","handleItemSuccess","handleItemFailure","response","getDeferredForResponse","then","defer","reject","fingerprintRequest","fingerprintResponse","FakeUserUUIDRequestBatcher","submitHttpRequest","payload","webex","request","method","service","resource","RealUserUUIDRequestBatcher","qs","shouldCreateUsers","UserUUIDBatcher","WebexPlugin","children","faker","creator","create"],"sources":["user-uuid-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexPlugin} from '@webex/webex-core';\n\n/**\n * @class\n */\nconst AbstractUserUUIDRequestBatcher = Batcher.extend({\n namespace: 'User',\n\n /**\n * @param {string} item\n * @returns {Promise<Object>}\n */\n prepareItem(item) {\n return Promise.resolve({email: item});\n },\n\n /**\n * @param {HttpResponseObject} res\n * @returns {Promise}\n */\n handleHttpSuccess(res) {\n return Promise.all(\n Object.keys(res.body).map((email) => {\n if (res.body[email] && res.body[email].id) {\n return this.handleItemSuccess(email, res.body[email]);\n }\n\n return this.handleItemFailure(email, res.body[email]);\n })\n );\n },\n\n handleItemFailure(email, response) {\n return this.getDeferredForResponse(email).then((defer) => {\n defer.reject(response);\n });\n },\n\n /**\n * @param {string} email\n * @param {Object} response\n * @returns {Promise}\n */\n handleItemSuccess(email, response) {\n return this.getDeferredForResponse(email).then((defer) => {\n defer.resolve(response);\n });\n },\n\n /**\n * @param {string} email\n * @returns {Promise<string>}\n */\n fingerprintRequest(email) {\n return Promise.resolve(email.email || email);\n },\n\n /**\n * @param {string} email\n * @returns {Promise<string>}\n */\n fingerprintResponse(email) {\n return Promise.resolve(email);\n },\n});\n\n/**\n * @class\n */\nconst FakeUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({\n /**\n * @param {Object} payload\n * @returns {Promise<HttpResponseObject>}\n */\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: '/users',\n body: payload,\n });\n },\n});\n\n/**\n * @class\n */\nconst RealUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({\n /**\n * @param {Object} payload\n * @returns {Promise<HttpResponseObject>}\n */\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: '/users',\n body: payload,\n qs: {\n shouldCreateUsers: true,\n },\n });\n },\n});\n\n/**\n * @class\n */\nconst UserUUIDBatcher = WebexPlugin.extend({\n children: {\n faker: FakeUserUUIDRequestBatcher,\n creator: RealUserUUIDRequestBatcher,\n },\n\n /**\n * @param {Object} payload\n * @returns {Promise<Object>}\n */\n request(payload) {\n return payload.create ? this.creator.request(payload.email) : this.faker.request(payload.email);\n },\n});\n\nexport default UserUUIDBatcher;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["AbstractUserUUIDRequestBatcher","Batcher","extend","namespace","prepareItem","item","resolve","email","handleHttpSuccess","res","all","body","map","id","handleItemSuccess","handleItemFailure","response","getDeferredForResponse","then","defer","reject","fingerprintRequest","fingerprintResponse","FakeUserUUIDRequestBatcher","submitHttpRequest","payload","webex","request","method","service","resource","RealUserUUIDRequestBatcher","qs","shouldCreateUsers","UserUUIDBatcher","WebexPlugin","children","faker","creator","create"],"sources":["user-uuid-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexPlugin} from '@webex/webex-core';\n\n/**\n * @class\n */\nconst AbstractUserUUIDRequestBatcher = Batcher.extend({\n namespace: 'User',\n\n /**\n * @param {string} item\n * @returns {Promise<Object>}\n */\n prepareItem(item) {\n return Promise.resolve({email: item});\n },\n\n /**\n * @param {HttpResponseObject} res\n * @returns {Promise}\n */\n handleHttpSuccess(res) {\n return Promise.all(\n Object.keys(res.body).map((email) => {\n if (res.body[email] && res.body[email].id) {\n return this.handleItemSuccess(email, res.body[email]);\n }\n\n return this.handleItemFailure(email, res.body[email]);\n })\n );\n },\n\n handleItemFailure(email, response) {\n return this.getDeferredForResponse(email).then((defer) => {\n defer.reject(response);\n });\n },\n\n /**\n * @param {string} email\n * @param {Object} response\n * @returns {Promise}\n */\n handleItemSuccess(email, response) {\n return this.getDeferredForResponse(email).then((defer) => {\n defer.resolve(response);\n });\n },\n\n /**\n * @param {string} email\n * @returns {Promise<string>}\n */\n fingerprintRequest(email) {\n return Promise.resolve(email.email || email);\n },\n\n /**\n * @param {string} email\n * @returns {Promise<string>}\n */\n fingerprintResponse(email) {\n return Promise.resolve(email);\n },\n});\n\n/**\n * @class\n */\nconst FakeUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({\n /**\n * @param {Object} payload\n * @returns {Promise<HttpResponseObject>}\n */\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: '/users',\n body: payload,\n });\n },\n});\n\n/**\n * @class\n */\nconst RealUserUUIDRequestBatcher = AbstractUserUUIDRequestBatcher.extend({\n /**\n * @param {Object} payload\n * @returns {Promise<HttpResponseObject>}\n */\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: '/users',\n body: payload,\n qs: {\n shouldCreateUsers: true,\n },\n });\n },\n});\n\n/**\n * @class\n */\nconst UserUUIDBatcher = WebexPlugin.extend({\n children: {\n faker: FakeUserUUIDRequestBatcher,\n creator: RealUserUUIDRequestBatcher,\n },\n\n /**\n * @param {Object} payload\n * @returns {Promise<Object>}\n */\n request(payload) {\n return payload.create ? this.creator.request(payload.email) : this.faker.request(payload.email);\n },\n});\n\nexport default UserUUIDBatcher;\n"],"mappings":";;;;;;;;;;AAIA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA,IAAMA,8BAA8B,GAAGC,kBAAO,CAACC,MAAM,CAAC;EACpDC,SAAS,EAAE,MAAM;EAEjB;AACF;AACA;AACA;EACEC,WAAW,uBAACC,IAAI,EAAE;IAChB,OAAO,iBAAQC,OAAO,CAAC;MAACC,KAAK,EAAEF;IAAI,CAAC,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;EACEG,iBAAiB,6BAACC,GAAG,EAAE;IAAA;IACrB,OAAO,iBAAQC,GAAG,CAChB,mBAAYD,GAAG,CAACE,IAAI,CAAC,CAACC,GAAG,CAAC,UAACL,KAAK,EAAK;MACnC,IAAIE,GAAG,CAACE,IAAI,CAACJ,KAAK,CAAC,IAAIE,GAAG,CAACE,IAAI,CAACJ,KAAK,CAAC,CAACM,EAAE,EAAE;QACzC,OAAO,KAAI,CAACC,iBAAiB,CAACP,KAAK,EAAEE,GAAG,CAACE,IAAI,CAACJ,KAAK,CAAC,CAAC;MACvD;MAEA,OAAO,KAAI,CAACQ,iBAAiB,CAACR,KAAK,EAAEE,GAAG,CAACE,IAAI,CAACJ,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CACH;EACH,CAAC;EAEDQ,iBAAiB,6BAACR,KAAK,EAAES,QAAQ,EAAE;IACjC,OAAO,IAAI,CAACC,sBAAsB,CAACV,KAAK,CAAC,CAACW,IAAI,CAAC,UAACC,KAAK,EAAK;MACxDA,KAAK,CAACC,MAAM,CAACJ,QAAQ,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EACEF,iBAAiB,6BAACP,KAAK,EAAES,QAAQ,EAAE;IACjC,OAAO,IAAI,CAACC,sBAAsB,CAACV,KAAK,CAAC,CAACW,IAAI,CAAC,UAACC,KAAK,EAAK;MACxDA,KAAK,CAACb,OAAO,CAACU,QAAQ,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;EACEK,kBAAkB,8BAACd,KAAK,EAAE;IACxB,OAAO,iBAAQD,OAAO,CAACC,KAAK,CAACA,KAAK,IAAIA,KAAK,CAAC;EAC9C,CAAC;EAED;AACF;AACA;AACA;EACEe,mBAAmB,+BAACf,KAAK,EAAE;IACzB,OAAO,iBAAQD,OAAO,CAACC,KAAK,CAAC;EAC/B;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,IAAMgB,0BAA0B,GAAGvB,8BAA8B,CAACE,MAAM,CAAC;EACvE;AACF;AACA;AACA;EACEsB,iBAAiB,6BAACC,OAAO,EAAE;IACzB,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC;MACxBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,cAAc;MACvBC,QAAQ,EAAE,QAAQ;MAClBnB,IAAI,EAAEc;IACR,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,IAAMM,0BAA0B,GAAG/B,8BAA8B,CAACE,MAAM,CAAC;EACvE;AACF;AACA;AACA;EACEsB,iBAAiB,6BAACC,OAAO,EAAE;IACzB,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC;MACxBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,cAAc;MACvBC,QAAQ,EAAE,QAAQ;MAClBnB,IAAI,EAAEc,OAAO;MACbO,EAAE,EAAE;QACFC,iBAAiB,EAAE;MACrB;IACF,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,IAAMC,eAAe,GAAGC,sBAAW,CAACjC,MAAM,CAAC;EACzCkC,QAAQ,EAAE;IACRC,KAAK,EAAEd,0BAA0B;IACjCe,OAAO,EAAEP;EACX,CAAC;EAED;AACF;AACA;AACA;EACEJ,OAAO,mBAACF,OAAO,EAAE;IACf,OAAOA,OAAO,CAACc,MAAM,GAAG,IAAI,CAACD,OAAO,CAACX,OAAO,CAACF,OAAO,CAAClB,KAAK,CAAC,GAAG,IAAI,CAAC8B,KAAK,CAACV,OAAO,CAACF,OAAO,CAAClB,KAAK,CAAC;EACjG,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEY2B,eAAe;AAAA"}
|
package/dist/user-uuid-store.js
CHANGED
|
@@ -1,49 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
-
|
|
11
7
|
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
12
|
-
|
|
13
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
-
|
|
15
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
|
-
|
|
21
13
|
exports.default = void 0;
|
|
22
|
-
|
|
23
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
24
|
-
|
|
25
15
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
26
|
-
|
|
27
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
28
|
-
|
|
29
17
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
|
30
|
-
|
|
31
18
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
32
|
-
|
|
33
19
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
34
|
-
|
|
35
20
|
var _common = require("@webex/common");
|
|
36
|
-
|
|
37
21
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
38
|
-
|
|
39
22
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
40
|
-
|
|
41
23
|
var usersByEmail = new _weakMap.default();
|
|
42
24
|
var usersById = new _weakMap.default();
|
|
25
|
+
|
|
43
26
|
/**
|
|
44
27
|
* @class
|
|
45
28
|
*/
|
|
46
|
-
|
|
47
29
|
var UserUUIDStore = /*#__PURE__*/function () {
|
|
48
30
|
/**
|
|
49
31
|
* @constructs {UserUUIDStore}
|
|
@@ -53,6 +35,7 @@ var UserUUIDStore = /*#__PURE__*/function () {
|
|
|
53
35
|
usersByEmail.set(this, new _map.default());
|
|
54
36
|
usersById.set(this, new _map.default());
|
|
55
37
|
}
|
|
38
|
+
|
|
56
39
|
/**
|
|
57
40
|
* Adds a user object to the store
|
|
58
41
|
* @param {Object} user
|
|
@@ -60,29 +43,22 @@ var UserUUIDStore = /*#__PURE__*/function () {
|
|
|
60
43
|
* @param {string} user.emailAddress
|
|
61
44
|
* @returns {Promise}
|
|
62
45
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
46
|
(0, _createClass2.default)(UserUUIDStore, [{
|
|
66
47
|
key: "add",
|
|
67
48
|
value: function add(user) {
|
|
68
49
|
var _this = this;
|
|
69
|
-
|
|
70
50
|
if (!user.id) {
|
|
71
51
|
return _promise.default.reject(new Error('`user.id` is required'));
|
|
72
52
|
}
|
|
73
|
-
|
|
74
53
|
if (!user.emailAddress) {
|
|
75
54
|
return _promise.default.reject(new Error('`user.emailAddress` is required'));
|
|
76
55
|
}
|
|
77
|
-
|
|
78
56
|
if (!_common.patterns.uuid.test(user.id)) {
|
|
79
57
|
return _promise.default.reject(new Error('`user.id` does not appear to be a uuid'));
|
|
80
58
|
}
|
|
81
|
-
|
|
82
59
|
if (!_common.patterns.email.test(user.emailAddress)) {
|
|
83
60
|
return _promise.default.reject(new Error('`user.emailAddress` does not appear to be an email address'));
|
|
84
61
|
}
|
|
85
|
-
|
|
86
62
|
var p1 = this.getById(user.id).then(function (u) {
|
|
87
63
|
return usersById.get(_this).set(user.id, _objectSpread(_objectSpread({}, u), user));
|
|
88
64
|
}).catch(function () {
|
|
@@ -95,62 +71,55 @@ var UserUUIDStore = /*#__PURE__*/function () {
|
|
|
95
71
|
});
|
|
96
72
|
return _promise.default.all([p1, p2]);
|
|
97
73
|
}
|
|
74
|
+
|
|
98
75
|
/**
|
|
99
76
|
* Retrieves the specified user object from the store
|
|
100
77
|
* @param {string} id
|
|
101
78
|
* @returns {Promise<Object>}
|
|
102
79
|
*/
|
|
103
|
-
|
|
104
80
|
}, {
|
|
105
81
|
key: "get",
|
|
106
82
|
value: function get(id) {
|
|
107
83
|
if (_common.patterns.uuid.test(id)) {
|
|
108
84
|
return this.getById(id);
|
|
109
85
|
}
|
|
110
|
-
|
|
111
86
|
if (_common.patterns.email.test(id)) {
|
|
112
87
|
return this.getByEmail(id);
|
|
113
88
|
}
|
|
114
|
-
|
|
115
89
|
return _promise.default.reject(new Error('`id` does not appear to be a valid user identifier'));
|
|
116
90
|
}
|
|
91
|
+
|
|
117
92
|
/**
|
|
118
93
|
* Retrieves the specified user object by id from the store
|
|
119
94
|
* @param {Object} id
|
|
120
95
|
* @returns {Promise<Object>}
|
|
121
96
|
*/
|
|
122
|
-
|
|
123
97
|
}, {
|
|
124
98
|
key: "getById",
|
|
125
99
|
value: function getById(id) {
|
|
126
100
|
var ret = usersById.get(this).get(id);
|
|
127
|
-
|
|
128
101
|
if (ret) {
|
|
129
102
|
return _promise.default.resolve(ret);
|
|
130
103
|
}
|
|
131
|
-
|
|
132
104
|
return _promise.default.reject(new Error('No user found by specified id'));
|
|
133
105
|
}
|
|
106
|
+
|
|
134
107
|
/**
|
|
135
108
|
* Retrieves the specified user object by id from the store
|
|
136
109
|
* @param {Object} email
|
|
137
110
|
* @returns {Promise<Object>}
|
|
138
111
|
*/
|
|
139
|
-
|
|
140
112
|
}, {
|
|
141
113
|
key: "getByEmail",
|
|
142
114
|
value: function getByEmail(email) {
|
|
143
115
|
var ret = usersByEmail.get(this).get(email);
|
|
144
|
-
|
|
145
116
|
if (ret) {
|
|
146
117
|
return _promise.default.resolve(ret);
|
|
147
118
|
}
|
|
148
|
-
|
|
149
119
|
return _promise.default.reject(new Error('No user found by specified email address'));
|
|
150
120
|
}
|
|
151
121
|
}]);
|
|
152
122
|
return UserUUIDStore;
|
|
153
123
|
}();
|
|
154
|
-
|
|
155
124
|
exports.default = UserUUIDStore;
|
|
156
125
|
//# sourceMappingURL=user-uuid-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["usersByEmail","usersById","UserUUIDStore","set","user","id","reject","Error","emailAddress","patterns","uuid","test","email","p1","getById","then","u","get","catch","p2","getByEmail","all","ret","resolve"],"sources":["user-uuid-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {patterns} from '@webex/common';\n\nconst usersByEmail = new WeakMap();\nconst usersById = new WeakMap();\n\n/**\n * @class\n */\nexport default class UserUUIDStore {\n /**\n * @constructs {UserUUIDStore}\n */\n constructor() {\n usersByEmail.set(this, new Map());\n usersById.set(this, new Map());\n }\n\n /**\n * Adds a user object to the store\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n add(user) {\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` does not appear to be a uuid'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(\n new Error('`user.emailAddress` does not appear to be an email address')\n );\n }\n\n const p1 = this.getById(user.id)\n .then((u) => usersById.get(this).set(user.id, {...u, ...user}))\n .catch(() => usersById.get(this).set(user.id, {...user}));\n\n const p2 = this.getByEmail(user.emailAddress)\n .then((u) => usersByEmail.get(this).set(user.emailAddress, {...u, ...user}))\n .catch(() => usersByEmail.get(this).set(user.emailAddress, {...user}));\n\n return Promise.all([p1, p2]);\n }\n\n /**\n * Retrieves the specified user object from the store\n * @param {string} id\n * @returns {Promise<Object>}\n */\n get(id) {\n if (patterns.uuid.test(id)) {\n return this.getById(id);\n }\n\n if (patterns.email.test(id)) {\n return this.getByEmail(id);\n }\n\n return Promise.reject(new Error('`id` does not appear to be a valid user identifier'));\n }\n\n /**\n * Retrieves the specified user object by id from the store\n * @param {Object} id\n * @returns {Promise<Object>}\n */\n getById(id) {\n const ret = usersById.get(this).get(id);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('No user found by specified id'));\n }\n\n /**\n * Retrieves the specified user object by id from the store\n * @param {Object} email\n * @returns {Promise<Object>}\n */\n getByEmail(email) {\n const ret = usersByEmail.get(this).get(email);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('No user found by specified email address'));\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["usersByEmail","usersById","UserUUIDStore","set","user","id","reject","Error","emailAddress","patterns","uuid","test","email","p1","getById","then","u","get","catch","p2","getByEmail","all","ret","resolve"],"sources":["user-uuid-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {patterns} from '@webex/common';\n\nconst usersByEmail = new WeakMap();\nconst usersById = new WeakMap();\n\n/**\n * @class\n */\nexport default class UserUUIDStore {\n /**\n * @constructs {UserUUIDStore}\n */\n constructor() {\n usersByEmail.set(this, new Map());\n usersById.set(this, new Map());\n }\n\n /**\n * Adds a user object to the store\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n add(user) {\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` does not appear to be a uuid'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(\n new Error('`user.emailAddress` does not appear to be an email address')\n );\n }\n\n const p1 = this.getById(user.id)\n .then((u) => usersById.get(this).set(user.id, {...u, ...user}))\n .catch(() => usersById.get(this).set(user.id, {...user}));\n\n const p2 = this.getByEmail(user.emailAddress)\n .then((u) => usersByEmail.get(this).set(user.emailAddress, {...u, ...user}))\n .catch(() => usersByEmail.get(this).set(user.emailAddress, {...user}));\n\n return Promise.all([p1, p2]);\n }\n\n /**\n * Retrieves the specified user object from the store\n * @param {string} id\n * @returns {Promise<Object>}\n */\n get(id) {\n if (patterns.uuid.test(id)) {\n return this.getById(id);\n }\n\n if (patterns.email.test(id)) {\n return this.getByEmail(id);\n }\n\n return Promise.reject(new Error('`id` does not appear to be a valid user identifier'));\n }\n\n /**\n * Retrieves the specified user object by id from the store\n * @param {Object} id\n * @returns {Promise<Object>}\n */\n getById(id) {\n const ret = usersById.get(this).get(id);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('No user found by specified id'));\n }\n\n /**\n * Retrieves the specified user object by id from the store\n * @param {Object} email\n * @returns {Promise<Object>}\n */\n getByEmail(email) {\n const ret = usersByEmail.get(this).get(email);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('No user found by specified email address'));\n }\n}\n"],"mappings":"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"}
|
package/dist/user.js
CHANGED
|
@@ -1,51 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor2 = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
-
|
|
11
7
|
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
12
|
-
|
|
13
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
-
|
|
15
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
|
-
|
|
21
13
|
exports.default = void 0;
|
|
22
|
-
|
|
23
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
24
|
-
|
|
25
15
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
26
|
-
|
|
27
16
|
var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
|
|
28
|
-
|
|
29
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
30
|
-
|
|
31
18
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
|
|
32
|
-
|
|
33
19
|
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
|
34
|
-
|
|
35
20
|
var _common = require("@webex/common");
|
|
36
|
-
|
|
37
21
|
var _webexCore = require("@webex/webex-core");
|
|
38
|
-
|
|
39
22
|
var _userUuidBatcher = _interopRequireDefault(require("./user-uuid-batcher"));
|
|
40
|
-
|
|
41
23
|
var _userUuidStore = _interopRequireDefault(require("./user-uuid-store"));
|
|
42
|
-
|
|
43
24
|
var _dec, _dec2, _dec3, _dec4, _obj;
|
|
44
|
-
|
|
45
25
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor2(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
46
|
-
|
|
47
26
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor2(source, key)); }); } return target; }
|
|
48
|
-
|
|
49
27
|
/**
|
|
50
28
|
* @class
|
|
51
29
|
*/
|
|
@@ -78,7 +56,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
78
56
|
type: 'any'
|
|
79
57
|
}
|
|
80
58
|
},
|
|
81
|
-
|
|
82
59
|
/**
|
|
83
60
|
* Activates a Webex user account and exchanges for user token.
|
|
84
61
|
* @instance
|
|
@@ -92,19 +69,16 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
92
69
|
*/
|
|
93
70
|
activate: function activate() {
|
|
94
71
|
var _this = this;
|
|
95
|
-
|
|
96
72
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
97
|
-
|
|
98
73
|
if (!(options.verificationToken || options.confirmationCode && options.id)) {
|
|
99
74
|
return _promise.default.reject(new Error('either options.verificationToken is required or both options.confirmationCode and options.id are required'));
|
|
100
75
|
}
|
|
76
|
+
options.scope = this.webex.config.credentials.scope;
|
|
101
77
|
|
|
102
|
-
|
|
78
|
+
// if we have options.email and options.verificationToken
|
|
103
79
|
// and Federation flag is enabled, flag that we need to
|
|
104
80
|
// lookup user's CI.
|
|
105
|
-
|
|
106
81
|
var activateOptions = _objectSpread({}, options);
|
|
107
|
-
|
|
108
82
|
delete activateOptions.email;
|
|
109
83
|
return this.request({
|
|
110
84
|
uri: this.webex.config.credentials.activationUrl,
|
|
@@ -119,11 +93,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
119
93
|
_this.webex.credentials.set({
|
|
120
94
|
supertoken: res.body.tokenData
|
|
121
95
|
});
|
|
122
|
-
|
|
123
96
|
return res.body;
|
|
124
97
|
});
|
|
125
98
|
},
|
|
126
|
-
|
|
127
99
|
/**
|
|
128
100
|
* Converts a user-identifying object to a uuid, perhaps by doing a network
|
|
129
101
|
* lookup
|
|
@@ -136,32 +108,24 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
136
108
|
*/
|
|
137
109
|
asUUID: function asUUID(user, options) {
|
|
138
110
|
var _this2 = this;
|
|
139
|
-
|
|
140
111
|
if (!user) {
|
|
141
112
|
return _promise.default.reject(new Error('`user` is required'));
|
|
142
113
|
}
|
|
143
|
-
|
|
144
114
|
if ((0, _isArray2.default)(user)) {
|
|
145
115
|
return _promise.default.all(user.map(function (u) {
|
|
146
116
|
return _this2.asUUID(u, options);
|
|
147
117
|
}));
|
|
148
118
|
}
|
|
149
|
-
|
|
150
119
|
var id = this._extractUUID(user);
|
|
151
|
-
|
|
152
120
|
if (!(options && options.force) && _common.patterns.uuid.test(id)) {
|
|
153
121
|
return _promise.default.resolve(id);
|
|
154
122
|
}
|
|
155
|
-
|
|
156
123
|
var email = this._extractEmailAddress(user);
|
|
157
|
-
|
|
158
124
|
if (!_common.patterns.email.test(email)) {
|
|
159
125
|
return _promise.default.reject(new Error('Provided user object does not appear to identify a user'));
|
|
160
126
|
}
|
|
161
|
-
|
|
162
127
|
return this.getUUID(email, options);
|
|
163
128
|
},
|
|
164
|
-
|
|
165
129
|
/**
|
|
166
130
|
* Requests a uuid from the api
|
|
167
131
|
* @param {string} email
|
|
@@ -171,7 +135,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
171
135
|
*/
|
|
172
136
|
fetchUUID: function fetchUUID(email, options) {
|
|
173
137
|
var _this3 = this;
|
|
174
|
-
|
|
175
138
|
return this.batcher.request({
|
|
176
139
|
email: email,
|
|
177
140
|
create: options && options.create
|
|
@@ -183,7 +146,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
183
146
|
});
|
|
184
147
|
});
|
|
185
148
|
},
|
|
186
|
-
|
|
187
149
|
/**
|
|
188
150
|
* Generates One Time Password.
|
|
189
151
|
* @instance
|
|
@@ -194,11 +156,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
194
156
|
*/
|
|
195
157
|
generateOTP: function generateOTP() {
|
|
196
158
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
197
|
-
|
|
198
159
|
if (!(options.email || options.id)) {
|
|
199
160
|
return _promise.default.reject(new Error('One of `options.email` or `options.id` is required'));
|
|
200
161
|
}
|
|
201
|
-
|
|
202
162
|
return this.request({
|
|
203
163
|
uri: this.webex.config.credentials.generateOtpUrl,
|
|
204
164
|
method: 'POST',
|
|
@@ -211,14 +171,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
211
171
|
return res.body;
|
|
212
172
|
});
|
|
213
173
|
},
|
|
214
|
-
|
|
215
174
|
/**
|
|
216
175
|
* Fetches details about the current user
|
|
217
176
|
* @returns {Promise<Object>}
|
|
218
177
|
*/
|
|
219
178
|
get: function get() {
|
|
220
179
|
var _this4 = this;
|
|
221
|
-
|
|
222
180
|
return this.request({
|
|
223
181
|
service: 'conversation',
|
|
224
182
|
resource: 'users'
|
|
@@ -235,16 +193,13 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
235
193
|
},
|
|
236
194
|
getUUID: function getUUID(email, options) {
|
|
237
195
|
var _this5 = this;
|
|
238
|
-
|
|
239
196
|
return this.store.getByEmail(email).then(function (user) {
|
|
240
197
|
if (options && options.create && !user.userExists) {
|
|
241
198
|
return _promise.default.reject(new Error('User for specified email cannot be confirmed to exist'));
|
|
242
199
|
}
|
|
243
|
-
|
|
244
200
|
if (!user.id) {
|
|
245
201
|
return _promise.default.reject(new Error('No id recorded for specified user'));
|
|
246
202
|
}
|
|
247
|
-
|
|
248
203
|
return user.id;
|
|
249
204
|
}).catch(function () {
|
|
250
205
|
return _this5.fetchUUID(email, options);
|
|
@@ -254,10 +209,8 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
254
209
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
255
210
|
args[_key] = arguments[_key];
|
|
256
211
|
}
|
|
257
|
-
|
|
258
212
|
return (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, args);
|
|
259
213
|
},
|
|
260
|
-
|
|
261
214
|
/**
|
|
262
215
|
* Caches the uuid for the specified email address
|
|
263
216
|
* @param {Object} user
|
|
@@ -269,29 +222,23 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
269
222
|
if (!user) {
|
|
270
223
|
return _promise.default.reject(new Error('`user` is required'));
|
|
271
224
|
}
|
|
272
|
-
|
|
273
225
|
if (!user.id) {
|
|
274
226
|
return _promise.default.reject(new Error('`user.id` is required'));
|
|
275
227
|
}
|
|
276
|
-
|
|
277
228
|
if (!_common.patterns.uuid.test(user.id)) {
|
|
278
229
|
return _promise.default.reject(new Error('`user.id` must be a uuid'));
|
|
279
230
|
}
|
|
280
|
-
|
|
281
231
|
if (!user.emailAddress) {
|
|
282
232
|
return _promise.default.reject(new Error('`user.emailAddress` is required'));
|
|
283
233
|
}
|
|
284
|
-
|
|
285
234
|
if (!_common.patterns.email.test(user.emailAddress)) {
|
|
286
235
|
return _promise.default.reject(new Error('`user.emailAddress` must be an email address'));
|
|
287
236
|
}
|
|
288
|
-
|
|
289
237
|
return this.store.add(user);
|
|
290
238
|
},
|
|
291
239
|
register: function register() {
|
|
292
240
|
return this.verify.apply(this, arguments);
|
|
293
241
|
},
|
|
294
|
-
|
|
295
242
|
/**
|
|
296
243
|
* Updates a user with webex.
|
|
297
244
|
* @param {Object} body
|
|
@@ -300,7 +247,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
300
247
|
*/
|
|
301
248
|
_setUser: function _setUser(body) {
|
|
302
249
|
var _this6 = this;
|
|
303
|
-
|
|
304
250
|
return this.webex.credentials.getUserToken().then(function (token) {
|
|
305
251
|
return _this6.request({
|
|
306
252
|
uri: "".concat(_this6.webex.config.credentials.setPasswordUrl, "/").concat(_this6.webex.internal.device.userId),
|
|
@@ -312,7 +258,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
312
258
|
});
|
|
313
259
|
});
|
|
314
260
|
},
|
|
315
|
-
|
|
316
261
|
/**
|
|
317
262
|
* Updates a user's password with webex.
|
|
318
263
|
* @instance
|
|
@@ -324,13 +269,10 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
324
269
|
*/
|
|
325
270
|
setPassword: function setPassword(options) {
|
|
326
271
|
var _this7 = this;
|
|
327
|
-
|
|
328
272
|
options = options || {};
|
|
329
|
-
|
|
330
273
|
if (!options.password) {
|
|
331
274
|
return _promise.default.reject(new Error('`options.password` is required'));
|
|
332
275
|
}
|
|
333
|
-
|
|
334
276
|
return this._setUser({
|
|
335
277
|
schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
|
|
336
278
|
password: options.password
|
|
@@ -339,7 +281,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
339
281
|
return res.body;
|
|
340
282
|
});
|
|
341
283
|
},
|
|
342
|
-
|
|
343
284
|
/**
|
|
344
285
|
* Updates a user's name with webex.
|
|
345
286
|
* @instance
|
|
@@ -351,14 +292,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
351
292
|
*/
|
|
352
293
|
updateName: function updateName() {
|
|
353
294
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
295
|
+
givenName = _ref.givenName,
|
|
296
|
+
familyName = _ref.familyName,
|
|
297
|
+
displayName = _ref.displayName;
|
|
358
298
|
if (!(givenName || familyName || displayName)) {
|
|
359
299
|
return _promise.default.reject(new Error('One of `givenName` and `familyName` or `displayName` is required'));
|
|
360
300
|
}
|
|
361
|
-
|
|
362
301
|
return this._setUser({
|
|
363
302
|
schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
|
|
364
303
|
name: {
|
|
@@ -370,7 +309,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
370
309
|
return res.body;
|
|
371
310
|
});
|
|
372
311
|
},
|
|
373
|
-
|
|
374
312
|
/**
|
|
375
313
|
* Updates the current user's display name
|
|
376
314
|
* @param {Object} options
|
|
@@ -379,11 +317,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
379
317
|
*/
|
|
380
318
|
update: function update(options) {
|
|
381
319
|
options = options || {};
|
|
382
|
-
|
|
383
320
|
if (!options.displayName) {
|
|
384
321
|
return _promise.default.reject(new Error('`options.displayName` is required'));
|
|
385
322
|
}
|
|
386
|
-
|
|
387
323
|
return this.request({
|
|
388
324
|
method: 'PATCH',
|
|
389
325
|
service: 'conversation',
|
|
@@ -393,7 +329,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
393
329
|
return res.body;
|
|
394
330
|
});
|
|
395
331
|
},
|
|
396
|
-
|
|
397
332
|
/**
|
|
398
333
|
* Validated One Time Password.
|
|
399
334
|
* @instance
|
|
@@ -405,13 +340,10 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
405
340
|
*/
|
|
406
341
|
validateOTP: function validateOTP() {
|
|
407
342
|
var _this8 = this;
|
|
408
|
-
|
|
409
343
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
410
|
-
|
|
411
344
|
if (!(options.email || options.id) || !options.oneTimePassword) {
|
|
412
345
|
return _promise.default.reject(new Error('One of `options.email` or `options.id` and `options.oneTimePassword` are required'));
|
|
413
346
|
}
|
|
414
|
-
|
|
415
347
|
options.scope = this.webex.config.credentials.scope;
|
|
416
348
|
return this.request({
|
|
417
349
|
uri: this.webex.config.credentials.validateOtpUrl,
|
|
@@ -425,11 +357,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
425
357
|
_this8.webex.credentials.set({
|
|
426
358
|
supertoken: res.body.tokenData
|
|
427
359
|
});
|
|
428
|
-
|
|
429
360
|
return res.body;
|
|
430
361
|
});
|
|
431
362
|
},
|
|
432
|
-
|
|
433
363
|
/**
|
|
434
364
|
* Determines if the specified user needs to signup or can signin.
|
|
435
365
|
* Triggers activation email if client credentials are used
|
|
@@ -441,15 +371,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
441
371
|
*/
|
|
442
372
|
verify: function verify(options) {
|
|
443
373
|
var _this9 = this;
|
|
444
|
-
|
|
445
374
|
options = _objectSpread(_objectSpread({}, this.config.verifyDefaults), options);
|
|
446
375
|
var _options = options,
|
|
447
|
-
|
|
448
|
-
|
|
376
|
+
email = _options.email;
|
|
449
377
|
if (!email) {
|
|
450
378
|
return _promise.default.reject(new Error('`options.email` is required'));
|
|
451
379
|
}
|
|
452
|
-
|
|
453
380
|
return this.webex.internal.services.collectPreauthCatalog({
|
|
454
381
|
email: email
|
|
455
382
|
}).then(function () {
|
|
@@ -472,11 +399,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
472
399
|
if (res.body.hasPassword || res.body.sso) {
|
|
473
400
|
_this9.hasPassword = true;
|
|
474
401
|
}
|
|
475
|
-
|
|
476
402
|
return res.body;
|
|
477
403
|
});
|
|
478
404
|
},
|
|
479
|
-
|
|
480
405
|
/**
|
|
481
406
|
* If the passed-in lookupCI is true, retrieve the user's
|
|
482
407
|
* CI from Atlas and return the URL's via a Promise.
|
|
@@ -500,13 +425,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
500
425
|
return _promise.default.resolve(res.userEntities);
|
|
501
426
|
});
|
|
502
427
|
}
|
|
503
|
-
|
|
504
428
|
return _promise.default.resolve({
|
|
505
429
|
idBrokerUrl: this.webex.config.credentials.idbroker.url,
|
|
506
430
|
identityUrl: this.webex.config.credentials.identity.url
|
|
507
431
|
});
|
|
508
432
|
},
|
|
509
|
-
|
|
510
433
|
/**
|
|
511
434
|
* Extracts the uuid from a user identifying object
|
|
512
435
|
* @param {string|Object} user
|
|
@@ -516,7 +439,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
516
439
|
_extractUUID: function _extractUUID(user) {
|
|
517
440
|
return user.entryUUID || user.id || user;
|
|
518
441
|
},
|
|
519
|
-
|
|
520
442
|
/**
|
|
521
443
|
* Extracts the email address from a user identifying object
|
|
522
444
|
* @param {string|Object} user
|
|
@@ -526,9 +448,8 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
526
448
|
_extractEmailAddress: function _extractEmailAddress(user) {
|
|
527
449
|
return user.email || user.emailAddress || user.entryEmail || user;
|
|
528
450
|
},
|
|
529
|
-
version: "3.0.0-beta.
|
|
451
|
+
version: "3.0.0-beta.16"
|
|
530
452
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "activate", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "activate"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getUUID", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "getUUID"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "initialize", [_dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "initialize"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "register", [_dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "register"), _obj)), _obj)));
|
|
531
|
-
|
|
532
453
|
var _default2 = User;
|
|
533
454
|
exports.default = _default2;
|
|
534
455
|
//# sourceMappingURL=user.js.map
|
package/dist/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","default","type","session","store","UserUUIDStore","activate","verificationToken","confirmationCode","id","reject","Error","scope","webex","config","credentials","activateOptions","request","uri","activationUrl","method","body","auth","user","client_id","pass","client_secret","sendImmediately","then","res","set","supertoken","tokenData","asUUID","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","service","resource","tap","getByEmail","userExists","catch","initialize","args","prototype","add","register","verify","_setUser","getUserToken","token","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","password","schemas","updateName","givenName","familyName","displayName","name","update","validateOTP","oneTimePassword","validateOtpUrl","verifyDefaults","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail"],"sources":["user.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isArray} from 'lodash';\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\n\nimport UserUUIDBatcher from './user-uuid-batcher';\nimport UserUUIDStore from './user-uuid-store';\n\n/**\n * @class\n */\nconst User = WebexPlugin.extend({\n namespace: 'User',\n\n children: {\n batcher: UserUUIDBatcher,\n },\n\n props: {\n /**\n * Indicates if the current user is known to have a password.\n * @instance\n * @memberof User\n * @type {boolean}\n */\n hasPassword: {\n default: false,\n type: 'boolean',\n },\n },\n\n session: {\n store: {\n default() {\n return new UserUUIDStore();\n },\n type: 'any',\n },\n },\n\n @waitForValue('@')\n /**\n * Activates a Webex user account and exchanges for user token.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\n * @param {Object} options.id (required -- optional if verification token is provided)\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\n * @param {Object} options.email (required with verificationToken for Federation/global user)\n * @returns {Promise} Resolves with a userSession\n */\n activate(options = {}) {\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\n return Promise.reject(\n new Error(\n 'either options.verificationToken is required or both options.confirmationCode and options.id are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n // if we have options.email and options.verificationToken\n // and Federation flag is enabled, flag that we need to\n // lookup user's CI.\n const activateOptions = {...options};\n\n delete activateOptions.email;\n\n return this.request({\n uri: this.webex.config.credentials.activationUrl,\n method: 'POST',\n body: activateOptions,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n sendImmediately: true,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Converts a user-identifying object to a uuid, perhaps by doing a network\n * lookup\n * @param {string|Object} user\n * @param {Object} options\n * @param {boolean} options.create if true, ensures the return UUID refers to\n * an existing user (rather than creating one deterministically based on email\n * address), even if that user must be created\n * @returns {Promise<string>}\n */\n asUUID(user, options) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (isArray(user)) {\n return Promise.all(user.map((u) => this.asUUID(u, options)));\n }\n\n const id = this._extractUUID(user);\n\n if (!(options && options.force) && patterns.uuid.test(id)) {\n return Promise.resolve(id);\n }\n\n const email = this._extractEmailAddress(user);\n\n if (!patterns.email.test(email)) {\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\n }\n\n return this.getUUID(email, options);\n },\n\n /**\n * Requests a uuid from the api\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n fetchUUID(email, options) {\n return this.batcher\n .request({\n email,\n create: options && options.create,\n })\n .then((user) => this.recordUUID({emailAddress: email, ...user}).then(() => user.id));\n },\n /**\n * Generates One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @returns {Promise}\n */\n generateOTP(options = {}) {\n if (!(options.email || options.id)) {\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\n }\n\n return this.request({\n uri: this.webex.config.credentials.generateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => res.body);\n },\n\n /**\n * Fetches details about the current user\n * @returns {Promise<Object>}\n */\n get() {\n return this.request({\n service: 'conversation',\n resource: 'users',\n })\n .then((res) => res.body)\n .then(\n tap((user) =>\n this.recordUUID({\n id: user.id,\n // CI endpoints don't use the same user format as actors, so, email may\n // be in one of a few fields\n emailAddress: user.email || user.emailAddress,\n })\n )\n );\n },\n\n /**\n * Converts an email address to a uuid, perhaps by doing a network lookup\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\n getUUID(email, options) {\n return this.store\n .getByEmail(email)\n .then((user) => {\n if (options && options.create && !user.userExists) {\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('No id recorded for specified user'));\n }\n\n return user.id;\n })\n .catch(() => this.fetchUUID(email, options));\n },\n\n @persist('@')\n initialize(...args) {\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Caches the uuid for the specified email address\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n recordUUID(user) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` must be a uuid'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\n }\n\n return this.store.add(user);\n },\n\n @deprecated('Use User#verify()')\n register(...args) {\n return this.verify(...args);\n },\n\n /**\n * Updates a user with webex.\n * @param {Object} body\n * @private\n * @returns {Promise} Resolves with a response from PATCH request\n */\n _setUser(body) {\n return this.webex.credentials.getUserToken().then((token) =>\n this.request({\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\n method: 'PATCH',\n headers: {\n authorization: token.toString(),\n },\n body,\n })\n );\n },\n\n /**\n * Updates a user's password with webex.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {string} options.password (required)\n * @param {string} options.email (required when federation enabled)\n * @returns {Promise} Resolves with complete user object containing new password\n */\n setPassword(options) {\n options = options || {};\n if (!options.password) {\n return Promise.reject(new Error('`options.password` is required'));\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n password: options.password,\n }).then((res) => {\n this.hasPassword = true;\n\n return res.body;\n });\n },\n\n /**\n * Updates a user's name with webex.\n * @instance\n * @memberof User\n * @param {string} givenName\n * @param {string} familyName\n * @param {string} displayName\n * @returns {Promise<Object>}\n */\n updateName({givenName, familyName, displayName} = {}) {\n if (!(givenName || familyName || displayName)) {\n return Promise.reject(\n new Error('One of `givenName` and `familyName` or `displayName` is required')\n );\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n name: {givenName, familyName},\n displayName,\n }).then((res) => res.body);\n },\n\n /**\n * Updates the current user's display name\n * @param {Object} options\n * @param {string} options.displayName\n * @returns {Promise<Object>}\n */\n update(options) {\n options = options || {};\n if (!options.displayName) {\n return Promise.reject(new Error('`options.displayName` is required'));\n }\n\n return this.request({\n method: 'PATCH',\n service: 'conversation',\n resource: 'users/user',\n body: options,\n }).then((res) => res.body);\n },\n\n /**\n * Validated One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @param {string} options.oneTimePassword\n * @returns {Promise}\n */\n validateOTP(options = {}) {\n if (!(options.email || options.id) || !options.oneTimePassword) {\n return Promise.reject(\n new Error(\n 'One of `options.email` or `options.id` and `options.oneTimePassword` are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n return this.request({\n uri: this.webex.config.credentials.validateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Determines if the specified user needs to signup or can signin.\n * Triggers activation email if client credentials are used\n * @param {Object} options\n * @param {string} options.email (required)\n * @param {string} options.reqId required if need to check email status\n * @param {string} options.preloginId\n * @returns {Promise<Object>}\n */\n verify(options) {\n options = {...this.config.verifyDefaults, ...options};\n const {email} = options;\n\n if (!email) {\n return Promise.reject(new Error('`options.email` is required'));\n }\n\n return this.webex.internal.services\n .collectPreauthCatalog({email})\n .then(() => this.webex.credentials.getUserToken())\n .catch(() => this.webex.credentials.getClientToken())\n .then((token) =>\n this.request({\n service: 'atlas',\n resource: 'users/activations',\n method: 'POST',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': options.preloginId,\n },\n body: options,\n shouldRefreshAccessToken: false,\n })\n )\n .then((res) => {\n if (res.body.hasPassword || res.body.sso) {\n this.hasPassword = true;\n }\n\n return res.body;\n });\n },\n\n /**\n * If the passed-in lookupCI is true, retrieve the user's\n * CI from Atlas and return the URL's via a Promise.\n * Otherwise, return current CI in config via a Promise.\n * Useful in a Promise chain to retrieve the CI based on\n * conditions like Federation enabled, and suppresses sending\n * an additional email to the user, since this is just a\n * look-up.\n * @param {string} email (required)\n * @param {boolean} lookupCI (required)\n * @returns {Promise<Object>}\n */\n getUserCI(email, lookupCI) {\n if (lookupCI) {\n // call verify first to get the user's CI, but suppress sending another email\n const verifyOptions = {\n email,\n suppressEmail: true,\n };\n\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\n }\n\n return Promise.resolve({\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\n identityUrl: this.webex.config.credentials.identity.url,\n });\n },\n\n /**\n * Extracts the uuid from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractUUID(user) {\n return user.entryUUID || user.id || user;\n },\n\n /**\n * Extracts the email address from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractEmailAddress(user) {\n return user.email || user.emailAddress || user.entryEmail || user;\n },\n});\n\nexport default User;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","default","type","session","store","UserUUIDStore","activate","verificationToken","confirmationCode","id","reject","Error","scope","webex","config","credentials","activateOptions","request","uri","activationUrl","method","body","auth","user","client_id","pass","client_secret","sendImmediately","then","res","set","supertoken","tokenData","asUUID","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","service","resource","tap","getByEmail","userExists","catch","initialize","args","prototype","add","register","verify","_setUser","getUserToken","token","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","password","schemas","updateName","givenName","familyName","displayName","name","update","validateOTP","oneTimePassword","validateOtpUrl","verifyDefaults","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail"],"sources":["user.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isArray} from 'lodash';\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\n\nimport UserUUIDBatcher from './user-uuid-batcher';\nimport UserUUIDStore from './user-uuid-store';\n\n/**\n * @class\n */\nconst User = WebexPlugin.extend({\n namespace: 'User',\n\n children: {\n batcher: UserUUIDBatcher,\n },\n\n props: {\n /**\n * Indicates if the current user is known to have a password.\n * @instance\n * @memberof User\n * @type {boolean}\n */\n hasPassword: {\n default: false,\n type: 'boolean',\n },\n },\n\n session: {\n store: {\n default() {\n return new UserUUIDStore();\n },\n type: 'any',\n },\n },\n\n @waitForValue('@')\n /**\n * Activates a Webex user account and exchanges for user token.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\n * @param {Object} options.id (required -- optional if verification token is provided)\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\n * @param {Object} options.email (required with verificationToken for Federation/global user)\n * @returns {Promise} Resolves with a userSession\n */\n activate(options = {}) {\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\n return Promise.reject(\n new Error(\n 'either options.verificationToken is required or both options.confirmationCode and options.id are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n // if we have options.email and options.verificationToken\n // and Federation flag is enabled, flag that we need to\n // lookup user's CI.\n const activateOptions = {...options};\n\n delete activateOptions.email;\n\n return this.request({\n uri: this.webex.config.credentials.activationUrl,\n method: 'POST',\n body: activateOptions,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n sendImmediately: true,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Converts a user-identifying object to a uuid, perhaps by doing a network\n * lookup\n * @param {string|Object} user\n * @param {Object} options\n * @param {boolean} options.create if true, ensures the return UUID refers to\n * an existing user (rather than creating one deterministically based on email\n * address), even if that user must be created\n * @returns {Promise<string>}\n */\n asUUID(user, options) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (isArray(user)) {\n return Promise.all(user.map((u) => this.asUUID(u, options)));\n }\n\n const id = this._extractUUID(user);\n\n if (!(options && options.force) && patterns.uuid.test(id)) {\n return Promise.resolve(id);\n }\n\n const email = this._extractEmailAddress(user);\n\n if (!patterns.email.test(email)) {\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\n }\n\n return this.getUUID(email, options);\n },\n\n /**\n * Requests a uuid from the api\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n fetchUUID(email, options) {\n return this.batcher\n .request({\n email,\n create: options && options.create,\n })\n .then((user) => this.recordUUID({emailAddress: email, ...user}).then(() => user.id));\n },\n /**\n * Generates One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @returns {Promise}\n */\n generateOTP(options = {}) {\n if (!(options.email || options.id)) {\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\n }\n\n return this.request({\n uri: this.webex.config.credentials.generateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => res.body);\n },\n\n /**\n * Fetches details about the current user\n * @returns {Promise<Object>}\n */\n get() {\n return this.request({\n service: 'conversation',\n resource: 'users',\n })\n .then((res) => res.body)\n .then(\n tap((user) =>\n this.recordUUID({\n id: user.id,\n // CI endpoints don't use the same user format as actors, so, email may\n // be in one of a few fields\n emailAddress: user.email || user.emailAddress,\n })\n )\n );\n },\n\n /**\n * Converts an email address to a uuid, perhaps by doing a network lookup\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\n getUUID(email, options) {\n return this.store\n .getByEmail(email)\n .then((user) => {\n if (options && options.create && !user.userExists) {\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('No id recorded for specified user'));\n }\n\n return user.id;\n })\n .catch(() => this.fetchUUID(email, options));\n },\n\n @persist('@')\n initialize(...args) {\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Caches the uuid for the specified email address\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n recordUUID(user) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` must be a uuid'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\n }\n\n return this.store.add(user);\n },\n\n @deprecated('Use User#verify()')\n register(...args) {\n return this.verify(...args);\n },\n\n /**\n * Updates a user with webex.\n * @param {Object} body\n * @private\n * @returns {Promise} Resolves with a response from PATCH request\n */\n _setUser(body) {\n return this.webex.credentials.getUserToken().then((token) =>\n this.request({\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\n method: 'PATCH',\n headers: {\n authorization: token.toString(),\n },\n body,\n })\n );\n },\n\n /**\n * Updates a user's password with webex.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {string} options.password (required)\n * @param {string} options.email (required when federation enabled)\n * @returns {Promise} Resolves with complete user object containing new password\n */\n setPassword(options) {\n options = options || {};\n if (!options.password) {\n return Promise.reject(new Error('`options.password` is required'));\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n password: options.password,\n }).then((res) => {\n this.hasPassword = true;\n\n return res.body;\n });\n },\n\n /**\n * Updates a user's name with webex.\n * @instance\n * @memberof User\n * @param {string} givenName\n * @param {string} familyName\n * @param {string} displayName\n * @returns {Promise<Object>}\n */\n updateName({givenName, familyName, displayName} = {}) {\n if (!(givenName || familyName || displayName)) {\n return Promise.reject(\n new Error('One of `givenName` and `familyName` or `displayName` is required')\n );\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n name: {givenName, familyName},\n displayName,\n }).then((res) => res.body);\n },\n\n /**\n * Updates the current user's display name\n * @param {Object} options\n * @param {string} options.displayName\n * @returns {Promise<Object>}\n */\n update(options) {\n options = options || {};\n if (!options.displayName) {\n return Promise.reject(new Error('`options.displayName` is required'));\n }\n\n return this.request({\n method: 'PATCH',\n service: 'conversation',\n resource: 'users/user',\n body: options,\n }).then((res) => res.body);\n },\n\n /**\n * Validated One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @param {string} options.oneTimePassword\n * @returns {Promise}\n */\n validateOTP(options = {}) {\n if (!(options.email || options.id) || !options.oneTimePassword) {\n return Promise.reject(\n new Error(\n 'One of `options.email` or `options.id` and `options.oneTimePassword` are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n return this.request({\n uri: this.webex.config.credentials.validateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Determines if the specified user needs to signup or can signin.\n * Triggers activation email if client credentials are used\n * @param {Object} options\n * @param {string} options.email (required)\n * @param {string} options.reqId required if need to check email status\n * @param {string} options.preloginId\n * @returns {Promise<Object>}\n */\n verify(options) {\n options = {...this.config.verifyDefaults, ...options};\n const {email} = options;\n\n if (!email) {\n return Promise.reject(new Error('`options.email` is required'));\n }\n\n return this.webex.internal.services\n .collectPreauthCatalog({email})\n .then(() => this.webex.credentials.getUserToken())\n .catch(() => this.webex.credentials.getClientToken())\n .then((token) =>\n this.request({\n service: 'atlas',\n resource: 'users/activations',\n method: 'POST',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': options.preloginId,\n },\n body: options,\n shouldRefreshAccessToken: false,\n })\n )\n .then((res) => {\n if (res.body.hasPassword || res.body.sso) {\n this.hasPassword = true;\n }\n\n return res.body;\n });\n },\n\n /**\n * If the passed-in lookupCI is true, retrieve the user's\n * CI from Atlas and return the URL's via a Promise.\n * Otherwise, return current CI in config via a Promise.\n * Useful in a Promise chain to retrieve the CI based on\n * conditions like Federation enabled, and suppresses sending\n * an additional email to the user, since this is just a\n * look-up.\n * @param {string} email (required)\n * @param {boolean} lookupCI (required)\n * @returns {Promise<Object>}\n */\n getUserCI(email, lookupCI) {\n if (lookupCI) {\n // call verify first to get the user's CI, but suppress sending another email\n const verifyOptions = {\n email,\n suppressEmail: true,\n };\n\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\n }\n\n return Promise.resolve({\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\n identityUrl: this.webex.config.credentials.identity.url,\n });\n },\n\n /**\n * Extracts the uuid from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractUUID(user) {\n return user.entryUUID || user.id || user;\n },\n\n /**\n * Extracts the email address from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractEmailAddress(user) {\n return user.email || user.emailAddress || user.entryEmail || user;\n },\n});\n\nexport default User;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-user",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"sinon": "^9.2.4"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@webex/common": "3.0.0-beta.
|
|
27
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
28
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
29
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
30
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
31
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
32
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
26
|
+
"@webex/common": "3.0.0-beta.16",
|
|
27
|
+
"@webex/internal-plugin-device": "3.0.0-beta.16",
|
|
28
|
+
"@webex/internal-plugin-user": "3.0.0-beta.16",
|
|
29
|
+
"@webex/test-helper-chai": "3.0.0-beta.16",
|
|
30
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.16",
|
|
31
|
+
"@webex/test-helper-test-users": "3.0.0-beta.16",
|
|
32
|
+
"@webex/webex-core": "3.0.0-beta.16",
|
|
33
33
|
"lodash": "^4.17.21",
|
|
34
34
|
"uuid": "^3.3.2"
|
|
35
35
|
}
|