@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.
Files changed (74) hide show
  1. package/.eslintrc.js +6 -0
  2. package/babel.config.js +3 -0
  3. package/dist/base64.js +1 -2
  4. package/dist/base64.js.map +1 -1
  5. package/dist/browser-detection.js +20 -6
  6. package/dist/browser-detection.js.map +1 -1
  7. package/dist/capped-debounce.js.map +1 -1
  8. package/dist/check-required.js.map +1 -1
  9. package/dist/constants.js +9 -11
  10. package/dist/constants.js.map +1 -1
  11. package/dist/defer.js.map +1 -1
  12. package/dist/deprecated.js +1 -2
  13. package/dist/deprecated.js.map +1 -1
  14. package/dist/event-envelope.js.map +1 -1
  15. package/dist/events.js +6 -2
  16. package/dist/events.js.map +1 -1
  17. package/dist/exception.js +1 -2
  18. package/dist/exception.js.map +1 -1
  19. package/dist/in-browser/browser.js +1 -2
  20. package/dist/in-browser/browser.js.map +1 -1
  21. package/dist/in-browser/index.js.map +1 -1
  22. package/dist/in-browser/node.js +1 -2
  23. package/dist/in-browser/node.js.map +1 -1
  24. package/dist/index.js +12 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/isBuffer.js +1 -2
  27. package/dist/isBuffer.js.map +1 -1
  28. package/dist/make-state-datatype.js.map +1 -1
  29. package/dist/one-flight.js +7 -3
  30. package/dist/one-flight.js.map +1 -1
  31. package/dist/patterns.js +6 -2
  32. package/dist/patterns.js.map +1 -1
  33. package/dist/resolve-with.js.map +1 -1
  34. package/dist/retry.js +8 -9
  35. package/dist/retry.js.map +1 -1
  36. package/dist/tap.js.map +1 -1
  37. package/dist/template-container.js.map +1 -1
  38. package/dist/uuid-utils.js +0 -1
  39. package/dist/uuid-utils.js.map +1 -1
  40. package/dist/while-in-flight.js +8 -2
  41. package/dist/while-in-flight.js.map +1 -1
  42. package/jest.config.js +3 -0
  43. package/package.json +22 -5
  44. package/process +1 -0
  45. package/src/browser-detection.js +14 -0
  46. package/src/constants.js +4 -0
  47. package/src/index.js +1 -1
  48. package/src/patterns.js +6 -0
  49. package/src/uuid-utils.js +0 -1
  50. package/test/unit/spec/browser-detection.js +44 -0
  51. package/dist/types/base64.d.ts +0 -38
  52. package/dist/types/browser-detection.d.ts +0 -8
  53. package/dist/types/capped-debounce.d.ts +0 -12
  54. package/dist/types/check-required.d.ts +0 -11
  55. package/dist/types/constants.d.ts +0 -76
  56. package/dist/types/defer.d.ts +0 -23
  57. package/dist/types/deprecated.d.ts +0 -7
  58. package/dist/types/event-envelope.d.ts +0 -13
  59. package/dist/types/events.d.ts +0 -15
  60. package/dist/types/exception.d.ts +0 -23
  61. package/dist/types/in-browser/browser.d.ts +0 -2
  62. package/dist/types/in-browser/index.d.ts +0 -1
  63. package/dist/types/in-browser/node.d.ts +0 -2
  64. package/dist/types/index.d.ts +0 -21
  65. package/dist/types/isBuffer.d.ts +0 -2
  66. package/dist/types/make-state-datatype.d.ts +0 -11
  67. package/dist/types/one-flight.d.ts +0 -9
  68. package/dist/types/patterns.d.ts +0 -8
  69. package/dist/types/resolve-with.d.ts +0 -22
  70. package/dist/types/retry.d.ts +0 -13
  71. package/dist/types/tap.d.ts +0 -17
  72. package/dist/types/template-container.d.ts +0 -59
  73. package/dist/types/uuid-utils.d.ts +0 -112
  74. 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(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
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, _defaults2.default)(options, {
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, _wrap2.default)(descriptor.value, function retryExecutor(fn) {
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, _isFunction2.default)(innerPromise.on)) {
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","length","retryDecorator","target","prop","descriptor","value","retryExecutor","fn","args","emitter","EventEmitter","promise","resolve","reject","call","cb","innerPromise","on","emit","bind","then","res","catch","reason","Error","err","setStrategy","ExponentialStrategy","failAfter","start","key","callback","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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"}
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,GAAG,CAACC,EAAE,EAAE;EAC9B,OAAO,UAACC,CAAC;IAAA,OACP,qBAAY,UAACC,OAAO,EAAK;MACvBA,OAAO,CAACF,EAAE,CAACC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,CACCE,IAAI,CAAC;MAAA,OAAMF,CAAC;IAAA,EAAC,CACbG,KAAK,CAAC;MAAA,OAAMH,CAAC;IAAA,EAAC;EAAA;AACrB"}
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":";;;;;;;;;;;;AAIA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,IAAIA,CAAA,EAAgB;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAZC,UAAU,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAVF,UAAU,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;EAAA;EACzB,IAAMC,YAAY,GAAGH,UAAU,CAACI,KAAK,CAAC,CAAC;EAEvC,IAAMC,IAAI,GAAG,IAAAC,QAAA,CAAAC,OAAA,CAAY,CAAC;EAC1B,IAAMC,KAAK,GAAG,IAAAF,QAAA,CAAAC,OAAA,CAAY,CAAC;EAE3B,IAAME,cAAc,GAAGT,UAAU,CAACD,MAAM,GAAG,CAAC,GAAGH,IAAI,CAAAc,KAAA,SAAIV,UAAU,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC;EAElF,IAAMW,IAAI,OAAAC,MAAA,CAAO,CAACT,YAAY,CAACQ,IAAI,CAAC,CACjCC,MAAM,CAACZ,UAAU,CAACa,GAAG,CAAC,UAACC,SAAS;IAAA,OAAKA,SAAS,CAACH,IAAI;EAAA,EAAC,CAAC,CACrDI,IAAI,CAAC,IAAI,CAAC,MAAG;;EAEhB;AACF;AACA;EAFE,IAGMC,SAAS;IACb;AACJ;AACA;IACI,SAAAA,UAAA,EAAqB;MAAA,IAAAC,gBAAA,CAAAV,OAAA,QAAAS,SAAA;MAAA,SAAAE,KAAA,GAAApB,SAAA,CAAAC,MAAA,EAANoB,IAAI,OAAAlB,KAAA,CAAAiB,KAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;QAAJD,IAAI,CAAAC,KAAA,IAAAtB,SAAA,CAAAsB,KAAA;MAAA;MACjBf,IAAI,CAACgB,GAAG,CAAC,IAAI,MAAAC,WAAA,CAAAf,OAAA,EAAMJ,YAAY,EAAIgB,IAAI,CAAC,CAAC;MACzCX,KAAK,CAACa,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpB;;IAEA;AACJ;AACA;AACA;IAHI,IAAAE,aAAA,CAAAhB,OAAA,EAAAS,SAAA;MAAAQ,GAAA;MAAAC,GAAA,EAIA,SAAAA,IAAA,EAAW;QACT,OAAOjB,KAAK,CAACiB,GAAG,CAAC,IAAI,CAAC;MACxB;;MAEA;AACJ;AACA;AACA;AACA;IAJI;MAAAD,GAAA;MAAAE,KAAA,EAKA,SAAAC,IAAA,EAAa;QACX,OAAO,IAAI,CAACN,GAAG,CAAAX,KAAA,CAAR,IAAI,EAAAZ,SAAY,CAAC;MAC1B;;MAEA;AACJ;AACA;AACA;IAHI;MAAA0B,GAAA;MAAAE,KAAA,EAIA,SAAAE,MAAA,EAAQ;QACN,IAAMC,GAAG,GAAGxB,IAAI,CAACoB,GAAG,CAAC,IAAI,CAAC,CAACG,KAAK,CAAC,CAAC;QAElCpB,KAAK,CAACa,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAElB,OAAOQ,GAAG;MACZ;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAAL,GAAA;MAAAE,KAAA,EAMA,SAAAI,QAAON,GAAG,EAAW;QACnB,IAAMO,IAAI,GAAG1B,IAAI,CAACoB,GAAG,CAAC,IAAI,CAAC;QAAC,SAAAO,KAAA,GAAAlC,SAAA,CAAAC,MAAA,EADfkC,IAAI,OAAAhC,KAAA,CAAA+B,KAAA,OAAAA,KAAA,WAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;UAAJD,IAAI,CAAAC,KAAA,QAAApC,SAAA,CAAAoC,KAAA;QAAA;QAGjB,IAAI,CAACD,IAAI,CAAClC,MAAM,EAAE;UAChB,OAAOgC,IAAI,CAACI,MAAM,CAACX,GAAG,CAAC;QACzB;QAEA,IAAMY,IAAI,GAAGL,IAAI,CAACN,GAAG,CAACD,GAAG,CAAC;QAE1B,IAAI,CAACY,IAAI,EAAE;UACT,OAAO,KAAK;QACd;QAEA,IAAMP,GAAG,GAAGO,IAAI,CAACD,MAAM,CAAAzB,KAAA,CAAX0B,IAAI,EAAWH,IAAI,CAAC;QAEhC,IAAIJ,GAAG,EAAE;UACPrB,KAAK,CAACa,GAAG,CAAC,IAAI,EAAEb,KAAK,CAACiB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC;QAEA,IAAIW,IAAI,CAACC,IAAI,KAAK,CAAC,EAAE;UACnBN,IAAI,CAACI,MAAM,CAACX,GAAG,CAAC;QAClB;QAEA,OAAOK,GAAG;MACZ;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAAL,GAAA;MAAAE,KAAA,EAMA,SAAAD,IAAID,GAAG,EAAW;QAChB,IAAMO,IAAI,GAAG1B,IAAI,CAACoB,GAAG,CAAC,IAAI,CAAC;QAE3B,IAAI,CAACM,IAAI,CAACN,GAAG,EAAE;UACb,OAAOM,IAAI;QACb;QAAC,SAAAO,KAAA,GAAAxC,SAAA,CAAAC,MAAA,EALSkC,IAAI,OAAAhC,KAAA,CAAAqC,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;UAAJN,IAAI,CAAAM,KAAA,QAAAzC,SAAA,CAAAyC,KAAA;QAAA;QAOd,IAAI,CAACN,IAAI,CAAClC,MAAM,EAAE;UAChB,OAAOgC,IAAI,CAACN,GAAG,CAACD,GAAG,CAAC;QACtB;QAEA,IAAMY,IAAI,GAAGL,IAAI,CAACN,GAAG,CAACD,GAAG,CAAC;QAE1B,IAAI,CAACY,IAAI,EAAE;UACT,OAAOI,SAAS;QAClB;QAEA,IAAI,CAACJ,IAAI,CAACX,GAAG,EAAE;UACb,OAAOW,IAAI;QACb;QAEA,OAAOA,IAAI,CAACX,GAAG,CAAAf,KAAA,CAAR0B,IAAI,EAAQH,IAAI,CAAC;MAC1B;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAAT,GAAA;MAAAE,KAAA,EAMA,SAAAe,IAAA,EAAa;QACX,OAAO,OAAO,IAAI,CAAChB,GAAG,CAAAf,KAAA,CAAR,IAAI,EAAAZ,SAAY,CAAC,KAAK,WAAW;MACjD;;MAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IANI;MAAA0B,GAAA;MAAAE,KAAA,EAOA,SAAAL,IAAA,EAAa;QACX,IAAIqB,SAAS,GAAG,KAAK;QAAC,SAAAC,KAAA,GAAA7C,SAAA,CAAAC,MAAA,EADjBoB,IAAI,OAAAlB,KAAA,CAAA0C,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;UAAJzB,IAAI,CAAAyB,KAAA,IAAA9C,SAAA,CAAA8C,KAAA;QAAA;QAGT,IAAI,IAAI,CAACH,GAAG,CAAA/B,KAAA,CAAR,IAAI,EAAQS,IAAI,CAAC,EAAE;UACrBuB,SAAS,GAAG,IAAI;QAClB;QACA,IAAMX,IAAI,GAAG1B,IAAI,CAACoB,GAAG,CAAC,IAAI,CAAC;QAE3B,IAAMD,GAAG,GAAGL,IAAI,CAACf,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC2B,IAAI,CAACN,GAAG,EAAE;UACboB,MAAM,CAAAnC,KAAA,UAACqB,IAAI,EAAEP,GAAG,EAAAZ,MAAA,CAAKO,IAAI,EAAC;UAE1B,OAAO,IAAI;QACb;QAEA,IAAIiB,IAAI,GAAGL,IAAI,CAACN,GAAG,CAACD,GAAG,CAAC;QAExB,IAAI,CAACY,IAAI,EAAE;UACT,IAAI,CAAC3B,cAAc,EAAE;YACnBoC,MAAM,CAAAnC,KAAA,UAACqB,IAAI,EAAEP,GAAG,EAAAZ,MAAA,CAAKO,IAAI,EAAC;YAE1B,OAAO,IAAI;UACb;UACAiB,IAAI,GAAG,IAAI3B,cAAc,CAAC,CAAC;UAC3BoC,MAAM,CAACd,IAAI,EAAEP,GAAG,EAAEY,IAAI,CAAC;QACzB;QACAS,MAAM,CAAAnC,KAAA,UAAC0B,IAAI,EAAAxB,MAAA,CAAKO,IAAI,EAAC;QAErB,IAAI,CAACuB,SAAS,EAAE;UACdlC,KAAK,CAACa,GAAG,CAAC,IAAI,EAAEb,KAAK,CAACiB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC;QAEA,OAAO,IAAI;MACb;;MAEA;AACJ;AACA;AACA;IAHI;MAAAD,GAAA;MAAAE,KAAA,EAIA,SAAAoB,QAAA,EAAU;QACR,mBAAAlC,MAAA,CAAmBD,IAAI,YAAAC,MAAA,CACzBmC,aAAI,CAACD,OAAO,CAACzC,IAAI,CAACoB,GAAG,CAAC,IAAI,CAAC,EAAE;UAACuB,KAAK,EAAE;QAAI,CAAC,CAAC;MAE3C;IAAC;IAAA,OAAAhC,SAAA;EAAA;EAGH,OAAOA,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6B,MAAMA,CAAC/B,SAAS,EAAW;EAAA,SAAAmC,KAAA,GAAAnD,SAAA,CAAAC,MAAA,EAANoB,IAAI,OAAAlB,KAAA,CAAAgD,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAAJ/B,IAAI,CAAA+B,KAAA,QAAApD,SAAA,CAAAoD,KAAA;EAAA;EAChC,IAAIpC,SAAS,CAACa,GAAG,EAAE;IACjBb,SAAS,CAACa,GAAG,CAAAjB,KAAA,CAAbI,SAAS,EAAQK,IAAI,CAAC;IAEtB;EACF;EAEA,IAAIL,SAAS,CAACO,GAAG,EAAE;IACjBP,SAAS,CAACO,GAAG,CAAAX,KAAA,CAAbI,SAAS,EAAQK,IAAI,CAAC;IAEtB;EACF;EAEA,IAAIL,SAAS,CAACqC,IAAI,EAAE;IAClBrC,SAAS,CAACqC,IAAI,CAAAzC,KAAA,CAAdI,SAAS,EAASK,IAAI,CAAC;IAEvB;EACF;EACA,MAAM,IAAIiC,SAAS,CAAC,gEAAgE,CAAC;AACvF"}
@@ -155,7 +155,6 @@ function getHydraClusterString(webex, conversationUrl) {
155
155
  *
156
156
  * @export
157
157
  * @param {arra} tags
158
- * @param {any} spaceUUID
159
158
  * @returns {string}
160
159
  */
161
160
  function getHydraRoomType(tags) {
@@ -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","length","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 * @param {any} spaceUUID\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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"}
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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"}
@@ -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 _wrap2 = _interopRequireDefault(require("lodash/wrap"));
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, _wrap2.default)(descriptor.value, function whileInFlightExecutor(fn) {
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":";;;;;;;;;;;AAQA;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,aAAa,CAACC,KAAK,EAAE;EAC3C,OAAO,SAASC,sBAAsB,CAACC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE;IAC/DA,UAAU,CAACC,KAAK,GAAG,oBAAKD,UAAU,CAACC,KAAK,EAAE,SAASC,qBAAqB,CAACC,EAAE,EAAW;MAAA;MAAA,kCAANC,IAAI;QAAJA,IAAI;MAAA;MAClF,OAAO,qBAAY,UAACC,OAAO,EAAK;QAC9B,KAAI,CAACT,KAAK,CAAC,GAAG,IAAI;QAClBS,OAAO,CACL,oBAAcF,EAAE,EAAE,KAAI,EAAEC,IAAI,CAAC,CAC1BE,IAAI,CACH,IAAAC,YAAG,EAAC,YAAM;UACR,KAAI,CAACX,KAAK,CAAC,GAAG,KAAK;QACrB,CAAC,CAAC,CACH,CACAY,KAAK,CAAC,UAACC,MAAM,EAAK;UACjB,KAAI,CAACb,KAAK,CAAC,GAAG,KAAK;UAEnB,OAAO,iBAAQc,MAAM,CAACD,MAAM,CAAC;QAC/B,CAAC,CAAC,CACL;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;AACH"}
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
@@ -0,0 +1,3 @@
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "@webex/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/common": "3.0.0-bnr.5",
29
- "@webex/test-helper-chai": "3.0.0-bnr.5",
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};
@@ -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
@@ -152,7 +152,6 @@ export function getHydraClusterString(webex, conversationUrl) {
152
152
  *
153
153
  * @export
154
154
  * @param {arra} tags
155
- * @param {any} spaceUUID
156
155
  * @returns {string}
157
156
  */
158
157
  export function getHydraRoomType(tags) {
@@ -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
+
@@ -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,8 +0,0 @@
1
- declare const _default: ((agent: any) => {
2
- getOSName: () => any;
3
- getOSVersion: () => any;
4
- getBrowserName: () => any;
5
- getBrowserVersion: () => any;
6
- isBrowser: (name: any) => boolean;
7
- }) & import("lodash").MemoizedFunction;
8
- 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";
@@ -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,7 +0,0 @@
1
- export default exportedDeprecated;
2
- declare const exportedDeprecated: typeof emptyDecorator | import("core-decorators").Deprecate;
3
- /**
4
- * @private
5
- * @returns {function}
6
- */
7
- declare function emptyDecorator(): Function;
@@ -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>;