@webex/internal-plugin-user 2.59.2 → 2.59.3-next.1

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/user.js CHANGED
@@ -24,8 +24,8 @@ var _userUuidStore = _interopRequireDefault(require("./user-uuid-store"));
24
24
  var _dec, _dec2, _dec3, _dec4, _obj;
25
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; }
26
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; }
27
- /**
28
- * @class
27
+ /**
28
+ * @class
29
29
  */
30
30
  var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@'), _dec2 = (0, _common.oneFlight)({
31
31
  keyFactory: function keyFactory(email, options) {
@@ -37,11 +37,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
37
37
  batcher: _userUuidBatcher.default
38
38
  },
39
39
  props: {
40
- /**
41
- * Indicates if the current user is known to have a password.
42
- * @instance
43
- * @memberof User
44
- * @type {boolean}
40
+ /**
41
+ * Indicates if the current user is known to have a password.
42
+ * @instance
43
+ * @memberof User
44
+ * @type {boolean}
45
45
  */
46
46
  hasPassword: {
47
47
  default: false,
@@ -56,16 +56,16 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
56
56
  type: 'any'
57
57
  }
58
58
  },
59
- /**
60
- * Activates a Webex user account and exchanges for user token.
61
- * @instance
62
- * @memberof User
63
- * @param {Object} options
64
- * @param {Object} options.confirmationCode (required -- optional if verification token is provided)
65
- * @param {Object} options.id (required -- optional if verification token is provided)
66
- * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)
67
- * @param {Object} options.email (required with verificationToken for Federation/global user)
68
- * @returns {Promise} Resolves with a userSession
59
+ /**
60
+ * Activates a Webex user account and exchanges for user token.
61
+ * @instance
62
+ * @memberof User
63
+ * @param {Object} options
64
+ * @param {Object} options.confirmationCode (required -- optional if verification token is provided)
65
+ * @param {Object} options.id (required -- optional if verification token is provided)
66
+ * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)
67
+ * @param {Object} options.email (required with verificationToken for Federation/global user)
68
+ * @returns {Promise} Resolves with a userSession
69
69
  */
70
70
  activate: function activate() {
71
71
  var _this = this;
@@ -96,15 +96,15 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
96
96
  return res.body;
97
97
  });
98
98
  },
99
- /**
100
- * Converts a user-identifying object to a uuid, perhaps by doing a network
101
- * lookup
102
- * @param {string|Object} user
103
- * @param {Object} options
104
- * @param {boolean} options.create if true, ensures the return UUID refers to
105
- * an existing user (rather than creating one deterministically based on email
106
- * address), even if that user must be created
107
- * @returns {Promise<string>}
99
+ /**
100
+ * Converts a user-identifying object to a uuid, perhaps by doing a network
101
+ * lookup
102
+ * @param {string|Object} user
103
+ * @param {Object} options
104
+ * @param {boolean} options.create if true, ensures the return UUID refers to
105
+ * an existing user (rather than creating one deterministically based on email
106
+ * address), even if that user must be created
107
+ * @returns {Promise<string>}
108
108
  */
109
109
  asUUID: function asUUID(user, options) {
110
110
  var _this2 = this;
@@ -126,12 +126,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
126
126
  }
127
127
  return this.getUUID(email, options);
128
128
  },
129
- /**
130
- * Requests a uuid from the api
131
- * @param {string} email
132
- * @param {Object} options
133
- * @param {boolean} options.create
134
- * @returns {Promise<string>}
129
+ /**
130
+ * Requests a uuid from the api
131
+ * @param {string} email
132
+ * @param {Object} options
133
+ * @param {boolean} options.create
134
+ * @returns {Promise<string>}
135
135
  */
136
136
  fetchUUID: function fetchUUID(email, options) {
137
137
  var _this3 = this;
@@ -146,13 +146,13 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
146
146
  });
147
147
  });
148
148
  },
149
- /**
150
- * Generates One Time Password.
151
- * @instance
152
- * @param {Object} options
153
- * @param {string} options.email
154
- * @param {string} options.id
155
- * @returns {Promise}
149
+ /**
150
+ * Generates One Time Password.
151
+ * @instance
152
+ * @param {Object} options
153
+ * @param {string} options.email
154
+ * @param {string} options.id
155
+ * @returns {Promise}
156
156
  */
