{"version":3,"file":"js/5198-11cf7687e05d4b5847f0.chunk.js","mappings":"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","sources":["webpack://Maxwell/./node_modules/asap/browser-asap.js","webpack://Maxwell/./node_modules/asap/browser-raw.js","webpack://Maxwell/./node_modules/faye/src/faye_browser.js","webpack://Maxwell/./node_modules/faye/src/mixins/deferrable.js","webpack://Maxwell/./node_modules/faye/src/mixins/logging.js","webpack://Maxwell/./node_modules/faye/src/mixins/publisher.js","webpack://Maxwell/./node_modules/faye/src/mixins/timeouts.js","webpack://Maxwell/./node_modules/faye/src/protocol/channel.js","webpack://Maxwell/./node_modules/faye/src/protocol/client.js","webpack://Maxwell/./node_modules/faye/src/protocol/dispatcher.js","webpack://Maxwell/./node_modules/faye/src/protocol/error.js","webpack://Maxwell/./node_modules/faye/src/protocol/extensible.js","webpack://Maxwell/./node_modules/faye/src/protocol/grammar.js","webpack://Maxwell/./node_modules/faye/src/protocol/publication.js","webpack://Maxwell/./node_modules/faye/src/protocol/scheduler.js","webpack://Maxwell/./node_modules/faye/src/protocol/subscription.js","webpack://Maxwell/./node_modules/faye/src/transport/browser_transports.js","webpack://Maxwell/./node_modules/faye/src/transport/cors.js","webpack://Maxwell/./node_modules/faye/src/transport/event_source.js","webpack://Maxwell/./node_modules/faye/src/transport/jsonp.js","webpack://Maxwell/./node_modules/faye/src/transport/transport.js","webpack://Maxwell/./node_modules/faye/src/transport/web_socket.js","webpack://Maxwell/./node_modules/faye/src/transport/xhr.js","webpack://Maxwell/./node_modules/faye/src/util/array.js","webpack://Maxwell/./node_modules/faye/src/util/assign.js","webpack://Maxwell/./node_modules/faye/src/util/browser/event.js","webpack://Maxwell/./node_modules/faye/src/util/class.js","webpack://Maxwell/./node_modules/faye/src/util/constants.js","webpack://Maxwell/./node_modules/faye/src/util/cookies/browser_cookies.js","webpack://Maxwell/./node_modules/faye/src/util/copy_object.js","webpack://Maxwell/./node_modules/faye/src/util/event_emitter.js","webpack://Maxwell/./node_modules/faye/src/util/promise.js","webpack://Maxwell/./node_modules/faye/src/util/set.js","webpack://Maxwell/./node_modules/faye/src/util/to_json.js","webpack://Maxwell/./node_modules/faye/src/util/uri.js","webpack://Maxwell/./node_modules/faye/src/util/validate_options.js","webpack://Maxwell/./node_modules/faye/src/util/websocket/browser_websocket.js","webpack://Maxwell/./node_modules/getstream/lib/client.js","webpack://Maxwell/./node_modules/getstream/lib/collections.js","webpack://Maxwell/./node_modules/getstream/lib/connect.js","webpack://Maxwell/./node_modules/getstream/lib/errors.js","webpack://Maxwell/./node_modules/getstream/lib/feed.js","webpack://Maxwell/./node_modules/getstream/lib/files.js","webpack://Maxwell/./node_modules/getstream/lib/images.js","webpack://Maxwell/./node_modules/getstream/lib/index.js","webpack://Maxwell/./node_modules/getstream/lib/personalization.js","webpack://Maxwell/./node_modules/getstream/lib/reaction.js","webpack://Maxwell/./node_modules/getstream/lib/signing.js","webpack://Maxwell/./node_modules/getstream/lib/user.js","webpack://Maxwell/./node_modules/getstream/lib/utils.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/index.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/adapters/xhr.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/axios.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/cancel/Cancel.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/cancel/CancelToken.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/cancel/isCancel.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/Axios.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/InterceptorManager.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/buildFullPath.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/createError.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/dispatchRequest.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/enhanceError.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/mergeConfig.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/settle.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/core/transformData.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/defaults.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/bind.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/buildURL.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/combineURLs.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/cookies.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/isAxiosError.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/parseHeaders.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/spread.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/helpers/validator.js","webpack://Maxwell/./node_modules/getstream/node_modules/axios/lib/utils.js","webpack://Maxwell/./node_modules/jwt-decode/build/jwt-decode.esm.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/construct.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/createClass.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/extends.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/inherits.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/typeof.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://Maxwell/./node_modules/getstream/node_modules/@babel/runtime/regenerator/index.js","webpack://Maxwell/./node_modules/regenerator-runtime/runtime.js"],"sourcesContent":["\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n // MessageChannels are desirable because they give direct access to the HTML\n // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n // 11-12, and in web workers in many engines.\n // Although message channels yield to any queued rendering and IO tasks, they\n // would be better than imposing the 4ms delay of timers.\n // However, they do not work reliably in Internet Explorer or Safari.\n\n // Internet Explorer 10 is the only browser that has setImmediate but does\n // not have MutationObservers.\n // Although setImmediate yields to the browser's renderer, it would be\n // preferrable to falling back to setTimeout since it does not have\n // the minimum 4ms penalty.\n // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n // Desktop to a lesser extent) that renders both setImmediate and\n // MessageChannel useless for the purposes of ASAP.\n // https://github.com/kriskowal/q/issues/396\n\n // Timers are implemented universally.\n // We fall back to timers in workers in most engines, and in foreground\n // contexts in the following browsers.\n // However, note that even this simple case requires nuances to operate in a\n // broad spectrum of browsers.\n //\n // - Firefox 3-13\n // - Internet Explorer 6-9\n // - iPad Safari 4.3\n // - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js","'use strict';\n\nvar constants = require('./util/constants'),\n Logging = require('./mixins/logging');\nvar Faye = {\n VERSION: constants.VERSION,\n Client: require('./protocol/client'),\n Scheduler: require('./protocol/scheduler')\n};\nLogging.wrapper = Faye;\nmodule.exports = Faye;","'use strict';\n\nvar Promise = require('../util/promise');\nmodule.exports = {\n then: function (callback, errback) {\n var self = this;\n if (!this._promise) this._promise = new Promise(function (resolve, reject) {\n self._resolve = resolve;\n self._reject = reject;\n });\n if (arguments.length === 0) return this._promise;else return this._promise.then(callback, errback);\n },\n callback: function (callback, context) {\n return this.then(function (value) {\n callback.call(context, value);\n });\n },\n errback: function (callback, context) {\n return this.then(null, function (reason) {\n callback.call(context, reason);\n });\n },\n timeout: function (seconds, message) {\n this.then();\n var self = this;\n this._timer = global.setTimeout(function () {\n self._reject(message);\n }, seconds * 1000);\n },\n setDeferredStatus: function (status, value) {\n if (this._timer) global.clearTimeout(this._timer);\n this.then();\n if (status === 'succeeded') this._resolve(value);else if (status === 'failed') this._reject(value);else delete this._promise;\n }\n};","'use strict';\n\nvar toJSON = require('../util/to_json');\nvar Logging = {\n LOG_LEVELS: {\n fatal: 4,\n error: 3,\n warn: 2,\n info: 1,\n debug: 0\n },\n writeLog: function (messageArgs, level) {\n var logger = Logging.logger || (Logging.wrapper || Logging).logger;\n if (!logger) return;\n var args = Array.prototype.slice.apply(messageArgs),\n banner = '[Faye',\n klass = this.className,\n message = args.shift().replace(/\\?/g, function () {\n try {\n return toJSON(args.shift());\n } catch (error) {\n return '[Object]';\n }\n });\n if (klass) banner += '.' + klass;\n banner += '] ';\n if (typeof logger[level] === 'function') logger[level](banner + message);else if (typeof logger === 'function') logger(banner + message);\n }\n};\nfor (var key in Logging.LOG_LEVELS) (function (level) {\n Logging[level] = function () {\n this.writeLog(arguments, level);\n };\n})(key);\nmodule.exports = Logging;","'use strict';\n\nvar assign = require('../util/assign'),\n EventEmitter = require('../util/event_emitter');\nvar Publisher = {\n countListeners: function (eventType) {\n return this.listeners(eventType).length;\n },\n bind: function (eventType, listener, context) {\n var slice = Array.prototype.slice,\n handler = function () {\n listener.apply(context, slice.call(arguments));\n };\n this._listeners = this._listeners || [];\n this._listeners.push([eventType, listener, context, handler]);\n return this.on(eventType, handler);\n },\n unbind: function (eventType, listener, context) {\n this._listeners = this._listeners || [];\n var n = this._listeners.length,\n tuple;\n while (n--) {\n tuple = this._listeners[n];\n if (tuple[0] !== eventType) continue;\n if (listener && (tuple[1] !== listener || tuple[2] !== context)) continue;\n this._listeners.splice(n, 1);\n this.removeListener(eventType, tuple[3]);\n }\n }\n};\nassign(Publisher, EventEmitter.prototype);\nPublisher.trigger = Publisher.emit;\nmodule.exports = Publisher;","'use strict';\n\nmodule.exports = {\n addTimeout: function (name, delay, callback, context) {\n this._timeouts = this._timeouts || {};\n if (this._timeouts.hasOwnProperty(name)) return;\n var self = this;\n this._timeouts[name] = global.setTimeout(function () {\n delete self._timeouts[name];\n callback.call(context);\n }, 1000 * delay);\n },\n removeTimeout: function (name) {\n this._timeouts = this._timeouts || {};\n var timeout = this._timeouts[name];\n if (!timeout) return;\n global.clearTimeout(timeout);\n delete this._timeouts[name];\n },\n removeAllTimeouts: function () {\n this._timeouts = this._timeouts || {};\n for (var name in this._timeouts) this.removeTimeout(name);\n }\n};","'use strict';\n\nvar Class = require('../util/class'),\n assign = require('../util/assign'),\n Publisher = require('../mixins/publisher'),\n Grammar = require('./grammar');\nvar Channel = Class({\n initialize: function (name) {\n this.id = this.name = name;\n },\n push: function (message) {\n this.trigger('message', message);\n },\n isUnused: function () {\n return this.countListeners('message') === 0;\n }\n});\nassign(Channel.prototype, Publisher);\nassign(Channel, {\n HANDSHAKE: '/meta/handshake',\n CONNECT: '/meta/connect',\n SUBSCRIBE: '/meta/subscribe',\n UNSUBSCRIBE: '/meta/unsubscribe',\n DISCONNECT: '/meta/disconnect',\n META: 'meta',\n SERVICE: 'service',\n expand: function (name) {\n var segments = this.parse(name),\n channels = ['/**', name];\n var copy = segments.slice();\n copy[copy.length - 1] = '*';\n channels.push(this.unparse(copy));\n for (var i = 1, n = segments.length; i < n; i++) {\n copy = segments.slice(0, i);\n copy.push('**');\n channels.push(this.unparse(copy));\n }\n return channels;\n },\n isValid: function (name) {\n return Grammar.CHANNEL_NAME.test(name) || Grammar.CHANNEL_PATTERN.test(name);\n },\n parse: function (name) {\n if (!this.isValid(name)) return null;\n return name.split('/').slice(1);\n },\n unparse: function (segments) {\n return '/' + segments.join('/');\n },\n isMeta: function (name) {\n var segments = this.parse(name);\n return segments ? segments[0] === this.META : null;\n },\n isService: function (name) {\n var segments = this.parse(name);\n return segments ? segments[0] === this.SERVICE : null;\n },\n isSubscribable: function (name) {\n if (!this.isValid(name)) return null;\n return !this.isMeta(name) && !this.isService(name);\n },\n Set: Class({\n initialize: function () {\n this._channels = {};\n },\n getKeys: function () {\n var keys = [];\n for (var key in this._channels) keys.push(key);\n return keys;\n },\n remove: function (name) {\n delete this._channels[name];\n },\n hasSubscription: function (name) {\n return this._channels.hasOwnProperty(name);\n },\n subscribe: function (names, subscription) {\n var name;\n for (var i = 0, n = names.length; i < n; i++) {\n name = names[i];\n var channel = this._channels[name] = this._channels[name] || new Channel(name);\n channel.bind('message', subscription);\n }\n },\n unsubscribe: function (name, subscription) {\n var channel = this._channels[name];\n if (!channel) return false;\n channel.unbind('message', subscription);\n if (channel.isUnused()) {\n this.remove(name);\n return true;\n } else {\n return false;\n }\n },\n distributeMessage: function (message) {\n var channels = Channel.expand(message.channel);\n for (var i = 0, n = channels.length; i < n; i++) {\n var channel = this._channels[channels[i]];\n if (channel) channel.trigger('message', message);\n }\n }\n })\n});\nmodule.exports = Channel;","'use strict';\n\nvar asap = require('asap'),\n Class = require('../util/class'),\n Promise = require('../util/promise'),\n array = require('../util/array'),\n browser = require('../util/browser'),\n constants = require('../util/constants'),\n assign = require('../util/assign'),\n validateOptions = require('../util/validate_options'),\n Deferrable = require('../mixins/deferrable'),\n Logging = require('../mixins/logging'),\n Publisher = require('../mixins/publisher'),\n Channel = require('./channel'),\n Dispatcher = require('./dispatcher'),\n Error = require('./error'),\n Extensible = require('./extensible'),\n Publication = require('./publication'),\n Subscription = require('./subscription');\nvar Client = Class({\n className: 'Client',\n UNCONNECTED: 1,\n CONNECTING: 2,\n CONNECTED: 3,\n DISCONNECTED: 4,\n HANDSHAKE: 'handshake',\n RETRY: 'retry',\n NONE: 'none',\n CONNECTION_TIMEOUT: 60,\n DEFAULT_ENDPOINT: '/bayeux',\n INTERVAL: 0,\n initialize: function (endpoint, options) {\n this.info('New client created for ?', endpoint);\n options = options || {};\n validateOptions(options, ['interval', 'timeout', 'endpoints', 'proxy', 'retry', 'scheduler', 'websocketExtensions', 'tls', 'ca']);\n this._channels = new Channel.Set();\n this._dispatcher = Dispatcher.create(this, endpoint || this.DEFAULT_ENDPOINT, options);\n this._messageId = 0;\n this._state = this.UNCONNECTED;\n this._responseCallbacks = {};\n this._advice = {\n reconnect: this.RETRY,\n interval: 1000 * (options.interval || this.INTERVAL),\n timeout: 1000 * (options.timeout || this.CONNECTION_TIMEOUT)\n };\n this._dispatcher.timeout = this._advice.timeout / 1000;\n this._dispatcher.bind('message', this._receiveMessage, this);\n if (browser.Event && global.onbeforeunload !== undefined) browser.Event.on(global, 'beforeunload', function () {\n if (array.indexOf(this._dispatcher._disabled, 'autodisconnect') < 0) this.disconnect();\n }, this);\n },\n addWebsocketExtension: function (extension) {\n return this._dispatcher.addWebsocketExtension(extension);\n },\n disable: function (feature) {\n return this._dispatcher.disable(feature);\n },\n setHeader: function (name, value) {\n return this._dispatcher.setHeader(name, value);\n },\n // Request\n // MUST include: * channel\n // * version\n // * supportedConnectionTypes\n // MAY include: * minimumVersion\n // * ext\n // * id\n //\n // Success Response Failed Response\n // MUST include: * channel MUST include: * channel\n // * version * successful\n // * supportedConnectionTypes * error\n // * clientId MAY include: * supportedConnectionTypes\n // * successful * advice\n // MAY include: * minimumVersion * version\n // * advice * minimumVersion\n // * ext * ext\n // * id * id\n // * authSuccessful\n handshake: function (callback, context) {\n if (this._advice.reconnect === this.NONE) return;\n if (this._state !== this.UNCONNECTED) return;\n this._state = this.CONNECTING;\n var self = this;\n this.info('Initiating handshake with ?', this._dispatcher.endpoint.href);\n this._dispatcher.selectTransport(constants.MANDATORY_CONNECTION_TYPES);\n this._sendMessage({\n channel: Channel.HANDSHAKE,\n version: constants.BAYEUX_VERSION,\n supportedConnectionTypes: this._dispatcher.getConnectionTypes()\n }, {}, function (response) {\n if (response.successful) {\n this._state = this.CONNECTED;\n this._dispatcher.clientId = response.clientId;\n this._dispatcher.selectTransport(response.supportedConnectionTypes);\n this.info('Handshake successful: ?', this._dispatcher.clientId);\n this.subscribe(this._channels.getKeys(), true);\n if (callback) asap(function () {\n callback.call(context);\n });\n } else {\n this.info('Handshake unsuccessful');\n global.setTimeout(function () {\n self.handshake(callback, context);\n }, this._dispatcher.retry * 1000);\n this._state = this.UNCONNECTED;\n }\n }, this);\n },\n // Request Response\n // MUST include: * channel MUST include: * channel\n // * clientId * successful\n // * connectionType * clientId\n // MAY include: * ext MAY include: * error\n // * id * advice\n // * ext\n // * id\n // * timestamp\n connect: function (callback, context) {\n if (this._advice.reconnect === this.NONE) return;\n if (this._state === this.DISCONNECTED) return;\n if (this._state === this.UNCONNECTED) return this.handshake(function () {\n this.connect(callback, context);\n }, this);\n this.callback(callback, context);\n if (this._state !== this.CONNECTED) return;\n this.info('Calling deferred actions for ?', this._dispatcher.clientId);\n this.setDeferredStatus('succeeded');\n this.setDeferredStatus('unknown');\n if (this._connectRequest) return;\n this._connectRequest = true;\n this.info('Initiating connection for ?', this._dispatcher.clientId);\n this._sendMessage({\n channel: Channel.CONNECT,\n clientId: this._dispatcher.clientId,\n connectionType: this._dispatcher.connectionType\n }, {}, this._cycleConnection, this);\n },\n // Request Response\n // MUST include: * channel MUST include: * channel\n // * clientId * successful\n // MAY include: * ext * clientId\n // * id MAY include: * error\n // * ext\n // * id\n disconnect: function () {\n if (this._state !== this.CONNECTED) return;\n this._state = this.DISCONNECTED;\n this.info('Disconnecting ?', this._dispatcher.clientId);\n var promise = new Publication();\n this._sendMessage({\n channel: Channel.DISCONNECT,\n clientId: this._dispatcher.clientId\n }, {}, function (response) {\n if (response.successful) {\n this._dispatcher.close();\n promise.setDeferredStatus('succeeded');\n } else {\n promise.setDeferredStatus('failed', Error.parse(response.error));\n }\n }, this);\n this.info('Clearing channel listeners for ?', this._dispatcher.clientId);\n this._channels = new Channel.Set();\n return promise;\n },\n // Request Response\n // MUST include: * channel MUST include: * channel\n // * clientId * successful\n // * subscription * clientId\n // MAY include: * ext * subscription\n // * id MAY include: * error\n // * advice\n // * ext\n // * id\n // * timestamp\n subscribe: function (channel, callback, context) {\n if (channel instanceof Array) return array.map(channel, function (c) {\n return this.subscribe(c, callback, context);\n }, this);\n var subscription = new Subscription(this, channel, callback, context),\n force = callback === true,\n hasSubscribe = this._channels.hasSubscription(channel);\n if (hasSubscribe && !force) {\n this._channels.subscribe([channel], subscription);\n subscription.setDeferredStatus('succeeded');\n return subscription;\n }\n this.connect(function () {\n this.info('Client ? attempting to subscribe to ?', this._dispatcher.clientId, channel);\n if (!force) this._channels.subscribe([channel], subscription);\n this._sendMessage({\n channel: Channel.SUBSCRIBE,\n clientId: this._dispatcher.clientId,\n subscription: channel\n }, {}, function (response) {\n if (!response.successful) {\n subscription.setDeferredStatus('failed', Error.parse(response.error));\n return this._channels.unsubscribe(channel, subscription);\n }\n var channels = [].concat(response.subscription);\n this.info('Subscription acknowledged for ? to ?', this._dispatcher.clientId, channels);\n subscription.setDeferredStatus('succeeded');\n }, this);\n }, this);\n return subscription;\n },\n // Request Response\n // MUST include: * channel MUST include: * channel\n // * clientId * successful\n // * subscription * clientId\n // MAY include: * ext * subscription\n // * id MAY include: * error\n // * advice\n // * ext\n // * id\n // * timestamp\n unsubscribe: function (channel, subscription) {\n if (channel instanceof Array) return array.map(channel, function (c) {\n return this.unsubscribe(c, subscription);\n }, this);\n var dead = this._channels.unsubscribe(channel, subscription);\n if (!dead) return;\n this.connect(function () {\n this.info('Client ? attempting to unsubscribe from ?', this._dispatcher.clientId, channel);\n this._sendMessage({\n channel: Channel.UNSUBSCRIBE,\n clientId: this._dispatcher.clientId,\n subscription: channel\n }, {}, function (response) {\n if (!response.successful) return;\n var channels = [].concat(response.subscription);\n this.info('Unsubscription acknowledged for ? from ?', this._dispatcher.clientId, channels);\n }, this);\n }, this);\n },\n // Request Response\n // MUST include: * channel MUST include: * channel\n // * data * successful\n // MAY include: * clientId MAY include: * id\n // * id * error\n // * ext * ext\n publish: function (channel, data, options) {\n validateOptions(options || {}, ['attempts', 'deadline']);\n var publication = new Publication();\n this.connect(function () {\n this.info('Client ? queueing published message to ?: ?', this._dispatcher.clientId, channel, data);\n this._sendMessage({\n channel: channel,\n data: data,\n clientId: this._dispatcher.clientId\n }, options, function (response) {\n if (response.successful) publication.setDeferredStatus('succeeded');else publication.setDeferredStatus('failed', Error.parse(response.error));\n }, this);\n }, this);\n return publication;\n },\n _sendMessage: function (message, options, callback, context) {\n message.id = this._generateMessageId();\n var timeout = this._advice.timeout ? 1.2 * this._advice.timeout / 1000 : 1.2 * this._dispatcher.retry;\n this.pipeThroughExtensions('outgoing', message, null, function (message) {\n if (!message) return;\n if (callback) this._responseCallbacks[message.id] = [callback, context];\n this._dispatcher.sendMessage(message, timeout, options || {});\n }, this);\n },\n _generateMessageId: function () {\n this._messageId += 1;\n if (this._messageId >= Math.pow(2, 32)) this._messageId = 0;\n return this._messageId.toString(36);\n },\n _receiveMessage: function (message) {\n var id = message.id,\n callback;\n if (message.successful !== undefined) {\n callback = this._responseCallbacks[id];\n delete this._responseCallbacks[id];\n }\n this.pipeThroughExtensions('incoming', message, null, function (message) {\n if (!message) return;\n if (message.advice) this._handleAdvice(message.advice);\n this._deliverMessage(message);\n if (callback) callback[0].call(callback[1], message);\n }, this);\n },\n _handleAdvice: function (advice) {\n assign(this._advice, advice);\n this._dispatcher.timeout = this._advice.timeout / 1000;\n if (this._advice.reconnect === this.HANDSHAKE && this._state !== this.DISCONNECTED) {\n this._state = this.UNCONNECTED;\n this._dispatcher.clientId = null;\n this._cycleConnection();\n }\n },\n _deliverMessage: function (message) {\n if (!message.channel || message.data === undefined) return;\n this.info('Client ? calling listeners for ? with ?', this._dispatcher.clientId, message.channel, message.data);\n this._channels.distributeMessage(message);\n },\n _cycleConnection: function () {\n if (this._connectRequest) {\n this._connectRequest = null;\n this.info('Closed connection for ?', this._dispatcher.clientId);\n }\n var self = this;\n global.setTimeout(function () {\n self.connect();\n }, this._advice.interval);\n }\n});\nassign(Client.prototype, Deferrable);\nassign(Client.prototype, Publisher);\nassign(Client.prototype, Logging);\nassign(Client.prototype, Extensible);\nmodule.exports = Client;","'use strict';\n\nvar Class = require('../util/class'),\n URI = require('../util/uri'),\n cookies = require('../util/cookies'),\n assign = require('../util/assign'),\n Logging = require('../mixins/logging'),\n Publisher = require('../mixins/publisher'),\n Transport = require('../transport'),\n Scheduler = require('./scheduler');\nvar Dispatcher = Class({\n className: 'Dispatcher',\n MAX_REQUEST_SIZE: 2048,\n DEFAULT_RETRY: 5,\n UP: 1,\n DOWN: 2,\n initialize: function (client, endpoint, options) {\n this._client = client;\n this.endpoint = URI.parse(endpoint);\n this._alternates = options.endpoints || {};\n this.cookies = cookies.CookieJar && new cookies.CookieJar();\n this._disabled = [];\n this._envelopes = {};\n this.headers = {};\n this.retry = options.retry || this.DEFAULT_RETRY;\n this._scheduler = options.scheduler || Scheduler;\n this._state = 0;\n this.transports = {};\n this.wsExtensions = [];\n this.proxy = options.proxy || {};\n if (typeof this._proxy === 'string') this._proxy = {\n origin: this._proxy\n };\n var exts = options.websocketExtensions;\n if (exts) {\n exts = [].concat(exts);\n for (var i = 0, n = exts.length; i < n; i++) this.addWebsocketExtension(exts[i]);\n }\n this.tls = options.tls || {};\n this.tls.ca = this.tls.ca || options.ca;\n for (var type in this._alternates) this._alternates[type] = URI.parse(this._alternates[type]);\n this.maxRequestSize = this.MAX_REQUEST_SIZE;\n },\n endpointFor: function (connectionType) {\n return this._alternates[connectionType] || this.endpoint;\n },\n addWebsocketExtension: function (extension) {\n this.wsExtensions.push(extension);\n },\n disable: function (feature) {\n this._disabled.push(feature);\n Transport.disable(feature);\n },\n setHeader: function (name, value) {\n this.headers[name] = value;\n },\n close: function () {\n var transport = this._transport;\n delete this._transport;\n if (transport) transport.close();\n },\n getConnectionTypes: function () {\n return Transport.getConnectionTypes();\n },\n selectTransport: function (transportTypes) {\n Transport.get(this, transportTypes, this._disabled, function (transport) {\n this.debug('Selected ? transport for ?', transport.connectionType, transport.endpoint.href);\n if (transport === this._transport) return;\n if (this._transport) this._transport.close();\n this._transport = transport;\n this.connectionType = transport.connectionType;\n }, this);\n },\n sendMessage: function (message, timeout, options) {\n options = options || {};\n var id = message.id,\n attempts = options.attempts,\n deadline = options.deadline && new Date().getTime() + options.deadline * 1000,\n envelope = this._envelopes[id],\n scheduler;\n if (!envelope) {\n scheduler = new this._scheduler(message, {\n timeout: timeout,\n interval: this.retry,\n attempts: attempts,\n deadline: deadline\n });\n envelope = this._envelopes[id] = {\n message: message,\n scheduler: scheduler\n };\n }\n this._sendEnvelope(envelope);\n },\n _sendEnvelope: function (envelope) {\n if (!this._transport) return;\n if (envelope.request || envelope.timer) return;\n var message = envelope.message,\n scheduler = envelope.scheduler,\n self = this;\n if (!scheduler.isDeliverable()) {\n scheduler.abort();\n delete this._envelopes[message.id];\n return;\n }\n envelope.timer = global.setTimeout(function () {\n self.handleError(message);\n }, scheduler.getTimeout() * 1000);\n scheduler.send();\n envelope.request = this._transport.sendMessage(message);\n },\n handleResponse: function (reply) {\n var envelope = this._envelopes[reply.id];\n if (reply.successful !== undefined && envelope) {\n envelope.scheduler.succeed();\n delete this._envelopes[reply.id];\n global.clearTimeout(envelope.timer);\n }\n this.trigger('message', reply);\n if (this._state === this.UP) return;\n this._state = this.UP;\n this._client.trigger('transport:up');\n },\n handleError: function (message, immediate) {\n var envelope = this._envelopes[message.id],\n request = envelope && envelope.request,\n self = this;\n if (!request) return;\n request.then(function (req) {\n if (req && req.abort) req.abort();\n });\n var scheduler = envelope.scheduler;\n scheduler.fail();\n global.clearTimeout(envelope.timer);\n envelope.request = envelope.timer = null;\n if (immediate) {\n this._sendEnvelope(envelope);\n } else {\n envelope.timer = global.setTimeout(function () {\n envelope.timer = null;\n self._sendEnvelope(envelope);\n }, scheduler.getInterval() * 1000);\n }\n if (this._state === this.DOWN) return;\n this._state = this.DOWN;\n this._client.trigger('transport:down');\n }\n});\nDispatcher.create = function (client, endpoint, options) {\n return new Dispatcher(client, endpoint, options);\n};\nassign(Dispatcher.prototype, Publisher);\nassign(Dispatcher.prototype, Logging);\nmodule.exports = Dispatcher;","'use strict';\n\nvar Class = require('../util/class'),\n Grammar = require('./grammar');\nvar Error = Class({\n initialize: function (code, params, message) {\n this.code = code;\n this.params = Array.prototype.slice.call(params);\n this.message = message;\n },\n toString: function () {\n return this.code + ':' + this.params.join(',') + ':' + this.message;\n }\n});\nError.parse = function (message) {\n message = message || '';\n if (!Grammar.ERROR.test(message)) return new Error(null, [], message);\n var parts = message.split(':'),\n code = parseInt(parts[0]),\n params = parts[1].split(','),\n message = parts[2];\n return new Error(code, params, message);\n};\n\n// http://code.google.com/p/cometd/wiki/BayeuxCodes\nvar errors = {\n versionMismatch: [300, 'Version mismatch'],\n conntypeMismatch: [301, 'Connection types not supported'],\n extMismatch: [302, 'Extension mismatch'],\n badRequest: [400, 'Bad request'],\n clientUnknown: [401, 'Unknown client'],\n parameterMissing: [402, 'Missing required parameter'],\n channelForbidden: [403, 'Forbidden channel'],\n channelUnknown: [404, 'Unknown channel'],\n channelInvalid: [405, 'Invalid channel'],\n extUnknown: [406, 'Unknown extension'],\n publishFailed: [407, 'Failed to publish'],\n serverError: [500, 'Internal server error']\n};\nfor (var name in errors) (function (name) {\n Error[name] = function () {\n return new Error(errors[name][0], arguments, errors[name][1]).toString();\n };\n})(name);\nmodule.exports = Error;","'use strict';\n\nvar assign = require('../util/assign'),\n Logging = require('../mixins/logging');\nvar Extensible = {\n addExtension: function (extension) {\n this._extensions = this._extensions || [];\n this._extensions.push(extension);\n if (extension.added) extension.added(this);\n },\n removeExtension: function (extension) {\n if (!this._extensions) return;\n var i = this._extensions.length;\n while (i--) {\n if (this._extensions[i] !== extension) continue;\n this._extensions.splice(i, 1);\n if (extension.removed) extension.removed(this);\n }\n },\n pipeThroughExtensions: function (stage, message, request, callback, context) {\n this.debug('Passing through ? extensions: ?', stage, message);\n if (!this._extensions) return callback.call(context, message);\n var extensions = this._extensions.slice();\n var pipe = function (message) {\n if (!message) return callback.call(context, message);\n var extension = extensions.shift();\n if (!extension) return callback.call(context, message);\n var fn = extension[stage];\n if (!fn) return pipe(message);\n if (fn.length >= 3) extension[stage](message, request, pipe);else extension[stage](message, pipe);\n };\n pipe(message);\n }\n};\nassign(Extensible, Logging);\nmodule.exports = Extensible;","'use strict';\n\nmodule.exports = {\n CHANNEL_NAME: /^\\/(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)))+(\\/(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)))+)*$/,\n CHANNEL_PATTERN: /^(\\/(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)))+)*\\/\\*{1,2}$/,\n ERROR: /^([0-9][0-9][0-9]:(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)| |\\/|\\*|\\.))*(,(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)| |\\/|\\*|\\.))*)*:(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)| |\\/|\\*|\\.))*|[0-9][0-9][0-9]::(((([a-z]|[A-Z])|[0-9])|(\\-|\\_|\\!|\\~|\\(|\\)|\\$|\\@)| |\\/|\\*|\\.))*)$/,\n VERSION: /^([0-9])+(\\.(([a-z]|[A-Z])|[0-9])(((([a-z]|[A-Z])|[0-9])|\\-|\\_))*)*$/\n};","'use strict';\n\nvar Class = require('../util/class'),\n Deferrable = require('../mixins/deferrable');\nmodule.exports = Class(Deferrable);","'use strict';\n\nvar assign = require('../util/assign');\nvar Scheduler = function (message, options) {\n this.message = message;\n this.options = options;\n this.attempts = 0;\n};\nassign(Scheduler.prototype, {\n getTimeout: function () {\n return this.options.timeout;\n },\n getInterval: function () {\n return this.options.interval;\n },\n isDeliverable: function () {\n var attempts = this.options.attempts,\n made = this.attempts,\n deadline = this.options.deadline,\n now = new Date().getTime();\n if (attempts !== undefined && made >= attempts) return false;\n if (deadline !== undefined && now > deadline) return false;\n return true;\n },\n send: function () {\n this.attempts += 1;\n },\n succeed: function () {},\n fail: function () {},\n abort: function () {}\n});\nmodule.exports = Scheduler;","'use strict';\n\nvar Class = require('../util/class'),\n assign = require('../util/assign'),\n Deferrable = require('../mixins/deferrable');\nvar Subscription = Class({\n initialize: function (client, channels, callback, context) {\n this._client = client;\n this._channels = channels;\n this._callback = callback;\n this._context = context;\n this._cancelled = false;\n },\n withChannel: function (callback, context) {\n this._withChannel = [callback, context];\n return this;\n },\n apply: function (context, args) {\n var message = args[0];\n if (this._callback) this._callback.call(this._context, message.data);\n if (this._withChannel) this._withChannel[0].call(this._withChannel[1], message.channel, message.data);\n },\n cancel: function () {\n if (this._cancelled) return;\n this._client.unsubscribe(this._channels, this);\n this._cancelled = true;\n },\n unsubscribe: function () {\n this.cancel();\n }\n});\nassign(Subscription.prototype, Deferrable);\nmodule.exports = Subscription;","'use strict';\n\nvar Transport = require('./transport');\nTransport.register('websocket', require('./web_socket'));\nTransport.register('eventsource', require('./event_source'));\nTransport.register('long-polling', require('./xhr'));\nTransport.register('cross-origin-long-polling', require('./cors'));\nTransport.register('callback-polling', require('./jsonp'));\nmodule.exports = Transport;","'use strict';\n\nvar Class = require('../util/class'),\n Set = require('../util/set'),\n URI = require('../util/uri'),\n assign = require('../util/assign'),\n toJSON = require('../util/to_json'),\n Transport = require('./transport');\nvar CORS = assign(Class(Transport, {\n encode: function (messages) {\n return 'message=' + encodeURIComponent(toJSON(messages));\n },\n request: function (messages) {\n var xhrClass = global.XDomainRequest ? XDomainRequest : XMLHttpRequest,\n xhr = new xhrClass(),\n id = ++CORS._id,\n headers = this._dispatcher.headers,\n self = this,\n key;\n xhr.open('POST', this.endpoint.href, true);\n xhr.withCredentials = true;\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Pragma', 'no-cache');\n for (key in headers) {\n if (!headers.hasOwnProperty(key)) continue;\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n var cleanUp = function () {\n if (!xhr) return false;\n CORS._pending.remove(id);\n xhr.onload = xhr.onerror = xhr.ontimeout = xhr.onprogress = null;\n xhr = null;\n };\n xhr.onload = function () {\n var replies;\n try {\n replies = JSON.parse(xhr.responseText);\n } catch (error) {}\n cleanUp();\n if (replies) self._receive(replies);else self._handleError(messages);\n };\n xhr.onerror = xhr.ontimeout = function () {\n cleanUp();\n self._handleError(messages);\n };\n xhr.onprogress = function () {};\n if (xhrClass === global.XDomainRequest) CORS._pending.add({\n id: id,\n xhr: xhr\n });\n xhr.send(this.encode(messages));\n return xhr;\n }\n}), {\n _id: 0,\n _pending: new Set(),\n isUsable: function (dispatcher, endpoint, callback, context) {\n if (URI.isSameOrigin(endpoint)) return callback.call(context, false);\n if (global.XDomainRequest) return callback.call(context, endpoint.protocol === location.protocol);\n if (global.XMLHttpRequest) {\n var xhr = new XMLHttpRequest();\n return callback.call(context, xhr.withCredentials !== undefined);\n }\n return callback.call(context, false);\n }\n});\nmodule.exports = CORS;","'use strict';\n\nvar Class = require('../util/class'),\n URI = require('../util/uri'),\n copyObject = require('../util/copy_object'),\n assign = require('../util/assign'),\n Deferrable = require('../mixins/deferrable'),\n Transport = require('./transport'),\n XHR = require('./xhr');\nvar EventSource = assign(Class(Transport, {\n initialize: function (dispatcher, endpoint) {\n Transport.prototype.initialize.call(this, dispatcher, endpoint);\n if (!global.EventSource) return this.setDeferredStatus('failed');\n this._xhr = new XHR(dispatcher, endpoint);\n endpoint = copyObject(endpoint);\n endpoint.pathname += '/' + dispatcher.clientId;\n var socket = new global.EventSource(URI.stringify(endpoint)),\n self = this;\n socket.onopen = function () {\n self._everConnected = true;\n self.setDeferredStatus('succeeded');\n };\n socket.onerror = function () {\n if (self._everConnected) {\n self._handleError([]);\n } else {\n self.setDeferredStatus('failed');\n socket.close();\n }\n };\n socket.onmessage = function (event) {\n var replies;\n try {\n replies = JSON.parse(event.data);\n } catch (error) {}\n if (replies) self._receive(replies);else self._handleError([]);\n };\n this._socket = socket;\n },\n close: function () {\n if (!this._socket) return;\n this._socket.onopen = this._socket.onerror = this._socket.onmessage = null;\n this._socket.close();\n delete this._socket;\n },\n isUsable: function (callback, context) {\n this.callback(function () {\n callback.call(context, true);\n });\n this.errback(function () {\n callback.call(context, false);\n });\n },\n encode: function (messages) {\n return this._xhr.encode(messages);\n },\n request: function (messages) {\n return this._xhr.request(messages);\n }\n}), {\n isUsable: function (dispatcher, endpoint, callback, context) {\n var id = dispatcher.clientId;\n if (!id) return callback.call(context, false);\n XHR.isUsable(dispatcher, endpoint, function (usable) {\n if (!usable) return callback.call(context, false);\n this.create(dispatcher, endpoint).isUsable(callback, context);\n }, this);\n },\n create: function (dispatcher, endpoint) {\n var sockets = dispatcher.transports.eventsource = dispatcher.transports.eventsource || {},\n id = dispatcher.clientId;\n var url = copyObject(endpoint);\n url.pathname += '/' + (id || '');\n url = URI.stringify(url);\n sockets[url] = sockets[url] || new this(dispatcher, endpoint);\n return sockets[url];\n }\n});\nassign(EventSource.prototype, Deferrable);\nmodule.exports = EventSource;","'use strict';\n\nvar Class = require('../util/class'),\n URI = require('../util/uri'),\n copyObject = require('../util/copy_object'),\n assign = require('../util/assign'),\n toJSON = require('../util/to_json'),\n Transport = require('./transport');\nvar JSONP = assign(Class(Transport, {\n encode: function (messages) {\n var url = copyObject(this.endpoint);\n url.query.message = toJSON(messages);\n url.query.jsonp = '__jsonp' + JSONP._cbCount + '__';\n return URI.stringify(url);\n },\n request: function (messages) {\n var head = document.getElementsByTagName('head')[0],\n script = document.createElement('script'),\n callbackName = JSONP.getCallbackName(),\n endpoint = copyObject(this.endpoint),\n self = this;\n endpoint.query.message = toJSON(messages);\n endpoint.query.jsonp = callbackName;\n var cleanup = function () {\n if (!global[callbackName]) return false;\n global[callbackName] = undefined;\n try {\n delete global[callbackName];\n } catch (error) {}\n script.parentNode.removeChild(script);\n };\n global[callbackName] = function (replies) {\n cleanup();\n self._receive(replies);\n };\n script.type = 'text/javascript';\n script.src = URI.stringify(endpoint);\n head.appendChild(script);\n script.onerror = function () {\n cleanup();\n self._handleError(messages);\n };\n return {\n abort: cleanup\n };\n }\n}), {\n _cbCount: 0,\n getCallbackName: function () {\n this._cbCount += 1;\n return '__jsonp' + this._cbCount + '__';\n },\n isUsable: function (dispatcher, endpoint, callback, context) {\n callback.call(context, true);\n }\n});\nmodule.exports = JSONP;","'use strict';\n\nvar Class = require('../util/class'),\n Cookie = require('../util/cookies').Cookie,\n Promise = require('../util/promise'),\n array = require('../util/array'),\n assign = require('../util/assign'),\n Logging = require('../mixins/logging'),\n Timeouts = require('../mixins/timeouts'),\n Channel = require('../protocol/channel');\nvar Transport = assign(Class({\n className: 'Transport',\n DEFAULT_PORTS: {\n 'http:': 80,\n 'https:': 443,\n 'ws:': 80,\n 'wss:': 443\n },\n MAX_DELAY: 0,\n batching: true,\n initialize: function (dispatcher, endpoint) {\n this._dispatcher = dispatcher;\n this.endpoint = endpoint;\n this._outbox = [];\n this._proxy = assign({}, this._dispatcher.proxy);\n if (!this._proxy.origin) this._proxy.origin = this._findProxy();\n },\n close: function () {},\n encode: function (messages) {\n return '';\n },\n sendMessage: function (message) {\n this.debug('Client ? sending message to ?: ?', this._dispatcher.clientId, this.endpoint.href, message);\n if (!this.batching) return Promise.resolve(this.request([message]));\n this._outbox.push(message);\n this._flushLargeBatch();\n if (message.channel === Channel.HANDSHAKE) return this._publish(0.01);\n if (message.channel === Channel.CONNECT) this._connectMessage = message;\n return this._publish(this.MAX_DELAY);\n },\n _makePromise: function () {\n var self = this;\n this._requestPromise = this._requestPromise || new Promise(function (resolve) {\n self._resolvePromise = resolve;\n });\n },\n _publish: function (delay) {\n this._makePromise();\n this.addTimeout('publish', delay, function () {\n this._flush();\n delete this._requestPromise;\n }, this);\n return this._requestPromise;\n },\n _flush: function () {\n this.removeTimeout('publish');\n if (this._outbox.length > 1 && this._connectMessage) this._connectMessage.advice = {\n timeout: 0\n };\n this._resolvePromise(this.request(this._outbox));\n this._connectMessage = null;\n this._outbox = [];\n },\n _flushLargeBatch: function () {\n var string = this.encode(this._outbox);\n if (string.length < this._dispatcher.maxRequestSize) return;\n var last = this._outbox.pop();\n this._makePromise();\n this._flush();\n if (last) this._outbox.push(last);\n },\n _receive: function (replies) {\n if (!replies) return;\n replies = [].concat(replies);\n this.debug('Client ? received from ? via ?: ?', this._dispatcher.clientId, this.endpoint.href, this.connectionType, replies);\n for (var i = 0, n = replies.length; i < n; i++) this._dispatcher.handleResponse(replies[i]);\n },\n _handleError: function (messages, immediate) {\n messages = [].concat(messages);\n this.debug('Client ? failed to send to ? via ?: ?', this._dispatcher.clientId, this.endpoint.href, this.connectionType, messages);\n for (var i = 0, n = messages.length; i < n; i++) this._dispatcher.handleError(messages[i]);\n },\n _getCookies: function () {\n var cookies = this._dispatcher.cookies,\n url = this.endpoint.href;\n if (!cookies) return '';\n return array.map(cookies.getCookiesSync(url), function (cookie) {\n return cookie.cookieString();\n }).join('; ');\n },\n _storeCookies: function (setCookie) {\n var cookies = this._dispatcher.cookies,\n url = this.endpoint.href,\n cookie;\n if (!setCookie || !cookies) return;\n setCookie = [].concat(setCookie);\n for (var i = 0, n = setCookie.length; i < n; i++) {\n cookie = Cookie.parse(setCookie[i]);\n cookies.setCookieSync(cookie, url);\n }\n },\n _findProxy: function () {\n if (typeof process === 'undefined') return undefined;\n var protocol = this.endpoint.protocol;\n if (!protocol) return undefined;\n var name = protocol.replace(/:$/, '').toLowerCase() + '_proxy',\n upcase = name.toUpperCase(),\n env = process.env,\n keys,\n proxy;\n if (name === 'http_proxy' && env.REQUEST_METHOD) {\n keys = Object.keys(env).filter(function (k) {\n return /^http_proxy$/i.test(k);\n });\n if (keys.length === 1) {\n if (keys[0] === name && env[upcase] === undefined) proxy = env[name];\n } else if (keys.length > 1) {\n proxy = env[name];\n }\n proxy = proxy || env['CGI_' + upcase];\n } else {\n proxy = env[name] || env[upcase];\n if (proxy && !env[name]) console.warn('The environment variable ' + upcase + ' is discouraged. Use ' + name + '.');\n }\n return proxy;\n }\n}), {\n get: function (dispatcher, allowed, disabled, callback, context) {\n var endpoint = dispatcher.endpoint;\n array.asyncEach(this._transports, function (pair, resume) {\n var connType = pair[0],\n klass = pair[1],\n connEndpoint = dispatcher.endpointFor(connType);\n if (array.indexOf(disabled, connType) >= 0) return resume();\n if (array.indexOf(allowed, connType) < 0) {\n klass.isUsable(dispatcher, connEndpoint, function () {});\n return resume();\n }\n klass.isUsable(dispatcher, connEndpoint, function (isUsable) {\n if (!isUsable) return resume();\n var transport = klass.hasOwnProperty('create') ? klass.create(dispatcher, connEndpoint) : new klass(dispatcher, connEndpoint);\n callback.call(context, transport);\n });\n }, function () {\n throw new Error('Could not find a usable connection type for ' + endpoint.href);\n });\n },\n register: function (type, klass) {\n this._transports.push([type, klass]);\n klass.prototype.connectionType = type;\n },\n getConnectionTypes: function () {\n return array.map(this._transports, function (t) {\n return t[0];\n });\n },\n disable: function (feature) {\n if (feature !== 'autodisconnect') return;\n for (var i = 0; i < this._transports.length; i++) this._transports[i][1]._unloaded = false;\n },\n _transports: []\n});\nassign(Transport.prototype, Logging);\nassign(Transport.prototype, Timeouts);\nmodule.exports = Transport;","'use strict';\n\nvar Class = require('../util/class'),\n Promise = require('../util/promise'),\n Set = require('../util/set'),\n URI = require('../util/uri'),\n browser = require('../util/browser'),\n copyObject = require('../util/copy_object'),\n assign = require('../util/assign'),\n toJSON = require('../util/to_json'),\n ws = require('../util/websocket'),\n Deferrable = require('../mixins/deferrable'),\n Transport = require('./transport');\nvar WebSocket = assign(Class(Transport, {\n UNCONNECTED: 1,\n CONNECTING: 2,\n CONNECTED: 3,\n batching: false,\n isUsable: function (callback, context) {\n this.callback(function () {\n callback.call(context, true);\n });\n this.errback(function () {\n callback.call(context, false);\n });\n this.connect();\n },\n request: function (messages) {\n this._pending = this._pending || new Set();\n for (var i = 0, n = messages.length; i < n; i++) this._pending.add(messages[i]);\n var self = this;\n var promise = new Promise(function (resolve, reject) {\n self.callback(function (socket) {\n if (!socket || socket.readyState !== 1) return;\n socket.send(toJSON(messages));\n resolve(socket);\n });\n self.connect();\n });\n return {\n abort: function () {\n promise.then(function (ws) {\n ws.close();\n });\n }\n };\n },\n connect: function () {\n if (WebSocket._unloaded) return;\n this._state = this._state || this.UNCONNECTED;\n if (this._state !== this.UNCONNECTED) return;\n this._state = this.CONNECTING;\n var socket = this._createSocket();\n if (!socket) return this.setDeferredStatus('failed');\n var self = this;\n socket.onopen = function () {\n if (socket.headers) self._storeCookies(socket.headers['set-cookie']);\n self._socket = socket;\n self._state = self.CONNECTED;\n self._everConnected = true;\n self.setDeferredStatus('succeeded', socket);\n };\n var closed = false;\n socket.onclose = socket.onerror = function () {\n if (closed) return;\n closed = true;\n var wasConnected = self._state === self.CONNECTED;\n socket.onopen = socket.onclose = socket.onerror = socket.onmessage = null;\n delete self._socket;\n self._state = self.UNCONNECTED;\n var pending = self._pending ? self._pending.toArray() : [];\n delete self._pending;\n if (wasConnected || self._everConnected) {\n self.setDeferredStatus('unknown');\n self._handleError(pending, wasConnected);\n } else {\n self.setDeferredStatus('failed');\n }\n };\n socket.onmessage = function (event) {\n var replies;\n try {\n replies = JSON.parse(event.data);\n } catch (error) {}\n if (!replies) return;\n replies = [].concat(replies);\n for (var i = 0, n = replies.length; i < n; i++) {\n if (replies[i].successful === undefined) continue;\n self._pending.remove(replies[i]);\n }\n self._receive(replies);\n };\n },\n close: function () {\n if (!this._socket) return;\n this._socket.close();\n },\n _createSocket: function () {\n var url = WebSocket.getSocketUrl(this.endpoint),\n headers = this._dispatcher.headers,\n extensions = this._dispatcher.wsExtensions,\n cookie = this._getCookies(),\n tls = this._dispatcher.tls,\n options = {\n extensions: extensions,\n headers: headers,\n proxy: this._proxy,\n tls: tls\n };\n if (cookie !== '') options.headers['Cookie'] = cookie;\n try {\n return ws.create(url, [], options);\n } catch (e) {\n // catch CSP error to allow transport to fallback to next connType\n }\n }\n}), {\n PROTOCOLS: {\n 'http:': 'ws:',\n 'https:': 'wss:'\n },\n create: function (dispatcher, endpoint) {\n var sockets = dispatcher.transports.websocket = dispatcher.transports.websocket || {};\n sockets[endpoint.href] = sockets[endpoint.href] || new this(dispatcher, endpoint);\n return sockets[endpoint.href];\n },\n getSocketUrl: function (endpoint) {\n endpoint = copyObject(endpoint);\n endpoint.protocol = this.PROTOCOLS[endpoint.protocol];\n return URI.stringify(endpoint);\n },\n isUsable: function (dispatcher, endpoint, callback, context) {\n this.create(dispatcher, endpoint).isUsable(callback, context);\n }\n});\nassign(WebSocket.prototype, Deferrable);\nif (browser.Event && global.onbeforeunload !== undefined) {\n browser.Event.on(global, 'beforeunload', function () {\n if (WebSocket._unloaded === undefined) WebSocket._unloaded = true;\n });\n}\nmodule.exports = WebSocket;","'use strict';\n\nvar Class = require('../util/class'),\n URI = require('../util/uri'),\n browser = require('../util/browser'),\n assign = require('../util/assign'),\n toJSON = require('../util/to_json'),\n Transport = require('./transport');\nvar XHR = assign(Class(Transport, {\n encode: function (messages) {\n return toJSON(messages);\n },\n request: function (messages) {\n var href = this.endpoint.href,\n self = this,\n xhr;\n\n // Prefer XMLHttpRequest over ActiveXObject if they both exist\n if (global.XMLHttpRequest) {\n xhr = new XMLHttpRequest();\n } else if (global.ActiveXObject) {\n xhr = new ActiveXObject('Microsoft.XMLHTTP');\n } else {\n return this._handleError(messages);\n }\n xhr.open('POST', href, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Pragma', 'no-cache');\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n var headers = this._dispatcher.headers;\n for (var key in headers) {\n if (!headers.hasOwnProperty(key)) continue;\n xhr.setRequestHeader(key, headers[key]);\n }\n var abort = function () {\n xhr.abort();\n };\n if (global.onbeforeunload !== undefined) browser.Event.on(global, 'beforeunload', abort);\n xhr.onreadystatechange = function () {\n if (!xhr || xhr.readyState !== 4) return;\n var replies = null,\n status = xhr.status,\n text = xhr.responseText,\n successful = status >= 200 && status < 300 || status === 304 || status === 1223;\n if (global.onbeforeunload !== undefined) browser.Event.detach(global, 'beforeunload', abort);\n xhr.onreadystatechange = function () {};\n xhr = null;\n if (!successful) return self._handleError(messages);\n try {\n replies = JSON.parse(text);\n } catch (error) {}\n if (replies) self._receive(replies);else self._handleError(messages);\n };\n xhr.send(this.encode(messages));\n return xhr;\n }\n}), {\n isUsable: function (dispatcher, endpoint, callback, context) {\n var usable = navigator.product === 'ReactNative' || URI.isSameOrigin(endpoint);\n callback.call(context, usable);\n }\n});\nmodule.exports = XHR;","'use strict';\n\nmodule.exports = {\n commonElement: function (lista, listb) {\n for (var i = 0, n = lista.length; i < n; i++) {\n if (this.indexOf(listb, lista[i]) !== -1) return lista[i];\n }\n return null;\n },\n indexOf: function (list, needle) {\n if (list.indexOf) return list.indexOf(needle);\n for (var i = 0, n = list.length; i < n; i++) {\n if (list[i] === needle) return i;\n }\n return -1;\n },\n map: function (object, callback, context) {\n if (object.map) return object.map(callback, context);\n var result = [];\n if (object instanceof Array) {\n for (var i = 0, n = object.length; i < n; i++) {\n result.push(callback.call(context || null, object[i], i));\n }\n } else {\n for (var key in object) {\n if (!object.hasOwnProperty(key)) continue;\n result.push(callback.call(context || null, key, object[key]));\n }\n }\n return result;\n },\n filter: function (array, callback, context) {\n if (array.filter) return array.filter(callback, context);\n var result = [];\n for (var i = 0, n = array.length; i < n; i++) {\n if (callback.call(context || null, array[i], i)) result.push(array[i]);\n }\n return result;\n },\n asyncEach: function (list, iterator, callback, context) {\n var n = list.length,\n i = -1,\n calls = 0,\n looping = false;\n var iterate = function () {\n calls -= 1;\n i += 1;\n if (i === n) return callback && callback.call(context);\n iterator(list[i], resume);\n };\n var loop = function () {\n if (looping) return;\n looping = true;\n while (calls > 0) iterate();\n looping = false;\n };\n var resume = function () {\n calls += 1;\n loop();\n };\n resume();\n }\n};","'use strict';\n\nvar forEach = Array.prototype.forEach,\n hasOwn = Object.prototype.hasOwnProperty;\nmodule.exports = function (target) {\n forEach.call(arguments, function (source, i) {\n if (i === 0) return;\n for (var key in source) {\n if (hasOwn.call(source, key)) target[key] = source[key];\n }\n });\n return target;\n};","'use strict';\n\nvar Event = {\n _registry: [],\n on: function (element, eventName, callback, context) {\n var wrapped = function () {\n callback.call(context);\n };\n if (element.addEventListener) element.addEventListener(eventName, wrapped, false);else element.attachEvent('on' + eventName, wrapped);\n this._registry.push({\n _element: element,\n _type: eventName,\n _callback: callback,\n _context: context,\n _handler: wrapped\n });\n },\n detach: function (element, eventName, callback, context) {\n var i = this._registry.length,\n register;\n while (i--) {\n register = this._registry[i];\n if (element && element !== register._element || eventName && eventName !== register._type || callback && callback !== register._callback || context && context !== register._context) continue;\n if (register._element.removeEventListener) register._element.removeEventListener(register._type, register._handler, false);else register._element.detachEvent('on' + register._type, register._handler);\n this._registry.splice(i, 1);\n register = null;\n }\n }\n};\nif (global.onunload !== undefined) Event.on(global, 'unload', Event.detach, Event);\nmodule.exports = {\n Event: Event\n};","'use strict';\n\nvar assign = require('./assign');\nmodule.exports = function (parent, methods) {\n if (typeof parent !== 'function') {\n methods = parent;\n parent = Object;\n }\n var klass = function () {\n if (!this.initialize) return this;\n return this.initialize.apply(this, arguments) || this;\n };\n var bridge = function () {};\n bridge.prototype = parent.prototype;\n klass.prototype = new bridge();\n assign(klass.prototype, methods);\n return klass;\n};","module.exports = {\n VERSION: '1.4.0',\n BAYEUX_VERSION: '1.0',\n ID_LENGTH: 160,\n JSONP_CALLBACK: 'jsonpcallback',\n CONNECTION_TYPES: ['long-polling', 'cross-origin-long-polling', 'callback-polling', 'websocket', 'eventsource', 'in-process'],\n MANDATORY_CONNECTION_TYPES: ['long-polling', 'callback-polling', 'in-process']\n};","'use strict';\n\nmodule.exports = {};","'use strict';\n\nvar copyObject = function (object) {\n var clone, i, key;\n if (object instanceof Array) {\n clone = [];\n i = object.length;\n while (i--) clone[i] = copyObject(object[i]);\n return clone;\n } else if (typeof object === 'object') {\n clone = object === null ? null : {};\n for (key in object) clone[key] = copyObject(object[key]);\n return clone;\n } else {\n return object;\n }\n};\nmodule.exports = copyObject;","/*\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nvar isArray = typeof Array.isArray === 'function' ? Array.isArray : function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\nfunction indexOf(xs, x) {\n if (xs.indexOf) return xs.indexOf(x);\n for (var i = 0; i < xs.length; i++) {\n if (x === xs[i]) return i;\n }\n return -1;\n}\nfunction EventEmitter() {}\nmodule.exports = EventEmitter;\nEventEmitter.prototype.emit = function (type) {\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events || !this._events.error || isArray(this._events.error) && !this._events.error.length) {\n if (arguments[1] instanceof Error) {\n throw arguments[1]; // Unhandled 'error' event\n } else {\n throw new Error(\"Uncaught, unspecified 'error' event.\");\n }\n return false;\n }\n }\n if (!this._events) return false;\n var handler = this._events[type];\n if (!handler) return false;\n if (typeof handler == 'function') {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n var args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n return true;\n } else if (isArray(handler)) {\n var args = Array.prototype.slice.call(arguments, 1);\n var listeners = handler.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i].apply(this, args);\n }\n return true;\n } else {\n return false;\n }\n};\n\n// EventEmitter is defined in src/node_events.cc\n// EventEmitter.prototype.emit() is also defined there.\nEventEmitter.prototype.addListener = function (type, listener) {\n if ('function' !== typeof listener) {\n throw new Error('addListener only takes instances of Function');\n }\n if (!this._events) this._events = {};\n\n // To avoid recursion in the case that type == \"newListeners\"! Before\n // adding it to the listeners, first emit \"newListeners\".\n this.emit('newListener', type, listener);\n if (!this._events[type]) {\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n } else if (isArray(this._events[type])) {\n // If we've already got an array, just append.\n this._events[type].push(listener);\n } else {\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n }\n return this;\n};\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\nEventEmitter.prototype.once = function (type, listener) {\n var self = this;\n self.on(type, function g() {\n self.removeListener(type, g);\n listener.apply(this, arguments);\n });\n return this;\n};\nEventEmitter.prototype.removeListener = function (type, listener) {\n if ('function' !== typeof listener) {\n throw new Error('removeListener only takes instances of Function');\n }\n\n // does not use listeners(), so no side effect of creating _events[type]\n if (!this._events || !this._events[type]) return this;\n var list = this._events[type];\n if (isArray(list)) {\n var i = indexOf(list, listener);\n if (i < 0) return this;\n list.splice(i, 1);\n if (list.length == 0) delete this._events[type];\n } else if (this._events[type] === listener) {\n delete this._events[type];\n }\n return this;\n};\nEventEmitter.prototype.removeAllListeners = function (type) {\n if (arguments.length === 0) {\n this._events = {};\n return this;\n }\n\n // does not use listeners(), so no side effect of creating _events[type]\n if (type && this._events && this._events[type]) this._events[type] = null;\n return this;\n};\nEventEmitter.prototype.listeners = function (type) {\n if (!this._events) this._events = {};\n if (!this._events[type]) this._events[type] = [];\n if (!isArray(this._events[type])) {\n this._events[type] = [this._events[type]];\n }\n return this._events[type];\n};","'use strict';\n\nvar asap = require('asap');\nvar PENDING = -1,\n FULFILLED = 0,\n REJECTED = 1;\nvar Promise = function (task) {\n this._state = PENDING;\n this._value = null;\n this._defer = [];\n execute(this, task);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var promise = new Promise();\n var deferred = {\n promise: promise,\n onFulfilled: onFulfilled,\n onRejected: onRejected\n };\n if (this._state === PENDING) this._defer.push(deferred);else propagate(this, deferred);\n return promise;\n};\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nvar execute = function (promise, task) {\n if (typeof task !== 'function') return;\n var calls = 0;\n var resolvePromise = function (value) {\n if (calls++ === 0) resolve(promise, value);\n };\n var rejectPromise = function (reason) {\n if (calls++ === 0) reject(promise, reason);\n };\n try {\n task(resolvePromise, rejectPromise);\n } catch (error) {\n rejectPromise(error);\n }\n};\nvar propagate = function (promise, deferred) {\n var state = promise._state,\n value = promise._value,\n next = deferred.promise,\n handler = [deferred.onFulfilled, deferred.onRejected][state],\n pass = [resolve, reject][state];\n if (typeof handler !== 'function') return pass(next, value);\n asap(function () {\n try {\n resolve(next, handler(value));\n } catch (error) {\n reject(next, error);\n }\n });\n};\nvar resolve = function (promise, value) {\n if (promise === value) return reject(promise, new TypeError('Recursive promise chain detected'));\n var then;\n try {\n then = getThen(value);\n } catch (error) {\n return reject(promise, error);\n }\n if (!then) return fulfill(promise, value);\n execute(promise, function (resolvePromise, rejectPromise) {\n then.call(value, resolvePromise, rejectPromise);\n });\n};\nvar getThen = function (value) {\n var type = typeof value,\n then = (type === 'object' || type === 'function') && value && value.then;\n return typeof then === 'function' ? then : null;\n};\nvar fulfill = function (promise, value) {\n settle(promise, FULFILLED, value);\n};\nvar reject = function (promise, reason) {\n settle(promise, REJECTED, reason);\n};\nvar settle = function (promise, state, value) {\n var defer = promise._defer,\n i = 0;\n promise._state = state;\n promise._value = value;\n promise._defer = null;\n if (defer.length === 0) return;\n while (i < defer.length) propagate(promise, defer[i++]);\n};\nPromise.resolve = function (value) {\n try {\n if (getThen(value)) return value;\n } catch (error) {\n return Promise.reject(error);\n }\n return new Promise(function (resolve, reject) {\n resolve(value);\n });\n};\nPromise.reject = function (reason) {\n return new Promise(function (resolve, reject) {\n reject(reason);\n });\n};\nPromise.all = function (promises) {\n return new Promise(function (resolve, reject) {\n var list = [],\n n = promises.length,\n i;\n if (n === 0) return resolve(list);\n var push = function (promise, i) {\n Promise.resolve(promise).then(function (value) {\n list[i] = value;\n if (--n === 0) resolve(list);\n }, reject);\n };\n for (i = 0; i < n; i++) push(promises[i], i);\n });\n};\nPromise.race = function (promises) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, n = promises.length; i < n; i++) Promise.resolve(promises[i]).then(resolve, reject);\n });\n};\nPromise.deferred = function () {\n var tuple = {};\n tuple.promise = new Promise(function (resolve, reject) {\n tuple.resolve = resolve;\n tuple.reject = reject;\n });\n return tuple;\n};\nmodule.exports = Promise;","'use strict';\n\nvar Class = require('./class');\nmodule.exports = Class({\n initialize: function () {\n this._index = {};\n },\n add: function (item) {\n var key = item.id !== undefined ? item.id : item;\n if (this._index.hasOwnProperty(key)) return false;\n this._index[key] = item;\n return true;\n },\n forEach: function (block, context) {\n for (var key in this._index) {\n if (this._index.hasOwnProperty(key)) block.call(context, this._index[key]);\n }\n },\n isEmpty: function () {\n for (var key in this._index) {\n if (this._index.hasOwnProperty(key)) return false;\n }\n return true;\n },\n member: function (item) {\n for (var key in this._index) {\n if (this._index[key] === item) return true;\n }\n return false;\n },\n remove: function (item) {\n var key = item.id !== undefined ? item.id : item;\n var removed = this._index[key];\n delete this._index[key];\n return removed;\n },\n toArray: function () {\n var array = [];\n this.forEach(function (item) {\n array.push(item);\n });\n return array;\n }\n});","'use strict';\n\n// http://assanka.net/content/tech/2009/09/02/json2-js-vs-prototype/\nmodule.exports = function (object) {\n return JSON.stringify(object, function (key, value) {\n return this[key] instanceof Array ? this[key] : value;\n });\n};","'use strict';\n\nmodule.exports = {\n isURI: function (uri) {\n return uri && uri.protocol && uri.host && uri.path;\n },\n isSameOrigin: function (uri) {\n return uri.protocol === location.protocol && uri.hostname === location.hostname && uri.port === location.port;\n },\n parse: function (url) {\n if (typeof url !== 'string') return url;\n var uri = {},\n parts,\n query,\n pairs,\n i,\n n,\n data;\n var consume = function (name, pattern) {\n url = url.replace(pattern, function (match) {\n uri[name] = match;\n return '';\n });\n uri[name] = uri[name] || '';\n };\n consume('protocol', /^[a-z]+\\:/i);\n consume('host', /^\\/\\/[^\\/\\?#]+/);\n if (!/^\\//.test(url) && !uri.host) url = location.pathname.replace(/[^\\/]*$/, '') + url;\n consume('pathname', /^[^\\?#]*/);\n consume('search', /^\\?[^#]*/);\n consume('hash', /^#.*/);\n uri.protocol = uri.protocol || location.protocol;\n if (uri.host) {\n uri.host = uri.host.substr(2);\n if (/@/.test(uri.host)) {\n uri.auth = uri.host.split('@')[0];\n uri.host = uri.host.split('@')[1];\n }\n parts = uri.host.match(/^\\[([^\\]]+)\\]|^[^:]+/);\n uri.hostname = parts[1] || parts[0];\n uri.port = (uri.host.match(/:(\\d+)$/) || [])[1] || '';\n } else {\n uri.host = location.host;\n uri.hostname = location.hostname;\n uri.port = location.port;\n }\n uri.pathname = uri.pathname || '/';\n uri.path = uri.pathname + uri.search;\n query = uri.search.replace(/^\\?/, '');\n pairs = query ? query.split('&') : [];\n data = {};\n for (i = 0, n = pairs.length; i < n; i++) {\n parts = pairs[i].split('=');\n data[decodeURIComponent(parts[0] || '')] = decodeURIComponent(parts[1] || '');\n }\n uri.query = data;\n uri.href = this.stringify(uri);\n return uri;\n },\n stringify: function (uri) {\n var auth = uri.auth ? uri.auth + '@' : '',\n string = uri.protocol + '//' + auth + uri.host;\n string += uri.pathname + this.queryString(uri.query) + (uri.hash || '');\n return string;\n },\n queryString: function (query) {\n var pairs = [];\n for (var key in query) {\n if (!query.hasOwnProperty(key)) continue;\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(query[key]));\n }\n if (pairs.length === 0) return '';\n return '?' + pairs.join('&');\n }\n};","'use strict';\n\nvar array = require('./array');\nmodule.exports = function (options, validKeys) {\n for (var key in options) {\n if (array.indexOf(validKeys, key) < 0) throw new Error('Unrecognized option: ' + key);\n }\n};","'use strict';\n\nvar WS = global.MozWebSocket || global.WebSocket;\nmodule.exports = {\n create: function (url, protocols, options) {\n if (typeof WS !== 'function') return null;\n return new WS(url);\n }\n};","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamClient = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar axios = _interopRequireWildcard(require(\"axios\"));\nvar Faye = _interopRequireWildcard(require(\"faye\"));\nvar http = _interopRequireWildcard(require(\"http\"));\nvar https = _interopRequireWildcard(require(\"https\"));\nvar _jwtDecode = _interopRequireDefault(require(\"jwt-decode\"));\nvar _personalization = require(\"./personalization\");\nvar _collections = require(\"./collections\");\nvar _files = require(\"./files\");\nvar _images = require(\"./images\");\nvar _reaction = require(\"./reaction\");\nvar _user = require(\"./user\");\nvar _signing = require(\"./signing\");\nvar _errors = require(\"./errors\");\nvar _utils = _interopRequireDefault(require(\"./utils\"));\nvar _batch_operations = _interopRequireDefault(require(\"./batch_operations\"));\nvar _redirect_url = _interopRequireDefault(require(\"./redirect_url\"));\nvar _feed = require(\"./feed\");\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n (0, _defineProperty2.default)(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n\n// TODO: no import since typescript json loader shifts the final output structure\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar pkg = require('../package.json');\n\n/**\n * Client to connect to Stream api\n * @class StreamClient\n */\nvar StreamClient = /*#__PURE__*/function () {\n // eslint-disable-next-line no-shadow\n\n /**\n * Initialize a client\n * @link https://getstream.io/activity-feeds/docs/node/#setup\n * @method initialize\n * @memberof StreamClient.prototype\n * @param {string} apiKey - the api key\n * @param {string} [apiSecret] - the api secret\n * @param {string} [appId] - id of the app\n * @param {ClientOptions} [options] - additional options\n * @param {string} [options.location] - which data center to use\n * @param {boolean} [options.expireTokens=false] - whether to use a JWT timestamp field (i.e. iat)\n * @param {string} [options.version] - advanced usage, custom api version\n * @param {boolean} [options.keepAlive] - axios keepAlive, default to true\n * @param {number} [options.timeout] - axios timeout in Ms, default to 10s\n * @example initialize is not directly called by via stream.connect, ie:\n * stream.connect(apiKey, apiSecret)\n * @example secret is optional and only used in server side mode\n * stream.connect(apiKey, null, appId);\n */\n function StreamClient(apiKey, apiSecretOrToken, appId) {\n var _this = this,\n _process$env,\n _process$env2;\n var _options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n (0, _classCallCheck2.default)(this, StreamClient);\n (0, _defineProperty2.default)(this, \"baseUrl\", void 0);\n (0, _defineProperty2.default)(this, \"baseAnalyticsUrl\", void 0);\n (0, _defineProperty2.default)(this, \"apiKey\", void 0);\n (0, _defineProperty2.default)(this, \"appId\", void 0);\n (0, _defineProperty2.default)(this, \"usingApiSecret\", void 0);\n (0, _defineProperty2.default)(this, \"apiSecret\", void 0);\n (0, _defineProperty2.default)(this, \"userToken\", void 0);\n (0, _defineProperty2.default)(this, \"enrichByDefault\", void 0);\n (0, _defineProperty2.default)(this, \"options\", void 0);\n (0, _defineProperty2.default)(this, \"userId\", void 0);\n (0, _defineProperty2.default)(this, \"authPayload\", void 0);\n (0, _defineProperty2.default)(this, \"version\", void 0);\n (0, _defineProperty2.default)(this, \"fayeUrl\", void 0);\n (0, _defineProperty2.default)(this, \"group\", void 0);\n (0, _defineProperty2.default)(this, \"expireTokens\", void 0);\n (0, _defineProperty2.default)(this, \"location\", void 0);\n (0, _defineProperty2.default)(this, \"fayeClient\", void 0);\n (0, _defineProperty2.default)(this, \"browser\", void 0);\n (0, _defineProperty2.default)(this, \"node\", void 0);\n (0, _defineProperty2.default)(this, \"nodeOptions\", void 0);\n (0, _defineProperty2.default)(this, \"request\", void 0);\n (0, _defineProperty2.default)(this, \"subscriptions\", void 0);\n (0, _defineProperty2.default)(this, \"handlers\", void 0);\n (0, _defineProperty2.default)(this, \"currentUser\", void 0);\n (0, _defineProperty2.default)(this, \"personalization\", void 0);\n (0, _defineProperty2.default)(this, \"collections\", void 0);\n (0, _defineProperty2.default)(this, \"files\", void 0);\n (0, _defineProperty2.default)(this, \"images\", void 0);\n (0, _defineProperty2.default)(this, \"reactions\", void 0);\n (0, _defineProperty2.default)(this, \"_personalizationToken\", void 0);\n (0, _defineProperty2.default)(this, \"_collectionsToken\", void 0);\n (0, _defineProperty2.default)(this, \"_getOrCreateToken\", void 0);\n (0, _defineProperty2.default)(this, \"addToMany\", void 0);\n (0, _defineProperty2.default)(this, \"followMany\", void 0);\n (0, _defineProperty2.default)(this, \"unfollowMany\", void 0);\n (0, _defineProperty2.default)(this, \"createRedirectUrl\", void 0);\n (0, _defineProperty2.default)(this, \"replaceReactionOptions\", function (options) {\n // Shortcut options for reaction enrichment\n if (options !== null && options !== void 0 && options.reactions) {\n if (options.reactions.own != null) {\n options.withOwnReactions = options.reactions.own;\n }\n if (options.reactions.recent != null) {\n options.withRecentReactions = options.reactions.recent;\n }\n if (options.reactions.counts != null) {\n options.withReactionCounts = options.reactions.counts;\n }\n if (options.reactions.own_children != null) {\n options.withOwnChildren = options.reactions.own_children;\n }\n delete options.reactions;\n }\n });\n (0, _defineProperty2.default)(this, \"handleResponse\", function (response) {\n if (/^2/.test(\"\".concat(response.status))) {\n _this.send('response', null, response, response.data);\n return response.data;\n }\n throw new _errors.StreamApiError(\"\".concat(JSON.stringify(response.data), \" with HTTP status code \").concat(response.status), response.data, response);\n });\n (0, _defineProperty2.default)(this, \"doAxiosRequest\", /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(method, options) {\n var response;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.send('request', method, options);\n _context.prev = 1;\n _context.next = 4;\n return _this.request(_this.enrichKwargs(_objectSpread({\n method: method\n }, options)));\n case 4:\n response = _context.sent;\n return _context.abrupt(\"return\", _this.handleResponse(response));\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n if (!_context.t0.response) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\", _this.handleResponse(_context.t0.response));\n case 12:\n throw new _errors.SiteError(_context.t0.message);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[1, 8]]);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n this.baseUrl = 'https://api.stream-io-api.com/api/';\n this.baseAnalyticsUrl = 'https://analytics.stream-io-api.com/analytics/';\n this.apiKey = apiKey;\n this.usingApiSecret = apiSecretOrToken != null && !apiSecretOrToken.includes(\".\");\n this.apiSecret = this.usingApiSecret ? apiSecretOrToken : null;\n this.userToken = this.usingApiSecret ? null : apiSecretOrToken;\n this.enrichByDefault = !this.usingApiSecret;\n if (this.userToken != null) {\n var jwtBody = (0, _jwtDecode.default)(this.userToken);\n if (!jwtBody.user_id) {\n throw new TypeError('user_id is missing in user token');\n }\n this.userId = jwtBody.user_id;\n this.currentUser = this.user(this.userId);\n }\n this.appId = appId;\n this.options = _options;\n this.version = this.options.version || 'v1.0';\n this.fayeUrl = this.options.fayeUrl || 'https://faye-us-east.stream-io-api.com/faye';\n this.fayeClient = null; // track a source name for the api calls, ie get started or databrowser\n\n this.group = this.options.group || 'unspecified'; // track subscriptions made on feeds created by this client\n\n this.subscriptions = {};\n this.expireTokens = this.options.expireTokens ? this.options.expireTokens : false; // which data center to use\n\n this.location = this.options.location;\n this.baseUrl = this.getBaseUrl();\n if (typeof process !== 'undefined' && (_process$env = process.env) !== null && _process$env !== void 0 && _process$env.LOCAL_FAYE) this.fayeUrl = 'http://localhost:9999/faye/';\n if (typeof process !== 'undefined' && (_process$env2 = process.env) !== null && _process$env2 !== void 0 && _process$env2.STREAM_ANALYTICS_BASE_URL) this.baseAnalyticsUrl = process.env.STREAM_ANALYTICS_BASE_URL;\n this.handlers = {};\n this.browser = typeof this.options.browser !== 'undefined' ? this.options.browser : typeof window !== 'undefined';\n this.node = !this.browser;\n if (this.node) {\n var keepAlive = this.options.keepAlive === undefined ? true : this.options.keepAlive;\n this.nodeOptions = {\n httpAgent: new http.Agent({\n keepAlive: keepAlive,\n keepAliveMsecs: 3000\n }),\n httpsAgent: new https.Agent({\n keepAlive: keepAlive,\n keepAliveMsecs: 3000\n })\n };\n }\n this.request = axios.default.create(_objectSpread({\n timeout: this.options.timeout || 10 * 1000,\n // 10 seconds\n withCredentials: false\n }, this.nodeOptions || {}));\n this.personalization = new _personalization.Personalization(this);\n if (this.browser && this.usingApiSecret) {\n throw new _errors.FeedError('You are publicly sharing your App Secret. Do not expose the App Secret in browsers, \"native\" mobile apps, or other non-trusted environments.');\n }\n this.collections = new _collections.Collections(this, this.getOrCreateToken());\n this.files = new _files.StreamFileStore(this, this.getOrCreateToken());\n this.images = new _images.StreamImageStore(this, this.getOrCreateToken());\n this.reactions = new _reaction.StreamReaction(this, this.getOrCreateToken()); // If we are in a node environment and batchOperations/createRedirectUrl is available add the methods to the prototype of StreamClient\n\n if (_batch_operations.default && !!_redirect_url.default) {\n this.addToMany = _batch_operations.default.addToMany;\n this.followMany = _batch_operations.default.followMany;\n this.unfollowMany = _batch_operations.default.unfollowMany;\n this.createRedirectUrl = _redirect_url.default;\n }\n }\n (0, _createClass2.default)(StreamClient, [{\n key: \"_throwMissingApiSecret\",\n value: function _throwMissingApiSecret() {\n if (!this.usingApiSecret) {\n throw new _errors.SiteError('This method can only be used server-side using your API Secret, use client = stream.connect(key, secret);');\n }\n }\n }, {\n key: \"getPersonalizationToken\",\n value: function getPersonalizationToken() {\n if (this._personalizationToken) return this._personalizationToken;\n this._throwMissingApiSecret();\n this._personalizationToken = (0, _signing.JWTScopeToken)(this.apiSecret, 'personalization', '*', {\n userId: '*',\n feedId: '*',\n expireTokens: this.expireTokens\n });\n return this._personalizationToken;\n }\n }, {\n key: \"getCollectionsToken\",\n value: function getCollectionsToken() {\n if (this._collectionsToken) return this._collectionsToken;\n this._throwMissingApiSecret();\n this._collectionsToken = (0, _signing.JWTScopeToken)(this.apiSecret, 'collections', '*', {\n feedId: '*',\n expireTokens: this.expireTokens\n });\n return this._collectionsToken;\n }\n }, {\n key: \"getAnalyticsToken\",\n value: function getAnalyticsToken() {\n this._throwMissingApiSecret();\n return (0, _signing.JWTScopeToken)(this.apiSecret, 'analytics', '*', {\n userId: '*',\n expireTokens: this.expireTokens\n });\n }\n }, {\n key: \"getBaseUrl\",\n value: function getBaseUrl(serviceName) {\n var _process$env3, _process$env4;\n if (!serviceName) serviceName = 'api';\n if (this.options.urlOverride && this.options.urlOverride[serviceName]) return this.options.urlOverride[serviceName];\n var urlEnvironmentKey = serviceName === 'api' ? 'STREAM_BASE_URL' : \"STREAM_\".concat(serviceName.toUpperCase(), \"_URL\");\n if (typeof process !== 'undefined' && (_process$env3 = process.env) !== null && _process$env3 !== void 0 && _process$env3[urlEnvironmentKey]) return process.env[urlEnvironmentKey];\n if (typeof process !== 'undefined' && (_process$env4 = process.env) !== null && _process$env4 !== void 0 && _process$env4.LOCAL || this.options.local) return \"http://localhost:8000/\".concat(serviceName, \"/\");\n if (this.location) {\n var protocol = this.options.protocol || 'https';\n return \"\".concat(protocol, \"://\").concat(this.location, \"-\").concat(serviceName, \".stream-io-api.com/\").concat(serviceName, \"/\");\n }\n if (serviceName !== 'api') return \"https://\".concat(serviceName, \".stream-io-api.com/\").concat(serviceName, \"/\");\n return this.baseUrl;\n }\n /**\n * Support for global event callbacks\n * This is useful for generic error and loading handling\n * @method on\n * @memberof StreamClient.prototype\n * @param {string} event - Name of the event\n * @param {function} callback - Function that is called when the event fires\n * @example\n * client.on('request', callback);\n * client.on('response', callback);\n */\n }, {\n key: \"on\",\n value: function on(event, callback) {\n this.handlers[event] = callback;\n }\n /**\n * Remove one or more event handlers\n * @method off\n * @memberof StreamClient.prototype\n * @param {string} [key] - Name of the handler\n * @example\n * client.off() removes all handlers\n * client.off(name) removes the specified handler\n */\n }, {\n key: \"off\",\n value: function off(key) {\n if (key === undefined) {\n this.handlers = {};\n } else {\n delete this.handlers[key];\n }\n }\n /**\n * Call the given handler with the arguments\n * @method send\n * @memberof StreamClient.prototype\n * @access private\n */\n }, {\n key: \"send\",\n value: function send(key) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.handlers[key]) this.handlers[key].apply(this, args);\n }\n /**\n * Get the current user agent\n * @method userAgent\n * @memberof StreamClient.prototype\n * @return {string} current user agent\n */\n }, {\n key: \"userAgent\",\n value: function userAgent() {\n return \"stream-javascript-client-\".concat(this.node ? 'node' : 'browser', \"-\").concat(pkg.version);\n }\n /**\n * Returns a token that allows only read operations\n *\n * @method getReadOnlyToken\n * @memberof StreamClient.prototype\n * @param {string} feedSlug - The feed slug to get a read only token for\n * @param {string} userId - The user identifier\n * @return {string} token\n * @example client.getReadOnlyToken('user', '1');\n */\n }, {\n key: \"getReadOnlyToken\",\n value: function getReadOnlyToken(feedSlug, userId) {\n _utils.default.validateFeedSlug(feedSlug);\n _utils.default.validateUserId(userId);\n return (0, _signing.JWTScopeToken)(this.apiSecret, '*', 'read', {\n feedId: \"\".concat(feedSlug).concat(userId),\n expireTokens: this.expireTokens\n });\n }\n /**\n * Returns a token that allows read and write operations\n *\n * @method getReadWriteToken\n * @memberof StreamClient.prototype\n * @param {string} feedSlug - The feed slug to get a read only token for\n * @param {string} userId - The user identifier\n * @return {string} token\n * @example client.getReadWriteToken('user', '1');\n */\n }, {\n key: \"getReadWriteToken\",\n value: function getReadWriteToken(feedSlug, userId) {\n _utils.default.validateFeedSlug(feedSlug);\n _utils.default.validateUserId(userId);\n return (0, _signing.JWTScopeToken)(this.apiSecret, '*', '*', {\n feedId: \"\".concat(feedSlug).concat(userId),\n expireTokens: this.expireTokens\n });\n }\n /**\n * Returns a feed object for the given feed id and token\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js\n * @method feed\n * @memberof StreamClient.prototype\n * @param {string} feedSlug - The feed slug\n * @param {string} [userId] - The user identifier\n * @param {string} [token] - The token\n * @return {StreamFeed}\n * @example client.feed('user', '1');\n */\n }, {\n key: \"feed\",\n value: function feed(feedSlug, userId, token) {\n if (userId instanceof _user.StreamUser) userId = userId.id;\n if (token === undefined) {\n if (this.usingApiSecret) {\n token = (0, _signing.JWTScopeToken)(this.apiSecret, '*', '*', {\n feedId: \"\".concat(feedSlug).concat(userId)\n });\n } else {\n token = this.userToken;\n }\n }\n return new _feed.StreamFeed(this, feedSlug, userId || this.userId, token);\n }\n /**\n * Combines the base url with version and the relative url\n * @method enrichUrl\n * @memberof StreamClient.prototype\n * @private\n * @param {string} relativeUrl\n * @param {string} [serviceName]\n * @return {string}\n */\n }, {\n key: \"enrichUrl\",\n value: function enrichUrl(relativeUrl, serviceName) {\n return \"\".concat(this.getBaseUrl(serviceName)).concat(this.version, \"/\").concat(relativeUrl);\n }\n }, {\n key: \"shouldUseEnrichEndpoint\",\n value: function shouldUseEnrichEndpoint() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (options.enrich !== undefined) {\n var result = options.enrich;\n delete options.enrich;\n return result;\n }\n return this.enrichByDefault || options.ownReactions != null || options.withRecentReactions != null || options.withReactionCounts != null || options.withOwnChildren != null;\n }\n /**\n * Adds the API key and the token\n * @method enrichKwargs\n * @private\n * @memberof StreamClient.prototype\n * @param {AxiosConfig} kwargs\n * @return {axios.AxiosRequestConfig}\n */\n }, {\n key: \"enrichKwargs\",\n value: function enrichKwargs(_ref2) {\n var method = _ref2.method,\n token = _ref2.token,\n kwargs = (0, _objectWithoutProperties2.default)(_ref2, [\"method\", \"token\"]);\n return _objectSpread({\n method: method,\n url: this.enrichUrl(kwargs.url, kwargs.serviceName),\n data: kwargs.body,\n params: _objectSpread({\n api_key: this.apiKey,\n location: this.group\n }, kwargs.qs || {}),\n headers: _objectSpread({\n 'X-Stream-Client': this.userAgent(),\n 'stream-auth-type': 'jwt',\n Authorization: token\n }, kwargs.headers || {})\n }, kwargs.axiosOptions || {});\n }\n /**\n * Get the authorization middleware to use Faye with getstream.io\n * @method getFayeAuthorization\n * @memberof StreamClient.prototype\n * @private\n * @return {Faye.Middleware} Faye authorization middleware\n */\n }, {\n key: \"getFayeAuthorization\",\n value: function getFayeAuthorization() {\n var _this2 = this;\n return {\n incoming: function incoming(message, callback) {\n return callback(message);\n },\n outgoing: function outgoing(message, callback) {\n if (message.subscription && _this2.subscriptions[message.subscription]) {\n var subscription = _this2.subscriptions[message.subscription];\n message.ext = {\n user_id: subscription.userId,\n api_key: _this2.apiKey,\n signature: subscription.token\n };\n }\n callback(message);\n }\n };\n }\n /**\n * Returns this client's current Faye client\n * @method getFayeClient\n * @memberof StreamClient.prototype\n * @private\n * @param {number} timeout\n * @return {Faye.Client} Faye client\n */\n }, {\n key: \"getFayeClient\",\n value: function getFayeClient() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n if (this.fayeClient === null) {\n this.fayeClient = new Faye.Client(this.fayeUrl, {\n timeout: timeout\n });\n var authExtension = this.getFayeAuthorization();\n this.fayeClient.addExtension(authExtension);\n }\n return this.fayeClient;\n }\n }, {\n key: \"upload\",\n value: function upload(url, uri, name, contentType, onUploadProgress) {\n var fd = _utils.default.addFileToFormData(uri, name, contentType);\n return this.doAxiosRequest('POST', {\n url: url,\n body: fd,\n headers: fd.getHeaders ? fd.getHeaders() : {},\n // node vs browser\n token: this.getOrCreateToken(),\n axiosOptions: {\n timeout: 0,\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n onUploadProgress: onUploadProgress\n }\n });\n }\n /**\n * Shorthand function for get request\n * @method get\n * @memberof StreamClient.prototype\n * @private\n * @param {AxiosConfig} kwargs\n * @return {Promise} Promise object\n */\n }, {\n key: \"get\",\n value: function get(kwargs) {\n return this.doAxiosRequest('GET', kwargs);\n }\n /**\n * Shorthand function for post request\n * @method post\n * @memberof StreamClient.prototype\n * @private\n * @param {AxiosConfig} kwargs\n * @return {Promise} Promise object\n */\n }, {\n key: \"post\",\n value: function post(kwargs) {\n return this.doAxiosRequest('POST', kwargs);\n }\n /**\n * Shorthand function for delete request\n * @method delete\n * @memberof StreamClient.prototype\n * @private\n * @param {AxiosConfig} kwargs\n * @return {Promise} Promise object\n */\n }, {\n key: \"delete\",\n value: function _delete(kwargs) {\n return this.doAxiosRequest('DELETE', kwargs);\n }\n /**\n * Shorthand function for put request\n * @method put\n * @memberof StreamClient.prototype\n * @private\n * @param {AxiosConfig} kwargs\n * @return {Promise} Promise object\n */\n }, {\n key: \"put\",\n value: function put(kwargs) {\n return this.doAxiosRequest('PUT', kwargs);\n }\n /**\n * create a user token\n * @link https://getstream.io/activity-feeds/docs/node/feeds_getting_started/?language=js#generate-user-token-server-side\n * @param {string} userId\n * @param {object} extraData\n * @return {string}\n */\n }, {\n key: \"createUserToken\",\n value: function createUserToken(userId) {\n var extraData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this._throwMissingApiSecret();\n return (0, _signing.JWTUserSessionToken)(this.apiSecret, userId, extraData, {\n noTimestamp: !this.expireTokens\n });\n }\n /**\n * Updates all supplied activities on the stream\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#updating-activities\n * @param {UpdateActivity[]} activities list of activities to update\n * @return {Promise}\n */\n }, {\n key: \"updateActivities\",\n value: function updateActivities(activities) {\n this._throwMissingApiSecret();\n if (!(activities instanceof Array)) {\n throw new TypeError('The activities argument should be an Array');\n }\n var token = (0, _signing.JWTScopeToken)(this.apiSecret, 'activities', '*', {\n feedId: '*',\n expireTokens: this.expireTokens\n });\n return this.post({\n url: 'activities/',\n body: {\n activities: activities\n },\n token: token\n });\n }\n /**\n * Updates one activity on the stream\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#updating-activities\n * @param {UpdateActivity} activity The activity to update\n * @return {Promise}\n */\n }, {\n key: \"updateActivity\",\n value: function updateActivity(activity) {\n this._throwMissingApiSecret();\n return this.updateActivities([activity]);\n }\n /**\n * Retrieve activities by ID or foreign_id and time\n * @link https://getstream.io/activity-feeds/docs/node/add_many_activities/?language=js#batch-get-activities-by-id\n * @param {object} params object containing either the list of activity IDs as {ids: ['...', ...]} or foreign_ids and time as {foreignIDTimes: [{foreign_id: ..., time: ...}, ...]}\n * @return {Promise}\n */\n }, {\n key: \"getActivities\",\n value: function getActivities(_ref3) {\n var ids = _ref3.ids,\n foreignIDTimes = _ref3.foreignIDTimes,\n params = (0, _objectWithoutProperties2.default)(_ref3, [\"ids\", \"foreignIDTimes\"]);\n var extraParams = {};\n if (ids) {\n if (!(ids instanceof Array)) {\n throw new TypeError('The ids argument should be an Array');\n }\n extraParams.ids = ids.join(',');\n } else if (foreignIDTimes) {\n if (!(foreignIDTimes instanceof Array)) {\n throw new TypeError('The foreignIDTimes argument should be an Array');\n }\n var foreignIDs = [];\n var timestamps = [];\n foreignIDTimes.forEach(function (fidTime) {\n if (!(fidTime instanceof Object)) {\n throw new TypeError('foreignIDTimes elements should be Objects');\n }\n foreignIDs.push(fidTime.foreign_id || fidTime.foreignID);\n timestamps.push(fidTime.time);\n });\n extraParams.foreign_ids = foreignIDs.join(',');\n extraParams.timestamps = timestamps.join(',');\n } else {\n throw new TypeError('Missing ids or foreignIDTimes params');\n }\n var token = this.userToken;\n if (this.usingApiSecret) {\n token = (0, _signing.JWTScopeToken)(this.apiSecret, 'activities', '*', {\n feedId: '*',\n expireTokens: this.expireTokens\n });\n }\n this.replaceReactionOptions(params);\n var path = this.shouldUseEnrichEndpoint(params) ? 'enrich/activities/' : 'activities/';\n return this.get({\n url: path,\n qs: _objectSpread(_objectSpread({}, params), extraParams),\n token: token\n });\n }\n }, {\n key: \"getOrCreateToken\",\n value: function getOrCreateToken() {\n if (!this._getOrCreateToken) {\n this._getOrCreateToken = this.usingApiSecret ? (0, _signing.JWTScopeToken)(this.apiSecret, '*', '*', {\n feedId: '*'\n }) : this.userToken;\n }\n return this._getOrCreateToken;\n }\n }, {\n key: \"user\",\n value: function user(userId) {\n return new _user.StreamUser(this, userId, this.getOrCreateToken());\n }\n }, {\n key: \"setUser\",\n value: function () {\n var _setUser = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {\n var body, user;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this.usingApiSecret) {\n _context2.next = 2;\n break;\n }\n throw new _errors.SiteError('This method can only be used client-side using a user token');\n case 2:\n body = _objectSpread({}, data);\n delete body.id;\n _context2.next = 6;\n return this.currentUser.getOrCreate(body);\n case 6:\n user = _context2.sent;\n this.currentUser = user;\n return _context2.abrupt(\"return\", user);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n function setUser(_x3) {\n return _setUser.apply(this, arguments);\n }\n return setUser;\n }()\n }, {\n key: \"og\",\n value: function og(url) {\n return this.get({\n url: 'og/',\n qs: {\n url: url\n },\n token: this.getOrCreateToken()\n });\n }\n }, {\n key: \"personalizedFeed\",\n value: function personalizedFeed() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return this.get({\n url: 'enrich/personalization/feed/',\n qs: options,\n token: this.getOrCreateToken()\n });\n }\n /**\n * Update a single activity with partial operations.\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js&q=partial+#activity-partial-update\n * @param {ActivityPartialChanges} data object containing either the ID or the foreign_id and time of the activity and the operations to issue as set:{...} and unset:[...].\n * @return {Promise>}\n * @example\n * client.activityPartialUpdate({\n * id: \"54a60c1e-4ee3-494b-a1e3-50c06acb5ed4\",\n * set: {\n * \"product.price\": 19.99,\n * \"shares\": {\n * \"facebook\": \"...\",\n * \"twitter\": \"...\",\n * }\n * },\n * unset: [\n * \"daily_likes\",\n * \"popularity\"\n * ]\n * })\n * @example\n * client.activityPartialUpdate({\n * foreign_id: \"product:123\",\n * time: \"2016-11-10T13:20:00.000000\",\n * set: {\n * ...\n * },\n * unset: [\n * ...\n * ]\n * })\n */\n }, {\n key: \"activityPartialUpdate\",\n value: function () {\n var _activityPartialUpdate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data) {\n var _yield$this$activitie, activities, response, _activities, activity;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.activitiesPartialUpdate([data]);\n case 2:\n _yield$this$activitie = _context3.sent;\n activities = _yield$this$activitie.activities;\n response = (0, _objectWithoutProperties2.default)(_yield$this$activitie, [\"activities\"]);\n _activities = (0, _slicedToArray2.default)(activities, 1), activity = _activities[0];\n return _context3.abrupt(\"return\", _objectSpread(_objectSpread({}, activity), response));\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function activityPartialUpdate(_x4) {\n return _activityPartialUpdate.apply(this, arguments);\n }\n return activityPartialUpdate;\n }()\n /**\n * Update multiple activities with partial operations.\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js&q=partial+#activity-partial-update\n * @param {ActivityPartialChanges[]} changes array containing the changesets to be applied. Every changeset contains the activity identifier which is either the ID or the pair of of foreign ID and time of the activity. The operations to issue can be set:{...} and unset:[...].\n * @return {Promise<{ activities: Activity[] }>}\n * @example\n * client.activitiesPartialUpdate([\n * {\n * id: \"4b39fda2-d6e2-42c9-9abf-5301ef071b12\",\n * set: {\n * \"product.price.eur\": 12.99,\n * \"colors\": {\n * \"blue\": \"#0000ff\",\n * \"green\": \"#00ff00\",\n * },\n * },\n * unset: [ \"popularity\", \"size.x2\" ],\n * },\n * {\n * id: \"8d2dcad8-1e34-11e9-8b10-9cb6d0925edd\",\n * set: {\n * \"product.price.eur\": 17.99,\n * \"colors\": {\n * \"red\": \"#ff0000\",\n * \"green\": \"#00ff00\",\n * },\n * },\n * unset: [ \"rating\" ],\n * },\n * ])\n * @example\n * client.activitiesPartialUpdate([\n * {\n * foreign_id: \"product:123\",\n * time: \"2016-11-10T13:20:00.000000\",\n * set: {\n * ...\n * },\n * unset: [\n * ...\n * ]\n * },\n * {\n * foreign_id: \"product:321\",\n * time: \"2016-11-10T13:20:00.000000\",\n * set: {\n * ...\n * },\n * unset: [\n * ...\n * ]\n * },\n * ])\n */\n }, {\n key: \"activitiesPartialUpdate\",\n value: function activitiesPartialUpdate(changes) {\n if (!(changes instanceof Array)) {\n throw new TypeError('changes should be an Array');\n }\n changes.forEach(function (item) {\n if (!(item instanceof Object)) {\n throw new TypeError(\"changeset should be and Object\");\n }\n if (item.foreignID) {\n item.foreign_id = item.foreignID;\n }\n if (item.id === undefined && (item.foreign_id === undefined || item.time === undefined)) {\n throw new TypeError('missing id or foreign_id and time');\n }\n if (item.set && !(item.set instanceof Object)) {\n throw new TypeError('set field should be an Object');\n }\n if (item.unset && !(item.unset instanceof Array)) {\n throw new TypeError('unset field should be an Array');\n }\n });\n var token = this.userToken;\n if (this.usingApiSecret) {\n token = (0, _signing.JWTScopeToken)(this.apiSecret, 'activities', '*', {\n feedId: '*',\n expireTokens: this.expireTokens\n });\n }\n return this.post({\n url: 'activity/',\n body: {\n changes: changes\n },\n token: token\n });\n }\n }]);\n return StreamClient;\n}();\nexports.StreamClient = StreamClient;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Collections = exports.CollectionEntry = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _errors = require(\"./errors\");\nvar CollectionEntry = /*#__PURE__*/function () {\n // eslint-disable-line no-use-before-define\n function CollectionEntry(\n // eslint-disable-next-line no-use-before-define\n store, collection, id, data) {\n (0, _classCallCheck2.default)(this, CollectionEntry);\n (0, _defineProperty2.default)(this, \"id\", void 0);\n (0, _defineProperty2.default)(this, \"collection\", void 0);\n (0, _defineProperty2.default)(this, \"store\", void 0);\n (0, _defineProperty2.default)(this, \"data\", void 0);\n (0, _defineProperty2.default)(this, \"full\", void 0);\n this.collection = collection;\n this.store = store;\n this.id = id;\n this.data = data;\n }\n (0, _createClass2.default)(CollectionEntry, [{\n key: \"ref\",\n value: function ref() {\n return \"SO:\".concat(this.collection, \":\").concat(this.id);\n }\n /**\n * get item from collection and sync data\n * @method get\n * @memberof CollectionEntry.prototype\n * @return {Promise>}\n * @example collection.get(\"0c7db91c-67f9-11e8-bcd9-fe00a9219401\")\n */\n }, {\n key: \"get\",\n value: function () {\n var _get = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var response;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.store.get(this.collection, this.id);\n case 2:\n response = _context.sent;\n this.data = response.data;\n this.full = response;\n return _context.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n function get() {\n return _get.apply(this, arguments);\n }\n return get;\n }()\n /**\n * Add item to collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#adding-collections\n * @method add\n * @memberof CollectionEntry.prototype\n * @return {Promise>}\n * @example collection.add(\"cheese101\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n */\n }, {\n key: \"add\",\n value: function () {\n var _add = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var response;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.store.add(this.collection, this.id, this.data);\n case 2:\n response = _context2.sent;\n this.data = response.data;\n this.full = response;\n return _context2.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n function add() {\n return _add.apply(this, arguments);\n }\n return add;\n }()\n /**\n * Update item in the object storage\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#updating-collections\n * @method update\n * @memberof CollectionEntry.prototype\n * @return {Promise>}\n * @example store.update(\"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n * @example store.update(\"cheese101\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n */\n }, {\n key: \"update\",\n value: function () {\n var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var response;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.store.update(this.collection, this.id, this.data);\n case 2:\n response = _context3.sent;\n this.data = response.data;\n this.full = response;\n return _context3.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function update() {\n return _update.apply(this, arguments);\n }\n return update;\n }()\n /**\n * Delete item from collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#removing-collections\n * @method delete\n * @memberof CollectionEntry.prototype\n * @return {Promise}\n * @example collection.delete(\"cheese101\")\n */\n }, {\n key: \"delete\",\n value: function () {\n var _delete2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var response;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.store.delete(this.collection, this.id);\n case 2:\n response = _context4.sent;\n this.data = null;\n this.full = null;\n return _context4.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n function _delete() {\n return _delete2.apply(this, arguments);\n }\n return _delete;\n }()\n }]);\n return CollectionEntry;\n}();\nexports.CollectionEntry = CollectionEntry;\nvar Collections = /*#__PURE__*/function () {\n /**\n * Initialize a feed object\n * @method constructor\n * @memberof Collections.prototype\n * @param {StreamCloudClient} client Stream client this collection is constructed from\n * @param {string} token JWT token\n */\n function Collections(client, token) {\n (0, _classCallCheck2.default)(this, Collections);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n (0, _defineProperty2.default)(this, \"buildURL\", function (collection, itemId) {\n var url = \"collections/\".concat(collection, \"/\");\n return itemId === undefined ? url : \"\".concat(url).concat(itemId, \"/\");\n });\n this.client = client;\n this.token = token;\n }\n (0, _createClass2.default)(Collections, [{\n key: \"entry\",\n value: function entry(collection, itemId, itemData) {\n return new CollectionEntry(this, collection, itemId, itemData);\n }\n /**\n * get item from collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#retrieving-collections\n * @method get\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string} itemId id for this entry\n * @return {Promise>}\n * @example collection.get(\"food\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\")\n */\n }, {\n key: \"get\",\n value: function () {\n var _get2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(collection, itemId) {\n var response, entry;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.client.get({\n url: this.buildURL(collection, itemId),\n token: this.token\n });\n case 2:\n response = _context5.sent;\n entry = this.entry(response.collection, response.id, response.data);\n entry.full = response;\n return _context5.abrupt(\"return\", entry);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n function get(_x, _x2) {\n return _get2.apply(this, arguments);\n }\n return get;\n }()\n /**\n * Add item to collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#adding-collections\n * @method add\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string | null} itemId entry id, if null a random id will be assigned to the item\n * @param {CollectionType} itemData ObjectStore data\n * @return {Promise>}\n * @example collection.add(\"food\", \"cheese101\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n */\n }, {\n key: \"add\",\n value: function () {\n var _add2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(collection, itemId, itemData) {\n var response, entry;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this.client.post({\n url: this.buildURL(collection),\n body: {\n id: itemId === null ? undefined : itemId,\n data: itemData\n },\n token: this.token\n });\n case 2:\n response = _context6.sent;\n entry = this.entry(response.collection, response.id, response.data);\n entry.full = response;\n return _context6.abrupt(\"return\", entry);\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n function add(_x3, _x4, _x5) {\n return _add2.apply(this, arguments);\n }\n return add;\n }()\n /**\n * Update entry in the collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#updating-collections\n * @method update\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string} entryId Collection object id\n * @param {CollectionType} data ObjectStore data\n * @return {Promise>}\n * @example store.update(\"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n * @example store.update(\"food\", \"cheese101\", {\"name\": \"cheese burger\",\"toppings\": \"cheese\"})\n */\n }, {\n key: \"update\",\n value: function () {\n var _update2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(collection, entryId, data) {\n var response, entry;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return this.client.put({\n url: this.buildURL(collection, entryId),\n body: {\n data: data\n },\n token: this.token\n });\n case 2:\n response = _context7.sent;\n entry = this.entry(response.collection, response.id, response.data);\n entry.full = response;\n return _context7.abrupt(\"return\", entry);\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n function update(_x6, _x7, _x8) {\n return _update2.apply(this, arguments);\n }\n return update;\n }()\n /**\n * Delete entry from collection\n * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#removing-collections\n * @method delete\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string} entryId Collection entry id\n * @return {Promise} Promise object\n * @example collection.delete(\"food\", \"cheese101\")\n */\n }, {\n key: \"delete\",\n value: function _delete(collection, entryId) {\n return this.client.delete({\n url: this.buildURL(collection, entryId),\n token: this.token\n });\n }\n /**\n * Upsert one or more items within a collection.\n * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#upsert\n * @method upsert\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {NewCollectionEntry | NewCollectionEntry[]} data - A single json object or an array of objects\n * @return {Promise>}\n */\n }, {\n key: \"upsert\",\n value: function upsert(collection, data) {\n if (!this.client.usingApiSecret) {\n throw new _errors.SiteError('This method can only be used server-side using your API Secret');\n }\n if (!Array.isArray(data)) data = [data];\n return this.client.post({\n url: 'collections/',\n serviceName: 'api',\n body: {\n data: (0, _defineProperty2.default)({}, collection, data)\n },\n token: this.client.getCollectionsToken()\n });\n }\n /**\n * Select all objects with ids from the collection.\n * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#select\n * @method select\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string | string[]} ids - A single object id or an array of ids\n * @return {Promise>}\n */\n }, {\n key: \"select\",\n value: function select(collection, ids) {\n if (!this.client.usingApiSecret) {\n throw new _errors.SiteError('This method can only be used server-side using your API Secret');\n }\n if (!Array.isArray(ids)) ids = [ids];\n return this.client.get({\n url: 'collections/',\n serviceName: 'api',\n qs: {\n foreign_ids: ids.map(function (id) {\n return \"\".concat(collection, \":\").concat(id);\n }).join(',')\n },\n token: this.client.getCollectionsToken()\n });\n }\n /**\n * Remove all objects by id from the collection.\n * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#delete_many\n * @method delete\n * @memberof Collections.prototype\n * @param {string} collection collection name\n * @param {string | string[]} ids - A single object id or an array of ids\n * @return {Promise}\n */\n }, {\n key: \"deleteMany\",\n value: function deleteMany(collection, ids) {\n if (!this.client.usingApiSecret) {\n throw new _errors.SiteError('This method can only be used server-side using your API Secret');\n }\n if (!Array.isArray(ids)) ids = [ids];\n var params = {\n collection_name: collection,\n ids: ids.map(function (id) {\n return id.toString();\n }).join(',')\n };\n return this.client.delete({\n url: 'collections/',\n serviceName: 'api',\n qs: params,\n token: this.client.getCollectionsToken()\n });\n }\n }]);\n return Collections;\n}();\nexports.Collections = Collections;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.connect = connect;\nvar _client = require(\"./client\");\n\n/**\n * Create StreamClient\n * @link https://getstream.io/activity-feeds/docs/node/feeds_getting_started/?language=js#setup\n * @method connect\n * @param {string} apiKey API key\n * @param {string} [apiSecret] API secret (only use this on the server)\n * @param {string} [appId] Application identifier\n * @param {ClientOptions} [options] - additional options\n * @param {string} [options.location] - which data center to use\n * @param {boolean} [options.expireTokens=false] - whether to use a JWT timestamp field (i.e. iat)\n * @param {string} [options.version] - advanced usage, custom api version\n * @param {boolean} [options.keepAlive] - axios keepAlive, default to true\n * @param {number} [options.timeout] - axios timeout in Ms, default to 10s\n * @return {StreamClient} StreamClient\n * @example Basic usage\n * stream.connect(apiKey, apiSecret);\n * @example or if you want to be able to subscribe and listen\n * stream.connect(apiKey, apiSecret, appId);\n * @example or on Heroku\n * stream.connect(streamURL);\n * @example where streamURL looks like\n * \"https://thierry:pass@gestream.io/?app=1\"\n */\nfunction connect(apiKey, apiSecret, appId, options) {\n var _process$env;\n if (typeof process !== 'undefined' && (_process$env = process.env) !== null && _process$env !== void 0 && _process$env.STREAM_URL && !apiKey) {\n var parts = /https:\\/\\/(\\w+):(\\w+)@([\\w-]*).*\\?app_id=(\\d+)/.exec(process.env.STREAM_URL) || [];\n apiKey = parts[1];\n apiSecret = parts[2];\n var location = parts[3];\n appId = parts[4];\n if (options === undefined) {\n options = {};\n }\n if (location !== 'getstream' && location !== 'stream-io-api') {\n options.location = location;\n }\n }\n return new _client.StreamClient(apiKey, apiSecret, appId, options);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamApiError = exports.MissingSchemaError = exports.SiteError = exports.FeedError = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = (0, _getPrototypeOf2.default)(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = (0, _getPrototypeOf2.default)(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return (0, _possibleConstructorReturn2.default)(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nvar canCapture = typeof Error.captureStackTrace === 'function';\nvar canStack = !!new Error().stack;\n/**\n * Abstract error object\n * @class ErrorAbstract\n * @access private\n * @param {string} [msg] Error message\n */\n\nvar ErrorAbstract = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(ErrorAbstract, _Error);\n var _super = _createSuper(ErrorAbstract);\n function ErrorAbstract(msg) {\n var _this;\n (0, _classCallCheck2.default)(this, ErrorAbstract);\n _this = _super.call(this, msg);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"message\", void 0);\n _this.message = msg;\n if (canCapture) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), ErrorAbstract.constructor);\n } else if (canStack) {\n _this.stack = new Error().stack;\n } else {\n _this.stack = '';\n }\n return _this;\n }\n return ErrorAbstract;\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * FeedError\n * @class FeedError\n * @access private\n * @extends ErrorAbstract\n * @memberof Stream.errors\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nvar FeedError = /*#__PURE__*/function (_ErrorAbstract) {\n (0, _inherits2.default)(FeedError, _ErrorAbstract);\n var _super2 = _createSuper(FeedError);\n function FeedError() {\n (0, _classCallCheck2.default)(this, FeedError);\n return _super2.apply(this, arguments);\n }\n return FeedError;\n}(ErrorAbstract);\n/**\n * SiteError\n * @class SiteError\n * @access private\n * @extends ErrorAbstract\n * @memberof Stream.errors\n * @param {string} [msg] An error message that will probably end up in a log.\n */\n\nexports.FeedError = FeedError;\nvar SiteError = /*#__PURE__*/function (_ErrorAbstract2) {\n (0, _inherits2.default)(SiteError, _ErrorAbstract2);\n var _super3 = _createSuper(SiteError);\n function SiteError() {\n (0, _classCallCheck2.default)(this, SiteError);\n return _super3.apply(this, arguments);\n }\n return SiteError;\n}(ErrorAbstract);\n/**\n * MissingSchemaError\n * @method MissingSchemaError\n * @access private\n * @extends ErrorAbstract\n * @memberof Stream.errors\n * @param {string} msg\n */\n\nexports.SiteError = SiteError;\nvar MissingSchemaError = /*#__PURE__*/function (_ErrorAbstract3) {\n (0, _inherits2.default)(MissingSchemaError, _ErrorAbstract3);\n var _super4 = _createSuper(MissingSchemaError);\n function MissingSchemaError() {\n (0, _classCallCheck2.default)(this, MissingSchemaError);\n return _super4.apply(this, arguments);\n }\n return MissingSchemaError;\n}(ErrorAbstract);\n/**\n * StreamApiError\n * @method StreamApiError\n * @access private\n * @extends ErrorAbstract\n * @memberof Stream.errors\n * @param {string} msg\n * @param {object} data\n * @param {object} response\n */\n\nexports.MissingSchemaError = MissingSchemaError;\nvar StreamApiError = /*#__PURE__*/function (_ErrorAbstract4) {\n (0, _inherits2.default)(StreamApiError, _ErrorAbstract4);\n var _super5 = _createSuper(StreamApiError);\n function StreamApiError(msg, data, response) {\n var _this2;\n (0, _classCallCheck2.default)(this, StreamApiError);\n _this2 = _super5.call(this, msg);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"response\", void 0);\n _this2.error = data;\n _this2.response = response;\n return _this2;\n }\n return StreamApiError;\n}(ErrorAbstract);\nexports.StreamApiError = StreamApiError;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamFeed = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _user = require(\"./user\");\nvar _errors = require(\"./errors\");\nvar _utils = _interopRequireDefault(require(\"./utils\"));\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n (0, _defineProperty2.default)(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n\n/**\n * Manage api calls for specific feeds\n * The feed object contains convenience functions such add activity, remove activity etc\n * @class StreamFeed\n */\nvar StreamFeed = /*#__PURE__*/function () {\n /**\n * Initialize a feed object\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js\n * @method constructor\n * @memberof StreamFeed.prototype\n * @param {StreamClient} client - The stream client this feed is constructed from\n * @param {string} feedSlug - The feed slug\n * @param {string} userId - The user id\n * @param {string} [token] - The authentication token\n */\n function StreamFeed(client, feedSlug, userId, token) {\n (0, _classCallCheck2.default)(this, StreamFeed);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n (0, _defineProperty2.default)(this, \"id\", void 0);\n (0, _defineProperty2.default)(this, \"slug\", void 0);\n (0, _defineProperty2.default)(this, \"userId\", void 0);\n (0, _defineProperty2.default)(this, \"feedUrl\", void 0);\n (0, _defineProperty2.default)(this, \"feedTogether\", void 0);\n (0, _defineProperty2.default)(this, \"notificationChannel\", void 0);\n if (!feedSlug || !userId) {\n throw new _errors.FeedError('Please provide a feed slug and user id, ie client.feed(\"user\", \"1\")');\n }\n if (feedSlug.indexOf(':') !== -1) {\n throw new _errors.FeedError('Please initialize the feed using client.feed(\"user\", \"1\") not client.feed(\"user:1\")');\n }\n _utils.default.validateFeedSlug(feedSlug);\n _utils.default.validateUserId(userId); // raise an error if there is no token\n\n if (!token) {\n throw new _errors.FeedError('Missing token, in client side mode please provide a feed secret');\n }\n this.client = client;\n this.slug = feedSlug;\n this.userId = userId;\n this.id = \"\".concat(this.slug, \":\").concat(this.userId);\n this.token = token;\n this.feedUrl = this.id.replace(':', '/');\n this.feedTogether = this.id.replace(':', ''); // faye setup\n\n this.notificationChannel = \"site-\".concat(this.client.appId, \"-feed-\").concat(this.feedTogether);\n }\n /**\n * Adds the given activity to the feed\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#adding-activities-basic\n * @method addActivity\n * @memberof StreamFeed.prototype\n * @param {NewActivity} activity - The activity to add\n * @return {Promise>}\n */\n\n (0, _createClass2.default)(StreamFeed, [{\n key: \"addActivity\",\n value: function addActivity(activity) {\n activity = _utils.default.replaceStreamObjects(activity);\n if (!activity.actor && this.client.currentUser) {\n activity.actor = this.client.currentUser.ref();\n }\n return this.client.post({\n url: \"feed/\".concat(this.feedUrl, \"/\"),\n body: activity,\n token: this.token\n });\n }\n /**\n * Removes the activity by activityId or foreignId\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#removing-activities\n * @method removeActivity\n * @memberof StreamFeed.prototype\n * @param {string} activityOrActivityId Identifier of activity to remove\n * @return {Promise}\n * @example feed.removeActivity(activityId);\n * @example feed.removeActivity({'foreign_id': foreignId});\n */\n }, {\n key: \"removeActivity\",\n value: function removeActivity(activityOrActivityId) {\n var foreign_id = activityOrActivityId.foreignId || activityOrActivityId.foreign_id;\n return this.client.delete({\n url: \"feed/\".concat(this.feedUrl, \"/\").concat(foreign_id || activityOrActivityId, \"/\"),\n qs: foreign_id ? {\n foreign_id: '1'\n } : {},\n token: this.token\n });\n }\n /**\n * Adds the given activities to the feed\n * @link https://getstream.io/activity-feeds/docs/node/add_many_activities/?language=js#batch-add-activities\n * @method addActivities\n * @memberof StreamFeed.prototype\n * @param {NewActivity[]} activities Array of activities to add\n * @return {Promise[]>}\n */\n }, {\n key: \"addActivities\",\n value: function addActivities(activities) {\n return this.client.post({\n url: \"feed/\".concat(this.feedUrl, \"/\"),\n body: {\n activities: _utils.default.replaceStreamObjects(activities)\n },\n token: this.token\n });\n }\n /**\n * Follows the given target feed\n * @link https://getstream.io/activity-feeds/docs/node/following/?language=js\n * @method follow\n * @memberof StreamFeed.prototype\n * @param {string} targetSlug Slug of the target feed\n * @param {string} targetUserId User identifier of the target feed\n * @param {object} [options] Additional options\n * @param {number} [options.limit] Limit the amount of activities copied over on follow\n * @return {Promise}\n * @example feed.follow('user', '1');\n * @example feed.follow('user', '1');\n * @example feed.follow('user', '1', options);\n */\n }, {\n key: \"follow\",\n value: function follow(targetSlug, targetUserId) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (targetUserId instanceof _user.StreamUser) {\n targetUserId = targetUserId.id;\n }\n _utils.default.validateFeedSlug(targetSlug);\n _utils.default.validateUserId(targetUserId);\n var body = {\n target: \"\".concat(targetSlug, \":\").concat(targetUserId)\n };\n if (typeof options.limit === 'number') body.activity_copy_limit = options.limit;\n return this.client.post({\n url: \"feed/\".concat(this.feedUrl, \"/following/\"),\n body: body,\n token: this.token\n });\n }\n /**\n * Unfollow the given feed\n * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#unfollowing-feeds\n * @method unfollow\n * @memberof StreamFeed.prototype\n * @param {string} targetSlug Slug of the target feed\n * @param {string} targetUserId User identifier of the target feed\n * @param {object} [options]\n * @param {boolean} [options.keepHistory] when provided the activities from target\n * feed will not be kept in the feed\n * @return {Promise}\n * @example feed.unfollow('user', '2');\n */\n }, {\n key: \"unfollow\",\n value: function unfollow(targetSlug, targetUserId) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var qs = {};\n if (typeof options.keepHistory === 'boolean' && options.keepHistory) qs.keep_history = '1';\n _utils.default.validateFeedSlug(targetSlug);\n _utils.default.validateUserId(targetUserId);\n var targetFeedId = \"\".concat(targetSlug, \":\").concat(targetUserId);\n return this.client.delete({\n url: \"feed/\".concat(this.feedUrl, \"/following/\").concat(targetFeedId, \"/\"),\n qs: qs,\n token: this.token\n });\n }\n /**\n * List which feeds this feed is following\n * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-followed-feeds\n * @method following\n * @memberof StreamFeed.prototype\n * @param {GetFollowOptions} [options] Additional options\n * @param {string[]} options.filter array of feed id to filter on\n * @param {number} options.limit pagination\n * @param {number} options.offset pagination\n * @return {Promise}\n * @example feed.following({limit:10, filter: ['user:1', 'user:2']});\n */\n }, {\n key: \"following\",\n value: function following() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extraOptions = {};\n if (options.filter) extraOptions.filter = options.filter.join(',');\n return this.client.get({\n url: \"feed/\".concat(this.feedUrl, \"/following/\"),\n qs: _objectSpread(_objectSpread({}, options), extraOptions),\n token: this.token\n });\n }\n /**\n * List the followers of this feed\n * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-feed-followers\n * @method followers\n * @memberof StreamFeed.prototype\n * @param {GetFollowOptions} [options] Additional options\n * @param {string[]} options.filter array of feed id to filter on\n * @param {number} options.limit pagination\n * @param {number} options.offset pagination\n * @return {Promise}\n * @example feed.followers({limit:10, filter: ['user:1', 'user:2']});\n */\n }, {\n key: \"followers\",\n value: function followers() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extraOptions = {};\n if (options.filter) extraOptions.filter = options.filter.join(',');\n return this.client.get({\n url: \"feed/\".concat(this.feedUrl, \"/followers/\"),\n qs: _objectSpread(_objectSpread({}, options), extraOptions),\n token: this.token\n });\n }\n /**\n * Retrieve the number of follower and following feed stats of the current feed.\n * For each count, feed slugs can be provided to filter counts accordingly.\n * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-follow-stats\n * @method followStats\n * @param {object} [options]\n * @param {string[]} [options.followerSlugs] find counts only on these slugs\n * @param {string[]} [options.followingSlugs] find counts only on these slugs\n * @return {Promise}\n * @example feed.followStats();\n * @example feed.followStats({ followerSlugs:['user', 'news'], followingSlugs:['timeline'] });\n */\n }, {\n key: \"followStats\",\n value: function followStats() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var qs = {\n followers: this.id,\n following: this.id\n };\n if (options.followerSlugs && options.followerSlugs.length) qs.followers_slugs = options.followerSlugs.join(',');\n if (options.followingSlugs && options.followingSlugs.length) qs.following_slugs = options.followingSlugs.join(',');\n return this.client.get({\n url: 'stats/follow/',\n qs: qs,\n token: this.client.getOrCreateToken() || this.token\n });\n }\n /**\n * Reads the feed\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#retrieving-activities\n * @method get\n * @memberof StreamFeed.prototype\n * @param {GetFeedOptions} options Additional options\n * @return {Promise}\n * @example feed.get({limit: 10, id_lte: 'activity-id'})\n * @example feed.get({limit: 10, mark_seen: true})\n */\n }, {\n key: \"get\",\n value: function get() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extraOptions = {};\n if (options.mark_read && options.mark_read.join) {\n extraOptions.mark_read = options.mark_read.join(',');\n }\n if (options.mark_seen && options.mark_seen.join) {\n extraOptions.mark_seen = options.mark_seen.join(',');\n }\n this.client.replaceReactionOptions(options);\n var path = this.client.shouldUseEnrichEndpoint(options) ? 'enrich/feed/' : 'feed/';\n return this.client.get({\n url: \"\".concat(path).concat(this.feedUrl, \"/\"),\n qs: _objectSpread(_objectSpread({}, options), extraOptions),\n token: this.token\n });\n }\n /**\n * Retrieves one activity from a feed and adds enrichment\n * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#retrieving-activities\n * @method getActivityDetail\n * @memberof StreamFeed.prototype\n * @param {string} activityId Identifier of activity to retrieve\n * @param {EnrichOptions} options Additional options\n * @return {Promise}\n * @example feed.getActivityDetail(activityId)\n * @example feed.getActivityDetail(activityId, {withRecentReactions: true})\n * @example feed.getActivityDetail(activityId, {withReactionCounts: true})\n * @example feed.getActivityDetail(activityId, {withOwnReactions: true, withReactionCounts: true})\n */\n }, {\n key: \"getActivityDetail\",\n value: function getActivityDetail(activityId, options) {\n return this.get(_objectSpread({\n id_lte: activityId,\n id_gte: activityId,\n limit: 1\n }, options || {}));\n }\n /**\n * Returns the current faye client object\n * @method getFayeClient\n * @memberof StreamFeed.prototype\n * @access private\n * @return {Faye.Client} Faye client\n */\n }, {\n key: \"getFayeClient\",\n value: function getFayeClient() {\n return this.client.getFayeClient();\n }\n /**\n * Subscribes to any changes in the feed, return a promise\n * @link https://getstream.io/activity-feeds/docs/node/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client\n * @method subscribe\n * @memberof StreamFeed.prototype\n * @param {function} Faye.Callback> Callback to call on completion\n * @return {Promise}\n * @example\n * feed.subscribe(callback).then(function(){\n * \t\tconsole.log('we are now listening to changes');\n * });\n */\n }, {\n key: \"subscribe\",\n value: function subscribe(callback) {\n if (!this.client.appId) {\n throw new _errors.SiteError('Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);');\n }\n var subscription = this.getFayeClient().subscribe(\"/\".concat(this.notificationChannel), callback);\n this.client.subscriptions[\"/\".concat(this.notificationChannel)] = {\n token: this.token,\n userId: this.notificationChannel,\n fayeSubscription: subscription\n };\n return subscription;\n }\n /**\n * Cancel updates created via feed.subscribe()\n * @link https://getstream.io/activity-feeds/docs/node/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client\n * @return void\n */\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {\n var streamSubscription = this.client.subscriptions[\"/\".concat(this.notificationChannel)];\n if (streamSubscription) {\n delete this.client.subscriptions[\"/\".concat(this.notificationChannel)];\n streamSubscription.fayeSubscription.cancel();\n }\n }\n /**\n * Updates an activity's \"to\" fields\n * @link https://getstream.io/activity-feeds/docs/node/targeting/?language=js\n * @param {string} foreignId The foreign_id of the activity to update\n * @param {string} time The time of the activity to update\n * @param {string[]} newTargets Set the new \"to\" targets for the activity - will remove old targets\n * @param {string[]} addedTargets Add these new targets to the activity\n * @param {string[]} removedTargets Remove these targets from the activity\n */\n }, {\n key: \"updateActivityToTargets\",\n value: function updateActivityToTargets(foreignId, time, newTargets, addedTargets, removedTargets) {\n if (!foreignId) throw new Error('Missing `foreign_id` parameter!');\n if (!time) throw new Error('Missing `time` parameter!');\n if (!newTargets && !addedTargets && !removedTargets) {\n throw new Error('Requires you to provide at least one parameter for `newTargets`, `addedTargets`, or `removedTargets` - example: `updateActivityToTargets(\"foreignID:1234\", new Date(), [newTargets...], [addedTargets...], [removedTargets...])`');\n }\n if (newTargets) {\n if (addedTargets || removedTargets) {\n throw new Error(\"Can't include add_targets or removedTargets if you're also including newTargets\");\n }\n }\n if (addedTargets && removedTargets) {\n // brute force - iterate through added, check to see if removed contains that element\n addedTargets.forEach(function (addedTarget) {\n if (removedTargets.includes(addedTarget)) {\n throw new Error(\"Can't have the same feed ID in addedTargets and removedTargets.\");\n }\n });\n }\n var body = {\n foreign_id: foreignId,\n time: time\n };\n if (newTargets) body.new_targets = newTargets;\n if (addedTargets) body.added_targets = addedTargets;\n if (removedTargets) body.removed_targets = removedTargets;\n return this.client.post({\n url: \"feed_targets/\".concat(this.feedUrl, \"/activity_to_targets/\"),\n token: this.token,\n body: body\n });\n }\n }]);\n return StreamFeed;\n}();\nexports.StreamFeed = StreamFeed;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamFileStore = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar StreamFileStore = /*#__PURE__*/function () {\n function StreamFileStore(client, token) {\n (0, _classCallCheck2.default)(this, StreamFileStore);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n this.client = client;\n this.token = token;\n } // React Native does not auto-detect MIME type, you need to pass that via contentType\n // param. If you don't then Android will refuse to perform the upload\n\n /**\n * upload a File instance or a readable stream of data\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#upload\n * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI\n * @param {string} [name] - file name\n * @param {string} [contentType] - mime-type\n * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress\n * @return {Promise}\n */\n\n (0, _createClass2.default)(StreamFileStore, [{\n key: \"upload\",\n value: function upload(uri, name, contentType, onUploadProgress) {\n return this.client.upload('files/', uri, name, contentType, onUploadProgress);\n }\n /**\n * delete an uploaded file\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#delete\n * @param {string} uri\n */\n }, {\n key: \"delete\",\n value: function _delete(uri) {\n return this.client.delete({\n url: \"files/\",\n qs: {\n url: uri\n },\n token: this.token\n });\n }\n }]);\n return StreamFileStore;\n}();\nexports.StreamFileStore = StreamFileStore;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamImageStore = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar StreamImageStore = /*#__PURE__*/function () {\n function StreamImageStore(client, token) {\n (0, _classCallCheck2.default)(this, StreamImageStore);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n this.client = client;\n this.token = token;\n } // React Native does not auto-detect MIME type, you need to pass that via contentType\n // param. If you don't then Android will refuse to perform the upload\n\n /**\n * upload an Image File instance or a readable stream of data\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#upload\n * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI\n * @param {string} [name] - file name\n * @param {string} [contentType] - mime-type\n * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress\n * @return {Promise}\n */\n\n (0, _createClass2.default)(StreamImageStore, [{\n key: \"upload\",\n value: function upload(uri, name, contentType, onUploadProgress) {\n return this.client.upload('images/', uri, name, contentType, onUploadProgress);\n }\n /**\n * delete an uploaded image\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#delete\n * @param {string} uri\n */\n }, {\n key: \"delete\",\n value: function _delete(uri) {\n return this.client.delete({\n url: \"images/\",\n qs: {\n url: uri\n },\n token: this.token\n });\n }\n /**\n * Generate a diffrent variant of the uploaded image\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#image_processing\n * @param {string} uri\n * @param {ImageProcessOptions} options\n */\n }, {\n key: \"process\",\n value: function process(uri, options) {\n var params = (0, _extends2.default)(options, {\n url: uri\n });\n if (Array.isArray(params.crop)) {\n params.crop = params.crop.join(',');\n }\n return this.client.get({\n url: \"images/\",\n qs: params,\n token: this.token\n });\n }\n /**\n * Generate a thumbnail for a given image\n * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#image_processing\n * @param {string} uri\n * @param {number|string} w\n * @param {number|string} h\n * @param {Object} [options]\n */\n }, {\n key: \"thumbnail\",\n value: function thumbnail(uri, w, h) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n crop: 'center',\n resize: 'clip'\n },\n crop = _ref.crop,\n resize = _ref.resize;\n return this.process(uri, {\n w: w,\n h: h,\n crop: crop,\n resize: resize\n });\n }\n }]);\n return StreamImageStore;\n}();\nexports.StreamImageStore = StreamImageStore;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _connect = require(\"./connect\");\nObject.keys(_connect).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _connect[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _connect[key];\n }\n });\n});\nvar _client = require(\"./client\");\nObject.keys(_client).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _client[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _client[key];\n }\n });\n});\nvar _collections = require(\"./collections\");\nObject.keys(_collections).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _collections[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _collections[key];\n }\n });\n});\nvar _feed = require(\"./feed\");\nObject.keys(_feed).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _feed[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _feed[key];\n }\n });\n});\nvar _files = require(\"./files\");\nObject.keys(_files).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _files[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _files[key];\n }\n });\n});\nvar _images = require(\"./images\");\nObject.keys(_images).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _images[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _images[key];\n }\n });\n});\nvar _personalization = require(\"./personalization\");\nObject.keys(_personalization).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _personalization[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _personalization[key];\n }\n });\n});\nvar _reaction = require(\"./reaction\");\nObject.keys(_reaction).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _reaction[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _reaction[key];\n }\n });\n});\nvar _user = require(\"./user\");\nObject.keys(_user).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _user[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _user[key];\n }\n });\n});\nvar _batch_operations = require(\"./batch_operations\");\nObject.keys(_batch_operations).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _batch_operations[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _batch_operations[key];\n }\n });\n});\nvar _errors = require(\"./errors\");\nObject.keys(_errors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _errors[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _errors[key];\n }\n });\n});\nvar _signing = require(\"./signing\");\nObject.keys(_signing).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _signing[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _signing[key];\n }\n });\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Personalization = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\n/**\n * Manage api calls for personalization\n * The collection object contains convenience functions such as get, post, delete\n * @class Personalization\n */\nvar Personalization = /*#__PURE__*/function () {\n /**\n * Initialize the Personalization class\n * @link https://getstream.io/activity-feeds/docs/node/personalization_introduction/?language=js\n * @method constructor\n * @memberof Personalization.prototype\n * @param {StreamClient} client - The stream client\n */\n function Personalization(client) {\n (0, _classCallCheck2.default)(this, Personalization);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n this.client = client;\n }\n /**\n * Get personalized activities for this feed\n *\n * @method get\n * @memberof Personalization.prototype\n * @param {string} resource - personalized resource endpoint i.e \"follow_recommendations\"\n * @param {object} options Additional options\n * @return {Promise>} Promise object. Personalized feed\n * @example client.personalization.get('follow_recommendations', {foo: 'bar', baz: 'qux'})\n */\n\n (0, _createClass2.default)(Personalization, [{\n key: \"get\",\n value: function get(resource) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.client.get({\n url: \"\".concat(resource, \"/\"),\n serviceName: 'personalization',\n qs: options,\n token: options.token || this.client.getPersonalizationToken()\n });\n }\n /**\n * Post data to personalization endpoint\n *\n * @method post\n * @memberof Personalization.prototype\n * @param {string} resource - personalized resource endpoint i.e \"follow_recommendations\"\n * @param {object} options - Additional options\n * @param {object} data - Data to send in the payload\n * @return {Promise>} Promise object. Data that was posted if successful, or an error.\n * @example client.personalization.post('follow_recommendations', {foo: 'bar', baz: 'qux'})\n */\n }, {\n key: \"post\",\n value: function post(resource) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.client.post({\n url: \"\".concat(resource, \"/\"),\n serviceName: 'personalization',\n qs: options,\n body: data,\n token: this.client.getPersonalizationToken()\n });\n }\n /**\n * Delete metadata or activities\n *\n * @method delete\n * @memberof Personalization.prototype\n * @param {object} resource - personalized resource endpoint i.e \"follow_recommendations\"\n * @param {object} options - Additional options\n * @return {Promise>} Promise object. Data that was deleted if successful, or an error.\n * @example client.personalization.delete('follow_recommendations', {foo: 'bar', baz: 'qux'})\n */\n }, {\n key: \"delete\",\n value: function _delete(resource) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.client.delete({\n url: \"\".concat(resource, \"/\"),\n serviceName: 'personalization',\n qs: options,\n token: this.client.getPersonalizationToken()\n });\n }\n }]);\n return Personalization;\n}();\nexports.Personalization = Personalization;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamReaction = void 0;\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _errors = require(\"./errors\");\nvar StreamReaction = /*#__PURE__*/function () {\n /**\n * Initialize a reaction object\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js\n * @method constructor\n * @memberof StreamReaction.prototype\n * @param {StreamClient} client Stream client this feed is constructed from\n * @param {string} token JWT token\n * @example new StreamReaction(client, \"eyJhbGciOiJIUzI1...\")\n */\n function StreamReaction(client, token) {\n (0, _classCallCheck2.default)(this, StreamReaction);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n (0, _defineProperty2.default)(this, \"buildURL\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return \"\".concat(['reaction'].concat(args).join('/'), \"/\");\n });\n (0, _defineProperty2.default)(this, \"_convertTargetFeeds\", function () {\n var targetFeeds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return targetFeeds.map(function (elem) {\n return typeof elem === 'string' ? elem : elem.id;\n });\n });\n this.client = client;\n this.token = token;\n }\n (0, _createClass2.default)(StreamReaction, [{\n key: \"add\",\n value:\n /**\n * add reaction\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#adding-reactions\n * @method add\n * @memberof StreamReaction.prototype\n * @param {string} kind kind of reaction\n * @param {string} activity Activity or an ActivityID\n * @param {ReactionType} data data related to reaction\n * @param {ReactionAddOptions} [options]\n * @param {string} [options.id] id associated with reaction\n * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction\n * @param {string} [options.userId] useful for adding reaction with server token\n * @param {object} [options.targetFeedsExtraData] extra data related to target feeds\n * @return {Promise>}\n * @example reactions.add(\"like\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\")\n * @example reactions.add(\"comment\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", {\"text\": \"love it!\"},)\n */\n function add(kind, activity, data) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n id = _ref.id,\n _ref$targetFeeds = _ref.targetFeeds,\n targetFeeds = _ref$targetFeeds === void 0 ? [] : _ref$targetFeeds,\n userId = _ref.userId,\n targetFeedsExtraData = _ref.targetFeedsExtraData;\n var body = {\n id: id,\n activity_id: activity instanceof Object ? activity.id : activity,\n kind: kind,\n data: data || {},\n target_feeds: this._convertTargetFeeds(targetFeeds),\n user_id: userId\n };\n if (targetFeedsExtraData != null) {\n body.target_feeds_extra_data = targetFeedsExtraData;\n }\n return this.client.post({\n url: this.buildURL(),\n body: body,\n token: this.token\n });\n }\n /**\n * add child reaction\n * @link https://getstream.io/activity-feeds/docs/node/reactions_add_child/?language=js\n * @method addChild\n * @memberof StreamReaction.prototype\n * @param {string} kind kind of reaction\n * @param {string} reaction Reaction or a ReactionID\n * @param {ChildReactionType} data data related to reaction\n * @param {ReactionAddChildOptions} [options]\n * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction\n * @param {string} [options.userId] useful for adding reaction with server token\n * @param {object} [options.targetFeedsExtraData] extra data related to target feeds\n * @return {Promise>}\n * @example reactions.add(\"like\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\")\n * @example reactions.add(\"comment\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", {\"text\": \"love it!\"},)\n */\n }, {\n key: \"addChild\",\n value: function addChild(kind, reaction, data) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$targetFeeds = _ref2.targetFeeds,\n targetFeeds = _ref2$targetFeeds === void 0 ? [] : _ref2$targetFeeds,\n userId = _ref2.userId,\n targetFeedsExtraData = _ref2.targetFeedsExtraData;\n var body = {\n parent: reaction instanceof Object ? reaction.id : reaction,\n kind: kind,\n data: data || {},\n target_feeds: this._convertTargetFeeds(targetFeeds),\n user_id: userId\n };\n if (targetFeedsExtraData != null) {\n body.target_feeds_extra_data = targetFeedsExtraData;\n }\n return this.client.post({\n url: this.buildURL(),\n body: body,\n token: this.token\n });\n }\n /**\n * get reaction\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#retrieving-reactions\n * @method get\n * @memberof StreamReaction.prototype\n * @param {string} id Reaction Id\n * @return {Promise>}\n * @example reactions.get(\"67b3e3b5-b201-4697-96ac-482eb14f88ec\")\n */\n }, {\n key: \"get\",\n value: function get(id) {\n return this.client.get({\n url: this.buildURL(id),\n token: this.token\n });\n }\n /**\n * retrieve reactions by activity_id, user_id or reaction_id (to paginate children reactions), pagination can be done using id_lt, id_lte, id_gt and id_gte parameters\n * id_lt and id_lte return reactions order by creation descending starting from the reaction with the ID provided, when id_lte is used\n * the reaction with ID equal to the value provided is included.\n * id_gt and id_gte return reactions order by creation ascending (oldest to newest) starting from the reaction with the ID provided, when id_gte is used\n * the reaction with ID equal to the value provided is included.\n * results are limited to 25 at most and are ordered newest to oldest by default.\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#retrieving-reactions\n * @method filter\n * @memberof StreamReaction.prototype\n * @param {ReactionFilterConditions} conditions Reaction Id {activity_id|user_id|reaction_id:string, kind:string, limit:integer}\n * @return {Promise>}\n * @example reactions.filter({activity_id: \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", kind:\"like\"})\n * @example reactions.filter({user_id: \"john\", kinds:\"like\"})\n */\n }, {\n key: \"filter\",\n value: function filter(conditions) {\n var userId = conditions.user_id,\n activityId = conditions.activity_id,\n reactionId = conditions.reaction_id,\n qs = (0, _objectWithoutProperties2.default)(conditions, [\"user_id\", \"activity_id\", \"reaction_id\"]);\n if (!qs.limit) {\n qs.limit = 10;\n }\n if ((userId ? 1 : 0) + (activityId ? 1 : 0) + (reactionId ? 1 : 0) !== 1) {\n throw new _errors.SiteError('Must provide exactly one value for one of these params: user_id, activity_id, reaction_id');\n }\n var lookupType = userId && 'user_id' || activityId && 'activity_id' || reactionId && 'reaction_id';\n var value = userId || activityId || reactionId;\n var url = conditions.kind ? this.buildURL(lookupType, value, conditions.kind) : this.buildURL(lookupType, value);\n return this.client.get({\n url: url,\n qs: qs,\n token: this.token\n });\n }\n /**\n * update reaction\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#updating-reactions\n * @method update\n * @memberof StreamReaction.prototype\n * @param {string} id Reaction Id\n * @param {ReactionType | ChildReactionType} data Data associated to reaction or childReaction\n * @param {ReactionUpdateOptions} [options]\n * @param {string[]} [options.targetFeeds] Optional feeds to post the activity to. If you sent this before and don't set it here it will be removed.\n * @param {object} [options.targetFeedsExtraData] extra data related to target feeds\n * @return {Promise>}\n * @example reactions.update(\"67b3e3b5-b201-4697-96ac-482eb14f88ec\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", \"like\")\n * @example reactions.update(\"67b3e3b5-b201-4697-96ac-482eb14f88ec\", \"0c7db91c-67f9-11e8-bcd9-fe00a9219401\", \"comment\", {\"text\": \"love it!\"},)\n */\n }, {\n key: \"update\",\n value: function update(id, data) {\n var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref3$targetFeeds = _ref3.targetFeeds,\n targetFeeds = _ref3$targetFeeds === void 0 ? [] : _ref3$targetFeeds,\n targetFeedsExtraData = _ref3.targetFeedsExtraData;\n var body = {\n data: data,\n target_feeds: this._convertTargetFeeds(targetFeeds)\n };\n if (targetFeedsExtraData != null) {\n body.target_feeds_extra_data = targetFeedsExtraData;\n }\n return this.client.put({\n url: this.buildURL(id),\n body: body,\n token: this.token\n });\n }\n /**\n * delete reaction\n * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#removing-reactions\n * @method delete\n * @memberof StreamReaction.prototype\n * @param {string} id Reaction Id\n * @return {Promise}\n * @example reactions.delete(\"67b3e3b5-b201-4697-96ac-482eb14f88ec\")\n */\n }, {\n key: \"delete\",\n value: function _delete(id) {\n return this.client.delete({\n url: this.buildURL(id),\n token: this.token\n });\n }\n }]);\n return StreamReaction;\n}();\nexports.StreamReaction = StreamReaction;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JWTScopeToken = JWTScopeToken;\nexports.JWTUserSessionToken = JWTUserSessionToken;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _jsonwebtoken = _interopRequireDefault(require(\"jsonwebtoken\"));\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n (0, _defineProperty2.default)(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n\n// for a claim in jwt\nfunction joinClaimValue(items) {\n var values = Array.isArray(items) ? items : [items];\n var claims = [];\n for (var i = 0; i < values.length; i += 1) {\n var s = values[i].trim();\n if (s === '*') return s;\n claims.push(s);\n }\n return claims.join(',');\n}\n/**\n * Creates the JWT token for feedId, resource and action using the apiSecret\n * @method JWTScopeToken\n * @memberof signing\n * @private\n * @param {string} apiSecret - API Secret key\n * @param {string | string[]} resource - JWT payload resource\n * @param {string | string[]} action - JWT payload action\n * @param {object} [options] - Optional additional options\n * @param {string | string[]} [options.feedId] - JWT payload feed identifier\n * @param {string} [options.userId] - JWT payload user identifier\n * @param {boolean} [options.expireTokens] - JWT noTimestamp\n * @return {string} JWT Token\n */\n\nfunction JWTScopeToken(apiSecret, resource, action) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var noTimestamp = options.expireTokens ? !options.expireTokens : true;\n var payload = {\n resource: joinClaimValue(resource),\n action: joinClaimValue(action)\n };\n if (options.feedId) payload.feed_id = joinClaimValue(options.feedId);\n if (options.userId) payload.user_id = options.userId;\n return _jsonwebtoken.default.sign(payload, apiSecret, {\n algorithm: 'HS256',\n noTimestamp: noTimestamp\n });\n}\n/**\n * Creates the JWT token that can be used for a UserSession\n * @method JWTUserSessionToken\n * @memberof signing\n * @private\n * @param {string} apiSecret - API Secret key\n * @param {string} userId - The user_id key in the JWT payload\n * @param {object} [extraData] - Extra that should be part of the JWT token\n * @param {object} [jwtOptions] - Options that can be past to jwt.sign\n * @return {string} JWT Token\n */\n\nfunction JWTUserSessionToken(apiSecret, userId) {\n var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var jwtOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (typeof userId !== 'string') {\n throw new TypeError('userId should be a string');\n }\n var payload = _objectSpread({\n user_id: userId\n }, extraData);\n var opts = _objectSpread({\n algorithm: 'HS256',\n noTimestamp: true\n }, jwtOptions);\n return _jsonwebtoken.default.sign(payload, apiSecret, opts);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StreamUser = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n (0, _defineProperty2.default)(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nvar StreamUser = /*#__PURE__*/function () {\n /**\n * Initialize a user session object\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js\n * @method constructor\n * @memberof StreamUser.prototype\n * @param {StreamClient} client Stream client this collection is constructed from\n * @param {string} userId The ID of the user\n * @param {string} userAuthToken JWT token\n * @example new StreamUser(client, \"123\", \"eyJhbGciOiJIUzI1...\")\n */\n function StreamUser(client, userId, userAuthToken) {\n (0, _classCallCheck2.default)(this, StreamUser);\n (0, _defineProperty2.default)(this, \"client\", void 0);\n (0, _defineProperty2.default)(this, \"token\", void 0);\n (0, _defineProperty2.default)(this, \"id\", void 0);\n (0, _defineProperty2.default)(this, \"data\", void 0);\n (0, _defineProperty2.default)(this, \"full\", void 0);\n (0, _defineProperty2.default)(this, \"url\", void 0);\n this.client = client;\n this.id = userId;\n this.data = undefined;\n this.full = undefined;\n this.token = userAuthToken;\n this.url = \"user/\".concat(this.id, \"/\");\n }\n /**\n * Create a stream user ref\n * @return {string}\n */\n\n (0, _createClass2.default)(StreamUser, [{\n key: \"ref\",\n value: function ref() {\n return \"SU:\".concat(this.id);\n }\n /**\n * Delete the user\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#removing-users\n * @return {Promise}\n */\n }, {\n key: \"delete\",\n value: function _delete() {\n return this.client.delete({\n url: this.url,\n token: this.token\n });\n }\n /**\n * Get the user data\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#retrieving-users\n * @param {boolean} [options.with_follow_counts]\n * @return {Promise}\n */\n }, {\n key: \"get\",\n value: function () {\n var _get = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {\n var response;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.client.get({\n url: this.url,\n token: this.token,\n qs: options\n });\n case 2:\n response = _context.sent;\n this.full = _objectSpread({}, response);\n delete this.full.duration;\n this.data = this.full.data;\n return _context.abrupt(\"return\", this);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n function get(_x) {\n return _get.apply(this, arguments);\n }\n return get;\n }()\n /**\n * Create a new user in stream\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#adding-users\n * @param {object} data user date stored in stream\n * @param {boolean} [options.get_or_create] if user already exists return it\n * @return {Promise}\n */\n }, {\n key: \"create\",\n value: function () {\n var _create = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data, options) {\n var response;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.client.post({\n url: 'user/',\n body: {\n id: this.id,\n data: data || this.data || {}\n },\n qs: options,\n token: this.token\n });\n case 2:\n response = _context2.sent;\n this.full = _objectSpread({}, response);\n delete this.full.duration;\n this.data = this.full.data;\n return _context2.abrupt(\"return\", this);\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n function create(_x2, _x3) {\n return _create.apply(this, arguments);\n }\n return create;\n }()\n /**\n * Update the user\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#updating-users\n * @param {object} data user date stored in stream\n * @return {Promise}\n */\n }, {\n key: \"update\",\n value: function () {\n var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data) {\n var response;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.client.put({\n url: this.url,\n body: {\n data: data || this.data || {}\n },\n token: this.token\n });\n case 2:\n response = _context3.sent;\n this.full = _objectSpread({}, response);\n delete this.full.duration;\n this.data = this.full.data;\n return _context3.abrupt(\"return\", this);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function update(_x4) {\n return _update.apply(this, arguments);\n }\n return update;\n }()\n /**\n * Get or Create a new user in stream\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#adding-users\n * @param {object} data user date stored in stream\n * @return {Promise}\n */\n }, {\n key: \"getOrCreate\",\n value: function getOrCreate(data) {\n return this.create(data, {\n get_or_create: true\n });\n }\n /**\n * Get the user profile, it includes the follow counts by default\n * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#retrieving-users\n * @return {Promise}\n */\n }, {\n key: \"profile\",\n value: function profile() {\n return this.get({\n with_follow_counts: true\n });\n }\n }]);\n return StreamUser;\n}();\nexports.StreamUser = StreamUser;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _formData = _interopRequireDefault(require(\"form-data\"));\nvar _errors = require(\"./errors\");\nvar validFeedSlugRe = /^[\\w]+$/;\nvar validUserIdRe = /^[\\w-]+$/;\n/*\n * Validate that the feedSlug matches \\w\n */\n\nfunction validateFeedSlug(feedSlug) {\n if (!validFeedSlugRe.test(feedSlug)) {\n throw new _errors.FeedError(\"Invalid feedSlug, please use letters, numbers or _: \".concat(feedSlug));\n }\n return feedSlug;\n}\n/*\n * Validate the userId matches \\w\n */\n\nfunction validateUserId(userId) {\n if (!validUserIdRe.test(userId)) {\n throw new _errors.FeedError(\"Invalid userId, please use letters, numbers, - or _: \".concat(userId));\n }\n return userId;\n}\nfunction rfc3986(str) {\n return str.replace(/[!'()*]/g, function (c) {\n return \"%\".concat(c.charCodeAt(0).toString(16).toUpperCase());\n });\n}\nfunction isReadableStream(obj) {\n return obj !== null && (0, _typeof2.default)(obj) === 'object' && (obj.readable || typeof obj._read === 'function');\n}\nfunction isBuffer(obj) {\n return obj != null && obj.constructor != null &&\n // @ts-expect-error\n typeof obj.constructor.isBuffer === 'function' &&\n // @ts-expect-error\n obj.constructor.isBuffer(obj);\n}\nfunction isFileWebAPI(uri) {\n return typeof window !== 'undefined' && 'File' in window && uri instanceof File;\n}\n/*\n * Validate that the feedId matches the spec user:1\n */\n\nfunction validateFeedId(feedId) {\n var parts = feedId.split(':');\n if (parts.length !== 2) {\n throw new _errors.FeedError(\"Invalid feedId, expected something like user:1 got \".concat(feedId));\n }\n var _parts = (0, _slicedToArray2.default)(parts, 2),\n feedSlug = _parts[0],\n userId = _parts[1];\n validateFeedSlug(feedSlug);\n validateUserId(userId);\n return feedId;\n}\nfunction addFileToFormData(uri, name, contentType) {\n var data = new _formData.default();\n if (isReadableStream(uri) || isBuffer(uri) || isFileWebAPI(uri)) {\n if (name) data.append('file', uri, name);else data.append('file', uri);\n } else {\n data.append('file', {\n uri: uri,\n name: name || uri.split('/').reverse()[0],\n type: contentType || undefined,\n contentType: contentType || undefined\n });\n }\n return data;\n} // TODO: refactor and add proper types\n\nfunction replaceStreamObjects(obj) {\n // @ts-expect-error\n if (Array.isArray(obj)) return obj.map(function (v) {\n return replaceStreamObjects(v);\n }); // @ts-expect-error\n\n if (Object.prototype.toString.call(obj) !== '[object Object]') return obj; // @ts-expect-error\n\n if (typeof obj.ref === 'function') return obj.ref();\n var cloned = {};\n Object.keys(obj).forEach(function (k) {\n // @ts-expect-error\n cloned[k] = replaceStreamObjects(obj[k]);\n }); // @ts-expect-error\n\n return cloned;\n}\nvar _default = {\n validateFeedId: validateFeedId,\n validateFeedSlug: validateFeedSlug,\n validateUserId: validateUserId,\n rfc3986: rfc3986,\n isReadableStream: isReadableStream,\n addFileToFormData: addFileToFormData,\n replaceStreamObjects: replaceStreamObjects\n};\nexports.default = _default;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n var transitional = config.transitional;\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n return promise;\n }\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n return promise;\n};\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest);\n\n // Flatten headers\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n return Promise.reject(reason);\n });\n};","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n return (encoder || JSON.stringify)(rawValue);\n}\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n return data;\n }],\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n return url;\n};","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ?\n// Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() :\n// Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ?\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() :\n// Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n if (!headers) {\n return parsed;\n }\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar pkg = require('./../../package.json');\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge( /* obj1, obj2, obj3, ... */\n) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","function e(e) {\n this.message = e;\n}\ne.prototype = new Error(), e.prototype.name = \"InvalidCharacterError\";\nvar r = \"undefined\" != typeof window && window.atob && window.atob.bind(window) || function (r) {\n var t = String(r).replace(/=+$/, \"\");\n if (t.length % 4 == 1) throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n for (var n, o, a = 0, i = 0, c = \"\"; o = t.charAt(i++); ~o && (n = a % 4 ? 64 * n + o : o, a++ % 4) ? c += String.fromCharCode(255 & n >> (-2 * a & 6)) : 0) o = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);\n return c;\n};\nfunction t(e) {\n var t = e.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (t.length % 4) {\n case 0:\n break;\n case 2:\n t += \"==\";\n break;\n case 3:\n t += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n try {\n return function (e) {\n return decodeURIComponent(r(e).replace(/(.)/g, function (e, r) {\n var t = r.charCodeAt(0).toString(16).toUpperCase();\n return t.length < 2 && (t = \"0\" + t), \"%\" + t;\n }));\n }(t);\n } catch (e) {\n return r(t);\n }\n}\nfunction n(e) {\n this.message = e;\n}\nfunction o(e, r) {\n if (\"string\" != typeof e) throw new n(\"Invalid token specified\");\n var o = !0 === (r = r || {}).header ? 0 : 1;\n try {\n return JSON.parse(t(e.split(\".\")[o]));\n } catch (e) {\n throw new n(\"Invalid token specified: \" + e.message);\n }\n}\nn.prototype = new Error(), n.prototype.name = \"InvalidTokenError\";\nexport default o;\nexport { n as InvalidTokenError };","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n"],"names":["rawAsap","freeTasks","pendingErrors","requestErrorThrow","makeRequestCallFromTimer","length","shift","asap","task","rawTask","pop","RawTask","this","module","exports","prototype","call","error","onerror","push","queue","requestFlush","index","flush","currentIndex","scan","newLength","toggle","observer","node","scope","g","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","callback","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","document","createTextNode","observe","characterData","data","constants","Logging","Faye","VERSION","Client","Scheduler","wrapper","Promise","then","errback","_promise","resolve","reject","_resolve","_reject","arguments","context","value","reason","timeout","seconds","message","_timer","setDeferredStatus","status","toJSON","LOG_LEVELS","fatal","warn","info","debug","writeLog","messageArgs","level","logger","args","Array","slice","apply","banner","klass","className","replace","key","Publisher","countListeners","eventType","listeners","bind","listener","handler","_listeners","on","unbind","tuple","n","splice","removeListener","assign","trigger","emit","addTimeout","name","delay","_timeouts","hasOwnProperty","removeTimeout","removeAllTimeouts","Class","Grammar","Channel","initialize","id","isUnused","HANDSHAKE","CONNECT","SUBSCRIBE","UNSUBSCRIBE","DISCONNECT","META","SERVICE","expand","segments","parse","channels","copy","unparse","i","isValid","CHANNEL_NAME","test","CHANNEL_PATTERN","split","join","isMeta","isService","isSubscribable","Set","_channels","getKeys","keys","remove","hasSubscription","subscribe","names","subscription","unsubscribe","channel","distributeMessage","array","browser","validateOptions","Deferrable","Dispatcher","Error","Extensible","Publication","Subscription","UNCONNECTED","CONNECTING","CONNECTED","DISCONNECTED","RETRY","NONE","CONNECTION_TIMEOUT","DEFAULT_ENDPOINT","INTERVAL","endpoint","options","_dispatcher","create","_messageId","_state","_responseCallbacks","_advice","reconnect","interval","_receiveMessage","Event","undefined","onbeforeunload","indexOf","_disabled","disconnect","addWebsocketExtension","extension","disable","feature","setHeader","handshake","href","selectTransport","MANDATORY_CONNECTION_TYPES","_sendMessage","version","BAYEUX_VERSION","supportedConnectionTypes","getConnectionTypes","response","successful","clientId","retry","connect","_connectRequest","connectionType","_cycleConnection","promise","close","map","c","force","concat","publish","publication","_generateMessageId","pipeThroughExtensions","sendMessage","Math","pow","toString","advice","_handleAdvice","_deliverMessage","URI","cookies","Transport","MAX_REQUEST_SIZE","DEFAULT_RETRY","UP","DOWN","client","_client","_alternates","endpoints","CookieJar","_envelopes","headers","_scheduler","scheduler","transports","wsExtensions","proxy","_proxy","origin","exts","websocketExtensions","type","tls","ca","maxRequestSize","endpointFor","transport","_transport","transportTypes","get","attempts","deadline","Date","getTime","envelope","_sendEnvelope","request","timer","isDeliverable","abort","handleError","getTimeout","send","handleResponse","reply","succeed","immediate","req","fail","getInterval","code","params","ERROR","parts","parseInt","errors","versionMismatch","conntypeMismatch","extMismatch","badRequest","clientUnknown","parameterMissing","channelForbidden","channelUnknown","channelInvalid","extUnknown","publishFailed","serverError","addExtension","_extensions","added","removeExtension","removed","stage","extensions","pipe","fn","made","now","_callback","_context","_cancelled","withChannel","_withChannel","cancel","register","CORS","encode","messages","encodeURIComponent","xhrClass","XDomainRequest","XMLHttpRequest","xhr","_id","open","withCredentials","setRequestHeader","cleanUp","_pending","onload","ontimeout","onprogress","replies","JSON","responseText","_receive","_handleError","add","isUsable","dispatcher","isSameOrigin","protocol","location","copyObject","XHR","EventSource","_xhr","pathname","socket","stringify","onopen","_everConnected","onmessage","event","_socket","usable","sockets","eventsource","url","JSONP","query","jsonp","_cbCount","head","getElementsByTagName","script","createElement","callbackName","getCallbackName","cleanup","parentNode","removeChild","src","appendChild","Cookie","Timeouts","DEFAULT_PORTS","MAX_DELAY","batching","_outbox","_findProxy","_flushLargeBatch","_publish","_connectMessage","_makePromise","_requestPromise","_resolvePromise","_flush","last","_getCookies","getCookiesSync","cookie","cookieString","_storeCookies","setCookie","setCookieSync","process","toLowerCase","upcase","toUpperCase","env","REQUEST_METHOD","Object","filter","k","console","allowed","disabled","asyncEach","_transports","pair","resume","connType","connEndpoint","t","_unloaded","ws","WebSocket","readyState","_createSocket","closed","onclose","wasConnected","pending","toArray","getSocketUrl","e","PROTOCOLS","websocket","ActiveXObject","onreadystatechange","text","detach","navigator","product","commonElement","lista","listb","list","needle","object","result","iterator","calls","looping","iterate","loop","forEach","hasOwn","target","source","_registry","element","eventName","wrapped","addEventListener","attachEvent","_element","_type","_handler","removeEventListener","detachEvent","onunload","parent","methods","bridge","ID_LENGTH","JSONP_CALLBACK","CONNECTION_TYPES","clone","isArray","xs","EventEmitter","_events","l","addListener","once","x","removeAllListeners","_value","_defer","execute","onFulfilled","onRejected","deferred","propagate","rejectPromise","state","next","pass","TypeError","getThen","fulfill","resolvePromise","settle","defer","all","promises","race","_index","item","block","isEmpty","member","isURI","uri","host","path","hostname","port","pairs","consume","pattern","match","substr","auth","search","decodeURIComponent","string","queryString","hash","validKeys","WS","MozWebSocket","protocols","_interopRequireWildcard","_interopRequireDefault","defineProperty","StreamClient","_regenerator","_slicedToArray2","_objectWithoutProperties2","_asyncToGenerator2","_classCallCheck2","_createClass2","_defineProperty2","axios","http","https","_jwtDecode","_personalization","_collections","_files","_images","_reaction","_user","_signing","_errors","_utils","_batch_operations","_redirect_url","_feed","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","default","getOwnPropertyDescriptors","defineProperties","pkg","apiKey","apiSecretOrToken","appId","_process$env","_process$env2","_this","_options","reactions","own","withOwnReactions","recent","withRecentReactions","counts","withReactionCounts","own_children","withOwnChildren","StreamApiError","_ref","mark","_callee","method","wrap","prev","enrichKwargs","sent","abrupt","t0","SiteError","stop","_x","_x2","baseUrl","baseAnalyticsUrl","usingApiSecret","includes","apiSecret","userToken","enrichByDefault","jwtBody","user_id","userId","currentUser","user","fayeUrl","fayeClient","group","subscriptions","expireTokens","getBaseUrl","LOCAL_FAYE","STREAM_ANALYTICS_BASE_URL","handlers","window","keepAlive","nodeOptions","httpAgent","Agent","keepAliveMsecs","httpsAgent","personalization","Personalization","FeedError","collections","Collections","getOrCreateToken","files","StreamFileStore","images","StreamImageStore","StreamReaction","addToMany","followMany","unfollowMany","createRedirectUrl","_activityPartialUpdate","_setUser","_personalizationToken","_throwMissingApiSecret","JWTScopeToken","feedId","_collectionsToken","serviceName","_process$env3","_process$env4","urlOverride","urlEnvironmentKey","LOCAL","local","_len","_key","feedSlug","validateFeedSlug","validateUserId","token","StreamUser","StreamFeed","relativeUrl","enrich","ownReactions","_ref2","kwargs","enrichUrl","body","api_key","qs","userAgent","Authorization","axiosOptions","_this2","incoming","outgoing","ext","signature","authExtension","getFayeAuthorization","contentType","onUploadProgress","fd","addFileToFormData","doAxiosRequest","getHeaders","maxContentLength","Infinity","maxBodyLength","extraData","JWTUserSessionToken","noTimestamp","activities","post","activity","updateActivities","_ref3","ids","foreignIDTimes","extraParams","foreignIDs","timestamps","fidTime","foreign_id","foreignID","time","foreign_ids","replaceReactionOptions","shouldUseEnrichEndpoint","_getOrCreateToken","_callee2","_context2","getOrCreate","_x3","_callee3","_yield$this$activitie","_activities","_context3","activitiesPartialUpdate","_x4","changes","set","unset","CollectionEntry","store","collection","_delete2","_update","_add","_get","full","update","_callee4","_context4","delete","itemId","_update2","_add2","_get2","itemData","_callee5","entry","_context5","buildURL","_callee6","_context6","_x5","_callee7","entryId","_context7","put","_x6","_x7","_x8","getCollectionsToken","collection_name","STREAM_URL","exec","MissingSchemaError","_assertThisInitialized2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_wrapNativeSuper2","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","constructor","canCapture","captureStackTrace","canStack","stack","ErrorAbstract","_Error","_super","msg","_ErrorAbstract","_super2","_ErrorAbstract2","_super3","_ErrorAbstract3","_super4","_ErrorAbstract4","_super5","slug","feedUrl","feedTogether","notificationChannel","replaceStreamObjects","actor","ref","activityOrActivityId","foreignId","targetSlug","targetUserId","limit","activity_copy_limit","keepHistory","keep_history","targetFeedId","extraOptions","followers","following","followerSlugs","followers_slugs","followingSlugs","following_slugs","mark_read","mark_seen","activityId","id_lte","id_gte","getFayeClient","fayeSubscription","streamSubscription","newTargets","addedTargets","removedTargets","addedTarget","new_targets","added_targets","removed_targets","upload","_extends2","crop","w","h","resize","_connect","resource","getPersonalizationToken","targetFeeds","elem","kind","_ref$targetFeeds","targetFeedsExtraData","activity_id","target_feeds","_convertTargetFeeds","target_feeds_extra_data","reaction","_ref2$targetFeeds","conditions","reactionId","reaction_id","lookupType","_ref3$targetFeeds","action","payload","joinClaimValue","feed_id","_jsonwebtoken","sign","algorithm","jwtOptions","opts","items","values","claims","s","trim","userAuthToken","_create","duration","get_or_create","with_follow_counts","_typeof2","_formData","validFeedSlugRe","validUserIdRe","isReadableStream","obj","readable","_read","_default","validateFeedId","_parts","rfc3986","str","charCodeAt","isBuffer","File","isFileWebAPI","append","reverse","v","cloned","utils","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","requestData","requestHeaders","responseType","isFormData","username","password","unescape","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","statusText","paramsSerializer","responseURL","onabort","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","xsrfCookieName","read","xsrfHeaderName","val","isUndefined","onDownloadProgress","cancelToken","Axios","mergeConfig","createInstance","defaultConfig","instance","extend","instanceConfig","defaults","Cancel","CancelToken","isCancel","spread","isAxiosError","__CANCEL__","executor","throwIfRequested","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","newConfig","getUri","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","description","number","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","prop","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","stringifySafely","strictJSONParsing","thisArg","serializedParams","isDate","toISOString","hashmarkIndex","relativeURL","write","expires","domain","secure","isNumber","toGMTString","RegExp","originURL","msie","urlParsingNode","resolveURL","setAttribute","charAt","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","arr","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","schema","allowUnknown","getPrototypeOf","isFunction","FormData","ArrayBuffer","isView","URLSearchParams","assignValue","a","b","stripBOM","content","r","atob","String","o","fromCharCode","header","len","arr2","__esModule","ReferenceError","asyncGeneratorStep","gen","_next","_throw","arg","done","err","Constructor","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Function","_defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","_extends","_getPrototypeOf","__proto__","subClass","superClass","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","newObj","hasPropertyDescriptor","_i","Symbol","_s","_e","_arr","_n","_d","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","minLen","from","isNativeFunction","_wrapNativeSuper","_cache","Map","Wrapper","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis"],"sourceRoot":""}