@webex/internal-plugin-avatar 2.59.3-next.1 → 2.59.4
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/.eslintrc.js +6 -6
- package/README.md +42 -42
- package/babel.config.js +3 -3
- package/dist/avatar-url-batcher.js +2 -2
- package/dist/avatar-url-batcher.js.map +1 -1
- package/dist/avatar-url-store.js +35 -35
- package/dist/avatar-url-store.js.map +1 -1
- package/dist/avatar.js +15 -15
- package/dist/avatar.js.map +1 -1
- package/dist/config.js +14 -14
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +18 -19
- package/process +1 -1
- package/src/avatar-url-batcher.js +124 -124
- package/src/avatar-url-store.js +111 -111
- package/src/avatar.js +148 -148
- package/src/config.js +33 -33
- package/src/index.js +17 -17
- package/test/integration/spec/avatar.js +82 -82
- package/test/unit/spec/avatar-url-batcher.js +84 -84
- package/test/unit/spec/avatar-url-store.js +154 -154
- package/test/unit/spec/avatar.js +1574 -1574
package/.eslintrc.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const config = {
|
|
2
|
-
root: true,
|
|
3
|
-
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
module.exports = config;
|
|
1
|
+
const config = {
|
|
2
|
+
root: true,
|
|
3
|
+
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
module.exports = config;
|
package/README.md
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# @webex/internal-plugin-avatar
|
|
2
|
-
|
|
3
|
-
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
-
|
|
5
|
-
> Plugin for the Avatar service
|
|
6
|
-
|
|
7
|
-
This is an internal Cisco Webex plugin. As such, it does not strictly adhere to semantic versioning. Use at your own risk. If you're not working on one of our first party clients, please look at our [developer api](https://developer.webex.com/) and stick to our public plugins.
|
|
8
|
-
|
|
9
|
-
- [Install](#install)
|
|
10
|
-
- [Usage](#usage)
|
|
11
|
-
- [Contribute](#contribute)
|
|
12
|
-
- [Maintainers](#maintainers)
|
|
13
|
-
- [License](#license)
|
|
14
|
-
|
|
15
|
-
## Install
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm install --save @webex/internal-plugin-avatar
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
import '@webex/internal-plugin-avatar';
|
|
25
|
-
|
|
26
|
-
import WebexCore from '@webex/webex-core';
|
|
27
|
-
|
|
28
|
-
const webex = new WebexCore();
|
|
29
|
-
webex.internal.avatar.WHATEVER;
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Maintainers
|
|
33
|
-
|
|
34
|
-
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
35
|
-
|
|
36
|
-
## Contribute
|
|
37
|
-
|
|
38
|
-
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
39
|
-
|
|
40
|
-
## License
|
|
41
|
-
|
|
42
|
-
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
|
1
|
+
# @webex/internal-plugin-avatar
|
|
2
|
+
|
|
3
|
+
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
+
|
|
5
|
+
> Plugin for the Avatar service
|
|
6
|
+
|
|
7
|
+
This is an internal Cisco Webex plugin. As such, it does not strictly adhere to semantic versioning. Use at your own risk. If you're not working on one of our first party clients, please look at our [developer api](https://developer.webex.com/) and stick to our public plugins.
|
|
8
|
+
|
|
9
|
+
- [Install](#install)
|
|
10
|
+
- [Usage](#usage)
|
|
11
|
+
- [Contribute](#contribute)
|
|
12
|
+
- [Maintainers](#maintainers)
|
|
13
|
+
- [License](#license)
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install --save @webex/internal-plugin-avatar
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
import '@webex/internal-plugin-avatar';
|
|
25
|
+
|
|
26
|
+
import WebexCore from '@webex/webex-core';
|
|
27
|
+
|
|
28
|
+
const webex = new WebexCore();
|
|
29
|
+
webex.internal.avatar.WHATEVER;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Maintainers
|
|
33
|
+
|
|
34
|
+
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
35
|
+
|
|
36
|
+
## Contribute
|
|
37
|
+
|
|
38
|
+
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
39
|
+
|
|
40
|
+
## License
|
|
41
|
+
|
|
42
|
+
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
package/babel.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = babelConfigLegacy;
|
|
1
|
+
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = babelConfigLegacy;
|
|
@@ -10,8 +10,8 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
|
|
|
10
10
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
11
11
|
var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
|
|
12
12
|
var _webexCore = require("@webex/webex-core");
|
|
13
|
-
/*!
|
|
14
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
13
|
+
/*!
|
|
14
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
var AvatarUrlBatcher = _webexCore.Batcher.extend({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","AvatarUrlBatcher","Batcher","extend","namespace","handleHttpSuccess","res","_this","_promise","default","all","options","body","map","req","sizes","size","response","uuid","undefined","acceptItem","handleHttpError","reason","_this2","msg","message","item","getDeferredForRequest","then","defer","reject","Error","didItemFail","logger","warn","concat","resolve","handleItemFailure","handleItemSuccess","getDeferredForResponse","hasDefaultAvatar","defaultAvatar","url","fingerprintRequest","fingerprintResponse","prepareRequest","queue","reduce","m","o","get","set","push","_map","payload","forEach","value","key","_uniq2","submitHttpRequest","webex","request","method","api","resource","_default","exports"],"sources":["avatar-url-batcher.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_webexCore","require","AvatarUrlBatcher","Batcher","extend","namespace","handleHttpSuccess","res","_this","_promise","default","all","options","body","map","req","sizes","size","response","uuid","undefined","acceptItem","handleHttpError","reason","_this2","msg","message","item","getDeferredForRequest","then","defer","reject","Error","didItemFail","logger","warn","concat","resolve","handleItemFailure","handleItemSuccess","getDeferredForResponse","hasDefaultAvatar","defaultAvatar","url","fingerprintRequest","fingerprintResponse","prepareRequest","queue","reduce","m","o","get","set","push","_map","payload","forEach","value","key","_uniq2","submitHttpRequest","webex","request","method","api","resource","_default","exports"],"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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"}
|
package/dist/avatar-url-store.js
CHANGED
|
@@ -14,39 +14,39 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
|
|
|
14
14
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
15
15
|
var _common = require("@webex/common");
|
|
16
16
|
var _commonTimers = require("@webex/common-timers");
|
|
17
|
-
/*!
|
|
18
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
17
|
+
/*!
|
|
18
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/* eslint-disable complexity */
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* <uuid+size, {uuid, size, url}> map
|
|
23
|
+
/**
|
|
24
|
+
* <uuid+size, {uuid, size, url}> map
|
|
25
25
|
*/
|
|
26
26
|
var urlByUuid = new _weakMap.default();
|
|
27
27
|
|
|
28
|
-
/**
|
|
29
|
-
* @class AvatarUrlStore
|
|
28
|
+
/**
|
|
29
|
+
* @class AvatarUrlStore
|
|
30
30
|
*/
|
|
31
31
|
var AvatarUrlStore = /*#__PURE__*/function () {
|
|
32
|
-
/**
|
|
33
|
-
* @constructs {AvatarUrlStore}
|
|
32
|
+
/**
|
|
33
|
+
* @constructs {AvatarUrlStore}
|
|
34
34
|
*/
|
|
35
35
|
function AvatarUrlStore() {
|
|
36
36
|
(0, _classCallCheck2.default)(this, AvatarUrlStore);
|
|
37
37
|
urlByUuid.set(this, new _map.default());
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* Get the URL associated with the given uuid and size.
|
|
42
|
-
*
|
|
43
|
-
* @param {object} item
|
|
44
|
-
* @param {string} item.uuid A user uuid
|
|
45
|
-
* @param {integer}item.size the requested size
|
|
46
|
-
* @returns {Promise<object>} Resolves to the avatar item {uuid, url, size, cacheControl}
|
|
47
|
-
* or Rejects on bad param, not in store
|
|
48
|
-
*
|
|
49
|
-
* @memberOf AvatarUrlStore
|
|
40
|
+
/**
|
|
41
|
+
* Get the URL associated with the given uuid and size.
|
|
42
|
+
*
|
|
43
|
+
* @param {object} item
|
|
44
|
+
* @param {string} item.uuid A user uuid
|
|
45
|
+
* @param {integer}item.size the requested size
|
|
46
|
+
* @returns {Promise<object>} Resolves to the avatar item {uuid, url, size, cacheControl}
|
|
47
|
+
* or Rejects on bad param, not in store
|
|
48
|
+
*
|
|
49
|
+
* @memberOf AvatarUrlStore
|
|
50
50
|
*/
|
|
51
51
|
(0, _createClass2.default)(AvatarUrlStore, [{
|
|
52
52
|
key: "get",
|
|
@@ -70,15 +70,15 @@ var AvatarUrlStore = /*#__PURE__*/function () {
|
|
|
70
70
|
return _promise.default.reject(new Error("No URL found by specified id: ".concat((0, _stringify.default)(item))));
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
/**
|
|
74
|
-
* Adds the given item to the store
|
|
75
|
-
* @param {Object} item
|
|
76
|
-
* @param {integer} item.cacheControl
|
|
77
|
-
* @param {integer} item.hasDefaultAvatar
|
|
78
|
-
* @param {integer} item.size
|
|
79
|
-
* @param {string} item.url
|
|
80
|
-
* @param {string} item.uuid
|
|
81
|
-
* @returns {Promise<object>} Resolves to the added avatar item or rejects on bad params
|
|
73
|
+
/**
|
|
74
|
+
* Adds the given item to the store
|
|
75
|
+
* @param {Object} item
|
|
76
|
+
* @param {integer} item.cacheControl
|
|
77
|
+
* @param {integer} item.hasDefaultAvatar
|
|
78
|
+
* @param {integer} item.size
|
|
79
|
+
* @param {string} item.url
|
|
80
|
+
* @param {string} item.uuid
|
|
81
|
+
* @returns {Promise<object>} Resolves to the added avatar item or rejects on bad params
|
|
82
82
|
*/
|
|
83
83
|
}, {
|
|
84
84
|
key: "add",
|
|
@@ -106,14 +106,14 @@ var AvatarUrlStore = /*#__PURE__*/function () {
|
|
|
106
106
|
return _promise.default.resolve(item);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
/**
|
|
110
|
-
* Remove the URL associated with the uuid and size
|
|
111
|
-
* Remove urls of all sizes if size is not given
|
|
112
|
-
*
|
|
113
|
-
* @param {object} item
|
|
114
|
-
* @param {string} item.uuid The user unique id
|
|
115
|
-
* @param {integer} item.size The size of the avatar to remove
|
|
116
|
-
* @returns {Promise<true>}
|
|
109
|
+
/**
|
|
110
|
+
* Remove the URL associated with the uuid and size
|
|
111
|
+
* Remove urls of all sizes if size is not given
|
|
112
|
+
*
|
|
113
|
+
* @param {object} item
|
|
114
|
+
* @param {string} item.uuid The user unique id
|
|
115
|
+
* @param {integer} item.size The size of the avatar to remove
|
|
116
|
+
* @returns {Promise<true>}
|
|
117
117
|
*/
|
|
118
118
|
}, {
|
|
119
119
|
key: "remove",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_commonTimers","urlByUuid","_weakMap","default","AvatarUrlStore","_classCallCheck2","set","_map","_createClass2","key","value","get","item","_promise","reject","Error","uuid","size","patterns","test","ret","concat","resolve","_stringify","add","url","cacheControl","safeSetTimeout","remove","bind","_this","sizes","forEach","one","delete","exports"],"sources":["avatar-url-store.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_common","require","_commonTimers","urlByUuid","_weakMap","default","AvatarUrlStore","_classCallCheck2","set","_map","_createClass2","key","value","get","item","_promise","reject","Error","uuid","size","patterns","test","ret","concat","resolve","_stringify","add","url","cacheControl","safeSetTimeout","remove","bind","_this","sizes","forEach","one","delete","exports"],"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
|
@@ -79,15 +79,15 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
|
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
},
|
|
82
|
-
/**
|
|
83
|
-
* Retrieves an Avatar from a cache or the api on misses.
|
|
84
|
-
*
|
|
85
|
-
* @param {UserObject|string} user The user, Webex user uuid, or email
|
|
86
|
-
* @param {Object} [options]
|
|
87
|
-
* @param {integer} [options.size] In {1600, 640, 192, 135, 110, 80, 50, 40}
|
|
88
|
-
* Defaults to 80 if falsy
|
|
89
|
-
* @param {boolean} [options.hideDefaultAvatar] does not return default avatar url if true. Defaults to false
|
|
90
|
-
* @returns {Promise<string>} A promise that resolves to the avatar
|
|
82
|
+
/**
|
|
83
|
+
* Retrieves an Avatar from a cache or the api on misses.
|
|
84
|
+
*
|
|
85
|
+
* @param {UserObject|string} user The user, Webex user uuid, or email
|
|
86
|
+
* @param {Object} [options]
|
|
87
|
+
* @param {integer} [options.size] In {1600, 640, 192, 135, 110, 80, 50, 40}
|
|
88
|
+
* Defaults to 80 if falsy
|
|
89
|
+
* @param {boolean} [options.hideDefaultAvatar] does not return default avatar url if true. Defaults to false
|
|
90
|
+
* @returns {Promise<string>} A promise that resolves to the avatar
|
|
91
91
|
*/
|
|
92
92
|
retrieveAvatarUrl: function retrieveAvatarUrl(user, options) {
|
|
93
93
|
var _this3 = this;
|
|
@@ -107,11 +107,11 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
|
|
|
107
107
|
return item.url;
|
|
108
108
|
});
|
|
109
109
|
},
|
|
110
|
-
/**
|
|
111
|
-
* Upload a new avatar for the current user
|
|
112
|
-
*
|
|
113
|
-
* @param {Blob|File|Buffer} file The new avatar
|
|
114
|
-
* @returns {Promise} Resolves with the URL of the full-sized avatar
|
|
110
|
+
/**
|
|
111
|
+
* Upload a new avatar for the current user
|
|
112
|
+
*
|
|
113
|
+
* @param {Blob|File|Buffer} file The new avatar
|
|
114
|
+
* @returns {Promise} Resolves with the URL of the full-sized avatar
|
|
115
115
|
*/
|
|
116
116
|
setAvatar: function setAvatar(file) {
|
|
117
117
|
var _this4 = this;
|
|
@@ -155,7 +155,7 @@ var Avatar = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
|
|
|
155
155
|
return res.url;
|
|
156
156
|
});
|
|
157
157
|
},
|
|
158
|
-
version: "2.59.
|
|
158
|
+
version: "2.59.4"
|
|
159
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)));
|
|
160
160
|
var _default2 = Avatar;
|
|
161
161
|
exports.default = _default2;
|
package/dist/avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_helperImage","_webexCore","_avatarUrlStore","_interopRequireDefault","_avatarUrlBatcher","_dec","_dec2","_obj","Avatar","WebexPlugin","extend","oneFlight","keyFactory","uuid","options","String","size","namespace","children","batcher","AvatarUrlBatcher","session","store","default","_default","AvatarUrlStore","type","enableThumbnails","_fetchAllAvatarUrlSizes","_this","_promise","all","config","sizes","map","request","then","item","add","_defaults2","cacheControl","_fetchAvatarUrl","_this2","get","catch","_ref","_ref2","_slicedToArray2","ignore","retrieveAvatarUrl","user","_this3","reject","Error","defaultAvatarSize","webex","internal","asUUID","hideDefaultAvatar","hasDefaultAvatar","url","setAvatar","file","_this4","detectFileType","logger","processImage","thumbnailMaxWidth","thumbnailMaxHeight","isAvatar","processedImage","upload","api","resource","concat","device","userId","phases","$uri","finalize","method","$resource","id","res","remove","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"sources":["avatar.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {oneFlight} from '@webex/common';\r\nimport {detectFileType, processImage} from '@webex/helper-image';\r\nimport {WebexPlugin} from '@webex/webex-core';\r\nimport {defaults} from 'lodash';\r\n\r\nimport AvatarUrlStore from './avatar-url-store';\r\nimport AvatarUrlBatcher from './avatar-url-batcher';\r\n\r\nconst Avatar = WebexPlugin.extend({\r\n namespace: 'Avatar',\r\n\r\n children: {\r\n batcher: AvatarUrlBatcher,\r\n },\r\n\r\n session: {\r\n store: {\r\n default() {\r\n return new AvatarUrlStore();\r\n },\r\n type: 'any',\r\n },\r\n enableThumbnails: {\r\n default: true,\r\n type: 'boolean',\r\n },\r\n },\r\n\r\n @oneFlight({keyFactory: (uuid) => uuid})\r\n _fetchAllAvatarUrlSizes(uuid, options) {\r\n // fetch all possible sizes of avatar and store in cache\r\n return Promise.all(\r\n this.config.sizes.map((size) =>\r\n this.batcher\r\n .request({uuid, size})\r\n .then((item) => this.store.add(defaults({cacheControl: options.cacheControl}, item)))\r\n )\r\n );\r\n },\r\n\r\n /**\r\n * @private\r\n * Requests an avatar URL from the api\r\n * @param {string} uuid\r\n * @param {Object} options\r\n * @param {integer} options.size\r\n * @param {integer} options.cacheControl\r\n * @returns {Promise<string>} the avatar URL\r\n */\r\n @oneFlight({keyFactory: (uuid, options) => uuid + String(options && options.size)})\r\n _fetchAvatarUrl(uuid, options) {\r\n return this.store.get({uuid, size: options.size}).catch(() =>\r\n Promise.all([\r\n this._fetchAllAvatarUrlSizes(uuid, options),\r\n // just in case options.size does not fall into the predefined values above\r\n this.batcher.request({uuid, size: options.size}),\r\n ])\r\n // eslint-disable-next-line no-unused-vars\r\n .then(([ignore, item]) =>\r\n this.store.add(defaults({cacheControl: options.cacheControl}, item))\r\n )\r\n );\r\n },\r\n\r\n /**\r\n * Retrieves an Avatar from a cache or the api on misses.\r\n *\r\n * @param {UserObject|string} user The user, Webex user uuid, or email\r\n * @param {Object} [options]\r\n * @param {integer} [options.size] In {1600, 640, 192, 135, 110, 80, 50, 40}\r\n * Defaults to 80 if falsy\r\n * @param {boolean} [options.hideDefaultAvatar] does not return default avatar url if true. Defaults to false\r\n * @returns {Promise<string>} A promise that resolves to the avatar\r\n */\r\n retrieveAvatarUrl(user, options) {\r\n if (!user) {\r\n return Promise.reject(new Error(\"'user' is a required parameter\"));\r\n }\r\n\r\n options = defaults(options, {\r\n cacheControl: this.config.cacheControl,\r\n size: this.config.defaultAvatarSize,\r\n });\r\n\r\n return this.webex.internal.user\r\n .asUUID(user)\r\n .then((uuid) => this._fetchAvatarUrl(uuid, options))\r\n .then((item) => {\r\n if (options.hideDefaultAvatar) {\r\n return item.hasDefaultAvatar ? null : item.url;\r\n }\r\n\r\n return item.url;\r\n });\r\n },\r\n\r\n /**\r\n * Upload a new avatar for the current user\r\n *\r\n * @param {Blob|File|Buffer} file The new avatar\r\n * @returns {Promise} Resolves with the URL of the full-sized avatar\r\n */\r\n setAvatar(file) {\r\n return detectFileType(file, this.logger)\r\n .then((type) =>\r\n processImage({\r\n file,\r\n type,\r\n thumbnailMaxWidth: this.config.thumbnailMaxWidth,\r\n thumbnailMaxHeight: this.config.thumbnailMaxHeight,\r\n enableThumbnails: this.enableThumbnails,\r\n logger: this.logger,\r\n isAvatar: true,\r\n })\r\n )\r\n .then((processedImage) =>\r\n this.upload({\r\n api: 'avatar',\r\n resource: `profile/${this.webex.internal.device.userId}/session`,\r\n file: processedImage[0],\r\n phases: {\r\n upload: {\r\n $uri: (session) => session.url,\r\n },\r\n finalize: {\r\n method: 'PUT',\r\n api: 'avatar',\r\n $resource: (session) =>\r\n // eslint-disable-next-line max-len\r\n `profile/${this.webex.internal.device.userId}/session/${session.id}`,\r\n },\r\n },\r\n })\r\n )\r\n .then((res) => {\r\n // invalidate user's cached avatar\r\n this.store.remove({uuid: this.webex.internal.device.userId});\r\n\r\n return res.url;\r\n });\r\n },\r\n});\r\n\r\nexport default Avatar;\r\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAGA,IAAAG,eAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAAoD,IAAAM,IAAA,EAAAC,KAAA,EAAAC,IAAA;AAEpD,IAAMC,MAAM,GAAGC,sBAAW,CAACC,MAAM,EAAAL,IAAA,GAoB9B,IAAAM,iBAAS,EAAC;EAACC,UAAU,EAAE,SAAAA,WAACC,IAAI;IAAA,OAAKA,IAAI;EAAA;AAAA,CAAC,CAAC,EAAAP,KAAA,GAqBvC,IAAAK,iBAAS,EAAC;EAACC,UAAU,EAAE,SAAAA,WAACC,IAAI,EAAEC,OAAO;IAAA,OAAKD,IAAI,GAAGE,MAAM,CAACD,OAAO,IAAIA,OAAO,CAACE,IAAI,CAAC;EAAA;AAAA,CAAC,CAAC,GAAAT,IAAA,GAzCnD;EAChCU,SAAS,EAAE,QAAQ;EAEnBC,QAAQ,EAAE;IACRC,OAAO,EAAEC;EACX,CAAC;EAEDC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,OAAO,WAAAC,SAAA,EAAG;QACR,OAAO,IAAIC,uBAAc,EAAE;MAC7B,CAAC;MACDC,IAAI,EAAE;IACR,CAAC;IACDC,gBAAgB,EAAE;MAChBJ,OAAO,EAAE,IAAI;MACbG,IAAI,EAAE;IACR;EACF,CAAC;EAGDE,uBAAuB,WAAAA,wBAACf,IAAI,EAAEC,OAAO,EAAE;IAAA,IAAAe,KAAA;IACrC;IACA,OAAOC,QAAA,CAAAP,OAAA,CAAQQ,GAAG,CAChB,IAAI,CAACC,MAAM,CAACC,KAAK,CAACC,GAAG,CAAC,UAAClB,IAAI;MAAA,OACzBa,KAAI,CAACV,OAAO,CACTgB,OAAO,CAAC;QAACtB,IAAI,EAAJA,IAAI;QAAEG,IAAI,EAAJA;MAAI,CAAC,CAAC,CACrBoB,IAAI,CAAC,UAACC,IAAI;QAAA,OAAKR,KAAI,CAACP,KAAK,CAACgB,GAAG,CAAC,IAAAC,UAAA,CAAAhB,OAAA,EAAS;UAACiB,YAAY,EAAE1B,OAAO,CAAC0B;QAAY,CAAC,EAAEH,IAAI,CAAC,CAAC;MAAA,EAAC;IAAA,EACxF,CACF;EACH,CAAC;EAYDI,eAAe,WAAAA,gBAAC5B,IAAI,EAAEC,OAAO,EAAE;IAAA,IAAA4B,MAAA;IAC7B,OAAO,IAAI,CAACpB,KAAK,CAACqB,GAAG,CAAC;MAAC9B,IAAI,EAAJA,IAAI;MAAEG,IAAI,EAAEF,OAAO,CAACE;IAAI,CAAC,CAAC,CAAC4B,KAAK,CAAC;MAAA,OACtDd,QAAA,CAAAP,OAAA,CAAQQ,GAAG,CAAC,CACVW,MAAI,CAACd,uBAAuB,CAACf,IAAI,EAAEC,OAAO,CAAC;MAC3C;MACA4B,MAAI,CAACvB,OAAO,CAACgB,OAAO,CAAC;QAACtB,IAAI,EAAJA,IAAI;QAAEG,IAAI,EAAEF,OAAO,CAACE;MAAI,CAAC,CAAC,CACjD;MACC;MAAA,CACCoB,IAAI,CAAC,UAAAS,IAAA;QAAA,IAAAC,KAAA,OAAAC,eAAA,CAAAxB,OAAA,EAAAsB,IAAA;UAAEG,MAAM,GAAAF,KAAA;UAAET,IAAI,GAAAS,KAAA;QAAA,OAClBJ,MAAI,CAACpB,KAAK,CAACgB,GAAG,CAAC,IAAAC,UAAA,CAAAhB,OAAA,EAAS;UAACiB,YAAY,EAAE1B,OAAO,CAAC0B;QAAY,CAAC,EAAEH,IAAI,CAAC,CAAC;MAAA,EACrE;IAAA,EACJ;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,iBAAiB,WAAAA,kBAACC,IAAI,EAAEpC,OAAO,EAAE;IAAA,IAAAqC,MAAA;IAC/B,IAAI,CAACD,IAAI,EAAE;MACT,OAAOpB,QAAA,CAAAP,OAAA,CAAQ6B,MAAM,CAAC,IAAIC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpE;IAEAvC,OAAO,GAAG,IAAAyB,UAAA,CAAAhB,OAAA,EAAST,OAAO,EAAE;MAC1B0B,YAAY,EAAE,IAAI,CAACR,MAAM,CAACQ,YAAY;MACtCxB,IAAI,EAAE,IAAI,CAACgB,MAAM,CAACsB;IACpB,CAAC,CAAC;IAEF,OAAO,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACN,IAAI,CAC5BO,MAAM,CAACP,IAAI,CAAC,CACZd,IAAI,CAAC,UAACvB,IAAI;MAAA,OAAKsC,MAAI,CAACV,eAAe,CAAC5B,IAAI,EAAEC,OAAO,CAAC;IAAA,EAAC,CACnDsB,IAAI,CAAC,UAACC,IAAI,EAAK;MACd,IAAIvB,OAAO,CAAC4C,iBAAiB,EAAE;QAC7B,OAAOrB,IAAI,CAACsB,gBAAgB,GAAG,IAAI,GAAGtB,IAAI,CAACuB,GAAG;MAChD;MAEA,OAAOvB,IAAI,CAACuB,GAAG;IACjB,CAAC,CAAC;EACN,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,SAAS,WAAAA,UAACC,IAAI,EAAE;IAAA,IAAAC,MAAA;IACd,OAAO,IAAAC,2BAAc,EAACF,IAAI,EAAE,IAAI,CAACG,MAAM,CAAC,CACrC7B,IAAI,CAAC,UAACV,IAAI;MAAA,OACT,IAAAwC,yBAAY,EAAC;QACXJ,IAAI,EAAJA,IAAI;QACJpC,IAAI,EAAJA,IAAI;QACJyC,iBAAiB,EAAEJ,MAAI,CAAC/B,MAAM,CAACmC,iBAAiB;QAChDC,kBAAkB,EAAEL,MAAI,CAAC/B,MAAM,CAACoC,kBAAkB;QAClDzC,gBAAgB,EAAEoC,MAAI,CAACpC,gBAAgB;QACvCsC,MAAM,EAAEF,MAAI,CAACE,MAAM;QACnBI,QAAQ,EAAE;MACZ,CAAC,CAAC;IAAA,EACH,CACAjC,IAAI,CAAC,UAACkC,cAAc;MAAA,OACnBP,MAAI,CAACQ,MAAM,CAAC;QACVC,GAAG,EAAE,QAAQ;QACbC,QAAQ,aAAAC,MAAA,CAAaX,MAAI,CAACR,KAAK,CAACC,QAAQ,CAACmB,MAAM,CAACC,MAAM,aAAU;QAChEd,IAAI,EAAEQ,cAAc,CAAC,CAAC,CAAC;QACvBO,MAAM,EAAE;UACNN,MAAM,EAAE;YACNO,IAAI,EAAE,SAAAA,KAACzD,OAAO;cAAA,OAAKA,OAAO,CAACuC,GAAG;YAAA;UAChC,CAAC;UACDmB,QAAQ,EAAE;YACRC,MAAM,EAAE,KAAK;YACbR,GAAG,EAAE,QAAQ;YACbS,SAAS,EAAE,SAAAA,UAAC5D,OAAO;cAAA,OACjB;gBAAA,WAAAqD,MAAA,CACWX,MAAI,CAACR,KAAK,CAACC,QAAQ,CAACmB,MAAM,CAACC,MAAM,eAAAF,MAAA,CAAYrD,OAAO,CAAC6D,EAAE;cAAA;YAAA;UACtE;QACF;MACF,CAAC,CAAC;IAAA,EACH,CACA9C,IAAI,CAAC,UAAC+C,GAAG,EAAK;MACb;MACApB,MAAI,CAACzC,KAAK,CAAC8D,MAAM,CAAC;QAACvE,IAAI,EAAEkD,MAAI,CAACR,KAAK,CAACC,QAAQ,CAACmB,MAAM,CAACC;MAAM,CAAC,CAAC;MAE5D,OAAOO,GAAG,CAACvB,GAAG;IAChB,CAAC,CAAC;EACN,CAAC;EAAAyB,OAAA;AACH,CAAC,OAAAC,0BAAA,CAAA/D,OAAA,EAAAhB,IAAA,8BAAAF,IAAA,OAAAkF,yBAAA,CAAAhE,OAAA,EAAAhB,IAAA,8BAAAA,IAAA,OAAA+E,0BAAA,CAAA/D,OAAA,EAAAhB,IAAA,sBAAAD,KAAA,OAAAiF,yBAAA,CAAAhE,OAAA,EAAAhB,IAAA,sBAAAA,IAAA,IAAAA,IAAA,GAAC;AAAC,IAAAiF,SAAA,GAEYhF,MAAM;AAAAiF,OAAA,CAAAlE,OAAA,GAAAiE,SAAA"}
|
|
1
|
+
{"version":3,"names":["_common","require","_helperImage","_webexCore","_avatarUrlStore","_interopRequireDefault","_avatarUrlBatcher","_dec","_dec2","_obj","Avatar","WebexPlugin","extend","oneFlight","keyFactory","uuid","options","String","size","namespace","children","batcher","AvatarUrlBatcher","session","store","default","_default","AvatarUrlStore","type","enableThumbnails","_fetchAllAvatarUrlSizes","_this","_promise","all","config","sizes","map","request","then","item","add","_defaults2","cacheControl","_fetchAvatarUrl","_this2","get","catch","_ref","_ref2","_slicedToArray2","ignore","retrieveAvatarUrl","user","_this3","reject","Error","defaultAvatarSize","webex","internal","asUUID","hideDefaultAvatar","hasDefaultAvatar","url","setAvatar","file","_this4","detectFileType","logger","processImage","thumbnailMaxWidth","thumbnailMaxHeight","isAvatar","processedImage","upload","api","resource","concat","device","userId","phases","$uri","finalize","method","$resource","id","res","remove","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"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
|
@@ -5,33 +5,33 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
/*!
|
|
9
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
8
|
+
/*!
|
|
9
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
10
10
|
*/
|
|
11
11
|
var _default = {
|
|
12
12
|
avatar: {
|
|
13
13
|
batcherWait: 100,
|
|
14
14
|
batcherMaxCalls: 100,
|
|
15
15
|
batcherMaxWait: 1500,
|
|
16
|
-
/**
|
|
17
|
-
* @description avatar URL store TTL, allows avatar updates to eventually be propegated
|
|
18
|
-
* @type {number} Number of seconds the avatar should remain in store
|
|
16
|
+
/**
|
|
17
|
+
* @description avatar URL store TTL, allows avatar updates to eventually be propegated
|
|
18
|
+
* @type {number} Number of seconds the avatar should remain in store
|
|
19
19
|
*/
|
|
20
20
|
cacheControl: 60 * 60,
|
|
21
|
-
/**
|
|
22
|
-
* @description default avatar size to retrieve if no size is specified
|
|
23
|
-
* @type {number}
|
|
21
|
+
/**
|
|
22
|
+
* @description default avatar size to retrieve if no size is specified
|
|
23
|
+
* @type {number}
|
|
24
24
|
*/
|
|
25
25
|
defaultAvatarSize: 80,
|
|
26
26
|
sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
|
|
27
|
-
/**
|
|
28
|
-
* Max height for thumbnails generated when sharing an image
|
|
29
|
-
* @type {number}
|
|
27
|
+
/**
|
|
28
|
+
* Max height for thumbnails generated when sharing an image
|
|
29
|
+
* @type {number}
|
|
30
30
|
*/
|
|
31
31
|
thumbnailMaxHeight: 960,
|
|
32
|
-
/**
|
|
33
|
-
* Max width for thumbnails generated when sharing an image
|
|
34
|
-
* @type {number}
|
|
32
|
+
/**
|
|
33
|
+
* Max width for thumbnails generated when sharing an image
|
|
34
|
+
* @type {number}
|
|
35
35
|
*/
|
|
36
36
|
thumbnailMaxWidth: 640
|
|
37
37
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","avatar","batcherWait","batcherMaxCalls","batcherMaxWait","cacheControl","defaultAvatarSize","sizes","thumbnailMaxHeight","thumbnailMaxWidth","exports","default"],"sources":["config.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_default","avatar","batcherWait","batcherMaxCalls","batcherMaxWait","cacheControl","defaultAvatarSize","sizes","thumbnailMaxHeight","thumbnailMaxWidth","exports","default"],"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,IAAAA,QAAA,GAIe;EACbC,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;AAAAC,OAAA,CAAAC,OAAA,GAAAX,QAAA"}
|
package/dist/index.js
CHANGED
|
@@ -16,8 +16,8 @@ require("@webex/internal-plugin-device");
|
|
|
16
16
|
var _webexCore = require("@webex/webex-core");
|
|
17
17
|
var _avatar = _interopRequireDefault(require("./avatar"));
|
|
18
18
|
var _config = _interopRequireDefault(require("./config"));
|
|
19
|
-
/*!
|
|
20
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
19
|
+
/*!
|
|
20
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
(0, _webexCore.registerInternalPlugin)('avatar', _avatar.default, {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_webexCore","_avatar","_interopRequireDefault","_config","registerInternalPlugin","Avatar","config"],"sources":["index.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["require","_webexCore","_avatar","_interopRequireDefault","_config","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":";;;;;;;;;;;;;AAIAA,OAAA;AACAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAVA;AACA;AACA;;AAUA,IAAAK,iCAAsB,EAAC,QAAQ,EAAEC,eAAM,EAAE;EACvCC,MAAM,EAANA;AACF,CAAC,CAAC"}
|
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,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-avatar",
|
|
3
|
+
"version": "2.59.4",
|
|
3
4
|
"description": "",
|
|
4
5
|
"license": "MIT",
|
|
5
6
|
"author": "Joe Fuhrman <jofuhrma@cisco.com>",
|
|
@@ -21,37 +22,35 @@
|
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@babel/core": "^7.17.10",
|
|
24
|
-
"@webex/babel-config-legacy": "
|
|
25
|
-
"@webex/eslint-config-legacy": "
|
|
26
|
-
"@webex/jest-config-legacy": "
|
|
27
|
-
"@webex/legacy-tools": "
|
|
28
|
-
"@webex/test-helper-chai": "
|
|
29
|
-
"@webex/test-helper-file": "
|
|
30
|
-
"@webex/test-helper-mocha": "
|
|
31
|
-
"@webex/test-helper-mock-webex": "
|
|
32
|
-
"@webex/test-helper-test-users": "
|
|
25
|
+
"@webex/babel-config-legacy": "2.59.4",
|
|
26
|
+
"@webex/eslint-config-legacy": "2.59.4",
|
|
27
|
+
"@webex/jest-config-legacy": "2.59.4",
|
|
28
|
+
"@webex/legacy-tools": "2.59.4",
|
|
29
|
+
"@webex/test-helper-chai": "2.59.4",
|
|
30
|
+
"@webex/test-helper-file": "2.59.4",
|
|
31
|
+
"@webex/test-helper-mocha": "2.59.4",
|
|
32
|
+
"@webex/test-helper-mock-webex": "2.59.4",
|
|
33
|
+
"@webex/test-helper-test-users": "2.59.4",
|
|
33
34
|
"eslint": "^8.24.0",
|
|
34
35
|
"prettier": "^2.7.1",
|
|
35
36
|
"sinon": "^9.2.4"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"@webex/common": "
|
|
39
|
-
"@webex/common-timers": "
|
|
40
|
-
"@webex/helper-image": "
|
|
41
|
-
"@webex/internal-plugin-device": "
|
|
42
|
-
"@webex/internal-plugin-user": "
|
|
43
|
-
"@webex/webex-core": "
|
|
39
|
+
"@webex/common": "2.59.4",
|
|
40
|
+
"@webex/common-timers": "2.59.4",
|
|
41
|
+
"@webex/helper-image": "2.59.4",
|
|
42
|
+
"@webex/internal-plugin-device": "2.59.4",
|
|
43
|
+
"@webex/internal-plugin-user": "2.59.4",
|
|
44
|
+
"@webex/webex-core": "2.59.4",
|
|
44
45
|
"lodash": "^4.17.21"
|
|
45
46
|
},
|
|
46
47
|
"scripts": {
|
|
47
48
|
"build": "yarn build:src",
|
|
48
49
|
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
|
|
49
|
-
"deploy:npm": "yarn npm publish",
|
|
50
50
|
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
51
51
|
"test:browser:broken": "webex-legacy-tools test --integration --unit --runner karma",
|
|
52
52
|
"test:integration": "webex-legacy-tools test --integration --runner mocha",
|
|
53
53
|
"test:style": "eslint ./src/**/*.*",
|
|
54
54
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
|
55
|
+
}
|
|
56
|
+
}
|
package/process
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = {browser: true};
|
|
1
|
+
module.exports = {browser: true};
|