157
157
  generateOTP: function generateOTP() {
158
158
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -171,9 +171,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
171
171
  return res.body;
172
172
  });
173
173
  },
174
- /**
175
- * Fetches details about the current user
176
- * @returns {Promise<Object>}
174
+ /**
175
+ * Fetches details about the current user
176
+ * @returns {Promise<Object>}
177
177
  */
178
178
  get: function get() {
179
179
  var _this4 = this;
@@ -211,12 +211,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
211
211
  }
212
212
  return (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, args);
213
213
  },
214
- /**
215
- * Caches the uuid for the specified email address
216
- * @param {Object} user
217
- * @param {string} user.id
218
- * @param {string} user.emailAddress
219
- * @returns {Promise}
214
+ /**
215
+ * Caches the uuid for the specified email address
216
+ * @param {Object} user
217
+ * @param {string} user.id
218
+ * @param {string} user.emailAddress
219
+ * @returns {Promise}
220
220
  */
221
221
  recordUUID: function recordUUID(user) {
222
222
  if (!user) {
@@ -239,11 +239,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
239
239
  register: function register() {
240
240
  return this.verify.apply(this, arguments);
241
241
  },
242
- /**
243
- * Updates a user with webex.
244
- * @param {Object} body
245
- * @private
246
- * @returns {Promise} Resolves with a response from PATCH request
242
+ /**
243
+ * Updates a user with webex.
244
+ * @param {Object} body
245
+ * @private
246
+ * @returns {Promise} Resolves with a response from PATCH request
247
247
  */
248
248
  _setUser: function _setUser(body) {
249
249
  var _this6 = this;
@@ -258,14 +258,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
258
258
  });
259
259
  });
260
260
  },
261
- /**
262
- * Updates a user's password with webex.
263
- * @instance
264
- * @memberof User
265
- * @param {Object} options
266
- * @param {string} options.password (required)
267
- * @param {string} options.email (required when federation enabled)
268
- * @returns {Promise} Resolves with complete user object containing new password
261
+ /**
262
+ * Updates a user's password with webex.
263
+ * @instance
264
+ * @memberof User
265
+ * @param {Object} options
266
+ * @param {string} options.password (required)
267
+ * @param {string} options.email (required when federation enabled)
268
+ * @returns {Promise} Resolves with complete user object containing new password
269
269
  */
270
270
  setPassword: function setPassword(options) {
271
271
  var _this7 = this;
@@ -281,14 +281,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
281
281
  return res.body;
282
282
  });
283
283
  },
284
- /**
285
- * Updates a user's name with webex.
286
- * @instance
287
- * @memberof User
288
- * @param {string} givenName
289
- * @param {string} familyName
290
- * @param {string} displayName
291
- * @returns {Promise<Object>}
284
+ /**
285
+ * Updates a user's name with webex.
286
+ * @instance
287
+ * @memberof User
288
+ * @param {string} givenName
289
+ * @param {string} familyName
290
+ * @param {string} displayName
291
+ * @returns {Promise<Object>}
292
292
  */
293
293
  updateName: function updateName() {
294
294
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -309,11 +309,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
309
309
  return res.body;
310
310
  });
311
311
  },
312
- /**
313
- * Updates the current user's display name
314
- * @param {Object} options
315
- * @param {string} options.displayName
316
- * @returns {Promise<Object>}
312
+ /**
313
+ * Updates the current user's display name
314
+ * @param {Object} options
315
+ * @param {string} options.displayName
316
+ * @returns {Promise<Object>}
317
317
  */
318
318
  update: function update(options) {
319
319
  options = options || {};
@@ -329,14 +329,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
329
329
  return res.body;
330
330
  });
331
331
  },
332
- /**
333
- * Validated One Time Password.
334
- * @instance
335
- * @param {Object} options
336
- * @param {string} options.email
337
- * @param {string} options.id
338
- * @param {string} options.oneTimePassword
339
- * @returns {Promise}
332
+ /**
333
+ * Validated One Time Password.
334
+ * @instance
335
+ * @param {Object} options
336
+ * @param {string} options.email
337
+ * @param {string} options.id
338
+ * @param {string} options.oneTimePassword
339
+ * @returns {Promise}
340
340
  */
341
341
  validateOTP: function validateOTP() {
342
342
  var _this8 = this;
@@ -360,14 +360,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
360
360
  return res.body;
361
361
  });
