@webex/internal-plugin-avatar 3.0.0-beta.3 → 3.0.0-beta.30

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-avatar
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-avatar';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.avatar.WHATEVER
31
-
29
+ webex.internal.avatar.WHATEVER;
32
30
  ```
33
31
 
34
32
  ## Maintainers
@@ -1,31 +1,23 @@
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 _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
16
-
17
11
  var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
18
-
19
12
  var _webexCore = require("@webex/webex-core");
20
-
21
13
  /*!
22
14
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
23
15
  */
16
+
24
17
  var AvatarUrlBatcher = _webexCore.Batcher.extend({
25
18
  namespace: 'Avatar',
26
19
  handleHttpSuccess: function handleHttpSuccess(res) {
27
20
  var _this = this;
28
-
29
21
  // eslint-disable-next-line arrow-body-style
30
22
  return _promise.default.all(res.options.body.map(function (req) {
31
23
  return _promise.default.all(req.sizes.map(function (size) {
@@ -40,16 +32,17 @@ var AvatarUrlBatcher = _webexCore.Batcher.extend({
40
32
  },
41
33
  handleHttpError: function handleHttpError(reason) {
42
34
  var _this2 = this;
35
+ var msg = reason.message || reason.body || reason;
43
36
 
44
- var msg = reason.message || reason.body || reason; // avoid multiple => on same line
37
+ // avoid multiple => on same line
45
38
  // eslint-disable-next-line arrow-body-style
46
-
47
39
  return _promise.default.all(reason.options.body.map(function (item) {
48
40
  return _promise.default.all(item.sizes.map(function (size) {
49
41
  return _this2.getDeferredForRequest({
50
42
  uuid: item.uuid,
51
43
  size: size
52
- }) // I don't see a better way to do this than with an additional nesting
44
+ })
45
+ // I don't see a better way to do this than with an additional nesting
53
46
  // eslint-disable-next-line max-nested-callbacks
54
47
  .then(function (defer) {
55
48
  return defer.reject(msg instanceof Error ? msg : new Error(msg));
@@ -62,10 +55,8 @@ var AvatarUrlBatcher = _webexCore.Batcher.extend({
62
55
  if (item.size !== item.response.size) {
63
56
  this.logger.warn("Avatar: substituted size \"".concat(item.response.size, "\" for \"").concat(item.size, "\""));
64
57
  }
65
-
66
58
  return _promise.default.resolve(false);
67
59
  }
68
-
69
60
  return _promise.default.resolve(true);
70
61
  },
71
62
  handleItemFailure: function handleItemFailure(item) {
@@ -92,12 +83,10 @@ var AvatarUrlBatcher = _webexCore.Batcher.extend({
92
83
  prepareRequest: function prepareRequest(queue) {
93
84
  var map = queue.reduce(function (m, item) {
94
85
  var o = m.get(item.uuid);
95
-
96
86
  if (!o) {
97
87
  o = [];
98
88
  m.set(item.uuid, o);
99
89
  }
100
-
101
90
  o.push(item.size);
102
91
  return m;
103
92
  }, new _map.default());
@@ -119,7 +108,6 @@ var AvatarUrlBatcher = _webexCore.Batcher.extend({
119
108
  });
120
109
  }
121
110
  });
122
-
123
111
  var _default = AvatarUrlBatcher;
124
112
  exports.default = _default;
125
113
  //# sourceMappingURL=avatar-url-batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AvatarUrlBatcher","Batcher","extend","namespace","handleHttpSuccess","res","all","options","body","map","req","sizes","size","response","uuid","undefined","acceptItem","handleHttpError","reason","msg","message","item","getDeferredForRequest","then","defer","reject","Error","didItemFail","logger","warn","resolve","handleItemFailure","handleItemSuccess","getDeferredForResponse","hasDefaultAvatar","defaultAvatar","url","fingerprintRequest","fingerprintResponse","prepareRequest","queue","reduce","m","o","get","set","push","payload","forEach","value","key","submitHttpRequest","webex","request","method","api","resource"],"sources":["avatar-url-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher} from '@webex/webex-core';\nimport {uniq} from 'lodash';\n\nconst AvatarUrlBatcher = Batcher.extend({\n namespace: 'Avatar',\n\n handleHttpSuccess(res) {\n // eslint-disable-next-line arrow-body-style\n return Promise.all(res.options.body.map((req) => {\n return Promise.all(req.sizes.map((size) => {\n const response = res.body[req.uuid] && res.body[req.uuid][size] || undefined;\n\n return this.acceptItem({\n response,\n uuid: req.uuid,\n size\n });\n }));\n }));\n },\n\n handleHttpError(reason) {\n const msg = reason.message || reason.body || reason;\n\n // avoid multiple => on same line\n // eslint-disable-next-line arrow-body-style\n return Promise.all(reason.options.body.map((item) => {\n return Promise.all(item.sizes.map((size) => this.getDeferredForRequest({\n uuid: item.uuid,\n size\n })\n // I don't see a better way to do this than with an additional nesting\n // eslint-disable-next-line max-nested-callbacks\n .then((defer) => defer.reject(msg instanceof Error ? msg : new Error(msg)))));\n }));\n },\n\n didItemFail(item) {\n if (item.response) {\n if (item.size !== item.response.size) {\n this.logger.warn(`Avatar: substituted size \"${item.response.size}\" for \"${item.size}\"`);\n }\n\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n\n handleItemFailure(item) {\n return this.getDeferredForRequest(item)\n .then((defer) => {\n defer.reject(new Error(item.response || 'Failed to retrieve avatar'));\n });\n },\n\n handleItemSuccess(item) {\n return this.getDeferredForResponse(item)\n .then((defer) => defer.resolve({\n hasDefaultAvatar: item.response.defaultAvatar,\n uuid: item.uuid,\n size: item.size,\n url: item.response.url\n }));\n },\n\n fingerprintRequest(item) {\n return Promise.resolve(`${item.uuid}-${item.size}`);\n },\n\n fingerprintResponse(item) {\n return Promise.resolve(`${item.uuid}-${item.size}`);\n },\n\n prepareRequest(queue) {\n const map = queue.reduce((m, item) => {\n let o = m.get(item.uuid);\n\n if (!o) {\n o = [];\n m.set(item.uuid, o);\n }\n o.push(item.size);\n\n return m;\n }, new Map());\n\n const payload = [];\n\n map.forEach((value, key) => {\n payload.push({\n uuid: key,\n sizes: uniq(value)\n });\n });\n\n return Promise.resolve(payload);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n api: 'avatar',\n resource: 'profiles/urls',\n body: payload\n });\n }\n\n});\n\nexport default AvatarUrlBatcher;\n"],"mappings":"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"}
