@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 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
  */
@@ -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":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,eAAe,EAAEC,OAAO,CAACC,GAAR,CAAYC,iBAAZ,IAAiC,uCAD9B;MAEpBC,KAAK,EAAEH,OAAO,CAACC,GAAR,CAAYC,iBAAZ,IAAiC;IAFpB;EADhB,CADK;EAQbE,IAAI,EAAE;IACJC,WAAW,EAAE,GADT;IAEJC,eAAe,EAAE,GAFb;IAGJC,cAAc,EAAE,IAHZ;IAIJC,cAAc,EAAE;MACdC,KAAK,EAAE;IADO;EAJZ;AARO,C"}
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":";;;;;;;;;;;;;;;;;AAGA;;AAEA;;AAEA;;AACA;;AARA;AACA;AACA;AAQA,IAAAA,iCAAA,EAAuB,MAAvB,EAA+BC,aAA/B,EAAqC;EACnCC,MAAM,EAANA;AADmC,CAArC"}
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.15"
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":"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"}
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":"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"}
@@ -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":"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"}
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
- options.scope = this.webex.config.credentials.scope; // if we have options.email and options.verificationToken
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
- givenName = _ref.givenName,
355
- familyName = _ref.familyName,
356
- displayName = _ref.displayName;
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
- email = _options.email;
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.15"
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.15",
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.15",
27
- "@webex/internal-plugin-device": "3.0.0-beta.15",
28
- "@webex/internal-plugin-user": "3.0.0-beta.15",
29
- "@webex/test-helper-chai": "3.0.0-beta.15",
30
- "@webex/test-helper-mock-webex": "3.0.0-beta.15",
31
- "@webex/test-helper-test-users": "3.0.0-beta.15",
32
- "@webex/webex-core": "3.0.0-beta.15",
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
  }