362
362
  },
363
- /**
364
- * Determines if the specified user needs to signup or can signin.
365
- * Triggers activation email if client credentials are used
366
- * @param {Object} options
367
- * @param {string} options.email (required)
368
- * @param {string} options.reqId required if need to check email status
369
- * @param {string} options.preloginId
370
- * @returns {Promise<Object>}
363
+ /**
364
+ * Determines if the specified user needs to signup or can signin.
365
+ * Triggers activation email if client credentials are used
366
+ * @param {Object} options
367
+ * @param {string} options.email (required)
368
+ * @param {string} options.reqId required if need to check email status
369
+ * @param {string} options.preloginId
370
+ * @returns {Promise<Object>}
371
371
  */
372
372
  verify: function verify(options) {
373
373
  var _this9 = this;
@@ -402,17 +402,17 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
402
402
  return res.body;
403
403
  });
404
404
  },
405
- /**
406
- * If the passed-in lookupCI is true, retrieve the user's
407
- * CI from Atlas and return the URL's via a Promise.
408
- * Otherwise, return current CI in config via a Promise.
409
- * Useful in a Promise chain to retrieve the CI based on
410
- * conditions like Federation enabled, and suppresses sending
411
- * an additional email to the user, since this is just a
412
- * look-up.
413
- * @param {string} email (required)
414
- * @param {boolean} lookupCI (required)
415
- * @returns {Promise<Object>}
405
+ /**
406
+ * If the passed-in lookupCI is true, retrieve the user's
407
+ * CI from Atlas and return the URL's via a Promise.
408
+ * Otherwise, return current CI in config via a Promise.
409
+ * Useful in a Promise chain to retrieve the CI based on
410
+ * conditions like Federation enabled, and suppresses sending
411
+ * an additional email to the user, since this is just a
412
+ * look-up.
413
+ * @param {string} email (required)
414
+ * @param {boolean} lookupCI (required)
415
+ * @returns {Promise<Object>}
416
416
  */
417
417
  getUserCI: function getUserCI(email, lookupCI) {
418
418
  if (lookupCI) {
@@ -430,25 +430,25 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
430
430
  identityUrl: this.webex.config.credentials.identity.url
431
431
  });
432
432
  },
433
- /**
434
- * Extracts the uuid from a user identifying object
435
- * @param {string|Object} user
436
- * @private
437
- * @returns {string}
433
+ /**
434
+ * Extracts the uuid from a user identifying object
435
+ * @param {string|Object} user
436
+ * @private
437
+ * @returns {string}
438
438
  */
439
439
  _extractUUID: function _extractUUID(user) {
440
440
  return user.entryUUID || user.id || user;
441
441
  },
442
- /**
443
- * Extracts the email address from a user identifying object
444
- * @param {string|Object} user
445
- * @private
446
- * @returns {string}
442
+ /**
443
+ * Extracts the email address from a user identifying object
444
+ * @param {string|Object} user
445
+ * @private
446
+ * @returns {string}
447
447
  */
448
448
  _extractEmailAddress: function _extractEmailAddress(user) {
449
449
  return user.email || user.emailAddress || user.entryEmail || user;
450
450
  },
451
- version: "2.59.2"
451
+ version: "2.59.0"
452
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)));
453
453
  var _default2 = User;
454
454
  exports.default = _default2;