1
+ {"version":3,"names":["AvatarUrlBatcher","Batcher","extend","namespace","handleHttpSuccess","res","all","options","body","map","req","sizes","size","response","uuid","undefined","acceptItem","handleHttpError","reason","msg","message","item","getDeferredForRequest","then","defer","reject","Error","didItemFail","logger","warn","resolve","handleItemFailure","handleItemSuccess","getDeferredForResponse","hasDefaultAvatar","defaultAvatar","url","fingerprintRequest","fingerprintResponse","prepareRequest","queue","reduce","m","o","get","set","push","payload","forEach","value","key","submitHttpRequest","webex","request","method","api","resource"],"sources":["avatar-url-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher} from '@webex/webex-core';\nimport {uniq} from 'lodash';\n\nconst AvatarUrlBatcher = Batcher.extend({\n namespace: 'Avatar',\n\n handleHttpSuccess(res) {\n // eslint-disable-next-line arrow-body-style\n return Promise.all(\n res.options.body.map((req) => {\n return Promise.all(\n req.sizes.map((size) => {\n const response = (res.body[req.uuid] && res.body[req.uuid][size]) || undefined;\n\n return this.acceptItem({\n response,\n uuid: req.uuid,\n size,\n });\n })\n );\n })\n );\n },\n\n handleHttpError(reason) {\n const msg = reason.message || reason.body || reason;\n\n // avoid multiple => on same line\n // eslint-disable-next-line arrow-body-style\n return Promise.all(\n reason.options.body.map((item) => {\n return Promise.all(\n item.sizes.map((size) =>\n this.getDeferredForRequest({\n uuid: item.uuid,\n size,\n })\n // I don't see a better way to do this than with an additional nesting\n // eslint-disable-next-line max-nested-callbacks\n .then((defer) => defer.reject(msg instanceof Error ? msg : new Error(msg)))\n )\n );\n })\n );\n },\n\n didItemFail(item) {\n if (item.response) {\n if (item.size !== item.response.size) {\n this.logger.warn(`Avatar: substituted size \"${item.response.size}\" for \"${item.size}\"`);\n }\n\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n },\n\n handleItemFailure(item) {\n return this.getDeferredForRequest(item).then((defer) => {\n defer.reject(new Error(item.response || 'Failed to retrieve avatar'));\n });\n },\n\n handleItemSuccess(item) {\n return this.getDeferredForResponse(item).then((defer) =>\n defer.resolve({\n hasDefaultAvatar: item.response.defaultAvatar,\n uuid: item.uuid,\n size: item.size,\n url: item.response.url,\n })\n );\n },\n\n fingerprintRequest(item) {\n return Promise.resolve(`${item.uuid}-${item.size}`);\n },\n\n fingerprintResponse(item) {\n return Promise.resolve(`${item.uuid}-${item.size}`);\n },\n\n prepareRequest(queue) {\n const map = queue.reduce((m, item) => {\n let o = m.get(item.uuid);\n\n if (!o) {\n o = [];\n m.set(item.uuid, o);\n }\n o.push(item.size);\n\n return m;\n }, new Map());\n\n const payload = [];\n\n map.forEach((value, key) => {\n payload.push({\n uuid: key,\n sizes: uniq(value),\n });\n });\n\n return Promise.resolve(payload);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n api: 'avatar',\n resource: 'profiles/urls',\n body: payload,\n });\n },\n});\n\nexport default AvatarUrlBatcher;\n"],"mappings":"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"}
@@ -1,31 +1,19 @@
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
-
15
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
11
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
18
-
19
12
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
20
-
21
13
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
-
23
14
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
24
-
25
15
  var _common = require("@webex/common");
26
-
27
16
  var _commonTimers = require("@webex/common-timers");
28
-
29
17
  /*!
30
18
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
31
19
  */
