@webex/common 3.0.0-bnr.5 → 3.0.0-next.2
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 -0
- package/babel.config.js +3 -0
- package/dist/base64.js +1 -2
- package/dist/base64.js.map +1 -1
- package/dist/browser-detection.js +20 -6
- package/dist/browser-detection.js.map +1 -1
- package/dist/capped-debounce.js.map +1 -1
- package/dist/check-required.js.map +1 -1
- package/dist/constants.js +9 -11
- package/dist/constants.js.map +1 -1
- package/dist/defer.js.map +1 -1
- package/dist/deprecated.js +1 -2
- package/dist/deprecated.js.map +1 -1
- package/dist/event-envelope.js.map +1 -1
- package/dist/events.js +6 -2
- package/dist/events.js.map +1 -1
- package/dist/exception.js +1 -2
- package/dist/exception.js.map +1 -1
- package/dist/in-browser/browser.js +1 -2
- package/dist/in-browser/browser.js.map +1 -1
- package/dist/in-browser/index.js.map +1 -1
- package/dist/in-browser/node.js +1 -2
- package/dist/in-browser/node.js.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/isBuffer.js +1 -2
- package/dist/isBuffer.js.map +1 -1
- package/dist/make-state-datatype.js.map +1 -1
- package/dist/one-flight.js +7 -3
- package/dist/one-flight.js.map +1 -1
- package/dist/patterns.js +6 -2
- package/dist/patterns.js.map +1 -1
- package/dist/resolve-with.js.map +1 -1
- package/dist/retry.js +8 -9
- package/dist/retry.js.map +1 -1
- package/dist/tap.js.map +1 -1
- package/dist/template-container.js.map +1 -1
- package/dist/uuid-utils.js +0 -1
- package/dist/uuid-utils.js.map +1 -1
- package/dist/while-in-flight.js +8 -2
- package/dist/while-in-flight.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +22 -5
- package/process +1 -0
- package/src/browser-detection.js +14 -0
- package/src/constants.js +4 -0
- package/src/index.js +1 -1
- package/src/patterns.js +6 -0
- package/src/uuid-utils.js +0 -1
- package/test/unit/spec/browser-detection.js +44 -0
- package/dist/types/base64.d.ts +0 -38
- package/dist/types/browser-detection.d.ts +0 -8
- package/dist/types/capped-debounce.d.ts +0 -12
- package/dist/types/check-required.d.ts +0 -11
- package/dist/types/constants.d.ts +0 -76
- package/dist/types/defer.d.ts +0 -23
- package/dist/types/deprecated.d.ts +0 -7
- package/dist/types/event-envelope.d.ts +0 -13
- package/dist/types/events.d.ts +0 -15
- package/dist/types/exception.d.ts +0 -23
- package/dist/types/in-browser/browser.d.ts +0 -2
- package/dist/types/in-browser/index.d.ts +0 -1
- package/dist/types/in-browser/node.d.ts +0 -2
- package/dist/types/index.d.ts +0 -21
- package/dist/types/isBuffer.d.ts +0 -2
- package/dist/types/make-state-datatype.d.ts +0 -11
- package/dist/types/one-flight.d.ts +0 -9
- package/dist/types/patterns.d.ts +0 -8
- package/dist/types/resolve-with.d.ts +0 -22
- package/dist/types/retry.d.ts +0 -13
- package/dist/types/tap.d.ts +0 -17
- package/dist/types/template-container.d.ts +0 -59
- package/dist/types/uuid-utils.d.ts +0 -112
- package/dist/types/while-in-flight.d.ts +0 -7
package/dist/retry.js
CHANGED
|
@@ -15,15 +15,14 @@ var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/refl
|
|
|
15
15
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
16
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
|
-
var _wrap2 = _interopRequireDefault(require("lodash/wrap"));
|
|
19
|
-
var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
|
|
20
|
-
var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
|
|
21
18
|
var _events = require("events");
|
|
19
|
+
var _lodash = require("lodash");
|
|
22
20
|
var _backoff = _interopRequireDefault(require("backoff"));
|
|
23
|
-
function ownKeys(
|
|
24
|
-
function _objectSpread(
|
|
21
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!
|
|
23
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
24
|
+
*/
|
|
25
25
|
/* eslint max-nested-callbacks: [0] */
|
|
26
|
-
|
|
27
26
|
/**
|
|
28
27
|
* Makes a promise-returning method retryable according to the specified backoff
|
|
29
28
|
* pattern
|
|
@@ -42,7 +41,7 @@ function retry() {
|
|
|
42
41
|
}
|
|
43
42
|
var options = params[0] || {};
|
|
44
43
|
options = _objectSpread({}, options);
|
|
45
|
-
(0,
|
|
44
|
+
(0, _lodash.defaults)(options, {
|
|
46
45
|
backoff: true,
|
|
47
46
|
delay: 1,
|
|
48
47
|
maxAttempts: 3
|
|
@@ -72,7 +71,7 @@ function retry() {
|
|
|
72
71
|
* @returns {Object}
|
|
73
72
|
*/
|
|
74
73
|
function retryDecorator(target, prop, descriptor) {
|
|
75
|
-
descriptor.value = (0,
|
|
74
|
+
descriptor.value = (0, _lodash.wrap)(descriptor.value, function retryExecutor(fn) {
|
|
76
75
|
var _this = this;
|
|
77
76
|
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
78
77
|
args[_key2 - 1] = arguments[_key2];
|
|
@@ -85,7 +84,7 @@ function retry() {
|
|
|
85
84
|
var call = _backoff.default.call(function (cb) {
|
|
86
85
|
/* eslint no-invalid-this: [0] */
|
|
87
86
|
var innerPromise = (0, _apply.default)(fn, _this, args);
|
|
88
|
-
if ((0,
|
|
87
|
+
if ((0, _lodash.isFunction)(innerPromise.on)) {
|
|
89
88
|
innerPromise.on('progress', emitter.emit.bind(emitter, 'progress'));
|
|
90
89
|
innerPromise.on('upload-progress', emitter.emit.bind(emitter, 'upload-progress'));
|
|
91
90
|
innerPromise.on('download-progress', emitter.emit.bind(emitter, 'download-progress'));
|
package/dist/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["retry","params","options","backoff","delay","maxAttempts","strategyOptions","initialDelay","maxDelay","
|
|
1
|
+
{"version":3,"names":["_events","require","_lodash","_backoff","_interopRequireDefault","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","retry","_len","params","Array","_key","options","defaults","backoff","delay","maxAttempts","strategyOptions","initialDelay","maxDelay","_apply","retryDecorator","target","prop","descriptor","value","wrap","retryExecutor","fn","_this","_len2","args","_key2","emitter","EventEmitter","promise","_promise","resolve","reject","call","cb","innerPromise","isFunction","on","emit","bind","then","res","catch","reason","Error","err","setStrategy","ExponentialStrategy","failAfter","start","key","callback","_typeof2","prototype"],"sources":["retry.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport {defaults, isFunction, wrap} from 'lodash';\nimport backoff from 'backoff';\n\n/* eslint max-nested-callbacks: [0] */\n\n/**\n * Makes a promise-returning method retryable according to the specified backoff\n * pattern\n * @param {Object} options\n * @param {boolean} options.backoff\n * @param {number} options.delay\n * @param {number} options.initialDelay\n * @param {number} options.maxAttempts\n * @param {number} options.maxDelay\n *\n * @returns {Function}\n */\nexport default function retry(...params) {\n let options = params[0] || {};\n\n options = {...options};\n defaults(options, {\n backoff: true,\n delay: 1,\n maxAttempts: 3,\n });\n\n let strategyOptions;\n\n if (options.backoff) {\n strategyOptions = {\n initialDelay: options.delay,\n maxDelay: options.maxDelay,\n };\n } else {\n strategyOptions = {\n initialDelay: 1,\n maxDelay: 1,\n };\n }\n\n if (params.length === 3) {\n return Reflect.apply(retryDecorator, null, params);\n }\n\n return retryDecorator;\n\n /**\n * @param {Object} target\n * @param {string} prop\n * @param {Object} descriptor\n * @private\n * @returns {Object}\n */\n function retryDecorator(target, prop, descriptor) {\n descriptor.value = wrap(descriptor.value, function retryExecutor(fn, ...args) {\n const emitter = new EventEmitter();\n const promise = new Promise((resolve, reject) => {\n // backoff.call is not Function.prototype.call; it's an unfortunate naming\n // collision.\n /* eslint prefer-reflect: [0] */\n const call = backoff.call(\n (cb) => {\n /* eslint no-invalid-this: [0] */\n const innerPromise = Reflect.apply(fn, this, args);\n\n if (isFunction(innerPromise.on)) {\n innerPromise.on('progress', emitter.emit.bind(emitter, 'progress'));\n innerPromise.on('upload-progress', emitter.emit.bind(emitter, 'upload-progress'));\n innerPromise.on('download-progress', emitter.emit.bind(emitter, 'download-progress'));\n }\n\n return innerPromise\n .then((res) => {\n cb(null, res);\n })\n .catch((reason) => {\n if (!reason) {\n reason = new Error('retryable method failed without providing an error object');\n }\n cb(reason);\n });\n },\n (err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n }\n );\n\n call.setStrategy(new backoff.ExponentialStrategy(strategyOptions));\n if (options.maxAttempts) {\n call.failAfter(options.maxAttempts - 1);\n }\n\n call.start();\n });\n\n promise.on = function on(key, callback) {\n emitter.on(key, callback);\n\n return promise;\n };\n\n return promise;\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n return descriptor;\n }\n}\n"],"mappings":"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"}
|
package/dist/tap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tap","fn","r","resolve","then","catch"],"sources":["tap.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * Injects code into a promise chain without modifying the promise chain's result\n * @param {Function} fn\n * @returns {Promise}\n * @example\n * function f() {\n * return Promise.resolve(5);\n * }\n *\n * f()\n * .then(tap(() => 12))\n * // => 5\n */\nexport default function tap(fn) {\n return (r) =>\n new Promise((resolve) => {\n resolve(fn(r));\n })\n .then(() => r)\n .catch(() => r);\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,
|
|
1
|
+
{"version":3,"names":["tap","fn","r","_promise","default","resolve","then","catch"],"sources":["tap.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * Injects code into a promise chain without modifying the promise chain's result\n * @param {Function} fn\n * @returns {Promise}\n * @example\n * function f() {\n * return Promise.resolve(5);\n * }\n *\n * f()\n * .then(tap(() => 12))\n * // => 5\n */\nexport default function tap(fn) {\n return (r) =>\n new Promise((resolve) => {\n resolve(fn(r));\n })\n .then(() => r)\n .catch(() => r);\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,GAAGA,CAACC,EAAE,EAAE;EAC9B,OAAO,UAACC,CAAC;IAAA,OACP,IAAAC,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAK;MACvBA,OAAO,CAACJ,EAAE,CAACC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,CACCI,IAAI,CAAC;MAAA,OAAMJ,CAAC;IAAA,EAAC,CACbK,KAAK,CAAC;MAAA,OAAML,CAAC;IAAA,EAAC;EAAA;AACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["make","containers","TopContainer","shift","data","sizes","ChildContainer","length","name","concat","map","container","join","Container","args","set","get","ret","clear","key","mine","keys","delete","next","size","undefined","overwrite","has","insert","util","inspect","depth","add","push","TypeError"],"sources":["template-container.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\n/**\n * Factory which produces a multi-keyed container based on the provided set of\n * constructors\n * @param {mixed} containers\n * @returns {Container}\n */\nfunction make(...containers) {\n const TopContainer = containers.shift();\n\n const data = new WeakMap();\n const sizes = new WeakMap();\n\n const ChildContainer = containers.length > 1 ? make(...containers) : containers[0];\n\n const name = `(${[TopContainer.name]\n .concat(containers.map((container) => container.name))\n .join(', ')})`;\n\n /**\n * Container that wraps an arbitrary set of tupples to their values\n */\n class Container {\n /**\n * @constructs Container\n */\n constructor(...args) {\n data.set(this, new TopContainer(...args));\n sizes.set(this, 0);\n }\n\n /**\n * getter for .size\n * @returns {number}\n */\n get size() {\n return sizes.get(this);\n }\n\n /**\n * Identical to Container#set() but leads slightly more intuitive code when\n * the container is based on a Set rather than a Map.\n * @returns {Container}\n */\n add(...args) {\n return this.set(...args);\n }\n\n /**\n * Removes all items from the container\n * @returns {undefined}\n */\n clear() {\n const ret = data.get(this).clear();\n\n sizes.set(this, 0);\n\n return ret;\n }\n\n /**\n * Removes the specified item to the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {boolean}\n */\n delete(key, ...keys) {\n const mine = data.get(this);\n\n if (!keys.length) {\n return mine.delete(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return false;\n }\n\n const ret = next.delete(...keys);\n\n if (ret) {\n sizes.set(this, sizes.get(this) - 1);\n }\n\n if (next.size === 0) {\n mine.delete(key);\n }\n\n return ret;\n }\n\n /**\n * Retrieves the specified item from the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {mixed}\n */\n get(key, ...keys) {\n const mine = data.get(this);\n\n if (!mine.get) {\n return mine;\n }\n\n if (!keys.length) {\n return mine.get(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return undefined;\n }\n\n if (!next.get) {\n return next;\n }\n\n return next.get(...keys);\n }\n\n /**\n * Indicates whether the container holds the specified item\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {Boolean}\n */\n has(...args) {\n return typeof this.get(...args) !== 'undefined';\n }\n\n /**\n * Stores the specified item in the container\n * @param {mixed} key\n * @param {Array<mixed>} args\n * @param {mixed} value\n * @returns {Container}\n */\n set(...args) {\n let overwrite = false;\n\n if (this.has(...args)) {\n overwrite = true;\n }\n const mine = data.get(this);\n\n const key = args.shift();\n\n if (!mine.get) {\n insert(mine, key, ...args);\n\n return this;\n }\n\n let next = mine.get(key);\n\n if (!next) {\n if (!ChildContainer) {\n insert(mine, key, ...args);\n\n return this;\n }\n next = new ChildContainer();\n insert(mine, key, next);\n }\n insert(next, ...args);\n\n if (!overwrite) {\n sizes.set(this, sizes.get(this) + 1);\n }\n\n return this;\n }\n\n /**\n * @private\n * @returns {string}\n */\n inspect() {\n return `Container${name} {\n ${util.inspect(data.get(this), {depth: null})}\n}`;\n }\n }\n\n return Container;\n}\n\n/**\n * Inserts into an arbitrary container\n * @param {Map|WeakMap|Set|WeakSet} container\n * @param {Array<mixed>} args\n * @private\n * @returns {undefined}\n */\nfunction insert(container, ...args) {\n if (container.add) {\n container.add(...args);\n\n return;\n }\n\n if (container.set) {\n container.set(...args);\n\n return;\n }\n\n if (container.push) {\n container.push(...args);\n\n return;\n }\n throw new TypeError('Could not determine how to insert into the specified container');\n}\nexport {make as default};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_util","_interopRequireDefault","require","make","_len","arguments","length","containers","Array","_key","TopContainer","shift","data","_weakMap","default","sizes","ChildContainer","apply","name","concat","map","container","join","Container","_classCallCheck2","_len2","args","_key2","set","_construct2","_createClass2","key","get","value","add","clear","ret","_delete","mine","_len3","keys","_key3","delete","next","size","_len4","_key4","undefined","has","overwrite","_len5","_key5","insert","inspect","util","depth","_len6","_key6","push","TypeError"],"sources":["template-container.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\n/**\n * Factory which produces a multi-keyed container based on the provided set of\n * constructors\n * @param {mixed} containers\n * @returns {Container}\n */\nfunction make(...containers) {\n const TopContainer = containers.shift();\n\n const data = new WeakMap();\n const sizes = new WeakMap();\n\n const ChildContainer = containers.length > 1 ? make(...containers) : containers[0];\n\n const name = `(${[TopContainer.name]\n .concat(containers.map((container) => container.name))\n .join(', ')})`;\n\n /**\n * Container that wraps an arbitrary set of tupples to their values\n */\n class Container {\n /**\n * @constructs Container\n */\n constructor(...args) {\n data.set(this, new TopContainer(...args));\n sizes.set(this, 0);\n }\n\n /**\n * getter for .size\n * @returns {number}\n */\n get size() {\n return sizes.get(this);\n }\n\n /**\n * Identical to Container#set() but leads slightly more intuitive code when\n * the container is based on a Set rather than a Map.\n * @returns {Container}\n */\n add(...args) {\n return this.set(...args);\n }\n\n /**\n * Removes all items from the container\n * @returns {undefined}\n */\n clear() {\n const ret = data.get(this).clear();\n\n sizes.set(this, 0);\n\n return ret;\n }\n\n /**\n * Removes the specified item to the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {boolean}\n */\n delete(key, ...keys) {\n const mine = data.get(this);\n\n if (!keys.length) {\n return mine.delete(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return false;\n }\n\n const ret = next.delete(...keys);\n\n if (ret) {\n sizes.set(this, sizes.get(this) - 1);\n }\n\n if (next.size === 0) {\n mine.delete(key);\n }\n\n return ret;\n }\n\n /**\n * Retrieves the specified item from the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {mixed}\n */\n get(key, ...keys) {\n const mine = data.get(this);\n\n if (!mine.get) {\n return mine;\n }\n\n if (!keys.length) {\n return mine.get(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return undefined;\n }\n\n if (!next.get) {\n return next;\n }\n\n return next.get(...keys);\n }\n\n /**\n * Indicates whether the container holds the specified item\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {Boolean}\n */\n has(...args) {\n return typeof this.get(...args) !== 'undefined';\n }\n\n /**\n * Stores the specified item in the container\n * @param {mixed} key\n * @param {Array<mixed>} args\n * @param {mixed} value\n * @returns {Container}\n */\n set(...args) {\n let overwrite = false;\n\n if (this.has(...args)) {\n overwrite = true;\n }\n const mine = data.get(this);\n\n const key = args.shift();\n\n if (!mine.get) {\n insert(mine, key, ...args);\n\n return this;\n }\n\n let next = mine.get(key);\n\n if (!next) {\n if (!ChildContainer) {\n insert(mine, key, ...args);\n\n return this;\n }\n next = new ChildContainer();\n insert(mine, key, next);\n }\n insert(next, ...args);\n\n if (!overwrite) {\n sizes.set(this, sizes.get(this) + 1);\n }\n\n return this;\n }\n\n /**\n * @private\n * @returns {string}\n */\n inspect() {\n return `Container${name} {\n ${util.inspect(data.get(this), {depth: null})}\n}`;\n }\n }\n\n return Container;\n}\n\n/**\n * Inserts into an arbitrary container\n * @param {Map|WeakMap|Set|WeakSet} container\n * @param {Array<mixed>} args\n * @private\n * @returns {undefined}\n */\nfunction insert(container, ...args) {\n if (container.add) {\n container.add(...args);\n\n return;\n }\n\n if (container.set) {\n container.set(...args);\n\n return;\n }\n\n if (container.push) {\n container.push(...args);\n\n return;\n }\n throw new TypeError('Could not determine how to insert into the specified container');\n}\nexport {make as default};\n"],"mappings":"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"}
|
package/dist/uuid-utils.js
CHANGED
package/dist/uuid-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hydraBaseUrl","isRequired","Error","constructHydraId","type","id","cluster","toUpperCase","hydraTypes","PEOPLE","ORGANIZATION","encode","deconstructHydraId","payload","decode","split","pop","buildHydraMessageId","uuid","MESSAGE","buildHydraPersonId","buildHydraRoomId","ROOM","buildHydraOrgId","buildHydraMembershipId","personUUID","spaceUUID","MEMBERSHIP","getHydraClusterString","webex","conversationUrl","internalClusterString","internal","services","getClusterId","startsWith","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME","clusterParts","
|
|
1
|
+
{"version":3,"names":["_base","require","_constants","hydraBaseUrl","isRequired","Error","constructHydraId","type","arguments","length","undefined","id","cluster","toUpperCase","hydraTypes","PEOPLE","ORGANIZATION","encode","concat","deconstructHydraId","payload","decode","split","pop","buildHydraMessageId","uuid","MESSAGE","buildHydraPersonId","buildHydraRoomId","ROOM","buildHydraOrgId","buildHydraMembershipId","personUUID","spaceUUID","MEMBERSHIP","getHydraClusterString","webex","conversationUrl","internalClusterString","internal","services","getClusterId","startsWith","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME","clusterParts","getHydraRoomType","tags","includes","SDK_EVENT","INTERNAL","ACTIVITY_TAG","ONE_ON_ONE","EXTERNAL","SPACE_TYPE","DIRECT","GROUP","getHydraFiles","activity","hydraFiles","files","object","items","i","contentId","CONTENT","push"],"sources":["uuid-utils.js"],"sourcesContent":["import {encode, decode} from './base64';\nimport {\n SDK_EVENT,\n hydraTypes,\n INTERNAL_US_CLUSTER_NAME,\n INTERNAL_US_INTEGRATION_CLUSTER_NAME,\n} from './constants';\n\nconst hydraBaseUrl = 'https://api.ciscospark.com/v1';\n\nconst isRequired = () => {\n throw Error('parameter is required');\n};\n\n/**\n * Constructs a Hydra ID for a given UUID and type.\n *\n * @export\n * @param {string} type one of PEOPLE, TEAM, ROOM\n * @param {any} id identifying the \"TYPE\" object\n * @param {string} cluster containing the \"TYPE\" object\n * @returns {string}\n */\nexport function constructHydraId(type = isRequired(), id = isRequired(), cluster = 'us') {\n if (!type.toUpperCase) {\n throw Error('\"type\" must be a string');\n }\n\n if (type === hydraTypes.PEOPLE || type === hydraTypes.ORGANIZATION) {\n // Cluster is always \"us\" for people and orgs\n return encode(`ciscospark://us/${type.toUpperCase()}/${id}`);\n }\n\n return encode(`ciscospark://${cluster}/${type.toUpperCase()}/${id}`);\n}\n\n/**\n * @typedef {Object} DeconstructedHydraId\n * @property {UUID} id identifying the object\n * @property {String} type of the object\n * @property {String} cluster containing the object\n */\n\n/**\n * Deconstructs a Hydra ID.\n *\n * @export\n * @param {String} id Hydra style id\n * @returns {DeconstructedHydraId} deconstructed id\n */\nexport function deconstructHydraId(id) {\n const payload = decode(id).split('/');\n\n return {\n id: payload.pop(),\n type: payload.pop(),\n cluster: payload.pop(),\n };\n}\n\n/**\n * Constructs a Hydra ID for a message based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the message\n * @returns {string}\n */\nexport function buildHydraMessageId(uuid, cluster) {\n return constructHydraId(hydraTypes.MESSAGE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a person based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the person\n * @returns {string}\n */\nexport function buildHydraPersonId(uuid, cluster) {\n return constructHydraId(hydraTypes.PEOPLE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a room based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the room\n * @returns {string}\n */\nexport function buildHydraRoomId(uuid, cluster) {\n return constructHydraId(hydraTypes.ROOM, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an organization based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the organization\n * @returns {string}\n */\nexport function buildHydraOrgId(uuid, cluster) {\n return constructHydraId(hydraTypes.ORGANIZATION, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an membership based on an\n * internal UUID for the person, and the space\n *\n * @export\n * @param {any} personUUID\n * @param {any} spaceUUID\n * @param {string} cluster containing the membership\n * @returns {string}\n */\nexport function buildHydraMembershipId(personUUID, spaceUUID, cluster) {\n return constructHydraId(hydraTypes.MEMBERSHIP, `${personUUID}:${spaceUUID}`, cluster);\n}\n\n/**\n * Returns a hydra cluster string based on a conversation url\n * @private\n * @memberof Messages\n * @param {Object} webex sdk instance\n * @param {String} conversationUrl url of space where activity took place\n * @returns {String} string suitable for UUID -> public ID encoding\n */\nexport function getHydraClusterString(webex, conversationUrl) {\n const internalClusterString = webex.internal.services.getClusterId(conversationUrl);\n\n if (\n internalClusterString.startsWith(INTERNAL_US_CLUSTER_NAME) ||\n internalClusterString.startsWith(INTERNAL_US_INTEGRATION_CLUSTER_NAME)\n ) {\n // Original US cluster is simply 'us' for backwards compatibility\n return 'us';\n }\n const clusterParts = internalClusterString.split(':');\n\n if (clusterParts.length < 3) {\n throw Error(`Unable to determine cluster for convo: ${conversationUrl}`);\n }\n\n return `${clusterParts[0]}:${clusterParts[1]}:${clusterParts[2]}`;\n}\n\n/**\n * Returns a Hydra roomType based on conversation tags\n *\n * @export\n * @param {arra} tags\n * @returns {string}\n */\nexport function getHydraRoomType(tags) {\n if (tags.includes(SDK_EVENT.INTERNAL.ACTIVITY_TAG.ONE_ON_ONE)) {\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.DIRECT;\n }\n\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.GROUP;\n}\n\n/**\n * Returns file URLs for the activity, adhering to Hydra details,\n * e.g., https://api.ciscospark.com/v1/contents/Y2lzY29zcGF...\n * @see https://developer.webex.com/docs/api/v1/messages/get-message-details\n * @param {Object} activity from mercury\n * @param {string} cluster containing the files\n * @returns {Array} file URLs\n */\nexport function getHydraFiles(activity, cluster) {\n const hydraFiles = [];\n const {files} = activity.object;\n\n if (files) {\n const {items} = files;\n\n // Note: Generated ID is dependent on file order.\n for (let i = 0; i < items.length; i += 1) {\n const contentId = constructHydraId(hydraTypes.CONTENT, `${activity.id}/${i}`, cluster);\n\n hydraFiles.push(`${hydraBaseUrl}/contents/${contentId}`);\n }\n }\n\n return hydraFiles;\n}\n"],"mappings":"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"}
|
package/dist/while-in-flight.js
CHANGED
|
@@ -8,8 +8,14 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = whileInFlight;
|
|
9
9
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
10
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
11
|
-
var
|
|
11
|
+
var _lodash = require("lodash");
|
|
12
12
|
var _tap = _interopRequireDefault(require("./tap"));
|
|
13
|
+
/*!
|
|
14
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint no-invalid-this: [0] */
|
|
18
|
+
|
|
13
19
|
/**
|
|
14
20
|
* While the promise returned by the decorated is unfullfilled, sets, the
|
|
15
21
|
* specified boolean on the target class to `true`
|
|
@@ -18,7 +24,7 @@ var _tap = _interopRequireDefault(require("./tap"));
|
|
|
18
24
|
*/
|
|
19
25
|
function whileInFlight(param) {
|
|
20
26
|
return function whileInFlightDecorator(target, name, descriptor) {
|
|
21
|
-
descriptor.value = (0,
|
|
27
|
+
descriptor.value = (0, _lodash.wrap)(descriptor.value, function whileInFlightExecutor(fn) {
|
|
22
28
|
var _this = this;
|
|
23
29
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
24
30
|
args[_key - 1] = arguments[_key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["whileInFlight","param","whileInFlightDecorator","target","name","descriptor","value","whileInFlightExecutor","fn","args","resolve","then","tap","catch","reason","reject"],"sources":["while-in-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {wrap} from 'lodash';\n\nimport tap from './tap';\n\n/**\n * While the promise returned by the decorated is unfullfilled, sets, the\n * specified boolean on the target class to `true`\n * @param {string} param\n * @returns {Function}\n */\nexport default function whileInFlight(param) {\n return function whileInFlightDecorator(target, name, descriptor) {\n descriptor.value = wrap(descriptor.value, function whileInFlightExecutor(fn, ...args) {\n return new Promise((resolve) => {\n this[param] = true;\n resolve(\n Reflect.apply(fn, this, args)\n .then(\n tap(() => {\n this[param] = false;\n })\n )\n .catch((reason) => {\n this[param] = false;\n\n return Promise.reject(reason);\n })\n );\n });\n });\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_lodash","require","_tap","_interopRequireDefault","whileInFlight","param","whileInFlightDecorator","target","name","descriptor","value","wrap","whileInFlightExecutor","fn","_this","_len","arguments","length","args","Array","_key","_promise","default","resolve","_apply","then","tap","catch","reason","reject"],"sources":["while-in-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {wrap} from 'lodash';\n\nimport tap from './tap';\n\n/**\n * While the promise returned by the decorated is unfullfilled, sets, the\n * specified boolean on the target class to `true`\n * @param {string} param\n * @returns {Function}\n */\nexport default function whileInFlight(param) {\n return function whileInFlightDecorator(target, name, descriptor) {\n descriptor.value = wrap(descriptor.value, function whileInFlightExecutor(fn, ...args) {\n return new Promise((resolve) => {\n this[param] = true;\n resolve(\n Reflect.apply(fn, this, args)\n .then(\n tap(() => {\n this[param] = false;\n })\n )\n .catch((reason) => {\n this[param] = false;\n\n return Promise.reject(reason);\n })\n );\n });\n });\n };\n}\n"],"mappings":";;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AARA;AACA;AACA;;AAEA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,aAAaA,CAACC,KAAK,EAAE;EAC3C,OAAO,SAASC,sBAAsBA,CAACC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE;IAC/DA,UAAU,CAACC,KAAK,GAAG,IAAAC,YAAI,EAACF,UAAU,CAACC,KAAK,EAAE,SAASE,qBAAqBA,CAACC,EAAE,EAAW;MAAA,IAAAC,KAAA;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;MAAA;MAClF,OAAO,IAAAC,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAK;QAC9BT,KAAI,CAACT,KAAK,CAAC,GAAG,IAAI;QAClBkB,OAAO,CACL,IAAAC,MAAA,CAAAF,OAAA,EAAcT,EAAE,EAAEC,KAAI,EAAEI,IAAI,CAAC,CAC1BO,IAAI,CACH,IAAAC,YAAG,EAAC,YAAM;UACRZ,KAAI,CAACT,KAAK,CAAC,GAAG,KAAK;QACrB,CAAC,CACH,CAAC,CACAsB,KAAK,CAAC,UAACC,MAAM,EAAK;UACjBd,KAAI,CAACT,KAAK,CAAC,GAAG,KAAK;UAEnB,OAAOgB,QAAA,CAAAC,OAAA,CAAQO,MAAM,CAACD,MAAM,CAAC;QAC/B,CAAC,CACL,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;AACH"}
|
package/jest.config.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/common",
|
|
3
|
-
"version": "3.0.0-bnr.5",
|
|
4
3
|
"description": "Common utilities for Cisco Webex",
|
|
5
4
|
"license": "MIT",
|
|
6
5
|
"main": "dist/index.js",
|
|
@@ -24,10 +23,19 @@
|
|
|
24
23
|
]
|
|
25
24
|
},
|
|
26
25
|
"devDependencies": {
|
|
26
|
+
"@babel/core": "^7.17.10",
|
|
27
27
|
"@sinonjs/fake-timers": "^6.0.1",
|
|
28
|
-
"@webex/
|
|
29
|
-
"@webex/
|
|
28
|
+
"@webex/babel-config-legacy": "0.0.0",
|
|
29
|
+
"@webex/eslint-config-legacy": "0.0.0",
|
|
30
|
+
"@webex/jest-config-legacy": "0.0.0",
|
|
31
|
+
"@webex/legacy-tools": "0.0.0",
|
|
32
|
+
"@webex/test-helper-chai": "3.0.0-next.2",
|
|
33
|
+
"@webex/test-helper-mocha": "3.0.0-next.2",
|
|
34
|
+
"@webex/test-helper-mock-webex": "3.0.0-next.2",
|
|
35
|
+
"@webex/test-helper-test-users": "3.0.0-next.2",
|
|
30
36
|
"ampersand-state": "^5.0.3",
|
|
37
|
+
"eslint": "^8.24.0",
|
|
38
|
+
"prettier": "^2.7.1",
|
|
31
39
|
"sinon": "^9.2.4"
|
|
32
40
|
},
|
|
33
41
|
"dependencies": {
|
|
@@ -38,5 +46,14 @@
|
|
|
38
46
|
"lodash": "^4.17.21",
|
|
39
47
|
"safe-buffer": "^5.2.0",
|
|
40
48
|
"urlsafe-base64": "^1.0.0"
|
|
41
|
-
}
|
|
42
|
-
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"build": "yarn build:src",
|
|
52
|
+
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
|
|
53
|
+
"deploy:npm": "yarn npm publish",
|
|
54
|
+
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
55
|
+
"test:style": "eslint ./src/**/*.*",
|
|
56
|
+
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
57
|
+
},
|
|
58
|
+
"version": "3.0.0-next.2"
|
|
59
|
+
}
|
package/process
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = {browser: true};
|
package/src/browser-detection.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import bowser from 'bowser';
|
|
2
2
|
import {memoize} from 'lodash';
|
|
3
3
|
import window from 'global/window';
|
|
4
|
+
import {browserDetection} from './constants';
|
|
5
|
+
|
|
6
|
+
export const getBrowserSerial = () => {
|
|
7
|
+
let browserData;
|
|
8
|
+
try {
|
|
9
|
+
browserData = window?.navigator?.userAgent
|
|
10
|
+
? bowser.getParser(window.navigator.userAgent)
|
|
11
|
+
: {error: browserDetection.unableToAccessUserAgent};
|
|
12
|
+
} catch (err) {
|
|
13
|
+
browserData = {error: err.message};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return browserData;
|
|
17
|
+
};
|
|
4
18
|
|
|
5
19
|
const mockDetectionObject = {
|
|
6
20
|
/* eslint-disable global-require */
|
package/src/constants.js
CHANGED
|
@@ -59,6 +59,10 @@ export const SDK_EVENT = {
|
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
+
export const browserDetection = {
|
|
63
|
+
unableToAccessUserAgent: 'unable to access window.navigator.userAgent',
|
|
64
|
+
};
|
|
65
|
+
|
|
62
66
|
export const hydraTypes = {
|
|
63
67
|
ATTACHMENT_ACTION: 'ATTACHMENT_ACTION',
|
|
64
68
|
CONTENT: 'CONTENT',
|
package/src/index.js
CHANGED
|
@@ -29,7 +29,7 @@ export {
|
|
|
29
29
|
INTERNAL_US_INTEGRATION_CLUSTER_NAME,
|
|
30
30
|
} from './constants';
|
|
31
31
|
|
|
32
|
-
export {default as BrowserDetection} from './browser-detection';
|
|
32
|
+
export {default as BrowserDetection, getBrowserSerial} from './browser-detection';
|
|
33
33
|
export {
|
|
34
34
|
buildHydraMembershipId,
|
|
35
35
|
buildHydraMessageId,
|
package/src/patterns.js
CHANGED
|
@@ -37,6 +37,12 @@ export default {
|
|
|
37
37
|
*/
|
|
38
38
|
uuid: /^[a-f\d]{8}(?:-[a-f\d]{4}){3}-[a-f\d]{12}$/,
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Regular expression that validates an ambiguous string contains MTID
|
|
42
|
+
* @type {RegExp}
|
|
43
|
+
*/
|
|
44
|
+
containsMTID: /(MTID=)[^&$#]*/g,
|
|
45
|
+
|
|
40
46
|
/**
|
|
41
47
|
* Same as this.email, but allows for surrounding characters
|
|
42
48
|
* @type {RegExp}
|
package/src/uuid-utils.js
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {assert} from '@webex/test-helper-chai';
|
|
6
|
+
import sinon from 'sinon';
|
|
7
|
+
import { getBrowserSerial } from '@webex/common';
|
|
8
|
+
import window from 'global/window';
|
|
9
|
+
import bowser from 'bowser';
|
|
10
|
+
import {browserDetection} from '@webex/common/src/constants.js';
|
|
11
|
+
|
|
12
|
+
describe('getBowserSerial()', () => {
|
|
13
|
+
const originalWindowNavigator = {...window.navigator};
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
window.navigator = originalWindowNavigator;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should provide the parsed bowser user agent when available', () => {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
window.navigator = {userAgent: 'user agent data'};
|
|
22
|
+
|
|
23
|
+
const res = getBrowserSerial();
|
|
24
|
+
assert.deepEqual(res._ua, 'user agent data');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('should provide an error message when the user agent is not available', () => {
|
|
28
|
+
//@ts-ignore
|
|
29
|
+
window.navigator = undefined;
|
|
30
|
+
|
|
31
|
+
const res = getBrowserSerial();
|
|
32
|
+
assert.deepEqual(res, {error: browserDetection.unableToAccessUserAgent});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should provide an error message object when bowser.getParser() fails', () => {
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
window.navigator = {userAgent: 'user agent data'};
|
|
38
|
+
|
|
39
|
+
bowser.getParser = sinon.stub().throws(new Error('test error'));
|
|
40
|
+
const res = getBrowserSerial();
|
|
41
|
+
assert.deepEqual(res, {error: 'test error'});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
package/dist/types/base64.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a string from a base64url-encoded string
|
|
3
|
-
* @param {string} str
|
|
4
|
-
* @returns {string}
|
|
5
|
-
*/
|
|
6
|
-
export function fromBase64url(str: string): string;
|
|
7
|
-
/**
|
|
8
|
-
* Converts a string to a base64url-encoded string. It also accepts a buffer
|
|
9
|
-
* @param {string|buffer} str
|
|
10
|
-
* @returns {string}
|
|
11
|
-
*/
|
|
12
|
-
export function toBase64Url(str: any): string;
|
|
13
|
-
/**
|
|
14
|
-
* Converts a string to a base64url-encoded string. It also accepts a buffer
|
|
15
|
-
* @param {string|buffer} str
|
|
16
|
-
* @returns {string}
|
|
17
|
-
*/
|
|
18
|
-
export function encode(str: string | buffer): string;
|
|
19
|
-
/**
|
|
20
|
-
* Converts a string from a base64url-encoded string
|
|
21
|
-
* @param {string} str
|
|
22
|
-
* @returns {string}
|
|
23
|
-
*/
|
|
24
|
-
export function decode(str: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* Indicates if the provided string is, in fact, a base64 string
|
|
27
|
-
* @param {String} str
|
|
28
|
-
* @returns {Boolean}
|
|
29
|
-
*/
|
|
30
|
-
export function validate(str: string): boolean;
|
|
31
|
-
declare namespace _default {
|
|
32
|
-
export { fromBase64url };
|
|
33
|
-
export { toBase64Url };
|
|
34
|
-
export { encode };
|
|
35
|
-
export { decode };
|
|
36
|
-
export { validate };
|
|
37
|
-
}
|
|
38
|
-
export default _default;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Behaves like debounce, but additionally executes after a number of calls are
|
|
6
|
-
* attempted, rather than just time
|
|
7
|
-
* @param {Function} fn
|
|
8
|
-
* @param {Number} wait
|
|
9
|
-
* @param {Object} options
|
|
10
|
-
* @returns {Function}
|
|
11
|
-
*/
|
|
12
|
-
export default function debounce(fn: Function, wait: number, options: any): Function;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Check object for the specified keys
|
|
6
|
-
* @param {Array<string>} keys
|
|
7
|
-
* @param {Object} object
|
|
8
|
-
* @returns {undefined}
|
|
9
|
-
* @throws Error
|
|
10
|
-
*/
|
|
11
|
-
export default function checkRequired(keys: Array<string>, object: any): undefined;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
export namespace SDK_EVENT {
|
|
2
|
-
namespace INTERNAL {
|
|
3
|
-
const WEBEX_ACTIVITY: string;
|
|
4
|
-
namespace ACTIVITY_FIELD {
|
|
5
|
-
const ACTOR: string;
|
|
6
|
-
const OBJECT: string;
|
|
7
|
-
const TARGET: string;
|
|
8
|
-
}
|
|
9
|
-
namespace ACTIVITY_VERB {
|
|
10
|
-
const ACKNOWLEDGE: string;
|
|
11
|
-
const CARD_ACTION: string;
|
|
12
|
-
const CREATE: string;
|
|
13
|
-
const POST: string;
|
|
14
|
-
const SHARE: string;
|
|
15
|
-
const DELETE: string;
|
|
16
|
-
const ADD: string;
|
|
17
|
-
const LEAVE: string;
|
|
18
|
-
const ADD_MODERATOR: string;
|
|
19
|
-
const REMOVE_MODERATOR: string;
|
|
20
|
-
const LOCK: string;
|
|
21
|
-
const UNLOCK: string;
|
|
22
|
-
const HIDE: string;
|
|
23
|
-
const UPDATE: string;
|
|
24
|
-
}
|
|
25
|
-
namespace ACTIVITY_TAG {
|
|
26
|
-
const HIDDEN: string;
|
|
27
|
-
const ONE_ON_ONE: string;
|
|
28
|
-
const LOCKED: string;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
namespace EXTERNAL {
|
|
32
|
-
namespace EVENT_TYPE {
|
|
33
|
-
const CREATED: string;
|
|
34
|
-
const DELETED: string;
|
|
35
|
-
const UPDATED: string;
|
|
36
|
-
const SEEN: string;
|
|
37
|
-
}
|
|
38
|
-
namespace OWNER {
|
|
39
|
-
const CREATOR: string;
|
|
40
|
-
const ORG: string;
|
|
41
|
-
}
|
|
42
|
-
namespace STATUS {
|
|
43
|
-
const ACTIVE: string;
|
|
44
|
-
const DISABLED: string;
|
|
45
|
-
}
|
|
46
|
-
namespace SPACE_TYPE {
|
|
47
|
-
const DIRECT: string;
|
|
48
|
-
const GROUP: string;
|
|
49
|
-
}
|
|
50
|
-
namespace RESOURCE {
|
|
51
|
-
const ATTACHMENT_ACTIONS: string;
|
|
52
|
-
const MEMBERSHIPS: string;
|
|
53
|
-
const MESSAGES: string;
|
|
54
|
-
const ROOMS: string;
|
|
55
|
-
}
|
|
56
|
-
namespace ATTACHMENTS {
|
|
57
|
-
const CARD_CONTENT_TYPE: string;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export namespace hydraTypes {
|
|
62
|
-
const ATTACHMENT_ACTION: string;
|
|
63
|
-
const CONTENT: string;
|
|
64
|
-
const MEMBERSHIP: string;
|
|
65
|
-
const MESSAGE: string;
|
|
66
|
-
const ORGANIZATION: string;
|
|
67
|
-
const PEOPLE: string;
|
|
68
|
-
const ROOM: string;
|
|
69
|
-
const TEAM: string;
|
|
70
|
-
}
|
|
71
|
-
export namespace deviceType {
|
|
72
|
-
const PROVISIONAL: string;
|
|
73
|
-
const WEB: string;
|
|
74
|
-
}
|
|
75
|
-
export const INTERNAL_US_CLUSTER_NAME: "urn:TEAM:us-east-2_a";
|
|
76
|
-
export const INTERNAL_US_INTEGRATION_CLUSTER_NAME: "urn:TEAM:us-east-1_int13";
|
package/dist/types/defer.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Creates a new `Defer`red object,
|
|
6
|
-
* @returns {Defer}
|
|
7
|
-
*/
|
|
8
|
-
export default function Defer(): Defer;
|
|
9
|
-
export default class Defer {
|
|
10
|
-
promise: Promise<any>;
|
|
11
|
-
/**
|
|
12
|
-
* @instance
|
|
13
|
-
* @memberof Defer
|
|
14
|
-
* @type {function}
|
|
15
|
-
*/
|
|
16
|
-
resolve: Function;
|
|
17
|
-
/**
|
|
18
|
-
* @instance
|
|
19
|
-
* @memberof Defer
|
|
20
|
-
* @type {function}
|
|
21
|
-
*/
|
|
22
|
-
reject: Function;
|
|
23
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a 'webhook' envelope to wrap Webex events in
|
|
3
|
-
* @param {object} webex - sdk object
|
|
4
|
-
* @param {string} resource - resource to create an envelope for
|
|
5
|
-
* @returns {object} - Returns a promise of an event envelope object
|
|
6
|
-
*/
|
|
7
|
-
export function createEventEnvelope(webex: object, resource: string): object;
|
|
8
|
-
/**
|
|
9
|
-
* Stores SDK users info in the sdk object if it doesn't already exist
|
|
10
|
-
* @param {object} webex - sdk object
|
|
11
|
-
* @returns {Promise} - Returns a promise that user info will be available
|
|
12
|
-
*/
|
|
13
|
-
export function ensureMyIdIsAvailable(webex: object): Promise<any>;
|