package/dist/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_webexCore","_userUuidBatcher","_interopRequireDefault","_userUuidStore","_dec","_dec2","_dec3","_dec4","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","type","session","store","_default","UserUUIDStore","activate","_this","undefined","verificationToken","confirmationCode","id","_promise","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","_this2","_isArray2","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","_this3","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","_this4","service","resource","tap","_this5","getByEmail","userExists","catch","initialize","_len","args","Array","_key","_apply","prototype","add","register","verify","_setUser","_this6","getUserToken","token","concat","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","_this7","password","schemas","updateName","_ref","givenName","familyName","displayName","name","update","validateOTP","_this8","oneTimePassword","validateOtpUrl","_this9","verifyDefaults","_options","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"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":["_common","require","_webexCore","_userUuidBatcher","_interopRequireDefault","_userUuidStore","_dec","_dec2","_dec3","_dec4","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","type","session","store","_default","UserUUIDStore","activate","_this","undefined","verificationToken","confirmationCode","id","_promise","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","_this2","_isArray2","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","_this3","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","_this4","service","resource","tap","_this5","getByEmail","userExists","catch","initialize","_len","args","Array","_key","_apply","prototype","add","register","verify","_setUser","_this6","getUserToken","token","concat","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","_this7","password","schemas","updateName","_ref","givenName","familyName","displayName","name","update","validateOTP","_this8","oneTimePassword","validateOtpUrl","_this9","verifyDefaults","_options","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"sources":["user.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {isArray} from 'lodash';\r\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\r\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\r\n\r\nimport UserUUIDBatcher from './user-uuid-batcher';\r\nimport UserUUIDStore from './user-uuid-store';\r\n\r\n/**\r\n * @class\r\n */\r\nconst User = WebexPlugin.extend({\r\n namespace: 'User',\r\n\r\n children: {\r\n batcher: UserUUIDBatcher,\r\n },\r\n\r\n props: {\r\n /**\r\n * Indicates if the current user is known to have a password.\r\n * @instance\r\n * @memberof User\r\n * @type {boolean}\r\n */\r\n hasPassword: {\r\n default: false,\r\n type: 'boolean',\r\n },\r\n },\r\n\r\n session: {\r\n store: {\r\n default() {\r\n return new UserUUIDStore();\r\n },\r\n type: 'any',\r\n },\r\n },\r\n\r\n @waitForValue('@')\r\n /**\r\n * Activates a Webex user account and exchanges for user token.\r\n * @instance\r\n * @memberof User\r\n * @param {Object} options\r\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\r\n * @param {Object} options.id (required -- optional if verification token is provided)\r\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\r\n * @param {Object} options.email (required with verificationToken for Federation/global user)\r\n * @returns {Promise} Resolves with a userSession\r\n */\r\n activate(options = {}) {\r\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\r\n return Promise.reject(\r\n new Error(\r\n 'either options.verificationToken is required or both options.confirmationCode and options.id are required'\r\n )\r\n );\r\n }\r\n\r\n options.scope = this.webex.config.credentials.scope;\r\n\r\n // if we have options.email and options.verificationToken\r\n // and Federation flag is enabled, flag that we need to\r\n // lookup user's CI.\r\n const activateOptions = {...options};\r\n\r\n delete activateOptions.email;\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.activationUrl,\r\n method: 'POST',\r\n body: activateOptions,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n sendImmediately: true,\r\n },\r\n }).then((res) => {\r\n this.webex.credentials.set({supertoken: res.body.tokenData});\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Converts a user-identifying object to a uuid, perhaps by doing a network\r\n * lookup\r\n * @param {string|Object} user\r\n * @param {Object} options\r\n * @param {boolean} options.create if true, ensures the return UUID refers to\r\n * an existing user (rather than creating one deterministically based on email\r\n * address), even if that user must be created\r\n * @returns {Promise<string>}\r\n */\r\n asUUID(user, options) {\r\n if (!user) {\r\n return Promise.reject(new Error('`user` is required'));\r\n }\r\n\r\n if (isArray(user)) {\r\n return Promise.all(user.map((u) => this.asUUID(u, options)));\r\n }\r\n\r\n const id = this._extractUUID(user);\r\n\r\n if (!(options && options.force) && patterns.uuid.test(id)) {\r\n return Promise.resolve(id);\r\n }\r\n\r\n const email = this._extractEmailAddress(user);\r\n\r\n if (!patterns.email.test(email)) {\r\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\r\n }\r\n\r\n return this.getUUID(email, options);\r\n },\r\n\r\n /**\r\n * Requests a uuid from the api\r\n * @param {string} email\r\n * @param {Object} options\r\n * @param {boolean} options.create\r\n * @returns {Promise<string>}\r\n */\r\n fetchUUID(email, options) {\r\n return this.batcher\r\n .request({\r\n email,\r\n create: options && options.create,\r\n })\r\n .then((user) => this.recordUUID({emailAddress: email, ...user}).then(() => user.id));\r\n },\r\n /**\r\n * Generates One Time Password.\r\n * @instance\r\n * @param {Object} options\r\n * @param {string} options.email\r\n * @param {string} options.id\r\n * @returns {Promise}\r\n */\r\n generateOTP(options = {}) {\r\n if (!(options.email || options.id)) {\r\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\r\n }\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.generateOtpUrl,\r\n method: 'POST',\r\n body: options,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n },\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Fetches details about the current user\r\n * @returns {Promise<Object>}\r\n */\r\n get() {\r\n return this.request({\r\n service: 'conversation',\r\n resource: 'users',\r\n })\r\n .then((res) => res.body)\r\n .then(\r\n tap((user) =>\r\n this.recordUUID({\r\n id: user.id,\r\n // CI endpoints don't use the same user format as actors, so, email may\r\n // be in one of a few fields\r\n emailAddress: user.email || user.emailAddress,\r\n })\r\n )\r\n );\r\n },\r\n\r\n /**\r\n * Converts an email address to a uuid, perhaps by doing a network lookup\r\n * @param {string} email\r\n * @param {Object} options\r\n * @param {boolean} options.create\r\n * @returns {Promise<string>}\r\n */\r\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\r\n getUUID(email, options) {\r\n return this.store\r\n .getByEmail(email)\r\n .then((user) => {\r\n if (options && options.create && !user.userExists) {\r\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\r\n }\r\n\r\n if (!user.id) {\r\n return Promise.reject(new Error('No id recorded for specified user'));\r\n }\r\n\r\n return user.id;\r\n })\r\n .catch(() => this.fetchUUID(email, options));\r\n },\r\n\r\n @persist('@')\r\n initialize(...args) {\r\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\r\n },\r\n\r\n /**\r\n * Caches the uuid for the specified email address\r\n * @param {Object} user\r\n * @param {string} user.id\r\n * @param {string} user.emailAddress\r\n * @returns {Promise}\r\n */\r\n recordUUID(user) {\r\n if (!user) {\r\n return Promise.reject(new Error('`user` is required'));\r\n }\r\n\r\n if (!user.id) {\r\n return Promise.reject(new Error('`user.id` is required'));\r\n }\r\n\r\n if (!patterns.uuid.test(user.id)) {\r\n return Promise.reject(new Error('`user.id` must be a uuid'));\r\n }\r\n\r\n if (!user.emailAddress) {\r\n return Promise.reject(new Error('`user.emailAddress` is required'));\r\n }\r\n\r\n if (!patterns.email.test(user.emailAddress)) {\r\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\r\n }\r\n\r\n return this.store.add(user);\r\n },\r\n\r\n @deprecated('Use User#verify()')\r\n register(...args) {\r\n return this.verify(...args);\r\n },\r\n\r\n /**\r\n * Updates a user with webex.\r\n * @param {Object} body\r\n * @private\r\n * @returns {Promise} Resolves with a response from PATCH request\r\n */\r\n _setUser(body) {\r\n return this.webex.credentials.getUserToken().then((token) =>\r\n this.request({\r\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\r\n method: 'PATCH',\r\n headers: {\r\n authorization: token.toString(),\r\n },\r\n body,\r\n })\r\n );\r\n },\r\n\r\n /**\r\n * Updates a user's password with webex.\r\n * @instance\r\n * @memberof User\r\n * @param {Object} options\r\n * @param {string} options.password (required)\r\n * @param {string} options.email (required when federation enabled)\r\n * @returns {Promise} Resolves with complete user object containing new password\r\n */\r\n setPassword(options) {\r\n options = options || {};\r\n if (!options.password) {\r\n return Promise.reject(new Error('`options.password` is required'));\r\n }\r\n\r\n return this._setUser({\r\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\r\n password: options.password,\r\n }).then((res) => {\r\n this.hasPassword = true;\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Updates a user's name with webex.\r\n * @instance\r\n * @memberof User\r\n * @param {string} givenName\r\n * @param {string} familyName\r\n * @param {string} displayName\r\n * @returns {Promise<Object>}\r\n */\r\n updateName({givenName, familyName, displayName} = {}) {\r\n if (!(givenName || familyName || displayName)) {\r\n return Promise.reject(\r\n new Error('One of `givenName` and `familyName` or `displayName` is required')\r\n );\r\n }\r\n\r\n return this._setUser({\r\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\r\n name: {givenName, familyName},\r\n displayName,\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Updates the current user's display name\r\n * @param {Object} options\r\n * @param {string} options.displayName\r\n * @returns {Promise<Object>}\r\n */\r\n update(options) {\r\n options = options || {};\r\n if (!options.displayName) {\r\n return Promise.reject(new Error('`options.displayName` is required'));\r\n }\r\n\r\n return this.request({\r\n method: 'PATCH',\r\n service: 'conversation',\r\n resource: 'users/user',\r\n body: options,\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Validated One Time Password.\r\n * @instance\r\n * @param {Object} options\r\n * @param {string} options.email\r\n * @param {string} options.id\r\n * @param {string} options.oneTimePassword\r\n * @returns {Promise}\r\n */\r\n validateOTP(options = {}) {\r\n if (!(options.email || options.id) || !options.oneTimePassword) {\r\n return Promise.reject(\r\n new Error(\r\n 'One of `options.email` or `options.id` and `options.oneTimePassword` are required'\r\n )\r\n );\r\n }\r\n\r\n options.scope = this.webex.config.credentials.scope;\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.validateOtpUrl,\r\n method: 'POST',\r\n body: options,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n },\r\n }).then((res) => {\r\n this.webex.credentials.set({supertoken: res.body.tokenData});\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Determines if the specified user needs to signup or can signin.\r\n * Triggers activation email if client credentials are used\r\n * @param {Object} options\r\n * @param {string} options.email (required)\r\n * @param {string} options.reqId required if need to check email status\r\n * @param {string} options.preloginId\r\n * @returns {Promise<Object>}\r\n */\r\n verify(options) {\r\n options = {...this.config.verifyDefaults, ...options};\r\n const {email} = options;\r\n\r\n if (!email) {\r\n return Promise.reject(new Error('`options.email` is required'));\r\n }\r\n\r\n return this.webex.internal.services\r\n .collectPreauthCatalog({email})\r\n .then(() => this.webex.credentials.getUserToken())\r\n .catch(() => this.webex.credentials.getClientToken())\r\n .then((token) =>\r\n this.request({\r\n service: 'atlas',\r\n resource: 'users/activations',\r\n method: 'POST',\r\n headers: {\r\n authorization: token.toString(),\r\n 'x-prelogin-userid': options.preloginId,\r\n },\r\n body: options,\r\n shouldRefreshAccessToken: false,\r\n })\r\n )\r\n .then((res) => {\r\n if (res.body.hasPassword || res.body.sso) {\r\n this.hasPassword = true;\r\n }\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * If the passed-in lookupCI is true, retrieve the user's\r\n * CI from Atlas and return the URL's via a Promise.\r\n * Otherwise, return current CI in config via a Promise.\r\n * Useful in a Promise chain to retrieve the CI based on\r\n * conditions like Federation enabled, and suppresses sending\r\n * an additional email to the user, since this is just a\r\n * look-up.\r\n * @param {string} email (required)\r\n * @param {boolean} lookupCI (required)\r\n * @returns {Promise<Object>}\r\n */\r\n getUserCI(email, lookupCI) {\r\n if (lookupCI) {\r\n // call verify first to get the user's CI, but suppress sending another email\r\n const verifyOptions = {\r\n email,\r\n suppressEmail: true,\r\n };\r\n\r\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\r\n }\r\n\r\n return Promise.resolve({\r\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\r\n identityUrl: this.webex.config.credentials.identity.url,\r\n });\r\n },\r\n\r\n /**\r\n * Extracts the uuid from a user identifying object\r\n * @param {string|Object} user\r\n * @private\r\n * @returns {string}\r\n */\r\n _extractUUID(user) {\r\n return user.entryUUID || user.id || user;\r\n },\r\n\r\n /**\r\n * Extracts the email address from a user identifying object\r\n * @param {string|Object} user\r\n * @private\r\n * @returns {string}\r\n */\r\n _extractEmailAddress(user) {\r\n return user.email || user.emailAddress || user.entryEmail || user;\r\n },\r\n});\r\n\r\nexport default User;\r\n"],"mappings":"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"}
package/jest.config.js CHANGED
@@ -1,3 +1,3 @@
1
- const config = require('@webex/jest-config-legacy');
2
-
3
- module.exports = config;
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-user",
3
- "version": "2.59.2",
4
3
  "description": "",
5
4
  "license": "MIT",
6
5
  "main": "dist/index.js",
@@ -21,35 +20,37 @@
21
20
  },
22
21
  "devDependencies": {
23
22
  "@babel/core": "^7.17.10",
24
- "@webex/babel-config-legacy": "2.59.2",
25
- "@webex/eslint-config-legacy": "2.59.2",
26
- "@webex/jest-config-legacy": "2.59.2",
27
- "@webex/legacy-tools": "2.59.2",
28
- "@webex/test-helper-chai": "2.59.2",
29
- "@webex/test-helper-mocha": "2.59.2",
30
- "@webex/test-helper-mock-webex": "2.59.2",
31
- "@webex/test-helper-test-users": "2.59.2",
23
+ "@webex/babel-config-legacy": "^0.0.0",
24
+ "@webex/eslint-config-legacy": "^0.0.0",
25
+ "@webex/jest-config-legacy": "^0.0.0",
26
+ "@webex/legacy-tools": "^0.0.0",
27
+ "@webex/test-helper-chai": "^2.59.3-next.1",
28
+ "@webex/test-helper-mocha": "^2.59.3-next.1",
29
+ "@webex/test-helper-mock-webex": "^2.59.3-next.1",
30
+ "@webex/test-helper-test-users": "^2.59.3-next.1",
32
31
  "eslint": "^8.24.0",
33
32
  "prettier": "^2.7.1",
34
33
  "sinon": "^9.2.4"
35
34
  },
36
35
  "dependencies": {
37
- "@webex/common": "2.59.2",
38
- "@webex/internal-plugin-device": "2.59.2",
39
- "@webex/test-helper-chai": "2.59.2",
40
- "@webex/test-helper-mock-webex": "2.59.2",
41
- "@webex/test-helper-test-users": "2.59.2",
42
- "@webex/webex-core": "2.59.2",
36
+ "@webex/common": "^2.59.3-next.1",
37
+ "@webex/internal-plugin-device": "^2.59.3-next.1",
38
+ "@webex/test-helper-chai": "^2.59.3-next.1",
39
+ "@webex/test-helper-mock-webex": "^2.59.3-next.1",
40
+ "@webex/test-helper-test-users": "^2.59.3-next.1",
41
+ "@webex/webex-core": "^2.59.3-next.1",
43
42
  "lodash": "^4.17.21",
44
43
  "uuid": "^3.3.2"
45
44
  },
46
45
  "scripts": {
47
46
  "build": "yarn build:src",
48
47
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
48
+ "deploy:npm": "yarn npm publish",
49
49
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
50
50
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
51
51
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
52
52
  "test:style": "eslint ./src/**/*.*",
53
53
  "test:unit": "webex-legacy-tools test --unit --runner jest"
54
- }
55
- }
54
+ },
55
+ "version": "2.59.3-next.1"
56
+ }
package/process CHANGED
@@ -1 +1 @@
1
- module.exports = {browser: true};
1
+ module.exports = {browser: true};
package/src/config.js CHANGED
@@ -1,21 +1,21 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- export default {
6
- device: {
7
- preDiscoveryServices: {
8
- atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
9
- atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
10
- },
11
- },
12
-
13
- user: {
14
- batcherWait: 100,
15
- batcherMaxCalls: 100,
16
- batcherMaxWait: 1500,
17
- verifyDefaults: {
18
- reqId: 'WEBCLIENT',
19
- },
20
- },
21
- };
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ export default {
6
+ device: {
7
+ preDiscoveryServices: {
8
+ atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
9
+ atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
10
+ },
11
+ },
12
+
13
+ user: {
14
+ batcherWait: 100,
15
+ batcherMaxCalls: 100,
16
+ batcherMaxWait: 1500,
17
+ verifyDefaults: {
18
+ reqId: 'WEBCLIENT',
19
+ },
20
+ },
21
+ };
package/src/index.js CHANGED
@@ -1,15 +1,15 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
- import '@webex/internal-plugin-device';
5
-
6
- import {registerInternalPlugin} from '@webex/webex-core';
7
-
8
- import User from './user';
9
- import config from './config';
10
-
11
- registerInternalPlugin('user', User, {
12
- config,
13
- });
14
-
15
- export {default} from './user';
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import '@webex/internal-plugin-device';
5
+
6
+ import {registerInternalPlugin} from '@webex/webex-core';
7
+
8
+ import User from './user';
9
+ import config from './config';
10
+
11
+ registerInternalPlugin('user', User, {
12
+ config,
13
+ });
14
+
15
+ export {default} from './user';