@@ -36,10 +24,10 @@ var _commonTimers = require("@webex/common-timers");
36
24
  * <uuid+size, {uuid, size, url}> map
37
25
  */
38
26
  var urlByUuid = new _weakMap.default();
27
+
39
28
  /**
40
29
  * @class AvatarUrlStore
41
30
  */
42
-
43
31
  var AvatarUrlStore = /*#__PURE__*/function () {
44
32
  /**
45
33
  * @constructs {AvatarUrlStore}
@@ -48,6 +36,7 @@ var AvatarUrlStore = /*#__PURE__*/function () {
48
36
  (0, _classCallCheck2.default)(this, AvatarUrlStore);
49
37
  urlByUuid.set(this, new _map.default());
50
38
  }
39
+
51
40
  /**
52
41
  * Get the URL associated with the given uuid and size.
53
42
  *
@@ -59,35 +48,28 @@ var AvatarUrlStore = /*#__PURE__*/function () {
59
48
  *
60
49
  * @memberOf AvatarUrlStore
61
50
  */
62
-
63
-
64
51
  (0, _createClass2.default)(AvatarUrlStore, [{
65
52
  key: "get",
66
53
  value: function get(item) {
67
54
  if (!item) {
68
55
  return _promise.default.reject(new Error('`item` is required'));
69
56
  }
70
-
71
57
  if (!item.uuid) {
72
58
  return _promise.default.reject(new Error('`item.uuid` is required'));
73
59
  }
74
-
75
60
  if (!item.size) {
76
61
  return _promise.default.reject(new Error('`item.size` is required'));
77
62
  }
78
-
79
63
  if (!_common.patterns.uuid.test(item.uuid)) {
80
64
  return _promise.default.reject(new Error('`item.uuid` does not appear to be a uuid'));
81
65
  }
82
-
83
66
  var ret = urlByUuid.get(this).get("".concat(item.uuid, " - ").concat(item.size));
84
-
85
67
  if (ret) {
86
68
  return _promise.default.resolve(ret);
87
69
  }
88
-
89
70
  return _promise.default.reject(new Error("No URL found by specified id: ".concat((0, _stringify.default)(item))));
90
71
  }
72
+
91
73
  /**
92
74
  * Adds the given item to the store
93
75
  * @param {Object} item
@@ -98,38 +80,32 @@ var AvatarUrlStore = /*#__PURE__*/function () {
98
80
  * @param {string} item.uuid
99
81
  * @returns {Promise<object>} Resolves to the added avatar item or rejects on bad params
100
82
  */
101
-
102
83
  }, {
103
84
  key: "add",
104
85
  value: function add(item) {
105
86
  if (!item) {
106
87
  return _promise.default.reject(new Error('`item` is required'));
107
88
  }
108
-
109
89
  if (!item.uuid) {
110
90
  return _promise.default.reject(new Error('`item.uuid` is required'));
111
91
  }
112
-
113
92
  if (!item.size) {
114
93
  return _promise.default.reject(new Error('`item.size` is required'));
115
94
  }
116
-
117
95
  if (!_common.patterns.uuid.test(item.uuid)) {
118
96
  return _promise.default.reject(new Error('`item.uuid` does not appear to be a uuid'));
119
97
  }
120
-
121
98
  if (!item.url) {
122
99
  return _promise.default.reject(new Error('`item.url` is required'));
123
100
  }
124
-
125
101
  if (!item.cacheControl) {
126
102
  return _promise.default.reject(new Error('`item.cacheControl` is required'));
127
103
  }
128
-
129
104
  (0, _commonTimers.safeSetTimeout)(this.remove.bind(this, item), item.cacheControl * 1000);
130
105
  urlByUuid.get(this).set("".concat(item.uuid, " - ").concat(item.size), item);
131
106
  return _promise.default.resolve(item);
132
107
  }
108
+
133
109
  /**
134
110
  * Remove the URL associated with the uuid and size
135
111
  * Remove urls of all sizes if size is not given
@@ -139,12 +115,10 @@ var AvatarUrlStore = /*#__PURE__*/function () {
139
115
  * @param {integer} item.size The size of the avatar to remove
140
116
  * @returns {Promise<true>}
141
117
  */
142
-
143
118
  }, {
144
119
  key: "remove",
145
120
  value: function remove(item) {
146
121
  var _this = this;
147
-
148
122
  var sizes = item.size && [item.size] || [40, 50, 80, 110, 135, 192, 640, 1600];
149
123
  sizes.forEach(function (one) {
150
124
  return urlByUuid.get(_this).delete("".concat(item.uuid, " - ").concat(one));
@@ -154,6 +128,5 @@ var AvatarUrlStore = /*#__PURE__*/function () {
154
128
  }]);
155
129
  return AvatarUrlStore;
156
130
  }();
157
-
158
131
  exports.default = AvatarUrlStore;
159
132
  //# sourceMappingURL=avatar-url-store.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["urlByUuid","AvatarUrlStore","set","item","reject","Error","uuid","size","patterns","test","ret","get","resolve","url","cacheControl","safeSetTimeout","remove","bind","sizes","forEach","one","delete"],"sources":["avatar-url-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable complexity */\n\nimport {patterns} from '@webex/common';\nimport {safeSetTimeout} from '@webex/common-timers';\n\n/**\n * <uuid+size, {uuid, size, url}> map\n */\nconst urlByUuid = new WeakMap();\n\n/**\n * @class AvatarUrlStore\n */\nexport default class AvatarUrlStore {\n /**\n * @constructs {AvatarUrlStore}\n */\n constructor() {\n urlByUuid.set(this, new Map());\n }\n\n /**\n * Get the URL associated with the given uuid and size.\n *\n * @param {object} item\n * @param {string} item.uuid A user uuid\n * @param {integer}item.size the requested size\n * @returns {Promise<object>} Resolves to the avatar item {uuid, url, size, cacheControl}\n * or Rejects on bad param, not in store\n *\n * @memberOf AvatarUrlStore\n */\n get(item) {\n if (!item) {\n return Promise.reject(new Error('`item` is required'));\n }\n if (!item.uuid) {\n return Promise.reject(new Error('`item.uuid` is required'));\n }\n if (!item.size) {\n return Promise.reject(new Error('`item.size` is required'));\n }\n if (!patterns.uuid.test(item.uuid)) {\n return Promise.reject(new Error('`item.uuid` does not appear to be a uuid'));\n }\n const ret = urlByUuid.get(this).get(`${item.uuid} - ${item.size}`);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error(`No URL found by specified id: ${JSON.stringify(item)}`));\n }\n\n /**\n * Adds the given item to the store\n * @param {Object} item\n * @param {integer} item.cacheControl\n * @param {integer} item.hasDefaultAvatar\n * @param {integer} item.size\n * @param {string} item.url\n * @param {string} item.uuid\n * @returns {Promise<object>} Resolves to the added avatar item or rejects on bad params\n */\n add(item) {\n if (!item) {\n return Promise.reject(new Error('`item` is required'));\n }\n if (!item.uuid) {\n return Promise.reject(new Error('`item.uuid` is required'));\n }\n if (!item.size) {\n return Promise.reject(new Error('`item.size` is required'));\n }\n if (!patterns.uuid.test(item.uuid)) {\n return Promise.reject(new Error('`item.uuid` does not appear to be a uuid'));\n }\n if (!item.url) {\n return Promise.reject(new Error('`item.url` is required'));\n }\n if (!item.cacheControl) {\n return Promise.reject(new Error('`item.cacheControl` is required'));\n }\n\n safeSetTimeout(this.remove.bind(this, item), item.cacheControl * 1000);\n urlByUuid.get(this).set(`${item.uuid} - ${item.size}`, item);\n\n return Promise.resolve(item);\n }\n\n /**\n * Remove the URL associated with the uuid and size\n * Remove urls of all sizes if size is not given\n *\n * @param {object} item\n * @param {string} item.uuid The user unique id\n * @param {integer} item.size The size of the avatar to remove\n * @returns {Promise<true>}\n */\n remove(item) {\n const sizes = item.size && [item.size] || [40, 50, 80, 110, 135, 192, 640, 1600];\n\n sizes.forEach((one) => urlByUuid.get(this).delete(`${item.uuid} - ${one}`));\n\n return Promise.resolve(true);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["urlByUuid","AvatarUrlStore","set","item","reject","Error","uuid","size","patterns","test","ret","get","resolve","url","cacheControl","safeSetTimeout","remove","bind","sizes","forEach","one","delete"],"sources":["avatar-url-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable complexity */\n\nimport {patterns} from '@webex/common';\nimport {safeSetTimeout} from '@webex/common-timers';\n\n/**\n * <uuid+size, {uuid, size, url}> map\n */\nconst urlByUuid = new WeakMap();\n\n/**\n * @class AvatarUrlStore\n */\nexport default class AvatarUrlStore {\n /**\n * @constructs {AvatarUrlStore}\n */\n constructor() {\n urlByUuid.set(this, new Map());\n }\n\n /**\n * Get the URL associated with the given uuid and size.\n *\n * @param {object} item\n * @param {string} item.uuid A user uuid\n * @param {integer}item.size the requested size\n * @returns {Promise<object>} Resolves to the avatar item {uuid, url, size, cacheControl}\n * or Rejects on bad param, not in store\n *\n * @memberOf AvatarUrlStore\n */\n get(item) {\n if (!item) {\n return Promise.reject(new Error('`item` is required'));\n }\n if (!item.uuid) {\n return Promise.reject(new Error('`item.uuid` is required'));\n }\n if (!item.size) {\n return Promise.reject(new Error('`item.size` is required'));\n }\n if (!patterns.uuid.test(item.uuid)) {\n return Promise.reject(new Error('`item.uuid` does not appear to be a uuid'));\n }\n const ret = urlByUuid.get(this).get(`${item.uuid} - ${item.size}`);\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error(`No URL found by specified id: ${JSON.stringify(item)}`));\n }\n\n /**\n * Adds the given item to the store\n * @param {Object} item\n * @param {integer} item.cacheControl\n * @param {integer} item.hasDefaultAvatar\n * @param {integer} item.size\n * @param {string} item.url\n * @param {string} item.uuid\n * @returns {Promise<object>} Resolves to the added avatar item or rejects on bad params\n */\n add(item) {\n if (!item) {\n return Promise.reject(new Error('`item` is required'));\n }\n if (!item.uuid) {\n return Promise.reject(new Error('`item.uuid` is required'));\n }\n if (!item.size) {\n return Promise.reject(new Error('`item.size` is required'));\n }\n if (!patterns.uuid.test(item.uuid)) {\n return Promise.reject(new Error('`item.uuid` does not appear to be a uuid'));\n }\n if (!item.url) {\n return Promise.reject(new Error('`item.url` is required'));\n }\n if (!item.cacheControl) {\n return Promise.reject(new Error('`item.cacheControl` is required'));\n }\n\n safeSetTimeout(this.remove.bind(this, item), item.cacheControl * 1000);\n urlByUuid.get(this).set(`${item.uuid} - ${item.size}`, item);\n\n return Promise.resolve(item);\n }\n\n /**\n * Remove the URL associated with the uuid and size\n * Remove urls of all sizes if size is not given\n *\n * @param {object} item\n * @param {string} item.uuid The user unique id\n * @param {integer} item.size The size of the avatar to remove\n * @returns {Promise<true>}\n */\n remove(item) {\n const sizes = (item.size && [item.size]) || [40, 50, 80, 110, 135, 192, 640, 1600];\n\n sizes.forEach((one) => urlByUuid.get(this).delete(`${item.uuid} - ${one}`));\n\n return Promise.resolve(true);\n }\n}\n"],"mappings":"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"}
package/dist/avatar.js CHANGED
@@ -1,37 +1,22 @@
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 _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
16
-
17
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
18
-
19
12
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
20
-
21
13
  var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
22
-
23
14
  var _common = require("@webex/common");
24
-
25
15
  var _helperImage = require("@webex/helper-image");
26
-
27
16
  var _webexCore = require("@webex/webex-core");
28
-
29
17
  var _avatarUrlStore = _interopRequireDefault(require("./avatar-url-store"));
30
-
31
18
  var _avatarUrlBatcher = _interopRequireDefault(require("./avatar-url-batcher"));
32
-
33
19
  var _dec, _dec2, _obj;
34
-
35
20
  var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
36
21
  keyFactory: function keyFactory(uuid) {
37
22
  return uuid;
@@ -59,7 +44,6 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
59
44
  },
60
45
  _fetchAllAvatarUrlSizes: function _fetchAllAvatarUrlSizes(uuid, options) {
61
46
  var _this = this;
62
-
63
47
  // fetch all possible sizes of avatar and store in cache
64
48
  return _promise.default.all(this.config.sizes.map(function (size) {
65
49
  return _this.batcher.request({
@@ -74,28 +58,27 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
74
58
  },
75
59
  _fetchAvatarUrl: function _fetchAvatarUrl(uuid, options) {
76
60
  var _this2 = this;
77
-
78
61
  return this.store.get({
79
62
  uuid: uuid,
80
63
  size: options.size
81
64
  }).catch(function () {
82
- return _promise.default.all([_this2._fetchAllAvatarUrlSizes(uuid, options), // just in case options.size does not fall into the predefined values above
65
+ return _promise.default.all([_this2._fetchAllAvatarUrlSizes(uuid, options),
66
+ // just in case options.size does not fall into the predefined values above
83
67
  _this2.batcher.request({
84
68
  uuid: uuid,
85
69
  size: options.size
86
- })]) // eslint-disable-next-line no-unused-vars
70
+ })])
71
+ // eslint-disable-next-line no-unused-vars
87
72
  .then(function (_ref) {
88
73
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
89
- ignore = _ref2[0],
90
- item = _ref2[1];
91
-
74
+ ignore = _ref2[0],
75
+ item = _ref2[1];
92
76
  return _this2.store.add((0, _defaults2.default)({
93
77
  cacheControl: options.cacheControl
94
78
  }, item));
95
79
  });
96
80
  });
97
81
  },
98
-
99
82
  /**
100
83
  * Retrieves an Avatar from a cache or the api on misses.
101
84
  *
@@ -108,11 +91,9 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
108
91
  */
109
92
  retrieveAvatarUrl: function retrieveAvatarUrl(user, options) {
110
93
  var _this3 = this;
111
-
112
94
  if (!user) {
113
- return _promise.default.reject(new Error('\'user\' is a required parameter'));
95
+ return _promise.default.reject(new Error("'user' is a required parameter"));
114
96
  }
115
-
116
97
  options = (0, _defaults2.default)(options, {
117
98
  cacheControl: this.config.cacheControl,
118
99
  size: this.config.defaultAvatarSize
@@ -123,11 +104,9 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
123
104
  if (options.hideDefaultAvatar) {
124
105
  return item.hasDefaultAvatar ? null : item.url;
125
106
  }
126
-
127
107
  return item.url;
128
108
  });
129
109
  },
130
-
131
110
  /**
132
111
  * Upload a new avatar for the current user
133
112
  *
@@ -136,7 +115,6 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
136
115
  */
137
116
  setAvatar: function setAvatar(file) {
138
117
  var _this4 = this;
139
-
140
118
  return (0, _helperImage.detectFileType)(file, this.logger).then(function (type) {
141
119
  return (0, _helperImage.processImage)({
142
120
  file: file,
@@ -174,13 +152,11 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
174
152
  _this4.store.remove({
175
153
  uuid: _this4.webex.internal.device.userId
176
154
  });
177
-
178
155
  return res.url;
179
156
  });
180
157
  },
181
- version: "3.0.0-beta.3"
158
+ version: "3.0.0-beta.30"
182
159
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "_fetchAllAvatarUrlSizes", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "_fetchAllAvatarUrlSizes"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "_fetchAvatarUrl", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "_fetchAvatarUrl"), _obj)), _obj)));
183
-
184
160
  var _default2 = Avatar;
185
161
  exports.default = _default2;
186
162
  //# sourceMappingURL=avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Avatar","WebexPlugin","extend","oneFlight","keyFactory","uuid","options","String","size","namespace","children","batcher","AvatarUrlBatcher","session","store","default","AvatarUrlStore","type","enableThumbnails","_fetchAllAvatarUrlSizes","all","config","sizes","map","request","then","item","add","cacheControl","_fetchAvatarUrl","get","catch","ignore","retrieveAvatarUrl","user","reject","Error","defaultAvatarSize","webex","internal","asUUID","hideDefaultAvatar","hasDefaultAvatar","url","setAvatar","file","detectFileType","logger","processImage","thumbnailMaxWidth","thumbnailMaxHeight","isAvatar","processedImage","upload","api","resource","device","userId","phases","$uri","finalize","method","$resource","id","res","remove"],"sources":["avatar.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {oneFlight} from '@webex/common';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\n\nimport AvatarUrlStore from './avatar-url-store';\nimport AvatarUrlBatcher from './avatar-url-batcher';\n\nconst Avatar = WebexPlugin.extend({\n namespace: 'Avatar',\n\n children: {\n batcher: AvatarUrlBatcher\n },\n\n session: {\n store: {\n default() {\n return new AvatarUrlStore();\n },\n type: 'any'\n },\n enableThumbnails: {\n default: true,\n type: 'boolean'\n }\n },\n\n @oneFlight({keyFactory: (uuid) => uuid})\n _fetchAllAvatarUrlSizes(uuid, options) {\n // fetch all possible sizes of avatar and store in cache\n return Promise.all(this.config.sizes.map((size) => this.batcher.request({uuid, size})\n .then((item) => this.store.add(defaults({cacheControl: options.cacheControl}, item)))));\n },\n\n /**\n * @private\n * Requests an avatar URL from the api\n * @param {string} uuid\n * @param {Object} options\n * @param {integer} options.size\n * @param {integer} options.cacheControl\n * @returns {Promise<string>} the avatar URL\n */\n @oneFlight({keyFactory: (uuid, options) => uuid + String(options && options.size)})\n _fetchAvatarUrl(uuid, options) {\n return this.store.get({uuid, size: options.size})\n .catch(() => Promise.all([\n this._fetchAllAvatarUrlSizes(uuid, options),\n // just in case options.size does not fall into the predefined values above\n this.batcher.request({uuid, size: options.size})\n ])\n // eslint-disable-next-line no-unused-vars\n .then(([ignore, item]) => this.store.add(defaults({cacheControl: options.cacheControl}, item))));\n },\n\n /**\n * Retrieves an Avatar from a cache or the api on misses.\n *\n * @param {UserObject|string} user The user, Webex user uuid, or email\n * @param {Object} [options]\n * @param {integer} [options.size] In {1600, 640, 192, 135, 110, 80, 50, 40}\n * Defaults to 80 if falsy\n * @param {boolean} [options.hideDefaultAvatar] does not return default avatar url if true. Defaults to false\n * @returns {Promise<string>} A promise that resolves to the avatar\n */\n retrieveAvatarUrl(user, options) {\n if (!user) {\n return Promise.reject(new Error('\\'user\\' is a required parameter'));\n }\n\n options = defaults(options, {\n cacheControl: this.config.cacheControl,\n size: this.config.defaultAvatarSize\n });\n\n return this.webex.internal.user.asUUID(user)\n .then((uuid) => this._fetchAvatarUrl(uuid, options))\n .then((item) => {\n if (options.hideDefaultAvatar) {\n return item.hasDefaultAvatar ? null : item.url;\n }\n\n return item.url;\n });\n },\n\n /**\n * Upload a new avatar for the current user\n *\n * @param {Blob|File|Buffer} file The new avatar\n * @returns {Promise} Resolves with the URL of the full-sized avatar\n */\n setAvatar(file) {\n return detectFileType(file, this.logger)\n .then((type) => processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n isAvatar: true\n }))\n .then((processedImage) => this.upload({\n api: 'avatar',\n resource: `profile/${this.webex.internal.device.userId}/session`,\n file: processedImage[0],\n phases: {\n upload: {\n $uri: (session) => session.url\n },\n finalize: {\n method: 'PUT',\n api: 'avatar',\n $resource: (session) =>\n // eslint-disable-next-line max-len\n `profile/${this.webex.internal.device.userId}/session/${session.id}`\n }\n }\n }))\n .then((res) => {\n // invalidate user's cached avatar\n this.store.remove({uuid: this.webex.internal.device.userId});\n\n return res.url;\n });\n }\n\n});\n\n\nexport default Avatar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Avatar","WebexPlugin","extend","oneFlight","keyFactory","uuid","options","String","size","namespace","children","batcher","AvatarUrlBatcher","session","store","default","AvatarUrlStore","type","enableThumbnails","_fetchAllAvatarUrlSizes","all","config","sizes","map","request","then","item","add","cacheControl","_fetchAvatarUrl","get","catch","ignore","retrieveAvatarUrl","user","reject","Error","defaultAvatarSize","webex","internal","asUUID","hideDefaultAvatar","hasDefaultAvatar","url","setAvatar","file","detectFileType","logger","processImage","thumbnailMaxWidth","thumbnailMaxHeight","isAvatar","processedImage","upload","api","resource","device","userId","phases","$uri","finalize","method","$resource","id","res","remove"],"sources":["avatar.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {oneFlight} from '@webex/common';\nimport {detectFileType, processImage} from '@webex/helper-image';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\n\nimport AvatarUrlStore from './avatar-url-store';\nimport AvatarUrlBatcher from './avatar-url-batcher';\n\nconst Avatar = WebexPlugin.extend({\n namespace: 'Avatar',\n\n children: {\n batcher: AvatarUrlBatcher,\n },\n\n session: {\n store: {\n default() {\n return new AvatarUrlStore();\n },\n type: 'any',\n },\n enableThumbnails: {\n default: true,\n type: 'boolean',\n },\n },\n\n @oneFlight({keyFactory: (uuid) => uuid})\n _fetchAllAvatarUrlSizes(uuid, options) {\n // fetch all possible sizes of avatar and store in cache\n return Promise.all(\n this.config.sizes.map((size) =>\n this.batcher\n .request({uuid, size})\n .then((item) => this.store.add(defaults({cacheControl: options.cacheControl}, item)))\n )\n );\n },\n\n /**\n * @private\n * Requests an avatar URL from the api\n * @param {string} uuid\n * @param {Object} options\n * @param {integer} options.size\n * @param {integer} options.cacheControl\n * @returns {Promise<string>} the avatar URL\n */\n @oneFlight({keyFactory: (uuid, options) => uuid + String(options && options.size)})\n _fetchAvatarUrl(uuid, options) {\n return this.store.get({uuid, size: options.size}).catch(() =>\n Promise.all([\n this._fetchAllAvatarUrlSizes(uuid, options),\n // just in case options.size does not fall into the predefined values above\n this.batcher.request({uuid, size: options.size}),\n ])\n // eslint-disable-next-line no-unused-vars\n .then(([ignore, item]) =>\n this.store.add(defaults({cacheControl: options.cacheControl}, item))\n )\n );\n },\n\n /**\n * Retrieves an Avatar from a cache or the api on misses.\n *\n * @param {UserObject|string} user The user, Webex user uuid, or email\n * @param {Object} [options]\n * @param {integer} [options.size] In {1600, 640, 192, 135, 110, 80, 50, 40}\n * Defaults to 80 if falsy\n * @param {boolean} [options.hideDefaultAvatar] does not return default avatar url if true. Defaults to false\n * @returns {Promise<string>} A promise that resolves to the avatar\n */\n retrieveAvatarUrl(user, options) {\n if (!user) {\n return Promise.reject(new Error(\"'user' is a required parameter\"));\n }\n\n options = defaults(options, {\n cacheControl: this.config.cacheControl,\n size: this.config.defaultAvatarSize,\n });\n\n return this.webex.internal.user\n .asUUID(user)\n .then((uuid) => this._fetchAvatarUrl(uuid, options))\n .then((item) => {\n if (options.hideDefaultAvatar) {\n return item.hasDefaultAvatar ? null : item.url;\n }\n\n return item.url;\n });\n },\n\n /**\n * Upload a new avatar for the current user\n *\n * @param {Blob|File|Buffer} file The new avatar\n * @returns {Promise} Resolves with the URL of the full-sized avatar\n */\n setAvatar(file) {\n return detectFileType(file, this.logger)\n .then((type) =>\n processImage({\n file,\n type,\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\n enableThumbnails: this.enableThumbnails,\n logger: this.logger,\n isAvatar: true,\n })\n )\n .then((processedImage) =>\n this.upload({\n api: 'avatar',\n resource: `profile/${this.webex.internal.device.userId}/session`,\n file: processedImage[0],\n phases: {\n upload: {\n $uri: (session) => session.url,\n },\n finalize: {\n method: 'PUT',\n api: 'avatar',\n $resource: (session) =>\n // eslint-disable-next-line max-len\n `profile/${this.webex.internal.device.userId}/session/${session.id}`,\n },\n },\n })\n )\n .then((res) => {\n // invalidate user's cached avatar\n this.store.remove({uuid: this.webex.internal.device.userId});\n\n return res.url;\n });\n },\n});\n\nexport default Avatar;\n"],"mappings":"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"}
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
  */
@@ -16,26 +13,22 @@ var _default = {
16
13
  batcherWait: 100,
17
14
  batcherMaxCalls: 100,
18
15
  batcherMaxWait: 1500,
19
-
20
16
  /**
21
17
  * @description avatar URL store TTL, allows avatar updates to eventually be propegated
22
18
  * @type {number} Number of seconds the avatar should remain in store
23
19
  */
24
20
  cacheControl: 60 * 60,
25
-
26
21
  /**
27
22
  * @description default avatar size to retrieve if no size is specified
28
23
  * @type {number}
29
24
  */
30
25
  defaultAvatarSize: 80,
31
26
  sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
32
-
33
27
  /**
34
28
  * Max height for thumbnails generated when sharing an image
35
29
  * @type {number}
36
30
  */
37
31
  thumbnailMaxHeight: 960,
38
-
39
32
  /**
40
33
  * Max width for thumbnails generated when sharing an image
41
34
  * @type {number}
@@ -1 +1 @@
1
- {"version":3,"names":["avatar","batcherWait","batcherMaxCalls","batcherMaxWait","cacheControl","defaultAvatarSize","sizes","thumbnailMaxHeight","thumbnailMaxWidth"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n avatar: {\n batcherWait: 100,\n batcherMaxCalls: 100,\n batcherMaxWait: 1500,\n\n /**\n * @description avatar URL store TTL, allows avatar updates to eventually be propegated\n * @type {number} Number of seconds the avatar should remain in store\n */\n cacheControl: 60 * 60,\n /**\n * @description default avatar size to retrieve if no size is specified\n * @type {number}\n */\n defaultAvatarSize: 80,\n sizes: [40, 50, 80, 110, 135, 192, 640, 1600],\n /**\n * Max height for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxHeight: 960,\n /**\n * Max width for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxWidth: 640\n }\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,MAAM,EAAE;IACNC,WAAW,EAAE,GADP;IAENC,eAAe,EAAE,GAFX;IAGNC,cAAc,EAAE,IAHV;;IAKN;AACJ;AACA;AACA;IACIC,YAAY,EAAE,KAAK,EATb;;IAUN;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE,EAdb;IAeNC,KAAK,EAAE,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,GAAb,EAAkB,GAAlB,EAAuB,GAAvB,EAA4B,GAA5B,EAAiC,IAAjC,CAfD;;IAgBN;AACJ;AACA;AACA;IACIC,kBAAkB,EAAE,GApBd;;IAqBN;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE;EAzBb;AADK,C"}
1
+ {"version":3,"names":["avatar","batcherWait","batcherMaxCalls","batcherMaxWait","cacheControl","defaultAvatarSize","sizes","thumbnailMaxHeight","thumbnailMaxWidth"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n avatar: {\n batcherWait: 100,\n batcherMaxCalls: 100,\n batcherMaxWait: 1500,\n\n /**\n * @description avatar URL store TTL, allows avatar updates to eventually be propegated\n * @type {number} Number of seconds the avatar should remain in store\n */\n cacheControl: 60 * 60,\n /**\n * @description default avatar size to retrieve if no size is specified\n * @type {number}\n */\n defaultAvatarSize: 80,\n sizes: [40, 50, 80, 110, 135, 192, 640, 1600],\n /**\n * Max height for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxHeight: 960,\n /**\n * Max width for thumbnails generated when sharing an image\n * @type {number}\n */\n thumbnailMaxWidth: 640,\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,eAIe;EACbA,MAAM,EAAE;IACNC,WAAW,EAAE,GAAG;IAChBC,eAAe,EAAE,GAAG;IACpBC,cAAc,EAAE,IAAI;IAEpB;AACJ;AACA;AACA;IACIC,YAAY,EAAE,EAAE,GAAG,EAAE;IACrB;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE,EAAE;IACrBC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;IAC7C;AACJ;AACA;AACA;IACIC,kBAAkB,EAAE,GAAG;IACvB;AACJ;AACA;AACA;IACIC,iBAAiB,EAAE;EACrB;AACF,CAAC;AAAA"}
package/dist/index.js CHANGED
@@ -1,33 +1,25 @@
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 _avatar.default;
15
12
  }
16
13
  });
17
-
18
14
  require("@webex/internal-plugin-user");
19
-
20
15
  require("@webex/internal-plugin-device");
21
-
22
16
  var _webexCore = require("@webex/webex-core");
23
-
24
17
  var _avatar = _interopRequireDefault(require("./avatar"));
25
-
26
18
  var _config = _interopRequireDefault(require("./config"));
27
-
28
19
  /*!
29
20
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
30
21
  */
22
+
31
23
  (0, _webexCore.registerInternalPlugin)('avatar', _avatar.default, {
32
24
  config: _config.default
33
25
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","Avatar","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-device';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Avatar from './avatar';\nimport config from './config';\n\nregisterInternalPlugin('avatar', Avatar, {\n config\n});\n\nexport {default} from './avatar';\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;;AACA;;AAEA;;AAEA;;AACA;;AAVA;AACA;AACA;AAUA,IAAAA,iCAAA,EAAuB,QAAvB,EAAiCC,eAAjC,EAAyC;EACvCC,MAAM,EAANA;AADuC,CAAzC"}
1
+ {"version":3,"names":["registerInternalPlugin","Avatar","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-device';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Avatar from './avatar';\nimport config from './config';\n\nregisterInternalPlugin('avatar', Avatar, {\n config,\n});\n\nexport {default} from './avatar';\n"],"mappings":";;;;;;;;;;;;;AAIA;AACA;AAEA;AAEA;AACA;AAVA;AACA;AACA;;AAUA,IAAAA,iCAAsB,EAAC,QAAQ,EAAEC,eAAM,EAAE;EACvCC,MAAM,EAANA;AACF,CAAC,CAAC"}