@webex/internal-plugin-user 3.0.0-beta.9 → 3.0.0-bnr.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-user
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-user';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.user.WHATEVER
31
-
29
+ webex.internal.user.WHATEVER;
32
30
  ```
33
31
 
34
32
  ## Maintainers
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
-
14
+ require("@webex/internal-plugin-device");
18
15
  var _webexCore = require("@webex/webex-core");
19
-
20
16
  var _user = _interopRequireDefault(require("./user"));
21
-
22
17
  var _config = _interopRequireDefault(require("./config"));
23
-
24
- require("@webex/internal-plugin-device");
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 */\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport User from './user';\nimport config from './config';\n\nimport '@webex/internal-plugin-device';\n\nregisterInternalPlugin('user', User, {\n config\n});\n\nexport {default} from './user';\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;;AAEA;;AACA;;AAEA;;AATA;AACA;AACA;AASA,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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @class
3
+ */
4
+ declare const User: any;
5
+ export default User;
6
+
7
+ export { }
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.34.4"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,17 @@
1
+ declare namespace _default {
2
+ namespace device {
3
+ namespace preDiscoveryServices {
4
+ const atlasServiceUrl: string;
5
+ const atlas: string;
6
+ }
7
+ }
8
+ namespace user {
9
+ const batcherWait: number;
10
+ const batcherMaxCalls: number;
11
+ const batcherMaxWait: number;
12
+ namespace verifyDefaults {
13
+ const reqId: string;
14
+ }
15
+ }
16
+ }
17
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default } from "./user";
@@ -0,0 +1,5 @@
1
+ export default UserUUIDBatcher;
2
+ /**
3
+ * @class
4
+ */
5
+ declare const UserUUIDBatcher: any;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @class
3
+ */
4
+ export default class UserUUIDStore {
5
+ /**
6
+ * Adds a user object to the store
7
+ * @param {Object} user
8
+ * @param {string} user.id
9
+ * @param {string} user.emailAddress
10
+ * @returns {Promise}
11
+ */
12
+ add(user: {
13
+ id: string;
14
+ emailAddress: string;
15
+ }): Promise<any>;
16
+ /**
17
+ * Retrieves the specified user object from the store
18
+ * @param {string} id
19
+ * @returns {Promise<Object>}
20
+ */
21
+ get(id: string): Promise<any>;
22
+ /**
23
+ * Retrieves the specified user object by id from the store
24
+ * @param {Object} id
25
+ * @returns {Promise<Object>}
26
+ */
27
+ getById(id: any): Promise<any>;
28
+ /**
29
+ * Retrieves the specified user object by id from the store
30
+ * @param {Object} email
31
+ * @returns {Promise<Object>}
32
+ */
33
+ getByEmail(email: any): Promise<any>;
34
+ }
@@ -0,0 +1,5 @@
1
+ export default User;
2
+ /**
3
+ * @class
4
+ */
5
+ declare const User: any;
@@ -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.9"
128
+ version: "3.0.0-bnr.0"
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(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 handleItemFailure(email, response) {\n return this.getDeferredForResponse(email)\n .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)\n .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,38 +1,31 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
3
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
10
  _Object$defineProperty(exports, "__esModule", {
8
11
  value: true
9
12
  });
10
-
11
13
  exports.default = void 0;
12
-
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
-
15
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
17
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
18
-
19
18
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
20
-
21
19
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
-
23
- var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
24
-
25
20
  var _common = require("@webex/common");
26
-
27
- /*!
28
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
29
- */
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; }
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; }
30
23
  var usersByEmail = new _weakMap.default();
31
24
  var usersById = new _weakMap.default();
25
+
32
26
  /**
33
27
  * @class
34
28
  */
35
-
36
29
  var UserUUIDStore = /*#__PURE__*/function () {
37
30
  /**
38
31
  * @constructs {UserUUIDStore}
@@ -42,6 +35,7 @@ var UserUUIDStore = /*#__PURE__*/function () {
42
35
  usersByEmail.set(this, new _map.default());
43
36
  usersById.set(this, new _map.default());
44
37
  }
38
+
45
39
  /**
46
40
  * Adds a user object to the store
47
41
  * @param {Object} user
@@ -49,97 +43,83 @@ var UserUUIDStore = /*#__PURE__*/function () {
49
43
  * @param {string} user.emailAddress
50
44
  * @returns {Promise}
51
45
  */
52
-
53
-
54
46
  (0, _createClass2.default)(UserUUIDStore, [{
55
47
  key: "add",
56
48
  value: function add(user) {
57
49
  var _this = this;
58
-
59
50
  if (!user.id) {
60
51
  return _promise.default.reject(new Error('`user.id` is required'));
61
52
  }
62
-
63
53
  if (!user.emailAddress) {
64
54
  return _promise.default.reject(new Error('`user.emailAddress` is required'));
65
55
  }
66
-
67
56
  if (!_common.patterns.uuid.test(user.id)) {
68
57
  return _promise.default.reject(new Error('`user.id` does not appear to be a uuid'));
69
58
  }
70
-
71
59
  if (!_common.patterns.email.test(user.emailAddress)) {
72
60
  return _promise.default.reject(new Error('`user.emailAddress` does not appear to be an email address'));
73
61
  }
74
-
75
62
  var p1 = this.getById(user.id).then(function (u) {
76
- return usersById.get(_this).set(user.id, (0, _assign.default)({}, u, user));
63
+ return usersById.get(_this).set(user.id, _objectSpread(_objectSpread({}, u), user));
77
64
  }).catch(function () {
78
- return usersById.get(_this).set(user.id, (0, _assign.default)({}, user));
65
+ return usersById.get(_this).set(user.id, _objectSpread({}, user));
79
66
  });
80
67
  var p2 = this.getByEmail(user.emailAddress).then(function (u) {
81
- return usersByEmail.get(_this).set(user.emailAddress, (0, _assign.default)({}, u, user));
68
+ return usersByEmail.get(_this).set(user.emailAddress, _objectSpread(_objectSpread({}, u), user));
82
69
  }).catch(function () {
83
- return usersByEmail.get(_this).set(user.emailAddress, (0, _assign.default)({}, user));
70
+ return usersByEmail.get(_this).set(user.emailAddress, _objectSpread({}, user));
84
71
  });
85
72
  return _promise.default.all([p1, p2]);
86
73
  }
74
+
87
75
  /**
88
76
  * Retrieves the specified user object from the store
89
77
  * @param {string} id
90
78
  * @returns {Promise<Object>}
91
79
  */
92
-
93
80
  }, {
94
81
  key: "get",
95
82
  value: function get(id) {
96
83
  if (_common.patterns.uuid.test(id)) {
97
84
  return this.getById(id);
98
85
  }
99
-
100
86
  if (_common.patterns.email.test(id)) {
101
87
  return this.getByEmail(id);
102
88
  }
103
-
104
89
  return _promise.default.reject(new Error('`id` does not appear to be a valid user identifier'));
105
90
  }
91
+
106
92
  /**
107
93
  * Retrieves the specified user object by id from the store
108
94
  * @param {Object} id
109
95
  * @returns {Promise<Object>}
110
96
  */
111
-
112
97
  }, {
113
98
  key: "getById",
114
99
  value: function getById(id) {
115
100
  var ret = usersById.get(this).get(id);
116
-
117
101
  if (ret) {
118
102
  return _promise.default.resolve(ret);
119
103
  }
120
-
121
104
  return _promise.default.reject(new Error('No user found by specified id'));
122
105
  }
106
+
123
107
  /**
124
108
  * Retrieves the specified user object by id from the store
125
109
  * @param {Object} email
126
110
  * @returns {Promise<Object>}
127
111
  */
128
-
129
112
  }, {
130
113
  key: "getByEmail",
131
114
  value: function getByEmail(email) {
132
115
  var ret = usersByEmail.get(this).get(email);
133
-
134
116
  if (ret) {
135
117
  return _promise.default.resolve(ret);
136
118
  }
137
-
138
119
  return _promise.default.reject(new Error('No user found by specified email address'));
139
120
  }
140
121
  }]);
141
122
  return UserUUIDStore;
142
123
  }();
143
-
144
124
  exports.default = UserUUIDStore;
145
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(new Error('`user.emailAddress` does not appear to be an email address'));\n }\n\n const p1 = this.getById(user.id)\n .then((u) => usersById.get(this).set(user.id, Object.assign({}, u, user)))\n .catch(() => usersById.get(this).set(user.id, Object.assign({}, user)));\n\n const p2 = this.getByEmail(user.emailAddress)\n .then((u) => usersByEmail.get(this).set(user.emailAddress, Object.assign({}, u, user)))\n .catch(() => usersByEmail.get(this).set(user.emailAddress, Object.assign({}, 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 /**\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":";;;;;;;;;;;;;;;;;;;AAIA;AAAuC;AAAA;AAEvC,IAAMA,YAAY,GAAG,sBAAa;AAClC,IAAMC,SAAS,GAAG,sBAAa;;AAE/B;AACA;AACA;AAFA,IAGqBC,aAAa;EAChC;AACF;AACA;EACE,yBAAc;IAAA;IACZF,YAAY,CAACG,GAAG,CAAC,IAAI,EAAE,kBAAS,CAAC;IACjCF,SAAS,CAACE,GAAG,CAAC,IAAI,EAAE,kBAAS,CAAC;EAChC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,aAAIC,IAAI,EAAE;MAAA;MACR,IAAI,CAACA,IAAI,CAACC,EAAE,EAAE;QACZ,OAAO,iBAAQC,MAAM,CAAC,IAAIC,KAAK,CAAC,uBAAuB,CAAC,CAAC;MAC3D;MAEA,IAAI,CAACH,IAAI,CAACI,YAAY,EAAE;QACtB,OAAO,iBAAQF,MAAM,CAAC,IAAIC,KAAK,CAAC,iCAAiC,CAAC,CAAC;MACrE;MAEA,IAAI,CAACE,gBAAQ,CAACC,IAAI,CAACC,IAAI,CAACP,IAAI,CAACC,EAAE,CAAC,EAAE;QAChC,OAAO,iBAAQC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;MAC5E;MAEA,IAAI,CAACE,gBAAQ,CAACG,KAAK,CAACD,IAAI,CAACP,IAAI,CAACI,YAAY,CAAC,EAAE;QAC3C,OAAO,iBAAQF,MAAM,CACnB,IAAIC,KAAK,CAAC,4DAA4D,CAAC,CACxE;MACH;MAEA,IAAMM,EAAE,GAAG,IAAI,CAACC,OAAO,CAACV,IAAI,CAACC,EAAE,CAAC,CAC7BU,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKf,SAAS,CAACgB,GAAG,CAAC,KAAI,CAAC,CAACd,GAAG,CAACC,IAAI,CAACC,EAAE,kCAAMW,CAAC,GAAKZ,IAAI,EAAE;MAAA,EAAC,CAC9Dc,KAAK,CAAC;QAAA,OAAMjB,SAAS,CAACgB,GAAG,CAAC,KAAI,CAAC,CAACd,GAAG,CAACC,IAAI,CAACC,EAAE,oBAAMD,IAAI,EAAE;MAAA,EAAC;MAE3D,IAAMe,EAAE,GAAG,IAAI,CAACC,UAAU,CAAChB,IAAI,CAACI,YAAY,CAAC,CAC1CO,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKhB,YAAY,CAACiB,GAAG,CAAC,KAAI,CAAC,CAACd,GAAG,CAACC,IAAI,CAACI,YAAY,kCAAMQ,CAAC,GAAKZ,IAAI,EAAE;MAAA,EAAC,CAC3Ec,KAAK,CAAC;QAAA,OAAMlB,YAAY,CAACiB,GAAG,CAAC,KAAI,CAAC,CAACd,GAAG,CAACC,IAAI,CAACI,YAAY,oBAAMJ,IAAI,EAAE;MAAA,EAAC;MAExE,OAAO,iBAAQiB,GAAG,CAAC,CAACR,EAAE,EAAEM,EAAE,CAAC,CAAC;IAC9B;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,aAAId,EAAE,EAAE;MACN,IAAII,gBAAQ,CAACC,IAAI,CAACC,IAAI,CAACN,EAAE,CAAC,EAAE;QAC1B,OAAO,IAAI,CAACS,OAAO,CAACT,EAAE,CAAC;MACzB;MAEA,IAAII,gBAAQ,CAACG,KAAK,CAACD,IAAI,CAACN,EAAE,CAAC,EAAE;QAC3B,OAAO,IAAI,CAACe,UAAU,CAACf,EAAE,CAAC;MAC5B;MAEA,OAAO,iBAAQC,MAAM,CAAC,IAAIC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,iBAAQF,EAAE,EAAE;MACV,IAAMiB,GAAG,GAAGrB,SAAS,CAACgB,GAAG,CAAC,IAAI,CAAC,CAACA,GAAG,CAACZ,EAAE,CAAC;MAEvC,IAAIiB,GAAG,EAAE;QACP,OAAO,iBAAQC,OAAO,CAACD,GAAG,CAAC;MAC7B;MAEA,OAAO,iBAAQhB,MAAM,CAAC,IAAIC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnE;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,oBAAWK,KAAK,EAAE;MAChB,IAAMU,GAAG,GAAGtB,YAAY,CAACiB,GAAG,CAAC,IAAI,CAAC,CAACA,GAAG,CAACL,KAAK,CAAC;MAE7C,IAAIU,GAAG,EAAE;QACP,OAAO,iBAAQC,OAAO,CAACD,GAAG,CAAC;MAC7B;MAEA,OAAO,iBAAQhB,MAAM,CAAC,IAAIC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9E;EAAC;EAAA;AAAA;AAAA"}