diff --git a/dist/js/getstream.js b/dist/js/getstream.js index 1e975171..2ddd3f94 100644 --- a/dist/js/getstream.js +++ b/dist/js/getstream.js @@ -7,2215 +7,2397 @@ exports["stream"] = factory(); else root["stream"] = factory(); -})(window, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "dist/"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 67); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { +})(self, function() { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +/***/ 2137: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _asyncToGenerator) +/* harmony export */ }); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - return obj; + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } } -module.exports = _defineProperty; +function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } -module.exports = __webpack_require__(75); + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} /***/ }), -/* 2 */ -/***/ (function(module, exports) { +/***/ 6610: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _classCallCheck) +/* harmony export */ }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -module.exports = _classCallCheck; - /***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + +/***/ 5991: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FeedError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return SiteError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MissingSchemaError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return StreamApiError; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64); -/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _createClass) +/* harmony export */ }); +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} +/***/ }), +/***/ 6156: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _defineProperty) +/* harmony export */ }); +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +/***/ }), +/***/ 7375: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default()(this, result); }; } +"use strict"; -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ _objectWithoutProperties) +}); -var canCapture = typeof Error.captureStackTrace === 'function'; -var canStack = !!new Error().stack; -/** - * Abstract error object - * @class ErrorAbstract - * @access private - * @param {string} [msg] Error message - */ +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -var ErrorAbstract = /*#__PURE__*/function (_Error) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(ErrorAbstract, _Error); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } - var _super = _createSuper(ErrorAbstract); + return target; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js - function ErrorAbstract(msg) { - var _this; +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, ErrorAbstract); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - _this = _super.call(this, msg); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1___default()(_this), "message", void 0); + return target; +} - _this.message = msg; +/***/ }), - if (canCapture) { - Error.captureStackTrace(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1___default()(_this), ErrorAbstract.constructor); - } else if (canStack) { - _this.stack = new Error().stack; - } else { - _this.stack = ''; - } +/***/ 3391: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - return _this; - } +"use strict"; - return ErrorAbstract; -}( /*#__PURE__*/_babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5___default()(Error)); -/** - * FeedError - * @class FeedError - * @access private - * @extends ErrorAbstract - * @memberof Stream.errors - * @param {String} [msg] - An error message that will probably end up in a log. - */ +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ _slicedToArray) +}); +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; -var FeedError = /*#__PURE__*/function (_ErrorAbstract) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(FeedError, _ErrorAbstract); + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); - var _super2 = _createSuper(FeedError); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } - function FeedError() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, FeedError); + return _arr; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; - return _super2.apply(this, arguments); + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; } - return FeedError; -}(ErrorAbstract); -/** - * SiteError - * @class SiteError - * @access private - * @extends ErrorAbstract - * @memberof Stream.errors - * @param {string} [msg] An error message that will probably end up in a log. - */ + return arr2; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js -var SiteError = /*#__PURE__*/function (_ErrorAbstract2) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(SiteError, _ErrorAbstract2); +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js - var _super3 = _createSuper(SiteError); - function SiteError() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, SiteError); - return _super3.apply(this, arguments); - } - return SiteError; -}(ErrorAbstract); -/** - * MissingSchemaError - * @method MissingSchemaError - * @access private - * @extends ErrorAbstract - * @memberof Stream.errors - * @param {string} msg - */ +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} -var MissingSchemaError = /*#__PURE__*/function (_ErrorAbstract3) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(MissingSchemaError, _ErrorAbstract3); +/***/ }), - var _super4 = _createSuper(MissingSchemaError); +/***/ 484: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - function MissingSchemaError() { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, MissingSchemaError); +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(obj) { + "@babel/helpers - typeof"; - return _super4.apply(this, arguments); + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; } - return MissingSchemaError; -}(ErrorAbstract); -/** - * StreamApiError - * @method StreamApiError - * @access private - * @extends ErrorAbstract - * @memberof Stream.errors - * @param {string} msg - * @param {object} data - * @param {object} response - */ + return _typeof(obj); +} -var StreamApiError = /*#__PURE__*/function (_ErrorAbstract4) { - _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(StreamApiError, _ErrorAbstract4); +/***/ }), - var _super5 = _createSuper(StreamApiError); +/***/ 7757: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - function StreamApiError(msg, data, response) { - var _this2; +module.exports = __webpack_require__(5666); - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, StreamApiError); - - _this2 = _super5.call(this, msg); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1___default()(_this2), "error", void 0); +/***/ }), - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1___default()(_this2), "response", void 0); +/***/ 9272: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - _this2.error = data; - _this2.response = response; - return _this2; - } +"use strict"; - return StreamApiError; -}(ErrorAbstract); -/***/ }), -/* 4 */ -/***/ (function(module, exports) { +// rawAsap provides everything we need except exception management. +var rawAsap = __webpack_require__(723); +// RawTasks are recycled to reduce GC churn. +var freeTasks = []; +// We queue errors to ensure they are thrown in right order (FIFO). +// Array-as-queue is good enough here, since we are just dealing with exceptions. +var pendingErrors = []; +var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } +function throwFirstError() { + if (pendingErrors.length) { + throw pendingErrors.shift(); + } } -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; +/** + * Calls a task as soon as possible after returning, in its own event, with priority + * over other events like animation, reflow, and repaint. An error thrown from an + * event will not interrupt, nor even substantially slow down the processing of + * other events, but will be rather postponed to a lower priority event. + * @param {{call}} task A callable object, typically a function that takes no + * arguments. + */ +module.exports = asap; +function asap(task) { + var rawTask; + if (freeTasks.length) { + rawTask = freeTasks.pop(); + } else { + rawTask = new RawTask(); + } + rawTask.task = task; + rawAsap(rawTask); } -module.exports = _createClass; +// We wrap tasks with recyclable task objects. A task object implements +// `call`, just like a function. +function RawTask() { + this.task = null; +} -/***/ }), -/* 5 */ -/***/ (function(module, exports) { +// The sole purpose of wrapping the task is to catch the exception and recycle +// the task object after its single use. +RawTask.prototype.call = function () { + try { + this.task.call(); + } catch (error) { + if (asap.onerror) { + // This hook exists purely for testing purposes. + // Its name will be periodically randomized to break any code that + // depends on its existence. + asap.onerror(error); + } else { + // In a web browser, exceptions are not fatal. However, to avoid + // slowing down the queue of pending tasks, we rethrow the error in a + // lower priority turn. + pendingErrors.push(error); + requestErrorThrow(); + } + } finally { + this.task = null; + freeTasks[freeTasks.length] = this; + } +}; -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} +/***/ }), -function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); +/***/ 723: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } +"use strict"; - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; +// Use the fastest means possible to execute a task in its own turn, with +// priority over other events including IO, animation, reflow, and redraw +// events in browsers. +// +// An exception thrown by a task will permanently interrupt the processing of +// subsequent tasks. The higher level `asap` function ensures that if an +// exception is thrown by a task, that the task queue will continue flushing as +// soon as possible, but if you use `rawAsap` directly, you are responsible to +// either ensure that no exceptions are thrown from your task, or to manually +// call `rawAsap.requestFlush` if an exception is thrown. +module.exports = rawAsap; +function rawAsap(task) { + if (!queue.length) { + requestFlush(); + flushing = true; + } + // Equivalent to push, but avoids a function call. + queue[queue.length] = task; } -module.exports = _asyncToGenerator; +var queue = []; +// Once a flush has been requested, no further calls to `requestFlush` are +// necessary until the next `flush` completes. +var flushing = false; +// `requestFlush` is an implementation-specific method that attempts to kick +// off a `flush` event as quickly as possible. `flush` will attempt to exhaust +// the event queue before yielding to the browser's own event loop. +var requestFlush; +// The position of the next task to execute in the task queue. This is +// preserved between calls to `flush` so that it can be resumed if +// a task throws an exception. +var index = 0; +// If a task schedules additional tasks recursively, the task queue can grow +// unbounded. To prevent memory exhaustion, the task queue will periodically +// truncate already-completed tasks. +var capacity = 1024; -/***/ }), -/* 6 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +// The flush function processes all tasks that have been scheduled with +// `rawAsap` unless and until one of those tasks throws an exception. +// If a task throws an exception, `flush` ensures that its state will remain +// consistent and will resume where it left off when called again. +// However, `flush` does not make any arrangements to be called again if an +// exception is thrown. +function flush() { + while (index < queue.length) { + var currentIndex = index; + // Advance the index before calling the task. This ensures that we will + // begin flushing on the next task the task throws an error. + index = index + 1; + queue[currentIndex].call(); + // Prevent leaking memory for long chains of recursive calls to `asap`. + // If we call `asap` within tasks scheduled by `asap`, the queue will + // grow, but to avoid an O(n) walk for every task we execute, we don't + // shift tasks off the queue after they have been executed. + // Instead, we periodically shift 1024 tasks off the queue. + if (index > capacity) { + // Manually shift all values starting at the index back to the + // beginning of the queue. + for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { + queue[scan] = queue[scan + index]; + } + queue.length -= index; + index = 0; + } + } + queue.length = 0; + index = 0; + flushing = false; +} -"use strict"; -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var form_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66); -/* harmony import */ var form_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(form_data__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); +// `requestFlush` is implemented using a strategy based on data collected from +// every available SauceLabs Selenium web driver worker at time of writing. +// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 +// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that +// have WebKitMutationObserver but not un-prefixed MutationObserver. +// Must use `global` or `self` instead of `window` to work in both frames and web +// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. +/* globals self */ +var scope = typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : self; +var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; +// MutationObservers are desirable because they have high priority and work +// reliably everywhere they are implemented. +// They are implemented in all modern browsers. +// +// - Android 4-4.3 +// - Chrome 26-34 +// - Firefox 14-29 +// - Internet Explorer 11 +// - iPad Safari 6-7.1 +// - iPhone Safari 7-7.1 +// - Safari 6-7 +if (typeof BrowserMutationObserver === "function") { + requestFlush = makeRequestCallFromMutationObserver(flush); -var validFeedSlugRe = /^[\w]+$/; -var validUserIdRe = /^[\w-]+$/; -/* - * Validate that the feedSlug matches \w - */ +// MessageChannels are desirable because they give direct access to the HTML +// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera +// 11-12, and in web workers in many engines. +// Although message channels yield to any queued rendering and IO tasks, they +// would be better than imposing the 4ms delay of timers. +// However, they do not work reliably in Internet Explorer or Safari. -function validateFeedSlug(feedSlug) { - if (!validFeedSlugRe.test(feedSlug)) { - throw new _errors__WEBPACK_IMPORTED_MODULE_3__[/* FeedError */ "a"]("Invalid feedSlug, please use letters, numbers or _: ".concat(feedSlug)); - } +// Internet Explorer 10 is the only browser that has setImmediate but does +// not have MutationObservers. +// Although setImmediate yields to the browser's renderer, it would be +// preferrable to falling back to setTimeout since it does not have +// the minimum 4ms penalty. +// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and +// Desktop to a lesser extent) that renders both setImmediate and +// MessageChannel useless for the purposes of ASAP. +// https://github.com/kriskowal/q/issues/396 - return feedSlug; +// Timers are implemented universally. +// We fall back to timers in workers in most engines, and in foreground +// contexts in the following browsers. +// However, note that even this simple case requires nuances to operate in a +// broad spectrum of browsers. +// +// - Firefox 3-13 +// - Internet Explorer 6-9 +// - iPad Safari 4.3 +// - Lynx 2.8.7 +} else { + requestFlush = makeRequestCallFromTimer(flush); } -/* - * Validate the userId matches \w - */ - - -function validateUserId(userId) { - if (!validUserIdRe.test(userId)) { - throw new _errors__WEBPACK_IMPORTED_MODULE_3__[/* FeedError */ "a"]("Invalid userId, please use letters, numbers, - or _: ".concat(userId)); - } - return userId; -} +// `requestFlush` requests that the high priority event queue be flushed as +// soon as possible. +// This is useful to prevent an error thrown in a task from stalling the event +// queue if the exception handled by Node.js’s +// `process.on("uncaughtException")` or by a domain. +rawAsap.requestFlush = requestFlush; -function rfc3986(str) { - return str.replace(/[!'()*]/g, function (c) { - return "%".concat(c.charCodeAt(0).toString(16).toUpperCase()); - }); +// To request a high priority event, we induce a mutation observer by toggling +// the text of a text node between "1" and "-1". +function makeRequestCallFromMutationObserver(callback) { + var toggle = 1; + var observer = new BrowserMutationObserver(callback); + var node = document.createTextNode(""); + observer.observe(node, {characterData: true}); + return function requestCall() { + toggle = -toggle; + node.data = toggle; + }; } -function isReadableStream(obj) { - return obj !== null && _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(obj) === 'object' && (obj.readable || typeof obj._read === 'function'); -} +// The message channel technique was discovered by Malte Ubl and was the +// original foundation for this library. +// http://www.nonblocking.io/2011/06/windownexttick.html -function isBuffer(obj) { - return obj != null && obj.constructor != null && // @ts-expect-error - typeof obj.constructor.isBuffer === 'function' && // @ts-expect-error - obj.constructor.isBuffer(obj); -} +// Safari 6.0.5 (at least) intermittently fails to create message ports on a +// page's first load. Thankfully, this version of Safari supports +// MutationObservers, so we don't need to fall back in that case. -function isFileWebAPI(uri) { - return typeof window !== 'undefined' && 'File' in window && uri instanceof File; -} -/* - * Validate that the feedId matches the spec user:1 - */ +// function makeRequestCallFromMessageChannel(callback) { +// var channel = new MessageChannel(); +// channel.port1.onmessage = callback; +// return function requestCall() { +// channel.port2.postMessage(0); +// }; +// } +// For reasons explained above, we are also unable to use `setImmediate` +// under any circumstances. +// Even if we were, there is another bug in Internet Explorer 10. +// It is not sufficient to assign `setImmediate` to `requestFlush` because +// `setImmediate` must be called *by name* and therefore must be wrapped in a +// closure. +// Never forget. -function validateFeedId(feedId) { - var parts = feedId.split(':'); +// function makeRequestCallFromSetImmediate(callback) { +// return function requestCall() { +// setImmediate(callback); +// }; +// } - if (parts.length !== 2) { - throw new _errors__WEBPACK_IMPORTED_MODULE_3__[/* FeedError */ "a"]("Invalid feedId, expected something like user:1 got ".concat(feedId)); - } +// Safari 6.0 has a problem where timers will get lost while the user is +// scrolling. This problem does not impact ASAP because Safari 6.0 supports +// mutation observers, so that implementation is used instead. +// However, if we ever elect to use timers in Safari, the prevalent work-around +// is to add a scroll event listener that calls for a flush. - var _parts = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(parts, 2), - feedSlug = _parts[0], - userId = _parts[1]; +// `setTimeout` does not call the passed callback if the delay is less than +// approximately 7 in web workers in Firefox 8 through 18, and sometimes not +// even then. - validateFeedSlug(feedSlug); - validateUserId(userId); - return feedId; +function makeRequestCallFromTimer(callback) { + return function requestCall() { + // We dispatch a timeout with a specified delay of 0 for engines that + // can reliably accommodate that request. This will usually be snapped + // to a 4 milisecond delay, but once we're flushing, there's no delay + // between events. + var timeoutHandle = setTimeout(handleTimer, 0); + // However, since this timer gets frequently dropped in Firefox + // workers, we enlist an interval handle that will try to fire + // an event 20 times per second until it succeeds. + var intervalHandle = setInterval(handleTimer, 50); + + function handleTimer() { + // Whichever timer succeeds will cancel both timers and + // execute the callback. + clearTimeout(timeoutHandle); + clearInterval(intervalHandle); + callback(); + } + }; } -function addFileToFormData(uri, name, contentType) { - var data = new form_data__WEBPACK_IMPORTED_MODULE_2___default.a(); +// This is for `asap.js` only. +// Its name will be periodically randomized to break any code that depends on +// its existence. +rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; - if (isReadableStream(uri) || isBuffer(uri) || isFileWebAPI(uri)) { - if (name) data.append('file', uri, name);else data.append('file', uri); - } else { - data.append('file', { - uri: uri, - name: name || uri.split('/').reverse()[0], - type: contentType || undefined, - contentType: contentType || undefined - }); - } +// ASAP was originally a nextTick shim included in Q. This was factored out +// into this ASAP package. It was later adapted to RSVP which made further +// amendments. These decisions, particularly to marginalize MessageChannel and +// to capture the MutationObserver implementation in a closure, were integrated +// back into ASAP proper. +// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js - return data; -} // TODO: refactor and add proper types +/***/ }), -function replaceStreamObjects(obj) { - // @ts-expect-error - if (Array.isArray(obj)) return obj.map(function (v) { - return replaceStreamObjects(v); - }); // @ts-expect-error +/***/ 9669: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - if (Object.prototype.toString.call(obj) !== '[object Object]') return obj; // @ts-expect-error +module.exports = __webpack_require__(1609); - if (typeof obj.ref === 'function') return obj.ref(); - var cloned = {}; - Object.keys(obj).forEach(function (k) { - // @ts-expect-error - cloned[k] = replaceStreamObjects(obj[k]); - }); // @ts-expect-error +/***/ }), - return cloned; -} +/***/ 5448: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/* harmony default export */ __webpack_exports__["a"] = ({ - validateFeedId: validateFeedId, - validateFeedSlug: validateFeedSlug, - validateUserId: validateUserId, - rfc3986: rfc3986, - isReadableStream: isReadableStream, - addFileToFormData: addFileToFormData, - replaceStreamObjects: replaceStreamObjects -}); +"use strict"; -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +var utils = __webpack_require__(4867); +var settle = __webpack_require__(6026); +var cookies = __webpack_require__(4372); +var buildURL = __webpack_require__(5327); +var buildFullPath = __webpack_require__(4097); +var parseHeaders = __webpack_require__(4109); +var isURLSameOrigin = __webpack_require__(7985); +var createError = __webpack_require__(5061); +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; -var forEach = Array.prototype.forEach, - hasOwn = Object.prototype.hasOwnProperty; + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } -module.exports = function(target) { - forEach.call(arguments, function(source, i) { - if (i === 0) return; + var request = new XMLHttpRequest(); - for (var key in source) { - if (hasOwn.call(source, key)) target[key] = source[key]; + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } - }); - return target; -}; + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + // Set the request timeout in MS + request.timeout = config.timeout; -/***/ }), -/* 8 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JWTScopeToken; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return JWTUserSessionToken; }); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var jsonwebtoken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39); -/* harmony import */ var jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jsonwebtoken__WEBPACK_IMPORTED_MODULE_1__); + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + settle(resolve, reject, response); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + // Clean up request + request = null; + }; - // for a claim in jwt + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } -function joinClaimValue(items) { - var values = Array.isArray(items) ? items : [items]; - var claims = []; + reject(createError('Request aborted', config, 'ECONNABORTED', request)); - for (var i = 0; i < values.length; i += 1) { - var s = values[i].trim(); - if (s === '*') return s; - claims.push(s); - } + // Clean up request + request = null; + }; - return claims.join(','); -} -/** - * Creates the JWT token for feedId, resource and action using the apiSecret - * @method JWTScopeToken - * @memberof signing - * @private - * @param {string} apiSecret - API Secret key - * @param {string | string[]} resource - JWT payload resource - * @param {string | string[]} action - JWT payload action - * @param {object} [options] - Optional additional options - * @param {string | string[]} [options.feedId] - JWT payload feed identifier - * @param {string} [options.userId] - JWT payload user identifier - * @param {boolean} [options.expireTokens] - JWT noTimestamp - * @return {string} JWT Token - */ + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + // Clean up request + request = null; + }; -function JWTScopeToken(apiSecret, resource, action) { - var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - var noTimestamp = options.expireTokens ? !options.expireTokens : true; - var payload = { - resource: joinClaimValue(resource), - action: joinClaimValue(action) - }; - if (options.feedId) payload.feed_id = joinClaimValue(options.feedId); - if (options.userId) payload.user_id = options.userId; - return jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default.a.sign(payload, apiSecret, { - algorithm: 'HS256', - noTimestamp: noTimestamp - }); -} -/** - * Creates the JWT token that can be used for a UserSession - * @method JWTUserSessionToken - * @memberof signing - * @private - * @param {string} apiSecret - API Secret key - * @param {string} userId - The user_id key in the JWT payload - * @param {object} [extraData] - Extra that should be part of the JWT token - * @param {object} [jwtOptions] - Options that can be past to jwt.sign - * @return {string} JWT Token - */ + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); -function JWTUserSessionToken(apiSecret, userId) { - var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var jwtOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + // Clean up request + request = null; + }; - if (typeof userId !== 'string') { - throw new TypeError('userId should be a string'); - } + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; - var payload = _objectSpread({ - user_id: userId - }, extraData); + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } - var opts = _objectSpread({ - algorithm: 'HS256', - noTimestamp: true - }, jwtOptions); + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } - return jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default.a.sign(payload, apiSecret, opts); -} + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } -"use strict"; + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } -var bind = __webpack_require__(42); + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } -/*global toString:true*/ + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } -// utils is a library of generic helper functions non-specific to axios + if (!requestData) { + requestData = null; + } -var toString = Object.prototype.toString; + // Send the request + request.send(requestData); + }); +}; -/** - * Determine if a value is an Array - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Array, otherwise false - */ -function isArray(val) { - return toString.call(val) === '[object Array]'; -} -/** - * Determine if a value is undefined - * - * @param {Object} val The value to test - * @returns {boolean} True if the value is undefined, otherwise false - */ -function isUndefined(val) { - return typeof val === 'undefined'; -} +/***/ }), + +/***/ 1609: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var utils = __webpack_require__(4867); +var bind = __webpack_require__(1849); +var Axios = __webpack_require__(321); +var mergeConfig = __webpack_require__(7185); +var defaults = __webpack_require__(5655); /** - * Determine if a value is a Buffer + * Create an instance of Axios * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Buffer, otherwise false + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; } +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = __webpack_require__(5263); +axios.CancelToken = __webpack_require__(4972); +axios.isCancel = __webpack_require__(6502); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = __webpack_require__(8713); + +// Expose isAxiosError +axios.isAxiosError = __webpack_require__(6268); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; + + +/***/ }), + +/***/ 5263: +/***/ ((module) => { + +"use strict"; + + /** - * Determine if a value is an ArrayBuffer + * A `Cancel` is an object that is thrown when an operation is canceled. * - * @param {Object} val The value to test - * @returns {boolean} True if value is an ArrayBuffer, otherwise false + * @class + * @param {string=} message The message. */ -function isArrayBuffer(val) { - return toString.call(val) === '[object ArrayBuffer]'; +function Cancel(message) { + this.message = message; } +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; + + +/***/ }), + +/***/ 4972: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var Cancel = __webpack_require__(5263); + /** - * Determine if a value is a FormData + * A `CancelToken` is an object that can be used to request cancellation of an operation. * - * @param {Object} val The value to test - * @returns {boolean} True if value is an FormData, otherwise false + * @class + * @param {Function} executor The executor function. */ -function isFormData(val) { - return (typeof FormData !== 'undefined') && (val instanceof FormData); +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); } /** - * Determine if a value is a view on an ArrayBuffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + * Throws a `Cancel` if cancellation has been requested. */ -function isArrayBufferView(val) { - var result; - if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { - result = ArrayBuffer.isView(val); - } else { - result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; } - return result; -} +}; /** - * Determine if a value is a String - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a String, otherwise false + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. */ -function isString(val) { - return typeof val === 'string'; -} +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; + + +/***/ }), + +/***/ 6502: +/***/ ((module) => { + +"use strict"; -/** - * Determine if a value is a Number - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Number, otherwise false - */ -function isNumber(val) { - return typeof val === 'number'; -} + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; + + +/***/ }), + +/***/ 321: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var utils = __webpack_require__(4867); +var buildURL = __webpack_require__(5327); +var InterceptorManager = __webpack_require__(782); +var dispatchRequest = __webpack_require__(3572); +var mergeConfig = __webpack_require__(7185); /** - * Determine if a value is an Object + * Create a new instance of Axios * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Object, otherwise false + * @param {Object} instanceConfig The default config for the instance */ -function isObject(val) { - return val !== null && typeof val === 'object'; +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; } /** - * Determine if a value is a plain Object + * Dispatch a request * - * @param {Object} val The value to test - * @return {boolean} True if value is a plain Object, otherwise false + * @param {Object} config The config specific for this request (merged with this.defaults) */ -function isPlainObject(val) { - if (toString.call(val) !== '[object Object]') { - return false; +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; } - var prototype = Object.getPrototypeOf(val); - return prototype === null || prototype === Object.prototype; -} + config = mergeConfig(this.defaults, config); -/** - * Determine if a value is a Date - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Date, otherwise false - */ -function isDate(val) { - return toString.call(val) === '[object Date]'; -} + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } -/** - * Determine if a value is a File - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a File, otherwise false - */ -function isFile(val) { - return toString.call(val) === '[object File]'; -} + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); -/** - * Determine if a value is a Blob - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Blob, otherwise false - */ -function isBlob(val) { - return toString.call(val) === '[object Blob]'; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; + + +/***/ }), + +/***/ 782: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var utils = __webpack_require__(4867); + +function InterceptorManager() { + this.handlers = []; } /** - * Determine if a value is a Function + * Add a new interceptor to the stack * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Function, otherwise false + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later */ -function isFunction(val) { - return toString.call(val) === '[object Function]'; -} +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; /** - * Determine if a value is a Stream + * Remove an interceptor from the stack * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Stream, otherwise false + * @param {Number} id The ID that was returned by `use` */ -function isStream(val) { - return isObject(val) && isFunction(val.pipe); -} +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; /** - * Determine if a value is a URLSearchParams object + * Iterate over all the registered interceptors * - * @param {Object} val The value to test - * @returns {boolean} True if value is a URLSearchParams object, otherwise false + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor */ -function isURLSearchParams(val) { - return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; -} +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; + + +/***/ }), + +/***/ 4097: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var isAbsoluteURL = __webpack_require__(1793); +var combineURLs = __webpack_require__(7303); /** - * Trim excess whitespace off the beginning and end of a string + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. * - * @param {String} str The String to trim - * @returns {String} The String freed of excess whitespace + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path */ -function trim(str) { - return str.replace(/^\s*/, '').replace(/\s*$/, ''); -} +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; + + +/***/ }), + +/***/ 5061: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var enhanceError = __webpack_require__(481); /** - * Determine if we're running in a standard browser environment + * Create an Error with the specified message, config, error code, request and response. * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. */ -function isStandardBrowserEnv() { - if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || - navigator.product === 'NativeScript' || - navigator.product === 'NS')) { - return false; - } - return ( - typeof window !== 'undefined' && - typeof document !== 'undefined' - ); -} +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - */ -function forEach(obj, fn) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } +/***/ }), - if (isArray(obj)) { - // Iterate over array values - for (var i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Iterate over object keys - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj); - } - } - } -} +/***/ 3572: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * var result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * @returns {Object} Result of all merge properties - */ -function merge(/* obj1, obj2, obj3, ... */) { - var result = {}; - function assignValue(val, key) { - if (isPlainObject(result[key]) && isPlainObject(val)) { - result[key] = merge(result[key], val); - } else if (isPlainObject(val)) { - result[key] = merge({}, val); - } else if (isArray(val)) { - result[key] = val.slice(); - } else { - result[key] = val; - } - } +"use strict"; - for (var i = 0, l = arguments.length; i < l; i++) { - forEach(arguments[i], assignValue); - } - return result; -} + +var utils = __webpack_require__(4867); +var transformData = __webpack_require__(8527); +var isCancel = __webpack_require__(6502); +var defaults = __webpack_require__(5655); /** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * @return {Object} The resulting value of object a + * Throws a `Cancel` if cancellation has been requested. */ -function extend(a, b, thisArg) { - forEach(b, function assignValue(val, key) { - if (thisArg && typeof val === 'function') { - a[key] = bind(val, thisArg); - } else { - a[key] = val; - } - }); - return a; +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } } /** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * Dispatch a request to the server using the configured adapter. * - * @param {string} content with BOM - * @return {string} content value without BOM + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled */ -function stripBOM(content) { - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} - -module.exports = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isObject: isObject, - isPlainObject: isPlainObject, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isBlob: isBlob, - isFunction: isFunction, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isStandardBrowserEnv: isStandardBrowserEnv, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM -}; +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + // Ensure headers exist + config.headers = config.headers || {}; -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); -"use strict"; + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); -var assign = __webpack_require__(7); + var adapter = config.adapter || defaults.adapter; -module.exports = function(parent, methods) { - if (typeof parent !== 'function') { - methods = parent; - parent = Object; - } + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); - var klass = function() { - if (!this.initialize) return this; - return this.initialize.apply(this, arguments) || this; - }; + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); - var bridge = function() {}; - bridge.prototype = parent.prototype; + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); - klass.prototype = new bridge(); - assign(klass.prototype, methods); + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } - return klass; + return Promise.reject(reason); + }); }; /***/ }), -/* 11 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} -module.exports = g; - - -/***/ }), -/* 12 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ 481: +/***/ ((module) => { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamUser; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__); - - +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + error.request = request; + error.response = response; + error.isAxiosError = true; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } -var StreamUser = /*#__PURE__*/function () { - /** - * Initialize a user session object - * @link https://getstream.io/docs/users_introduction/?language=js - * @method constructor - * @memberof StreamUser.prototype - * @param {StreamClient} client Stream client this collection is constructed from - * @param {string} userId The ID of the user - * @param {string} userAuthToken JWT token - * @example new StreamUser(client, "123", "eyJhbGciOiJIUzI1...") - */ - function StreamUser(client, userId, userAuthToken) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, StreamUser); +/***/ }), - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "client", void 0); +/***/ 7185: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "token", void 0); +"use strict"; - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "id", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "data", void 0); +var utils = __webpack_require__(4867); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "full", void 0); +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "url", void 0); + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + 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' + ]; + var directMergeKeys = ['validateStatus']; - this.client = client; - this.id = userId; - this.data = undefined; - this.full = undefined; - this.token = userAuthToken; - this.url = "user/".concat(this.id, "/"); + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; } - /** - * Create a stream user ref - * @return {string} - */ - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(StreamUser, [{ - key: "ref", - value: function ref() { - return "SU:".concat(this.id); + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); } - /** - * Delete the user - * @link https://getstream.io/docs/users_introduction/?language=js#removing-users - * @return {Promise} - */ + } - }, { - key: "delete", - value: function _delete() { - return this.client.delete({ - url: this.url, - token: this.token - }); + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); } - /** - * Get the user data - * @link https://getstream.io/docs/users_introduction/?language=js#retrieving-users - * @param {boolean} [options.with_follow_counts] - * @return {Promise} - */ - - }, { - key: "get", - value: function () { - var _get = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(options) { - var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this.client.get({ - url: this.url, - token: this.token, - qs: options - }); - - case 2: - response = _context.sent; - this.full = _objectSpread({}, response); - delete this.full.duration; - this.data = this.full.data; - return _context.abrupt("return", this); + }); - case 7: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); - function get(_x) { - return _get.apply(this, arguments); - } + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); - return get; - }() - /** - * Create a new user in stream - * @link https://getstream.io/docs/users_introduction/?language=js#adding-users - * @param {object} data user date stored in stream - * @param {boolean} [options.get_or_create] if user already exists return it - * @return {Promise} - */ + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); - }, { - key: "create", - value: function () { - var _create = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(data, options) { - var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this.client.post({ - url: 'user/', - body: { - id: this.id, - data: data || this.data || {} - }, - qs: options, - token: this.token - }); + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); - case 2: - response = _context2.sent; - this.full = _objectSpread({}, response); - delete this.full.duration; - this.data = this.full.data; - return _context2.abrupt("return", this); + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); - case 7: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); + utils.forEach(otherKeys, mergeDeepProperties); - function create(_x2, _x3) { - return _create.apply(this, arguments); - } + return config; +}; - return create; - }() - /** - * Update the user - * @link https://getstream.io/docs/users_introduction/?language=js#updating-users - * @param {object} data user date stored in stream - * @return {Promise} - */ - }, { - key: "update", - value: function () { - var _update = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(data) { - var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this.client.put({ - url: this.url, - body: { - data: data || this.data || {} - }, - token: this.token - }); +/***/ }), - case 2: - response = _context3.sent; - this.full = _objectSpread({}, response); - delete this.full.duration; - this.data = this.full.data; - return _context3.abrupt("return", this); +/***/ 6026: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - case 7: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); +"use strict"; - function update(_x4) { - return _update.apply(this, arguments); - } - return update; - }() - /** - * Get or Create a new user in stream - * @link https://getstream.io/docs/users_introduction/?language=js#adding-users - * @param {object} data user date stored in stream - * @return {Promise} - */ +var createError = __webpack_require__(5061); - }, { - key: "getOrCreate", - value: function getOrCreate(data) { - return this.create(data, { - get_or_create: true - }); - } - /** - * Get the user profile, it includes the follow counts by default - * @link https://getstream.io/docs/users_introduction/?language=js#retrieving-users - * @return {Promise} - */ - - }, { - key: "profile", - value: function profile() { - return this.get({ - with_follow_counts: true - }); - } - }]); +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; - return StreamUser; -}(); /***/ }), -/* 13 */ -/***/ (function(module, exports) { - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ 8527: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = { - isURI: function(uri) { - return uri && uri.protocol && uri.host && uri.path; - }, +var utils = __webpack_require__(4867); - isSameOrigin: function(uri) { - return uri.protocol === location.protocol && - uri.hostname === location.hostname && - uri.port === location.port; - }, +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); - parse: function(url) { - if (typeof url !== 'string') return url; - var uri = {}, parts, query, pairs, i, n, data; + return data; +}; - var consume = function(name, pattern) { - url = url.replace(pattern, function(match) { - uri[name] = match; - return ''; - }); - uri[name] = uri[name] || ''; - }; - consume('protocol', /^[a-z]+\:/i); - consume('host', /^\/\/[^\/\?#]+/); +/***/ }), - if (!/^\//.test(url) && !uri.host) - url = location.pathname.replace(/[^\/]*$/, '') + url; +/***/ 5655: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - consume('pathname', /^[^\?#]*/); - consume('search', /^\?[^#]*/); - consume('hash', /^#.*/); +"use strict"; - uri.protocol = uri.protocol || location.protocol; - if (uri.host) { - uri.host = uri.host.substr(2); +var utils = __webpack_require__(4867); +var normalizeHeaderName = __webpack_require__(6016); - if (/@/.test(uri.host)) { - uri.auth = uri.host.split('@')[0]; - uri.host = uri.host.split('@')[1]; - } - parts = uri.host.match(/^\[([^\]]+)\]|^[^:]+/); - uri.hostname = parts[1] || parts[0]; - uri.port = (uri.host.match(/:(\d+)$/) || [])[1] || ''; - } else { - uri.host = location.host; - uri.hostname = location.hostname; - uri.port = location.port; - } +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; - uri.pathname = uri.pathname || '/'; - uri.path = uri.pathname + uri.search; +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} - query = uri.search.replace(/^\?/, ''); - pairs = query ? query.split('&') : []; - data = {}; +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(5448); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(5448); + } + return adapter; +} - for (i = 0, n = pairs.length; i < n; i++) { - parts = pairs[i].split('='); - data[decodeURIComponent(parts[0] || '')] = decodeURIComponent(parts[1] || ''); +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); } + return data; + }], - uri.query = data; + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], - uri.href = this.stringify(uri); - return uri; - }, + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, - stringify: function(uri) { - var auth = uri.auth ? uri.auth + '@' : '', - string = uri.protocol + '//' + auth + uri.host; + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', - string += uri.pathname + this.queryString(uri.query) + (uri.hash || ''); + maxContentLength: -1, + maxBodyLength: -1, - return string; - }, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; - queryString: function(query) { - var pairs = []; - for (var key in query) { - if (!query.hasOwnProperty(key)) continue; - pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(query[key])); - } - if (pairs.length === 0) return ''; - return '?' + pairs.join('&'); +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' } }; +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { +module.exports = defaults; -var Class = __webpack_require__(10), - Cookie = __webpack_require__(54).Cookie, - Promise = __webpack_require__(23), - array = __webpack_require__(33), - assign = __webpack_require__(7), - Logging = __webpack_require__(19), - Timeouts = __webpack_require__(99), - Channel = __webpack_require__(52); -var Transport = assign(Class({ className: 'Transport', - DEFAULT_PORTS: { 'http:': 80, 'https:': 443, 'ws:': 80, 'wss:': 443 }, - MAX_DELAY: 0, +/***/ }), - batching: true, +/***/ 1849: +/***/ ((module) => { - initialize: function(dispatcher, endpoint) { - this._dispatcher = dispatcher; - this.endpoint = endpoint; - this._outbox = []; - this._proxy = assign({}, this._dispatcher.proxy); +"use strict"; - if (!this._proxy.origin) - this._proxy.origin = this._findProxy(); - }, - close: function() {}, +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; - encode: function(messages) { - return ''; - }, - sendMessage: function(message) { - this.debug('Client ? sending message to ?: ?', - this._dispatcher.clientId, this.endpoint.href, message); +/***/ }), - if (!this.batching) return Promise.resolve(this.request([message])); +/***/ 5327: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - this._outbox.push(message); - this._flushLargeBatch(); +"use strict"; - if (message.channel === Channel.HANDSHAKE) - return this._publish(0.01); - if (message.channel === Channel.CONNECT) - this._connectMessage = message; +var utils = __webpack_require__(4867); - return this._publish(this.MAX_DELAY); - }, +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} - _makePromise: function() { - var self = this; +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } - this._requestPromise = this._requestPromise || new Promise(function(resolve) { - self._resolvePromise = resolve; + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); }); - }, - _publish: function(delay) { - this._makePromise(); + serializedParams = parts.join('&'); + } - this.addTimeout('publish', delay, function() { - this._flush(); - delete this._requestPromise; - }, this); + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } - return this._requestPromise; - }, + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } - _flush: function() { - this.removeTimeout('publish'); + return url; +}; - if (this._outbox.length > 1 && this._connectMessage) - this._connectMessage.advice = { timeout: 0 }; - this._resolvePromise(this.request(this._outbox)); +/***/ }), - this._connectMessage = null; - this._outbox = []; - }, +/***/ 7303: +/***/ ((module) => { - _flushLargeBatch: function() { - var string = this.encode(this._outbox); - if (string.length < this._dispatcher.maxRequestSize) return; - var last = this._outbox.pop(); +"use strict"; - this._makePromise(); - this._flush(); - if (last) this._outbox.push(last); - }, +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; - _receive: function(replies) { - if (!replies) return; - replies = [].concat(replies); - this.debug('Client ? received from ? via ?: ?', - this._dispatcher.clientId, this.endpoint.href, this.connectionType, replies); +/***/ }), - for (var i = 0, n = replies.length; i < n; i++) - this._dispatcher.handleResponse(replies[i]); - }, +/***/ 4372: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - _handleError: function(messages, immediate) { - messages = [].concat(messages); +"use strict"; - this.debug('Client ? failed to send to ? via ?: ?', - this._dispatcher.clientId, this.endpoint.href, this.connectionType, messages); - for (var i = 0, n = messages.length; i < n; i++) - this._dispatcher.handleError(messages[i]); - }, +var utils = __webpack_require__(4867); - _getCookies: function() { - var cookies = this._dispatcher.cookies, - url = this.endpoint.href; +module.exports = ( + utils.isStandardBrowserEnv() ? - if (!cookies) return ''; + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); - return array.map(cookies.getCookiesSync(url), function(cookie) { - return cookie.cookieString(); - }).join('; '); - }, + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } - _storeCookies: function(setCookie) { - var cookies = this._dispatcher.cookies, - url = this.endpoint.href, - cookie; + if (utils.isString(path)) { + cookie.push('path=' + path); + } - if (!setCookie || !cookies) return; - setCookie = [].concat(setCookie); + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } - for (var i = 0, n = setCookie.length; i < n; i++) { - cookie = Cookie.parse(setCookie[i]); - cookies.setCookieSync(cookie, url); - } - }, + if (secure === true) { + cookie.push('secure'); + } - _findProxy: function() { - if (typeof process === 'undefined') return undefined; + document.cookie = cookie.join('; '); + }, - var protocol = this.endpoint.protocol; - if (!protocol) return undefined; + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, - var name = protocol.replace(/:$/, '').toLowerCase() + '_proxy', - upcase = name.toUpperCase(), - env = process.env, - keys, proxy; + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : - if (name === 'http_proxy' && env.REQUEST_METHOD) { - keys = Object.keys(env).filter(function(k) { return /^http_proxy$/i.test(k) }); - if (keys.length === 1) { - if (keys[0] === name && env[upcase] === undefined) - proxy = env[name]; - } else if (keys.length > 1) { - proxy = env[name]; - } - proxy = proxy || env['CGI_' + upcase]; - } else { - proxy = env[name] || env[upcase]; - if (proxy && !env[name]) - console.warn('The environment variable ' + upcase + - ' is discouraged. Use ' + name + '.'); - } - return proxy; - } + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); -}), { - get: function(dispatcher, allowed, disabled, callback, context) { - var endpoint = dispatcher.endpoint; - array.asyncEach(this._transports, function(pair, resume) { - var connType = pair[0], klass = pair[1], - connEndpoint = dispatcher.endpointFor(connType); +/***/ }), - if (array.indexOf(disabled, connType) >= 0) - return resume(); +/***/ 1793: +/***/ ((module) => { - if (array.indexOf(allowed, connType) < 0) { - klass.isUsable(dispatcher, connEndpoint, function() {}); - return resume(); - } +"use strict"; - klass.isUsable(dispatcher, connEndpoint, function(isUsable) { - if (!isUsable) return resume(); - var transport = klass.hasOwnProperty('create') ? klass.create(dispatcher, connEndpoint) : new klass(dispatcher, connEndpoint); - callback.call(context, transport); - }); - }, function() { - throw new Error('Could not find a usable connection type for ' + endpoint.href); - }); - }, - register: function(type, klass) { - this._transports.push([type, klass]); - klass.prototype.connectionType = type; - }, +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; - getConnectionTypes: function() { - return array.map(this._transports, function(t) { return t[0] }); - }, - disable: function(feature) { - if (feature !== 'autodisconnect') return; +/***/ }), - for (var i = 0; i < this._transports.length; i++) - this._transports[i][1]._unloaded = false; - }, +/***/ 6268: +/***/ ((module) => { - _transports: [] -}); +"use strict"; -assign(Transport.prototype, Logging); -assign(Transport.prototype, Timeouts); -module.exports = Transport; +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +module.exports = function isAxiosError(payload) { + return (typeof payload === 'object') && (payload.isAxiosError === true); +}; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) /***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { -var objectWithoutPropertiesLoose = __webpack_require__(74); +/***/ 7985: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); +"use strict"; - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; -} +var utils = __webpack_require__(4867); -module.exports = _objectWithoutProperties; +module.exports = ( + utils.isStandardBrowserEnv() ? -/***/ }), -/* 17 */ -/***/ (function(module, exports) { + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; - return self; -} + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } -module.exports = _assertThisInitialized; + urlParsingNode.setAttribute('href', href); -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } -var setPrototypeOf = __webpack_require__(37); + originURL = resolveURL(window.location.href); -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) setPrototypeOf(subClass, superClass); -} + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); -module.exports = _inherits; /***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ 6016: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var toJSON = __webpack_require__(20); +"use strict"; -var Logging = { - LOG_LEVELS: { - fatal: 4, - error: 3, - warn: 2, - info: 1, - debug: 0 - }, - writeLog: function(messageArgs, level) { - var logger = Logging.logger || (Logging.wrapper || Logging).logger; - if (!logger) return; +var utils = __webpack_require__(4867); - var args = Array.prototype.slice.apply(messageArgs), - banner = '[Faye', - klass = this.className, +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; - message = args.shift().replace(/\?/g, function() { - try { - return toJSON(args.shift()); - } catch (error) { - return '[Object]'; - } - }); - if (klass) banner += '.' + klass; - banner += '] '; +/***/ }), - if (typeof logger[level] === 'function') - logger[level](banner + message); - else if (typeof logger === 'function') - logger(banner + message); - } -}; +/***/ 4109: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -for (var key in Logging.LOG_LEVELS) - (function(level) { - Logging[level] = function() { - this.writeLog(arguments, level); - }; - })(key); +"use strict"; -module.exports = Logging; +var utils = __webpack_require__(4867); -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var 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' +]; -"use strict"; +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + if (!headers) { return parsed; } -// http://assanka.net/content/tech/2009/09/02/json2-js-vs-prototype/ + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); -module.exports = function(object) { - return JSON.stringify(object, function(key, value) { - return (this[key] instanceof Array) ? this[key] : value; + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } }); + + return parsed; }; /***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 8713: +/***/ ((module) => { "use strict"; -/* WEBPACK VAR INJECTION */(function(global) { -var Promise = __webpack_require__(23); -module.exports = { - then: function(callback, errback) { - var self = this; - if (!this._promise) - this._promise = new Promise(function(resolve, reject) { - self._resolve = resolve; - self._reject = reject; - }); +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; - if (arguments.length === 0) - return this._promise; - else - return this._promise.then(callback, errback); - }, - callback: function(callback, context) { - return this.then(function(value) { callback.call(context, value) }); - }, +/***/ }), - errback: function(callback, context) { - return this.then(null, function(reason) { callback.call(context, reason) }); - }, +/***/ 4867: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - timeout: function(seconds, message) { - this.then(); - var self = this; - this._timer = global.setTimeout(function() { - self._reject(message); - }, seconds * 1000); - }, +"use strict"; - setDeferredStatus: function(status, value) { - if (this._timer) global.clearTimeout(this._timer); - this.then(); +var bind = __webpack_require__(1849); - if (status === 'succeeded') - this._resolve(value); - else if (status === 'failed') - this._reject(value); - else - delete this._promise; - } -}; +/*global toString:true*/ -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) +// utils is a library of generic helper functions non-specific to axios -/***/ }), -/* 22 */ -/***/ (function(module, exports) { +var toString = Object.prototype.toString; -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; } -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); } -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); } -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; } -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; } -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; } -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; } -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} -"use strict"; +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} -var asap = __webpack_require__(51); +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} -var PENDING = -1, - FULFILLED = 0, - REJECTED = 1; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } -var Promise = function(task) { - this._state = PENDING; - this._value = null; - this._defer = []; + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } - execute(this, task); -}; - -Promise.prototype.then = function(onFulfilled, onRejected) { - var promise = new Promise(); - - var deferred = { - promise: promise, - onFulfilled: onFulfilled, - onRejected: onRejected - }; - - if (this._state === PENDING) - this._defer.push(deferred); - else - propagate(this, deferred); - - return promise; -}; - -Promise.prototype['catch'] = function(onRejected) { - return this.then(null, onRejected); -}; - -var execute = function(promise, task) { - if (typeof task !== 'function') return; - - var calls = 0; - - var resolvePromise = function(value) { - if (calls++ === 0) resolve(promise, value); - }; - - var rejectPromise = function(reason) { - if (calls++ === 0) reject(promise, reason); - }; - - try { - task(resolvePromise, rejectPromise); - } catch (error) { - rejectPromise(error); + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } } -}; - -var propagate = function(promise, deferred) { - var state = promise._state, - value = promise._value, - next = deferred.promise, - handler = [deferred.onFulfilled, deferred.onRejected][state], - pass = [resolve, reject][state]; - - if (typeof handler !== 'function') - return pass(next, value); +} - asap(function() { - try { - resolve(next, handler(value)); - } catch (error) { - reject(next, error); +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; } - }); -}; - -var resolve = function(promise, value) { - if (promise === value) - return reject(promise, new TypeError('Recursive promise chain detected')); - - var then; - - try { - then = getThen(value); - } catch (error) { - return reject(promise, error); } - if (!then) return fulfill(promise, value); + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} - execute(promise, function(resolvePromise, rejectPromise) { - then.call(value, resolvePromise, rejectPromise); +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } }); -}; - -var getThen = function(value) { - var type = typeof value, - then = (type === 'object' || type === 'function') && value && value.then; - - return (typeof then === 'function') - ? then - : null; -}; - -var fulfill = function(promise, value) { - settle(promise, FULFILLED, value); -}; - -var reject = function(promise, reason) { - settle(promise, REJECTED, reason); -}; - -var settle = function(promise, state, value) { - var defer = promise._defer, i = 0; - - promise._state = state; - promise._value = value; - promise._defer = null; - - if (defer.length === 0) return; - while (i < defer.length) propagate(promise, defer[i++]); -}; + return a; +} -Promise.resolve = function(value) { - try { - if (getThen(value)) return value; - } catch (error) { - return Promise.reject(error); +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); } + return content; +} - return new Promise(function(resolve, reject) { resolve(value) }); -}; - -Promise.reject = function(reason) { - return new Promise(function(resolve, reject) { reject(reason) }); -}; - -Promise.all = function(promises) { - return new Promise(function(resolve, reject) { - var list = [], n = promises.length, i; - - if (n === 0) return resolve(list); - - var push = function(promise, i) { - Promise.resolve(promise).then(function(value) { - list[i] = value; - if (--n === 0) resolve(list); - }, reject); - }; - - for (i = 0; i < n; i++) push(promises[i], i); - }); +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM }; -Promise.race = function(promises) { - return new Promise(function(resolve, reject) { - for (var i = 0, n = promises.length; i < n; i++) - Promise.resolve(promises[i]).then(resolve, reject); - }); -}; -Promise.deferred = function() { - var tuple = {}; +/***/ }), - tuple.promise = new Promise(function(resolve, reject) { - tuple.resolve = resolve; - tuple.reject = reject; - }); - return tuple; -}; +/***/ 6663: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -module.exports = Promise; +"use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "n": () => (/* binding */ StreamClient) +}); -/***/ }), -/* 24 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 5 modules +var slicedToArray = __webpack_require__(3391); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules +var objectWithoutProperties = __webpack_require__(7375); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +var asyncToGenerator = __webpack_require__(2137); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(6610); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(5991); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(6156); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js +var regenerator = __webpack_require__(7757); +var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator); +// EXTERNAL MODULE: ./node_modules/axios/index.js +var axios = __webpack_require__(9669); +var axios_default = /*#__PURE__*/__webpack_require__.n(axios); +// EXTERNAL MODULE: ./node_modules/faye/src/faye_browser.js +var faye_browser = __webpack_require__(2965); +// EXTERNAL MODULE: http (ignored) +var http_ignored_ = __webpack_require__(8618); +// EXTERNAL MODULE: https (ignored) +var https_ignored_ = __webpack_require__(120); +;// CONCATENATED MODULE: ./node_modules/jwt-decode/build/jwt-decode.esm.js +function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");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);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";/* harmony default export */ const jwt_decode_esm = (o); +//# sourceMappingURL=jwt-decode.esm.js.map -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamClient; }); -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(58); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var faye__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59); -/* harmony import */ var faye__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(faye__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60); -/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61); -/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var jwt_decode__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(62); -/* harmony import */ var _personalization__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(25); -/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(26); -/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(27); -/* harmony import */ var _images__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(28); -/* harmony import */ var _reaction__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29); -/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(12); -/* harmony import */ var _signing__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(8); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(3); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(6); -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(13); -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_batch_operations__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _redirect_url__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(40); -/* harmony import */ var _redirect_url__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_redirect_url__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(30); +// EXTERNAL MODULE: ./src/personalization.ts +var personalization = __webpack_require__(8039); +// EXTERNAL MODULE: ./src/collections.ts +var collections = __webpack_require__(3709); +// EXTERNAL MODULE: ./src/files.ts +var files = __webpack_require__(448); +// EXTERNAL MODULE: ./src/images.ts + 1 modules +var src_images = __webpack_require__(407); +// EXTERNAL MODULE: ./src/reaction.ts +var reaction = __webpack_require__(8824); +// EXTERNAL MODULE: ./src/user.ts +var src_user = __webpack_require__(7878); +// EXTERNAL MODULE: ./src/signing.ts +var signing = __webpack_require__(6685); +// EXTERNAL MODULE: ./src/errors.ts + 9 modules +var errors = __webpack_require__(1964); +// EXTERNAL MODULE: ./src/utils.ts +var utils = __webpack_require__(2637); +// EXTERNAL MODULE: ./src/batch_operations.ts +var batch_operations = __webpack_require__(6793); +var batch_operations_default = /*#__PURE__*/__webpack_require__.n(batch_operations); +// EXTERNAL MODULE: ./src/redirect_url.ts +var redirect_url = __webpack_require__(7496); +var redirect_url_default = /*#__PURE__*/__webpack_require__.n(redirect_url); +// EXTERNAL MODULE: ./src/feed.ts +var src_feed = __webpack_require__(7248); +;// CONCATENATED MODULE: ./src/client.ts @@ -2226,7 +2408,7 @@ module.exports = Promise; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,defineProperty/* default */.Z)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /// @@ -2248,7 +2430,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va // TODO: no import since typescript json loader shifts the final output structure // eslint-disable-next-line @typescript-eslint/no-var-requires -var pkg = __webpack_require__(112); +var pkg = __webpack_require__(306); /** * Client to connect to Stream api @@ -2259,7 +2441,7 @@ var StreamClient = /*#__PURE__*/function () { /** * Initialize a client - * @link https://getstream.io/docs/feeds_getting_started/?language=js#setup + * @link https://getstream.io/activity-feeds/docs/node/#setup * @method initialize * @memberof StreamClient.prototype * @param {string} apiKey - the api key @@ -2283,81 +2465,81 @@ var StreamClient = /*#__PURE__*/function () { var _options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default()(this, StreamClient); + (0,classCallCheck/* default */.Z)(this, StreamClient); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "baseUrl", void 0); + (0,defineProperty/* default */.Z)(this, "baseUrl", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "baseAnalyticsUrl", void 0); + (0,defineProperty/* default */.Z)(this, "baseAnalyticsUrl", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "apiKey", void 0); + (0,defineProperty/* default */.Z)(this, "apiKey", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "appId", void 0); + (0,defineProperty/* default */.Z)(this, "appId", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "usingApiSecret", void 0); + (0,defineProperty/* default */.Z)(this, "usingApiSecret", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "apiSecret", void 0); + (0,defineProperty/* default */.Z)(this, "apiSecret", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "userToken", void 0); + (0,defineProperty/* default */.Z)(this, "userToken", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "enrichByDefault", void 0); + (0,defineProperty/* default */.Z)(this, "enrichByDefault", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "options", void 0); + (0,defineProperty/* default */.Z)(this, "options", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "userId", void 0); + (0,defineProperty/* default */.Z)(this, "userId", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "authPayload", void 0); + (0,defineProperty/* default */.Z)(this, "authPayload", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "version", void 0); + (0,defineProperty/* default */.Z)(this, "version", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "fayeUrl", void 0); + (0,defineProperty/* default */.Z)(this, "fayeUrl", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "group", void 0); + (0,defineProperty/* default */.Z)(this, "group", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "expireTokens", void 0); + (0,defineProperty/* default */.Z)(this, "expireTokens", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "location", void 0); + (0,defineProperty/* default */.Z)(this, "location", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "fayeClient", void 0); + (0,defineProperty/* default */.Z)(this, "fayeClient", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "browser", void 0); + (0,defineProperty/* default */.Z)(this, "browser", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "node", void 0); + (0,defineProperty/* default */.Z)(this, "node", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "nodeOptions", void 0); + (0,defineProperty/* default */.Z)(this, "nodeOptions", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "request", void 0); + (0,defineProperty/* default */.Z)(this, "request", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "subscriptions", void 0); + (0,defineProperty/* default */.Z)(this, "subscriptions", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "handlers", void 0); + (0,defineProperty/* default */.Z)(this, "handlers", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "currentUser", void 0); + (0,defineProperty/* default */.Z)(this, "currentUser", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "personalization", void 0); + (0,defineProperty/* default */.Z)(this, "personalization", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "collections", void 0); + (0,defineProperty/* default */.Z)(this, "collections", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "files", void 0); + (0,defineProperty/* default */.Z)(this, "files", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "images", void 0); + (0,defineProperty/* default */.Z)(this, "images", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "reactions", void 0); + (0,defineProperty/* default */.Z)(this, "reactions", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "_personalizationToken", void 0); + (0,defineProperty/* default */.Z)(this, "_personalizationToken", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "_collectionsToken", void 0); + (0,defineProperty/* default */.Z)(this, "_collectionsToken", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "_getOrCreateToken", void 0); + (0,defineProperty/* default */.Z)(this, "_getOrCreateToken", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "addToMany", void 0); + (0,defineProperty/* default */.Z)(this, "addToMany", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "followMany", void 0); + (0,defineProperty/* default */.Z)(this, "followMany", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "unfollowMany", void 0); + (0,defineProperty/* default */.Z)(this, "unfollowMany", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "createRedirectUrl", void 0); + (0,defineProperty/* default */.Z)(this, "createRedirectUrl", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "replaceReactionOptions", function (options) { + (0,defineProperty/* default */.Z)(this, "replaceReactionOptions", function (options) { // Shortcut options for reaction enrichment if (options !== null && options !== void 0 && options.reactions) { if (options.reactions.own != null) { @@ -2380,20 +2562,20 @@ var StreamClient = /*#__PURE__*/function () { } }); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "handleResponse", function (response) { + (0,defineProperty/* default */.Z)(this, "handleResponse", function (response) { if (/^2/.test("".concat(response.status))) { _this.send('response', null, response, response.data); return response.data; } - throw new _errors__WEBPACK_IMPORTED_MODULE_19__[/* StreamApiError */ "d"]("".concat(JSON.stringify(response.data), " with HTTP status code ").concat(response.status), response.data, response); + throw new errors/* StreamApiError */.eY("".concat(JSON.stringify(response.data), " with HTTP status code ").concat(response.status), response.data, response); }); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(this, "doAxiosRequest", /*#__PURE__*/function () { - var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee(method, options) { + (0,defineProperty/* default */.Z)(this, "doAxiosRequest", /*#__PURE__*/function () { + var _ref = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(method, options) { var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee$(_context) { + return regenerator_default().wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: @@ -2421,7 +2603,7 @@ var StreamClient = /*#__PURE__*/function () { return _context.abrupt("return", _this.handleResponse(_context.t0.response)); case 12: - throw new _errors__WEBPACK_IMPORTED_MODULE_19__[/* SiteError */ "c"](_context.t0.message); + throw new errors/* SiteError */.z4(_context.t0.message); case 13: case "end": @@ -2445,7 +2627,7 @@ var StreamClient = /*#__PURE__*/function () { this.enrichByDefault = !this.usingApiSecret; if (this.userToken != null) { - var jwtBody = Object(jwt_decode__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"])(this.userToken); + var jwtBody = jwt_decode_esm(this.userToken); if (!jwtBody.user_id) { throw new TypeError('user_id is missing in user token'); @@ -2477,46 +2659,46 @@ var StreamClient = /*#__PURE__*/function () { if (this.node) { var keepAlive = this.options.keepAlive === undefined ? true : this.options.keepAlive; this.nodeOptions = { - httpAgent: new http__WEBPACK_IMPORTED_MODULE_9__["Agent"]({ + httpAgent: new http_ignored_.Agent({ keepAlive: keepAlive, keepAliveMsecs: 3000 }), - httpsAgent: new https__WEBPACK_IMPORTED_MODULE_10__["Agent"]({ + httpsAgent: new https_ignored_.Agent({ keepAlive: keepAlive, keepAliveMsecs: 3000 }) }; } - this.request = axios__WEBPACK_IMPORTED_MODULE_7___default.a.create(_objectSpread({ + this.request = axios_default().create(_objectSpread({ timeout: this.options.timeout || 10 * 1000, // 10 seconds withCredentials: false }, this.nodeOptions || {})); - this.personalization = new _personalization__WEBPACK_IMPORTED_MODULE_12__[/* Personalization */ "a"](this); + this.personalization = new personalization/* Personalization */.S(this); if (this.browser && this.usingApiSecret) { - throw new _errors__WEBPACK_IMPORTED_MODULE_19__[/* FeedError */ "a"]('You are publicly sharing your App Secret. Do not expose the App Secret in browsers, "native" mobile apps, or other non-trusted environments.'); + throw new errors/* FeedError */.IY('You are publicly sharing your App Secret. Do not expose the App Secret in browsers, "native" mobile apps, or other non-trusted environments.'); } - this.collections = new _collections__WEBPACK_IMPORTED_MODULE_13__[/* Collections */ "b"](this, this.getOrCreateToken()); - this.files = new _files__WEBPACK_IMPORTED_MODULE_14__[/* StreamFileStore */ "a"](this, this.getOrCreateToken()); - this.images = new _images__WEBPACK_IMPORTED_MODULE_15__[/* StreamImageStore */ "a"](this, this.getOrCreateToken()); - this.reactions = new _reaction__WEBPACK_IMPORTED_MODULE_16__[/* StreamReaction */ "a"](this, this.getOrCreateToken()); // If we are in a node environment and batchOperations/createRedirectUrl is available add the methods to the prototype of StreamClient + this.collections = new collections/* Collections */.n(this, this.getOrCreateToken()); + this.files = new files/* StreamFileStore */.h(this, this.getOrCreateToken()); + this.images = new src_images/* StreamImageStore */.$(this, this.getOrCreateToken()); + this.reactions = new reaction/* StreamReaction */.R(this, this.getOrCreateToken()); // If we are in a node environment and batchOperations/createRedirectUrl is available add the methods to the prototype of StreamClient - if (_batch_operations__WEBPACK_IMPORTED_MODULE_21___default.a && _redirect_url__WEBPACK_IMPORTED_MODULE_22___default.a) { - this.addToMany = _batch_operations__WEBPACK_IMPORTED_MODULE_21___default.a.addToMany; - this.followMany = _batch_operations__WEBPACK_IMPORTED_MODULE_21___default.a.followMany; - this.unfollowMany = _batch_operations__WEBPACK_IMPORTED_MODULE_21___default.a.unfollowMany; - this.createRedirectUrl = _redirect_url__WEBPACK_IMPORTED_MODULE_22___default.a; + if ((batch_operations_default()) && !!(redirect_url_default())) { + this.addToMany = (batch_operations_default()).addToMany; + this.followMany = (batch_operations_default()).followMany; + this.unfollowMany = (batch_operations_default()).unfollowMany; + this.createRedirectUrl = (redirect_url_default()); } } - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default()(StreamClient, [{ + (0,createClass/* default */.Z)(StreamClient, [{ key: "_throwMissingApiSecret", value: function _throwMissingApiSecret() { if (!this.usingApiSecret) { - throw new _errors__WEBPACK_IMPORTED_MODULE_19__[/* SiteError */ "c"]('This method can only be used server-side using your API Secret, use client = stream.connect(key, secret);'); + throw new errors/* SiteError */.z4('This method can only be used server-side using your API Secret, use client = stream.connect(key, secret);'); } } }, { @@ -2526,7 +2708,7 @@ var StreamClient = /*#__PURE__*/function () { this._throwMissingApiSecret(); - this._personalizationToken = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'personalization', '*', { + this._personalizationToken = (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'personalization', '*', { userId: '*', feedId: '*', expireTokens: this.expireTokens @@ -2540,7 +2722,7 @@ var StreamClient = /*#__PURE__*/function () { this._throwMissingApiSecret(); - this._collectionsToken = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'collections', '*', { + this._collectionsToken = (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'collections', '*', { feedId: '*', expireTokens: this.expireTokens }); @@ -2551,7 +2733,7 @@ var StreamClient = /*#__PURE__*/function () { value: function getAnalyticsToken() { this._throwMissingApiSecret(); - return Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'analytics', '*', { + return (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'analytics', '*', { userId: '*', expireTokens: this.expireTokens }); @@ -2653,9 +2835,9 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "getReadOnlyToken", value: function getReadOnlyToken(feedSlug, userId) { - _utils__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].validateFeedSlug(feedSlug); - _utils__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].validateUserId(userId); - return Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, '*', 'read', { + utils/* default.validateFeedSlug */.Z.validateFeedSlug(feedSlug); + utils/* default.validateUserId */.Z.validateUserId(userId); + return (0,signing/* JWTScopeToken */.v)(this.apiSecret, '*', 'read', { feedId: "".concat(feedSlug).concat(userId), expireTokens: this.expireTokens }); @@ -2674,16 +2856,16 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "getReadWriteToken", value: function getReadWriteToken(feedSlug, userId) { - _utils__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].validateFeedSlug(feedSlug); - _utils__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].validateUserId(userId); - return Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, '*', '*', { + utils/* default.validateFeedSlug */.Z.validateFeedSlug(feedSlug); + utils/* default.validateUserId */.Z.validateUserId(userId); + return (0,signing/* JWTScopeToken */.v)(this.apiSecret, '*', '*', { feedId: "".concat(feedSlug).concat(userId), expireTokens: this.expireTokens }); } /** * Returns a feed object for the given feed id and token - * @link https://getstream.io/docs/adding_activities/?language=js + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js * @method feed * @memberof StreamClient.prototype * @param {string} feedSlug - The feed slug @@ -2696,11 +2878,11 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "feed", value: function feed(feedSlug, userId, token) { - if (userId instanceof _user__WEBPACK_IMPORTED_MODULE_17__[/* StreamUser */ "a"]) userId = userId.id; + if (userId instanceof src_user/* StreamUser */.h) userId = userId.id; if (token === undefined) { if (this.usingApiSecret) { - token = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, '*', '*', { + token = (0,signing/* JWTScopeToken */.v)(this.apiSecret, '*', '*', { feedId: "".concat(feedSlug).concat(userId) }); } else { @@ -2708,7 +2890,7 @@ var StreamClient = /*#__PURE__*/function () { } } - return new _feed__WEBPACK_IMPORTED_MODULE_23__[/* StreamFeed */ "a"](this, feedSlug, userId || this.userId, token); + return new src_feed/* StreamFeed */.r(this, feedSlug, userId || this.userId, token); } /** * Combines the base url with version and the relative url @@ -2752,7 +2934,7 @@ var StreamClient = /*#__PURE__*/function () { value: function enrichKwargs(_ref2) { var method = _ref2.method, token = _ref2.token, - kwargs = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref2, ["method", "token"]); + kwargs = (0,objectWithoutProperties/* default */.Z)(_ref2, ["method", "token"]); return _objectSpread({ method: method, @@ -2815,7 +2997,7 @@ var StreamClient = /*#__PURE__*/function () { var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10; if (this.fayeClient === null) { - this.fayeClient = new faye__WEBPACK_IMPORTED_MODULE_8__["Client"](this.fayeUrl, { + this.fayeClient = new faye_browser.Client(this.fayeUrl, { timeout: timeout }); var authExtension = this.getFayeAuthorization(); @@ -2827,7 +3009,7 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "upload", value: function upload(url, uri, name, contentType, onUploadProgress) { - var fd = _utils__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].addFileToFormData(uri, name, contentType); + var fd = utils/* default.addFileToFormData */.Z.addFileToFormData(uri, name, contentType); return this.doAxiosRequest('POST', { url: url, body: fd, @@ -2900,7 +3082,7 @@ var StreamClient = /*#__PURE__*/function () { } /** * create a user token - * @link https://getstream.io/docs/feeds_getting_started/?language=js#generate-user-token-server-side + * @link https://getstream.io/activity-feeds/docs/node/feeds_getting_started/?language=js#generate-user-token-server-side * @param {string} userId * @param {object} extraData * @return {string} @@ -2913,13 +3095,13 @@ var StreamClient = /*#__PURE__*/function () { this._throwMissingApiSecret(); - return Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTUserSessionToken */ "b"])(this.apiSecret, userId, extraData, { + return (0,signing/* JWTUserSessionToken */.c)(this.apiSecret, userId, extraData, { noTimestamp: !this.expireTokens }); } /** * Updates all supplied activities on the stream - * @link https://getstream.io/docs/adding_activities/?language=js#updating-activities + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#updating-activities * @param {UpdateActivity[]} activities list of activities to update * @return {Promise} */ @@ -2933,7 +3115,7 @@ var StreamClient = /*#__PURE__*/function () { throw new TypeError('The activities argument should be an Array'); } - var token = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'activities', '*', { + var token = (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'activities', '*', { feedId: '*', expireTokens: this.expireTokens }); @@ -2947,7 +3129,7 @@ var StreamClient = /*#__PURE__*/function () { } /** * Updates one activity on the stream - * @link https://getstream.io/docs/adding_activities/?language=js#updating-activities + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#updating-activities * @param {UpdateActivity} activity The activity to update * @return {Promise} */ @@ -2961,7 +3143,7 @@ var StreamClient = /*#__PURE__*/function () { } /** * Retrieve activities by ID or foreign ID and time - * @link https://getstream.io/docs/add_many_activities/?language=js#batch-get-activities-by-id + * @link https://getstream.io/activity-feeds/docs/node/add_many_activities/?language=js#batch-get-activities-by-id * @param {object} params object containing either the list of activity IDs as {ids: ['...', ...]} or foreign IDs and time as {foreignIDTimes: [{foreignID: ..., time: ...}, ...]} * @return {Promise} */ @@ -2971,7 +3153,7 @@ var StreamClient = /*#__PURE__*/function () { value: function getActivities(_ref3) { var ids = _ref3.ids, foreignIDTimes = _ref3.foreignIDTimes, - params = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref3, ["ids", "foreignIDTimes"]); + params = (0,objectWithoutProperties/* default */.Z)(_ref3, ["ids", "foreignIDTimes"]); var extraParams = {}; @@ -3005,7 +3187,7 @@ var StreamClient = /*#__PURE__*/function () { var token = this.userToken; if (this.usingApiSecret) { - token = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'activities', '*', { + token = (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'activities', '*', { feedId: '*', expireTokens: this.expireTokens }); @@ -3023,7 +3205,7 @@ var StreamClient = /*#__PURE__*/function () { key: "getOrCreateToken", value: function getOrCreateToken() { if (!this._getOrCreateToken) { - this._getOrCreateToken = this.usingApiSecret ? Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, '*', '*', { + this._getOrCreateToken = this.usingApiSecret ? (0,signing/* JWTScopeToken */.v)(this.apiSecret, '*', '*', { feedId: '*' }) : this.userToken; } @@ -3033,14 +3215,14 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "user", value: function user(userId) { - return new _user__WEBPACK_IMPORTED_MODULE_17__[/* StreamUser */ "a"](this, userId, this.getOrCreateToken()); + return new src_user/* StreamUser */.h(this, userId, this.getOrCreateToken()); } }, { key: "setUser", value: function () { - var _setUser = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee2(data) { + var _setUser = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2(data) { var body, user; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee2$(_context2) { + return regenerator_default().wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: @@ -3049,7 +3231,7 @@ var StreamClient = /*#__PURE__*/function () { break; } - throw new _errors__WEBPACK_IMPORTED_MODULE_19__[/* SiteError */ "c"]('This method can only be used client-side using a user token'); + throw new errors/* SiteError */.z4('This method can only be used client-side using a user token'); case 2: body = _objectSpread({}, data); @@ -3099,7 +3281,7 @@ var StreamClient = /*#__PURE__*/function () { } /** * Update a single activity with partial operations. - * @link https://getstream.io/docs/adding_activities/?language=js&q=partial+#activity-partial-update + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js&q=partial+#activity-partial-update * @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:[...]. * @return {Promise>} * @example @@ -3133,10 +3315,10 @@ var StreamClient = /*#__PURE__*/function () { }, { key: "activityPartialUpdate", value: function () { - var _activityPartialUpdate = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee3(data) { + var _activityPartialUpdate = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee3(data) { var _yield$this$activitie, activities, response, _activities, activity; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee3$(_context3) { + return regenerator_default().wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: @@ -3146,8 +3328,8 @@ var StreamClient = /*#__PURE__*/function () { case 2: _yield$this$activitie = _context3.sent; activities = _yield$this$activitie.activities; - response = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_yield$this$activitie, ["activities"]); - _activities = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(activities, 1), activity = _activities[0]; + response = (0,objectWithoutProperties/* default */.Z)(_yield$this$activitie, ["activities"]); + _activities = (0,slicedToArray/* default */.Z)(activities, 1), activity = _activities[0]; return _context3.abrupt("return", _objectSpread(_objectSpread({}, activity), response)); case 7: @@ -3166,7 +3348,7 @@ var StreamClient = /*#__PURE__*/function () { }() /** * Update multiple activities with partial operations. - * @link https://getstream.io/docs/adding_activities/?language=js&q=partial+#activity-partial-update + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js&q=partial+#activity-partial-update * @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:[...]. * @return {Promise<{ activities: Activity[] }>} * @example @@ -3250,7 +3432,7 @@ var StreamClient = /*#__PURE__*/function () { var token = this.userToken; if (this.usingApiSecret) { - token = Object(_signing__WEBPACK_IMPORTED_MODULE_18__[/* JWTScopeToken */ "a"])(this.apiSecret, 'activities', '*', { + token = (0,signing/* JWTScopeToken */.v)(this.apiSecret, 'activities', '*', { feedId: '*', expireTokens: this.expireTokens }); @@ -3268,137 +3450,24 @@ var StreamClient = /*#__PURE__*/function () { return StreamClient; }(); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) /***/ }), -/* 25 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + +/***/ 3709: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Personalization; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); - - - - -/** - * Manage api calls for personalization - * The collection object contains convenience functions such as get, post, delete - * @class Personalization - */ -var Personalization = /*#__PURE__*/function () { - /** - * Initialize the Personalization class - * @link https://getstream.io/docs/personalization_introduction/?language=js - * @method constructor - * @memberof Personalization.prototype - * @param {StreamClient} client - The stream client - */ - function Personalization(client) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, Personalization); - - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "client", void 0); - - this.client = client; - } - /** - * Get personalized activities for this feed - * - * @method get - * @memberof Personalization.prototype - * @param {string} resource - personalized resource endpoint i.e "follow_recommendations" - * @param {object} options Additional options - * @return {Promise>} Promise object. Personalized feed - * @example client.personalization.get('follow_recommendations', {foo: 'bar', baz: 'qux'}) - */ - - - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(Personalization, [{ - key: "get", - value: function get(resource) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return this.client.get({ - url: "".concat(resource, "/"), - serviceName: 'personalization', - qs: options, - token: options.token || this.client.getPersonalizationToken() - }); - } - /** - * Post data to personalization endpoint - * - * @method post - * @memberof Personalization.prototype - * @param {string} resource - personalized resource endpoint i.e "follow_recommendations" - * @param {object} options - Additional options - * @param {object} data - Data to send in the payload - * @return {Promise>} Promise object. Data that was posted if successful, or an error. - * @example client.personalization.post('follow_recommendations', {foo: 'bar', baz: 'qux'}) - */ - - }, { - key: "post", - value: function post(resource) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - return this.client.post({ - url: "".concat(resource, "/"), - serviceName: 'personalization', - qs: options, - body: data, - token: this.client.getPersonalizationToken() - }); - } - /** - * Delete metadata or activities - * - * @method delete - * @memberof Personalization.prototype - * @param {object} resource - personalized resource endpoint i.e "follow_recommendations" - * @param {object} options - Additional options - * @return {Promise>} Promise object. Data that was deleted if successful, or an error. - * @example client.personalization.delete('follow_recommendations', {foo: 'bar', baz: 'qux'}) - */ - - }, { - key: "delete", - value: function _delete(resource) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return this.client.delete({ - url: "".concat(resource, "/"), - serviceName: 'personalization', - qs: options, - token: this.client.getPersonalizationToken() - }); - } - }]); - - return Personalization; -}(); - -/***/ }), -/* 26 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CollectionEntry; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Collections; }); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "R": () => (/* binding */ CollectionEntry), +/* harmony export */ "n": () => (/* binding */ Collections) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2137); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6156); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7757); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1964); @@ -3407,19 +3476,19 @@ var Personalization = /*#__PURE__*/function () { var CollectionEntry = /*#__PURE__*/function () { // eslint-disable-line no-use-before-define - // eslint-disable-next-line no-use-before-define - function CollectionEntry(store, collection, id, data) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, CollectionEntry); + function CollectionEntry( // eslint-disable-next-line no-use-before-define + store, collection, id, data) { + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, CollectionEntry); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "id", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "id", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "collection", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "collection", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "store", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "store", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "data", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "data", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "full", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "full", void 0); this.collection = collection; this.store = store; @@ -3427,7 +3496,7 @@ var CollectionEntry = /*#__PURE__*/function () { this.data = data; } - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(CollectionEntry, [{ + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)(CollectionEntry, [{ key: "ref", value: function ref() { return "SO:".concat(this.collection, ":").concat(this.id); @@ -3443,9 +3512,9 @@ var CollectionEntry = /*#__PURE__*/function () { }, { key: "get", value: function () { - var _get = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + var _get = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee() { var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: @@ -3474,7 +3543,7 @@ var CollectionEntry = /*#__PURE__*/function () { }() /** * Add item to collection - * @link https://getstream.io/docs/collections_introduction/?language=js#adding-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#adding-collections * @method add * @memberof CollectionEntry.prototype * @return {Promise>} @@ -3484,9 +3553,9 @@ var CollectionEntry = /*#__PURE__*/function () { }, { key: "add", value: function () { - var _add = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { + var _add = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee2() { var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: @@ -3515,7 +3584,7 @@ var CollectionEntry = /*#__PURE__*/function () { }() /** * Update item in the object storage - * @link https://getstream.io/docs/collections_introduction/?language=js#updating-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#updating-collections * @method update * @memberof CollectionEntry.prototype * @return {Promise>} @@ -3526,9 +3595,9 @@ var CollectionEntry = /*#__PURE__*/function () { }, { key: "update", value: function () { - var _update = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3() { + var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3() { var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: @@ -3557,7 +3626,7 @@ var CollectionEntry = /*#__PURE__*/function () { }() /** * Delete item from collection - * @link https://getstream.io/docs/collections_introduction/?language=js#removing-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#removing-collections * @method delete * @memberof CollectionEntry.prototype * @return {Promise} @@ -3567,9 +3636,9 @@ var CollectionEntry = /*#__PURE__*/function () { }, { key: "delete", value: function () { - var _delete2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4() { + var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee4() { var response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: @@ -3609,13 +3678,13 @@ var Collections = /*#__PURE__*/function () { * @param {string} token JWT token */ function Collections(client, token) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, Collections); + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, Collections); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "client", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "client", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "token", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "token", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()(this, "buildURL", function (collection, itemId) { + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(this, "buildURL", function (collection, itemId) { var url = "collections/".concat(collection, "/"); return itemId === undefined ? url : "".concat(url).concat(itemId, "/"); }); @@ -3624,14 +3693,14 @@ var Collections = /*#__PURE__*/function () { this.token = token; } - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(Collections, [{ + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)(Collections, [{ key: "entry", value: function entry(collection, itemId, itemData) { return new CollectionEntry(this, collection, itemId, itemData); } /** * get item from collection - * @link https://getstream.io/docs/collections_introduction/?language=js#retrieving-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#retrieving-collections * @method get * @memberof Collections.prototype * @param {string} collection collection name @@ -3643,9 +3712,9 @@ var Collections = /*#__PURE__*/function () { }, { key: "get", value: function () { - var _get2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5(collection, itemId) { + var _get2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee5(collection, itemId) { var response, entry; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: @@ -3677,7 +3746,7 @@ var Collections = /*#__PURE__*/function () { }() /** * Add item to collection - * @link https://getstream.io/docs/collections_introduction/?language=js#adding-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#adding-collections * @method add * @memberof Collections.prototype * @param {string} collection collection name @@ -3690,9 +3759,9 @@ var Collections = /*#__PURE__*/function () { }, { key: "add", value: function () { - var _add2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6(collection, itemId, itemData) { + var _add2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee6(collection, itemId, itemData) { var response, entry; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: @@ -3728,7 +3797,7 @@ var Collections = /*#__PURE__*/function () { }() /** * Update entry in the collection - * @link https://getstream.io/docs/collections_introduction/?language=js#updating-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#updating-collections * @method update * @memberof Collections.prototype * @param {string} collection collection name @@ -3742,9 +3811,9 @@ var Collections = /*#__PURE__*/function () { }, { key: "update", value: function () { - var _update2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee7(collection, entryId, data) { + var _update2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee7(collection, entryId, data) { var response, entry; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee7$(_context7) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: @@ -3779,7 +3848,7 @@ var Collections = /*#__PURE__*/function () { }() /** * Delete entry from collection - * @link https://getstream.io/docs/collections_introduction/?language=js#removing-collections + * @link https://getstream.io/activity-feeds/docs/node/collections_introduction/?language=js#removing-collections * @method delete * @memberof Collections.prototype * @param {string} collection collection name @@ -3798,7 +3867,7 @@ var Collections = /*#__PURE__*/function () { } /** * Upsert one or more items within a collection. - * @link https://getstream.io/docs/collections_batch/?language=js#upsert + * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#upsert * @method upsert * @memberof Collections.prototype * @param {string} collection collection name @@ -3810,7 +3879,7 @@ var Collections = /*#__PURE__*/function () { key: "upsert", value: function upsert(collection, data) { if (!this.client.usingApiSecret) { - throw new _errors__WEBPACK_IMPORTED_MODULE_5__[/* SiteError */ "c"]('This method can only be used server-side using your API Secret'); + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .SiteError */ .z4('This method can only be used server-side using your API Secret'); } if (!Array.isArray(data)) data = [data]; @@ -3818,14 +3887,14 @@ var Collections = /*#__PURE__*/function () { url: 'collections/', serviceName: 'api', body: { - data: _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4___default()({}, collection, data) + data: (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)({}, collection, data) }, token: this.client.getCollectionsToken() }); } /** * Select all objects with ids from the collection. - * @link https://getstream.io/docs/collections_batch/?language=js#select + * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#select * @method select * @memberof Collections.prototype * @param {string} collection collection name @@ -3837,7 +3906,7 @@ var Collections = /*#__PURE__*/function () { key: "select", value: function select(collection, ids) { if (!this.client.usingApiSecret) { - throw new _errors__WEBPACK_IMPORTED_MODULE_5__[/* SiteError */ "c"]('This method can only be used server-side using your API Secret'); + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .SiteError */ .z4('This method can only be used server-side using your API Secret'); } if (!Array.isArray(ids)) ids = [ids]; @@ -3854,7 +3923,7 @@ var Collections = /*#__PURE__*/function () { } /** * Remove all objects by id from the collection. - * @link https://getstream.io/docs/collections_batch/?language=js#delete_many + * @link https://getstream.io/activity-feeds/docs/node/collections_batch/?language=js#delete_many * @method delete * @memberof Collections.prototype * @param {string} collection collection name @@ -3866,7 +3935,7 @@ var Collections = /*#__PURE__*/function () { key: "deleteMany", value: function deleteMany(collection, ids) { if (!this.client.usingApiSecret) { - throw new _errors__WEBPACK_IMPORTED_MODULE_5__[/* SiteError */ "c"]('This method can only be used server-side using your API Secret'); + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .SiteError */ .z4('This method can only be used server-side using your API Secret'); } if (!Array.isArray(ids)) ids = [ids]; @@ -3889,515 +3958,382 @@ var Collections = /*#__PURE__*/function () { }(); /***/ }), -/* 27 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamFileStore; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); - - - -var StreamFileStore = /*#__PURE__*/function () { - function StreamFileStore(client, token) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, StreamFileStore); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "client", void 0); +/***/ 2631: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "token", void 0); - - this.client = client; - this.token = token; - } // React Native does not auto-detect MIME type, you need to pass that via contentType - // param. If you don't then Android will refuse to perform the upload +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$": () => (/* binding */ connect) +/* harmony export */ }); +/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6663); - /** - * upload a File instance or a readable stream of data - * @link https://getstream.io/docs/files_introduction/?language=js#upload - * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI - * @param {string} [name] - file name - * @param {string} [contentType] - mime-type - * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress - * @return {Promise} - */ +/** + * Create StreamClient + * @link https://getstream.io/activity-feeds/docs/node/feeds_getting_started/?language=js#setup + * @method connect + * @param {string} apiKey API key + * @param {string} [apiSecret] API secret (only use this on the server) + * @param {string} [appId] Application identifier + * @param {ClientOptions} [options] - additional options + * @param {string} [options.location] - which data center to use + * @param {boolean} [options.expireTokens=false] - whether to use a JWT timestamp field (i.e. iat) + * @param {string} [options.version] - advanced usage, custom api version + * @param {boolean} [options.keepAlive] - axios keepAlive, default to true + * @param {number} [options.timeout] - axios timeout in Ms, default to 10s + * @return {StreamClient} StreamClient + * @example Basic usage + * stream.connect(apiKey, apiSecret); + * @example or if you want to be able to subscribe and listen + * stream.connect(apiKey, apiSecret, appId); + * @example or on Heroku + * stream.connect(streamURL); + * @example where streamURL looks like + * "https://thierry:pass@gestream.io/?app=1" + */ +function connect(apiKey, apiSecret, appId, options) { + var _process$env; - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(StreamFileStore, [{ - key: "upload", - value: function upload(uri, name, contentType, onUploadProgress) { - return this.client.upload('files/', uri, name, contentType, onUploadProgress); - } - /** - * delete an uploaded file - * @link https://getstream.io/docs/files_introduction/?language=js#delete - * @param {string} uri - */ + if (typeof process !== 'undefined' && (_process$env = process.env) !== null && _process$env !== void 0 && _process$env.STREAM_URL && !apiKey) { + var parts = /https:\/\/(\w+):(\w+)@([\w-]*).*\?app_id=(\d+)/.exec(process.env.STREAM_URL) || []; + apiKey = parts[1]; + apiSecret = parts[2]; + var location = parts[3]; + appId = parts[4]; - }, { - key: "delete", - value: function _delete(uri) { - return this.client.delete({ - url: "files/", - qs: { - url: uri - }, - token: this.token - }); + if (options === undefined) { + options = {}; } - /** - * Explicitly refresh CDN urls for uploaded files on the Stream CDN (only needed for files on the Stream CDN). - * Note that Stream CDN is not enabled by default, if in doubt please contact us. - * @param {string} uri full uploaded file url that needs to be refreshed - * @return {Promise} - */ - }, { - key: "refreshUrl", - value: function refreshUrl(uri) { - return this.client.post({ - url: 'files/refresh/', - body: { - url: uri - }, - token: this.token - }); + if (location !== 'getstream' && location !== 'stream-io-api') { + options.location = location; } - }]); + } - return StreamFileStore; -}(); + return new _client__WEBPACK_IMPORTED_MODULE_0__/* .StreamClient */ .n(apiKey, apiSecret, appId, options); +} /***/ }), -/* 28 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + +/***/ 1964: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamImageStore; }); -/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65); -/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "IY": () => (/* binding */ FeedError), + "uA": () => (/* binding */ MissingSchemaError), + "z4": () => (/* binding */ SiteError), + "eY": () => (/* binding */ StreamApiError) +}); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(6610); +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; -var StreamImageStore = /*#__PURE__*/function () { - function StreamImageStore(client, token) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, StreamImageStore); + return _setPrototypeOf(o, p); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "client", void 0); +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "token", void 0); + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js +var esm_typeof = __webpack_require__(484); +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js - this.client = client; - this.token = token; - } // React Native does not auto-detect MIME type, you need to pass that via contentType - // param. If you don't then Android will refuse to perform the upload - /** - * upload an Image File instance or a readable stream of data - * @link https://getstream.io/docs/files_introduction/?language=js#upload - * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI - * @param {string} [name] - file name - * @param {string} [contentType] - mime-type - * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress - * @return {Promise} - */ +function _possibleConstructorReturn(self, call) { + if (call && ((0,esm_typeof/* default */.Z)(call) === "object" || typeof call === "function")) { + return call; + } + return _assertThisInitialized(self); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(StreamImageStore, [{ - key: "upload", - value: function upload(uri, name, contentType, onUploadProgress) { - return this.client.upload('images/', uri, name, contentType, onUploadProgress); - } - /** - * delete an uploaded image - * @link https://getstream.io/docs/files_introduction/?language=js#delete - * @param {string} uri - */ + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/construct.js - }, { - key: "delete", - value: function _delete(uri) { - return this.client.delete({ - url: "images/", - qs: { - url: uri - }, - token: this.token - }); - } - /** - * Explicitly refresh CDN urls for uploaded images on the Stream CDN (only needed for files on the Stream CDN). - * Note that Stream CDN is not enabled by default, if in doubt please contact us. - * @param {string} uri full uploaded image url that needs to be refreshed - * @return {Promise} - */ - }, { - key: "refreshUrl", - value: function refreshUrl(uri) { - return this.client.post({ - url: 'images/refresh/', - body: { - url: uri - }, - token: this.token - }); - } - /** - * Generate a diffrent variant of the uploaded image - * @link https://getstream.io/docs/files_introduction/?language=js#image_processing - * @param {string} uri - * @param {ImageProcessOptions} options - */ +function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } - }, { - key: "process", - value: function process(uri, options) { - var params = _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()(options, { - url: uri - }); + return _construct.apply(null, arguments); +} +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js - if (Array.isArray(params.crop)) { - params.crop = params.crop.join(','); - } - return this.client.get({ - url: "images/", - qs: params, - token: this.token - }); + + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); } - /** - * Generate a thumbnail for a given image - * @link https://getstream.io/docs/files_introduction/?language=js#image_processing - * @param {string} uri - * @param {number|string} w - * @param {number|string} h - * @param {Object} [options] - */ - }, { - key: "thumbnail", - value: function thumbnail(uri, w, h) { - var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { - crop: 'center', - resize: 'clip' - }, - crop = _ref.crop, - resize = _ref.resize; + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); - return this.process(uri, { - w: w, - h: h, - crop: crop, - resize: resize - }); + _cache.set(Class, Wrapper); } - }]); - return StreamImageStore; -}(); + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } -/***/ }), -/* 29 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamReaction; }); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); + return _wrapNativeSuper(Class); +} +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(6156); +;// CONCATENATED MODULE: ./src/errors.ts -var StreamReaction = /*#__PURE__*/function () { - /** - * Initialize a reaction object - * @link https://getstream.io/docs/reactions_introduction/?language=js - * @method constructor - * @memberof StreamReaction.prototype - * @param {StreamClient} client Stream client this feed is constructed from - * @param {string} token JWT token - * @example new StreamReaction(client, "eyJhbGciOiJIUzI1...") - */ - function StreamReaction(client, token) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, StreamReaction); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "client", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "token", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "buildURL", function () { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } +function _createSuper(Derived) { var hasNativeReflectConstruct = errors_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - return "".concat(['reaction'].concat(args).join('/'), "/"); - }); +function errors_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3___default()(this, "_convertTargetFeeds", function () { - var targetFeeds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - return targetFeeds.map(function (elem) { - return typeof elem === 'string' ? elem : elem.id; - }); - }); +var canCapture = typeof Error.captureStackTrace === 'function'; +var canStack = !!new Error().stack; +/** + * Abstract error object + * @class ErrorAbstract + * @access private + * @param {string} [msg] Error message + */ - this.client = client; - this.token = token; - } +var ErrorAbstract = /*#__PURE__*/function (_Error) { + _inherits(ErrorAbstract, _Error); - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(StreamReaction, [{ - key: "add", + var _super = _createSuper(ErrorAbstract); - /** - * add reaction - * @link https://getstream.io/docs/reactions_introduction/?language=js#adding-reactions - * @method add - * @memberof StreamReaction.prototype - * @param {string} kind kind of reaction - * @param {string} activity Activity or an ActivityID - * @param {ReactionType} data data related to reaction - * @param {object} [options] - * @param {string} [options.id] id associated with reaction - * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction - * @param {string} [options.userId] useful for adding reaction with server token - * @param {object} [options.targetFeedsExtraData] extra data related to target feeds - * @return {Promise>} - * @example reactions.add("like", "0c7db91c-67f9-11e8-bcd9-fe00a9219401") - * @example reactions.add("comment", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", {"text": "love it!"},) - */ - value: function add(kind, activity, data) { - var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, - id = _ref.id, - _ref$targetFeeds = _ref.targetFeeds, - targetFeeds = _ref$targetFeeds === void 0 ? [] : _ref$targetFeeds, - userId = _ref.userId, - targetFeedsExtraData = _ref.targetFeedsExtraData; + function ErrorAbstract(msg) { + var _this; - var body = { - id: id, - activity_id: activity instanceof Object ? activity.id : activity, - kind: kind, - data: data || {}, - target_feeds: this._convertTargetFeeds(targetFeeds), - user_id: userId - }; + (0,classCallCheck/* default */.Z)(this, ErrorAbstract); - if (targetFeedsExtraData != null) { - body.target_feeds_extra_data = targetFeedsExtraData; - } + _this = _super.call(this, msg); - return this.client.post({ - url: this.buildURL(), - body: body, - token: this.token - }); + (0,defineProperty/* default */.Z)(_assertThisInitialized(_this), "message", void 0); + + _this.message = msg; + + if (canCapture) { + Error.captureStackTrace(_assertThisInitialized(_this), ErrorAbstract.constructor); + } else if (canStack) { + _this.stack = new Error().stack; + } else { + _this.stack = ''; } - /** - * add child reaction - * @link https://getstream.io/docs/reactions_add_child/?language=js - * @method addChild - * @memberof StreamReaction.prototype - * @param {string} kind kind of reaction - * @param {string} reaction Reaction or a ReactionID - * @param {ChildReactionType} data data related to reaction - * @param {object} [options] - * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction - * @param {string} [options.userId] useful for adding reaction with server token - * @param {object} [options.targetFeedsExtraData] extra data related to target feeds - * @return {Promise>} - * @example reactions.add("like", "0c7db91c-67f9-11e8-bcd9-fe00a9219401") - * @example reactions.add("comment", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", {"text": "love it!"},) - */ - }, { - key: "addChild", - value: function addChild(kind, reaction, data) { - var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, - _ref2$targetFeeds = _ref2.targetFeeds, - targetFeeds = _ref2$targetFeeds === void 0 ? [] : _ref2$targetFeeds, - userId = _ref2.userId, - targetFeedsExtraData = _ref2.targetFeedsExtraData; + return _this; + } - var body = { - parent: reaction instanceof Object ? reaction.id : reaction, - kind: kind, - data: data || {}, - target_feeds: this._convertTargetFeeds(targetFeeds), - user_id: userId - }; + return ErrorAbstract; +}( /*#__PURE__*/_wrapNativeSuper(Error)); +/** + * FeedError + * @class FeedError + * @access private + * @extends ErrorAbstract + * @memberof Stream.errors + * @param {String} [msg] - An error message that will probably end up in a log. + */ - if (targetFeedsExtraData != null) { - body.target_feeds_extra_data = targetFeedsExtraData; - } - return this.client.post({ - url: this.buildURL(), - body: body, - token: this.token - }); - } - /** - * get reaction - * @link https://getstream.io/docs/reactions_introduction/?language=js#retrieving-reactions - * @method get - * @memberof StreamReaction.prototype - * @param {string} id Reaction Id - * @return {Promise>} - * @example reactions.get("67b3e3b5-b201-4697-96ac-482eb14f88ec") - */ +var FeedError = /*#__PURE__*/function (_ErrorAbstract) { + _inherits(FeedError, _ErrorAbstract); - }, { - key: "get", - value: function get(id) { - return this.client.get({ - url: this.buildURL(id), - token: this.token - }); - } - /** - * 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 - * id_lt and id_lte return reactions order by creation descending starting from the reaction with the ID provided, when id_lte is used - * the reaction with ID equal to the value provided is included. - * 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 - * the reaction with ID equal to the value provided is included. - * results are limited to 25 at most and are ordered newest to oldest by default. - * @link https://getstream.io/docs/reactions_introduction/?language=js#retrieving-reactions - * @method filter - * @memberof StreamReaction.prototype - * @param {object} conditions Reaction Id {activity_id|user_id|reaction_id:string, kind:string, limit:integer} - * @return {Promise>} - * @example reactions.filter({activity_id: "0c7db91c-67f9-11e8-bcd9-fe00a9219401", kind:"like"}) - * @example reactions.filter({user_id: "john", kinds:"like"}) - */ + var _super2 = _createSuper(FeedError); - }, { - key: "filter", - value: function filter(conditions) { - var userId = conditions.user_id, - activityId = conditions.activity_id, - reactionId = conditions.reaction_id, - qs = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0___default()(conditions, ["user_id", "activity_id", "reaction_id"]); + function FeedError() { + (0,classCallCheck/* default */.Z)(this, FeedError); - if (!qs.limit) { - qs.limit = 10; - } + return _super2.apply(this, arguments); + } - if ((userId ? 1 : 0) + (activityId ? 1 : 0) + (reactionId ? 1 : 0) !== 1) { - throw new _errors__WEBPACK_IMPORTED_MODULE_4__[/* SiteError */ "c"]('Must provide exactly one value for one of these params: user_id, activity_id, reaction_id'); - } + return FeedError; +}(ErrorAbstract); +/** + * SiteError + * @class SiteError + * @access private + * @extends ErrorAbstract + * @memberof Stream.errors + * @param {string} [msg] An error message that will probably end up in a log. + */ - var lookupType = userId && 'user_id' || activityId && 'activity_id' || reactionId && 'reaction_id'; - var value = userId || activityId || reactionId; - var url = conditions.kind ? this.buildURL(lookupType, value, conditions.kind) : this.buildURL(lookupType, value); - return this.client.get({ - url: url, - qs: qs, - token: this.token - }); - } - /** - * update reaction - * @link https://getstream.io/docs/reactions_introduction/?language=js#updating-reactions - * @method update - * @memberof StreamReaction.prototype - * @param {string} id Reaction Id - * @param {ReactionType | ChildReactionType} data Data associated to reaction or childReaction - * @param {object} [options] - * @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. - * @param {object} [options.targetFeedsExtraData] extra data related to target feeds - * @return {Promise>} - * @example reactions.update("67b3e3b5-b201-4697-96ac-482eb14f88ec", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", "like") - * @example reactions.update("67b3e3b5-b201-4697-96ac-482eb14f88ec", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", "comment", {"text": "love it!"},) - */ +var SiteError = /*#__PURE__*/function (_ErrorAbstract2) { + _inherits(SiteError, _ErrorAbstract2); - }, { - key: "update", - value: function update(id, data) { - var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - _ref3$targetFeeds = _ref3.targetFeeds, - targetFeeds = _ref3$targetFeeds === void 0 ? [] : _ref3$targetFeeds, - targetFeedsExtraData = _ref3.targetFeedsExtraData; + var _super3 = _createSuper(SiteError); - var body = { - data: data, - target_feeds: this._convertTargetFeeds(targetFeeds) - }; + function SiteError() { + (0,classCallCheck/* default */.Z)(this, SiteError); - if (targetFeedsExtraData != null) { - body.target_feeds_extra_data = targetFeedsExtraData; - } + return _super3.apply(this, arguments); + } - return this.client.put({ - url: this.buildURL(id), - body: body, - token: this.token - }); - } - /** - * delete reaction - * @link https://getstream.io/docs/reactions_introduction/?language=js#removing-reactions - * @method delete - * @memberof StreamReaction.prototype - * @param {string} id Reaction Id - * @return {Promise} - * @example reactions.delete("67b3e3b5-b201-4697-96ac-482eb14f88ec") - */ + return SiteError; +}(ErrorAbstract); +/** + * MissingSchemaError + * @method MissingSchemaError + * @access private + * @extends ErrorAbstract + * @memberof Stream.errors + * @param {string} msg + */ - }, { - key: "delete", - value: function _delete(id) { - return this.client.delete({ - url: this.buildURL(id), - token: this.token - }); - } - }]); +var MissingSchemaError = /*#__PURE__*/function (_ErrorAbstract3) { + _inherits(MissingSchemaError, _ErrorAbstract3); - return StreamReaction; -}(); + var _super4 = _createSuper(MissingSchemaError); + + function MissingSchemaError() { + (0,classCallCheck/* default */.Z)(this, MissingSchemaError); + + return _super4.apply(this, arguments); + } + + return MissingSchemaError; +}(ErrorAbstract); +/** + * StreamApiError + * @method StreamApiError + * @access private + * @extends ErrorAbstract + * @memberof Stream.errors + * @param {string} msg + * @param {object} data + * @param {object} response + */ + +var StreamApiError = /*#__PURE__*/function (_ErrorAbstract4) { + _inherits(StreamApiError, _ErrorAbstract4); + + var _super5 = _createSuper(StreamApiError); + + function StreamApiError(msg, data, response) { + var _this2; + + (0,classCallCheck/* default */.Z)(this, StreamApiError); + + _this2 = _super5.call(this, msg); + + (0,defineProperty/* default */.Z)(_assertThisInitialized(_this2), "error", void 0); + + (0,defineProperty/* default */.Z)(_assertThisInitialized(_this2), "response", void 0); + + _this2.error = data; + _this2.response = response; + return _this2; + } + + return StreamApiError; +}(ErrorAbstract); /***/ }), -/* 30 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + +/***/ 7248: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StreamFeed; }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* binding */ StreamFeed) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6156); +/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7878); +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1964); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2637); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /// @@ -4412,7 +4348,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va var StreamFeed = /*#__PURE__*/function () { /** * Initialize a feed object - * @link https://getstream.io/docs/adding_activities/?language=js + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js * @method constructor * @memberof StreamFeed.prototype * @param {StreamClient} client - The stream client this feed is constructed from @@ -4421,37 +4357,37 @@ var StreamFeed = /*#__PURE__*/function () { * @param {string} [token] - The authentication token */ function StreamFeed(client, feedSlug, userId, token) { - _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, StreamFeed); + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)(this, StreamFeed); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "client", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "client", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "token", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "token", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "id", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "id", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "slug", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "slug", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "userId", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "userId", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "feedUrl", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "feedUrl", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "feedTogether", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "feedTogether", void 0); - _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "notificationChannel", void 0); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, "notificationChannel", void 0); if (!feedSlug || !userId) { - throw new _errors__WEBPACK_IMPORTED_MODULE_4__[/* FeedError */ "a"]('Please provide a feed slug and user id, ie client.feed("user", "1")'); + throw new _errors__WEBPACK_IMPORTED_MODULE_2__/* .FeedError */ .IY('Please provide a feed slug and user id, ie client.feed("user", "1")'); } if (feedSlug.indexOf(':') !== -1) { - throw new _errors__WEBPACK_IMPORTED_MODULE_4__[/* FeedError */ "a"]('Please initialize the feed using client.feed("user", "1") not client.feed("user:1")'); + throw new _errors__WEBPACK_IMPORTED_MODULE_2__/* .FeedError */ .IY('Please initialize the feed using client.feed("user", "1") not client.feed("user:1")'); } - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateFeedSlug(feedSlug); - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateUserId(userId); // raise an error if there is no token + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateFeedSlug */ .Z.validateFeedSlug(feedSlug); + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateUserId */ .Z.validateUserId(userId); // raise an error if there is no token if (!token) { - throw new _errors__WEBPACK_IMPORTED_MODULE_4__[/* FeedError */ "a"]('Missing token, in client side mode please provide a feed secret'); + throw new _errors__WEBPACK_IMPORTED_MODULE_2__/* .FeedError */ .IY('Missing token, in client side mode please provide a feed secret'); } this.client = client; @@ -4466,7 +4402,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Adds the given activity to the feed - * @link https://getstream.io/docs/adding_activities/?language=js#adding-activities-basic + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#adding-activities-basic * @method addActivity * @memberof StreamFeed.prototype * @param {NewActivity} activity - The activity to add @@ -4474,10 +4410,10 @@ var StreamFeed = /*#__PURE__*/function () { */ - _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(StreamFeed, [{ + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__/* .default */ .Z)(StreamFeed, [{ key: "addActivity", value: function addActivity(activity) { - activity = _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].replaceStreamObjects(activity); + activity = _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.replaceStreamObjects */ .Z.replaceStreamObjects(activity); if (!activity.actor && this.client.currentUser) { activity.actor = this.client.currentUser.ref(); @@ -4491,7 +4427,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Removes the activity by activityId or foreignId - * @link https://getstream.io/docs/adding_activities/?language=js#removing-activities + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#removing-activities * @method removeActivity * @memberof StreamFeed.prototype * @param {string} activityId Identifier of activity to remove @@ -4513,7 +4449,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Adds the given activities to the feed - * @link https://getstream.io/docs/add_many_activities/?language=js#batch-add-activities + * @link https://getstream.io/activity-feeds/docs/node/add_many_activities/?language=js#batch-add-activities * @method addActivities * @memberof StreamFeed.prototype * @param {NewActivity[]} activities Array of activities to add @@ -4526,14 +4462,14 @@ var StreamFeed = /*#__PURE__*/function () { return this.client.post({ url: "feed/".concat(this.feedUrl, "/"), body: { - activities: _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].replaceStreamObjects(activities) + activities: _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.replaceStreamObjects */ .Z.replaceStreamObjects(activities) }, token: this.token }); } /** * Follows the given target feed - * @link https://getstream.io/docs/following/?language=js + * @link https://getstream.io/activity-feeds/docs/node/following/?language=js * @method follow * @memberof StreamFeed.prototype * @param {string} targetSlug Slug of the target feed @@ -4551,12 +4487,12 @@ var StreamFeed = /*#__PURE__*/function () { value: function follow(targetSlug, targetUserId) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - if (targetUserId instanceof _user__WEBPACK_IMPORTED_MODULE_3__[/* StreamUser */ "a"]) { + if (targetUserId instanceof _user__WEBPACK_IMPORTED_MODULE_1__/* .StreamUser */ .h) { targetUserId = targetUserId.id; } - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateFeedSlug(targetSlug); - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateUserId(targetUserId); + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateFeedSlug */ .Z.validateFeedSlug(targetSlug); + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateUserId */ .Z.validateUserId(targetUserId); var body = { target: "".concat(targetSlug, ":").concat(targetUserId) }; @@ -4569,7 +4505,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Unfollow the given feed - * @link https://getstream.io/docs/following/?language=js#unfollowing-feeds + * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#unfollowing-feeds * @method unfollow * @memberof StreamFeed.prototype * @param {string} targetSlug Slug of the target feed @@ -4587,8 +4523,8 @@ var StreamFeed = /*#__PURE__*/function () { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var qs = {}; if (typeof options.keepHistory === 'boolean' && options.keepHistory) qs.keep_history = '1'; - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateFeedSlug(targetSlug); - _utils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].validateUserId(targetUserId); + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateFeedSlug */ .Z.validateFeedSlug(targetSlug); + _utils__WEBPACK_IMPORTED_MODULE_3__/* .default.validateUserId */ .Z.validateUserId(targetUserId); var targetFeedId = "".concat(targetSlug, ":").concat(targetUserId); return this.client.delete({ url: "feed/".concat(this.feedUrl, "/following/").concat(targetFeedId, "/"), @@ -4598,7 +4534,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * List which feeds this feed is following - * @link https://getstream.io/docs/following/?language=js#reading-followed-feeds + * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-followed-feeds * @method following * @memberof StreamFeed.prototype * @param {GetFollowOptions} [options] Additional options @@ -4623,7 +4559,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * List the followers of this feed - * @link https://getstream.io/docs/following/?language=js#reading-feed-followers + * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-feed-followers * @method followers * @memberof StreamFeed.prototype * @param {GetFollowOptions} [options] Additional options @@ -4649,7 +4585,7 @@ var StreamFeed = /*#__PURE__*/function () { /** * Retrieve the number of follower and following feed stats of the current feed. * For each count, feed slugs can be provided to filter counts accordingly. - * @link https://getstream.io/docs/following/?language=js#reading-follow-stats + * @link https://getstream.io/activity-feeds/docs/node/following/?language=js#reading-follow-stats * @method followStats * @param {object} [options] * @param {string[]} [options.followerSlugs] find counts only on these slugs @@ -4677,7 +4613,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Reads the feed - * @link https://getstream.io/docs/adding_activities/?language=js#retrieving-activities + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#retrieving-activities * @method get * @memberof StreamFeed.prototype * @param {GetFeedOptions & NotificationFeedOptions} options Additional options @@ -4710,7 +4646,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Retrieves one activity from a feed and adds enrichment - * @link https://getstream.io/docs/adding_activities/?language=js#retrieving-activities + * @link https://getstream.io/activity-feeds/docs/node/adding_activities/?language=js#retrieving-activities * @method getActivityDetail * @memberof StreamFeed.prototype * @param {string} activityId Identifier of activity to retrieve @@ -4746,10 +4682,10 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Subscribes to any changes in the feed, return a promise - * @link https://getstream.io/docs/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client + * @link https://getstream.io/activity-feeds/docs/node/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client * @method subscribe * @memberof StreamFeed.prototype - * @param {function} callback Callback to call on completion + * @param {function} Faye.Callback> Callback to call on completion * @return {Promise} * @example * feed.subscribe(callback).then(function(){ @@ -4761,7 +4697,7 @@ var StreamFeed = /*#__PURE__*/function () { key: "subscribe", value: function subscribe(callback) { if (!this.client.appId) { - throw new _errors__WEBPACK_IMPORTED_MODULE_4__[/* SiteError */ "c"]('Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);'); + throw new _errors__WEBPACK_IMPORTED_MODULE_2__/* .SiteError */ .z4('Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);'); } var subscription = this.getFayeClient().subscribe("/".concat(this.notificationChannel), callback); @@ -4774,7 +4710,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Cancel updates created via feed.subscribe() - * @link https://getstream.io/docs/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client + * @link https://getstream.io/activity-feeds/docs/node/web_and_mobile/?language=js#subscribe-to-realtime-updates-via-api-client * @return void */ @@ -4790,7 +4726,7 @@ var StreamFeed = /*#__PURE__*/function () { } /** * Updates an activity's "to" fields - * @link https://getstream.io/docs/targeting/?language=js + * @link https://getstream.io/activity-feeds/docs/node/targeting/?language=js * @param {string} foreignId The foreign_id of the activity to update * @param {string} time The time of the activity to update * @param {string[]} newTargets Set the new "to" targets for the activity - will remove old targets @@ -4842,993 +4778,1330 @@ var StreamFeed = /*#__PURE__*/function () { }(); /***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { -var arrayWithHoles = __webpack_require__(69); +/***/ 448: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -var iterableToArrayLimit = __webpack_require__(70); +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ StreamFileStore) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6156); -var unsupportedIterableToArray = __webpack_require__(71); -var nonIterableRest = __webpack_require__(73); -function _slicedToArray(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} +var StreamFileStore = /*#__PURE__*/function () { + function StreamFileStore(client, token) { + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, StreamFileStore); -module.exports = _slicedToArray; + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "client", void 0); -/***/ }), -/* 32 */ -/***/ (function(module, exports) { + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "token", void 0); -function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} + this.client = client; + this.token = token; + } // React Native does not auto-detect MIME type, you need to pass that via contentType + // param. If you don't then Android will refuse to perform the upload + + /** + * upload a File instance or a readable stream of data + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#upload + * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI + * @param {string} [name] - file name + * @param {string} [contentType] - mime-type + * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress + * @return {Promise} + */ + + + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(StreamFileStore, [{ + key: "upload", + value: function upload(uri, name, contentType, onUploadProgress) { + return this.client.upload('files/', uri, name, contentType, onUploadProgress); + } + /** + * delete an uploaded file + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#delete + * @param {string} uri + */ + + }, { + key: "delete", + value: function _delete(uri) { + return this.client.delete({ + url: "files/", + qs: { + url: uri + }, + token: this.token + }); + } + /** + * Explicitly refresh CDN urls for uploaded files on the Stream CDN (only needed for files on the Stream CDN). + * Note that Stream CDN is not enabled by default, if in doubt please contact us. + * @param {string} uri full uploaded file url that needs to be refreshed + * @return {Promise} + */ -module.exports = _getPrototypeOf; + }, { + key: "refreshUrl", + value: function refreshUrl(uri) { + return this.client.post({ + url: 'files/refresh/', + body: { + url: uri + }, + token: this.token + }); + } + }]); + + return StreamFileStore; +}(); /***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 407: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "$": () => (/* binding */ StreamImageStore) +}); -module.exports = { - commonElement: function(lista, listb) { - for (var i = 0, n = lista.length; i < n; i++) { - if (this.indexOf(listb, lista[i]) !== -1) - return lista[i]; +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } } - return null; - }, - indexOf: function(list, needle) { - if (list.indexOf) return list.indexOf(needle); + return target; + }; - for (var i = 0, n = list.length; i < n; i++) { - if (list[i] === needle) return i; - } - return -1; - }, + return _extends.apply(this, arguments); +} +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js +var classCallCheck = __webpack_require__(6610); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js +var createClass = __webpack_require__(5991); +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +var defineProperty = __webpack_require__(6156); +;// CONCATENATED MODULE: ./src/images.ts - map: function(object, callback, context) { - if (object.map) return object.map(callback, context); - var result = []; - if (object instanceof Array) { - for (var i = 0, n = object.length; i < n; i++) { - result.push(callback.call(context || null, object[i], i)); - } - } else { - for (var key in object) { - if (!object.hasOwnProperty(key)) continue; - result.push(callback.call(context || null, key, object[key])); - } - } - return result; - }, - - filter: function(array, callback, context) { - if (array.filter) return array.filter(callback, context); - var result = []; - for (var i = 0, n = array.length; i < n; i++) { - if (callback.call(context || null, array[i], i)) - result.push(array[i]); - } - return result; - }, - - asyncEach: function(list, iterator, callback, context) { - var n = list.length, - i = -1, - calls = 0, - looping = false; - - var iterate = function() { - calls -= 1; - i += 1; - if (i === n) return callback && callback.call(context); - iterator(list[i], resume); - }; - var loop = function() { - if (looping) return; - looping = true; - while (calls > 0) iterate(); - looping = false; - }; - var resume = function() { - calls += 1; - loop(); - }; - resume(); - } -}; +var StreamImageStore = /*#__PURE__*/function () { + function StreamImageStore(client, token) { + (0,classCallCheck/* default */.Z)(this, StreamImageStore); + (0,defineProperty/* default */.Z)(this, "client", void 0); -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { + (0,defineProperty/* default */.Z)(this, "token", void 0); -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + this.client = client; + this.token = token; + } // React Native does not auto-detect MIME type, you need to pass that via contentType + // param. If you don't then Android will refuse to perform the upload -var Event = { - _registry: [], + /** + * upload an Image File instance or a readable stream of data + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#upload + * @param {File|Buffer|NodeJS.ReadStream|string} uri - File object or stream or URI + * @param {string} [name] - file name + * @param {string} [contentType] - mime-type + * @param {function} [onUploadProgress] - browser only, Function that is called with upload progress + * @return {Promise} + */ - on: function(element, eventName, callback, context) { - var wrapped = function() { callback.call(context) }; - if (element.addEventListener) - element.addEventListener(eventName, wrapped, false); - else - element.attachEvent('on' + eventName, wrapped); + (0,createClass/* default */.Z)(StreamImageStore, [{ + key: "upload", + value: function upload(uri, name, contentType, onUploadProgress) { + return this.client.upload('images/', uri, name, contentType, onUploadProgress); + } + /** + * delete an uploaded image + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#delete + * @param {string} uri + */ - this._registry.push({ - _element: element, - _type: eventName, - _callback: callback, - _context: context, - _handler: wrapped - }); - }, + }, { + key: "delete", + value: function _delete(uri) { + return this.client.delete({ + url: "images/", + qs: { + url: uri + }, + token: this.token + }); + } + /** + * Explicitly refresh CDN urls for uploaded images on the Stream CDN (only needed for files on the Stream CDN). + * Note that Stream CDN is not enabled by default, if in doubt please contact us. + * @param {string} uri full uploaded image url that needs to be refreshed + * @return {Promise} + */ - detach: function(element, eventName, callback, context) { - var i = this._registry.length, register; - while (i--) { - register = this._registry[i]; + }, { + key: "refreshUrl", + value: function refreshUrl(uri) { + return this.client.post({ + url: 'images/refresh/', + body: { + url: uri + }, + token: this.token + }); + } + /** + * Generate a diffrent variant of the uploaded image + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#image_processing + * @param {string} uri + * @param {ImageProcessOptions} options + */ - if ((element && element !== register._element) || - (eventName && eventName !== register._type) || - (callback && callback !== register._callback) || - (context && context !== register._context)) - continue; + }, { + key: "process", + value: function process(uri, options) { + var params = _extends(options, { + url: uri + }); - if (register._element.removeEventListener) - register._element.removeEventListener(register._type, register._handler, false); - else - register._element.detachEvent('on' + register._type, register._handler); + if (Array.isArray(params.crop)) { + params.crop = params.crop.join(','); + } - this._registry.splice(i,1); - register = null; + return this.client.get({ + url: "images/", + qs: params, + token: this.token + }); } - } -}; + /** + * Generate a thumbnail for a given image + * @link https://getstream.io/activity-feeds/docs/node/files_introduction/?language=js#image_processing + * @param {string} uri + * @param {number|string} w + * @param {number|string} h + * @param {Object} [options] + */ -if (global.onunload !== undefined) - Event.on(global, 'unload', Event.detach, Event); + }, { + key: "thumbnail", + value: function thumbnail(uri, w, h) { + var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { + crop: 'center', + resize: 'clip' + }, + crop = _ref.crop, + resize = _ref.resize; -module.exports = { - Event: Event -}; + return this.process(uri, { + w: w, + h: h, + crop: crop, + resize: resize + }); + } + }]); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + return StreamImageStore; +}(); /***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +/***/ 8039: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ Personalization) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6156); -var assign = __webpack_require__(7), - EventEmitter = __webpack_require__(96); -var Publisher = { - countListeners: function(eventType) { - return this.listeners(eventType).length; - }, - bind: function(eventType, listener, context) { - var slice = Array.prototype.slice, - handler = function() { listener.apply(context, slice.call(arguments)) }; - this._listeners = this._listeners || []; - this._listeners.push([eventType, listener, context, handler]); - return this.on(eventType, handler); - }, +/** + * Manage api calls for personalization + * The collection object contains convenience functions such as get, post, delete + * @class Personalization + */ +var Personalization = /*#__PURE__*/function () { + /** + * Initialize the Personalization class + * @link https://getstream.io/activity-feeds/docs/node/personalization_introduction/?language=js + * @method constructor + * @memberof Personalization.prototype + * @param {StreamClient} client - The stream client + */ + function Personalization(client) { + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(this, Personalization); - unbind: function(eventType, listener, context) { - this._listeners = this._listeners || []; - var n = this._listeners.length, tuple; + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "client", void 0); - while (n--) { - tuple = this._listeners[n]; - if (tuple[0] !== eventType) continue; - if (listener && (tuple[1] !== listener || tuple[2] !== context)) continue; - this._listeners.splice(n, 1); - this.removeListener(eventType, tuple[3]); - } + this.client = client; } -}; - -assign(Publisher, EventEmitter.prototype); -Publisher.trigger = Publisher.emit; - -module.exports = Publisher; - + /** + * Get personalized activities for this feed + * + * @method get + * @memberof Personalization.prototype + * @param {string} resource - personalized resource endpoint i.e "follow_recommendations" + * @param {object} options Additional options + * @return {Promise>} Promise object. Personalized feed + * @example client.personalization.get('follow_recommendations', {foo: 'bar', baz: 'qux'}) + */ -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(Personalization, [{ + key: "get", + value: function get(resource) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return this.client.get({ + url: "".concat(resource, "/"), + serviceName: 'personalization', + qs: options, + token: options.token || this.client.getPersonalizationToken() + }); + } + /** + * Post data to personalization endpoint + * + * @method post + * @memberof Personalization.prototype + * @param {string} resource - personalized resource endpoint i.e "follow_recommendations" + * @param {object} options - Additional options + * @param {object} data - Data to send in the payload + * @return {Promise>} Promise object. Data that was posted if successful, or an error. + * @example client.personalization.post('follow_recommendations', {foo: 'bar', baz: 'qux'}) + */ + }, { + key: "post", + value: function post(resource) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + return this.client.post({ + url: "".concat(resource, "/"), + serviceName: 'personalization', + qs: options, + body: data, + token: this.client.getPersonalizationToken() + }); + } + /** + * Delete metadata or activities + * + * @method delete + * @memberof Personalization.prototype + * @param {object} resource - personalized resource endpoint i.e "follow_recommendations" + * @param {object} options - Additional options + * @return {Promise>} Promise object. Data that was deleted if successful, or an error. + * @example client.personalization.delete('follow_recommendations', {foo: 'bar', baz: 'qux'}) + */ -var copyObject = function(object) { - var clone, i, key; - if (object instanceof Array) { - clone = []; - i = object.length; - while (i--) clone[i] = copyObject(object[i]); - return clone; - } else if (typeof object === 'object') { - clone = (object === null) ? null : {}; - for (key in object) clone[key] = copyObject(object[key]); - return clone; - } else { - return object; - } -}; - -module.exports = copyObject; + }, { + key: "delete", + value: function _delete(resource) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return this.client.delete({ + url: "".concat(resource, "/"), + serviceName: 'personalization', + qs: options, + token: this.client.getPersonalizationToken() + }); + } + }]); + return Personalization; +}(); /***/ }), -/* 37 */ -/***/ (function(module, exports) { -function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; +/***/ 8824: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - return _setPrototypeOf(o, p); -} +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "R": () => (/* binding */ StreamReaction) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7375); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6156); +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1964); -module.exports = _setPrototypeOf; -/***/ }), -/* 38 */ -/***/ (function(module, exports) { -function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return typeof obj; - }; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - return _typeof(obj); -} +var StreamReaction = /*#__PURE__*/function () { + /** + * Initialize a reaction object + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js + * @method constructor + * @memberof StreamReaction.prototype + * @param {StreamClient} client Stream client this feed is constructed from + * @param {string} token JWT token + * @example new StreamReaction(client, "eyJhbGciOiJIUzI1...") + */ + function StreamReaction(client, token) { + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, StreamReaction); -module.exports = _typeof; + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, "client", void 0); -/***/ }), -/* 39 */ -/***/ (function(module, exports) { + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, "token", void 0); -/* (ignored) */ + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, "buildURL", function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } -/***/ }), -/* 40 */ -/***/ (function(module, exports) { + return "".concat(['reaction'].concat(args).join('/'), "/"); + }); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, "_convertTargetFeeds", function () { + var targetFeeds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return targetFeeds.map(function (elem) { + return typeof elem === 'string' ? elem : elem.id; + }); + }); + this.client = client; + this.token = token; + } -/***/ }), -/* 41 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(StreamReaction, [{ + key: "add", + value: + /** + * add reaction + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#adding-reactions + * @method add + * @memberof StreamReaction.prototype + * @param {string} kind kind of reaction + * @param {string} activity Activity or an ActivityID + * @param {ReactionType} data data related to reaction + * @param {ReactionAddOptions} [options] + * @param {string} [options.id] id associated with reaction + * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction + * @param {string} [options.userId] useful for adding reaction with server token + * @param {object} [options.targetFeedsExtraData] extra data related to target feeds + * @return {Promise>} + * @example reactions.add("like", "0c7db91c-67f9-11e8-bcd9-fe00a9219401") + * @example reactions.add("comment", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", {"text": "love it!"},) + */ + function add(kind, activity, data) { + var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + id = _ref.id, + _ref$targetFeeds = _ref.targetFeeds, + targetFeeds = _ref$targetFeeds === void 0 ? [] : _ref$targetFeeds, + userId = _ref.userId, + targetFeedsExtraData = _ref.targetFeedsExtraData; -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return connect; }); -/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24); + var body = { + id: id, + activity_id: activity instanceof Object ? activity.id : activity, + kind: kind, + data: data || {}, + target_feeds: this._convertTargetFeeds(targetFeeds), + user_id: userId + }; -/** - * Create StreamClient - * @link https://getstream.io/docs/feeds_getting_started/?language=js#setup - * @method connect - * @param {string} apiKey API key - * @param {string} [apiSecret] API secret (only use this on the server) - * @param {string} [appId] Application identifier - * @param {ClientOptions} [options] - additional options - * @param {string} [options.location] - which data center to use - * @param {boolean} [options.expireTokens=false] - whether to use a JWT timestamp field (i.e. iat) - * @param {string} [options.version] - advanced usage, custom api version - * @param {boolean} [options.keepAlive] - axios keepAlive, default to true - * @param {number} [options.timeout] - axios timeout in Ms, default to 10s - * @return {StreamClient} StreamClient - * @example Basic usage - * stream.connect(apiKey, apiSecret); - * @example or if you want to be able to subscribe and listen - * stream.connect(apiKey, apiSecret, appId); - * @example or on Heroku - * stream.connect(streamURL); - * @example where streamURL looks like - * "https://thierry:pass@gestream.io/?app=1" - */ + if (targetFeedsExtraData != null) { + body.target_feeds_extra_data = targetFeedsExtraData; + } -function connect(apiKey, apiSecret, appId, options) { - var _process$env; + return this.client.post({ + url: this.buildURL(), + body: body, + token: this.token + }); + } + /** + * add child reaction + * @link https://getstream.io/activity-feeds/docs/node/reactions_add_child/?language=js + * @method addChild + * @memberof StreamReaction.prototype + * @param {string} kind kind of reaction + * @param {string} reaction Reaction or a ReactionID + * @param {ChildReactionType} data data related to reaction + * @param {ReactionAddChildOptions} [options] + * @param {string[]} [options.targetFeeds] an array of feeds to which to send an activity with the reaction + * @param {string} [options.userId] useful for adding reaction with server token + * @param {object} [options.targetFeedsExtraData] extra data related to target feeds + * @return {Promise>} + * @example reactions.add("like", "0c7db91c-67f9-11e8-bcd9-fe00a9219401") + * @example reactions.add("comment", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", {"text": "love it!"},) + */ - if (typeof process !== 'undefined' && (_process$env = process.env) !== null && _process$env !== void 0 && _process$env.STREAM_URL && !apiKey) { - var parts = /https:\/\/(\w+):(\w+)@([\w-]*).*\?app_id=(\d+)/.exec(process.env.STREAM_URL) || []; - apiKey = parts[1]; - apiSecret = parts[2]; - var location = parts[3]; - appId = parts[4]; + }, { + key: "addChild", + value: function addChild(kind, reaction, data) { + var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + _ref2$targetFeeds = _ref2.targetFeeds, + targetFeeds = _ref2$targetFeeds === void 0 ? [] : _ref2$targetFeeds, + userId = _ref2.userId, + targetFeedsExtraData = _ref2.targetFeedsExtraData; - if (options === undefined) { - options = {}; + var body = { + parent: reaction instanceof Object ? reaction.id : reaction, + kind: kind, + data: data || {}, + target_feeds: this._convertTargetFeeds(targetFeeds), + user_id: userId + }; + + if (targetFeedsExtraData != null) { + body.target_feeds_extra_data = targetFeedsExtraData; + } + + return this.client.post({ + url: this.buildURL(), + body: body, + token: this.token + }); } + /** + * get reaction + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#retrieving-reactions + * @method get + * @memberof StreamReaction.prototype + * @param {string} id Reaction Id + * @return {Promise>} + * @example reactions.get("67b3e3b5-b201-4697-96ac-482eb14f88ec") + */ - if (location !== 'getstream' && location !== 'stream-io-api') { - options.location = location; + }, { + key: "get", + value: function get(id) { + return this.client.get({ + url: this.buildURL(id), + token: this.token + }); } - } + /** + * 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 + * id_lt and id_lte return reactions order by creation descending starting from the reaction with the ID provided, when id_lte is used + * the reaction with ID equal to the value provided is included. + * 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 + * the reaction with ID equal to the value provided is included. + * results are limited to 25 at most and are ordered newest to oldest by default. + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#retrieving-reactions + * @method filter + * @memberof StreamReaction.prototype + * @param {ReactionFilterConditions} conditions Reaction Id {activity_id|user_id|reaction_id:string, kind:string, limit:integer} + * @return {Promise>} + * @example reactions.filter({activity_id: "0c7db91c-67f9-11e8-bcd9-fe00a9219401", kind:"like"}) + * @example reactions.filter({user_id: "john", kinds:"like"}) + */ - return new _client__WEBPACK_IMPORTED_MODULE_0__[/* StreamClient */ "a"](apiKey, apiSecret, appId, options); -} -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) + }, { + key: "filter", + value: function filter(conditions) { + var userId = conditions.user_id, + activityId = conditions.activity_id, + reactionId = conditions.reaction_id, + qs = (0,_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)(conditions, ["user_id", "activity_id", "reaction_id"]); -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { + if (!qs.limit) { + qs.limit = 10; + } -"use strict"; + if ((userId ? 1 : 0) + (activityId ? 1 : 0) + (reactionId ? 1 : 0) !== 1) { + throw new _errors__WEBPACK_IMPORTED_MODULE_0__/* .SiteError */ .z4('Must provide exactly one value for one of these params: user_id, activity_id, reaction_id'); + } + var lookupType = userId && 'user_id' || activityId && 'activity_id' || reactionId && 'reaction_id'; + var value = userId || activityId || reactionId; + var url = conditions.kind ? this.buildURL(lookupType, value, conditions.kind) : this.buildURL(lookupType, value); + return this.client.get({ + url: url, + qs: qs, + token: this.token + }); + } + /** + * update reaction + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#updating-reactions + * @method update + * @memberof StreamReaction.prototype + * @param {string} id Reaction Id + * @param {ReactionType | ChildReactionType} data Data associated to reaction or childReaction + * @param {ReactionUpdateOptions} [options] + * @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. + * @param {object} [options.targetFeedsExtraData] extra data related to target feeds + * @return {Promise>} + * @example reactions.update("67b3e3b5-b201-4697-96ac-482eb14f88ec", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", "like") + * @example reactions.update("67b3e3b5-b201-4697-96ac-482eb14f88ec", "0c7db91c-67f9-11e8-bcd9-fe00a9219401", "comment", {"text": "love it!"},) + */ -module.exports = function bind(fn, thisArg) { - return function wrap() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; + }, { + key: "update", + value: function update(id, data) { + var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + _ref3$targetFeeds = _ref3.targetFeeds, + targetFeeds = _ref3$targetFeeds === void 0 ? [] : _ref3$targetFeeds, + targetFeedsExtraData = _ref3.targetFeedsExtraData; + + var body = { + data: data, + target_feeds: this._convertTargetFeeds(targetFeeds) + }; + + if (targetFeedsExtraData != null) { + body.target_feeds_extra_data = targetFeedsExtraData; + } + + return this.client.put({ + url: this.buildURL(id), + body: body, + token: this.token + }); } - return fn.apply(thisArg, args); - }; -}; + /** + * delete reaction + * @link https://getstream.io/activity-feeds/docs/node/reactions_introduction/?language=js#removing-reactions + * @method delete + * @memberof StreamReaction.prototype + * @param {string} id Reaction Id + * @return {Promise} + * @example reactions.delete("67b3e3b5-b201-4697-96ac-482eb14f88ec") + */ + + }, { + key: "delete", + value: function _delete(id) { + return this.client.delete({ + url: this.buildURL(id), + token: this.token + }); + } + }]); + return StreamReaction; +}(); /***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 6685: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "v": () => (/* binding */ JWTScopeToken), +/* harmony export */ "c": () => (/* binding */ JWTUserSessionToken) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6156); +/* harmony import */ var jsonwebtoken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1420); +/* harmony import */ var jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jsonwebtoken__WEBPACK_IMPORTED_MODULE_1__); -var utils = __webpack_require__(9); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function encode(val) { - return encodeURIComponent(val). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* .default */ .Z)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + + // for a claim in jwt + +function joinClaimValue(items) { + var values = Array.isArray(items) ? items : [items]; + var claims = []; + + for (var i = 0; i < values.length; i += 1) { + var s = values[i].trim(); + if (s === '*') return s; + claims.push(s); + } + + return claims.join(','); } +/** + * Creates the JWT token for feedId, resource and action using the apiSecret + * @method JWTScopeToken + * @memberof signing + * @private + * @param {string} apiSecret - API Secret key + * @param {string | string[]} resource - JWT payload resource + * @param {string | string[]} action - JWT payload action + * @param {object} [options] - Optional additional options + * @param {string | string[]} [options.feedId] - JWT payload feed identifier + * @param {string} [options.userId] - JWT payload user identifier + * @param {boolean} [options.expireTokens] - JWT noTimestamp + * @return {string} JWT Token + */ + +function JWTScopeToken(apiSecret, resource, action) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var noTimestamp = options.expireTokens ? !options.expireTokens : true; + var payload = { + resource: joinClaimValue(resource), + action: joinClaimValue(action) + }; + if (options.feedId) payload.feed_id = joinClaimValue(options.feedId); + if (options.userId) payload.user_id = options.userId; + return jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default().sign(payload, apiSecret, { + algorithm: 'HS256', + noTimestamp: noTimestamp + }); +} /** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @returns {string} The formatted url + * Creates the JWT token that can be used for a UserSession + * @method JWTUserSessionToken + * @memberof signing + * @private + * @param {string} apiSecret - API Secret key + * @param {string} userId - The user_id key in the JWT payload + * @param {object} [extraData] - Extra that should be part of the JWT token + * @param {object} [jwtOptions] - Options that can be past to jwt.sign + * @return {string} JWT Token */ -module.exports = function buildURL(url, params, paramsSerializer) { - /*eslint no-param-reassign:0*/ - if (!params) { - return url; + +function JWTUserSessionToken(apiSecret, userId) { + var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var jwtOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + + if (typeof userId !== 'string') { + throw new TypeError('userId should be a string'); } - var serializedParams; - if (paramsSerializer) { - serializedParams = paramsSerializer(params); - } else if (utils.isURLSearchParams(params)) { - serializedParams = params.toString(); - } else { - var parts = []; + var payload = _objectSpread({ + user_id: userId + }, extraData); - utils.forEach(params, function serialize(val, key) { - if (val === null || typeof val === 'undefined') { - return; - } + var opts = _objectSpread({ + algorithm: 'HS256', + noTimestamp: true + }, jwtOptions); - if (utils.isArray(val)) { - key = key + '[]'; - } else { - val = [val]; - } + return jsonwebtoken__WEBPACK_IMPORTED_MODULE_1___default().sign(payload, apiSecret, opts); +} - utils.forEach(val, function parseValue(v) { - if (utils.isDate(v)) { - v = v.toISOString(); - } else if (utils.isObject(v)) { - v = JSON.stringify(v); - } - parts.push(encode(key) + '=' + encode(v)); - }); - }); +/***/ }), - serializedParams = parts.join('&'); - } +/***/ 7878: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - if (serializedParams) { - var hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ StreamUser) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2137); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6610); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5991); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6156); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7757); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - return url; -}; -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -module.exports = function isCancel(value) { - return !!(value && value.__CANCEL__); -}; +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var StreamUser = /*#__PURE__*/function () { + /** + * Initialize a user session object + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js + * @method constructor + * @memberof StreamUser.prototype + * @param {StreamClient} client Stream client this collection is constructed from + * @param {string} userId The ID of the user + * @param {string} userAuthToken JWT token + * @example new StreamUser(client, "123", "eyJhbGciOiJIUzI1...") + */ + function StreamUser(client, userId, userAuthToken) { + (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(this, StreamUser); -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "client", void 0); -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "token", void 0); -var utils = __webpack_require__(9); -var normalizeHeaderName = __webpack_require__(81); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "id", void 0); -var DEFAULT_CONTENT_TYPE = { - 'Content-Type': 'application/x-www-form-urlencoded' -}; + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "data", void 0); -function setContentTypeIfUnset(headers, value) { - if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { - headers['Content-Type'] = value; - } -} + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "full", void 0); -function getDefaultAdapter() { - var adapter; - if (typeof XMLHttpRequest !== 'undefined') { - // For browsers use XHR adapter - adapter = __webpack_require__(46); - } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { - // For node use HTTP adapter - adapter = __webpack_require__(46); + (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* .default */ .Z)(this, "url", void 0); + + this.client = client; + this.id = userId; + this.data = undefined; + this.full = undefined; + this.token = userAuthToken; + this.url = "user/".concat(this.id, "/"); } - return adapter; -} + /** + * Create a stream user ref + * @return {string} + */ -var defaults = { - adapter: getDefaultAdapter(), - transformRequest: [function transformRequest(data, headers) { - normalizeHeaderName(headers, 'Accept'); - normalizeHeaderName(headers, 'Content-Type'); - if (utils.isFormData(data) || - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) - ) { - return data; - } - if (utils.isArrayBufferView(data)) { - return data.buffer; - } - if (utils.isURLSearchParams(data)) { - setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); - return data.toString(); - } - if (utils.isObject(data)) { - setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); - return JSON.stringify(data); + (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(StreamUser, [{ + key: "ref", + value: function ref() { + return "SU:".concat(this.id); } - return data; - }], + /** + * Delete the user + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#removing-users + * @return {Promise} + */ - transformResponse: [function transformResponse(data) { - /*eslint no-param-reassign:0*/ - if (typeof data === 'string') { - try { - data = JSON.parse(data); - } catch (e) { /* Ignore */ } + }, { + key: "delete", + value: function _delete() { + return this.client.delete({ + url: this.url, + token: this.token + }); } - return data; - }], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, + /** + * Get the user data + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#retrieving-users + * @param {boolean} [options.with_follow_counts] + * @return {Promise} + */ - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', + }, { + key: "get", + value: function () { + var _get = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee(options) { + var response; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.client.get({ + url: this.url, + token: this.token, + qs: options + }); - maxContentLength: -1, - maxBodyLength: -1, + case 2: + response = _context.sent; + this.full = _objectSpread({}, response); + delete this.full.duration; + this.data = this.full.data; + return _context.abrupt("return", this); - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - } -}; + case 7: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); -defaults.headers = { - common: { - 'Accept': 'application/json, text/plain, */*' - } -}; + function get(_x) { + return _get.apply(this, arguments); + } -utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { - defaults.headers[method] = {}; -}); + return get; + }() + /** + * Create a new user in stream + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#adding-users + * @param {object} data user date stored in stream + * @param {boolean} [options.get_or_create] if user already exists return it + * @return {Promise} + */ -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); -}); + }, { + key: "create", + value: function () { + var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee2(data, options) { + var response; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.client.post({ + url: 'user/', + body: { + id: this.id, + data: data || this.data || {} + }, + qs: options, + token: this.token + }); -module.exports = defaults; + case 2: + response = _context2.sent; + this.full = _objectSpread({}, response); + delete this.full.duration; + this.data = this.full.data; + return _context2.abrupt("return", this); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) + case 7: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { + function create(_x2, _x3) { + return _create.apply(this, arguments); + } -"use strict"; + return create; + }() + /** + * Update the user + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#updating-users + * @param {object} data user date stored in stream + * @return {Promise} + */ + }, { + key: "update", + value: function () { + var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__/* .default */ .Z)( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3(data) { + var response; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this.client.put({ + url: this.url, + body: { + data: data || this.data || {} + }, + token: this.token + }); -var utils = __webpack_require__(9); -var settle = __webpack_require__(82); -var cookies = __webpack_require__(84); -var buildURL = __webpack_require__(43); -var buildFullPath = __webpack_require__(85); -var parseHeaders = __webpack_require__(88); -var isURLSameOrigin = __webpack_require__(89); -var createError = __webpack_require__(47); + case 2: + response = _context3.sent; + this.full = _objectSpread({}, response); + delete this.full.duration; + this.data = this.full.data; + return _context3.abrupt("return", this); -module.exports = function xhrAdapter(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var requestData = config.data; - var requestHeaders = config.headers; + case 7: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); - if (utils.isFormData(requestData)) { - delete requestHeaders['Content-Type']; // Let the browser set it - } + function update(_x4) { + return _update.apply(this, arguments); + } - var request = new XMLHttpRequest(); + return update; + }() + /** + * Get or Create a new user in stream + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#adding-users + * @param {object} data user date stored in stream + * @return {Promise} + */ - // HTTP basic authentication - if (config.auth) { - var username = config.auth.username || ''; - var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; - requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + }, { + key: "getOrCreate", + value: function getOrCreate(data) { + return this.create(data, { + get_or_create: true + }); } + /** + * Get the user profile, it includes the follow counts by default + * @link https://getstream.io/activity-feeds/docs/node/users_introduction/?language=js#retrieving-users + * @return {Promise} + */ - var fullPath = buildFullPath(config.baseURL, config.url); - request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); - - // Set the request timeout in MS - request.timeout = config.timeout; + }, { + key: "profile", + value: function profile() { + return this.get({ + with_follow_counts: true + }); + } + }]); - // Listen for ready state - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } + return StreamUser; +}(); - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { - return; - } +/***/ }), - // Prepare the response - var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; - var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - }; +/***/ 2637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - settle(resolve, reject, response); +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3391); +/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(484); +/* harmony import */ var form_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6230); +/* harmony import */ var form_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(form_data__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1964); - // Clean up request - request = null; - }; - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - reject(createError('Request aborted', config, 'ECONNABORTED', request)); - // Clean up request - request = null; - }; +var validFeedSlugRe = /^[\w]+$/; +var validUserIdRe = /^[\w-]+$/; +/* + * Validate that the feedSlug matches \w + */ - // Handle low level network errors - request.onerror = function handleError() { - // Real errors are hidden from us by the browser - // onerror should only fire if it's a network error - reject(createError('Network Error', config, null, request)); +function validateFeedSlug(feedSlug) { + if (!validFeedSlugRe.test(feedSlug)) { + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .FeedError */ .IY("Invalid feedSlug, please use letters, numbers or _: ".concat(feedSlug)); + } - // Clean up request - request = null; - }; + return feedSlug; +} +/* + * Validate the userId matches \w + */ - // Handle timeout - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', - request)); - // Clean up request - request = null; - }; +function validateUserId(userId) { + if (!validUserIdRe.test(userId)) { + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .FeedError */ .IY("Invalid userId, please use letters, numbers, - or _: ".concat(userId)); + } - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - if (utils.isStandardBrowserEnv()) { - // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? - cookies.read(config.xsrfCookieName) : - undefined; + return userId; +} - if (xsrfValue) { - requestHeaders[config.xsrfHeaderName] = xsrfValue; - } - } +function rfc3986(str) { + return str.replace(/[!'()*]/g, function (c) { + return "%".concat(c.charCodeAt(0).toString(16).toUpperCase()); + }); +} - // Add headers to the request - if ('setRequestHeader' in request) { - utils.forEach(requestHeaders, function setRequestHeader(val, key) { - if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { - // Remove Content-Type if data is undefined - delete requestHeaders[key]; - } else { - // Otherwise add header to the request - request.setRequestHeader(key, val); - } - }); - } +function isReadableStream(obj) { + return obj !== null && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__/* .default */ .Z)(obj) === 'object' && (obj.readable || typeof obj._read === 'function'); +} - // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; - } +function isBuffer(obj) { + return obj != null && obj.constructor != null && // @ts-expect-error + typeof obj.constructor.isBuffer === 'function' && // @ts-expect-error + obj.constructor.isBuffer(obj); +} - // Add responseType to request if needed - if (config.responseType) { - try { - request.responseType = config.responseType; - } catch (e) { - // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. - // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. - if (config.responseType !== 'json') { - throw e; - } - } - } +function isFileWebAPI(uri) { + return typeof window !== 'undefined' && 'File' in window && uri instanceof File; +} +/* + * Validate that the feedId matches the spec user:1 + */ - // Handle progress if needed - if (typeof config.onDownloadProgress === 'function') { - request.addEventListener('progress', config.onDownloadProgress); - } - // Not all browsers support upload events - if (typeof config.onUploadProgress === 'function' && request.upload) { - request.upload.addEventListener('progress', config.onUploadProgress); - } +function validateFeedId(feedId) { + var parts = feedId.split(':'); - if (config.cancelToken) { - // Handle cancellation - config.cancelToken.promise.then(function onCanceled(cancel) { - if (!request) { - return; - } + if (parts.length !== 2) { + throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* .FeedError */ .IY("Invalid feedId, expected something like user:1 got ".concat(feedId)); + } - request.abort(); - reject(cancel); - // Clean up request - request = null; - }); - } + var _parts = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__/* .default */ .Z)(parts, 2), + feedSlug = _parts[0], + userId = _parts[1]; - if (!requestData) { - requestData = null; - } + validateFeedSlug(feedSlug); + validateUserId(userId); + return feedId; +} - // Send the request - request.send(requestData); - }); -}; +function addFileToFormData(uri, name, contentType) { + var data = new (form_data__WEBPACK_IMPORTED_MODULE_0___default())(); + if (isReadableStream(uri) || isBuffer(uri) || isFileWebAPI(uri)) { + if (name) data.append('file', uri, name);else data.append('file', uri); + } else { + data.append('file', { + uri: uri, + name: name || uri.split('/').reverse()[0], + type: contentType || undefined, + contentType: contentType || undefined + }); + } -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { + return data; +} // TODO: refactor and add proper types -"use strict"; +function replaceStreamObjects(obj) { + // @ts-expect-error + if (Array.isArray(obj)) return obj.map(function (v) { + return replaceStreamObjects(v); + }); // @ts-expect-error -var enhanceError = __webpack_require__(83); + if (Object.prototype.toString.call(obj) !== '[object Object]') return obj; // @ts-expect-error -/** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The created error. - */ -module.exports = function createError(message, config, code, request, response) { - var error = new Error(message); - return enhanceError(error, config, code, request, response); -}; + if (typeof obj.ref === 'function') return obj.ref(); + var cloned = {}; + Object.keys(obj).forEach(function (k) { + // @ts-expect-error + cloned[k] = replaceStreamObjects(obj[k]); + }); // @ts-expect-error + + return cloned; +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + validateFeedId: validateFeedId, + validateFeedSlug: validateFeedSlug, + validateUserId: validateUserId, + rfc3986: rfc3986, + isReadableStream: isReadableStream, + addFileToFormData: addFileToFormData, + replaceStreamObjects: replaceStreamObjects +}); /***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 2965: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(9); +var constants = __webpack_require__(8742), + Logging = __webpack_require__(8782); -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * @returns {Object} New object resulting from merging config2 to config1 - */ -module.exports = function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - var config = {}; +var Faye = { + VERSION: constants.VERSION, - var valueFromConfig2Keys = ['url', 'method', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; - 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' - ]; - var directMergeKeys = ['validateStatus']; + Client: __webpack_require__(1955), + Scheduler: __webpack_require__(6148) +}; - function getMergedValue(target, source) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge(target, source); - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source); - } else if (utils.isArray(source)) { - return source.slice(); - } - return source; - } +Logging.wrapper = Faye; - function mergeDeepProperties(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - } +module.exports = Faye; - utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); - } - }); - utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); +/***/ }), - utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - }); +/***/ 5890: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - utils.forEach(directMergeKeys, function merge(prop) { - if (prop in config2) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (prop in config1) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - }); +"use strict"; - var axiosKeys = valueFromConfig2Keys - .concat(mergeDeepPropertiesKeys) - .concat(defaultToConfig2Keys) - .concat(directMergeKeys); - var otherKeys = Object - .keys(config1) - .concat(Object.keys(config2)) - .filter(function filterAxiosKeys(key) { - return axiosKeys.indexOf(key) === -1; - }); +var Promise = __webpack_require__(4857); - utils.forEach(otherKeys, mergeDeepProperties); +module.exports = { + then: function(callback, errback) { + var self = this; + if (!this._promise) + this._promise = new Promise(function(resolve, reject) { + self._resolve = resolve; + self._reject = reject; + }); - return config; + if (arguments.length === 0) + return this._promise; + else + return this._promise.then(callback, errback); + }, + + callback: function(callback, context) { + return this.then(function(value) { callback.call(context, value) }); + }, + + errback: function(callback, context) { + return this.then(null, function(reason) { callback.call(context, reason) }); + }, + + timeout: function(seconds, message) { + this.then(); + var self = this; + this._timer = __webpack_require__.g.setTimeout(function() { + self._reject(message); + }, seconds * 1000); + }, + + setDeferredStatus: function(status, value) { + if (this._timer) __webpack_require__.g.clearTimeout(this._timer); + + this.then(); + + if (status === 'succeeded') + this._resolve(value); + else if (status === 'failed') + this._reject(value); + else + delete this._promise; + } }; /***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 8782: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/** - * A `Cancel` is an object that is thrown when an operation is canceled. - * - * @class - * @param {string=} message The message. - */ -function Cancel(message) { - this.message = message; -} +var toJSON = __webpack_require__(9457); -Cancel.prototype.toString = function toString() { - return 'Cancel' + (this.message ? ': ' + this.message : ''); -}; +var Logging = { + LOG_LEVELS: { + fatal: 4, + error: 3, + warn: 2, + info: 1, + debug: 0 + }, -Cancel.prototype.__CANCEL__ = true; + writeLog: function(messageArgs, level) { + var logger = Logging.logger || (Logging.wrapper || Logging).logger; + if (!logger) return; -module.exports = Cancel; + var args = Array.prototype.slice.apply(messageArgs), + banner = '[Faye', + klass = this.className, + message = args.shift().replace(/\?/g, function() { + try { + return toJSON(args.shift()); + } catch (error) { + return '[Object]'; + } + }); -/***/ }), -/* 50 */ -/***/ (function(module, exports) { + if (klass) banner += '.' + klass; + banner += '] '; -module.exports = { - VERSION: '1.4.0', + if (typeof logger[level] === 'function') + logger[level](banner + message); + else if (typeof logger === 'function') + logger(banner + message); + } +}; - BAYEUX_VERSION: '1.0', - ID_LENGTH: 160, - JSONP_CALLBACK: 'jsonpcallback', - CONNECTION_TYPES: ['long-polling', 'cross-origin-long-polling', 'callback-polling', 'websocket', 'eventsource', 'in-process'], +for (var key in Logging.LOG_LEVELS) + (function(level) { + Logging[level] = function() { + this.writeLog(arguments, level); + }; + })(key); - MANDATORY_CONNECTION_TYPES: ['long-polling', 'callback-polling', 'in-process'] -}; +module.exports = Logging; /***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 4909: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -// rawAsap provides everything we need except exception management. -var rawAsap = __webpack_require__(94); -// RawTasks are recycled to reduce GC churn. -var freeTasks = []; -// We queue errors to ensure they are thrown in right order (FIFO). -// Array-as-queue is good enough here, since we are just dealing with exceptions. -var pendingErrors = []; -var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); +var assign = __webpack_require__(7088), + EventEmitter = __webpack_require__(2356); -function throwFirstError() { - if (pendingErrors.length) { - throw pendingErrors.shift(); - } -} +var Publisher = { + countListeners: function(eventType) { + return this.listeners(eventType).length; + }, -/** - * Calls a task as soon as possible after returning, in its own event, with priority - * over other events like animation, reflow, and repaint. An error thrown from an - * event will not interrupt, nor even substantially slow down the processing of - * other events, but will be rather postponed to a lower priority event. - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawAsap(rawTask); -} + bind: function(eventType, listener, context) { + var slice = Array.prototype.slice, + handler = function() { listener.apply(context, slice.call(arguments)) }; -// We wrap tasks with recyclable task objects. A task object implements -// `call`, just like a function. -function RawTask() { - this.task = null; -} + this._listeners = this._listeners || []; + this._listeners.push([eventType, listener, context, handler]); + return this.on(eventType, handler); + }, -// The sole purpose of wrapping the task is to catch the exception and recycle -// the task object after its single use. -RawTask.prototype.call = function () { - try { - this.task.call(); - } catch (error) { - if (asap.onerror) { - // This hook exists purely for testing purposes. - // Its name will be periodically randomized to break any code that - // depends on its existence. - asap.onerror(error); - } else { - // In a web browser, exceptions are not fatal. However, to avoid - // slowing down the queue of pending tasks, we rethrow the error in a - // lower priority turn. - pendingErrors.push(error); - requestErrorThrow(); - } - } finally { - this.task = null; - freeTasks[freeTasks.length] = this; + unbind: function(eventType, listener, context) { + this._listeners = this._listeners || []; + var n = this._listeners.length, tuple; + + while (n--) { + tuple = this._listeners[n]; + if (tuple[0] !== eventType) continue; + if (listener && (tuple[1] !== listener || tuple[2] !== context)) continue; + this._listeners.splice(n, 1); + this.removeListener(eventType, tuple[3]); } + } +}; + +assign(Publisher, EventEmitter.prototype); +Publisher.trigger = Publisher.emit; + +module.exports = Publisher; + + +/***/ }), + +/***/ 2840: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +module.exports = { + addTimeout: function(name, delay, callback, context) { + this._timeouts = this._timeouts || {}; + if (this._timeouts.hasOwnProperty(name)) return; + var self = this; + this._timeouts[name] = __webpack_require__.g.setTimeout(function() { + delete self._timeouts[name]; + callback.call(context); + }, 1000 * delay); + }, + + removeTimeout: function(name) { + this._timeouts = this._timeouts || {}; + var timeout = this._timeouts[name]; + if (!timeout) return; + __webpack_require__.g.clearTimeout(timeout); + delete this._timeouts[name]; + }, + + removeAllTimeouts: function() { + this._timeouts = this._timeouts || {}; + for (var name in this._timeouts) this.removeTimeout(name); + } }; /***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 1762: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var Class = __webpack_require__(10), - assign = __webpack_require__(7), - Publisher = __webpack_require__(35), - Grammar = __webpack_require__(53); +var Class = __webpack_require__(8702), + assign = __webpack_require__(7088), + Publisher = __webpack_require__(4909), + Grammar = __webpack_require__(4710); var Channel = Class({ initialize: function(name) { @@ -5958,2782 +6231,1873 @@ module.exports = Channel; /***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 1955: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = { - CHANNEL_NAME: /^\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*$/, - CHANNEL_PATTERN: /^(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*\/\*{1,2}$/, - 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])|(\-|\_|\!|\~|\(|\)|\$|\@)| |\/|\*|\.))*)$/, - VERSION: /^([0-9])+(\.(([a-z]|[A-Z])|[0-9])(((([a-z]|[A-Z])|[0-9])|\-|\_))*)*$/ -}; +var asap = __webpack_require__(9272), + Class = __webpack_require__(8702), + Promise = __webpack_require__(4857), + array = __webpack_require__(8722), + browser = __webpack_require__(8375), + constants = __webpack_require__(8742), + assign = __webpack_require__(7088), + validateOptions = __webpack_require__(3978), + Deferrable = __webpack_require__(5890), + Logging = __webpack_require__(8782), + Publisher = __webpack_require__(4909), + Channel = __webpack_require__(1762), + Dispatcher = __webpack_require__(8854), + Error = __webpack_require__(5656), + Extensible = __webpack_require__(9983), + Publication = __webpack_require__(4347), + Subscription = __webpack_require__(5740); +var Client = Class({ className: 'Client', + UNCONNECTED: 1, + CONNECTING: 2, + CONNECTED: 3, + DISCONNECTED: 4, -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { + HANDSHAKE: 'handshake', + RETRY: 'retry', + NONE: 'none', -"use strict"; + CONNECTION_TIMEOUT: 60, + DEFAULT_ENDPOINT: '/bayeux', + INTERVAL: 0, -module.exports = {}; + initialize: function(endpoint, options) { + this.info('New client created for ?', endpoint); + options = options || {}; + validateOptions(options, ['interval', 'timeout', 'endpoints', 'proxy', 'retry', 'scheduler', 'websocketExtensions', 'tls', 'ca']); -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { + this._channels = new Channel.Set(); + this._dispatcher = Dispatcher.create(this, endpoint || this.DEFAULT_ENDPOINT, options); -"use strict"; + this._messageId = 0; + this._state = this.UNCONNECTED; + this._responseCallbacks = {}; -var Class = __webpack_require__(10); + this._advice = { + reconnect: this.RETRY, + interval: 1000 * (options.interval || this.INTERVAL), + timeout: 1000 * (options.timeout || this.CONNECTION_TIMEOUT) + }; + this._dispatcher.timeout = this._advice.timeout / 1000; -module.exports = Class({ - initialize: function() { - this._index = {}; - }, + this._dispatcher.bind('message', this._receiveMessage, this); - add: function(item) { - var key = (item.id !== undefined) ? item.id : item; - if (this._index.hasOwnProperty(key)) return false; - this._index[key] = item; - return true; + if (browser.Event && __webpack_require__.g.onbeforeunload !== undefined) + browser.Event.on(__webpack_require__.g, 'beforeunload', function() { + if (array.indexOf(this._dispatcher._disabled, 'autodisconnect') < 0) + this.disconnect(); + }, this); }, - forEach: function(block, context) { - for (var key in this._index) { - if (this._index.hasOwnProperty(key)) - block.call(context, this._index[key]); - } + addWebsocketExtension: function(extension) { + return this._dispatcher.addWebsocketExtension(extension); }, - isEmpty: function() { - for (var key in this._index) { - if (this._index.hasOwnProperty(key)) return false; - } - return true; + disable: function(feature) { + return this._dispatcher.disable(feature); }, - member: function(item) { - for (var key in this._index) { - if (this._index[key] === item) return true; - } - return false; + setHeader: function(name, value) { + return this._dispatcher.setHeader(name, value); }, - remove: function(item) { - var key = (item.id !== undefined) ? item.id : item; - var removed = this._index[key]; - delete this._index[key]; - return removed; - }, + // Request + // MUST include: * channel + // * version + // * supportedConnectionTypes + // MAY include: * minimumVersion + // * ext + // * id + // + // Success Response Failed Response + // MUST include: * channel MUST include: * channel + // * version * successful + // * supportedConnectionTypes * error + // * clientId MAY include: * supportedConnectionTypes + // * successful * advice + // MAY include: * minimumVersion * version + // * advice * minimumVersion + // * ext * ext + // * id * id + // * authSuccessful + handshake: function(callback, context) { + if (this._advice.reconnect === this.NONE) return; + if (this._state !== this.UNCONNECTED) return; - toArray: function() { - var array = []; - this.forEach(function(item) { array.push(item) }); - return array; - } -}); + this._state = this.CONNECTING; + var self = this; + this.info('Initiating handshake with ?', this._dispatcher.endpoint.href); + this._dispatcher.selectTransport(constants.MANDATORY_CONNECTION_TYPES); -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { + this._sendMessage({ + channel: Channel.HANDSHAKE, + version: constants.BAYEUX_VERSION, + supportedConnectionTypes: this._dispatcher.getConnectionTypes() -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + }, {}, function(response) { -var Class = __webpack_require__(10), - URI = __webpack_require__(14), - browser = __webpack_require__(34), - assign = __webpack_require__(7), - toJSON = __webpack_require__(20), - Transport = __webpack_require__(15); + if (response.successful) { + this._state = this.CONNECTED; + this._dispatcher.clientId = response.clientId; -var XHR = assign(Class(Transport, { - encode: function(messages) { - return toJSON(messages); - }, + this._dispatcher.selectTransport(response.supportedConnectionTypes); - request: function(messages) { - var href = this.endpoint.href, - self = this, - xhr; + this.info('Handshake successful: ?', this._dispatcher.clientId); - // Prefer XMLHttpRequest over ActiveXObject if they both exist - if (global.XMLHttpRequest) { - xhr = new XMLHttpRequest(); - } else if (global.ActiveXObject) { - xhr = new ActiveXObject('Microsoft.XMLHTTP'); - } else { - return this._handleError(messages); - } + this.subscribe(this._channels.getKeys(), true); + if (callback) asap(function() { callback.call(context) }); - xhr.open('POST', href, true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.setRequestHeader('Pragma', 'no-cache'); - xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } else { + this.info('Handshake unsuccessful'); + __webpack_require__.g.setTimeout(function() { self.handshake(callback, context) }, this._dispatcher.retry * 1000); + this._state = this.UNCONNECTED; + } + }, this); + }, - var headers = this._dispatcher.headers; - for (var key in headers) { - if (!headers.hasOwnProperty(key)) continue; - xhr.setRequestHeader(key, headers[key]); - } + // Request Response + // MUST include: * channel MUST include: * channel + // * clientId * successful + // * connectionType * clientId + // MAY include: * ext MAY include: * error + // * id * advice + // * ext + // * id + // * timestamp + connect: function(callback, context) { + if (this._advice.reconnect === this.NONE) return; + if (this._state === this.DISCONNECTED) return; - var abort = function() { xhr.abort() }; - if (global.onbeforeunload !== undefined) - browser.Event.on(global, 'beforeunload', abort); + if (this._state === this.UNCONNECTED) + return this.handshake(function() { this.connect(callback, context) }, this); - xhr.onreadystatechange = function() { - if (!xhr || xhr.readyState !== 4) return; + this.callback(callback, context); + if (this._state !== this.CONNECTED) return; - var replies = null, - status = xhr.status, - text = xhr.responseText, - successful = (status >= 200 && status < 300) || status === 304 || status === 1223; + this.info('Calling deferred actions for ?', this._dispatcher.clientId); + this.setDeferredStatus('succeeded'); + this.setDeferredStatus('unknown'); - if (global.onbeforeunload !== undefined) - browser.Event.detach(global, 'beforeunload', abort); + if (this._connectRequest) return; + this._connectRequest = true; - xhr.onreadystatechange = function() {}; - xhr = null; + this.info('Initiating connection for ?', this._dispatcher.clientId); - if (!successful) return self._handleError(messages); + this._sendMessage({ + channel: Channel.CONNECT, + clientId: this._dispatcher.clientId, + connectionType: this._dispatcher.connectionType - try { - replies = JSON.parse(text); - } catch (error) {} + }, {}, this._cycleConnection, this); + }, - if (replies) - self._receive(replies); - else - self._handleError(messages); - }; + // Request Response + // MUST include: * channel MUST include: * channel + // * clientId * successful + // MAY include: * ext * clientId + // * id MAY include: * error + // * ext + // * id + disconnect: function() { + if (this._state !== this.CONNECTED) return; + this._state = this.DISCONNECTED; - xhr.send(this.encode(messages)); - return xhr; - } -}), { - isUsable: function(dispatcher, endpoint, callback, context) { - var usable = (navigator.product === 'ReactNative') - || URI.isSameOrigin(endpoint); + this.info('Disconnecting ?', this._dispatcher.clientId); + var promise = new Publication(); - callback.call(context, usable); - } -}); + this._sendMessage({ + channel: Channel.DISCONNECT, + clientId: this._dispatcher.clientId -module.exports = XHR; + }, {}, function(response) { + if (response.successful) { + this._dispatcher.close(); + promise.setDeferredStatus('succeeded'); + } else { + promise.setDeferredStatus('failed', Error.parse(response.error)); + } + }, this); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + this.info('Clearing channel listeners for ?', this._dispatcher.clientId); + this._channels = new Channel.Set(); -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { + return promise; + }, -"use strict"; + // Request Response + // MUST include: * channel MUST include: * channel + // * clientId * successful + // * subscription * clientId + // MAY include: * ext * subscription + // * id MAY include: * error + // * advice + // * ext + // * id + // * timestamp + subscribe: function(channel, callback, context) { + if (channel instanceof Array) + return array.map(channel, function(c) { + return this.subscribe(c, callback, context); + }, this); + var subscription = new Subscription(this, channel, callback, context), + force = (callback === true), + hasSubscribe = this._channels.hasSubscription(channel); -var assign = __webpack_require__(7); + if (hasSubscribe && !force) { + this._channels.subscribe([channel], subscription); + subscription.setDeferredStatus('succeeded'); + return subscription; + } -var Scheduler = function(message, options) { - this.message = message; - this.options = options; - this.attempts = 0; -}; + this.connect(function() { + this.info('Client ? attempting to subscribe to ?', this._dispatcher.clientId, channel); + if (!force) this._channels.subscribe([channel], subscription); -assign(Scheduler.prototype, { - getTimeout: function() { - return this.options.timeout; - }, + this._sendMessage({ + channel: Channel.SUBSCRIBE, + clientId: this._dispatcher.clientId, + subscription: channel - getInterval: function() { - return this.options.interval; - }, + }, {}, function(response) { + if (!response.successful) { + subscription.setDeferredStatus('failed', Error.parse(response.error)); + return this._channels.unsubscribe(channel, subscription); + } - isDeliverable: function() { - var attempts = this.options.attempts, - made = this.attempts, - deadline = this.options.deadline, - now = new Date().getTime(); - - if (attempts !== undefined && made >= attempts) - return false; - - if (deadline !== undefined && now > deadline) - return false; - - return true; - }, + var channels = [].concat(response.subscription); + this.info('Subscription acknowledged for ? to ?', this._dispatcher.clientId, channels); + subscription.setDeferredStatus('succeeded'); + }, this); + }, this); - send: function() { - this.attempts += 1; + return subscription; }, - succeed: function() {}, - - fail: function() {}, - - abort: function() {} -}); - -module.exports = Scheduler; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(76); - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var constants = __webpack_require__(50), - Logging = __webpack_require__(19); - -var Faye = { - VERSION: constants.VERSION, - - Client: __webpack_require__(93), - Scheduler: __webpack_require__(57) -}; - -Logging.wrapper = Faye; - -module.exports = Faye; - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -/* (ignored) */ - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -/* (ignored) */ - -/***/ }), -/* 62 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export InvalidTokenError */ -function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");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);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";/* harmony default export */ __webpack_exports__["a"] = (o); -//# sourceMappingURL=jwt-decode.esm.js.map - - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { + // Request Response + // MUST include: * channel MUST include: * channel + // * clientId * successful + // * subscription * clientId + // MAY include: * ext * subscription + // * id MAY include: * error + // * advice + // * ext + // * id + // * timestamp + unsubscribe: function(channel, subscription) { + if (channel instanceof Array) + return array.map(channel, function(c) { + return this.unsubscribe(c, subscription); + }, this); -var _typeof = __webpack_require__(38); + var dead = this._channels.unsubscribe(channel, subscription); + if (!dead) return; -var assertThisInitialized = __webpack_require__(17); + this.connect(function() { + this.info('Client ? attempting to unsubscribe from ?', this._dispatcher.clientId, channel); -function _possibleConstructorReturn(self, call) { - if (call && (_typeof(call) === "object" || typeof call === "function")) { - return call; - } + this._sendMessage({ + channel: Channel.UNSUBSCRIBE, + clientId: this._dispatcher.clientId, + subscription: channel - return assertThisInitialized(self); -} + }, {}, function(response) { + if (!response.successful) return; -module.exports = _possibleConstructorReturn; + var channels = [].concat(response.subscription); + this.info('Unsubscription acknowledged for ? from ?', this._dispatcher.clientId, channels); + }, this); + }, this); + }, -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { + // Request Response + // MUST include: * channel MUST include: * channel + // * data * successful + // MAY include: * clientId MAY include: * id + // * id * error + // * ext * ext + publish: function(channel, data, options) { + validateOptions(options || {}, ['attempts', 'deadline']); + var publication = new Publication(); -var getPrototypeOf = __webpack_require__(32); + this.connect(function() { + this.info('Client ? queueing published message to ?: ?', this._dispatcher.clientId, channel, data); -var setPrototypeOf = __webpack_require__(37); + this._sendMessage({ + channel: channel, + data: data, + clientId: this._dispatcher.clientId -var isNativeFunction = __webpack_require__(109); + }, options, function(response) { + if (response.successful) + publication.setDeferredStatus('succeeded'); + else + publication.setDeferredStatus('failed', Error.parse(response.error)); + }, this); + }, this); -var construct = __webpack_require__(110); + return publication; + }, -function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; + _sendMessage: function(message, options, callback, context) { + message.id = this._generateMessageId(); - module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !isNativeFunction(Class)) return Class; + var timeout = this._advice.timeout + ? 1.2 * this._advice.timeout / 1000 + : 1.2 * this._dispatcher.retry; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } + this.pipeThroughExtensions('outgoing', message, null, function(message) { + if (!message) return; + if (callback) this._responseCallbacks[message.id] = [callback, context]; + this._dispatcher.sendMessage(message, timeout, options || {}); + }, this); + }, - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); + _generateMessageId: function() { + this._messageId += 1; + if (this._messageId >= Math.pow(2,32)) this._messageId = 0; + return this._messageId.toString(36); + }, - _cache.set(Class, Wrapper); - } + _receiveMessage: function(message) { + var id = message.id, callback; - function Wrapper() { - return construct(Class, arguments, getPrototypeOf(this).constructor); + if (message.successful !== undefined) { + callback = this._responseCallbacks[id]; + delete this._responseCallbacks[id]; } - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return setPrototypeOf(Wrapper, Class); - }; - - return _wrapNativeSuper(Class); -} - -module.exports = _wrapNativeSuper; - -/***/ }), -/* 65 */ -/***/ (function(module, exports) { + this.pipeThroughExtensions('incoming', message, null, function(message) { + if (!message) return; + if (message.advice) this._handleAdvice(message.advice); + this._deliverMessage(message); + if (callback) callback[0].call(callback[1], message); + }, this); + }, -function _extends() { - module.exports = _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; + _handleAdvice: function(advice) { + assign(this._advice, advice); + this._dispatcher.timeout = this._advice.timeout / 1000; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } + if (this._advice.reconnect === this.HANDSHAKE && this._state !== this.DISCONNECTED) { + this._state = this.UNCONNECTED; + this._dispatcher.clientId = null; + this._cycleConnection(); } + }, - return target; - }; - - return _extends.apply(this, arguments); -} - -module.exports = _extends; - -/***/ }), -/* 66 */ -/***/ (function(module, exports) { - -/* eslint-env browser */ -module.exports = typeof self == 'object' ? self.FormData : window.FormData; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(68); - - -/***/ }), -/* 68 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "connect", function() { return _connect__WEBPACK_IMPORTED_MODULE_0__["a"]; }); - -/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamClient", function() { return _client__WEBPACK_IMPORTED_MODULE_1__["a"]; }); - -/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollectionEntry", function() { return _collections__WEBPACK_IMPORTED_MODULE_2__["a"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Collections", function() { return _collections__WEBPACK_IMPORTED_MODULE_2__["b"]; }); - -/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamFeed", function() { return _feed__WEBPACK_IMPORTED_MODULE_3__["a"]; }); - -/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(27); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamFileStore", function() { return _files__WEBPACK_IMPORTED_MODULE_4__["a"]; }); - -/* harmony import */ var _images__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamImageStore", function() { return _images__WEBPACK_IMPORTED_MODULE_5__["a"]; }); - -/* harmony import */ var _personalization__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Personalization", function() { return _personalization__WEBPACK_IMPORTED_MODULE_6__["a"]; }); - -/* harmony import */ var _reaction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamReaction", function() { return _reaction__WEBPACK_IMPORTED_MODULE_7__["a"]; }); - -/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamUser", function() { return _user__WEBPACK_IMPORTED_MODULE_8__["a"]; }); - -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13); -/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_batch_operations__WEBPACK_IMPORTED_MODULE_9__); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _batch_operations__WEBPACK_IMPORTED_MODULE_9__) if(["default","connect","StreamClient","CollectionEntry","Collections","StreamFeed","StreamFileStore","StreamImageStore","Personalization","StreamReaction","StreamUser"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _batch_operations__WEBPACK_IMPORTED_MODULE_9__[key]; }) }(__WEBPACK_IMPORT_KEY__)); -/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FeedError", function() { return _errors__WEBPACK_IMPORTED_MODULE_10__["a"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SiteError", function() { return _errors__WEBPACK_IMPORTED_MODULE_10__["c"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MissingSchemaError", function() { return _errors__WEBPACK_IMPORTED_MODULE_10__["b"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StreamApiError", function() { return _errors__WEBPACK_IMPORTED_MODULE_10__["d"]; }); - -/* harmony import */ var _signing__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JWTScopeToken", function() { return _signing__WEBPACK_IMPORTED_MODULE_11__["a"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JWTUserSessionToken", function() { return _signing__WEBPACK_IMPORTED_MODULE_11__["b"]; }); - -/** - * @module stream - * @author Thierry Schellenbach - * BSD License - */ - -/* - * typescript does not export the default exports here - * useful for exposing exported internal types - */ - - - - - - - - - - - - - -/***/ }), -/* 69 */ -/***/ (function(module, exports) { - -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -module.exports = _arrayWithHoles; - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - -function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} - -module.exports = _iterableToArrayLimit; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -var arrayLikeToArray = __webpack_require__(72); - -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); -} - -module.exports = _unsupportedIterableToArray; - -/***/ }), -/* 72 */ -/***/ (function(module, exports) { - -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - - return arr2; -} - -module.exports = _arrayLikeToArray; - -/***/ }), -/* 73 */ -/***/ (function(module, exports) { - -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -module.exports = _nonIterableRest; - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -module.exports = _objectWithoutPropertiesLoose; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -var runtime = (function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function define(obj, key, value) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - try { - // IE 8 has a broken Object.defineProperty that only works on DOM objects. - define({}, ""); - } catch (err) { - define = function(obj, key, value) { - return obj[key] = value; - }; - } - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - exports.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunction.displayName = define( - GeneratorFunctionPrototype, - toStringTagSymbol, - "GeneratorFunction" - ); - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - define(prototype, method, function(arg) { - return this._invoke(method, arg); - }); - }); - } - - exports.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - exports.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define(genFun, toStringTagSymbol, "GeneratorFunction"); - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - exports.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function(error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - exports.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList), - PromiseImpl - ); - - return exports.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } + _deliverMessage: function(message) { + if (!message.channel || message.data === undefined) return; + this.info('Client ? calling listeners for ? with ?', this._dispatcher.clientId, message.channel, message.data); + this._channels.distributeMessage(message); + }, - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; + _cycleConnection: function() { + if (this._connectRequest) { + this._connectRequest = null; + this.info('Closed connection for ?', this._dispatcher.clientId); + } + var self = this; + __webpack_require__.g.setTimeout(function() { self.connect() }, this._advice.interval); + } +}); - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } +assign(Client.prototype, Deferrable); +assign(Client.prototype, Publisher); +assign(Client.prototype, Logging); +assign(Client.prototype, Extensible); - context.dispatchException(context.arg); +module.exports = Client; - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - state = GenStateExecuting; +/***/ }), - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; +/***/ 8854: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - if (record.arg === ContinueSentinel) { - continue; - } +"use strict"; - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } +var Class = __webpack_require__(8702), + URI = __webpack_require__(280), + cookies = __webpack_require__(3754), + assign = __webpack_require__(7088), + Logging = __webpack_require__(8782), + Publisher = __webpack_require__(4909), + Transport = __webpack_require__(4713), + Scheduler = __webpack_require__(6148); - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; +var Dispatcher = Class({ className: 'Dispatcher', + MAX_REQUEST_SIZE: 2048, + DEFAULT_RETRY: 5, - if (context.method === "throw") { - // Note: ["return"] must be used for ES3 parsing compatibility. - if (delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); + UP: 1, + DOWN: 2, - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } + initialize: function(client, endpoint, options) { + this._client = client; + this.endpoint = URI.parse(endpoint); + this._alternates = options.endpoints || {}; - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } + this.cookies = cookies.CookieJar && new cookies.CookieJar(); + this._disabled = []; + this._envelopes = {}; + this.headers = {}; + this.retry = options.retry || this.DEFAULT_RETRY; + this._scheduler = options.scheduler || Scheduler; + this._state = 0; + this.transports = {}; + this.wsExtensions = []; - return ContinueSentinel; + this.proxy = options.proxy || {}; + if (typeof this._proxy === 'string') this._proxy = { origin: this._proxy }; + + var exts = options.websocketExtensions; + if (exts) { + exts = [].concat(exts); + for (var i = 0, n = exts.length; i < n; i++) + this.addWebsocketExtension(exts[i]); } - var record = tryCatch(method, delegate.iterator, context.arg); + this.tls = options.tls || {}; + this.tls.ca = this.tls.ca || options.ca; - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } + for (var type in this._alternates) + this._alternates[type] = URI.parse(this._alternates[type]); - var info = record.arg; + this.maxRequestSize = this.MAX_REQUEST_SIZE; + }, - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } + endpointFor: function(connectionType) { + return this._alternates[connectionType] || this.endpoint; + }, - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; + addWebsocketExtension: function(extension) { + this.wsExtensions.push(extension); + }, - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; + disable: function(feature) { + this._disabled.push(feature); + Transport.disable(feature); + }, - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } + setHeader: function(name, value) { + this.headers[name] = value; + }, - } else { - // Re-yield the result returned by the delegate method. - return info; - } + close: function() { + var transport = this._transport; + delete this._transport; + if (transport) transport.close(); + }, - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } + getConnectionTypes: function() { + return Transport.getConnectionTypes(); + }, - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); + selectTransport: function(transportTypes) { + Transport.get(this, transportTypes, this._disabled, function(transport) { + this.debug('Selected ? transport for ?', transport.connectionType, transport.endpoint.href); - define(Gp, toStringTagSymbol, "Generator"); + if (transport === this._transport) return; + if (this._transport) this._transport.close(); - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - Gp[iteratorSymbol] = function() { - return this; - }; + this._transport = transport; + this.connectionType = transport.connectionType; + }, this); + }, - Gp.toString = function() { - return "[object Generator]"; - }; + sendMessage: function(message, timeout, options) { + options = options || {}; - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; + var id = message.id, + attempts = options.attempts, + deadline = options.deadline && new Date().getTime() + (options.deadline * 1000), + envelope = this._envelopes[id], + scheduler; - if (1 in locs) { - entry.catchLoc = locs[1]; + if (!envelope) { + scheduler = new this._scheduler(message, { timeout: timeout, interval: this.retry, attempts: attempts, deadline: deadline }); + envelope = this._envelopes[id] = { message: message, scheduler: scheduler }; } - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; + this._sendEnvelope(envelope); + }, + + _sendEnvelope: function(envelope) { + if (!this._transport) return; + if (envelope.request || envelope.timer) return; + + var message = envelope.message, + scheduler = envelope.scheduler, + self = this; + + if (!scheduler.isDeliverable()) { + scheduler.abort(); + delete this._envelopes[message.id]; + return; } - this.tryEntries.push(entry); - } + envelope.timer = __webpack_require__.g.setTimeout(function() { + self.handleError(message); + }, scheduler.getTimeout() * 1000); - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } + scheduler.send(); + envelope.request = this._transport.sendMessage(message); + }, - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } + handleResponse: function(reply) { + var envelope = this._envelopes[reply.id]; - exports.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); + if (reply.successful !== undefined && envelope) { + envelope.scheduler.succeed(); + delete this._envelopes[reply.id]; + __webpack_require__.g.clearTimeout(envelope.timer); } - keys.reverse(); - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } + this.trigger('message', reply); - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; + if (this._state === this.UP) return; + this._state = this.UP; + this._client.trigger('transport:up'); + }, - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } + handleError: function(message, immediate) { + var envelope = this._envelopes[message.id], + request = envelope && envelope.request, + self = this; - if (typeof iterable.next === "function") { - return iterable; - } + if (!request) return; - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } + request.then(function(req) { + if (req && req.abort) req.abort(); + }); - next.value = undefined; - next.done = true; + var scheduler = envelope.scheduler; + scheduler.fail(); - return next; - }; + __webpack_require__.g.clearTimeout(envelope.timer); + envelope.request = envelope.timer = null; - return next.next = next; - } + if (immediate) { + this._sendEnvelope(envelope); + } else { + envelope.timer = __webpack_require__.g.setTimeout(function() { + envelope.timer = null; + self._sendEnvelope(envelope); + }, scheduler.getInterval() * 1000); } - // Return an iterator with no values. - return { next: doneResult }; + if (this._state === this.DOWN) return; + this._state = this.DOWN; + this._client.trigger('transport:down'); } - exports.values = values; +}); - function doneResult() { - return { value: undefined, done: true }; - } +Dispatcher.create = function(client, endpoint, options) { + return new Dispatcher(client, endpoint, options); +}; - Context.prototype = { - constructor: Context, +assign(Dispatcher.prototype, Publisher); +assign(Dispatcher.prototype, Logging); - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; +module.exports = Dispatcher; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); +/***/ }), - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, +/***/ 5656: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - stop: function() { - this.done = true; +"use strict"; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - return this.rval; - }, +var Class = __webpack_require__(8702), + Grammar = __webpack_require__(4710); - dispatchException: function(exception) { - if (this.done) { - throw exception; - } +var Error = Class({ + initialize: function(code, params, message) { + this.code = code; + this.params = Array.prototype.slice.call(params); + this.message = message; + }, - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; + toString: function() { + return this.code + ':' + + this.params.join(',') + ':' + + this.message; + } +}); - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } +Error.parse = function(message) { + message = message || ''; + if (!Grammar.ERROR.test(message)) return new Error(null, [], message); - return !! caught; - } + var parts = message.split(':'), + code = parseInt(parts[0]), + params = parts[1].split(','), + message = parts[2]; - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; + return new Error(code, params, message); +}; - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } +// http://code.google.com/p/cometd/wiki/BayeuxCodes +var errors = { + versionMismatch: [300, 'Version mismatch'], + conntypeMismatch: [301, 'Connection types not supported'], + extMismatch: [302, 'Extension mismatch'], + badRequest: [400, 'Bad request'], + clientUnknown: [401, 'Unknown client'], + parameterMissing: [402, 'Missing required parameter'], + channelForbidden: [403, 'Forbidden channel'], + channelUnknown: [404, 'Unknown channel'], + channelInvalid: [405, 'Invalid channel'], + extUnknown: [406, 'Unknown extension'], + publishFailed: [407, 'Failed to publish'], + serverError: [500, 'Internal server error'] +}; - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); +for (var name in errors) + (function(name) { + Error[name] = function() { + return new Error(errors[name][0], arguments, errors[name][1]).toString(); + }; + })(name); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } +module.exports = Error; - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } +/***/ }), - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, +/***/ 9983: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } +"use strict"; - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; +var assign = __webpack_require__(7088), + Logging = __webpack_require__(8782); + +var Extensible = { + addExtension: function(extension) { + this._extensions = this._extensions || []; + this._extensions.push(extension); + if (extension.added) extension.added(this); + }, + + removeExtension: function(extension) { + if (!this._extensions) return; + var i = this._extensions.length; + while (i--) { + if (this._extensions[i] !== extension) continue; + this._extensions.splice(i,1); + if (extension.removed) extension.removed(this); + } + }, - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } + pipeThroughExtensions: function(stage, message, request, callback, context) { + this.debug('Passing through ? extensions: ?', stage, message); - return this.complete(record); - }, + if (!this._extensions) return callback.call(context, message); + var extensions = this._extensions.slice(); - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } + var pipe = function(message) { + if (!message) return callback.call(context, message); - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } + var extension = extensions.shift(); + if (!extension) return callback.call(context, message); - return ContinueSentinel; - }, + var fn = extension[stage]; + if (!fn) return pipe(message); - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, + if (fn.length >= 3) extension[stage](message, request, pipe); + else extension[stage](message, pipe); + }; + pipe(message); + } +}; - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } +assign(Extensible, Logging); - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, +module.exports = Extensible; - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } +/***/ }), - return ContinueSentinel; - } - }; +/***/ 4710: +/***/ ((module) => { - // Regardless of whether this script is executing as a CommonJS module - // or not, return the runtime object so that we can declare the variable - // regeneratorRuntime in the outer scope, which allows this module to be - // injected easily by `bin/regenerator --include-runtime script.js`. - return exports; +"use strict"; -}( - // If this script is executing as a CommonJS module, use module.exports - // as the regeneratorRuntime namespace. Otherwise create a new empty - // object. Either way, the resulting object will be used to initialize - // the regeneratorRuntime variable at the top of this file. - true ? module.exports : undefined -)); -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - // This module should not be running in strict mode, so the above - // assignment should always work unless something is misconfigured. Just - // in case runtime.js accidentally runs in strict mode, we can escape - // strict mode using a global Function call. This could conceivably fail - // if a Content Security Policy forbids using Function, but in that case - // the proper solution is to fix the accidental strict mode problem. If - // you've misconfigured your bundler to force strict mode and applied a - // CSP to forbid Function, and you're not willing to fix either of those - // problems, please detail your unique predicament in a GitHub issue. - Function("r", "regeneratorRuntime = r")(runtime); -} +module.exports = { + CHANNEL_NAME: /^\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*$/, + CHANNEL_PATTERN: /^(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*\/\*{1,2}$/, + 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])|(\-|\_|\!|\~|\(|\)|\$|\@)| |\/|\*|\.))*)$/, + VERSION: /^([0-9])+(\.(([a-z]|[A-Z])|[0-9])(((([a-z]|[A-Z])|[0-9])|\-|\_))*)*$/ +}; /***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 4347: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(9); -var bind = __webpack_require__(42); -var Axios = __webpack_require__(77); -var mergeConfig = __webpack_require__(48); -var defaults = __webpack_require__(45); +var Class = __webpack_require__(8702), + Deferrable = __webpack_require__(5890); -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * @return {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - var context = new Axios(defaultConfig); - var instance = bind(Axios.prototype.request, context); +module.exports = Class(Deferrable); - // Copy axios.prototype to instance - utils.extend(instance, Axios.prototype, context); - // Copy context to instance - utils.extend(instance, context); +/***/ }), - return instance; -} +/***/ 6148: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// Create the default instance to be exported -var axios = createInstance(defaults); +"use strict"; -// Expose Axios class to allow class inheritance -axios.Axios = Axios; -// Factory for creating new instances -axios.create = function create(instanceConfig) { - return createInstance(mergeConfig(axios.defaults, instanceConfig)); +var assign = __webpack_require__(7088); + +var Scheduler = function(message, options) { + this.message = message; + this.options = options; + this.attempts = 0; }; -// Expose Cancel & CancelToken -axios.Cancel = __webpack_require__(49); -axios.CancelToken = __webpack_require__(90); -axios.isCancel = __webpack_require__(44); +assign(Scheduler.prototype, { + getTimeout: function() { + return this.options.timeout; + }, -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = __webpack_require__(91); + getInterval: function() { + return this.options.interval; + }, -// Expose isAxiosError -axios.isAxiosError = __webpack_require__(92); + isDeliverable: function() { + var attempts = this.options.attempts, + made = this.attempts, + deadline = this.options.deadline, + now = new Date().getTime(); -module.exports = axios; + if (attempts !== undefined && made >= attempts) + return false; -// Allow use of default import syntax in TypeScript -module.exports.default = axios; + if (deadline !== undefined && now > deadline) + return false; + return true; + }, -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { + send: function() { + this.attempts += 1; + }, -"use strict"; + succeed: function() {}, + fail: function() {}, -var utils = __webpack_require__(9); -var buildURL = __webpack_require__(43); -var InterceptorManager = __webpack_require__(78); -var dispatchRequest = __webpack_require__(79); -var mergeConfig = __webpack_require__(48); + abort: function() {} +}); -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - */ -function Axios(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; -} +module.exports = Scheduler; -/** - * Dispatch a request - * - * @param {Object} config The config specific for this request (merged with this.defaults) - */ -Axios.prototype.request = function request(config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof config === 'string') { - config = arguments[1] || {}; - config.url = arguments[0]; - } else { - config = config || {}; - } - config = mergeConfig(this.defaults, config); +/***/ }), - // Set config.method - if (config.method) { - config.method = config.method.toLowerCase(); - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase(); - } else { - config.method = 'get'; - } +/***/ 5740: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - // Hook up interceptors middleware - var chain = [dispatchRequest, undefined]; - var promise = Promise.resolve(config); +"use strict"; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - chain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - chain.push(interceptor.fulfilled, interceptor.rejected); - }); +var Class = __webpack_require__(8702), + assign = __webpack_require__(7088), + Deferrable = __webpack_require__(5890); - while (chain.length) { - promise = promise.then(chain.shift(), chain.shift()); - } +var Subscription = Class({ + initialize: function(client, channels, callback, context) { + this._client = client; + this._channels = channels; + this._callback = callback; + this._context = context; + this._cancelled = false; + }, - return promise; -}; + withChannel: function(callback, context) { + this._withChannel = [callback, context]; + return this; + }, + + apply: function(context, args) { + var message = args[0]; + + if (this._callback) + this._callback.call(this._context, message.data); + + if (this._withChannel) + this._withChannel[0].call(this._withChannel[1], message.channel, message.data); + }, -Axios.prototype.getUri = function getUri(config) { - config = mergeConfig(this.defaults, config); - return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); -}; + cancel: function() { + if (this._cancelled) return; + this._client.unsubscribe(this._channels, this); + this._cancelled = true; + }, -// Provide aliases for supported request methods -utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: (config || {}).data - })); - }; + unsubscribe: function() { + this.cancel(); + } }); -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, data, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: data - })); - }; -}); +assign(Subscription.prototype, Deferrable); -module.exports = Axios; +module.exports = Subscription; /***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 4713: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(9); +var Transport = __webpack_require__(2195); -function InterceptorManager() { - this.handlers = []; -} +Transport.register('websocket', __webpack_require__(5182)); +Transport.register('eventsource', __webpack_require__(9591)); +Transport.register('long-polling', __webpack_require__(3611)); +Transport.register('cross-origin-long-polling', __webpack_require__(7045)); +Transport.register('callback-polling', __webpack_require__(7890)); -/** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ -InterceptorManager.prototype.use = function use(fulfilled, rejected) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: rejected - }); - return this.handlers.length - 1; -}; +module.exports = Transport; -/** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - */ -InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } -}; -/** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - */ -InterceptorManager.prototype.forEach = function forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); -}; +/***/ }), -module.exports = InterceptorManager; +/***/ 7045: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +"use strict"; -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +var Class = __webpack_require__(8702), + Set = __webpack_require__(8172), + URI = __webpack_require__(280), + assign = __webpack_require__(7088), + toJSON = __webpack_require__(9457), + Transport = __webpack_require__(2195); +var CORS = assign(Class(Transport, { + encode: function(messages) { + return 'message=' + encodeURIComponent(toJSON(messages)); + }, -var utils = __webpack_require__(9); -var transformData = __webpack_require__(80); -var isCancel = __webpack_require__(44); -var defaults = __webpack_require__(45); + request: function(messages) { + var xhrClass = __webpack_require__.g.XDomainRequest ? XDomainRequest : XMLHttpRequest, + xhr = new xhrClass(), + id = ++CORS._id, + headers = this._dispatcher.headers, + self = this, + key; -/** - * Throws a `Cancel` if cancellation has been requested. - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } -} + xhr.open('POST', this.endpoint.href, true); + xhr.withCredentials = true; -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * @returns {Promise} The Promise to be fulfilled - */ -module.exports = function dispatchRequest(config) { - throwIfCancellationRequested(config); + if (xhr.setRequestHeader) { + xhr.setRequestHeader('Pragma', 'no-cache'); + for (key in headers) { + if (!headers.hasOwnProperty(key)) continue; + xhr.setRequestHeader(key, headers[key]); + } + } - // Ensure headers exist - config.headers = config.headers || {}; + var cleanUp = function() { + if (!xhr) return false; + CORS._pending.remove(id); + xhr.onload = xhr.onerror = xhr.ontimeout = xhr.onprogress = null; + xhr = null; + }; - // Transform request data - config.data = transformData( - config.data, - config.headers, - config.transformRequest - ); + xhr.onload = function() { + var replies; + try { replies = JSON.parse(xhr.responseText) } catch (error) {} - // Flatten headers - config.headers = utils.merge( - config.headers.common || {}, - config.headers[config.method] || {}, - config.headers - ); + cleanUp(); - utils.forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - function cleanHeaderConfig(method) { - delete config.headers[method]; - } - ); + if (replies) + self._receive(replies); + else + self._handleError(messages); + }; - var adapter = config.adapter || defaults.adapter; + xhr.onerror = xhr.ontimeout = function() { + cleanUp(); + self._handleError(messages); + }; - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); + xhr.onprogress = function() {}; - // Transform response data - response.data = transformData( - response.data, - response.headers, - config.transformResponse - ); + if (xhrClass === __webpack_require__.g.XDomainRequest) + CORS._pending.add({ id: id, xhr: xhr }); - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); + xhr.send(this.encode(messages)); + return xhr; + } +}), { + _id: 0, + _pending: new Set(), - // Transform response data - if (reason && reason.response) { - reason.response.data = transformData( - reason.response.data, - reason.response.headers, - config.transformResponse - ); - } + isUsable: function(dispatcher, endpoint, callback, context) { + if (URI.isSameOrigin(endpoint)) + return callback.call(context, false); + + if (__webpack_require__.g.XDomainRequest) + return callback.call(context, endpoint.protocol === location.protocol); + + if (__webpack_require__.g.XMLHttpRequest) { + var xhr = new XMLHttpRequest(); + return callback.call(context, xhr.withCredentials !== undefined); } + return callback.call(context, false); + } +}); - return Promise.reject(reason); - }); -}; +module.exports = CORS; /***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +/***/ 9591: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +"use strict"; -var utils = __webpack_require__(9); -/** - * Transform the data for a request or a response - * - * @param {Object|String} data The data to be transformed - * @param {Array} headers The headers for the request or response - * @param {Array|Function} fns A single function or Array of functions - * @returns {*} The resulting transformed data - */ -module.exports = function transformData(data, headers, fns) { - /*eslint no-param-reassign:0*/ - utils.forEach(fns, function transform(fn) { - data = fn(data, headers); - }); +var Class = __webpack_require__(8702), + URI = __webpack_require__(280), + copyObject = __webpack_require__(172), + assign = __webpack_require__(7088), + Deferrable = __webpack_require__(5890), + Transport = __webpack_require__(2195), + XHR = __webpack_require__(3611); - return data; -}; +var EventSource = assign(Class(Transport, { + initialize: function(dispatcher, endpoint) { + Transport.prototype.initialize.call(this, dispatcher, endpoint); + if (!__webpack_require__.g.EventSource) return this.setDeferredStatus('failed'); + this._xhr = new XHR(dispatcher, endpoint); -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { + endpoint = copyObject(endpoint); + endpoint.pathname += '/' + dispatcher.clientId; -"use strict"; + var socket = new __webpack_require__.g.EventSource(URI.stringify(endpoint)), + self = this; + socket.onopen = function() { + self._everConnected = true; + self.setDeferredStatus('succeeded'); + }; -var utils = __webpack_require__(9); + socket.onerror = function() { + if (self._everConnected) { + self._handleError([]); + } else { + self.setDeferredStatus('failed'); + socket.close(); + } + }; -module.exports = function normalizeHeaderName(headers, normalizedName) { - utils.forEach(headers, function processHeader(value, name) { - if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { - headers[normalizedName] = value; - delete headers[name]; - } - }); -}; + socket.onmessage = function(event) { + var replies; + try { replies = JSON.parse(event.data) } catch (error) {} + if (replies) + self._receive(replies); + else + self._handleError([]); + }; -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { + this._socket = socket; + }, -"use strict"; + close: function() { + if (!this._socket) return; + this._socket.onopen = this._socket.onerror = this._socket.onmessage = null; + this._socket.close(); + delete this._socket; + }, + isUsable: function(callback, context) { + this.callback(function() { callback.call(context, true) }); + this.errback(function() { callback.call(context, false) }); + }, -var createError = __webpack_require__(47); + encode: function(messages) { + return this._xhr.encode(messages); + }, -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - */ -module.exports = function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(createError( - 'Request failed with status code ' + response.status, - response.config, - null, - response.request, - response - )); + request: function(messages) { + return this._xhr.request(messages); } -}; +}), { + isUsable: function(dispatcher, endpoint, callback, context) { + var id = dispatcher.clientId; + if (!id) return callback.call(context, false); -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { + XHR.isUsable(dispatcher, endpoint, function(usable) { + if (!usable) return callback.call(context, false); + this.create(dispatcher, endpoint).isUsable(callback, context); + }, this); + }, -"use strict"; + create: function(dispatcher, endpoint) { + var sockets = dispatcher.transports.eventsource = dispatcher.transports.eventsource || {}, + id = dispatcher.clientId; + var url = copyObject(endpoint); + url.pathname += '/' + (id || ''); + url = URI.stringify(url); -/** - * Update an Error with the specified config, error code, and response. - * - * @param {Error} error The error to update. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The error. - */ -module.exports = function enhanceError(error, config, code, request, response) { - error.config = config; - if (code) { - error.code = code; + sockets[url] = sockets[url] || new this(dispatcher, endpoint); + return sockets[url]; } +}); - error.request = request; - error.response = response; - error.isAxiosError = true; +assign(EventSource.prototype, Deferrable); - error.toJSON = function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: this.config, - code: this.code - }; - }; - return error; -}; +module.exports = EventSource; /***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 7890: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(9); +var Class = __webpack_require__(8702), + URI = __webpack_require__(280), + copyObject = __webpack_require__(172), + assign = __webpack_require__(7088), + toJSON = __webpack_require__(9457), + Transport = __webpack_require__(2195); -module.exports = ( - utils.isStandardBrowserEnv() ? +var JSONP = assign(Class(Transport, { + encode: function(messages) { + var url = copyObject(this.endpoint); + url.query.message = toJSON(messages); + url.query.jsonp = '__jsonp' + JSONP._cbCount + '__'; + return URI.stringify(url); + }, - // Standard browser envs support document.cookie - (function standardBrowserEnv() { - return { - write: function write(name, value, expires, path, domain, secure) { - var cookie = []; - cookie.push(name + '=' + encodeURIComponent(value)); + request: function(messages) { + var head = document.getElementsByTagName('head')[0], + script = document.createElement('script'), + callbackName = JSONP.getCallbackName(), + endpoint = copyObject(this.endpoint), + self = this; - if (utils.isNumber(expires)) { - cookie.push('expires=' + new Date(expires).toGMTString()); - } + endpoint.query.message = toJSON(messages); + endpoint.query.jsonp = callbackName; - if (utils.isString(path)) { - cookie.push('path=' + path); - } + var cleanup = function() { + if (!__webpack_require__.g[callbackName]) return false; + __webpack_require__.g[callbackName] = undefined; + try { delete __webpack_require__.g[callbackName] } catch (error) {} + script.parentNode.removeChild(script); + }; - if (utils.isString(domain)) { - cookie.push('domain=' + domain); - } + __webpack_require__.g[callbackName] = function(replies) { + cleanup(); + self._receive(replies); + }; - if (secure === true) { - cookie.push('secure'); - } + script.type = 'text/javascript'; + script.src = URI.stringify(endpoint); + head.appendChild(script); - document.cookie = cookie.join('; '); - }, + script.onerror = function() { + cleanup(); + self._handleError(messages); + }; - read: function read(name) { - var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); - return (match ? decodeURIComponent(match[3]) : null); - }, + return { abort: cleanup }; + } +}), { + _cbCount: 0, - remove: function remove(name) { - this.write(name, '', Date.now() - 86400000); - } - }; - })() : + getCallbackName: function() { + this._cbCount += 1; + return '__jsonp' + this._cbCount + '__'; + }, - // Non standard browser env (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return { - write: function write() {}, - read: function read() { return null; }, - remove: function remove() {} - }; - })() -); + isUsable: function(dispatcher, endpoint, callback, context) { + callback.call(context, true); + } +}); + +module.exports = JSONP; /***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 2195: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var isAbsoluteURL = __webpack_require__(86); -var combineURLs = __webpack_require__(87); +var Class = __webpack_require__(8702), + Cookie = __webpack_require__(3754).Cookie, + Promise = __webpack_require__(4857), + array = __webpack_require__(8722), + assign = __webpack_require__(7088), + Logging = __webpack_require__(8782), + Timeouts = __webpack_require__(2840), + Channel = __webpack_require__(1762); -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * @returns {string} The combined full path - */ -module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -}; +var Transport = assign(Class({ className: 'Transport', + DEFAULT_PORTS: { 'http:': 80, 'https:': 443, 'ws:': 80, 'wss:': 443 }, + MAX_DELAY: 0, + batching: true, -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { + initialize: function(dispatcher, endpoint) { + this._dispatcher = dispatcher; + this.endpoint = endpoint; + this._outbox = []; + this._proxy = assign({}, this._dispatcher.proxy); -"use strict"; + if (!this._proxy.origin) + this._proxy.origin = this._findProxy(); + }, + close: function() {}, -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -module.exports = function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); -}; + encode: function(messages) { + return ''; + }, + sendMessage: function(message) { + this.debug('Client ? sending message to ?: ?', + this._dispatcher.clientId, this.endpoint.href, message); -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { + if (!this.batching) return Promise.resolve(this.request([message])); -"use strict"; + this._outbox.push(message); + this._flushLargeBatch(); + if (message.channel === Channel.HANDSHAKE) + return this._publish(0.01); -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * @returns {string} The combined URL - */ -module.exports = function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -}; + if (message.channel === Channel.CONNECT) + this._connectMessage = message; + + return this._publish(this.MAX_DELAY); + }, + _makePromise: function() { + var self = this; -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { + this._requestPromise = this._requestPromise || new Promise(function(resolve) { + self._resolvePromise = resolve; + }); + }, -"use strict"; + _publish: function(delay) { + this._makePromise(); + this.addTimeout('publish', delay, function() { + this._flush(); + delete this._requestPromise; + }, this); -var utils = __webpack_require__(9); + return this._requestPromise; + }, -// Headers whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -var 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' -]; + _flush: function() { + this.removeTimeout('publish'); -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} headers Headers needing to be parsed - * @returns {Object} Headers parsed into an object - */ -module.exports = function parseHeaders(headers) { - var parsed = {}; - var key; - var val; - var i; + if (this._outbox.length > 1 && this._connectMessage) + this._connectMessage.advice = { timeout: 0 }; - if (!headers) { return parsed; } + this._resolvePromise(this.request(this._outbox)); - utils.forEach(headers.split('\n'), function parser(line) { - i = line.indexOf(':'); - key = utils.trim(line.substr(0, i)).toLowerCase(); - val = utils.trim(line.substr(i + 1)); + this._connectMessage = null; + this._outbox = []; + }, - if (key) { - if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { - return; - } - if (key === 'set-cookie') { - parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - } - }); + _flushLargeBatch: function() { + var string = this.encode(this._outbox); + if (string.length < this._dispatcher.maxRequestSize) return; + var last = this._outbox.pop(); - return parsed; -}; + this._makePromise(); + this._flush(); + if (last) this._outbox.push(last); + }, -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { + _receive: function(replies) { + if (!replies) return; + replies = [].concat(replies); -"use strict"; + this.debug('Client ? received from ? via ?: ?', + this._dispatcher.clientId, this.endpoint.href, this.connectionType, replies); + for (var i = 0, n = replies.length; i < n; i++) + this._dispatcher.handleResponse(replies[i]); + }, -var utils = __webpack_require__(9); + _handleError: function(messages, immediate) { + messages = [].concat(messages); -module.exports = ( - utils.isStandardBrowserEnv() ? + this.debug('Client ? failed to send to ? via ?: ?', + this._dispatcher.clientId, this.endpoint.href, this.connectionType, messages); - // Standard browser envs have full support of the APIs needed to test - // whether the request URL is of the same origin as current location. - (function standardBrowserEnv() { - var msie = /(msie|trident)/i.test(navigator.userAgent); - var urlParsingNode = document.createElement('a'); - var originURL; + for (var i = 0, n = messages.length; i < n; i++) + this._dispatcher.handleError(messages[i]); + }, - /** - * Parse a URL to discover it's components - * - * @param {String} url The URL to be parsed - * @returns {Object} - */ - function resolveURL(url) { - var href = url; + _getCookies: function() { + var cookies = this._dispatcher.cookies, + url = this.endpoint.href; - if (msie) { - // IE needs attribute set twice to normalize properties - urlParsingNode.setAttribute('href', href); - href = urlParsingNode.href; - } + if (!cookies) return ''; - urlParsingNode.setAttribute('href', href); + return array.map(cookies.getCookiesSync(url), function(cookie) { + return cookie.cookieString(); + }).join('; '); + }, - // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils - return { - href: urlParsingNode.href, - protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', - host: urlParsingNode.host, - search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', - hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', - hostname: urlParsingNode.hostname, - port: urlParsingNode.port, - pathname: (urlParsingNode.pathname.charAt(0) === '/') ? - urlParsingNode.pathname : - '/' + urlParsingNode.pathname - }; - } + _storeCookies: function(setCookie) { + var cookies = this._dispatcher.cookies, + url = this.endpoint.href, + cookie; - originURL = resolveURL(window.location.href); + if (!setCookie || !cookies) return; + setCookie = [].concat(setCookie); - /** - * Determine if a URL shares the same origin as the current location - * - * @param {String} requestURL The URL to test - * @returns {boolean} True if URL shares the same origin, otherwise false - */ - return function isURLSameOrigin(requestURL) { - var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; - return (parsed.protocol === originURL.protocol && - parsed.host === originURL.host); - }; - })() : + for (var i = 0, n = setCookie.length; i < n; i++) { + cookie = Cookie.parse(setCookie[i]); + cookies.setCookieSync(cookie, url); + } + }, - // Non standard browser envs (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true; - }; - })() -); + _findProxy: function() { + if (typeof process === 'undefined') return undefined; + var protocol = this.endpoint.protocol; + if (!protocol) return undefined; -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { + var name = protocol.replace(/:$/, '').toLowerCase() + '_proxy', + upcase = name.toUpperCase(), + env = process.env, + keys, proxy; -"use strict"; + if (name === 'http_proxy' && env.REQUEST_METHOD) { + keys = Object.keys(env).filter(function(k) { return /^http_proxy$/i.test(k) }); + if (keys.length === 1) { + if (keys[0] === name && env[upcase] === undefined) + proxy = env[name]; + } else if (keys.length > 1) { + proxy = env[name]; + } + proxy = proxy || env['CGI_' + upcase]; + } else { + proxy = env[name] || env[upcase]; + if (proxy && !env[name]) + console.warn('The environment variable ' + upcase + + ' is discouraged. Use ' + name + '.'); + } + return proxy; + } +}), { + get: function(dispatcher, allowed, disabled, callback, context) { + var endpoint = dispatcher.endpoint; -var Cancel = __webpack_require__(49); + array.asyncEach(this._transports, function(pair, resume) { + var connType = pair[0], klass = pair[1], + connEndpoint = dispatcher.endpointFor(connType); -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @class - * @param {Function} executor The executor function. - */ -function CancelToken(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } + if (array.indexOf(disabled, connType) >= 0) + return resume(); - var resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); + if (array.indexOf(allowed, connType) < 0) { + klass.isUsable(dispatcher, connEndpoint, function() {}); + return resume(); + } - var token = this; - executor(function cancel(message) { - if (token.reason) { - // Cancellation has already been requested - return; - } + klass.isUsable(dispatcher, connEndpoint, function(isUsable) { + if (!isUsable) return resume(); + var transport = klass.hasOwnProperty('create') ? klass.create(dispatcher, connEndpoint) : new klass(dispatcher, connEndpoint); + callback.call(context, transport); + }); + }, function() { + throw new Error('Could not find a usable connection type for ' + endpoint.href); + }); + }, - token.reason = new Cancel(message); - resolvePromise(token.reason); - }); -} + register: function(type, klass) { + this._transports.push([type, klass]); + klass.prototype.connectionType = type; + }, -/** - * Throws a `Cancel` if cancellation has been requested. - */ -CancelToken.prototype.throwIfRequested = function throwIfRequested() { - if (this.reason) { - throw this.reason; - } -}; + getConnectionTypes: function() { + return array.map(this._transports, function(t) { return t[0] }); + }, + + disable: function(feature) { + if (feature !== 'autodisconnect') return; -/** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ -CancelToken.source = function source() { - var cancel; - var token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token: token, - cancel: cancel - }; -}; + for (var i = 0; i < this._transports.length; i++) + this._transports[i][1]._unloaded = false; + }, -module.exports = CancelToken; + _transports: [] +}); + +assign(Transport.prototype, Logging); +assign(Transport.prototype, Timeouts); + +module.exports = Transport; /***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 5182: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * var args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * @returns {Function} - */ -module.exports = function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -}; +var Class = __webpack_require__(8702), + Promise = __webpack_require__(4857), + Set = __webpack_require__(8172), + URI = __webpack_require__(280), + browser = __webpack_require__(8375), + copyObject = __webpack_require__(172), + assign = __webpack_require__(7088), + toJSON = __webpack_require__(9457), + ws = __webpack_require__(5003), + Deferrable = __webpack_require__(5890), + Transport = __webpack_require__(2195); +var WebSocket = assign(Class(Transport, { + UNCONNECTED: 1, + CONNECTING: 2, + CONNECTED: 3, -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { + batching: false, -"use strict"; + isUsable: function(callback, context) { + this.callback(function() { callback.call(context, true) }); + this.errback(function() { callback.call(context, false) }); + this.connect(); + }, + request: function(messages) { + this._pending = this._pending || new Set(); + for (var i = 0, n = messages.length; i < n; i++) this._pending.add(messages[i]); -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -module.exports = function isAxiosError(payload) { - return (typeof payload === 'object') && (payload.isAxiosError === true); -}; + var self = this; + var promise = new Promise(function(resolve, reject) { + self.callback(function(socket) { + if (!socket || socket.readyState !== 1) return; + socket.send(toJSON(messages)); + resolve(socket); + }); -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { + self.connect(); + }); -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -var asap = __webpack_require__(51), - Class = __webpack_require__(10), - Promise = __webpack_require__(23), - array = __webpack_require__(33), - browser = __webpack_require__(34), - constants = __webpack_require__(50), - assign = __webpack_require__(7), - validateOptions = __webpack_require__(95), - Deferrable = __webpack_require__(21), - Logging = __webpack_require__(19), - Publisher = __webpack_require__(35), - Channel = __webpack_require__(52), - Dispatcher = __webpack_require__(97), - Error = __webpack_require__(105), - Extensible = __webpack_require__(106), - Publication = __webpack_require__(107), - Subscription = __webpack_require__(108); + return { + abort: function() { promise.then(function(ws) { ws.close() }) } + }; + }, -var Client = Class({ className: 'Client', - UNCONNECTED: 1, - CONNECTING: 2, - CONNECTED: 3, - DISCONNECTED: 4, + connect: function() { + if (WebSocket._unloaded) return; - HANDSHAKE: 'handshake', - RETRY: 'retry', - NONE: 'none', + this._state = this._state || this.UNCONNECTED; + if (this._state !== this.UNCONNECTED) return; + this._state = this.CONNECTING; - CONNECTION_TIMEOUT: 60, + var socket = this._createSocket(); + if (!socket) return this.setDeferredStatus('failed'); - DEFAULT_ENDPOINT: '/bayeux', - INTERVAL: 0, + var self = this; - initialize: function(endpoint, options) { - this.info('New client created for ?', endpoint); - options = options || {}; + socket.onopen = function() { + if (socket.headers) self._storeCookies(socket.headers['set-cookie']); + self._socket = socket; + self._state = self.CONNECTED; + self._everConnected = true; + self.setDeferredStatus('succeeded', socket); + }; - validateOptions(options, ['interval', 'timeout', 'endpoints', 'proxy', 'retry', 'scheduler', 'websocketExtensions', 'tls', 'ca']); + var closed = false; + socket.onclose = socket.onerror = function() { + if (closed) return; + closed = true; - this._channels = new Channel.Set(); - this._dispatcher = Dispatcher.create(this, endpoint || this.DEFAULT_ENDPOINT, options); + var wasConnected = (self._state === self.CONNECTED); + socket.onopen = socket.onclose = socket.onerror = socket.onmessage = null; - this._messageId = 0; - this._state = this.UNCONNECTED; + delete self._socket; + self._state = self.UNCONNECTED; - this._responseCallbacks = {}; + var pending = self._pending ? self._pending.toArray() : []; + delete self._pending; - this._advice = { - reconnect: this.RETRY, - interval: 1000 * (options.interval || this.INTERVAL), - timeout: 1000 * (options.timeout || this.CONNECTION_TIMEOUT) + if (wasConnected || self._everConnected) { + self.setDeferredStatus('unknown'); + self._handleError(pending, wasConnected); + } else { + self.setDeferredStatus('failed'); + } }; - this._dispatcher.timeout = this._advice.timeout / 1000; - this._dispatcher.bind('message', this._receiveMessage, this); + socket.onmessage = function(event) { + var replies; + try { replies = JSON.parse(event.data) } catch (error) {} - if (browser.Event && global.onbeforeunload !== undefined) - browser.Event.on(global, 'beforeunload', function() { - if (array.indexOf(this._dispatcher._disabled, 'autodisconnect') < 0) - this.disconnect(); - }, this); + if (!replies) return; + + replies = [].concat(replies); + + for (var i = 0, n = replies.length; i < n; i++) { + if (replies[i].successful === undefined) continue; + self._pending.remove(replies[i]); + } + self._receive(replies); + }; }, - addWebsocketExtension: function(extension) { - return this._dispatcher.addWebsocketExtension(extension); + close: function() { + if (!this._socket) return; + this._socket.close(); }, - disable: function(feature) { - return this._dispatcher.disable(feature); + _createSocket: function() { + var url = WebSocket.getSocketUrl(this.endpoint), + headers = this._dispatcher.headers, + extensions = this._dispatcher.wsExtensions, + cookie = this._getCookies(), + tls = this._dispatcher.tls, + options = { extensions: extensions, headers: headers, proxy: this._proxy, tls: tls }; + + if (cookie !== '') options.headers['Cookie'] = cookie; + + try { + return ws.create(url, [], options); + } catch (e) { + // catch CSP error to allow transport to fallback to next connType + } + } + +}), { + PROTOCOLS: { + 'http:': 'ws:', + 'https:': 'wss:' }, - setHeader: function(name, value) { - return this._dispatcher.setHeader(name, value); + create: function(dispatcher, endpoint) { + var sockets = dispatcher.transports.websocket = dispatcher.transports.websocket || {}; + sockets[endpoint.href] = sockets[endpoint.href] || new this(dispatcher, endpoint); + return sockets[endpoint.href]; }, - // Request - // MUST include: * channel - // * version - // * supportedConnectionTypes - // MAY include: * minimumVersion - // * ext - // * id - // - // Success Response Failed Response - // MUST include: * channel MUST include: * channel - // * version * successful - // * supportedConnectionTypes * error - // * clientId MAY include: * supportedConnectionTypes - // * successful * advice - // MAY include: * minimumVersion * version - // * advice * minimumVersion - // * ext * ext - // * id * id - // * authSuccessful - handshake: function(callback, context) { - if (this._advice.reconnect === this.NONE) return; - if (this._state !== this.UNCONNECTED) return; + getSocketUrl: function(endpoint) { + endpoint = copyObject(endpoint); + endpoint.protocol = this.PROTOCOLS[endpoint.protocol]; + return URI.stringify(endpoint); + }, - this._state = this.CONNECTING; - var self = this; + isUsable: function(dispatcher, endpoint, callback, context) { + this.create(dispatcher, endpoint).isUsable(callback, context); + } +}); - this.info('Initiating handshake with ?', this._dispatcher.endpoint.href); - this._dispatcher.selectTransport(constants.MANDATORY_CONNECTION_TYPES); +assign(WebSocket.prototype, Deferrable); - this._sendMessage({ - channel: Channel.HANDSHAKE, - version: constants.BAYEUX_VERSION, - supportedConnectionTypes: this._dispatcher.getConnectionTypes() +if (browser.Event && __webpack_require__.g.onbeforeunload !== undefined) { + browser.Event.on(__webpack_require__.g, 'beforeunload', function() { + if (WebSocket._unloaded === undefined) + WebSocket._unloaded = true; + }); +} - }, {}, function(response) { +module.exports = WebSocket; - if (response.successful) { - this._state = this.CONNECTED; - this._dispatcher.clientId = response.clientId; - this._dispatcher.selectTransport(response.supportedConnectionTypes); +/***/ }), - this.info('Handshake successful: ?', this._dispatcher.clientId); +/***/ 3611: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - this.subscribe(this._channels.getKeys(), true); - if (callback) asap(function() { callback.call(context) }); +"use strict"; + + +var Class = __webpack_require__(8702), + URI = __webpack_require__(280), + browser = __webpack_require__(8375), + assign = __webpack_require__(7088), + toJSON = __webpack_require__(9457), + Transport = __webpack_require__(2195); - } else { - this.info('Handshake unsuccessful'); - global.setTimeout(function() { self.handshake(callback, context) }, this._dispatcher.retry * 1000); - this._state = this.UNCONNECTED; - } - }, this); +var XHR = assign(Class(Transport, { + encode: function(messages) { + return toJSON(messages); }, - // Request Response - // MUST include: * channel MUST include: * channel - // * clientId * successful - // * connectionType * clientId - // MAY include: * ext MAY include: * error - // * id * advice - // * ext - // * id - // * timestamp - connect: function(callback, context) { - if (this._advice.reconnect === this.NONE) return; - if (this._state === this.DISCONNECTED) return; + request: function(messages) { + var href = this.endpoint.href, + self = this, + xhr; - if (this._state === this.UNCONNECTED) - return this.handshake(function() { this.connect(callback, context) }, this); + // Prefer XMLHttpRequest over ActiveXObject if they both exist + if (__webpack_require__.g.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (__webpack_require__.g.ActiveXObject) { + xhr = new ActiveXObject('Microsoft.XMLHTTP'); + } else { + return this._handleError(messages); + } - this.callback(callback, context); - if (this._state !== this.CONNECTED) return; + xhr.open('POST', href, true); + xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.setRequestHeader('Pragma', 'no-cache'); + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - this.info('Calling deferred actions for ?', this._dispatcher.clientId); - this.setDeferredStatus('succeeded'); - this.setDeferredStatus('unknown'); + var headers = this._dispatcher.headers; + for (var key in headers) { + if (!headers.hasOwnProperty(key)) continue; + xhr.setRequestHeader(key, headers[key]); + } - if (this._connectRequest) return; - this._connectRequest = true; + var abort = function() { xhr.abort() }; + if (__webpack_require__.g.onbeforeunload !== undefined) + browser.Event.on(__webpack_require__.g, 'beforeunload', abort); - this.info('Initiating connection for ?', this._dispatcher.clientId); + xhr.onreadystatechange = function() { + if (!xhr || xhr.readyState !== 4) return; - this._sendMessage({ - channel: Channel.CONNECT, - clientId: this._dispatcher.clientId, - connectionType: this._dispatcher.connectionType + var replies = null, + status = xhr.status, + text = xhr.responseText, + successful = (status >= 200 && status < 300) || status === 304 || status === 1223; - }, {}, this._cycleConnection, this); - }, + if (__webpack_require__.g.onbeforeunload !== undefined) + browser.Event.detach(__webpack_require__.g, 'beforeunload', abort); - // Request Response - // MUST include: * channel MUST include: * channel - // * clientId * successful - // MAY include: * ext * clientId - // * id MAY include: * error - // * ext - // * id - disconnect: function() { - if (this._state !== this.CONNECTED) return; - this._state = this.DISCONNECTED; + xhr.onreadystatechange = function() {}; + xhr = null; - this.info('Disconnecting ?', this._dispatcher.clientId); - var promise = new Publication(); + if (!successful) return self._handleError(messages); - this._sendMessage({ - channel: Channel.DISCONNECT, - clientId: this._dispatcher.clientId + try { + replies = JSON.parse(text); + } catch (error) {} - }, {}, function(response) { - if (response.successful) { - this._dispatcher.close(); - promise.setDeferredStatus('succeeded'); - } else { - promise.setDeferredStatus('failed', Error.parse(response.error)); - } - }, this); + if (replies) + self._receive(replies); + else + self._handleError(messages); + }; - this.info('Clearing channel listeners for ?', this._dispatcher.clientId); - this._channels = new Channel.Set(); + xhr.send(this.encode(messages)); + return xhr; + } +}), { + isUsable: function(dispatcher, endpoint, callback, context) { + var usable = (navigator.product === 'ReactNative') + || URI.isSameOrigin(endpoint); - return promise; - }, + callback.call(context, usable); + } +}); - // Request Response - // MUST include: * channel MUST include: * channel - // * clientId * successful - // * subscription * clientId - // MAY include: * ext * subscription - // * id MAY include: * error - // * advice - // * ext - // * id - // * timestamp - subscribe: function(channel, callback, context) { - if (channel instanceof Array) - return array.map(channel, function(c) { - return this.subscribe(c, callback, context); - }, this); +module.exports = XHR; - var subscription = new Subscription(this, channel, callback, context), - force = (callback === true), - hasSubscribe = this._channels.hasSubscription(channel); - if (hasSubscribe && !force) { - this._channels.subscribe([channel], subscription); - subscription.setDeferredStatus('succeeded'); - return subscription; - } +/***/ }), - this.connect(function() { - this.info('Client ? attempting to subscribe to ?', this._dispatcher.clientId, channel); - if (!force) this._channels.subscribe([channel], subscription); +/***/ 8722: +/***/ ((module) => { - this._sendMessage({ - channel: Channel.SUBSCRIBE, - clientId: this._dispatcher.clientId, - subscription: channel +"use strict"; - }, {}, function(response) { - if (!response.successful) { - subscription.setDeferredStatus('failed', Error.parse(response.error)); - return this._channels.unsubscribe(channel, subscription); - } - var channels = [].concat(response.subscription); - this.info('Subscription acknowledged for ? to ?', this._dispatcher.clientId, channels); - subscription.setDeferredStatus('succeeded'); - }, this); - }, this); +module.exports = { + commonElement: function(lista, listb) { + for (var i = 0, n = lista.length; i < n; i++) { + if (this.indexOf(listb, lista[i]) !== -1) + return lista[i]; + } + return null; + }, - return subscription; + indexOf: function(list, needle) { + if (list.indexOf) return list.indexOf(needle); + + for (var i = 0, n = list.length; i < n; i++) { + if (list[i] === needle) return i; + } + return -1; }, - // Request Response - // MUST include: * channel MUST include: * channel - // * clientId * successful - // * subscription * clientId - // MAY include: * ext * subscription - // * id MAY include: * error - // * advice - // * ext - // * id - // * timestamp - unsubscribe: function(channel, subscription) { - if (channel instanceof Array) - return array.map(channel, function(c) { - return this.unsubscribe(c, subscription); - }, this); + map: function(object, callback, context) { + if (object.map) return object.map(callback, context); + var result = []; - var dead = this._channels.unsubscribe(channel, subscription); - if (!dead) return; + if (object instanceof Array) { + for (var i = 0, n = object.length; i < n; i++) { + result.push(callback.call(context || null, object[i], i)); + } + } else { + for (var key in object) { + if (!object.hasOwnProperty(key)) continue; + result.push(callback.call(context || null, key, object[key])); + } + } + return result; + }, - this.connect(function() { - this.info('Client ? attempting to unsubscribe from ?', this._dispatcher.clientId, channel); + filter: function(array, callback, context) { + if (array.filter) return array.filter(callback, context); + var result = []; + for (var i = 0, n = array.length; i < n; i++) { + if (callback.call(context || null, array[i], i)) + result.push(array[i]); + } + return result; + }, - this._sendMessage({ - channel: Channel.UNSUBSCRIBE, - clientId: this._dispatcher.clientId, - subscription: channel + asyncEach: function(list, iterator, callback, context) { + var n = list.length, + i = -1, + calls = 0, + looping = false; - }, {}, function(response) { - if (!response.successful) return; + var iterate = function() { + calls -= 1; + i += 1; + if (i === n) return callback && callback.call(context); + iterator(list[i], resume); + }; - var channels = [].concat(response.subscription); - this.info('Unsubscription acknowledged for ? from ?', this._dispatcher.clientId, channels); - }, this); - }, this); - }, + var loop = function() { + if (looping) return; + looping = true; + while (calls > 0) iterate(); + looping = false; + }; - // Request Response - // MUST include: * channel MUST include: * channel - // * data * successful - // MAY include: * clientId MAY include: * id - // * id * error - // * ext * ext - publish: function(channel, data, options) { - validateOptions(options || {}, ['attempts', 'deadline']); - var publication = new Publication(); + var resume = function() { + calls += 1; + loop(); + }; + resume(); + } +}; - this.connect(function() { - this.info('Client ? queueing published message to ?: ?', this._dispatcher.clientId, channel, data); - this._sendMessage({ - channel: channel, - data: data, - clientId: this._dispatcher.clientId +/***/ }), - }, options, function(response) { - if (response.successful) - publication.setDeferredStatus('succeeded'); - else - publication.setDeferredStatus('failed', Error.parse(response.error)); - }, this); - }, this); +/***/ 7088: +/***/ ((module) => { - return publication; - }, +"use strict"; - _sendMessage: function(message, options, callback, context) { - message.id = this._generateMessageId(); - var timeout = this._advice.timeout - ? 1.2 * this._advice.timeout / 1000 - : 1.2 * this._dispatcher.retry; +var forEach = Array.prototype.forEach, + hasOwn = Object.prototype.hasOwnProperty; - this.pipeThroughExtensions('outgoing', message, null, function(message) { - if (!message) return; - if (callback) this._responseCallbacks[message.id] = [callback, context]; - this._dispatcher.sendMessage(message, timeout, options || {}); - }, this); - }, +module.exports = function(target) { + forEach.call(arguments, function(source, i) { + if (i === 0) return; - _generateMessageId: function() { - this._messageId += 1; - if (this._messageId >= Math.pow(2,32)) this._messageId = 0; - return this._messageId.toString(36); - }, + for (var key in source) { + if (hasOwn.call(source, key)) target[key] = source[key]; + } + }); - _receiveMessage: function(message) { - var id = message.id, callback; + return target; +}; - if (message.successful !== undefined) { - callback = this._responseCallbacks[id]; - delete this._responseCallbacks[id]; - } - this.pipeThroughExtensions('incoming', message, null, function(message) { - if (!message) return; - if (message.advice) this._handleAdvice(message.advice); - this._deliverMessage(message); - if (callback) callback[0].call(callback[1], message); - }, this); - }, +/***/ }), - _handleAdvice: function(advice) { - assign(this._advice, advice); - this._dispatcher.timeout = this._advice.timeout / 1000; +/***/ 8375: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - if (this._advice.reconnect === this.HANDSHAKE && this._state !== this.DISCONNECTED) { - this._state = this.UNCONNECTED; - this._dispatcher.clientId = null; - this._cycleConnection(); - } - }, +"use strict"; - _deliverMessage: function(message) { - if (!message.channel || message.data === undefined) return; - this.info('Client ? calling listeners for ? with ?', this._dispatcher.clientId, message.channel, message.data); - this._channels.distributeMessage(message); - }, - _cycleConnection: function() { - if (this._connectRequest) { - this._connectRequest = null; - this.info('Closed connection for ?', this._dispatcher.clientId); - } - var self = this; - global.setTimeout(function() { self.connect() }, this._advice.interval); - } -}); +var Event = { + _registry: [], -assign(Client.prototype, Deferrable); -assign(Client.prototype, Publisher); -assign(Client.prototype, Logging); -assign(Client.prototype, Extensible); + on: function(element, eventName, callback, context) { + var wrapped = function() { callback.call(context) }; -module.exports = Client; + if (element.addEventListener) + element.addEventListener(eventName, wrapped, false); + else + element.attachEvent('on' + eventName, wrapped); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + this._registry.push({ + _element: element, + _type: eventName, + _callback: callback, + _context: context, + _handler: wrapped + }); + }, -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { + detach: function(element, eventName, callback, context) { + var i = this._registry.length, register; + while (i--) { + register = this._registry[i]; -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + if ((element && element !== register._element) || + (eventName && eventName !== register._type) || + (callback && callback !== register._callback) || + (context && context !== register._context)) + continue; -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including IO, animation, reflow, and redraw -// events in browsers. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; + if (register._element.removeEventListener) + register._element.removeEventListener(register._type, register._handler, false); + else + register._element.detachEvent('on' + register._type, register._handler); + + this._registry.splice(i,1); + register = null; } - // Equivalent to push, but avoids a function call. - queue[queue.length] = task; -} + } +}; -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// `requestFlush` is an implementation-specific method that attempts to kick -// off a `flush` event as quickly as possible. `flush` will attempt to exhaust -// the event queue before yielding to the browser's own event loop. -var requestFlush; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory exhaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; +if (__webpack_require__.g.onunload !== undefined) + Event.on(__webpack_require__.g, 'unload', Event.detach, Event); -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} +module.exports = { + Event: Event +}; -// `requestFlush` is implemented using a strategy based on data collected from -// every available SauceLabs Selenium web driver worker at time of writing. -// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 -// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that -// have WebKitMutationObserver but not un-prefixed MutationObserver. -// Must use `global` or `self` instead of `window` to work in both frames and web -// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. +/***/ }), -/* globals self */ -var scope = typeof global !== "undefined" ? global : self; -var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; +/***/ 8702: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// MutationObservers are desirable because they have high priority and work -// reliably everywhere they are implemented. -// They are implemented in all modern browsers. -// -// - Android 4-4.3 -// - Chrome 26-34 -// - Firefox 14-29 -// - Internet Explorer 11 -// - iPad Safari 6-7.1 -// - iPhone Safari 7-7.1 -// - Safari 6-7 -if (typeof BrowserMutationObserver === "function") { - requestFlush = makeRequestCallFromMutationObserver(flush); +"use strict"; -// MessageChannels are desirable because they give direct access to the HTML -// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera -// 11-12, and in web workers in many engines. -// Although message channels yield to any queued rendering and IO tasks, they -// would be better than imposing the 4ms delay of timers. -// However, they do not work reliably in Internet Explorer or Safari. -// Internet Explorer 10 is the only browser that has setImmediate but does -// not have MutationObservers. -// Although setImmediate yields to the browser's renderer, it would be -// preferrable to falling back to setTimeout since it does not have -// the minimum 4ms penalty. -// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and -// Desktop to a lesser extent) that renders both setImmediate and -// MessageChannel useless for the purposes of ASAP. -// https://github.com/kriskowal/q/issues/396 +var assign = __webpack_require__(7088); -// Timers are implemented universally. -// We fall back to timers in workers in most engines, and in foreground -// contexts in the following browsers. -// However, note that even this simple case requires nuances to operate in a -// broad spectrum of browsers. -// -// - Firefox 3-13 -// - Internet Explorer 6-9 -// - iPad Safari 4.3 -// - Lynx 2.8.7 -} else { - requestFlush = makeRequestCallFromTimer(flush); -} +module.exports = function(parent, methods) { + if (typeof parent !== 'function') { + methods = parent; + parent = Object; + } + + var klass = function() { + if (!this.initialize) return this; + return this.initialize.apply(this, arguments) || this; + }; + + var bridge = function() {}; + bridge.prototype = parent.prototype; -// `requestFlush` requests that the high priority event queue be flushed as -// soon as possible. -// This is useful to prevent an error thrown in a task from stalling the event -// queue if the exception handled by Node.js’s -// `process.on("uncaughtException")` or by a domain. -rawAsap.requestFlush = requestFlush; + klass.prototype = new bridge(); + assign(klass.prototype, methods); -// To request a high priority event, we induce a mutation observer by toggling -// the text of a text node between "1" and "-1". -function makeRequestCallFromMutationObserver(callback) { - var toggle = 1; - var observer = new BrowserMutationObserver(callback); - var node = document.createTextNode(""); - observer.observe(node, {characterData: true}); - return function requestCall() { - toggle = -toggle; - node.data = toggle; - }; -} + return klass; +}; -// The message channel technique was discovered by Malte Ubl and was the -// original foundation for this library. -// http://www.nonblocking.io/2011/06/windownexttick.html -// Safari 6.0.5 (at least) intermittently fails to create message ports on a -// page's first load. Thankfully, this version of Safari supports -// MutationObservers, so we don't need to fall back in that case. +/***/ }), -// function makeRequestCallFromMessageChannel(callback) { -// var channel = new MessageChannel(); -// channel.port1.onmessage = callback; -// return function requestCall() { -// channel.port2.postMessage(0); -// }; -// } +/***/ 8742: +/***/ ((module) => { -// For reasons explained above, we are also unable to use `setImmediate` -// under any circumstances. -// Even if we were, there is another bug in Internet Explorer 10. -// It is not sufficient to assign `setImmediate` to `requestFlush` because -// `setImmediate` must be called *by name* and therefore must be wrapped in a -// closure. -// Never forget. +module.exports = { + VERSION: '1.4.0', -// function makeRequestCallFromSetImmediate(callback) { -// return function requestCall() { -// setImmediate(callback); -// }; -// } + BAYEUX_VERSION: '1.0', + ID_LENGTH: 160, + JSONP_CALLBACK: 'jsonpcallback', + CONNECTION_TYPES: ['long-polling', 'cross-origin-long-polling', 'callback-polling', 'websocket', 'eventsource', 'in-process'], -// Safari 6.0 has a problem where timers will get lost while the user is -// scrolling. This problem does not impact ASAP because Safari 6.0 supports -// mutation observers, so that implementation is used instead. -// However, if we ever elect to use timers in Safari, the prevalent work-around -// is to add a scroll event listener that calls for a flush. + MANDATORY_CONNECTION_TYPES: ['long-polling', 'callback-polling', 'in-process'] +}; -// `setTimeout` does not call the passed callback if the delay is less than -// approximately 7 in web workers in Firefox 8 through 18, and sometimes not -// even then. -function makeRequestCallFromTimer(callback) { - return function requestCall() { - // We dispatch a timeout with a specified delay of 0 for engines that - // can reliably accommodate that request. This will usually be snapped - // to a 4 milisecond delay, but once we're flushing, there's no delay - // between events. - var timeoutHandle = setTimeout(handleTimer, 0); - // However, since this timer gets frequently dropped in Firefox - // workers, we enlist an interval handle that will try to fire - // an event 20 times per second until it succeeds. - var intervalHandle = setInterval(handleTimer, 50); +/***/ }), - function handleTimer() { - // Whichever timer succeeds will cancel both timers and - // execute the callback. - clearTimeout(timeoutHandle); - clearInterval(intervalHandle); - callback(); - } - }; -} +/***/ 3754: +/***/ ((module) => { -// This is for `asap.js` only. -// Its name will be periodically randomized to break any code that depends on -// its existence. -rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; +"use strict"; -// ASAP was originally a nextTick shim included in Q. This was factored out -// into this ASAP package. It was later adapted to RSVP which made further -// amendments. These decisions, particularly to marginalize MessageChannel and -// to capture the MutationObserver implementation in a closure, were integrated -// back into ASAP proper. -// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) +module.exports = {}; + /***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +/***/ 172: +/***/ ((module) => { +"use strict"; -var array = __webpack_require__(33); -module.exports = function(options, validKeys) { - for (var key in options) { - if (array.indexOf(validKeys, key) < 0) - throw new Error('Unrecognized option: ' + key); +var copyObject = function(object) { + var clone, i, key; + if (object instanceof Array) { + clone = []; + i = object.length; + while (i--) clone[i] = copyObject(object[i]); + return clone; + } else if (typeof object === 'object') { + clone = (object === null) ? null : {}; + for (key in object) clone[key] = copyObject(object[key]); + return clone; + } else { + return object; } }; +module.exports = copyObject; + /***/ }), -/* 96 */ -/***/ (function(module, exports) { + +/***/ 2356: +/***/ ((module) => { /* Copyright Joyent, Inc. and other Node contributors. All rights reserved. @@ -8820,1039 +8184,1435 @@ EventEmitter.prototype.emit = function(type) { } return true; - } else { - return false; + } else { + return false; + } +}; + +// EventEmitter is defined in src/node_events.cc +// EventEmitter.prototype.emit() is also defined there. +EventEmitter.prototype.addListener = function(type, listener) { + if ('function' !== typeof listener) { + throw new Error('addListener only takes instances of Function'); + } + + if (!this._events) this._events = {}; + + // To avoid recursion in the case that type == "newListeners"! Before + // adding it to the listeners, first emit "newListeners". + this.emit('newListener', type, listener); + + if (!this._events[type]) { + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + } else if (isArray(this._events[type])) { + // If we've already got an array, just append. + this._events[type].push(listener); + } else { + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + var self = this; + self.on(type, function g() { + self.removeListener(type, g); + listener.apply(this, arguments); + }); + + return this; +}; + +EventEmitter.prototype.removeListener = function(type, listener) { + if ('function' !== typeof listener) { + throw new Error('removeListener only takes instances of Function'); + } + + // does not use listeners(), so no side effect of creating _events[type] + if (!this._events || !this._events[type]) return this; + + var list = this._events[type]; + + if (isArray(list)) { + var i = indexOf(list, listener); + if (i < 0) return this; + list.splice(i, 1); + if (list.length == 0) + delete this._events[type]; + } else if (this._events[type] === listener) { + delete this._events[type]; + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + if (arguments.length === 0) { + this._events = {}; + return this; + } + + // does not use listeners(), so no side effect of creating _events[type] + if (type && this._events && this._events[type]) this._events[type] = null; + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + if (!this._events) this._events = {}; + if (!this._events[type]) this._events[type] = []; + if (!isArray(this._events[type])) { + this._events[type] = [this._events[type]]; + } + return this._events[type]; +}; + + +/***/ }), + +/***/ 4857: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var asap = __webpack_require__(9272); + +var PENDING = -1, + FULFILLED = 0, + REJECTED = 1; + +var Promise = function(task) { + this._state = PENDING; + this._value = null; + this._defer = []; + + execute(this, task); +}; + +Promise.prototype.then = function(onFulfilled, onRejected) { + var promise = new Promise(); + + var deferred = { + promise: promise, + onFulfilled: onFulfilled, + onRejected: onRejected + }; + + if (this._state === PENDING) + this._defer.push(deferred); + else + propagate(this, deferred); + + return promise; +}; + +Promise.prototype['catch'] = function(onRejected) { + return this.then(null, onRejected); +}; + +var execute = function(promise, task) { + if (typeof task !== 'function') return; + + var calls = 0; + + var resolvePromise = function(value) { + if (calls++ === 0) resolve(promise, value); + }; + + var rejectPromise = function(reason) { + if (calls++ === 0) reject(promise, reason); + }; + + try { + task(resolvePromise, rejectPromise); + } catch (error) { + rejectPromise(error); } }; -// EventEmitter is defined in src/node_events.cc -// EventEmitter.prototype.emit() is also defined there. -EventEmitter.prototype.addListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('addListener only takes instances of Function'); - } +var propagate = function(promise, deferred) { + var state = promise._state, + value = promise._value, + next = deferred.promise, + handler = [deferred.onFulfilled, deferred.onRejected][state], + pass = [resolve, reject][state]; - if (!this._events) this._events = {}; + if (typeof handler !== 'function') + return pass(next, value); - // To avoid recursion in the case that type == "newListeners"! Before - // adding it to the listeners, first emit "newListeners". - this.emit('newListener', type, listener); + asap(function() { + try { + resolve(next, handler(value)); + } catch (error) { + reject(next, error); + } + }); +}; - if (!this._events[type]) { - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - } else if (isArray(this._events[type])) { - // If we've already got an array, just append. - this._events[type].push(listener); - } else { - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - } +var resolve = function(promise, value) { + if (promise === value) + return reject(promise, new TypeError('Recursive promise chain detected')); - return this; -}; + var then; -EventEmitter.prototype.on = EventEmitter.prototype.addListener; + try { + then = getThen(value); + } catch (error) { + return reject(promise, error); + } -EventEmitter.prototype.once = function(type, listener) { - var self = this; - self.on(type, function g() { - self.removeListener(type, g); - listener.apply(this, arguments); + if (!then) return fulfill(promise, value); + + execute(promise, function(resolvePromise, rejectPromise) { + then.call(value, resolvePromise, rejectPromise); }); +}; - return this; +var getThen = function(value) { + var type = typeof value, + then = (type === 'object' || type === 'function') && value && value.then; + + return (typeof then === 'function') + ? then + : null; }; -EventEmitter.prototype.removeListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('removeListener only takes instances of Function'); - } +var fulfill = function(promise, value) { + settle(promise, FULFILLED, value); +}; - // does not use listeners(), so no side effect of creating _events[type] - if (!this._events || !this._events[type]) return this; +var reject = function(promise, reason) { + settle(promise, REJECTED, reason); +}; - var list = this._events[type]; +var settle = function(promise, state, value) { + var defer = promise._defer, i = 0; - if (isArray(list)) { - var i = indexOf(list, listener); - if (i < 0) return this; - list.splice(i, 1); - if (list.length == 0) - delete this._events[type]; - } else if (this._events[type] === listener) { - delete this._events[type]; - } + promise._state = state; + promise._value = value; + promise._defer = null; - return this; + if (defer.length === 0) return; + while (i < defer.length) propagate(promise, defer[i++]); }; -EventEmitter.prototype.removeAllListeners = function(type) { - if (arguments.length === 0) { - this._events = {}; - return this; +Promise.resolve = function(value) { + try { + if (getThen(value)) return value; + } catch (error) { + return Promise.reject(error); } - // does not use listeners(), so no side effect of creating _events[type] - if (type && this._events && this._events[type]) this._events[type] = null; - return this; + return new Promise(function(resolve, reject) { resolve(value) }); }; -EventEmitter.prototype.listeners = function(type) { - if (!this._events) this._events = {}; - if (!this._events[type]) this._events[type] = []; - if (!isArray(this._events[type])) { - this._events[type] = [this._events[type]]; - } - return this._events[type]; +Promise.reject = function(reason) { + return new Promise(function(resolve, reject) { reject(reason) }); }; +Promise.all = function(promises) { + return new Promise(function(resolve, reject) { + var list = [], n = promises.length, i; -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { + if (n === 0) return resolve(list); -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + var push = function(promise, i) { + Promise.resolve(promise).then(function(value) { + list[i] = value; + if (--n === 0) resolve(list); + }, reject); + }; -var Class = __webpack_require__(10), - URI = __webpack_require__(14), - cookies = __webpack_require__(54), - assign = __webpack_require__(7), - Logging = __webpack_require__(19), - Publisher = __webpack_require__(35), - Transport = __webpack_require__(98), - Scheduler = __webpack_require__(57); + for (i = 0; i < n; i++) push(promises[i], i); + }); +}; -var Dispatcher = Class({ className: 'Dispatcher', - MAX_REQUEST_SIZE: 2048, - DEFAULT_RETRY: 5, +Promise.race = function(promises) { + return new Promise(function(resolve, reject) { + for (var i = 0, n = promises.length; i < n; i++) + Promise.resolve(promises[i]).then(resolve, reject); + }); +}; - UP: 1, - DOWN: 2, +Promise.deferred = function() { + var tuple = {}; - initialize: function(client, endpoint, options) { - this._client = client; - this.endpoint = URI.parse(endpoint); - this._alternates = options.endpoints || {}; + tuple.promise = new Promise(function(resolve, reject) { + tuple.resolve = resolve; + tuple.reject = reject; + }); + return tuple; +}; - this.cookies = cookies.CookieJar && new cookies.CookieJar(); - this._disabled = []; - this._envelopes = {}; - this.headers = {}; - this.retry = options.retry || this.DEFAULT_RETRY; - this._scheduler = options.scheduler || Scheduler; - this._state = 0; - this.transports = {}; - this.wsExtensions = []; +module.exports = Promise; - this.proxy = options.proxy || {}; - if (typeof this._proxy === 'string') this._proxy = { origin: this._proxy }; - var exts = options.websocketExtensions; - if (exts) { - exts = [].concat(exts); - for (var i = 0, n = exts.length; i < n; i++) - this.addWebsocketExtension(exts[i]); - } +/***/ }), - this.tls = options.tls || {}; - this.tls.ca = this.tls.ca || options.ca; +/***/ 8172: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - for (var type in this._alternates) - this._alternates[type] = URI.parse(this._alternates[type]); +"use strict"; - this.maxRequestSize = this.MAX_REQUEST_SIZE; - }, - endpointFor: function(connectionType) { - return this._alternates[connectionType] || this.endpoint; - }, +var Class = __webpack_require__(8702); - addWebsocketExtension: function(extension) { - this.wsExtensions.push(extension); +module.exports = Class({ + initialize: function() { + this._index = {}; }, - disable: function(feature) { - this._disabled.push(feature); - Transport.disable(feature); + add: function(item) { + var key = (item.id !== undefined) ? item.id : item; + if (this._index.hasOwnProperty(key)) return false; + this._index[key] = item; + return true; }, - setHeader: function(name, value) { - this.headers[name] = value; + forEach: function(block, context) { + for (var key in this._index) { + if (this._index.hasOwnProperty(key)) + block.call(context, this._index[key]); + } }, - close: function() { - var transport = this._transport; - delete this._transport; - if (transport) transport.close(); + isEmpty: function() { + for (var key in this._index) { + if (this._index.hasOwnProperty(key)) return false; + } + return true; }, - getConnectionTypes: function() { - return Transport.getConnectionTypes(); + member: function(item) { + for (var key in this._index) { + if (this._index[key] === item) return true; + } + return false; }, - selectTransport: function(transportTypes) { - Transport.get(this, transportTypes, this._disabled, function(transport) { - this.debug('Selected ? transport for ?', transport.connectionType, transport.endpoint.href); - - if (transport === this._transport) return; - if (this._transport) this._transport.close(); - - this._transport = transport; - this.connectionType = transport.connectionType; - }, this); + remove: function(item) { + var key = (item.id !== undefined) ? item.id : item; + var removed = this._index[key]; + delete this._index[key]; + return removed; }, - sendMessage: function(message, timeout, options) { - options = options || {}; + toArray: function() { + var array = []; + this.forEach(function(item) { array.push(item) }); + return array; + } +}); + - var id = message.id, - attempts = options.attempts, - deadline = options.deadline && new Date().getTime() + (options.deadline * 1000), - envelope = this._envelopes[id], - scheduler; +/***/ }), - if (!envelope) { - scheduler = new this._scheduler(message, { timeout: timeout, interval: this.retry, attempts: attempts, deadline: deadline }); - envelope = this._envelopes[id] = { message: message, scheduler: scheduler }; - } +/***/ 9457: +/***/ ((module) => { - this._sendEnvelope(envelope); - }, +"use strict"; - _sendEnvelope: function(envelope) { - if (!this._transport) return; - if (envelope.request || envelope.timer) return; - var message = envelope.message, - scheduler = envelope.scheduler, - self = this; +// http://assanka.net/content/tech/2009/09/02/json2-js-vs-prototype/ - if (!scheduler.isDeliverable()) { - scheduler.abort(); - delete this._envelopes[message.id]; - return; - } +module.exports = function(object) { + return JSON.stringify(object, function(key, value) { + return (this[key] instanceof Array) ? this[key] : value; + }); +}; - envelope.timer = global.setTimeout(function() { - self.handleError(message); - }, scheduler.getTimeout() * 1000); - scheduler.send(); - envelope.request = this._transport.sendMessage(message); - }, +/***/ }), - handleResponse: function(reply) { - var envelope = this._envelopes[reply.id]; +/***/ 280: +/***/ ((module) => { - if (reply.successful !== undefined && envelope) { - envelope.scheduler.succeed(); - delete this._envelopes[reply.id]; - global.clearTimeout(envelope.timer); - } +"use strict"; - this.trigger('message', reply); - if (this._state === this.UP) return; - this._state = this.UP; - this._client.trigger('transport:up'); +module.exports = { + isURI: function(uri) { + return uri && uri.protocol && uri.host && uri.path; }, - handleError: function(message, immediate) { - var envelope = this._envelopes[message.id], - request = envelope && envelope.request, - self = this; + isSameOrigin: function(uri) { + return uri.protocol === location.protocol && + uri.hostname === location.hostname && + uri.port === location.port; + }, - if (!request) return; + parse: function(url) { + if (typeof url !== 'string') return url; + var uri = {}, parts, query, pairs, i, n, data; - request.then(function(req) { - if (req && req.abort) req.abort(); - }); + var consume = function(name, pattern) { + url = url.replace(pattern, function(match) { + uri[name] = match; + return ''; + }); + uri[name] = uri[name] || ''; + }; - var scheduler = envelope.scheduler; - scheduler.fail(); + consume('protocol', /^[a-z]+\:/i); + consume('host', /^\/\/[^\/\?#]+/); - global.clearTimeout(envelope.timer); - envelope.request = envelope.timer = null; + if (!/^\//.test(url) && !uri.host) + url = location.pathname.replace(/[^\/]*$/, '') + url; - if (immediate) { - this._sendEnvelope(envelope); - } else { - envelope.timer = global.setTimeout(function() { - envelope.timer = null; - self._sendEnvelope(envelope); - }, scheduler.getInterval() * 1000); - } + consume('pathname', /^[^\?#]*/); + consume('search', /^\?[^#]*/); + consume('hash', /^#.*/); - if (this._state === this.DOWN) return; - this._state = this.DOWN; - this._client.trigger('transport:down'); - } -}); + uri.protocol = uri.protocol || location.protocol; -Dispatcher.create = function(client, endpoint, options) { - return new Dispatcher(client, endpoint, options); -}; + if (uri.host) { + uri.host = uri.host.substr(2); -assign(Dispatcher.prototype, Publisher); -assign(Dispatcher.prototype, Logging); + if (/@/.test(uri.host)) { + uri.auth = uri.host.split('@')[0]; + uri.host = uri.host.split('@')[1]; + } + parts = uri.host.match(/^\[([^\]]+)\]|^[^:]+/); + uri.hostname = parts[1] || parts[0]; + uri.port = (uri.host.match(/:(\d+)$/) || [])[1] || ''; + } else { + uri.host = location.host; + uri.hostname = location.hostname; + uri.port = location.port; + } -module.exports = Dispatcher; + uri.pathname = uri.pathname || '/'; + uri.path = uri.pathname + uri.search; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + query = uri.search.replace(/^\?/, ''); + pairs = query ? query.split('&') : []; + data = {}; -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { + for (i = 0, n = pairs.length; i < n; i++) { + parts = pairs[i].split('='); + data[decodeURIComponent(parts[0] || '')] = decodeURIComponent(parts[1] || ''); + } -"use strict"; + uri.query = data; + uri.href = this.stringify(uri); + return uri; + }, -var Transport = __webpack_require__(15); + stringify: function(uri) { + var auth = uri.auth ? uri.auth + '@' : '', + string = uri.protocol + '//' + auth + uri.host; -Transport.register('websocket', __webpack_require__(100)); -Transport.register('eventsource', __webpack_require__(102)); -Transport.register('long-polling', __webpack_require__(56)); -Transport.register('cross-origin-long-polling', __webpack_require__(103)); -Transport.register('callback-polling', __webpack_require__(104)); + string += uri.pathname + this.queryString(uri.query) + (uri.hash || ''); -module.exports = Transport; + return string; + }, + + queryString: function(query) { + var pairs = []; + for (var key in query) { + if (!query.hasOwnProperty(key)) continue; + pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(query[key])); + } + if (pairs.length === 0) return ''; + return '?' + pairs.join('&'); + } +}; /***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 3978: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/* WEBPACK VAR INJECTION */(function(global) { -module.exports = { - addTimeout: function(name, delay, callback, context) { - this._timeouts = this._timeouts || {}; - if (this._timeouts.hasOwnProperty(name)) return; - var self = this; - this._timeouts[name] = global.setTimeout(function() { - delete self._timeouts[name]; - callback.call(context); - }, 1000 * delay); - }, - removeTimeout: function(name) { - this._timeouts = this._timeouts || {}; - var timeout = this._timeouts[name]; - if (!timeout) return; - global.clearTimeout(timeout); - delete this._timeouts[name]; - }, +var array = __webpack_require__(8722); - removeAllTimeouts: function() { - this._timeouts = this._timeouts || {}; - for (var name in this._timeouts) this.removeTimeout(name); +module.exports = function(options, validKeys) { + for (var key in options) { + if (array.indexOf(validKeys, key) < 0) + throw new Error('Unrecognized option: ' + key); } }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) /***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { + +/***/ 5003: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -var Class = __webpack_require__(10), - Promise = __webpack_require__(23), - Set = __webpack_require__(55), - URI = __webpack_require__(14), - browser = __webpack_require__(34), - copyObject = __webpack_require__(36), - assign = __webpack_require__(7), - toJSON = __webpack_require__(20), - ws = __webpack_require__(101), - Deferrable = __webpack_require__(21), - Transport = __webpack_require__(15); -var WebSocket = assign(Class(Transport, { - UNCONNECTED: 1, - CONNECTING: 2, - CONNECTED: 3, - batching: false, +var WS = __webpack_require__.g.MozWebSocket || __webpack_require__.g.WebSocket; - isUsable: function(callback, context) { - this.callback(function() { callback.call(context, true) }); - this.errback(function() { callback.call(context, false) }); - this.connect(); - }, +module.exports = { + create: function(url, protocols, options) { + if (typeof WS !== 'function') return null; + return new WS(url); + } +}; - request: function(messages) { - this._pending = this._pending || new Set(); - for (var i = 0, n = messages.length; i < n; i++) this._pending.add(messages[i]); - var self = this; +/***/ }), - var promise = new Promise(function(resolve, reject) { - self.callback(function(socket) { - if (!socket || socket.readyState !== 1) return; - socket.send(toJSON(messages)); - resolve(socket); - }); +/***/ 6230: +/***/ ((module) => { - self.connect(); - }); +/* eslint-env browser */ +module.exports = typeof self == 'object' ? self.FormData : window.FormData; - return { - abort: function() { promise.then(function(ws) { ws.close() }) } - }; - }, - connect: function() { - if (WebSocket._unloaded) return; +/***/ }), - this._state = this._state || this.UNCONNECTED; - if (this._state !== this.UNCONNECTED) return; - this._state = this.CONNECTING; +/***/ 6793: +/***/ (() => { - var socket = this._createSocket(); - if (!socket) return this.setDeferredStatus('failed'); - var self = this; - socket.onopen = function() { - if (socket.headers) self._storeCookies(socket.headers['set-cookie']); - self._socket = socket; - self._state = self.CONNECTED; - self._everConnected = true; - self.setDeferredStatus('succeeded', socket); - }; +/***/ }), - var closed = false; - socket.onclose = socket.onerror = function() { - if (closed) return; - closed = true; +/***/ 7496: +/***/ (() => { - var wasConnected = (self._state === self.CONNECTED); - socket.onopen = socket.onclose = socket.onerror = socket.onmessage = null; - delete self._socket; - self._state = self.UNCONNECTED; - var pending = self._pending ? self._pending.toArray() : []; - delete self._pending; +/***/ }), - if (wasConnected || self._everConnected) { - self.setDeferredStatus('unknown'); - self._handleError(pending, wasConnected); - } else { - self.setDeferredStatus('failed'); - } - }; +/***/ 5666: +/***/ ((module) => { - socket.onmessage = function(event) { - var replies; - try { replies = JSON.parse(event.data) } catch (error) {} +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ - if (!replies) return; +var runtime = (function (exports) { + "use strict"; - replies = [].concat(replies); + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - for (var i = 0, n = replies.length; i < n; i++) { - if (replies[i].successful === undefined) continue; - self._pending.remove(replies[i]); - } - self._receive(replies); + function define(obj, key, value) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + return obj[key]; + } + try { + // IE 8 has a broken Object.defineProperty that only works on DOM objects. + define({}, ""); + } catch (err) { + define = function(obj, key, value) { + return obj[key] = value; }; - }, + } - close: function() { - if (!this._socket) return; - this._socket.close(); - }, + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); - _createSocket: function() { - var url = WebSocket.getSocketUrl(this.endpoint), - headers = this._dispatcher.headers, - extensions = this._dispatcher.wsExtensions, - cookie = this._getCookies(), - tls = this._dispatcher.tls, - options = { extensions: extensions, headers: headers, proxy: this._proxy, tls: tls }; + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); - if (cookie !== '') options.headers['Cookie'] = cookie; + return generator; + } + exports.wrap = wrap; + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { try { - return ws.create(url, [], options); - } catch (e) { - // catch CSP error to allow transport to fallback to next connType + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; } } -}), { - PROTOCOLS: { - 'http:': 'ws:', - 'https:': 'wss:' - }, + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; - create: function(dispatcher, endpoint) { - var sockets = dispatcher.transports.websocket = dispatcher.transports.websocket || {}; - sockets[endpoint.href] = sockets[endpoint.href] || new this(dispatcher, endpoint); - return sockets[endpoint.href]; - }, + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; - getSocketUrl: function(endpoint) { - endpoint = copyObject(endpoint); - endpoint.protocol = this.PROTOCOLS[endpoint.protocol]; - return URI.stringify(endpoint); - }, + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} - isUsable: function(dispatcher, endpoint, callback, context) { - this.create(dispatcher, endpoint).isUsable(callback, context); - } -}); + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; -assign(WebSocket.prototype, Deferrable); + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } -if (browser.Event && global.onbeforeunload !== undefined) { - browser.Event.on(global, 'beforeunload', function() { - if (WebSocket._unloaded === undefined) - WebSocket._unloaded = true; - }); -} + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunction.displayName = define( + GeneratorFunctionPrototype, + toStringTagSymbol, + "GeneratorFunction" + ); -module.exports = WebSocket; + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + define(prototype, method, function(arg) { + return this._invoke(method, arg); + }); + }); + } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + define(genFun, toStringTagSymbol, "GeneratorFunction"); + } + genFun.prototype = Object.create(Gp); + return genFun; + }; -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; -var WS = global.MozWebSocket || global.WebSocket; + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } -module.exports = { - create: function(url, protocols, options) { - if (typeof WS !== 'function') return null; - return new WS(url); - } -}; + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + var previousPromise; -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } -var Class = __webpack_require__(10), - URI = __webpack_require__(14), - copyObject = __webpack_require__(36), - assign = __webpack_require__(7), - Deferrable = __webpack_require__(21), - Transport = __webpack_require__(15), - XHR = __webpack_require__(56); + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } -var EventSource = assign(Class(Transport, { - initialize: function(dispatcher, endpoint) { - Transport.prototype.initialize.call(this, dispatcher, endpoint); - if (!global.EventSource) return this.setDeferredStatus('failed'); + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; - this._xhr = new XHR(dispatcher, endpoint); + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; - endpoint = copyObject(endpoint); - endpoint.pathname += '/' + dispatcher.clientId; + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); - var socket = new global.EventSource(URI.stringify(endpoint)), - self = this; + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; - socket.onopen = function() { - self._everConnected = true; - self.setDeferredStatus('succeeded'); - }; + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; - socket.onerror = function() { - if (self._everConnected) { - self._handleError([]); - } else { - self.setDeferredStatus('failed'); - socket.close(); + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); } - }; - socket.onmessage = function(event) { - var replies; - try { replies = JSON.parse(event.data) } catch (error) {} + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } - if (replies) - self._receive(replies); - else - self._handleError([]); - }; + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } - this._socket = socket; - }, + context.method = method; + context.arg = arg; - close: function() { - if (!this._socket) return; - this._socket.onopen = this._socket.onerror = this._socket.onmessage = null; - this._socket.close(); - delete this._socket; - }, + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } - isUsable: function(callback, context) { - this.callback(function() { callback.call(context, true) }); - this.errback(function() { callback.call(context, false) }); - }, + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; - encode: function(messages) { - return this._xhr.encode(messages); - }, + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } - request: function(messages) { - return this._xhr.request(messages); - } + context.dispatchException(context.arg); -}), { - isUsable: function(dispatcher, endpoint, callback, context) { - var id = dispatcher.clientId; - if (!id) return callback.call(context, false); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } - XHR.isUsable(dispatcher, endpoint, function(usable) { - if (!usable) return callback.call(context, false); - this.create(dispatcher, endpoint).isUsable(callback, context); - }, this); - }, + state = GenStateExecuting; - create: function(dispatcher, endpoint) { - var sockets = dispatcher.transports.eventsource = dispatcher.transports.eventsource || {}, - id = dispatcher.clientId; + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; - var url = copyObject(endpoint); - url.pathname += '/' + (id || ''); - url = URI.stringify(url); + if (record.arg === ContinueSentinel) { + continue; + } - sockets[url] = sockets[url] || new this(dispatcher, endpoint); - return sockets[url]; - } -}); + return { + value: record.arg, + done: context.done + }; -assign(EventSource.prototype, Deferrable); + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } -module.exports = EventSource; + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } -var Class = __webpack_require__(10), - Set = __webpack_require__(55), - URI = __webpack_require__(14), - assign = __webpack_require__(7), - toJSON = __webpack_require__(20), - Transport = __webpack_require__(15); + return ContinueSentinel; + } -var CORS = assign(Class(Transport, { - encode: function(messages) { - return 'message=' + encodeURIComponent(toJSON(messages)); - }, + var record = tryCatch(method, delegate.iterator, context.arg); - request: function(messages) { - var xhrClass = global.XDomainRequest ? XDomainRequest : XMLHttpRequest, - xhr = new xhrClass(), - id = ++CORS._id, - headers = this._dispatcher.headers, - self = this, - key; + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } - xhr.open('POST', this.endpoint.href, true); - xhr.withCredentials = true; + var info = record.arg; - if (xhr.setRequestHeader) { - xhr.setRequestHeader('Pragma', 'no-cache'); - for (key in headers) { - if (!headers.hasOwnProperty(key)) continue; - xhr.setRequestHeader(key, headers[key]); - } + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; } - var cleanUp = function() { - if (!xhr) return false; - CORS._pending.remove(id); - xhr.onload = xhr.onerror = xhr.ontimeout = xhr.onprogress = null; - xhr = null; - }; + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; - xhr.onload = function() { - var replies; - try { replies = JSON.parse(xhr.responseText) } catch (error) {} + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; - cleanUp(); + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } - if (replies) - self._receive(replies); - else - self._handleError(messages); - }; + } else { + // Re-yield the result returned by the delegate method. + return info; + } - xhr.onerror = xhr.ontimeout = function() { - cleanUp(); - self._handleError(messages); - }; + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } - xhr.onprogress = function() {}; + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); - if (xhrClass === global.XDomainRequest) - CORS._pending.add({ id: id, xhr: xhr }); + define(Gp, toStringTagSymbol, "Generator"); - xhr.send(this.encode(messages)); - return xhr; - } -}), { - _id: 0, - _pending: new Set(), + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; - isUsable: function(dispatcher, endpoint, callback, context) { - if (URI.isSameOrigin(endpoint)) - return callback.call(context, false); + Gp.toString = function() { + return "[object Generator]"; + }; - if (global.XDomainRequest) - return callback.call(context, endpoint.protocol === location.protocol); + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; - if (global.XMLHttpRequest) { - var xhr = new XMLHttpRequest(); - return callback.call(context, xhr.withCredentials !== undefined); + if (1 in locs) { + entry.catchLoc = locs[1]; } - return callback.call(context, false); - } -}); -module.exports = CORS; + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + this.tryEntries.push(entry); + } -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } -var Class = __webpack_require__(10), - URI = __webpack_require__(14), - copyObject = __webpack_require__(36), - assign = __webpack_require__(7), - toJSON = __webpack_require__(20), - Transport = __webpack_require__(15); + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); -var JSONP = assign(Class(Transport, { - encode: function(messages) { - var url = copyObject(this.endpoint); - url.query.message = toJSON(messages); - url.query.jsonp = '__jsonp' + JSONP._cbCount + '__'; - return URI.stringify(url); - }, + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } - request: function(messages) { - var head = document.getElementsByTagName('head')[0], - script = document.createElement('script'), - callbackName = JSONP.getCallbackName(), - endpoint = copyObject(this.endpoint), - self = this; + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; - endpoint.query.message = toJSON(messages); - endpoint.query.jsonp = callbackName; + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } - var cleanup = function() { - if (!global[callbackName]) return false; - global[callbackName] = undefined; - try { delete global[callbackName] } catch (error) {} - script.parentNode.removeChild(script); - }; + if (typeof iterable.next === "function") { + return iterable; + } - global[callbackName] = function(replies) { - cleanup(); - self._receive(replies); - }; + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } - script.type = 'text/javascript'; - script.src = URI.stringify(endpoint); - head.appendChild(script); + next.value = undefined; + next.done = true; - script.onerror = function() { - cleanup(); - self._handleError(messages); - }; + return next; + }; - return { abort: cleanup }; - } -}), { - _cbCount: 0, + return next.next = next; + } + } - getCallbackName: function() { - this._cbCount += 1; - return '__jsonp' + this._cbCount + '__'; - }, + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; - isUsable: function(dispatcher, endpoint, callback, context) { - callback.call(context, true); + function doneResult() { + return { value: undefined, done: true }; } -}); -module.exports = JSONP; + Context.prototype = { + constructor: Context, -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { + this.method = "next"; + this.arg = undefined; -"use strict"; + this.tryEntries.forEach(resetTryEntry); + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, -var Class = __webpack_require__(10), - Grammar = __webpack_require__(53); + stop: function() { + this.done = true; -var Error = Class({ - initialize: function(code, params, message) { - this.code = code; - this.params = Array.prototype.slice.call(params); - this.message = message; - }, + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } - toString: function() { - return this.code + ':' + - this.params.join(',') + ':' + - this.message; - } -}); + return this.rval; + }, -Error.parse = function(message) { - message = message || ''; - if (!Grammar.ERROR.test(message)) return new Error(null, [], message); + dispatchException: function(exception) { + if (this.done) { + throw exception; + } - var parts = message.split(':'), - code = parseInt(parts[0]), - params = parts[1].split(','), - message = parts[2]; + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; - return new Error(code, params, message); -}; + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } -// http://code.google.com/p/cometd/wiki/BayeuxCodes -var errors = { - versionMismatch: [300, 'Version mismatch'], - conntypeMismatch: [301, 'Connection types not supported'], - extMismatch: [302, 'Extension mismatch'], - badRequest: [400, 'Bad request'], - clientUnknown: [401, 'Unknown client'], - parameterMissing: [402, 'Missing required parameter'], - channelForbidden: [403, 'Forbidden channel'], - channelUnknown: [404, 'Unknown channel'], - channelInvalid: [405, 'Invalid channel'], - extUnknown: [406, 'Unknown extension'], - publishFailed: [407, 'Failed to publish'], - serverError: [500, 'Internal server error'] -}; + return !! caught; + } -for (var name in errors) - (function(name) { - Error[name] = function() { - return new Error(errors[name][0], arguments, errors[name][1]).toString(); - }; - })(name); + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; -module.exports = Error; + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } -"use strict"; + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, -var assign = __webpack_require__(7), - Logging = __webpack_require__(19); + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } -var Extensible = { - addExtension: function(extension) { - this._extensions = this._extensions || []; - this._extensions.push(extension); - if (extension.added) extension.added(this); - }, + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } - removeExtension: function(extension) { - if (!this._extensions) return; - var i = this._extensions.length; - while (i--) { - if (this._extensions[i] !== extension) continue; - this._extensions.splice(i,1); - if (extension.removed) extension.removed(this); - } - }, + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; - pipeThroughExtensions: function(stage, message, request, callback, context) { - this.debug('Passing through ? extensions: ?', stage, message); + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } - if (!this._extensions) return callback.call(context, message); - var extensions = this._extensions.slice(); + return this.complete(record); + }, - var pipe = function(message) { - if (!message) return callback.call(context, message); + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } - var extension = extensions.shift(); - if (!extension) return callback.call(context, message); + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } - var fn = extension[stage]; - if (!fn) return pipe(message); + return ContinueSentinel; + }, - if (fn.length >= 3) extension[stage](message, request, pipe); - else extension[stage](message, pipe); - }; - pipe(message); - } -}; + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, -assign(Extensible, Logging); + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } -module.exports = Extensible; + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } -"use strict"; + return ContinueSentinel; + } + }; + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; -var Class = __webpack_require__(10), - Deferrable = __webpack_require__(21); +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + true ? module.exports : 0 +)); -module.exports = Class(Deferrable); +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} /***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ 306: +/***/ ((module) => { -var Class = __webpack_require__(10), - assign = __webpack_require__(7), - Deferrable = __webpack_require__(21); - -var Subscription = Class({ - initialize: function(client, channels, callback, context) { - this._client = client; - this._channels = channels; - this._callback = callback; - this._context = context; - this._cancelled = false; - }, +"use strict"; +module.exports = JSON.parse('{"author":{"name":"Thierry Schellenbach","company":"Stream.io Inc"},"name":"getstream","description":"The official low-level GetStream.io client for Node.js and the browser.","main":"./lib/index.js","module":"./lib/index.js","types":"./lib/index.d.ts","homepage":"https://getstream.io/docs/?language=js","email":"support@getstream.io","license":"BSD-3-Clause","version":"7.2.2","scripts":{"transpile":"babel src --out-dir lib --extensions \'.ts\'","types":"tsc --emitDeclarationOnly","build":"rm -rf lib && yarn run transpile && yarn run types","dist":"webpack && webpack --env minify","eslint":"eslint \'**/*.{js,ts}\' --max-warnings 0","prettier":"prettier --list-different \'**/*.{js,ts}\'","lint":"yarn run prettier && yarn run eslint","lint-fix":"prettier --write \'**/*.{js,ts}\' && eslint --fix \'**/*.{js,ts}\'","test":"yarn run test-unit-node","test-types":"tsc --esModuleInterop true --noEmit true test/typescript/*.ts","test-unit-node":"mocha --require ./babel-register.js test/unit/common test/unit/node","test-integration-node":"mocha --require ./babel-register.js test/integration/common test/integration/node --exit","test-cloud":"mocha --require ./babel-register.js test/integration/cloud --timeout 40000","test-cloud-local":"LOCAL=true mocha --require ./babel-register.js test/integration/cloud --timeout 40000 --ignore \'test/integration/cloud/{personalized_feed,files,images}.js\'","test-browser":"karma start karma.config.js","coverage":"nyc yarn run test-unit-node && nyc report --reporter=text-lcov | codecov --pipe","prepare":"yarn run build","preversion":"yarn run test-unit-node","version":"yarn run dist && yarn run build && git add dist","postversion":"git push && git push --tags && npm publish"},"husky":{"hooks":{"pre-commit":"yarn run lint"}},"browser":{"crypto":false,"jsonwebtoken":false,"./lib/batch_operations.js":false,"./lib/redirect_url.js":false,"qs":false,"url":false,"http":false,"https":false},"react-native":{"crypto":false,"jsonwebtoken":false,"./lib/batch_operations.js":false,"./lib/redirect_url.js":false,"qs":false,"url":false},"devDependencies":{"@babel/cli":"^7.13.10","@babel/core":"^7.13.10","@babel/node":"^7.13.10","@babel/plugin-proposal-class-properties":"^7.13.0","@babel/plugin-proposal-object-rest-spread":"^7.13.8","@babel/plugin-transform-object-assign":"^7.12.13","@babel/plugin-transform-runtime":"^7.13.10","@babel/preset-env":"^7.13.10","@babel/preset-typescript":"^7.13.0","@babel/register":"^7.13.8","@typescript-eslint/eslint-plugin":"^4.17.0","@typescript-eslint/parser":"^4.17.0","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","chai":"^4.3.3","codecov":"^3.8.1","dotenv":"^8.2.0","eslint":"^7.21.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-prettier":"^8.1.0","eslint-plugin-chai-friendly":"^0.6.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.1","eslint-plugin-sonarjs":"^0.6.0","eslint-plugin-typescript-sort-keys":"^1.5.0","expect.js":"^0.3.1","husky":"^4.3.8","json-loader":"~0.5.7","karma":"^6.1.2","karma-chrome-launcher":"^3.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"~2.2.5","karma-sauce-launcher":"^4.3.5","karma-sourcemap-loader":"~0.3.8","karma-webpack":"^5.0.0","mocha":"^8.3.1","null-loader":"^4.0.1","nyc":"^15.1.0","prettier":"^2.2.1","request":"^2.88.2","testdouble":"^3.16.1","typescript":"^4.2.3","webpack":"^5.24.4","webpack-cli":"^4.5.0"},"dependencies":{"@babel/runtime":"^7.13.10","@types/jsonwebtoken":"^8.5.0","@types/jwt-decode":"^2.2.1","@types/qs":"^6.9.6","axios":"^0.21.1","faye":"^1.4.0","form-data":"^4.0.0","jsonwebtoken":"^8.5.1","jwt-decode":"^3.1.2","qs":"^6.9.6"},"peerDependencies":{"@types/node":">=10"},"repository":{"type":"git","url":"git://github.com/GetStream/stream-js.git"},"files":["src","dist","types","lib"],"engines":{"node":"10 || 12 || >=14"},"keywords":["stream","get","get-stream","chat","notification","feed","stream.io","getstream"]}'); - withChannel: function(callback, context) { - this._withChannel = [callback, context]; - return this; - }, +/***/ }), - apply: function(context, args) { - var message = args[0]; +/***/ 8618: +/***/ (() => { - if (this._callback) - this._callback.call(this._context, message.data); +/* (ignored) */ - if (this._withChannel) - this._withChannel[0].call(this._withChannel[1], message.channel, message.data); - }, +/***/ }), - cancel: function() { - if (this._cancelled) return; - this._client.unsubscribe(this._channels, this); - this._cancelled = true; - }, +/***/ 120: +/***/ (() => { - unsubscribe: function() { - this.cancel(); - } -}); +/* (ignored) */ -assign(Subscription.prototype, Deferrable); +/***/ }), -module.exports = Subscription; +/***/ 1420: +/***/ (() => { +/* (ignored) */ -/***/ }), -/* 109 */ -/***/ (function(module, exports) { +/***/ }) -function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; -} +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ if(__webpack_module_cache__[moduleId]) { +/******/ return __webpack_module_cache__[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "connect": () => (/* reexport safe */ _connect__WEBPACK_IMPORTED_MODULE_0__.$), +/* harmony export */ "StreamClient": () => (/* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_1__.n), +/* harmony export */ "CollectionEntry": () => (/* reexport safe */ _collections__WEBPACK_IMPORTED_MODULE_2__.R), +/* harmony export */ "Collections": () => (/* reexport safe */ _collections__WEBPACK_IMPORTED_MODULE_2__.n), +/* harmony export */ "StreamFeed": () => (/* reexport safe */ _feed__WEBPACK_IMPORTED_MODULE_3__.r), +/* harmony export */ "StreamFileStore": () => (/* reexport safe */ _files__WEBPACK_IMPORTED_MODULE_4__.h), +/* harmony export */ "StreamImageStore": () => (/* reexport safe */ _images__WEBPACK_IMPORTED_MODULE_5__.$), +/* harmony export */ "Personalization": () => (/* reexport safe */ _personalization__WEBPACK_IMPORTED_MODULE_6__.S), +/* harmony export */ "StreamReaction": () => (/* reexport safe */ _reaction__WEBPACK_IMPORTED_MODULE_7__.R), +/* harmony export */ "StreamUser": () => (/* reexport safe */ _user__WEBPACK_IMPORTED_MODULE_8__.h), +/* harmony export */ "FeedError": () => (/* reexport safe */ _errors__WEBPACK_IMPORTED_MODULE_10__.IY), +/* harmony export */ "MissingSchemaError": () => (/* reexport safe */ _errors__WEBPACK_IMPORTED_MODULE_10__.uA), +/* harmony export */ "SiteError": () => (/* reexport safe */ _errors__WEBPACK_IMPORTED_MODULE_10__.z4), +/* harmony export */ "StreamApiError": () => (/* reexport safe */ _errors__WEBPACK_IMPORTED_MODULE_10__.eY), +/* harmony export */ "JWTScopeToken": () => (/* reexport safe */ _signing__WEBPACK_IMPORTED_MODULE_11__.v), +/* harmony export */ "JWTUserSessionToken": () => (/* reexport safe */ _signing__WEBPACK_IMPORTED_MODULE_11__.c) +/* harmony export */ }); +/* harmony import */ var _connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2631); +/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6663); +/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3709); +/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7248); +/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(448); +/* harmony import */ var _images__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(407); +/* harmony import */ var _personalization__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8039); +/* harmony import */ var _reaction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8824); +/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7878); +/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6793); +/* harmony import */ var _batch_operations__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_batch_operations__WEBPACK_IMPORTED_MODULE_9__); +/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; +/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _batch_operations__WEBPACK_IMPORTED_MODULE_9__) if(["default","connect","StreamClient","CollectionEntry","Collections","StreamFeed","StreamFileStore","StreamImageStore","Personalization","StreamReaction","StreamUser"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _batch_operations__WEBPACK_IMPORTED_MODULE_9__[__WEBPACK_IMPORT_KEY__] +/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1964); +/* harmony import */ var _signing__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(6685); +/** + * @module stream + * @author Thierry Schellenbach + * BSD License + */ -module.exports = _isNativeFunction; +/* + * typescript does not export the default exports here + * useful for exposing exported internal types + */ -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { -var setPrototypeOf = __webpack_require__(37); -var isNativeReflectConstruct = __webpack_require__(111); -function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - module.exports = _construct = Reflect.construct; - } else { - module.exports = _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - return _construct.apply(null, arguments); -} -module.exports = _construct; -/***/ }), -/* 111 */ -/***/ (function(module, exports) { -function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); - return true; - } catch (e) { - return false; - } -} -module.exports = _isNativeReflectConstruct; -/***/ }), -/* 112 */ -/***/ (function(module) { -module.exports = JSON.parse("{\"author\":{\"name\":\"Thierry Schellenbach\",\"company\":\"Stream.io Inc\"},\"name\":\"getstream\",\"description\":\"The official low-level GetStream.io client for Node.js and the browser.\",\"main\":\"./lib/index.js\",\"module\":\"./lib/index.js\",\"types\":\"./lib/index.d.ts\",\"homepage\":\"https://getstream.io/docs/?language=js\",\"email\":\"support@getstream.io\",\"license\":\"BSD-3-Clause\",\"version\":\"7.2.1\",\"scripts\":{\"transpile\":\"babel src --out-dir lib --extensions '.ts'\",\"types\":\"tsc --emitDeclarationOnly\",\"build\":\"rm -rf lib && yarn run transpile && yarn run types\",\"dist\":\"webpack && webpack --minify\",\"eslint\":\"eslint '**/*.{js,ts}' --max-warnings 0\",\"prettier\":\"prettier --list-different '**/*.{js,ts}'\",\"lint\":\"yarn run prettier && yarn run eslint\",\"lint-fix\":\"prettier --write '**/*.{js,ts}' && eslint --fix '**/*.{js,ts}'\",\"test\":\"yarn run test-unit-node\",\"test-types\":\"tsc --esModuleInterop true --noEmit true test/typescript/*.ts\",\"test-unit-node\":\"mocha --require ./babel-register.js test/unit/common test/unit/node\",\"test-integration-node\":\"mocha --require ./babel-register.js test/integration/common test/integration/node --exit\",\"test-cloud\":\"mocha --require ./babel-register.js test/integration/cloud --timeout 40000\",\"test-cloud-local\":\"LOCAL=true mocha --require ./babel-register.js test/integration/cloud --timeout 40000 --ignore 'test/integration/cloud/{personalized_feed,files,images}.js'\",\"test-browser\":\"karma start karma.config.js\",\"coverage\":\"nyc yarn run test-unit-node && nyc report --reporter=text-lcov | codecov --pipe\",\"prepare\":\"yarn run build\",\"preversion\":\"yarn run test-unit-node\",\"version\":\"yarn run dist && yarn run build && git add dist\",\"postversion\":\"git push && git push --tags && npm publish\"},\"husky\":{\"hooks\":{\"pre-commit\":\"dotgit/hooks/pre-commit-format.sh && dotgit/hooks/pre-commit-reject-binaries.py\"}},\"browser\":{\"crypto\":false,\"jsonwebtoken\":false,\"./lib/batch_operations.js\":false,\"qs\":false,\"url\":false,\"http\":false,\"https\":false},\"react-native\":{\"crypto\":false,\"jsonwebtoken\":false,\"./lib/batch_operations.js\":false,\"qs\":false,\"url\":false},\"devDependencies\":{\"@babel/cli\":\"^7.12.10\",\"@babel/core\":\"^7.12.10\",\"@babel/node\":\"^7.12.10\",\"@babel/plugin-proposal-class-properties\":\"^7.12.1\",\"@babel/plugin-proposal-object-rest-spread\":\"^7.12.1\",\"@babel/plugin-transform-object-assign\":\"^7.12.1\",\"@babel/plugin-transform-runtime\":\"^7.12.10\",\"@babel/preset-env\":\"^7.12.10\",\"@babel/preset-typescript\":\"^7.12.7\",\"@babel/register\":\"^7.12.10\",\"@typescript-eslint/eslint-plugin\":\"^4.9.1\",\"@typescript-eslint/parser\":\"^4.9.1\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.2.2\",\"chai\":\"^4.2.0\",\"codecov\":\"^3.8.1\",\"dotenv\":\"^8.2.0\",\"eslint\":\"^7.15.0\",\"eslint-config-airbnb-base\":\"^14.2.1\",\"eslint-config-prettier\":\"^7.0.0\",\"eslint-plugin-chai-friendly\":\"^0.6.0\",\"eslint-plugin-import\":\"^2.22.1\",\"eslint-plugin-prettier\":\"^3.3.0\",\"eslint-plugin-sonarjs\":\"^0.5.0\",\"eslint-plugin-typescript-sort-keys\":\"^1.5.0\",\"expect.js\":\"^0.3.1\",\"husky\":\"^4.3.6\",\"json-loader\":\"~0.5.7\",\"karma\":\"^5.2.3\",\"karma-chrome-launcher\":\"^3.1.0\",\"karma-mocha\":\"^2.0.1\",\"karma-mocha-reporter\":\"~2.2.5\",\"karma-sauce-launcher\":\"^4.3.4\",\"karma-sourcemap-loader\":\"~0.3.8\",\"karma-webpack\":\"^4.0.2\",\"mocha\":\"^8.2.1\",\"null-loader\":\"^4.0.1\",\"nyc\":\"^15.1.0\",\"prettier\":\"^2.2.1\",\"request\":\"^2.88.2\",\"testdouble\":\"^3.16.1\",\"typescript\":\"^4.1.3\",\"uglifyjs-webpack-plugin\":\"^2.2.0\",\"webpack\":\"^4.44.1\",\"webpack-cli\":\"^3.3.12\"},\"dependencies\":{\"@babel/runtime\":\"^7.12.5\",\"@types/jsonwebtoken\":\"^8.5.0\",\"@types/jwt-decode\":\"^2.2.1\",\"@types/qs\":\"^6.9.5\",\"axios\":\"^0.21.0\",\"faye\":\"^1.4.0\",\"form-data\":\"^3.0.0\",\"jsonwebtoken\":\"^8.5.1\",\"jwt-decode\":\"^3.1.2\",\"qs\":\"^6.9.4\"},\"peerDependencies\":{\"@types/node\":\">=10\"},\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/GetStream/stream-js.git\"},\"files\":[\"src\",\"dist\",\"types\",\"lib\"],\"engines\":{\"node\":\"10 || 12 || >=14\"},\"keywords\":[\"stream\",\"get\",\"get-stream\",\"chat\",\"notification\",\"feed\",\"stream.io\",\"getstream\"]}"); +})(); -/***/ }) -/******/ ]); +/******/ return __webpack_exports__; +/******/ })() +; }); \ No newline at end of file diff --git a/dist/js_min/getstream.js b/dist/js_min/getstream.js index 16a7d52a..97c35549 100644 --- a/dist/js_min/getstream.js +++ b/dist/js_min/getstream.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.stream=e():t.stream=e()}(window,function(){return r={},i.m=n=[function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){t.exports=n(75)},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";n.d(e,"a",function(){return d}),n.d(e,"c",function(){return p}),n.d(e,"b",function(){return v}),n.d(e,"d",function(){return y});var r=n(2),o=n.n(r),e=n(17),s=n.n(e),r=n(18),a=n.n(r),e=n(63),i=n.n(e),r=n(32),c=n.n(r),e=n(64),r=n.n(e),e=n(0),u=n.n(e);function l(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=c()(n);return e=r?(t=c()(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),i()(this,e)}}var h="function"==typeof Error.captureStackTrace,f=!!(new Error).stack,r=function(t){a()(r,t);var n=l(r);function r(t){var e;return o()(this,r),e=n.call(this,t),u()(s()(e),"message",void 0),e.message=t,h?Error.captureStackTrace(s()(e),r.constructor):e.stack=f?(new Error).stack:"",e}return r}(r()(Error)),d=function(t){a()(n,t);var e=l(n);function n(){return o()(this,n),e.apply(this,arguments)}return n}(r),p=function(t){a()(n,t);var e=l(n);function n(){return o()(this,n),e.apply(this,arguments)}return n}(r),v=function(t){a()(n,t);var e=l(n);function n(){return o()(this,n),e.apply(this,arguments)}return n}(r),y=function(t){a()(i,t);var r=l(i);function i(t,e,n){return o()(this,i),t=r.call(this,t),u()(s()(t),"error",void 0),u()(s()(t),"response",void 0),t.error=e,t.response=n,t}return i}(r)},function(t,e){function r(t,e){for(var n=0;n>(-2*i&6))))r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return s};function i(t){this.message=t}(i.prototype=new Error).name="InvalidTokenError",e.a=function(t,e){if("string"!=typeof t)throw new i("Invalid token specified");var n=!0===(e=e||{}).header?0:1;try{return JSON.parse(function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return decodeURIComponent(r(e).replace(/(.)/g,function(t,e){e=e.charCodeAt(0).toString(16).toUpperCase();return e.length<2&&(e="0"+e),"%"+e}))}catch(t){return r(e)}}(t.split(".")[n]))}catch(t){throw new i("Invalid token specified: "+t.message)}}},function(t,e,n){var r=n(38),i=n(17);t.exports=function(t,e){return!e||"object"!==r(e)&&"function"!=typeof e?i(t):e}},function(e,t,n){var r=n(32),i=n(37),o=n(109),s=n(110);function a(t){var n="function"==typeof Map?new Map:void 0;return e.exports=a=function(t){if(null===t||!o(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return s(t,arguments,r(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),i(e,t)},a(t)}e.exports=a},function(t,e){function n(){return t.exports=n=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=Math.pow(2,32)&&(this._messageId=0),this._messageId.toString(36)},_receiveMessage:function(t){var e,n=t.id;void 0!==t.successful&&(e=this._responseCallbacks[n],delete this._responseCallbacks[n]),this.pipeThroughExtensions("incoming",t,null,function(t){t&&(t.advice&&this._handleAdvice(t.advice),this._deliverMessage(t),e&&e[0].call(e[1],t))},this)},_handleAdvice:function(t){e(this._advice,t),this._dispatcher.timeout=this._advice.timeout/1e3,this._advice.reconnect===this.HANDSHAKE&&this._state!==this.DISCONNECTED&&(this._state=this.UNCONNECTED,this._dispatcher.clientId=null,this._cycleConnection())},_deliverMessage:function(t){t.channel&&void 0!==t.data&&(this.info("Client ? calling listeners for ? with ?",this._dispatcher.clientId,t.channel,t.data),this._channels.distributeMessage(t))},_cycleConnection:function(){this._connectRequest&&(this._connectRequest=null,this.info("Closed connection for ?",this._dispatcher.clientId));var t=this;i.setTimeout(function(){t.connect()},this._advice.interval)}});e(t.prototype,r),e(t.prototype,l),e(t.prototype,u),e(t.prototype,p),g.exports=t}).call(this,m(11))},function(h,t,e){"use strict";(function(t){function e(t){r.length||(n(),0),r[r.length]=t}h.exports=e;var n,r=[],i=0;function o(){for(;i=10"},"repository":{"type":"git","url":"git://github.com/GetStream/stream-js.git"},"files":["src","dist","types","lib"],"engines":{"node":"10 || 12 || >=14"},"keywords":["stream","get","get-stream","chat","notification","feed","stream.io","getstream"]}')}],i.c=r,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="dist/",i(i.s=67);function i(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,i),e.l=!0,e.exports}var n,r}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.stream=t():e.stream=t()}(self,(function(){return(()=>{var e={2137:(e,t,n)=>{"use strict";function r(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,s){var o=e.apply(t,n);function a(e){r(o,i,s,a,c,"next",e)}function c(e){r(o,i,s,a,c,"throw",e)}a(void 0)}))}}n.d(t,{Z:()=>i})},6610:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:()=>r})},5991:(e,t,n)=>{"use strict";function r(e,t){for(var n=0;ni})},6156:(e,t,n)=>{"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:()=>r})},7375:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}n.d(t,{Z:()=>r})},3391:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ni})},484:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,{Z:()=>r})},7757:(e,t,n)=>{e.exports=n(5666)},9272:(e,t,n)=>{"use strict";var r=n(723),i=[],s=[],o=r.makeRequestCallFromTimer((function(){if(s.length)throw s.shift()}));function a(e){var t;(t=i.length?i.pop():new c).task=e,r(t)}function c(){this.task=null}e.exports=a,c.prototype.call=function(){try{this.task.call()}catch(e){a.onerror?a.onerror(e):(s.push(e),o())}finally{this.task=null,i[i.length]=this}}},723:(e,t,n)=>{"use strict";function r(e){s.length||i(),s[s.length]=e}e.exports=r;var i,s=[],o=0;function a(){for(;o1024){for(var t=0,n=s.length-o;t{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),i=n(6026),s=n(4372),o=n(5327),a=n(4097),c=n(4109),u=n(7985),l=n(5061);e.exports=function(e){return new Promise((function(t,n){var h=e.data,f=e.headers;r.isFormData(h)&&delete f["Content-Type"];var d=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",v=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";f.Authorization="Basic "+btoa(p+":"+v)}var y=a(e.baseURL,e.url);if(d.open(e.method.toUpperCase(),o(y,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d.onreadystatechange=function(){if(d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?c(d.getAllResponseHeaders()):null,s={data:e.responseType&&"text"!==e.responseType?d.response:d.responseText,status:d.status,statusText:d.statusText,headers:r,config:e,request:d};i(t,n,s),d=null}},d.onabort=function(){d&&(n(l("Request aborted",e,"ECONNABORTED",d)),d=null)},d.onerror=function(){n(l("Network Error",e,null,d)),d=null},d.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(l(t,e,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||u(y))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;g&&(f[e.xsrfHeaderName]=g)}if("setRequestHeader"in d&&r.forEach(f,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete f[t]:d.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){d&&(d.abort(),n(e),d=null)})),h||(h=null),d.send(h)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),i=n(1849),s=n(321),o=n(7185);function a(e){var t=new s(e),n=i(s.prototype.request,t);return r.extend(n,s.prototype,t),r.extend(n,t),n}var c=a(n(5655));c.Axios=s,c.create=function(e){return a(o(c.defaults,e))},c.Cancel=n(5263),c.CancelToken=n(4972),c.isCancel=n(6502),c.all=function(e){return Promise.all(e)},c.spread=n(8713),c.isAxiosError=n(6268),e.exports=c,e.exports.default=c},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i((function(t){e=t})),cancel:e}},e.exports=i},6502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),i=n(5327),s=n(782),o=n(3572),a=n(7185);function c(e){this.defaults=e,this.interceptors={request:new s,response:new s}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[o,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},c.prototype.getUri=function(e){return e=a(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,n,r){return this.request(a(r||{},{method:e,url:t,data:n}))}})),e.exports=c},782:(e,t,n)=>{"use strict";var r=n(4867);function i(){this.handlers=[]}i.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},4097:(e,t,n)=>{"use strict";var r=n(1793),i=n(7303);e.exports=function(e,t){return e&&!r(t)?i(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,i,s){var o=new Error(e);return r(o,t,n,i,s)}},3572:(e,t,n)=>{"use strict";var r=n(4867),i=n(8527),s=n(6502),o=n(5655);function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return a(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||o.adapter)(e).then((function(t){return a(e),t.data=i(t.data,t.headers,e.transformResponse),t}),(function(t){return s(t)||(a(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,i){return e.config=t,n&&(e.code=n),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={},i=["url","method","data"],s=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function u(i){r.isUndefined(t[i])?r.isUndefined(e[i])||(n[i]=c(void 0,e[i])):n[i]=c(e[i],t[i])}r.forEach(i,(function(e){r.isUndefined(t[e])||(n[e]=c(void 0,t[e]))})),r.forEach(s,u),r.forEach(o,(function(i){r.isUndefined(t[i])?r.isUndefined(e[i])||(n[i]=c(void 0,e[i])):n[i]=c(void 0,t[i])})),r.forEach(a,(function(r){r in t?n[r]=c(e[r],t[r]):r in e&&(n[r]=c(void 0,e[r]))}));var l=i.concat(s).concat(o).concat(a),h=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===l.indexOf(e)}));return r.forEach(h,u),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4867),i=n(6016),s={"Content-Type":"application/x-www-form-urlencoded"};function o(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a,c={adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(a=n(5448)),a),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(o(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(o(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(s)})),e.exports=c},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var s;if(n)s=n(t);else if(r.isURLSearchParams(t))s=t.toString();else{var o=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),o.push(i(t)+"="+i(e))})))})),s=o.join("&")}if(s){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,i,s,o){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(i)&&a.push("path="+i),r.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=i(window.location.href),function(t){var n=r.isString(t)?i(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),i=["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"];e.exports=function(e){var t,n,s,o={};return e?(r.forEach(e.split("\n"),(function(e){if(s=e.indexOf(":"),t=r.trim(e.substr(0,s)).toLowerCase(),n=r.trim(e.substr(s+1)),t){if(o[t]&&i.indexOf(t)>=0)return;o[t]="set-cookie"===t?(o[t]?o[t]:[]).concat([n]):o[t]?o[t]+", "+n:n}})),o):o}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4867:(e,t,n)=>{"use strict";var r=n(1849),i=Object.prototype.toString;function s(e){return"[object Array]"===i.call(e)}function o(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===i.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),s(e))for(var n=0,r=e.length;n{"use strict";n.d(t,{n:()=>L});var r=n(3391),i=n(7375),s=n(2137),o=n(6610),a=n(5991),c=n(6156),u=n(7757),l=n.n(u),h=n(9669),f=n.n(h),d=n(2965),p=n(8618),v=n(120);function y(e){this.message=e}y.prototype=new Error,y.prototype.name="InvalidCharacterError";var g="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new y("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,i=0,s=0,o="";r=t.charAt(s++);~r&&(n=i%4?64*n+r:r,i++%4)?o+=String.fromCharCode(255&n>>(-2*i&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return o};function m(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(g(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return g(t)}}function _(e){this.message=e}_.prototype=new Error,_.prototype.name="InvalidTokenError";const b=function(e,t){if("string"!=typeof e)throw new _("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(m(e.split(".")[n]))}catch(e){throw new _("Invalid token specified: "+e.message)}};var w=n(8039),k=n(3709),E=n(448),x=n(407),O=n(8824),T=n(7878),S=n(6685),C=n(1964),A=n(2637),j=n(6793),N=n.n(j),I=n(7496),R=n.n(I),U=n(7248);function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:{};if((0,o.Z)(this,e),(0,c.Z)(this,"baseUrl",void 0),(0,c.Z)(this,"baseAnalyticsUrl",void 0),(0,c.Z)(this,"apiKey",void 0),(0,c.Z)(this,"appId",void 0),(0,c.Z)(this,"usingApiSecret",void 0),(0,c.Z)(this,"apiSecret",void 0),(0,c.Z)(this,"userToken",void 0),(0,c.Z)(this,"enrichByDefault",void 0),(0,c.Z)(this,"options",void 0),(0,c.Z)(this,"userId",void 0),(0,c.Z)(this,"authPayload",void 0),(0,c.Z)(this,"version",void 0),(0,c.Z)(this,"fayeUrl",void 0),(0,c.Z)(this,"group",void 0),(0,c.Z)(this,"expireTokens",void 0),(0,c.Z)(this,"location",void 0),(0,c.Z)(this,"fayeClient",void 0),(0,c.Z)(this,"browser",void 0),(0,c.Z)(this,"node",void 0),(0,c.Z)(this,"nodeOptions",void 0),(0,c.Z)(this,"request",void 0),(0,c.Z)(this,"subscriptions",void 0),(0,c.Z)(this,"handlers",void 0),(0,c.Z)(this,"currentUser",void 0),(0,c.Z)(this,"personalization",void 0),(0,c.Z)(this,"collections",void 0),(0,c.Z)(this,"files",void 0),(0,c.Z)(this,"images",void 0),(0,c.Z)(this,"reactions",void 0),(0,c.Z)(this,"_personalizationToken",void 0),(0,c.Z)(this,"_collectionsToken",void 0),(0,c.Z)(this,"_getOrCreateToken",void 0),(0,c.Z)(this,"addToMany",void 0),(0,c.Z)(this,"followMany",void 0),(0,c.Z)(this,"unfollowMany",void 0),(0,c.Z)(this,"createRedirectUrl",void 0),(0,c.Z)(this,"replaceReactionOptions",(function(e){null!=e&&e.reactions&&(null!=e.reactions.own&&(e.withOwnReactions=e.reactions.own),null!=e.reactions.recent&&(e.withRecentReactions=e.reactions.recent),null!=e.reactions.counts&&(e.withReactionCounts=e.reactions.counts),null!=e.reactions.own_children&&(e.withOwnChildren=e.reactions.own_children),delete e.reactions)})),(0,c.Z)(this,"handleResponse",(function(e){if(/^2/.test("".concat(e.status)))return u.send("response",null,e,e.data),e.data;throw new C.eY("".concat(JSON.stringify(e.data)," with HTTP status code ").concat(e.status),e.data,e)})),(0,c.Z)(this,"doAxiosRequest",function(){var e=(0,s.Z)(l().mark((function e(t,n){var r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u.send("request",t,n),e.prev=1,e.next=4,u.request(u.enrichKwargs(P({method:t},n)));case 4:return r=e.sent,e.abrupt("return",u.handleResponse(r));case 8:if(e.prev=8,e.t0=e.catch(1),!e.t0.response){e.next=12;break}return e.abrupt("return",u.handleResponse(e.t0.response));case 12:throw new C.z4(e.t0.message);case 13:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t,n){return e.apply(this,arguments)}}()),this.baseUrl="https://api.stream-io-api.com/api/",this.baseAnalyticsUrl="https://analytics.stream-io-api.com/analytics/",this.apiKey=t,this.usingApiSecret=null!=n&&!n.includes("."),this.apiSecret=this.usingApiSecret?n:null,this.userToken=this.usingApiSecret?null:n,this.enrichByDefault=!this.usingApiSecret,null!=this.userToken){var d=b(this.userToken);if(!d.user_id)throw new TypeError("user_id is missing in user token");this.userId=d.user_id,this.currentUser=this.user(this.userId)}if(this.appId=r,this.options=h,this.version=this.options.version||"v1.0",this.fayeUrl=this.options.fayeUrl||"https://faye-us-east.stream-io-api.com/faye",this.fayeClient=null,this.group=this.options.group||"unspecified",this.subscriptions={},this.expireTokens=!!this.options.expireTokens&&this.options.expireTokens,this.location=this.options.location,this.baseUrl=this.getBaseUrl(),"undefined"!=typeof process&&null!==(i=process.env)&&void 0!==i&&i.LOCAL_FAYE&&(this.fayeUrl="http://localhost:9999/faye/"),"undefined"!=typeof process&&null!==(a=process.env)&&void 0!==a&&a.STREAM_ANALYTICS_BASE_URL&&(this.baseAnalyticsUrl=process.env.STREAM_ANALYTICS_BASE_URL),this.handlers={},this.browser=void 0!==this.options.browser?this.options.browser:"undefined"!=typeof window,this.node=!this.browser,this.node){var y=void 0===this.options.keepAlive||this.options.keepAlive;this.nodeOptions={httpAgent:new p.Agent({keepAlive:y,keepAliveMsecs:3e3}),httpsAgent:new v.Agent({keepAlive:y,keepAliveMsecs:3e3})}}if(this.request=f().create(P({timeout:this.options.timeout||1e4,withCredentials:!1},this.nodeOptions||{})),this.personalization=new w.S(this),this.browser&&this.usingApiSecret)throw new C.IY('You are publicly sharing your App Secret. Do not expose the App Secret in browsers, "native" mobile apps, or other non-trusted environments.');this.collections=new k.n(this,this.getOrCreateToken()),this.files=new E.h(this,this.getOrCreateToken()),this.images=new x.$(this,this.getOrCreateToken()),this.reactions=new O.R(this,this.getOrCreateToken()),N()&&R()&&(this.addToMany=N().addToMany,this.followMany=N().followMany,this.unfollowMany=N().unfollowMany,this.createRedirectUrl=R())}var t,n;return(0,a.Z)(e,[{key:"_throwMissingApiSecret",value:function(){if(!this.usingApiSecret)throw new C.z4("This method can only be used server-side using your API Secret, use client = stream.connect(key, secret);")}},{key:"getPersonalizationToken",value:function(){return this._personalizationToken||(this._throwMissingApiSecret(),this._personalizationToken=(0,S.v)(this.apiSecret,"personalization","*",{userId:"*",feedId:"*",expireTokens:this.expireTokens})),this._personalizationToken}},{key:"getCollectionsToken",value:function(){return this._collectionsToken||(this._throwMissingApiSecret(),this._collectionsToken=(0,S.v)(this.apiSecret,"collections","*",{feedId:"*",expireTokens:this.expireTokens})),this._collectionsToken}},{key:"getAnalyticsToken",value:function(){return this._throwMissingApiSecret(),(0,S.v)(this.apiSecret,"analytics","*",{userId:"*",expireTokens:this.expireTokens})}},{key:"getBaseUrl",value:function(e){var t,n;if(e||(e="api"),this.options.urlOverride&&this.options.urlOverride[e])return this.options.urlOverride[e];var r="api"===e?"STREAM_BASE_URL":"STREAM_".concat(e.toUpperCase(),"_URL");if("undefined"!=typeof process&&null!==(t=process.env)&&void 0!==t&&t[r])return process.env[r];if("undefined"!=typeof process&&null!==(n=process.env)&&void 0!==n&&n.LOCAL||this.options.local)return"http://localhost:8000/".concat(e,"/");if(this.location){var i=this.options.protocol||"https";return"".concat(i,"://").concat(this.location,"-").concat(e,".stream-io-api.com/").concat(e,"/")}return"api"!==e?"https://".concat(e,".stream-io-api.com/").concat(e,"/"):this.baseUrl}},{key:"on",value:function(e,t){this.handlers[e]=t}},{key:"off",value:function(e){void 0===e?this.handlers={}:delete this.handlers[e]}},{key:"send",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};if(void 0!==e.enrich){var t=e.enrich;return delete e.enrich,t}return this.enrichByDefault||null!=e.ownReactions||null!=e.withRecentReactions||null!=e.withReactionCounts||null!=e.withOwnChildren}},{key:"enrichKwargs",value:function(e){var t=e.method,n=e.token,r=(0,i.Z)(e,["method","token"]);return P({method:t,url:this.enrichUrl(r.url,r.serviceName),data:r.body,params:P({api_key:this.apiKey,location:this.group},r.qs||{}),headers:P({"X-Stream-Client":this.userAgent(),"stream-auth-type":"jwt",Authorization:n},r.headers||{})},r.axiosOptions||{})}},{key:"getFayeAuthorization",value:function(){var e=this;return{incoming:function(e,t){return t(e)},outgoing:function(t,n){if(t.subscription&&e.subscriptions[t.subscription]){var r=e.subscriptions[t.subscription];t.ext={user_id:r.userId,api_key:e.apiKey,signature:r.token}}n(t)}}}},{key:"getFayeClient",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;if(null===this.fayeClient){this.fayeClient=new d.Client(this.fayeUrl,{timeout:e});var t=this.getFayeAuthorization();this.fayeClient.addExtension(t)}return this.fayeClient}},{key:"upload",value:function(e,t,n,r,i){var s=A.Z.addFileToFormData(t,n,r);return this.doAxiosRequest("POST",{url:e,body:s,headers:s.getHeaders?s.getHeaders():{},token:this.getOrCreateToken(),axiosOptions:{timeout:0,maxContentLength:1/0,maxBodyLength:1/0,onUploadProgress:i}})}},{key:"get",value:function(e){return this.doAxiosRequest("GET",e)}},{key:"post",value:function(e){return this.doAxiosRequest("POST",e)}},{key:"delete",value:function(e){return this.doAxiosRequest("DELETE",e)}},{key:"put",value:function(e){return this.doAxiosRequest("PUT",e)}},{key:"createUserToken",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._throwMissingApiSecret(),(0,S.c)(this.apiSecret,e,t,{noTimestamp:!this.expireTokens})}},{key:"updateActivities",value:function(e){if(this._throwMissingApiSecret(),!(e instanceof Array))throw new TypeError("The activities argument should be an Array");var t=(0,S.v)(this.apiSecret,"activities","*",{feedId:"*",expireTokens:this.expireTokens});return this.post({url:"activities/",body:{activities:e},token:t})}},{key:"updateActivity",value:function(e){return this._throwMissingApiSecret(),this.updateActivities([e])}},{key:"getActivities",value:function(e){var t=e.ids,n=e.foreignIDTimes,r=(0,i.Z)(e,["ids","foreignIDTimes"]),s={};if(t){if(!(t instanceof Array))throw new TypeError("The ids argument should be an Array");s.ids=t.join(",")}else{if(!n)throw new TypeError("Missing ids or foreignIDTimes params");if(!(n instanceof Array))throw new TypeError("The foreignIDTimes argument should be an Array");var o=[],a=[];n.forEach((function(e){if(!(e instanceof Object))throw new TypeError("foreignIDTimes elements should be Objects");o.push(e.foreignID),a.push(e.time)})),s.foreign_ids=o.join(","),s.timestamps=a.join(",")}var c=this.userToken;this.usingApiSecret&&(c=(0,S.v)(this.apiSecret,"activities","*",{feedId:"*",expireTokens:this.expireTokens})),this.replaceReactionOptions(r);var u=this.shouldUseEnrichEndpoint(r)?"enrich/activities/":"activities/";return this.get({url:u,qs:P(P({},r),s),token:c})}},{key:"getOrCreateToken",value:function(){return this._getOrCreateToken||(this._getOrCreateToken=this.usingApiSecret?(0,S.v)(this.apiSecret,"*","*",{feedId:"*"}):this.userToken),this._getOrCreateToken}},{key:"user",value:function(e){return new T.h(this,e,this.getOrCreateToken())}},{key:"setUser",value:(n=(0,s.Z)(l().mark((function e(t){var n,r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.usingApiSecret){e.next=2;break}throw new C.z4("This method can only be used client-side using a user token");case 2:return delete(n=P({},t)).id,e.next=6,this.currentUser.getOrCreate(n);case 6:return r=e.sent,this.currentUser=r,e.abrupt("return",r);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"og",value:function(e){return this.get({url:"og/",qs:{url:e},token:this.getOrCreateToken()})}},{key:"personalizedFeed",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.get({url:"enrich/personalization/feed/",qs:e,token:this.getOrCreateToken()})}},{key:"activityPartialUpdate",value:(t=(0,s.Z)(l().mark((function e(t){var n,s,o,a,c;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.activitiesPartialUpdate([t]);case 2:return n=e.sent,s=n.activities,o=(0,i.Z)(n,["activities"]),a=(0,r.Z)(s,1),c=a[0],e.abrupt("return",P(P({},c),o));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"activitiesPartialUpdate",value:function(e){if(!(e instanceof Array))throw new TypeError("changes should be an Array");e.forEach((function(e){if(!(e instanceof Object))throw new TypeError("changeset should be and Object");if(e.foreignID&&(e.foreign_id=e.foreignID),void 0===e.id&&(void 0===e.foreign_id||void 0===e.time))throw new TypeError("missing id or foreign ID and time");if(e.set&&!(e.set instanceof Object))throw new TypeError("set field should be an Object");if(e.unset&&!(e.unset instanceof Array))throw new TypeError("unset field should be an Array")}));var t=this.userToken;return this.usingApiSecret&&(t=(0,S.v)(this.apiSecret,"activities","*",{feedId:"*",expireTokens:this.expireTokens})),this.post({url:"activity/",body:{changes:e},token:t})}}]),e}()},3709:(e,t,n)=>{"use strict";n.d(t,{R:()=>l,n:()=>h});var r=n(2137),i=n(6610),s=n(5991),o=n(6156),a=n(7757),c=n.n(a),u=n(1964),l=function(){function e(t,n,r,s){(0,i.Z)(this,e),(0,o.Z)(this,"id",void 0),(0,o.Z)(this,"collection",void 0),(0,o.Z)(this,"store",void 0),(0,o.Z)(this,"data",void 0),(0,o.Z)(this,"full",void 0),this.collection=n,this.store=t,this.id=r,this.data=s}var t,n,a,u;return(0,s.Z)(e,[{key:"ref",value:function(){return"SO:".concat(this.collection,":").concat(this.id)}},{key:"get",value:(u=(0,r.Z)(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.get(this.collection,this.id);case 2:return t=e.sent,this.data=t.data,this.full=t,e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"add",value:(a=(0,r.Z)(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.add(this.collection,this.id,this.data);case 2:return t=e.sent,this.data=t.data,this.full=t,e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(n=(0,r.Z)(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.update(this.collection,this.id,this.data);case 2:return t=e.sent,this.data=t.data,this.full=t,e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=(0,r.Z)(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.delete(this.collection,this.id);case 2:return t=e.sent,this.data=null,this.full=null,e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),h=function(){function e(t,n){(0,i.Z)(this,e),(0,o.Z)(this,"client",void 0),(0,o.Z)(this,"token",void 0),(0,o.Z)(this,"buildURL",(function(e,t){var n="collections/".concat(e,"/");return void 0===t?n:"".concat(n).concat(t,"/")})),this.client=t,this.token=n}var t,n,a;return(0,s.Z)(e,[{key:"entry",value:function(e,t,n){return new l(this,e,t,n)}},{key:"get",value:(a=(0,r.Z)(c().mark((function e(t,n){var r,i;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.get({url:this.buildURL(t,n),token:this.token});case 2:return r=e.sent,(i=this.entry(r.collection,r.id,r.data)).full=r,e.abrupt("return",i);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"add",value:(n=(0,r.Z)(c().mark((function e(t,n,r){var i,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.post({url:this.buildURL(t),body:{id:null===n?void 0:n,data:r},token:this.token});case 2:return i=e.sent,(s=this.entry(i.collection,i.id,i.data)).full=i,e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"update",value:(t=(0,r.Z)(c().mark((function e(t,n,r){var i,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.put({url:this.buildURL(t,n),body:{data:r},token:this.token});case 2:return i=e.sent,(s=this.entry(i.collection,i.id,i.data)).full=i,e.abrupt("return",s);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n,r){return t.apply(this,arguments)})},{key:"delete",value:function(e,t){return this.client.delete({url:this.buildURL(e,t),token:this.token})}},{key:"upsert",value:function(e,t){if(!this.client.usingApiSecret)throw new u.z4("This method can only be used server-side using your API Secret");return Array.isArray(t)||(t=[t]),this.client.post({url:"collections/",serviceName:"api",body:{data:(0,o.Z)({},e,t)},token:this.client.getCollectionsToken()})}},{key:"select",value:function(e,t){if(!this.client.usingApiSecret)throw new u.z4("This method can only be used server-side using your API Secret");return Array.isArray(t)||(t=[t]),this.client.get({url:"collections/",serviceName:"api",qs:{foreign_ids:t.map((function(t){return"".concat(e,":").concat(t)})).join(",")},token:this.client.getCollectionsToken()})}},{key:"deleteMany",value:function(e,t){if(!this.client.usingApiSecret)throw new u.z4("This method can only be used server-side using your API Secret");Array.isArray(t)||(t=[t]);var n={collection_name:e,ids:t.map((function(e){return e.toString()})).join(",")};return this.client.delete({url:"collections/",serviceName:"api",qs:n,token:this.client.getCollectionsToken()})}}]),e}()},2631:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6663);function i(e,t,n,i){var s;if("undefined"!=typeof process&&null!==(s=process.env)&&void 0!==s&&s.STREAM_URL&&!e){var o=/https:\/\/(\w+):(\w+)@([\w-]*).*\?app_id=(\d+)/.exec(process.env.STREAM_URL)||[];e=o[1],t=o[2];var a=o[3];n=o[4],void 0===i&&(i={}),"getstream"!==a&&"stream-io-api"!==a&&(i.location=a)}return new r.n(e,t,n,i)}},1964:(e,t,n)=>{"use strict";n.d(t,{IY:()=>m,uA:()=>b,z4:()=>_,eY:()=>w});var r=n(6610);function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}var a=n(484);function c(e,t){return!t||"object"!==(0,a.Z)(t)&&"function"!=typeof t?i(e):t}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function h(e,t,n){return(h=l()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&s(i,n.prototype),i}).apply(null,arguments)}function f(e){var t="function"==typeof Map?new Map:void 0;return(f=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return h(e,arguments,u(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,e)})(e)}var d=n(6156);function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=u(e);if(t){var i=u(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return c(this,n)}}var v="function"==typeof Error.captureStackTrace,y=!!(new Error).stack,g=function(e){o(n,e);var t=p(n);function n(e){var s;return(0,r.Z)(this,n),s=t.call(this,e),(0,d.Z)(i(s),"message",void 0),s.message=e,v?Error.captureStackTrace(i(s),n.constructor):s.stack=y?(new Error).stack:"",s}return n}(f(Error)),m=function(e){o(n,e);var t=p(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return n}(g),_=function(e){o(n,e);var t=p(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return n}(g),b=function(e){o(n,e);var t=p(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return n}(g),w=function(e){o(n,e);var t=p(n);function n(e,s,o){var a;return(0,r.Z)(this,n),a=t.call(this,e),(0,d.Z)(i(a),"error",void 0),(0,d.Z)(i(a),"response",void 0),a.error=s,a.response=o,a}return n}(g)},7248:(e,t,n)=>{"use strict";n.d(t,{r:()=>h});var r=n(6610),i=n(5991),s=n(6156),o=n(7878),a=n(1964),c=n(2637);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};t instanceof o.h&&(t=t.id),c.Z.validateFeedSlug(e),c.Z.validateUserId(t);var r={target:"".concat(e,":").concat(t)};return"number"==typeof n.limit&&(r.activity_copy_limit=n.limit),this.client.post({url:"feed/".concat(this.feedUrl,"/following/"),body:r,token:this.token})}},{key:"unfollow",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={};"boolean"==typeof n.keepHistory&&n.keepHistory&&(r.keep_history="1"),c.Z.validateFeedSlug(e),c.Z.validateUserId(t);var i="".concat(e,":").concat(t);return this.client.delete({url:"feed/".concat(this.feedUrl,"/following/").concat(i,"/"),qs:r,token:this.token})}},{key:"following",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return e.filter&&(t.filter=e.filter.join(",")),this.client.get({url:"feed/".concat(this.feedUrl,"/following/"),qs:l(l({},e),t),token:this.token})}},{key:"followers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return e.filter&&(t.filter=e.filter.join(",")),this.client.get({url:"feed/".concat(this.feedUrl,"/followers/"),qs:l(l({},e),t),token:this.token})}},{key:"followStats",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={followers:this.id,following:this.id};return e.followerSlugs&&e.followerSlugs.length&&(t.followers_slugs=e.followerSlugs.join(",")),e.followingSlugs&&e.followingSlugs.length&&(t.following_slugs=e.followingSlugs.join(",")),this.client.get({url:"stats/follow/",qs:t,token:this.client.getOrCreateToken()})}},{key:"get",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};e.mark_read&&e.mark_read.join&&(t.mark_read=e.mark_read.join(",")),e.mark_seen&&e.mark_seen.join&&(t.mark_seen=e.mark_seen.join(",")),this.client.replaceReactionOptions(e);var n=this.client.shouldUseEnrichEndpoint(e)?"enrich/feed/":"feed/";return this.client.get({url:"".concat(n).concat(this.feedUrl,"/"),qs:l(l({},e),t),token:this.token})}},{key:"getActivityDetail",value:function(e,t){return this.get(l({id_lte:e,id_gte:e,limit:1},t||{}))}},{key:"getFayeClient",value:function(){return this.client.getFayeClient()}},{key:"subscribe",value:function(e){if(!this.client.appId)throw new a.z4("Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);");var t=this.getFayeClient().subscribe("/".concat(this.notificationChannel),e);return this.client.subscriptions["/".concat(this.notificationChannel)]={token:this.token,userId:this.notificationChannel,fayeSubscription:t},t}},{key:"unsubscribe",value:function(){var e=this.client.subscriptions["/".concat(this.notificationChannel)];e&&(delete this.client.subscriptions["/".concat(this.notificationChannel)],e.fayeSubscription.cancel())}},{key:"updateActivityToTargets",value:function(e,t,n,r,i){if(!e)throw new Error("Missing `foreign_id` parameter!");if(!t)throw new Error("Missing `time` parameter!");if(!n&&!r&&!i)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...])`');if(n&&(r||i))throw new Error("Can't include add_targets or removedTargets if you're also including newTargets");r&&i&&r.forEach((function(e){if(i.includes(e))throw new Error("Can't have the same feed ID in addedTargets and removedTargets.")}));var s={foreign_id:e,time:t};return n&&(s.new_targets=n),r&&(s.added_targets=r),i&&(s.removed_targets=i),this.client.post({url:"feed_targets/".concat(this.feedUrl,"/activity_to_targets/"),token:this.token,body:s})}}]),e}()},448:(e,t,n)=>{"use strict";n.d(t,{h:()=>o});var r=n(6610),i=n(5991),s=n(6156),o=function(){function e(t,n){(0,r.Z)(this,e),(0,s.Z)(this,"client",void 0),(0,s.Z)(this,"token",void 0),this.client=t,this.token=n}return(0,i.Z)(e,[{key:"upload",value:function(e,t,n,r){return this.client.upload("files/",e,t,n,r)}},{key:"delete",value:function(e){return this.client.delete({url:"files/",qs:{url:e},token:this.token})}},{key:"refreshUrl",value:function(e){return this.client.post({url:"files/refresh/",body:{url:e},token:this.token})}}]),e}()},407:(e,t,n)=>{"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;ta});var i=n(6610),s=n(5991),o=n(6156),a=function(){function e(t,n){(0,i.Z)(this,e),(0,o.Z)(this,"client",void 0),(0,o.Z)(this,"token",void 0),this.client=t,this.token=n}return(0,s.Z)(e,[{key:"upload",value:function(e,t,n,r){return this.client.upload("images/",e,t,n,r)}},{key:"delete",value:function(e){return this.client.delete({url:"images/",qs:{url:e},token:this.token})}},{key:"refreshUrl",value:function(e){return this.client.post({url:"images/refresh/",body:{url:e},token:this.token})}},{key:"process",value:function(e,t){var n=r(t,{url:e});return Array.isArray(n.crop)&&(n.crop=n.crop.join(",")),this.client.get({url:"images/",qs:n,token:this.token})}},{key:"thumbnail",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{crop:"center",resize:"clip"},i=r.crop,s=r.resize;return this.process(e,{w:t,h:n,crop:i,resize:s})}}]),e}()},8039:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(6610),i=n(5991),s=n(6156),o=function(){function e(t){(0,r.Z)(this,e),(0,s.Z)(this,"client",void 0),this.client=t}return(0,i.Z)(e,[{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.client.get({url:"".concat(e,"/"),serviceName:"personalization",qs:t,token:t.token||this.client.getPersonalizationToken()})}},{key:"post",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.client.post({url:"".concat(e,"/"),serviceName:"personalization",qs:t,body:n,token:this.client.getPersonalizationToken()})}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.client.delete({url:"".concat(e,"/"),serviceName:"personalization",qs:t,token:this.client.getPersonalizationToken()})}}]),e}()},8824:(e,t,n)=>{"use strict";n.d(t,{R:()=>c});var r=n(7375),i=n(6610),s=n(5991),o=n(6156),a=n(1964),c=function(){function e(t,n){(0,i.Z)(this,e),(0,o.Z)(this,"client",void 0),(0,o.Z)(this,"token",void 0),(0,o.Z)(this,"buildURL",(function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[];return e.map((function(e){return"string"==typeof e?e:e.id}))})),this.client=t,this.token=n}return(0,s.Z)(e,[{key:"add",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.id,s=r.targetFeeds,o=void 0===s?[]:s,a=r.userId,c=r.targetFeedsExtraData,u={id:i,activity_id:t instanceof Object?t.id:t,kind:e,data:n||{},target_feeds:this._convertTargetFeeds(o),user_id:a};return null!=c&&(u.target_feeds_extra_data=c),this.client.post({url:this.buildURL(),body:u,token:this.token})}},{key:"addChild",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.targetFeeds,s=void 0===i?[]:i,o=r.userId,a=r.targetFeedsExtraData,c={parent:t instanceof Object?t.id:t,kind:e,data:n||{},target_feeds:this._convertTargetFeeds(s),user_id:o};return null!=a&&(c.target_feeds_extra_data=a),this.client.post({url:this.buildURL(),body:c,token:this.token})}},{key:"get",value:function(e){return this.client.get({url:this.buildURL(e),token:this.token})}},{key:"filter",value:function(e){var t=e.user_id,n=e.activity_id,i=e.reaction_id,s=(0,r.Z)(e,["user_id","activity_id","reaction_id"]);if(s.limit||(s.limit=10),(t?1:0)+(n?1:0)+(i?1:0)!=1)throw new a.z4("Must provide exactly one value for one of these params: user_id, activity_id, reaction_id");var o=(t?"user_id":n&&"activity_id")||i&&"reaction_id",c=t||n||i,u=e.kind?this.buildURL(o,c,e.kind):this.buildURL(o,c);return this.client.get({url:u,qs:s,token:this.token})}},{key:"update",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.targetFeeds,i=void 0===r?[]:r,s=n.targetFeedsExtraData,o={data:t,target_feeds:this._convertTargetFeeds(i)};return null!=s&&(o.target_feeds_extra_data=s),this.client.put({url:this.buildURL(e),body:o,token:this.token})}},{key:"delete",value:function(e){return this.client.delete({url:this.buildURL(e),token:this.token})}}]),e}()},6685:(e,t,n)=>{"use strict";n.d(t,{v:()=>u,c:()=>l});var r=n(6156),i=n(1420),s=n.n(i);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:{},i=!r.expireTokens||!r.expireTokens,o={resource:c(t),action:c(n)};return r.feedId&&(o.feed_id=c(r.feedId)),r.userId&&(o.user_id=r.userId),s().sign(o,e,{algorithm:"HS256",noTimestamp:i})}function l(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("string"!=typeof t)throw new TypeError("userId should be a string");var i=a({user_id:t},n),o=a({algorithm:"HS256",noTimestamp:!0},r);return s().sign(i,e,o)}},7878:(e,t,n)=>{"use strict";n.d(t,{h:()=>h});var r=n(2137),i=n(6610),s=n(5991),o=n(6156),a=n(7757),c=n.n(a);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t{"use strict";n.d(t,{Z:()=>d});var r=n(3391),i=n(484),s=n(6230),o=n.n(s),a=n(1964),c=/^[\w]+$/,u=/^[\w-]+$/;function l(e){if(!c.test(e))throw new a.IY("Invalid feedSlug, please use letters, numbers or _: ".concat(e));return e}function h(e){if(!u.test(e))throw new a.IY("Invalid userId, please use letters, numbers, - or _: ".concat(e));return e}function f(e){return null!==e&&"object"===(0,i.Z)(e)&&(e.readable||"function"==typeof e._read)}const d={validateFeedId:function(e){var t=e.split(":");if(2!==t.length)throw new a.IY("Invalid feedId, expected something like user:1 got ".concat(e));var n=(0,r.Z)(t,2),i=n[0],s=n[1];return l(i),h(s),e},validateFeedSlug:l,validateUserId:h,rfc3986:function(e){return e.replace(/[!'()*]/g,(function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())}))},isReadableStream:f,addFileToFormData:function(e,t,n){var r,i=new(o());return f(e)||null!=(r=e)&&null!=r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)||function(e){return"undefined"!=typeof window&&"File"in window&&e instanceof File}(e)?t?i.append("file",e,t):i.append("file",e):i.append("file",{uri:e,name:t||e.split("/").reverse()[0],type:n||void 0,contentType:n||void 0}),i},replaceStreamObjects:function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("[object Object]"!==Object.prototype.toString.call(t))return t;if("function"==typeof t.ref)return t.ref();var n={};return Object.keys(t).forEach((function(r){n[r]=e(t[r])})),n}}},2965:(e,t,n)=>{"use strict";var r=n(8742),i=n(8782),s={VERSION:r.VERSION,Client:n(1955),Scheduler:n(6148)};i.wrapper=s,e.exports=s},5890:(e,t,n)=>{"use strict";var r=n(4857);e.exports={then:function(e,t){var n=this;return this._promise||(this._promise=new r((function(e,t){n._resolve=e,n._reject=t}))),0===arguments.length?this._promise:this._promise.then(e,t)},callback:function(e,t){return this.then((function(n){e.call(t,n)}))},errback:function(e,t){return this.then(null,(function(n){e.call(t,n)}))},timeout:function(e,t){this.then();var r=this;this._timer=n.g.setTimeout((function(){r._reject(t)}),1e3*e)},setDeferredStatus:function(e,t){this._timer&&n.g.clearTimeout(this._timer),this.then(),"succeeded"===e?this._resolve(t):"failed"===e?this._reject(t):delete this._promise}}},8782:(e,t,n)=>{"use strict";var r=n(9457),i={LOG_LEVELS:{fatal:4,error:3,warn:2,info:1,debug:0},writeLog:function(e,t){var n=i.logger||(i.wrapper||i).logger;if(n){var s=Array.prototype.slice.apply(e),o="[Faye",a=this.className,c=s.shift().replace(/\?/g,(function(){try{return r(s.shift())}catch(e){return"[Object]"}}));a&&(o+="."+a),o+="] ","function"==typeof n[t]?n[t](o+c):"function"==typeof n&&n(o+c)}}};for(var s in i.LOG_LEVELS)!function(e){i[e]=function(){this.writeLog(arguments,e)}}(s);e.exports=i},4909:(e,t,n)=>{"use strict";var r={countListeners:function(e){return this.listeners(e).length},bind:function(e,t,n){var r=Array.prototype.slice,i=function(){t.apply(n,r.call(arguments))};return this._listeners=this._listeners||[],this._listeners.push([e,t,n,i]),this.on(e,i)},unbind:function(e,t,n){this._listeners=this._listeners||[];for(var r,i=this._listeners.length;i--;)(r=this._listeners[i])[0]===e&&(!t||r[1]===t&&r[2]===n)&&(this._listeners.splice(i,1),this.removeListener(e,r[3]))}};n(7088)(r,n(2356).prototype),r.trigger=r.emit,e.exports=r},2840:(e,t,n)=>{"use strict";e.exports={addTimeout:function(e,t,r,i){if(this._timeouts=this._timeouts||{},!this._timeouts.hasOwnProperty(e)){var s=this;this._timeouts[e]=n.g.setTimeout((function(){delete s._timeouts[e],r.call(i)}),1e3*t)}},removeTimeout:function(e){this._timeouts=this._timeouts||{};var t=this._timeouts[e];t&&(n.g.clearTimeout(t),delete this._timeouts[e])},removeAllTimeouts:function(){for(var e in this._timeouts=this._timeouts||{},this._timeouts)this.removeTimeout(e)}}},1762:(e,t,n)=>{"use strict";var r=n(8702),i=n(7088),s=n(4909),o=n(4710),a=r({initialize:function(e){this.id=this.name=e},push:function(e){this.trigger("message",e)},isUnused:function(){return 0===this.countListeners("message")}});i(a.prototype,s),i(a,{HANDSHAKE:"/meta/handshake",CONNECT:"/meta/connect",SUBSCRIBE:"/meta/subscribe",UNSUBSCRIBE:"/meta/unsubscribe",DISCONNECT:"/meta/disconnect",META:"meta",SERVICE:"service",expand:function(e){var t=this.parse(e),n=["/**",e],r=t.slice();r[r.length-1]="*",n.push(this.unparse(r));for(var i=1,s=t.length;i{"use strict";var r=n(9272),i=n(8702),s=(n(4857),n(8722)),o=n(8375),a=n(8742),c=n(7088),u=n(3978),l=n(5890),h=n(8782),f=n(4909),d=n(1762),p=n(8854),v=n(5656),y=n(9983),g=n(4347),m=n(5740),_=i({className:"Client",UNCONNECTED:1,CONNECTING:2,CONNECTED:3,DISCONNECTED:4,HANDSHAKE:"handshake",RETRY:"retry",NONE:"none",CONNECTION_TIMEOUT:60,DEFAULT_ENDPOINT:"/bayeux",INTERVAL:0,initialize:function(e,t){this.info("New client created for ?",e),u(t=t||{},["interval","timeout","endpoints","proxy","retry","scheduler","websocketExtensions","tls","ca"]),this._channels=new d.Set,this._dispatcher=p.create(this,e||this.DEFAULT_ENDPOINT,t),this._messageId=0,this._state=this.UNCONNECTED,this._responseCallbacks={},this._advice={reconnect:this.RETRY,interval:1e3*(t.interval||this.INTERVAL),timeout:1e3*(t.timeout||this.CONNECTION_TIMEOUT)},this._dispatcher.timeout=this._advice.timeout/1e3,this._dispatcher.bind("message",this._receiveMessage,this),o.Event&&void 0!==n.g.onbeforeunload&&o.Event.on(n.g,"beforeunload",(function(){s.indexOf(this._dispatcher._disabled,"autodisconnect")<0&&this.disconnect()}),this)},addWebsocketExtension:function(e){return this._dispatcher.addWebsocketExtension(e)},disable:function(e){return this._dispatcher.disable(e)},setHeader:function(e,t){return this._dispatcher.setHeader(e,t)},handshake:function(e,t){if(this._advice.reconnect!==this.NONE&&this._state===this.UNCONNECTED){this._state=this.CONNECTING;var i=this;this.info("Initiating handshake with ?",this._dispatcher.endpoint.href),this._dispatcher.selectTransport(a.MANDATORY_CONNECTION_TYPES),this._sendMessage({channel:d.HANDSHAKE,version:a.BAYEUX_VERSION,supportedConnectionTypes:this._dispatcher.getConnectionTypes()},{},(function(s){s.successful?(this._state=this.CONNECTED,this._dispatcher.clientId=s.clientId,this._dispatcher.selectTransport(s.supportedConnectionTypes),this.info("Handshake successful: ?",this._dispatcher.clientId),this.subscribe(this._channels.getKeys(),!0),e&&r((function(){e.call(t)}))):(this.info("Handshake unsuccessful"),n.g.setTimeout((function(){i.handshake(e,t)}),1e3*this._dispatcher.retry),this._state=this.UNCONNECTED)}),this)}},connect:function(e,t){if(this._advice.reconnect!==this.NONE&&this._state!==this.DISCONNECTED){if(this._state===this.UNCONNECTED)return this.handshake((function(){this.connect(e,t)}),this);this.callback(e,t),this._state===this.CONNECTED&&(this.info("Calling deferred actions for ?",this._dispatcher.clientId),this.setDeferredStatus("succeeded"),this.setDeferredStatus("unknown"),this._connectRequest||(this._connectRequest=!0,this.info("Initiating connection for ?",this._dispatcher.clientId),this._sendMessage({channel:d.CONNECT,clientId:this._dispatcher.clientId,connectionType:this._dispatcher.connectionType},{},this._cycleConnection,this)))}},disconnect:function(){if(this._state===this.CONNECTED){this._state=this.DISCONNECTED,this.info("Disconnecting ?",this._dispatcher.clientId);var e=new g;return this._sendMessage({channel:d.DISCONNECT,clientId:this._dispatcher.clientId},{},(function(t){t.successful?(this._dispatcher.close(),e.setDeferredStatus("succeeded")):e.setDeferredStatus("failed",v.parse(t.error))}),this),this.info("Clearing channel listeners for ?",this._dispatcher.clientId),this._channels=new d.Set,e}},subscribe:function(e,t,n){if(e instanceof Array)return s.map(e,(function(e){return this.subscribe(e,t,n)}),this);var r=new m(this,e,t,n),i=!0===t;return this._channels.hasSubscription(e)&&!i?(this._channels.subscribe([e],r),r.setDeferredStatus("succeeded"),r):(this.connect((function(){this.info("Client ? attempting to subscribe to ?",this._dispatcher.clientId,e),i||this._channels.subscribe([e],r),this._sendMessage({channel:d.SUBSCRIBE,clientId:this._dispatcher.clientId,subscription:e},{},(function(t){if(!t.successful)return r.setDeferredStatus("failed",v.parse(t.error)),this._channels.unsubscribe(e,r);var n=[].concat(t.subscription);this.info("Subscription acknowledged for ? to ?",this._dispatcher.clientId,n),r.setDeferredStatus("succeeded")}),this)}),this),r)},unsubscribe:function(e,t){if(e instanceof Array)return s.map(e,(function(e){return this.unsubscribe(e,t)}),this);this._channels.unsubscribe(e,t)&&this.connect((function(){this.info("Client ? attempting to unsubscribe from ?",this._dispatcher.clientId,e),this._sendMessage({channel:d.UNSUBSCRIBE,clientId:this._dispatcher.clientId,subscription:e},{},(function(e){if(e.successful){var t=[].concat(e.subscription);this.info("Unsubscription acknowledged for ? from ?",this._dispatcher.clientId,t)}}),this)}),this)},publish:function(e,t,n){u(n||{},["attempts","deadline"]);var r=new g;return this.connect((function(){this.info("Client ? queueing published message to ?: ?",this._dispatcher.clientId,e,t),this._sendMessage({channel:e,data:t,clientId:this._dispatcher.clientId},n,(function(e){e.successful?r.setDeferredStatus("succeeded"):r.setDeferredStatus("failed",v.parse(e.error))}),this)}),this),r},_sendMessage:function(e,t,n,r){e.id=this._generateMessageId();var i=this._advice.timeout?1.2*this._advice.timeout/1e3:1.2*this._dispatcher.retry;this.pipeThroughExtensions("outgoing",e,null,(function(e){e&&(n&&(this._responseCallbacks[e.id]=[n,r]),this._dispatcher.sendMessage(e,i,t||{}))}),this)},_generateMessageId:function(){return this._messageId+=1,this._messageId>=Math.pow(2,32)&&(this._messageId=0),this._messageId.toString(36)},_receiveMessage:function(e){var t,n=e.id;void 0!==e.successful&&(t=this._responseCallbacks[n],delete this._responseCallbacks[n]),this.pipeThroughExtensions("incoming",e,null,(function(e){e&&(e.advice&&this._handleAdvice(e.advice),this._deliverMessage(e),t&&t[0].call(t[1],e))}),this)},_handleAdvice:function(e){c(this._advice,e),this._dispatcher.timeout=this._advice.timeout/1e3,this._advice.reconnect===this.HANDSHAKE&&this._state!==this.DISCONNECTED&&(this._state=this.UNCONNECTED,this._dispatcher.clientId=null,this._cycleConnection())},_deliverMessage:function(e){e.channel&&void 0!==e.data&&(this.info("Client ? calling listeners for ? with ?",this._dispatcher.clientId,e.channel,e.data),this._channels.distributeMessage(e))},_cycleConnection:function(){this._connectRequest&&(this._connectRequest=null,this.info("Closed connection for ?",this._dispatcher.clientId));var e=this;n.g.setTimeout((function(){e.connect()}),this._advice.interval)}});c(_.prototype,l),c(_.prototype,f),c(_.prototype,h),c(_.prototype,y),e.exports=_},8854:(e,t,n)=>{"use strict";var r=n(8702),i=n(280),s=n(3754),o=n(7088),a=n(8782),c=n(4909),u=n(4713),l=n(6148),h=r({className:"Dispatcher",MAX_REQUEST_SIZE:2048,DEFAULT_RETRY:5,UP:1,DOWN:2,initialize:function(e,t,n){this._client=e,this.endpoint=i.parse(t),this._alternates=n.endpoints||{},this.cookies=s.CookieJar&&new s.CookieJar,this._disabled=[],this._envelopes={},this.headers={},this.retry=n.retry||this.DEFAULT_RETRY,this._scheduler=n.scheduler||l,this._state=0,this.transports={},this.wsExtensions=[],this.proxy=n.proxy||{},"string"==typeof this._proxy&&(this._proxy={origin:this._proxy});var r=n.websocketExtensions;if(r)for(var o=0,a=(r=[].concat(r)).length;o{"use strict";var r=n(8702),i=n(4710),s=r({initialize:function(e,t,n){this.code=e,this.params=Array.prototype.slice.call(t),this.message=n},toString:function(){return this.code+":"+this.params.join(",")+":"+this.message}});s.parse=function(e){if(e=e||"",!i.ERROR.test(e))return new s(null,[],e);var t=e.split(":"),n=parseInt(t[0]),r=t[1].split(",");return e=t[2],new s(n,r,e)};var o={versionMismatch:[300,"Version mismatch"],conntypeMismatch:[301,"Connection types not supported"],extMismatch:[302,"Extension mismatch"],badRequest:[400,"Bad request"],clientUnknown:[401,"Unknown client"],parameterMissing:[402,"Missing required parameter"],channelForbidden:[403,"Forbidden channel"],channelUnknown:[404,"Unknown channel"],channelInvalid:[405,"Invalid channel"],extUnknown:[406,"Unknown extension"],publishFailed:[407,"Failed to publish"],serverError:[500,"Internal server error"]};for(var a in o)!function(e){s[e]=function(){return new s(o[e][0],arguments,o[e][1]).toString()}}(a);e.exports=s},9983:(e,t,n)=>{"use strict";var r={addExtension:function(e){this._extensions=this._extensions||[],this._extensions.push(e),e.added&&e.added(this)},removeExtension:function(e){if(this._extensions)for(var t=this._extensions.length;t--;)this._extensions[t]===e&&(this._extensions.splice(t,1),e.removed&&e.removed(this))},pipeThroughExtensions:function(e,t,n,r,i){if(this.debug("Passing through ? extensions: ?",e,t),!this._extensions)return r.call(i,t);var s=this._extensions.slice(),o=function(t){if(!t)return r.call(i,t);var a=s.shift();if(!a)return r.call(i,t);var c=a[e];if(!c)return o(t);c.length>=3?a[e](t,n,o):a[e](t,o)};o(t)}};n(7088)(r,n(8782)),e.exports=r},4710:e=>{"use strict";e.exports={CHANNEL_NAME:/^\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*$/,CHANNEL_PATTERN:/^(\/(((([a-z]|[A-Z])|[0-9])|(\-|\_|\!|\~|\(|\)|\$|\@)))+)*\/\*{1,2}$/,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])|(\-|\_|\!|\~|\(|\)|\$|\@)| |\/|\*|\.))*)$/,VERSION:/^([0-9])+(\.(([a-z]|[A-Z])|[0-9])(((([a-z]|[A-Z])|[0-9])|\-|\_))*)*$/}},4347:(e,t,n)=>{"use strict";var r=n(8702),i=n(5890);e.exports=r(i)},6148:(e,t,n)=>{"use strict";var r=function(e,t){this.message=e,this.options=t,this.attempts=0};n(7088)(r.prototype,{getTimeout:function(){return this.options.timeout},getInterval:function(){return this.options.interval},isDeliverable:function(){var e=this.options.attempts,t=this.attempts,n=this.options.deadline,r=(new Date).getTime();return!(void 0!==e&&t>=e||void 0!==n&&r>n)},send:function(){this.attempts+=1},succeed:function(){},fail:function(){},abort:function(){}}),e.exports=r},5740:(e,t,n)=>{"use strict";var r=n(8702),i=n(7088),s=n(5890),o=r({initialize:function(e,t,n,r){this._client=e,this._channels=t,this._callback=n,this._context=r,this._cancelled=!1},withChannel:function(e,t){return this._withChannel=[e,t],this},apply:function(e,t){var n=t[0];this._callback&&this._callback.call(this._context,n.data),this._withChannel&&this._withChannel[0].call(this._withChannel[1],n.channel,n.data)},cancel:function(){this._cancelled||(this._client.unsubscribe(this._channels,this),this._cancelled=!0)},unsubscribe:function(){this.cancel()}});i(o.prototype,s),e.exports=o},4713:(e,t,n)=>{"use strict";var r=n(2195);r.register("websocket",n(5182)),r.register("eventsource",n(9591)),r.register("long-polling",n(3611)),r.register("cross-origin-long-polling",n(7045)),r.register("callback-polling",n(7890)),e.exports=r},7045:(e,t,n)=>{"use strict";var r=n(8702),i=n(8172),s=n(280),o=n(7088),a=n(9457),c=o(r(n(2195),{encode:function(e){return"message="+encodeURIComponent(a(e))},request:function(e){var t,r=n.g.XDomainRequest?XDomainRequest:XMLHttpRequest,i=new r,s=++c._id,o=this._dispatcher.headers,a=this;if(i.open("POST",this.endpoint.href,!0),i.withCredentials=!0,i.setRequestHeader)for(t in i.setRequestHeader("Pragma","no-cache"),o)o.hasOwnProperty(t)&&i.setRequestHeader(t,o[t]);var u=function(){if(!i)return!1;c._pending.remove(s),i.onload=i.onerror=i.ontimeout=i.onprogress=null,i=null};return i.onload=function(){var t;try{t=JSON.parse(i.responseText)}catch(e){}u(),t?a._receive(t):a._handleError(e)},i.onerror=i.ontimeout=function(){u(),a._handleError(e)},i.onprogress=function(){},r===n.g.XDomainRequest&&c._pending.add({id:s,xhr:i}),i.send(this.encode(e)),i}}),{_id:0,_pending:new i,isUsable:function(e,t,r,i){if(s.isSameOrigin(t))return r.call(i,!1);if(n.g.XDomainRequest)return r.call(i,t.protocol===location.protocol);if(n.g.XMLHttpRequest){var o=new XMLHttpRequest;return r.call(i,void 0!==o.withCredentials)}return r.call(i,!1)}});e.exports=c},9591:(e,t,n)=>{"use strict";var r=n(8702),i=n(280),s=n(172),o=n(7088),a=n(5890),c=n(2195),u=n(3611),l=o(r(c,{initialize:function(e,t){if(c.prototype.initialize.call(this,e,t),!n.g.EventSource)return this.setDeferredStatus("failed");this._xhr=new u(e,t),(t=s(t)).pathname+="/"+e.clientId;var r=new n.g.EventSource(i.stringify(t)),o=this;r.onopen=function(){o._everConnected=!0,o.setDeferredStatus("succeeded")},r.onerror=function(){o._everConnected?o._handleError([]):(o.setDeferredStatus("failed"),r.close())},r.onmessage=function(e){var t;try{t=JSON.parse(e.data)}catch(e){}t?o._receive(t):o._handleError([])},this._socket=r},close:function(){this._socket&&(this._socket.onopen=this._socket.onerror=this._socket.onmessage=null,this._socket.close(),delete this._socket)},isUsable:function(e,t){this.callback((function(){e.call(t,!0)})),this.errback((function(){e.call(t,!1)}))},encode:function(e){return this._xhr.encode(e)},request:function(e){return this._xhr.request(e)}}),{isUsable:function(e,t,n,r){if(!e.clientId)return n.call(r,!1);u.isUsable(e,t,(function(i){if(!i)return n.call(r,!1);this.create(e,t).isUsable(n,r)}),this)},create:function(e,t){var n=e.transports.eventsource=e.transports.eventsource||{},r=e.clientId,o=s(t);return o.pathname+="/"+(r||""),n[o=i.stringify(o)]=n[o]||new this(e,t),n[o]}});o(l.prototype,a),e.exports=l},7890:(e,t,n)=>{"use strict";var r=n(8702),i=n(280),s=n(172),o=n(7088),a=n(9457),c=o(r(n(2195),{encode:function(e){var t=s(this.endpoint);return t.query.message=a(e),t.query.jsonp="__jsonp"+c._cbCount+"__",i.stringify(t)},request:function(e){var t=document.getElementsByTagName("head")[0],r=document.createElement("script"),o=c.getCallbackName(),u=s(this.endpoint),l=this;u.query.message=a(e),u.query.jsonp=o;var h=function(){if(!n.g[o])return!1;n.g[o]=void 0;try{delete n.g[o]}catch(e){}r.parentNode.removeChild(r)};return n.g[o]=function(e){h(),l._receive(e)},r.type="text/javascript",r.src=i.stringify(u),t.appendChild(r),r.onerror=function(){h(),l._handleError(e)},{abort:h}}}),{_cbCount:0,getCallbackName:function(){return this._cbCount+=1,"__jsonp"+this._cbCount+"__"},isUsable:function(e,t,n,r){n.call(r,!0)}});e.exports=c},2195:(e,t,n)=>{"use strict";var r=n(8702),i=n(3754).Cookie,s=n(4857),o=n(8722),a=n(7088),c=n(8782),u=n(2840),l=n(1762),h=a(r({className:"Transport",DEFAULT_PORTS:{"http:":80,"https:":443,"ws:":80,"wss:":443},MAX_DELAY:0,batching:!0,initialize:function(e,t){this._dispatcher=e,this.endpoint=t,this._outbox=[],this._proxy=a({},this._dispatcher.proxy),this._proxy.origin||(this._proxy.origin=this._findProxy())},close:function(){},encode:function(e){return""},sendMessage:function(e){return this.debug("Client ? sending message to ?: ?",this._dispatcher.clientId,this.endpoint.href,e),this.batching?(this._outbox.push(e),this._flushLargeBatch(),e.channel===l.HANDSHAKE?this._publish(.01):(e.channel===l.CONNECT&&(this._connectMessage=e),this._publish(this.MAX_DELAY))):s.resolve(this.request([e]))},_makePromise:function(){var e=this;this._requestPromise=this._requestPromise||new s((function(t){e._resolvePromise=t}))},_publish:function(e){return this._makePromise(),this.addTimeout("publish",e,(function(){this._flush(),delete this._requestPromise}),this),this._requestPromise},_flush:function(){this.removeTimeout("publish"),this._outbox.length>1&&this._connectMessage&&(this._connectMessage.advice={timeout:0}),this._resolvePromise(this.request(this._outbox)),this._connectMessage=null,this._outbox=[]},_flushLargeBatch:function(){if(!(this.encode(this._outbox).length1&&(n=s[r]),n=n||s["CGI_"+i]):(n=s[r]||s[i])&&!s[r]&&console.warn("The environment variable "+i+" is discouraged. Use "+r+"."),n}}}}),{get:function(e,t,n,r,i){var s=e.endpoint;o.asyncEach(this._transports,(function(s,a){var c=s[0],u=s[1],l=e.endpointFor(c);return o.indexOf(n,c)>=0?a():o.indexOf(t,c)<0?(u.isUsable(e,l,(function(){})),a()):void u.isUsable(e,l,(function(t){if(!t)return a();var n=u.hasOwnProperty("create")?u.create(e,l):new u(e,l);r.call(i,n)}))}),(function(){throw new Error("Could not find a usable connection type for "+s.href)}))},register:function(e,t){this._transports.push([e,t]),t.prototype.connectionType=e},getConnectionTypes:function(){return o.map(this._transports,(function(e){return e[0]}))},disable:function(e){if("autodisconnect"===e)for(var t=0;t{"use strict";var r=n(8702),i=n(4857),s=n(8172),o=n(280),a=n(8375),c=n(172),u=n(7088),l=n(9457),h=n(5003),f=n(5890),d=u(r(n(2195),{UNCONNECTED:1,CONNECTING:2,CONNECTED:3,batching:!1,isUsable:function(e,t){this.callback((function(){e.call(t,!0)})),this.errback((function(){e.call(t,!1)})),this.connect()},request:function(e){this._pending=this._pending||new s;for(var t=0,n=e.length;t{"use strict";var r=n(8702),i=n(280),s=n(8375),o=n(7088),a=n(9457),c=o(r(n(2195),{encode:function(e){return a(e)},request:function(e){var t,r=this.endpoint.href,i=this;if(n.g.XMLHttpRequest)t=new XMLHttpRequest;else{if(!n.g.ActiveXObject)return this._handleError(e);t=new ActiveXObject("Microsoft.XMLHTTP")}t.open("POST",r,!0),t.setRequestHeader("Content-Type","application/json"),t.setRequestHeader("Pragma","no-cache"),t.setRequestHeader("X-Requested-With","XMLHttpRequest");var o=this._dispatcher.headers;for(var a in o)o.hasOwnProperty(a)&&t.setRequestHeader(a,o[a]);var c=function(){t.abort()};return void 0!==n.g.onbeforeunload&&s.Event.on(n.g,"beforeunload",c),t.onreadystatechange=function(){if(t&&4===t.readyState){var r=null,o=t.status,a=t.responseText,u=o>=200&&o<300||304===o||1223===o;if(void 0!==n.g.onbeforeunload&&s.Event.detach(n.g,"beforeunload",c),t.onreadystatechange=function(){},t=null,!u)return i._handleError(e);try{r=JSON.parse(a)}catch(e){}r?i._receive(r):i._handleError(e)}},t.send(this.encode(e)),t}}),{isUsable:function(e,t,n,r){var s="ReactNative"===navigator.product||i.isSameOrigin(t);n.call(r,s)}});e.exports=c},8722:e=>{"use strict";e.exports={commonElement:function(e,t){for(var n=0,r=e.length;n0;)c();a=!1}}()};u()}}},7088:e=>{"use strict";var t=Array.prototype.forEach,n=Object.prototype.hasOwnProperty;e.exports=function(e){return t.call(arguments,(function(t,r){if(0!==r)for(var i in t)n.call(t,i)&&(e[i]=t[i])})),e}},8375:(e,t,n)=>{"use strict";var r={_registry:[],on:function(e,t,n,r){var i=function(){n.call(r)};e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent("on"+t,i),this._registry.push({_element:e,_type:t,_callback:n,_context:r,_handler:i})},detach:function(e,t,n,r){for(var i,s=this._registry.length;s--;)i=this._registry[s],e&&e!==i._element||t&&t!==i._type||n&&n!==i._callback||r&&r!==i._context||(i._element.removeEventListener?i._element.removeEventListener(i._type,i._handler,!1):i._element.detachEvent("on"+i._type,i._handler),this._registry.splice(s,1),i=null)}};void 0!==n.g.onunload&&r.on(n.g,"unload",r.detach,r),e.exports={Event:r}},8702:(e,t,n)=>{"use strict";var r=n(7088);e.exports=function(e,t){"function"!=typeof e&&(t=e,e=Object);var n=function(){return this.initialize&&this.initialize.apply(this,arguments)||this},i=function(){};return i.prototype=e.prototype,n.prototype=new i,r(n.prototype,t),n}},8742:e=>{e.exports={VERSION:"1.4.0",BAYEUX_VERSION:"1.0",ID_LENGTH:160,JSONP_CALLBACK:"jsonpcallback",CONNECTION_TYPES:["long-polling","cross-origin-long-polling","callback-polling","websocket","eventsource","in-process"],MANDATORY_CONNECTION_TYPES:["long-polling","callback-polling","in-process"]}},3754:e=>{"use strict";e.exports={}},172:e=>{"use strict";var t=function(e){var n,r,i;if(e instanceof Array){for(n=[],r=e.length;r--;)n[r]=t(e[r]);return n}if("object"==typeof e){for(i in n=null===e?null:{},e)n[i]=t(e[i]);return n}return e};e.exports=t},2356:e=>{var t="function"==typeof Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};function n(){}e.exports=n,n.prototype.emit=function(e){if("error"===e&&(!this._events||!this._events.error||t(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");if(!this._events)return!1;var n=this._events[e];if(!n)return!1;if("function"==typeof n){switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:var r=Array.prototype.slice.call(arguments,1);n.apply(this,r)}return!0}if(t(n)){r=Array.prototype.slice.call(arguments,1);for(var i=n.slice(),s=0,o=i.length;s{"use strict";var r=n(9272),i=function(e){this._state=-1,this._value=null,this._defer=[],s(this,e)};i.prototype.then=function(e,t){var n=new i,r={promise:n,onFulfilled:e,onRejected:t};return-1===this._state?this._defer.push(r):o(this,r),n},i.prototype.catch=function(e){return this.then(null,e)};var s=function(e,t){if("function"==typeof t){var n=0,r=function(t){0==n++&&l(e,t)};try{t((function(t){0==n++&&a(e,t)}),r)}catch(e){r(e)}}},o=function(e,t){var n=e._state,i=e._value,s=t.promise,o=[t.onFulfilled,t.onRejected][n];if("function"!=typeof o)return(0,[a,l][n])(s,i);r((function(){try{a(s,o(i))}catch(e){l(s,e)}}))},a=function(e,t){if(e===t)return l(e,new TypeError("Recursive promise chain detected"));var n;try{n=c(t)}catch(t){return l(e,t)}if(!n)return u(e,t);s(e,(function(e,r){n.call(t,e,r)}))},c=function(e){var t=typeof e,n=("object"===t||"function"===t)&&e&&e.then;return"function"==typeof n?n:null},u=function(e,t){h(e,0,t)},l=function(e,t){h(e,1,t)},h=function(e,t,n){var r=e._defer,i=0;if(e._state=t,e._value=n,e._defer=null,0!==r.length)for(;i{"use strict";var r=n(8702);e.exports=r({initialize:function(){this._index={}},add:function(e){var t=void 0!==e.id?e.id:e;return!this._index.hasOwnProperty(t)&&(this._index[t]=e,!0)},forEach:function(e,t){for(var n in this._index)this._index.hasOwnProperty(n)&&e.call(t,this._index[n])},isEmpty:function(){for(var e in this._index)if(this._index.hasOwnProperty(e))return!1;return!0},member:function(e){for(var t in this._index)if(this._index[t]===e)return!0;return!1},remove:function(e){var t=void 0!==e.id?e.id:e,n=this._index[t];return delete this._index[t],n},toArray:function(){var e=[];return this.forEach((function(t){e.push(t)})),e}})},9457:e=>{"use strict";e.exports=function(e){return JSON.stringify(e,(function(e,t){return this[e]instanceof Array?this[e]:t}))}},280:e=>{"use strict";e.exports={isURI:function(e){return e&&e.protocol&&e.host&&e.path},isSameOrigin:function(e){return e.protocol===location.protocol&&e.hostname===location.hostname&&e.port===location.port},parse:function(e){if("string"!=typeof e)return e;var t,n,r,i,s,o,a={},c=function(t,n){e=e.replace(n,(function(e){return a[t]=e,""})),a[t]=a[t]||""};for(c("protocol",/^[a-z]+\:/i),c("host",/^\/\/[^\/\?#]+/),/^\//.test(e)||a.host||(e=location.pathname.replace(/[^\/]*$/,"")+e),c("pathname",/^[^\?#]*/),c("search",/^\?[^#]*/),c("hash",/^#.*/),a.protocol=a.protocol||location.protocol,a.host?(a.host=a.host.substr(2),/@/.test(a.host)&&(a.auth=a.host.split("@")[0],a.host=a.host.split("@")[1]),t=a.host.match(/^\[([^\]]+)\]|^[^:]+/),a.hostname=t[1]||t[0],a.port=(a.host.match(/:(\d+)$/)||[])[1]||""):(a.host=location.host,a.hostname=location.hostname,a.port=location.port),a.pathname=a.pathname||"/",a.path=a.pathname+a.search,o={},i=0,s=(r=(n=a.search.replace(/^\?/,""))?n.split("&"):[]).length;i{"use strict";var r=n(8722);e.exports=function(e,t){for(var n in e)if(r.indexOf(t,n)<0)throw new Error("Unrecognized option: "+n)}},5003:(e,t,n)=>{"use strict";var r=n.g.MozWebSocket||n.g.WebSocket;e.exports={create:function(e,t,n){return"function"!=typeof r?null:new r(e)}}},6230:e=>{e.exports="object"==typeof self?self.FormData:window.FormData},6793:()=>{},7496:()=>{},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,s=Object.create(i.prototype),o=new C(r||[]);return s._invoke=function(e,t,n){var r=h;return function(i,s){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw s;return j()}for(n.method=i,n.arg=s;;){var o=n.delegate;if(o){var a=O(o,n);if(a){if(a===v)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var c=l(e,t,n);if("normal"===c.type){if(r=n.done?p:f,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=p,n.method="throw",n.arg=c.arg)}}}(e,n,o),s}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",v={};function y(){}function g(){}function m(){}var _={};_[s]=function(){return this};var b=Object.getPrototypeOf,w=b&&b(b(A([])));w&&w!==n&&r.call(w,s)&&(_=w);var k=m.prototype=y.prototype=Object.create(_);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(i,s,o,a){var c=l(e[i],e,s);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,o,a)}),(function(e){n("throw",e,o,a)})):t.resolve(h).then((function(e){u.value=e,o(u)}),(function(e){return n("throw",e,o,a)}))}a(c.arg)}var i;this._invoke=function(e,r){function s(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(s,s):s()}}function O(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,O(e,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=l(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var s=i.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,v):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function A(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function n(){for(;++i=0;--s){var o=this.tryEntries[s],a=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=r.call(o,"catchLoc"),u=r.call(o,"finallyLoc");if(c&&u){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),v}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},306:e=>{"use strict";e.exports=JSON.parse('{"author":{"name":"Thierry Schellenbach","company":"Stream.io Inc"},"name":"getstream","description":"The official low-level GetStream.io client for Node.js and the browser.","main":"./lib/index.js","module":"./lib/index.js","types":"./lib/index.d.ts","homepage":"https://getstream.io/docs/?language=js","email":"support@getstream.io","license":"BSD-3-Clause","version":"7.2.2","scripts":{"transpile":"babel src --out-dir lib --extensions \'.ts\'","types":"tsc --emitDeclarationOnly","build":"rm -rf lib && yarn run transpile && yarn run types","dist":"webpack && webpack --env minify","eslint":"eslint \'**/*.{js,ts}\' --max-warnings 0","prettier":"prettier --list-different \'**/*.{js,ts}\'","lint":"yarn run prettier && yarn run eslint","lint-fix":"prettier --write \'**/*.{js,ts}\' && eslint --fix \'**/*.{js,ts}\'","test":"yarn run test-unit-node","test-types":"tsc --esModuleInterop true --noEmit true test/typescript/*.ts","test-unit-node":"mocha --require ./babel-register.js test/unit/common test/unit/node","test-integration-node":"mocha --require ./babel-register.js test/integration/common test/integration/node --exit","test-cloud":"mocha --require ./babel-register.js test/integration/cloud --timeout 40000","test-cloud-local":"LOCAL=true mocha --require ./babel-register.js test/integration/cloud --timeout 40000 --ignore \'test/integration/cloud/{personalized_feed,files,images}.js\'","test-browser":"karma start karma.config.js","coverage":"nyc yarn run test-unit-node && nyc report --reporter=text-lcov | codecov --pipe","prepare":"yarn run build","preversion":"yarn run test-unit-node","version":"yarn run dist && yarn run build && git add dist","postversion":"git push && git push --tags && npm publish"},"husky":{"hooks":{"pre-commit":"yarn run lint"}},"browser":{"crypto":false,"jsonwebtoken":false,"./lib/batch_operations.js":false,"./lib/redirect_url.js":false,"qs":false,"url":false,"http":false,"https":false},"react-native":{"crypto":false,"jsonwebtoken":false,"./lib/batch_operations.js":false,"./lib/redirect_url.js":false,"qs":false,"url":false},"devDependencies":{"@babel/cli":"^7.13.10","@babel/core":"^7.13.10","@babel/node":"^7.13.10","@babel/plugin-proposal-class-properties":"^7.13.0","@babel/plugin-proposal-object-rest-spread":"^7.13.8","@babel/plugin-transform-object-assign":"^7.12.13","@babel/plugin-transform-runtime":"^7.13.10","@babel/preset-env":"^7.13.10","@babel/preset-typescript":"^7.13.0","@babel/register":"^7.13.8","@typescript-eslint/eslint-plugin":"^4.17.0","@typescript-eslint/parser":"^4.17.0","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","chai":"^4.3.3","codecov":"^3.8.1","dotenv":"^8.2.0","eslint":"^7.21.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-prettier":"^8.1.0","eslint-plugin-chai-friendly":"^0.6.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.1","eslint-plugin-sonarjs":"^0.6.0","eslint-plugin-typescript-sort-keys":"^1.5.0","expect.js":"^0.3.1","husky":"^4.3.8","json-loader":"~0.5.7","karma":"^6.1.2","karma-chrome-launcher":"^3.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"~2.2.5","karma-sauce-launcher":"^4.3.5","karma-sourcemap-loader":"~0.3.8","karma-webpack":"^5.0.0","mocha":"^8.3.1","null-loader":"^4.0.1","nyc":"^15.1.0","prettier":"^2.2.1","request":"^2.88.2","testdouble":"^3.16.1","typescript":"^4.2.3","webpack":"^5.24.4","webpack-cli":"^4.5.0"},"dependencies":{"@babel/runtime":"^7.13.10","@types/jsonwebtoken":"^8.5.0","@types/jwt-decode":"^2.2.1","@types/qs":"^6.9.6","axios":"^0.21.1","faye":"^1.4.0","form-data":"^4.0.0","jsonwebtoken":"^8.5.1","jwt-decode":"^3.1.2","qs":"^6.9.6"},"peerDependencies":{"@types/node":">=10"},"repository":{"type":"git","url":"git://github.com/GetStream/stream-js.git"},"files":["src","dist","types","lib"],"engines":{"node":"10 || 12 || >=14"},"keywords":["stream","get","get-stream","chat","notification","feed","stream.io","getstream"]}')},8618:()=>{},120:()=>{},1420:()=>{}},t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{connect:()=>e.$,StreamClient:()=>t.n,CollectionEntry:()=>i.R,Collections:()=>i.n,StreamFeed:()=>s.r,StreamFileStore:()=>o.h,StreamImageStore:()=>a.$,Personalization:()=>c.S,StreamReaction:()=>u.R,StreamUser:()=>l.h,FeedError:()=>d.IY,MissingSchemaError:()=>d.uA,SiteError:()=>d.z4,StreamApiError:()=>d.eY,JWTScopeToken:()=>p.v,JWTUserSessionToken:()=>p.c});var e=n(2631),t=n(6663),i=n(3709),s=n(7248),o=n(448),a=n(407),c=n(8039),u=n(8824),l=n(7878),h=n(6793),f={};for(const e in h)["default","connect","StreamClient","CollectionEntry","Collections","StreamFeed","StreamFileStore","StreamImageStore","Personalization","StreamReaction","StreamUser"].indexOf(e)<0&&(f[e]=()=>h[e]);n.d(r,f);var d=n(1964),p=n(6685)})(),r})()})); \ No newline at end of file diff --git a/package.json b/package.json index 1c3499f6..b120b00a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "homepage": "https://getstream.io/docs/?language=js", "email": "support@getstream.io", "license": "BSD-3-Clause", - "version": "7.2.1", + "version": "7.2.2", "scripts": { "transpile": "babel src --out-dir lib --extensions '.ts'", "types": "tsc --emitDeclarationOnly",