@serptech/api 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,7 +36,7 @@ eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\
36
36
  /***/ "./packages/serp-websocket/dist/index.web.js":
37
37
  /***/ (function(module) {
38
38
 
39
- eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_545__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_545__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_545__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_545__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__nested_webpack_require_545__.d = function(exports, name, getter) {\n/******/ \t\tif(!__nested_webpack_require_545__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_545__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__nested_webpack_require_545__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __nested_webpack_require_545__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__nested_webpack_require_545__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_545__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__nested_webpack_require_545__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__nested_webpack_require_545__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__nested_webpack_require_545__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_545__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_545__(__nested_webpack_require_545__.s = \"./src/index.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/events/events.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n\\n\\nvar R = typeof Reflect === 'object' ? Reflect : null\\nvar ReflectApply = R && typeof R.apply === 'function'\\n ? R.apply\\n : function ReflectApply(target, receiver, args) {\\n return Function.prototype.apply.call(target, receiver, args);\\n }\\n\\nvar ReflectOwnKeys\\nif (R && typeof R.ownKeys === 'function') {\\n ReflectOwnKeys = R.ownKeys\\n} else if (Object.getOwnPropertySymbols) {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target)\\n .concat(Object.getOwnPropertySymbols(target));\\n };\\n} else {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target);\\n };\\n}\\n\\nfunction ProcessEmitWarning(warning) {\\n if (console && console.warn) console.warn(warning);\\n}\\n\\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\\n return value !== value;\\n}\\n\\nfunction EventEmitter() {\\n EventEmitter.init.call(this);\\n}\\nmodule.exports = EventEmitter;\\nmodule.exports.once = once;\\n\\n// Backwards-compat with node 0.10.x\\nEventEmitter.EventEmitter = EventEmitter;\\n\\nEventEmitter.prototype._events = undefined;\\nEventEmitter.prototype._eventsCount = 0;\\nEventEmitter.prototype._maxListeners = undefined;\\n\\n// By default EventEmitters will print a warning if more than 10 listeners are\\n// added to it. This is a useful default which helps finding memory leaks.\\nvar defaultMaxListeners = 10;\\n\\nfunction checkListener(listener) {\\n if (typeof listener !== 'function') {\\n throw new TypeError('The \\\"listener\\\" argument must be of type Function. Received type ' + typeof listener);\\n }\\n}\\n\\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\\n enumerable: true,\\n get: function() {\\n return defaultMaxListeners;\\n },\\n set: function(arg) {\\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\\n throw new RangeError('The value of \\\"defaultMaxListeners\\\" is out of range. It must be a non-negative number. Received ' + arg + '.');\\n }\\n defaultMaxListeners = arg;\\n }\\n});\\n\\nEventEmitter.init = function() {\\n\\n if (this._events === undefined ||\\n this._events === Object.getPrototypeOf(this)._events) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n }\\n\\n this._maxListeners = this._maxListeners || undefined;\\n};\\n\\n// Obviously not all Emitters should be limited to 10. This function allows\\n// that to be increased. Set to zero for unlimited.\\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\\n throw new RangeError('The value of \\\"n\\\" is out of range. It must be a non-negative number. Received ' + n + '.');\\n }\\n this._maxListeners = n;\\n return this;\\n};\\n\\nfunction _getMaxListeners(that) {\\n if (that._maxListeners === undefined)\\n return EventEmitter.defaultMaxListeners;\\n return that._maxListeners;\\n}\\n\\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\\n return _getMaxListeners(this);\\n};\\n\\nEventEmitter.prototype.emit = function emit(type) {\\n var args = [];\\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\\n var doError = (type === 'error');\\n\\n var events = this._events;\\n if (events !== undefined)\\n doError = (doError && events.error === undefined);\\n else if (!doError)\\n return false;\\n\\n // If there is no 'error' event listener then throw.\\n if (doError) {\\n var er;\\n if (args.length > 0)\\n er = args[0];\\n if (er instanceof Error) {\\n // Note: The comments on the `throw` lines are intentional, they show\\n // up in Node's output if this results in an unhandled exception.\\n throw er; // Unhandled 'error' event\\n }\\n // At least give some kind of context to the user\\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\\n err.context = er;\\n throw err; // Unhandled 'error' event\\n }\\n\\n var handler = events[type];\\n\\n if (handler === undefined)\\n return false;\\n\\n if (typeof handler === 'function') {\\n ReflectApply(handler, this, args);\\n } else {\\n var len = handler.length;\\n var listeners = arrayClone(handler, len);\\n for (var i = 0; i < len; ++i)\\n ReflectApply(listeners[i], this, args);\\n }\\n\\n return true;\\n};\\n\\nfunction _addListener(target, type, listener, prepend) {\\n var m;\\n var events;\\n var existing;\\n\\n checkListener(listener);\\n\\n events = target._events;\\n if (events === undefined) {\\n events = target._events = Object.create(null);\\n target._eventsCount = 0;\\n } else {\\n // To avoid recursion in the case that type === \\\"newListener\\\"! Before\\n // adding it to the listeners, first emit \\\"newListener\\\".\\n if (events.newListener !== undefined) {\\n target.emit('newListener', type,\\n listener.listener ? listener.listener : listener);\\n\\n // Re-assign `events` because a newListener handler could have caused the\\n // this._events to be assigned to a new object\\n events = target._events;\\n }\\n existing = events[type];\\n }\\n\\n if (existing === undefined) {\\n // Optimize the case of one listener. Don't need the extra array object.\\n existing = events[type] = listener;\\n ++target._eventsCount;\\n } else {\\n if (typeof existing === 'function') {\\n // Adding the second element, need to change to array.\\n existing = events[type] =\\n prepend ? [listener, existing] : [existing, listener];\\n // If we've already got an array, just append.\\n } else if (prepend) {\\n existing.unshift(listener);\\n } else {\\n existing.push(listener);\\n }\\n\\n // Check for listener leak\\n m = _getMaxListeners(target);\\n if (m > 0 && existing.length > m && !existing.warned) {\\n existing.warned = true;\\n // No error code for this since it is a Warning\\n // eslint-disable-next-line no-restricted-syntax\\n var w = new Error('Possible EventEmitter memory leak detected. ' +\\n existing.length + ' ' + String(type) + ' listeners ' +\\n 'added. Use emitter.setMaxListeners() to ' +\\n 'increase limit');\\n w.name = 'MaxListenersExceededWarning';\\n w.emitter = target;\\n w.type = type;\\n w.count = existing.length;\\n ProcessEmitWarning(w);\\n }\\n }\\n\\n return target;\\n}\\n\\nEventEmitter.prototype.addListener = function addListener(type, listener) {\\n return _addListener(this, type, listener, false);\\n};\\n\\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\\n\\nEventEmitter.prototype.prependListener =\\n function prependListener(type, listener) {\\n return _addListener(this, type, listener, true);\\n };\\n\\nfunction onceWrapper() {\\n if (!this.fired) {\\n this.target.removeListener(this.type, this.wrapFn);\\n this.fired = true;\\n if (arguments.length === 0)\\n return this.listener.call(this.target);\\n return this.listener.apply(this.target, arguments);\\n }\\n}\\n\\nfunction _onceWrap(target, type, listener) {\\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\\n var wrapped = onceWrapper.bind(state);\\n wrapped.listener = listener;\\n state.wrapFn = wrapped;\\n return wrapped;\\n}\\n\\nEventEmitter.prototype.once = function once(type, listener) {\\n checkListener(listener);\\n this.on(type, _onceWrap(this, type, listener));\\n return this;\\n};\\n\\nEventEmitter.prototype.prependOnceListener =\\n function prependOnceListener(type, listener) {\\n checkListener(listener);\\n this.prependListener(type, _onceWrap(this, type, listener));\\n return this;\\n };\\n\\n// Emits a 'removeListener' event if and only if the listener was removed.\\nEventEmitter.prototype.removeListener =\\n function removeListener(type, listener) {\\n var list, events, position, i, originalListener;\\n\\n checkListener(listener);\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n list = events[type];\\n if (list === undefined)\\n return this;\\n\\n if (list === listener || list.listener === listener) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else {\\n delete events[type];\\n if (events.removeListener)\\n this.emit('removeListener', type, list.listener || listener);\\n }\\n } else if (typeof list !== 'function') {\\n position = -1;\\n\\n for (i = list.length - 1; i >= 0; i--) {\\n if (list[i] === listener || list[i].listener === listener) {\\n originalListener = list[i].listener;\\n position = i;\\n break;\\n }\\n }\\n\\n if (position < 0)\\n return this;\\n\\n if (position === 0)\\n list.shift();\\n else {\\n spliceOne(list, position);\\n }\\n\\n if (list.length === 1)\\n events[type] = list[0];\\n\\n if (events.removeListener !== undefined)\\n this.emit('removeListener', type, originalListener || listener);\\n }\\n\\n return this;\\n };\\n\\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\\n\\nEventEmitter.prototype.removeAllListeners =\\n function removeAllListeners(type) {\\n var listeners, events, i;\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n // not listening for removeListener, no need to emit\\n if (events.removeListener === undefined) {\\n if (arguments.length === 0) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n } else if (events[type] !== undefined) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else\\n delete events[type];\\n }\\n return this;\\n }\\n\\n // emit removeListener for all listeners on all events\\n if (arguments.length === 0) {\\n var keys = Object.keys(events);\\n var key;\\n for (i = 0; i < keys.length; ++i) {\\n key = keys[i];\\n if (key === 'removeListener') continue;\\n this.removeAllListeners(key);\\n }\\n this.removeAllListeners('removeListener');\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n return this;\\n }\\n\\n listeners = events[type];\\n\\n if (typeof listeners === 'function') {\\n this.removeListener(type, listeners);\\n } else if (listeners !== undefined) {\\n // LIFO order\\n for (i = listeners.length - 1; i >= 0; i--) {\\n this.removeListener(type, listeners[i]);\\n }\\n }\\n\\n return this;\\n };\\n\\nfunction _listeners(target, type, unwrap) {\\n var events = target._events;\\n\\n if (events === undefined)\\n return [];\\n\\n var evlistener = events[type];\\n if (evlistener === undefined)\\n return [];\\n\\n if (typeof evlistener === 'function')\\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\\n\\n return unwrap ?\\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\\n}\\n\\nEventEmitter.prototype.listeners = function listeners(type) {\\n return _listeners(this, type, true);\\n};\\n\\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\\n return _listeners(this, type, false);\\n};\\n\\nEventEmitter.listenerCount = function(emitter, type) {\\n if (typeof emitter.listenerCount === 'function') {\\n return emitter.listenerCount(type);\\n } else {\\n return listenerCount.call(emitter, type);\\n }\\n};\\n\\nEventEmitter.prototype.listenerCount = listenerCount;\\nfunction listenerCount(type) {\\n var events = this._events;\\n\\n if (events !== undefined) {\\n var evlistener = events[type];\\n\\n if (typeof evlistener === 'function') {\\n return 1;\\n } else if (evlistener !== undefined) {\\n return evlistener.length;\\n }\\n }\\n\\n return 0;\\n}\\n\\nEventEmitter.prototype.eventNames = function eventNames() {\\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\\n};\\n\\nfunction arrayClone(arr, n) {\\n var copy = new Array(n);\\n for (var i = 0; i < n; ++i)\\n copy[i] = arr[i];\\n return copy;\\n}\\n\\nfunction spliceOne(list, index) {\\n for (; index + 1 < list.length; index++)\\n list[index] = list[index + 1];\\n list.pop();\\n}\\n\\nfunction unwrapListeners(arr) {\\n var ret = new Array(arr.length);\\n for (var i = 0; i < ret.length; ++i) {\\n ret[i] = arr[i].listener || arr[i];\\n }\\n return ret;\\n}\\n\\nfunction once(emitter, name) {\\n return new Promise(function (resolve, reject) {\\n function errorListener(err) {\\n emitter.removeListener(name, resolver);\\n reject(err);\\n }\\n\\n function resolver() {\\n if (typeof emitter.removeListener === 'function') {\\n emitter.removeListener('error', errorListener);\\n }\\n resolve([].slice.call(arguments));\\n };\\n\\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\\n if (name !== 'error') {\\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\\n }\\n });\\n}\\n\\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\\n if (typeof emitter.on === 'function') {\\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\\n }\\n}\\n\\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\\n if (typeof emitter.on === 'function') {\\n if (flags.once) {\\n emitter.once(name, listener);\\n } else {\\n emitter.on(name, listener);\\n }\\n } else if (typeof emitter.addEventListener === 'function') {\\n // EventTarget does not have `error` event semantics like Node\\n // EventEmitters, we do not listen for `error` events here.\\n emitter.addEventListener(name, function wrapListener(arg) {\\n // IE does not have builtin `{ once: true }` support so we\\n // have to do it manually.\\n if (flags.once) {\\n emitter.removeEventListener(name, wrapListener);\\n }\\n listener(arg);\\n });\\n } else {\\n throw new TypeError('The \\\"emitter\\\" argument must be of type EventEmitter. Received type ' + typeof emitter);\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/events/events.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/isomorphic-ws/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\\n\\nvar ws = null\\n\\nif (typeof WebSocket !== 'undefined') {\\n ws = WebSocket\\n} else if (typeof MozWebSocket !== 'undefined') {\\n ws = MozWebSocket\\n} else if (typeof global !== 'undefined') {\\n ws = global.WebSocket || global.MozWebSocket\\n} else if (typeof window !== 'undefined') {\\n ws = window.WebSocket || window.MozWebSocket\\n} else if (typeof self !== 'undefined') {\\n ws = self.WebSocket || self.MozWebSocket\\n}\\n\\nmodule.exports = ws\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/isomorphic-ws/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/lodash.debounce/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {/**\\n * lodash (Custom Build) <https://lodash.com/>\\n * Build: `lodash modularize exports=\\\"npm\\\" -o ./`\\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\\n * Released under MIT license <https://lodash.com/license>\\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\\n */\\n\\n/** Used as the `TypeError` message for \\\"Functions\\\" methods. */\\nvar FUNC_ERROR_TEXT = 'Expected a function';\\n\\n/** Used as references for various `Number` constants. */\\nvar NAN = 0 / 0;\\n\\n/** `Object#toString` result references. */\\nvar symbolTag = '[object Symbol]';\\n\\n/** Used to match leading and trailing whitespace. */\\nvar reTrim = /^\\\\s+|\\\\s+$/g;\\n\\n/** Used to detect bad signed hexadecimal string values. */\\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\\n\\n/** Used to detect binary string values. */\\nvar reIsBinary = /^0b[01]+$/i;\\n\\n/** Used to detect octal string values. */\\nvar reIsOctal = /^0o[0-7]+$/i;\\n\\n/** Built-in method references without a dependency on `root`. */\\nvar freeParseInt = parseInt;\\n\\n/** Detect free variable `global` from Node.js. */\\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\\n\\n/** Detect free variable `self`. */\\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\\n\\n/** Used as a reference to the global object. */\\nvar root = freeGlobal || freeSelf || Function('return this')();\\n\\n/** Used for built-in method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the\\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objectToString = objectProto.toString;\\n\\n/* Built-in method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max,\\n nativeMin = Math.min;\\n\\n/**\\n * Gets the timestamp of the number of milliseconds that have elapsed since\\n * the Unix epoch (1 January 1970 00:00:00 UTC).\\n *\\n * @static\\n * @memberOf _\\n * @since 2.4.0\\n * @category Date\\n * @returns {number} Returns the timestamp.\\n * @example\\n *\\n * _.defer(function(stamp) {\\n * console.log(_.now() - stamp);\\n * }, _.now());\\n * // => Logs the number of milliseconds it took for the deferred invocation.\\n */\\nvar now = function() {\\n return root.Date.now();\\n};\\n\\n/**\\n * Creates a debounced function that delays invoking `func` until after `wait`\\n * milliseconds have elapsed since the last time the debounced function was\\n * invoked. The debounced function comes with a `cancel` method to cancel\\n * delayed `func` invocations and a `flush` method to immediately invoke them.\\n * Provide `options` to indicate whether `func` should be invoked on the\\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\\n * with the last arguments provided to the debounced function. Subsequent\\n * calls to the debounced function return the result of the last `func`\\n * invocation.\\n *\\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\\n * invoked on the trailing edge of the timeout only if the debounced function\\n * is invoked more than once during the `wait` timeout.\\n *\\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\\n *\\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\\n * for details over the differences between `_.debounce` and `_.throttle`.\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Function\\n * @param {Function} func The function to debounce.\\n * @param {number} [wait=0] The number of milliseconds to delay.\\n * @param {Object} [options={}] The options object.\\n * @param {boolean} [options.leading=false]\\n * Specify invoking on the leading edge of the timeout.\\n * @param {number} [options.maxWait]\\n * The maximum time `func` is allowed to be delayed before it's invoked.\\n * @param {boolean} [options.trailing=true]\\n * Specify invoking on the trailing edge of the timeout.\\n * @returns {Function} Returns the new debounced function.\\n * @example\\n *\\n * // Avoid costly calculations while the window size is in flux.\\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\\n *\\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\\n * 'leading': true,\\n * 'trailing': false\\n * }));\\n *\\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\\n * var source = new EventSource('/stream');\\n * jQuery(source).on('message', debounced);\\n *\\n * // Cancel the trailing debounced invocation.\\n * jQuery(window).on('popstate', debounced.cancel);\\n */\\nfunction debounce(func, wait, options) {\\n var lastArgs,\\n lastThis,\\n maxWait,\\n result,\\n timerId,\\n lastCallTime,\\n lastInvokeTime = 0,\\n leading = false,\\n maxing = false,\\n trailing = true;\\n\\n if (typeof func != 'function') {\\n throw new TypeError(FUNC_ERROR_TEXT);\\n }\\n wait = toNumber(wait) || 0;\\n if (isObject(options)) {\\n leading = !!options.leading;\\n maxing = 'maxWait' in options;\\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\\n trailing = 'trailing' in options ? !!options.trailing : trailing;\\n }\\n\\n function invokeFunc(time) {\\n var args = lastArgs,\\n thisArg = lastThis;\\n\\n lastArgs = lastThis = undefined;\\n lastInvokeTime = time;\\n result = func.apply(thisArg, args);\\n return result;\\n }\\n\\n function leadingEdge(time) {\\n // Reset any `maxWait` timer.\\n lastInvokeTime = time;\\n // Start the timer for the trailing edge.\\n timerId = setTimeout(timerExpired, wait);\\n // Invoke the leading edge.\\n return leading ? invokeFunc(time) : result;\\n }\\n\\n function remainingWait(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime,\\n result = wait - timeSinceLastCall;\\n\\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\\n }\\n\\n function shouldInvoke(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime;\\n\\n // Either this is the first call, activity has stopped and we're at the\\n // trailing edge, the system time has gone backwards and we're treating\\n // it as the trailing edge, or we've hit the `maxWait` limit.\\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\\n }\\n\\n function timerExpired() {\\n var time = now();\\n if (shouldInvoke(time)) {\\n return trailingEdge(time);\\n }\\n // Restart the timer.\\n timerId = setTimeout(timerExpired, remainingWait(time));\\n }\\n\\n function trailingEdge(time) {\\n timerId = undefined;\\n\\n // Only invoke if we have `lastArgs` which means `func` has been\\n // debounced at least once.\\n if (trailing && lastArgs) {\\n return invokeFunc(time);\\n }\\n lastArgs = lastThis = undefined;\\n return result;\\n }\\n\\n function cancel() {\\n if (timerId !== undefined) {\\n clearTimeout(timerId);\\n }\\n lastInvokeTime = 0;\\n lastArgs = lastCallTime = lastThis = timerId = undefined;\\n }\\n\\n function flush() {\\n return timerId === undefined ? result : trailingEdge(now());\\n }\\n\\n function debounced() {\\n var time = now(),\\n isInvoking = shouldInvoke(time);\\n\\n lastArgs = arguments;\\n lastThis = this;\\n lastCallTime = time;\\n\\n if (isInvoking) {\\n if (timerId === undefined) {\\n return leadingEdge(lastCallTime);\\n }\\n if (maxing) {\\n // Handle invocations in a tight loop.\\n timerId = setTimeout(timerExpired, wait);\\n return invokeFunc(lastCallTime);\\n }\\n }\\n if (timerId === undefined) {\\n timerId = setTimeout(timerExpired, wait);\\n }\\n return result;\\n }\\n debounced.cancel = cancel;\\n debounced.flush = flush;\\n return debounced;\\n}\\n\\n/**\\n * Checks if `value` is the\\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(_.noop);\\n * // => true\\n *\\n * _.isObject(null);\\n * // => false\\n */\\nfunction isObject(value) {\\n var type = typeof value;\\n return !!value && (type == 'object' || type == 'function');\\n}\\n\\n/**\\n * Checks if `value` is object-like. A value is object-like if it's not `null`\\n * and has a `typeof` result of \\\"object\\\".\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n * @example\\n *\\n * _.isObjectLike({});\\n * // => true\\n *\\n * _.isObjectLike([1, 2, 3]);\\n * // => true\\n *\\n * _.isObjectLike(_.noop);\\n * // => false\\n *\\n * _.isObjectLike(null);\\n * // => false\\n */\\nfunction isObjectLike(value) {\\n return !!value && typeof value == 'object';\\n}\\n\\n/**\\n * Checks if `value` is classified as a `Symbol` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\\n * @example\\n *\\n * _.isSymbol(Symbol.iterator);\\n * // => true\\n *\\n * _.isSymbol('abc');\\n * // => false\\n */\\nfunction isSymbol(value) {\\n return typeof value == 'symbol' ||\\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\\n}\\n\\n/**\\n * Converts `value` to a number.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to process.\\n * @returns {number} Returns the number.\\n * @example\\n *\\n * _.toNumber(3.2);\\n * // => 3.2\\n *\\n * _.toNumber(Number.MIN_VALUE);\\n * // => 5e-324\\n *\\n * _.toNumber(Infinity);\\n * // => Infinity\\n *\\n * _.toNumber('3.2');\\n * // => 3.2\\n */\\nfunction toNumber(value) {\\n if (typeof value == 'number') {\\n return value;\\n }\\n if (isSymbol(value)) {\\n return NAN;\\n }\\n if (isObject(value)) {\\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\\n value = isObject(other) ? (other + '') : other;\\n }\\n if (typeof value != 'string') {\\n return value === 0 ? value : +value;\\n }\\n value = value.replace(reTrim, '');\\n var isBinary = reIsBinary.test(value);\\n return (isBinary || reIsOctal.test(value))\\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\\n : (reIsBadHex.test(value) ? NAN : +value);\\n}\\n\\nmodule.exports = debounce;\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/lodash.debounce/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/***/ (function(module, exports) {\n\neval(\"var g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n//# sourceURL=webpack://SerpWS/(webpack)/buildin/global.js?\");\n\n/***/ }),\n\n/***/ \"./src/constants/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiEndpoints\\\", function() { return apiEndpoints; });\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiVersions\\\", function() { return apiVersions; });\\nconst apiVersions = [1];\\nconst apiEndpoints = {\\n v1: \\\"wss://events.serptech.ru/\\\"\\n};\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"createSerpWsApi\\\", function() { return createSerpWsApi; });\\n/* harmony import */ var _v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./src/v1/index.ts\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./src/constants/index.ts\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\\\"./node_modules/isomorphic-ws/browser.js\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__);\\n\\n\\n\\nfunction createSerpWsApi(settings = {}) {\\n const {\\n token,\\n version,\\n endpoint\\n } = settings;\\n if (!version) {\\n throw new Error(`You did not specify Serp API version.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n const numVersion = Number(version);\\n if (!_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].includes(numVersion)) {\\n throw new Error(`You have specified a non-existent version of Serp API: ${version}.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n switch (numVersion) {\\n case 1:\\n return new _v1__WEBPACK_IMPORTED_MODULE_0__[\\\"SerpWsApiV1\\\"]({\\n SocketClient: isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default.a,\\n token,\\n endpoint,\\n apiEndpoints: _constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiEndpoints\\\"]\\n });\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/v1/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"SerpWsApiV1\\\", function() { return SerpWsApiV1; });\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./node_modules/events/events.js\\\");\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./node_modules/lodash.debounce/index.js\\\");\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \\\"string\\\"); return \\\"symbol\\\" == typeof i ? i : i + \\\"\\\"; }\\nfunction _toPrimitive(t, r) { if (\\\"object\\\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \\\"default\\\"); if (\\\"object\\\" != typeof i) return i; throw new TypeError(\\\"@@toPrimitive must return a primitive value.\\\"); } return (\\\"string\\\" === r ? String : Number)(t); }\\n\\n\\nclass SerpWsApiV1 extends events__WEBPACK_IMPORTED_MODULE_0___default.a {\\n constructor({\\n token,\\n SocketClient,\\n apiEndpoints,\\n endpoint\\n }) {\\n super();\\n _defineProperty(this, \\\"SocketClient\\\", void 0);\\n _defineProperty(this, \\\"socket\\\", void 0);\\n _defineProperty(this, \\\"isSocketOpen\\\", false);\\n _defineProperty(this, \\\"token\\\", void 0);\\n _defineProperty(this, \\\"endpoint\\\", void 0);\\n _defineProperty(this, \\\"reconnectTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingBackOffDelay\\\", 1000);\\n _defineProperty(this, \\\"reconnectTime\\\", 30000);\\n this.token = token;\\n this.endpoint = endpoint || apiEndpoints.v1;\\n this.SocketClient = SocketClient;\\n }\\n heartbeat() {\\n if (!this.socket) return;\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.socket.send(JSON.stringify({\\n action: \\\"PING\\\"\\n }));\\n\\n /**\\r\\n * Если ответа нет в течение this.pingBackOffDelay\\r\\n * шлём еще один запрос и так до достижения this.reconnectTime\\r\\n */\\n this.pingTimeout = setTimeout(() => {\\n this.heartbeat();\\n this.pingBackOffDelay = this.pingBackOffDelay * 2;\\n }, this.pingBackOffDelay);\\n this.reconnectTimeout = setTimeout(() => {\\n this.disconnect();\\n this.connect();\\n }, this.reconnectTime);\\n }\\n debouncedHeartbeat() {\\n return lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(this.heartbeat, 5000);\\n }\\n resetPing() {\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.pingBackOffDelay = 1000;\\n }\\n setToken(token) {\\n this.token = token;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n setEndpoint(endpoint) {\\n this.endpoint = endpoint;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n connect() {\\n this.socket = new this.SocketClient(this.endpoint);\\n this.socket.onopen = () => {\\n if (!this.socket) return;\\n this.isSocketOpen = true;\\n this.resetPing();\\n this.socket.send(JSON.stringify({\\n action: \\\"AUTH\\\",\\n data: {\\n token: this.token\\n }\\n }));\\n this.socket.onmessage = ({\\n data\\n } = {\\n data: \\\"\\\"\\n }) => {\\n try {\\n const parsedData = JSON.parse(data);\\n if (parsedData.auth === \\\"ok\\\") {\\n this.debouncedHeartbeat();\\n return;\\n }\\n if (parsedData.PING) {\\n this.resetPing();\\n this.debouncedHeartbeat();\\n return;\\n }\\n this.emit(\\\"message\\\", parsedData);\\n } catch (error) {\\n this.emit(\\\"error\\\", error);\\n }\\n };\\n this.socket.onclose = data => {\\n this.resetPing();\\n this.emit(\\\"disconnect\\\", data);\\n this.isSocketOpen = false;\\n };\\n this.emit(\\\"connect\\\");\\n };\\n }\\n disconnect() {\\n if (this.socket) {\\n this.socket.close();\\n }\\n }\\n terminate() {\\n if (this.socket) {\\n this.socket.terminate();\\n }\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/v1/index.ts?\");\n\n/***/ })\n\n/******/ });\n});\n\n//# sourceURL=webpack://SerpApi/./packages/serp-websocket/dist/index.web.js?");
39
+ eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_545__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_545__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_545__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_545__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__nested_webpack_require_545__.d = function(exports, name, getter) {\n/******/ \t\tif(!__nested_webpack_require_545__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_545__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__nested_webpack_require_545__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __nested_webpack_require_545__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__nested_webpack_require_545__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_545__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__nested_webpack_require_545__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__nested_webpack_require_545__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__nested_webpack_require_545__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_545__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_545__(__nested_webpack_require_545__.s = \"./src/index.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/events/events.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n\\n\\nvar R = typeof Reflect === 'object' ? Reflect : null\\nvar ReflectApply = R && typeof R.apply === 'function'\\n ? R.apply\\n : function ReflectApply(target, receiver, args) {\\n return Function.prototype.apply.call(target, receiver, args);\\n }\\n\\nvar ReflectOwnKeys\\nif (R && typeof R.ownKeys === 'function') {\\n ReflectOwnKeys = R.ownKeys\\n} else if (Object.getOwnPropertySymbols) {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target)\\n .concat(Object.getOwnPropertySymbols(target));\\n };\\n} else {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target);\\n };\\n}\\n\\nfunction ProcessEmitWarning(warning) {\\n if (console && console.warn) console.warn(warning);\\n}\\n\\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\\n return value !== value;\\n}\\n\\nfunction EventEmitter() {\\n EventEmitter.init.call(this);\\n}\\nmodule.exports = EventEmitter;\\nmodule.exports.once = once;\\n\\n// Backwards-compat with node 0.10.x\\nEventEmitter.EventEmitter = EventEmitter;\\n\\nEventEmitter.prototype._events = undefined;\\nEventEmitter.prototype._eventsCount = 0;\\nEventEmitter.prototype._maxListeners = undefined;\\n\\n// By default EventEmitters will print a warning if more than 10 listeners are\\n// added to it. This is a useful default which helps finding memory leaks.\\nvar defaultMaxListeners = 10;\\n\\nfunction checkListener(listener) {\\n if (typeof listener !== 'function') {\\n throw new TypeError('The \\\"listener\\\" argument must be of type Function. Received type ' + typeof listener);\\n }\\n}\\n\\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\\n enumerable: true,\\n get: function() {\\n return defaultMaxListeners;\\n },\\n set: function(arg) {\\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\\n throw new RangeError('The value of \\\"defaultMaxListeners\\\" is out of range. It must be a non-negative number. Received ' + arg + '.');\\n }\\n defaultMaxListeners = arg;\\n }\\n});\\n\\nEventEmitter.init = function() {\\n\\n if (this._events === undefined ||\\n this._events === Object.getPrototypeOf(this)._events) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n }\\n\\n this._maxListeners = this._maxListeners || undefined;\\n};\\n\\n// Obviously not all Emitters should be limited to 10. This function allows\\n// that to be increased. Set to zero for unlimited.\\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\\n throw new RangeError('The value of \\\"n\\\" is out of range. It must be a non-negative number. Received ' + n + '.');\\n }\\n this._maxListeners = n;\\n return this;\\n};\\n\\nfunction _getMaxListeners(that) {\\n if (that._maxListeners === undefined)\\n return EventEmitter.defaultMaxListeners;\\n return that._maxListeners;\\n}\\n\\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\\n return _getMaxListeners(this);\\n};\\n\\nEventEmitter.prototype.emit = function emit(type) {\\n var args = [];\\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\\n var doError = (type === 'error');\\n\\n var events = this._events;\\n if (events !== undefined)\\n doError = (doError && events.error === undefined);\\n else if (!doError)\\n return false;\\n\\n // If there is no 'error' event listener then throw.\\n if (doError) {\\n var er;\\n if (args.length > 0)\\n er = args[0];\\n if (er instanceof Error) {\\n // Note: The comments on the `throw` lines are intentional, they show\\n // up in Node's output if this results in an unhandled exception.\\n throw er; // Unhandled 'error' event\\n }\\n // At least give some kind of context to the user\\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\\n err.context = er;\\n throw err; // Unhandled 'error' event\\n }\\n\\n var handler = events[type];\\n\\n if (handler === undefined)\\n return false;\\n\\n if (typeof handler === 'function') {\\n ReflectApply(handler, this, args);\\n } else {\\n var len = handler.length;\\n var listeners = arrayClone(handler, len);\\n for (var i = 0; i < len; ++i)\\n ReflectApply(listeners[i], this, args);\\n }\\n\\n return true;\\n};\\n\\nfunction _addListener(target, type, listener, prepend) {\\n var m;\\n var events;\\n var existing;\\n\\n checkListener(listener);\\n\\n events = target._events;\\n if (events === undefined) {\\n events = target._events = Object.create(null);\\n target._eventsCount = 0;\\n } else {\\n // To avoid recursion in the case that type === \\\"newListener\\\"! Before\\n // adding it to the listeners, first emit \\\"newListener\\\".\\n if (events.newListener !== undefined) {\\n target.emit('newListener', type,\\n listener.listener ? listener.listener : listener);\\n\\n // Re-assign `events` because a newListener handler could have caused the\\n // this._events to be assigned to a new object\\n events = target._events;\\n }\\n existing = events[type];\\n }\\n\\n if (existing === undefined) {\\n // Optimize the case of one listener. Don't need the extra array object.\\n existing = events[type] = listener;\\n ++target._eventsCount;\\n } else {\\n if (typeof existing === 'function') {\\n // Adding the second element, need to change to array.\\n existing = events[type] =\\n prepend ? [listener, existing] : [existing, listener];\\n // If we've already got an array, just append.\\n } else if (prepend) {\\n existing.unshift(listener);\\n } else {\\n existing.push(listener);\\n }\\n\\n // Check for listener leak\\n m = _getMaxListeners(target);\\n if (m > 0 && existing.length > m && !existing.warned) {\\n existing.warned = true;\\n // No error code for this since it is a Warning\\n // eslint-disable-next-line no-restricted-syntax\\n var w = new Error('Possible EventEmitter memory leak detected. ' +\\n existing.length + ' ' + String(type) + ' listeners ' +\\n 'added. Use emitter.setMaxListeners() to ' +\\n 'increase limit');\\n w.name = 'MaxListenersExceededWarning';\\n w.emitter = target;\\n w.type = type;\\n w.count = existing.length;\\n ProcessEmitWarning(w);\\n }\\n }\\n\\n return target;\\n}\\n\\nEventEmitter.prototype.addListener = function addListener(type, listener) {\\n return _addListener(this, type, listener, false);\\n};\\n\\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\\n\\nEventEmitter.prototype.prependListener =\\n function prependListener(type, listener) {\\n return _addListener(this, type, listener, true);\\n };\\n\\nfunction onceWrapper() {\\n if (!this.fired) {\\n this.target.removeListener(this.type, this.wrapFn);\\n this.fired = true;\\n if (arguments.length === 0)\\n return this.listener.call(this.target);\\n return this.listener.apply(this.target, arguments);\\n }\\n}\\n\\nfunction _onceWrap(target, type, listener) {\\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\\n var wrapped = onceWrapper.bind(state);\\n wrapped.listener = listener;\\n state.wrapFn = wrapped;\\n return wrapped;\\n}\\n\\nEventEmitter.prototype.once = function once(type, listener) {\\n checkListener(listener);\\n this.on(type, _onceWrap(this, type, listener));\\n return this;\\n};\\n\\nEventEmitter.prototype.prependOnceListener =\\n function prependOnceListener(type, listener) {\\n checkListener(listener);\\n this.prependListener(type, _onceWrap(this, type, listener));\\n return this;\\n };\\n\\n// Emits a 'removeListener' event if and only if the listener was removed.\\nEventEmitter.prototype.removeListener =\\n function removeListener(type, listener) {\\n var list, events, position, i, originalListener;\\n\\n checkListener(listener);\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n list = events[type];\\n if (list === undefined)\\n return this;\\n\\n if (list === listener || list.listener === listener) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else {\\n delete events[type];\\n if (events.removeListener)\\n this.emit('removeListener', type, list.listener || listener);\\n }\\n } else if (typeof list !== 'function') {\\n position = -1;\\n\\n for (i = list.length - 1; i >= 0; i--) {\\n if (list[i] === listener || list[i].listener === listener) {\\n originalListener = list[i].listener;\\n position = i;\\n break;\\n }\\n }\\n\\n if (position < 0)\\n return this;\\n\\n if (position === 0)\\n list.shift();\\n else {\\n spliceOne(list, position);\\n }\\n\\n if (list.length === 1)\\n events[type] = list[0];\\n\\n if (events.removeListener !== undefined)\\n this.emit('removeListener', type, originalListener || listener);\\n }\\n\\n return this;\\n };\\n\\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\\n\\nEventEmitter.prototype.removeAllListeners =\\n function removeAllListeners(type) {\\n var listeners, events, i;\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n // not listening for removeListener, no need to emit\\n if (events.removeListener === undefined) {\\n if (arguments.length === 0) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n } else if (events[type] !== undefined) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else\\n delete events[type];\\n }\\n return this;\\n }\\n\\n // emit removeListener for all listeners on all events\\n if (arguments.length === 0) {\\n var keys = Object.keys(events);\\n var key;\\n for (i = 0; i < keys.length; ++i) {\\n key = keys[i];\\n if (key === 'removeListener') continue;\\n this.removeAllListeners(key);\\n }\\n this.removeAllListeners('removeListener');\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n return this;\\n }\\n\\n listeners = events[type];\\n\\n if (typeof listeners === 'function') {\\n this.removeListener(type, listeners);\\n } else if (listeners !== undefined) {\\n // LIFO order\\n for (i = listeners.length - 1; i >= 0; i--) {\\n this.removeListener(type, listeners[i]);\\n }\\n }\\n\\n return this;\\n };\\n\\nfunction _listeners(target, type, unwrap) {\\n var events = target._events;\\n\\n if (events === undefined)\\n return [];\\n\\n var evlistener = events[type];\\n if (evlistener === undefined)\\n return [];\\n\\n if (typeof evlistener === 'function')\\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\\n\\n return unwrap ?\\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\\n}\\n\\nEventEmitter.prototype.listeners = function listeners(type) {\\n return _listeners(this, type, true);\\n};\\n\\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\\n return _listeners(this, type, false);\\n};\\n\\nEventEmitter.listenerCount = function(emitter, type) {\\n if (typeof emitter.listenerCount === 'function') {\\n return emitter.listenerCount(type);\\n } else {\\n return listenerCount.call(emitter, type);\\n }\\n};\\n\\nEventEmitter.prototype.listenerCount = listenerCount;\\nfunction listenerCount(type) {\\n var events = this._events;\\n\\n if (events !== undefined) {\\n var evlistener = events[type];\\n\\n if (typeof evlistener === 'function') {\\n return 1;\\n } else if (evlistener !== undefined) {\\n return evlistener.length;\\n }\\n }\\n\\n return 0;\\n}\\n\\nEventEmitter.prototype.eventNames = function eventNames() {\\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\\n};\\n\\nfunction arrayClone(arr, n) {\\n var copy = new Array(n);\\n for (var i = 0; i < n; ++i)\\n copy[i] = arr[i];\\n return copy;\\n}\\n\\nfunction spliceOne(list, index) {\\n for (; index + 1 < list.length; index++)\\n list[index] = list[index + 1];\\n list.pop();\\n}\\n\\nfunction unwrapListeners(arr) {\\n var ret = new Array(arr.length);\\n for (var i = 0; i < ret.length; ++i) {\\n ret[i] = arr[i].listener || arr[i];\\n }\\n return ret;\\n}\\n\\nfunction once(emitter, name) {\\n return new Promise(function (resolve, reject) {\\n function errorListener(err) {\\n emitter.removeListener(name, resolver);\\n reject(err);\\n }\\n\\n function resolver() {\\n if (typeof emitter.removeListener === 'function') {\\n emitter.removeListener('error', errorListener);\\n }\\n resolve([].slice.call(arguments));\\n };\\n\\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\\n if (name !== 'error') {\\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\\n }\\n });\\n}\\n\\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\\n if (typeof emitter.on === 'function') {\\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\\n }\\n}\\n\\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\\n if (typeof emitter.on === 'function') {\\n if (flags.once) {\\n emitter.once(name, listener);\\n } else {\\n emitter.on(name, listener);\\n }\\n } else if (typeof emitter.addEventListener === 'function') {\\n // EventTarget does not have `error` event semantics like Node\\n // EventEmitters, we do not listen for `error` events here.\\n emitter.addEventListener(name, function wrapListener(arg) {\\n // IE does not have builtin `{ once: true }` support so we\\n // have to do it manually.\\n if (flags.once) {\\n emitter.removeEventListener(name, wrapListener);\\n }\\n listener(arg);\\n });\\n } else {\\n throw new TypeError('The \\\"emitter\\\" argument must be of type EventEmitter. Received type ' + typeof emitter);\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/events/events.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/isomorphic-ws/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\\n\\nvar ws = null\\n\\nif (typeof WebSocket !== 'undefined') {\\n ws = WebSocket\\n} else if (typeof MozWebSocket !== 'undefined') {\\n ws = MozWebSocket\\n} else if (typeof global !== 'undefined') {\\n ws = global.WebSocket || global.MozWebSocket\\n} else if (typeof window !== 'undefined') {\\n ws = window.WebSocket || window.MozWebSocket\\n} else if (typeof self !== 'undefined') {\\n ws = self.WebSocket || self.MozWebSocket\\n}\\n\\nmodule.exports = ws\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/isomorphic-ws/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/lodash.debounce/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {/**\\n * lodash (Custom Build) <https://lodash.com/>\\n * Build: `lodash modularize exports=\\\"npm\\\" -o ./`\\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\\n * Released under MIT license <https://lodash.com/license>\\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\\n */\\n\\n/** Used as the `TypeError` message for \\\"Functions\\\" methods. */\\nvar FUNC_ERROR_TEXT = 'Expected a function';\\n\\n/** Used as references for various `Number` constants. */\\nvar NAN = 0 / 0;\\n\\n/** `Object#toString` result references. */\\nvar symbolTag = '[object Symbol]';\\n\\n/** Used to match leading and trailing whitespace. */\\nvar reTrim = /^\\\\s+|\\\\s+$/g;\\n\\n/** Used to detect bad signed hexadecimal string values. */\\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\\n\\n/** Used to detect binary string values. */\\nvar reIsBinary = /^0b[01]+$/i;\\n\\n/** Used to detect octal string values. */\\nvar reIsOctal = /^0o[0-7]+$/i;\\n\\n/** Built-in method references without a dependency on `root`. */\\nvar freeParseInt = parseInt;\\n\\n/** Detect free variable `global` from Node.js. */\\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\\n\\n/** Detect free variable `self`. */\\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\\n\\n/** Used as a reference to the global object. */\\nvar root = freeGlobal || freeSelf || Function('return this')();\\n\\n/** Used for built-in method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the\\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objectToString = objectProto.toString;\\n\\n/* Built-in method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max,\\n nativeMin = Math.min;\\n\\n/**\\n * Gets the timestamp of the number of milliseconds that have elapsed since\\n * the Unix epoch (1 January 1970 00:00:00 UTC).\\n *\\n * @static\\n * @memberOf _\\n * @since 2.4.0\\n * @category Date\\n * @returns {number} Returns the timestamp.\\n * @example\\n *\\n * _.defer(function(stamp) {\\n * console.log(_.now() - stamp);\\n * }, _.now());\\n * // => Logs the number of milliseconds it took for the deferred invocation.\\n */\\nvar now = function() {\\n return root.Date.now();\\n};\\n\\n/**\\n * Creates a debounced function that delays invoking `func` until after `wait`\\n * milliseconds have elapsed since the last time the debounced function was\\n * invoked. The debounced function comes with a `cancel` method to cancel\\n * delayed `func` invocations and a `flush` method to immediately invoke them.\\n * Provide `options` to indicate whether `func` should be invoked on the\\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\\n * with the last arguments provided to the debounced function. Subsequent\\n * calls to the debounced function return the result of the last `func`\\n * invocation.\\n *\\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\\n * invoked on the trailing edge of the timeout only if the debounced function\\n * is invoked more than once during the `wait` timeout.\\n *\\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\\n *\\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\\n * for details over the differences between `_.debounce` and `_.throttle`.\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Function\\n * @param {Function} func The function to debounce.\\n * @param {number} [wait=0] The number of milliseconds to delay.\\n * @param {Object} [options={}] The options object.\\n * @param {boolean} [options.leading=false]\\n * Specify invoking on the leading edge of the timeout.\\n * @param {number} [options.maxWait]\\n * The maximum time `func` is allowed to be delayed before it's invoked.\\n * @param {boolean} [options.trailing=true]\\n * Specify invoking on the trailing edge of the timeout.\\n * @returns {Function} Returns the new debounced function.\\n * @example\\n *\\n * // Avoid costly calculations while the window size is in flux.\\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\\n *\\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\\n * 'leading': true,\\n * 'trailing': false\\n * }));\\n *\\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\\n * var source = new EventSource('/stream');\\n * jQuery(source).on('message', debounced);\\n *\\n * // Cancel the trailing debounced invocation.\\n * jQuery(window).on('popstate', debounced.cancel);\\n */\\nfunction debounce(func, wait, options) {\\n var lastArgs,\\n lastThis,\\n maxWait,\\n result,\\n timerId,\\n lastCallTime,\\n lastInvokeTime = 0,\\n leading = false,\\n maxing = false,\\n trailing = true;\\n\\n if (typeof func != 'function') {\\n throw new TypeError(FUNC_ERROR_TEXT);\\n }\\n wait = toNumber(wait) || 0;\\n if (isObject(options)) {\\n leading = !!options.leading;\\n maxing = 'maxWait' in options;\\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\\n trailing = 'trailing' in options ? !!options.trailing : trailing;\\n }\\n\\n function invokeFunc(time) {\\n var args = lastArgs,\\n thisArg = lastThis;\\n\\n lastArgs = lastThis = undefined;\\n lastInvokeTime = time;\\n result = func.apply(thisArg, args);\\n return result;\\n }\\n\\n function leadingEdge(time) {\\n // Reset any `maxWait` timer.\\n lastInvokeTime = time;\\n // Start the timer for the trailing edge.\\n timerId = setTimeout(timerExpired, wait);\\n // Invoke the leading edge.\\n return leading ? invokeFunc(time) : result;\\n }\\n\\n function remainingWait(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime,\\n result = wait - timeSinceLastCall;\\n\\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\\n }\\n\\n function shouldInvoke(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime;\\n\\n // Either this is the first call, activity has stopped and we're at the\\n // trailing edge, the system time has gone backwards and we're treating\\n // it as the trailing edge, or we've hit the `maxWait` limit.\\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\\n }\\n\\n function timerExpired() {\\n var time = now();\\n if (shouldInvoke(time)) {\\n return trailingEdge(time);\\n }\\n // Restart the timer.\\n timerId = setTimeout(timerExpired, remainingWait(time));\\n }\\n\\n function trailingEdge(time) {\\n timerId = undefined;\\n\\n // Only invoke if we have `lastArgs` which means `func` has been\\n // debounced at least once.\\n if (trailing && lastArgs) {\\n return invokeFunc(time);\\n }\\n lastArgs = lastThis = undefined;\\n return result;\\n }\\n\\n function cancel() {\\n if (timerId !== undefined) {\\n clearTimeout(timerId);\\n }\\n lastInvokeTime = 0;\\n lastArgs = lastCallTime = lastThis = timerId = undefined;\\n }\\n\\n function flush() {\\n return timerId === undefined ? result : trailingEdge(now());\\n }\\n\\n function debounced() {\\n var time = now(),\\n isInvoking = shouldInvoke(time);\\n\\n lastArgs = arguments;\\n lastThis = this;\\n lastCallTime = time;\\n\\n if (isInvoking) {\\n if (timerId === undefined) {\\n return leadingEdge(lastCallTime);\\n }\\n if (maxing) {\\n // Handle invocations in a tight loop.\\n timerId = setTimeout(timerExpired, wait);\\n return invokeFunc(lastCallTime);\\n }\\n }\\n if (timerId === undefined) {\\n timerId = setTimeout(timerExpired, wait);\\n }\\n return result;\\n }\\n debounced.cancel = cancel;\\n debounced.flush = flush;\\n return debounced;\\n}\\n\\n/**\\n * Checks if `value` is the\\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(_.noop);\\n * // => true\\n *\\n * _.isObject(null);\\n * // => false\\n */\\nfunction isObject(value) {\\n var type = typeof value;\\n return !!value && (type == 'object' || type == 'function');\\n}\\n\\n/**\\n * Checks if `value` is object-like. A value is object-like if it's not `null`\\n * and has a `typeof` result of \\\"object\\\".\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n * @example\\n *\\n * _.isObjectLike({});\\n * // => true\\n *\\n * _.isObjectLike([1, 2, 3]);\\n * // => true\\n *\\n * _.isObjectLike(_.noop);\\n * // => false\\n *\\n * _.isObjectLike(null);\\n * // => false\\n */\\nfunction isObjectLike(value) {\\n return !!value && typeof value == 'object';\\n}\\n\\n/**\\n * Checks if `value` is classified as a `Symbol` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\\n * @example\\n *\\n * _.isSymbol(Symbol.iterator);\\n * // => true\\n *\\n * _.isSymbol('abc');\\n * // => false\\n */\\nfunction isSymbol(value) {\\n return typeof value == 'symbol' ||\\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\\n}\\n\\n/**\\n * Converts `value` to a number.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to process.\\n * @returns {number} Returns the number.\\n * @example\\n *\\n * _.toNumber(3.2);\\n * // => 3.2\\n *\\n * _.toNumber(Number.MIN_VALUE);\\n * // => 5e-324\\n *\\n * _.toNumber(Infinity);\\n * // => Infinity\\n *\\n * _.toNumber('3.2');\\n * // => 3.2\\n */\\nfunction toNumber(value) {\\n if (typeof value == 'number') {\\n return value;\\n }\\n if (isSymbol(value)) {\\n return NAN;\\n }\\n if (isObject(value)) {\\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\\n value = isObject(other) ? (other + '') : other;\\n }\\n if (typeof value != 'string') {\\n return value === 0 ? value : +value;\\n }\\n value = value.replace(reTrim, '');\\n var isBinary = reIsBinary.test(value);\\n return (isBinary || reIsOctal.test(value))\\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\\n : (reIsBadHex.test(value) ? NAN : +value);\\n}\\n\\nmodule.exports = debounce;\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/lodash.debounce/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/***/ (function(module, exports) {\n\neval(\"var g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n//# sourceURL=webpack://SerpWS/(webpack)/buildin/global.js?\");\n\n/***/ }),\n\n/***/ \"./src/constants/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiEndpoints\\\", function() { return apiEndpoints; });\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiVersions\\\", function() { return apiVersions; });\\nconst apiVersions = [1];\\nconst apiEndpoints = {\\n v1: \\\"wss://stagews.serpdev.ru/ws\\\"\\n};\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"createSerpWsApi\\\", function() { return createSerpWsApi; });\\n/* harmony import */ var _v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./src/v1/index.ts\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./src/constants/index.ts\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\\\"./node_modules/isomorphic-ws/browser.js\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__);\\n\\n\\n\\nfunction createSerpWsApi(settings = {}) {\\n const {\\n token,\\n version,\\n endpoint\\n } = settings;\\n if (!version) {\\n throw new Error(`You did not specify Serp API version.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n const numVersion = Number(version);\\n if (!_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].includes(numVersion)) {\\n throw new Error(`You have specified a non-existent version of Serp API: ${version}.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n switch (numVersion) {\\n case 1:\\n return new _v1__WEBPACK_IMPORTED_MODULE_0__[\\\"SerpWsApiV1\\\"]({\\n SocketClient: isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default.a,\\n token,\\n endpoint,\\n apiEndpoints: _constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiEndpoints\\\"]\\n });\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/v1/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"SerpWsApiV1\\\", function() { return SerpWsApiV1; });\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./node_modules/events/events.js\\\");\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./node_modules/lodash.debounce/index.js\\\");\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \\\"string\\\"); return \\\"symbol\\\" == typeof i ? i : i + \\\"\\\"; }\\nfunction _toPrimitive(t, r) { if (\\\"object\\\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \\\"default\\\"); if (\\\"object\\\" != typeof i) return i; throw new TypeError(\\\"@@toPrimitive must return a primitive value.\\\"); } return (\\\"string\\\" === r ? String : Number)(t); }\\n\\n\\nclass SerpWsApiV1 extends events__WEBPACK_IMPORTED_MODULE_0___default.a {\\n constructor({\\n token,\\n SocketClient,\\n apiEndpoints,\\n endpoint\\n }) {\\n super();\\n _defineProperty(this, \\\"SocketClient\\\", void 0);\\n _defineProperty(this, \\\"socket\\\", void 0);\\n _defineProperty(this, \\\"isSocketOpen\\\", false);\\n _defineProperty(this, \\\"token\\\", void 0);\\n _defineProperty(this, \\\"endpoint\\\", void 0);\\n _defineProperty(this, \\\"reconnectTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingBackOffDelay\\\", 1000);\\n _defineProperty(this, \\\"reconnectTime\\\", 30000);\\n this.token = token;\\n this.endpoint = endpoint || apiEndpoints.v1;\\n this.SocketClient = SocketClient;\\n }\\n heartbeat() {\\n if (!this.socket) return;\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.socket.send(JSON.stringify({\\n action: \\\"PING\\\"\\n }));\\n\\n /**\\r\\n * Если ответа нет в течение this.pingBackOffDelay\\r\\n * шлём еще один запрос и так до достижения this.reconnectTime\\r\\n */\\n this.pingTimeout = setTimeout(() => {\\n this.heartbeat();\\n this.pingBackOffDelay = this.pingBackOffDelay * 2;\\n }, this.pingBackOffDelay);\\n this.reconnectTimeout = setTimeout(() => {\\n this.disconnect();\\n this.connect();\\n }, this.reconnectTime);\\n }\\n debouncedHeartbeat() {\\n return lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(this.heartbeat, 5000);\\n }\\n resetPing() {\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.pingBackOffDelay = 1000;\\n }\\n setToken(token) {\\n this.token = token;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n setEndpoint(endpoint) {\\n this.endpoint = endpoint;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n connect() {\\n this.socket = new this.SocketClient(this.endpoint);\\n this.socket.onopen = () => {\\n if (!this.socket) return;\\n this.isSocketOpen = true;\\n this.resetPing();\\n this.socket.send(JSON.stringify({\\n action: \\\"AUTH\\\",\\n data: {\\n token: this.token\\n }\\n }));\\n this.socket.onmessage = ({\\n data\\n } = {\\n data: \\\"\\\"\\n }) => {\\n try {\\n const parsedData = JSON.parse(data);\\n if (parsedData.auth === \\\"ok\\\") {\\n this.debouncedHeartbeat();\\n return;\\n }\\n if (parsedData.PING) {\\n this.resetPing();\\n this.debouncedHeartbeat();\\n return;\\n }\\n this.emit(\\\"message\\\", parsedData);\\n } catch (error) {\\n this.emit(\\\"error\\\", error);\\n }\\n };\\n this.socket.onclose = data => {\\n this.resetPing();\\n this.emit(\\\"disconnect\\\", data);\\n this.isSocketOpen = false;\\n };\\n this.emit(\\\"connect\\\");\\n };\\n }\\n disconnect() {\\n if (this.socket) {\\n this.socket.close();\\n }\\n }\\n terminate() {\\n if (this.socket) {\\n this.socket.terminate();\\n }\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/v1/index.ts?\");\n\n/***/ })\n\n/******/ });\n});\n\n//# sourceURL=webpack://SerpApi/./packages/serp-websocket/dist/index.web.js?");
40
40
 
41
41
  /***/ })
42
42
 
@@ -36,7 +36,7 @@ eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\
36
36
  /***/ "./packages/serp-websocket/dist/index.web.js":
37
37
  /***/ (function(module) {
38
38
 
39
- eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_545__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_545__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_545__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_545__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__nested_webpack_require_545__.d = function(exports, name, getter) {\n/******/ \t\tif(!__nested_webpack_require_545__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_545__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__nested_webpack_require_545__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __nested_webpack_require_545__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__nested_webpack_require_545__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_545__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__nested_webpack_require_545__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__nested_webpack_require_545__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__nested_webpack_require_545__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_545__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_545__(__nested_webpack_require_545__.s = \"./src/index.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/events/events.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n\\n\\nvar R = typeof Reflect === 'object' ? Reflect : null\\nvar ReflectApply = R && typeof R.apply === 'function'\\n ? R.apply\\n : function ReflectApply(target, receiver, args) {\\n return Function.prototype.apply.call(target, receiver, args);\\n }\\n\\nvar ReflectOwnKeys\\nif (R && typeof R.ownKeys === 'function') {\\n ReflectOwnKeys = R.ownKeys\\n} else if (Object.getOwnPropertySymbols) {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target)\\n .concat(Object.getOwnPropertySymbols(target));\\n };\\n} else {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target);\\n };\\n}\\n\\nfunction ProcessEmitWarning(warning) {\\n if (console && console.warn) console.warn(warning);\\n}\\n\\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\\n return value !== value;\\n}\\n\\nfunction EventEmitter() {\\n EventEmitter.init.call(this);\\n}\\nmodule.exports = EventEmitter;\\nmodule.exports.once = once;\\n\\n// Backwards-compat with node 0.10.x\\nEventEmitter.EventEmitter = EventEmitter;\\n\\nEventEmitter.prototype._events = undefined;\\nEventEmitter.prototype._eventsCount = 0;\\nEventEmitter.prototype._maxListeners = undefined;\\n\\n// By default EventEmitters will print a warning if more than 10 listeners are\\n// added to it. This is a useful default which helps finding memory leaks.\\nvar defaultMaxListeners = 10;\\n\\nfunction checkListener(listener) {\\n if (typeof listener !== 'function') {\\n throw new TypeError('The \\\"listener\\\" argument must be of type Function. Received type ' + typeof listener);\\n }\\n}\\n\\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\\n enumerable: true,\\n get: function() {\\n return defaultMaxListeners;\\n },\\n set: function(arg) {\\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\\n throw new RangeError('The value of \\\"defaultMaxListeners\\\" is out of range. It must be a non-negative number. Received ' + arg + '.');\\n }\\n defaultMaxListeners = arg;\\n }\\n});\\n\\nEventEmitter.init = function() {\\n\\n if (this._events === undefined ||\\n this._events === Object.getPrototypeOf(this)._events) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n }\\n\\n this._maxListeners = this._maxListeners || undefined;\\n};\\n\\n// Obviously not all Emitters should be limited to 10. This function allows\\n// that to be increased. Set to zero for unlimited.\\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\\n throw new RangeError('The value of \\\"n\\\" is out of range. It must be a non-negative number. Received ' + n + '.');\\n }\\n this._maxListeners = n;\\n return this;\\n};\\n\\nfunction _getMaxListeners(that) {\\n if (that._maxListeners === undefined)\\n return EventEmitter.defaultMaxListeners;\\n return that._maxListeners;\\n}\\n\\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\\n return _getMaxListeners(this);\\n};\\n\\nEventEmitter.prototype.emit = function emit(type) {\\n var args = [];\\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\\n var doError = (type === 'error');\\n\\n var events = this._events;\\n if (events !== undefined)\\n doError = (doError && events.error === undefined);\\n else if (!doError)\\n return false;\\n\\n // If there is no 'error' event listener then throw.\\n if (doError) {\\n var er;\\n if (args.length > 0)\\n er = args[0];\\n if (er instanceof Error) {\\n // Note: The comments on the `throw` lines are intentional, they show\\n // up in Node's output if this results in an unhandled exception.\\n throw er; // Unhandled 'error' event\\n }\\n // At least give some kind of context to the user\\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\\n err.context = er;\\n throw err; // Unhandled 'error' event\\n }\\n\\n var handler = events[type];\\n\\n if (handler === undefined)\\n return false;\\n\\n if (typeof handler === 'function') {\\n ReflectApply(handler, this, args);\\n } else {\\n var len = handler.length;\\n var listeners = arrayClone(handler, len);\\n for (var i = 0; i < len; ++i)\\n ReflectApply(listeners[i], this, args);\\n }\\n\\n return true;\\n};\\n\\nfunction _addListener(target, type, listener, prepend) {\\n var m;\\n var events;\\n var existing;\\n\\n checkListener(listener);\\n\\n events = target._events;\\n if (events === undefined) {\\n events = target._events = Object.create(null);\\n target._eventsCount = 0;\\n } else {\\n // To avoid recursion in the case that type === \\\"newListener\\\"! Before\\n // adding it to the listeners, first emit \\\"newListener\\\".\\n if (events.newListener !== undefined) {\\n target.emit('newListener', type,\\n listener.listener ? listener.listener : listener);\\n\\n // Re-assign `events` because a newListener handler could have caused the\\n // this._events to be assigned to a new object\\n events = target._events;\\n }\\n existing = events[type];\\n }\\n\\n if (existing === undefined) {\\n // Optimize the case of one listener. Don't need the extra array object.\\n existing = events[type] = listener;\\n ++target._eventsCount;\\n } else {\\n if (typeof existing === 'function') {\\n // Adding the second element, need to change to array.\\n existing = events[type] =\\n prepend ? [listener, existing] : [existing, listener];\\n // If we've already got an array, just append.\\n } else if (prepend) {\\n existing.unshift(listener);\\n } else {\\n existing.push(listener);\\n }\\n\\n // Check for listener leak\\n m = _getMaxListeners(target);\\n if (m > 0 && existing.length > m && !existing.warned) {\\n existing.warned = true;\\n // No error code for this since it is a Warning\\n // eslint-disable-next-line no-restricted-syntax\\n var w = new Error('Possible EventEmitter memory leak detected. ' +\\n existing.length + ' ' + String(type) + ' listeners ' +\\n 'added. Use emitter.setMaxListeners() to ' +\\n 'increase limit');\\n w.name = 'MaxListenersExceededWarning';\\n w.emitter = target;\\n w.type = type;\\n w.count = existing.length;\\n ProcessEmitWarning(w);\\n }\\n }\\n\\n return target;\\n}\\n\\nEventEmitter.prototype.addListener = function addListener(type, listener) {\\n return _addListener(this, type, listener, false);\\n};\\n\\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\\n\\nEventEmitter.prototype.prependListener =\\n function prependListener(type, listener) {\\n return _addListener(this, type, listener, true);\\n };\\n\\nfunction onceWrapper() {\\n if (!this.fired) {\\n this.target.removeListener(this.type, this.wrapFn);\\n this.fired = true;\\n if (arguments.length === 0)\\n return this.listener.call(this.target);\\n return this.listener.apply(this.target, arguments);\\n }\\n}\\n\\nfunction _onceWrap(target, type, listener) {\\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\\n var wrapped = onceWrapper.bind(state);\\n wrapped.listener = listener;\\n state.wrapFn = wrapped;\\n return wrapped;\\n}\\n\\nEventEmitter.prototype.once = function once(type, listener) {\\n checkListener(listener);\\n this.on(type, _onceWrap(this, type, listener));\\n return this;\\n};\\n\\nEventEmitter.prototype.prependOnceListener =\\n function prependOnceListener(type, listener) {\\n checkListener(listener);\\n this.prependListener(type, _onceWrap(this, type, listener));\\n return this;\\n };\\n\\n// Emits a 'removeListener' event if and only if the listener was removed.\\nEventEmitter.prototype.removeListener =\\n function removeListener(type, listener) {\\n var list, events, position, i, originalListener;\\n\\n checkListener(listener);\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n list = events[type];\\n if (list === undefined)\\n return this;\\n\\n if (list === listener || list.listener === listener) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else {\\n delete events[type];\\n if (events.removeListener)\\n this.emit('removeListener', type, list.listener || listener);\\n }\\n } else if (typeof list !== 'function') {\\n position = -1;\\n\\n for (i = list.length - 1; i >= 0; i--) {\\n if (list[i] === listener || list[i].listener === listener) {\\n originalListener = list[i].listener;\\n position = i;\\n break;\\n }\\n }\\n\\n if (position < 0)\\n return this;\\n\\n if (position === 0)\\n list.shift();\\n else {\\n spliceOne(list, position);\\n }\\n\\n if (list.length === 1)\\n events[type] = list[0];\\n\\n if (events.removeListener !== undefined)\\n this.emit('removeListener', type, originalListener || listener);\\n }\\n\\n return this;\\n };\\n\\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\\n\\nEventEmitter.prototype.removeAllListeners =\\n function removeAllListeners(type) {\\n var listeners, events, i;\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n // not listening for removeListener, no need to emit\\n if (events.removeListener === undefined) {\\n if (arguments.length === 0) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n } else if (events[type] !== undefined) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else\\n delete events[type];\\n }\\n return this;\\n }\\n\\n // emit removeListener for all listeners on all events\\n if (arguments.length === 0) {\\n var keys = Object.keys(events);\\n var key;\\n for (i = 0; i < keys.length; ++i) {\\n key = keys[i];\\n if (key === 'removeListener') continue;\\n this.removeAllListeners(key);\\n }\\n this.removeAllListeners('removeListener');\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n return this;\\n }\\n\\n listeners = events[type];\\n\\n if (typeof listeners === 'function') {\\n this.removeListener(type, listeners);\\n } else if (listeners !== undefined) {\\n // LIFO order\\n for (i = listeners.length - 1; i >= 0; i--) {\\n this.removeListener(type, listeners[i]);\\n }\\n }\\n\\n return this;\\n };\\n\\nfunction _listeners(target, type, unwrap) {\\n var events = target._events;\\n\\n if (events === undefined)\\n return [];\\n\\n var evlistener = events[type];\\n if (evlistener === undefined)\\n return [];\\n\\n if (typeof evlistener === 'function')\\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\\n\\n return unwrap ?\\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\\n}\\n\\nEventEmitter.prototype.listeners = function listeners(type) {\\n return _listeners(this, type, true);\\n};\\n\\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\\n return _listeners(this, type, false);\\n};\\n\\nEventEmitter.listenerCount = function(emitter, type) {\\n if (typeof emitter.listenerCount === 'function') {\\n return emitter.listenerCount(type);\\n } else {\\n return listenerCount.call(emitter, type);\\n }\\n};\\n\\nEventEmitter.prototype.listenerCount = listenerCount;\\nfunction listenerCount(type) {\\n var events = this._events;\\n\\n if (events !== undefined) {\\n var evlistener = events[type];\\n\\n if (typeof evlistener === 'function') {\\n return 1;\\n } else if (evlistener !== undefined) {\\n return evlistener.length;\\n }\\n }\\n\\n return 0;\\n}\\n\\nEventEmitter.prototype.eventNames = function eventNames() {\\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\\n};\\n\\nfunction arrayClone(arr, n) {\\n var copy = new Array(n);\\n for (var i = 0; i < n; ++i)\\n copy[i] = arr[i];\\n return copy;\\n}\\n\\nfunction spliceOne(list, index) {\\n for (; index + 1 < list.length; index++)\\n list[index] = list[index + 1];\\n list.pop();\\n}\\n\\nfunction unwrapListeners(arr) {\\n var ret = new Array(arr.length);\\n for (var i = 0; i < ret.length; ++i) {\\n ret[i] = arr[i].listener || arr[i];\\n }\\n return ret;\\n}\\n\\nfunction once(emitter, name) {\\n return new Promise(function (resolve, reject) {\\n function errorListener(err) {\\n emitter.removeListener(name, resolver);\\n reject(err);\\n }\\n\\n function resolver() {\\n if (typeof emitter.removeListener === 'function') {\\n emitter.removeListener('error', errorListener);\\n }\\n resolve([].slice.call(arguments));\\n };\\n\\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\\n if (name !== 'error') {\\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\\n }\\n });\\n}\\n\\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\\n if (typeof emitter.on === 'function') {\\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\\n }\\n}\\n\\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\\n if (typeof emitter.on === 'function') {\\n if (flags.once) {\\n emitter.once(name, listener);\\n } else {\\n emitter.on(name, listener);\\n }\\n } else if (typeof emitter.addEventListener === 'function') {\\n // EventTarget does not have `error` event semantics like Node\\n // EventEmitters, we do not listen for `error` events here.\\n emitter.addEventListener(name, function wrapListener(arg) {\\n // IE does not have builtin `{ once: true }` support so we\\n // have to do it manually.\\n if (flags.once) {\\n emitter.removeEventListener(name, wrapListener);\\n }\\n listener(arg);\\n });\\n } else {\\n throw new TypeError('The \\\"emitter\\\" argument must be of type EventEmitter. Received type ' + typeof emitter);\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/events/events.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/isomorphic-ws/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\\n\\nvar ws = null\\n\\nif (typeof WebSocket !== 'undefined') {\\n ws = WebSocket\\n} else if (typeof MozWebSocket !== 'undefined') {\\n ws = MozWebSocket\\n} else if (typeof global !== 'undefined') {\\n ws = global.WebSocket || global.MozWebSocket\\n} else if (typeof window !== 'undefined') {\\n ws = window.WebSocket || window.MozWebSocket\\n} else if (typeof self !== 'undefined') {\\n ws = self.WebSocket || self.MozWebSocket\\n}\\n\\nmodule.exports = ws\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/isomorphic-ws/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/lodash.debounce/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {/**\\n * lodash (Custom Build) <https://lodash.com/>\\n * Build: `lodash modularize exports=\\\"npm\\\" -o ./`\\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\\n * Released under MIT license <https://lodash.com/license>\\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\\n */\\n\\n/** Used as the `TypeError` message for \\\"Functions\\\" methods. */\\nvar FUNC_ERROR_TEXT = 'Expected a function';\\n\\n/** Used as references for various `Number` constants. */\\nvar NAN = 0 / 0;\\n\\n/** `Object#toString` result references. */\\nvar symbolTag = '[object Symbol]';\\n\\n/** Used to match leading and trailing whitespace. */\\nvar reTrim = /^\\\\s+|\\\\s+$/g;\\n\\n/** Used to detect bad signed hexadecimal string values. */\\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\\n\\n/** Used to detect binary string values. */\\nvar reIsBinary = /^0b[01]+$/i;\\n\\n/** Used to detect octal string values. */\\nvar reIsOctal = /^0o[0-7]+$/i;\\n\\n/** Built-in method references without a dependency on `root`. */\\nvar freeParseInt = parseInt;\\n\\n/** Detect free variable `global` from Node.js. */\\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\\n\\n/** Detect free variable `self`. */\\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\\n\\n/** Used as a reference to the global object. */\\nvar root = freeGlobal || freeSelf || Function('return this')();\\n\\n/** Used for built-in method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the\\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objectToString = objectProto.toString;\\n\\n/* Built-in method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max,\\n nativeMin = Math.min;\\n\\n/**\\n * Gets the timestamp of the number of milliseconds that have elapsed since\\n * the Unix epoch (1 January 1970 00:00:00 UTC).\\n *\\n * @static\\n * @memberOf _\\n * @since 2.4.0\\n * @category Date\\n * @returns {number} Returns the timestamp.\\n * @example\\n *\\n * _.defer(function(stamp) {\\n * console.log(_.now() - stamp);\\n * }, _.now());\\n * // => Logs the number of milliseconds it took for the deferred invocation.\\n */\\nvar now = function() {\\n return root.Date.now();\\n};\\n\\n/**\\n * Creates a debounced function that delays invoking `func` until after `wait`\\n * milliseconds have elapsed since the last time the debounced function was\\n * invoked. The debounced function comes with a `cancel` method to cancel\\n * delayed `func` invocations and a `flush` method to immediately invoke them.\\n * Provide `options` to indicate whether `func` should be invoked on the\\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\\n * with the last arguments provided to the debounced function. Subsequent\\n * calls to the debounced function return the result of the last `func`\\n * invocation.\\n *\\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\\n * invoked on the trailing edge of the timeout only if the debounced function\\n * is invoked more than once during the `wait` timeout.\\n *\\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\\n *\\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\\n * for details over the differences between `_.debounce` and `_.throttle`.\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Function\\n * @param {Function} func The function to debounce.\\n * @param {number} [wait=0] The number of milliseconds to delay.\\n * @param {Object} [options={}] The options object.\\n * @param {boolean} [options.leading=false]\\n * Specify invoking on the leading edge of the timeout.\\n * @param {number} [options.maxWait]\\n * The maximum time `func` is allowed to be delayed before it's invoked.\\n * @param {boolean} [options.trailing=true]\\n * Specify invoking on the trailing edge of the timeout.\\n * @returns {Function} Returns the new debounced function.\\n * @example\\n *\\n * // Avoid costly calculations while the window size is in flux.\\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\\n *\\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\\n * 'leading': true,\\n * 'trailing': false\\n * }));\\n *\\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\\n * var source = new EventSource('/stream');\\n * jQuery(source).on('message', debounced);\\n *\\n * // Cancel the trailing debounced invocation.\\n * jQuery(window).on('popstate', debounced.cancel);\\n */\\nfunction debounce(func, wait, options) {\\n var lastArgs,\\n lastThis,\\n maxWait,\\n result,\\n timerId,\\n lastCallTime,\\n lastInvokeTime = 0,\\n leading = false,\\n maxing = false,\\n trailing = true;\\n\\n if (typeof func != 'function') {\\n throw new TypeError(FUNC_ERROR_TEXT);\\n }\\n wait = toNumber(wait) || 0;\\n if (isObject(options)) {\\n leading = !!options.leading;\\n maxing = 'maxWait' in options;\\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\\n trailing = 'trailing' in options ? !!options.trailing : trailing;\\n }\\n\\n function invokeFunc(time) {\\n var args = lastArgs,\\n thisArg = lastThis;\\n\\n lastArgs = lastThis = undefined;\\n lastInvokeTime = time;\\n result = func.apply(thisArg, args);\\n return result;\\n }\\n\\n function leadingEdge(time) {\\n // Reset any `maxWait` timer.\\n lastInvokeTime = time;\\n // Start the timer for the trailing edge.\\n timerId = setTimeout(timerExpired, wait);\\n // Invoke the leading edge.\\n return leading ? invokeFunc(time) : result;\\n }\\n\\n function remainingWait(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime,\\n result = wait - timeSinceLastCall;\\n\\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\\n }\\n\\n function shouldInvoke(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime;\\n\\n // Either this is the first call, activity has stopped and we're at the\\n // trailing edge, the system time has gone backwards and we're treating\\n // it as the trailing edge, or we've hit the `maxWait` limit.\\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\\n }\\n\\n function timerExpired() {\\n var time = now();\\n if (shouldInvoke(time)) {\\n return trailingEdge(time);\\n }\\n // Restart the timer.\\n timerId = setTimeout(timerExpired, remainingWait(time));\\n }\\n\\n function trailingEdge(time) {\\n timerId = undefined;\\n\\n // Only invoke if we have `lastArgs` which means `func` has been\\n // debounced at least once.\\n if (trailing && lastArgs) {\\n return invokeFunc(time);\\n }\\n lastArgs = lastThis = undefined;\\n return result;\\n }\\n\\n function cancel() {\\n if (timerId !== undefined) {\\n clearTimeout(timerId);\\n }\\n lastInvokeTime = 0;\\n lastArgs = lastCallTime = lastThis = timerId = undefined;\\n }\\n\\n function flush() {\\n return timerId === undefined ? result : trailingEdge(now());\\n }\\n\\n function debounced() {\\n var time = now(),\\n isInvoking = shouldInvoke(time);\\n\\n lastArgs = arguments;\\n lastThis = this;\\n lastCallTime = time;\\n\\n if (isInvoking) {\\n if (timerId === undefined) {\\n return leadingEdge(lastCallTime);\\n }\\n if (maxing) {\\n // Handle invocations in a tight loop.\\n timerId = setTimeout(timerExpired, wait);\\n return invokeFunc(lastCallTime);\\n }\\n }\\n if (timerId === undefined) {\\n timerId = setTimeout(timerExpired, wait);\\n }\\n return result;\\n }\\n debounced.cancel = cancel;\\n debounced.flush = flush;\\n return debounced;\\n}\\n\\n/**\\n * Checks if `value` is the\\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(_.noop);\\n * // => true\\n *\\n * _.isObject(null);\\n * // => false\\n */\\nfunction isObject(value) {\\n var type = typeof value;\\n return !!value && (type == 'object' || type == 'function');\\n}\\n\\n/**\\n * Checks if `value` is object-like. A value is object-like if it's not `null`\\n * and has a `typeof` result of \\\"object\\\".\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n * @example\\n *\\n * _.isObjectLike({});\\n * // => true\\n *\\n * _.isObjectLike([1, 2, 3]);\\n * // => true\\n *\\n * _.isObjectLike(_.noop);\\n * // => false\\n *\\n * _.isObjectLike(null);\\n * // => false\\n */\\nfunction isObjectLike(value) {\\n return !!value && typeof value == 'object';\\n}\\n\\n/**\\n * Checks if `value` is classified as a `Symbol` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\\n * @example\\n *\\n * _.isSymbol(Symbol.iterator);\\n * // => true\\n *\\n * _.isSymbol('abc');\\n * // => false\\n */\\nfunction isSymbol(value) {\\n return typeof value == 'symbol' ||\\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\\n}\\n\\n/**\\n * Converts `value` to a number.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to process.\\n * @returns {number} Returns the number.\\n * @example\\n *\\n * _.toNumber(3.2);\\n * // => 3.2\\n *\\n * _.toNumber(Number.MIN_VALUE);\\n * // => 5e-324\\n *\\n * _.toNumber(Infinity);\\n * // => Infinity\\n *\\n * _.toNumber('3.2');\\n * // => 3.2\\n */\\nfunction toNumber(value) {\\n if (typeof value == 'number') {\\n return value;\\n }\\n if (isSymbol(value)) {\\n return NAN;\\n }\\n if (isObject(value)) {\\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\\n value = isObject(other) ? (other + '') : other;\\n }\\n if (typeof value != 'string') {\\n return value === 0 ? value : +value;\\n }\\n value = value.replace(reTrim, '');\\n var isBinary = reIsBinary.test(value);\\n return (isBinary || reIsOctal.test(value))\\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\\n : (reIsBadHex.test(value) ? NAN : +value);\\n}\\n\\nmodule.exports = debounce;\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/lodash.debounce/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/***/ (function(module, exports) {\n\neval(\"var g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n//# sourceURL=webpack://SerpWS/(webpack)/buildin/global.js?\");\n\n/***/ }),\n\n/***/ \"./src/constants/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiEndpoints\\\", function() { return apiEndpoints; });\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiVersions\\\", function() { return apiVersions; });\\nconst apiVersions = [1];\\nconst apiEndpoints = {\\n v1: \\\"wss://events.serptech.ru/\\\"\\n};\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"createSerpWsApi\\\", function() { return createSerpWsApi; });\\n/* harmony import */ var _v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./src/v1/index.ts\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./src/constants/index.ts\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\\\"./node_modules/isomorphic-ws/browser.js\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__);\\n\\n\\n\\nfunction createSerpWsApi(settings = {}) {\\n const {\\n token,\\n version,\\n endpoint\\n } = settings;\\n if (!version) {\\n throw new Error(`You did not specify Serp API version.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n const numVersion = Number(version);\\n if (!_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].includes(numVersion)) {\\n throw new Error(`You have specified a non-existent version of Serp API: ${version}.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n switch (numVersion) {\\n case 1:\\n return new _v1__WEBPACK_IMPORTED_MODULE_0__[\\\"SerpWsApiV1\\\"]({\\n SocketClient: isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default.a,\\n token,\\n endpoint,\\n apiEndpoints: _constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiEndpoints\\\"]\\n });\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/v1/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"SerpWsApiV1\\\", function() { return SerpWsApiV1; });\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./node_modules/events/events.js\\\");\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./node_modules/lodash.debounce/index.js\\\");\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \\\"string\\\"); return \\\"symbol\\\" == typeof i ? i : i + \\\"\\\"; }\\nfunction _toPrimitive(t, r) { if (\\\"object\\\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \\\"default\\\"); if (\\\"object\\\" != typeof i) return i; throw new TypeError(\\\"@@toPrimitive must return a primitive value.\\\"); } return (\\\"string\\\" === r ? String : Number)(t); }\\n\\n\\nclass SerpWsApiV1 extends events__WEBPACK_IMPORTED_MODULE_0___default.a {\\n constructor({\\n token,\\n SocketClient,\\n apiEndpoints,\\n endpoint\\n }) {\\n super();\\n _defineProperty(this, \\\"SocketClient\\\", void 0);\\n _defineProperty(this, \\\"socket\\\", void 0);\\n _defineProperty(this, \\\"isSocketOpen\\\", false);\\n _defineProperty(this, \\\"token\\\", void 0);\\n _defineProperty(this, \\\"endpoint\\\", void 0);\\n _defineProperty(this, \\\"reconnectTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingBackOffDelay\\\", 1000);\\n _defineProperty(this, \\\"reconnectTime\\\", 30000);\\n this.token = token;\\n this.endpoint = endpoint || apiEndpoints.v1;\\n this.SocketClient = SocketClient;\\n }\\n heartbeat() {\\n if (!this.socket) return;\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.socket.send(JSON.stringify({\\n action: \\\"PING\\\"\\n }));\\n\\n /**\\r\\n * Если ответа нет в течение this.pingBackOffDelay\\r\\n * шлём еще один запрос и так до достижения this.reconnectTime\\r\\n */\\n this.pingTimeout = setTimeout(() => {\\n this.heartbeat();\\n this.pingBackOffDelay = this.pingBackOffDelay * 2;\\n }, this.pingBackOffDelay);\\n this.reconnectTimeout = setTimeout(() => {\\n this.disconnect();\\n this.connect();\\n }, this.reconnectTime);\\n }\\n debouncedHeartbeat() {\\n return lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(this.heartbeat, 5000);\\n }\\n resetPing() {\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.pingBackOffDelay = 1000;\\n }\\n setToken(token) {\\n this.token = token;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n setEndpoint(endpoint) {\\n this.endpoint = endpoint;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n connect() {\\n this.socket = new this.SocketClient(this.endpoint);\\n this.socket.onopen = () => {\\n if (!this.socket) return;\\n this.isSocketOpen = true;\\n this.resetPing();\\n this.socket.send(JSON.stringify({\\n action: \\\"AUTH\\\",\\n data: {\\n token: this.token\\n }\\n }));\\n this.socket.onmessage = ({\\n data\\n } = {\\n data: \\\"\\\"\\n }) => {\\n try {\\n const parsedData = JSON.parse(data);\\n if (parsedData.auth === \\\"ok\\\") {\\n this.debouncedHeartbeat();\\n return;\\n }\\n if (parsedData.PING) {\\n this.resetPing();\\n this.debouncedHeartbeat();\\n return;\\n }\\n this.emit(\\\"message\\\", parsedData);\\n } catch (error) {\\n this.emit(\\\"error\\\", error);\\n }\\n };\\n this.socket.onclose = data => {\\n this.resetPing();\\n this.emit(\\\"disconnect\\\", data);\\n this.isSocketOpen = false;\\n };\\n this.emit(\\\"connect\\\");\\n };\\n }\\n disconnect() {\\n if (this.socket) {\\n this.socket.close();\\n }\\n }\\n terminate() {\\n if (this.socket) {\\n this.socket.terminate();\\n }\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/v1/index.ts?\");\n\n/***/ })\n\n/******/ });\n});\n\n//# sourceURL=webpack://SerpApi/./packages/serp-websocket/dist/index.web.js?");
39
+ eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_545__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_545__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_545__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_545__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__nested_webpack_require_545__.d = function(exports, name, getter) {\n/******/ \t\tif(!__nested_webpack_require_545__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_545__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__nested_webpack_require_545__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __nested_webpack_require_545__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__nested_webpack_require_545__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_545__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__nested_webpack_require_545__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__nested_webpack_require_545__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__nested_webpack_require_545__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_545__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_545__(__nested_webpack_require_545__.s = \"./src/index.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/events/events.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\\"Software\\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n\\n\\nvar R = typeof Reflect === 'object' ? Reflect : null\\nvar ReflectApply = R && typeof R.apply === 'function'\\n ? R.apply\\n : function ReflectApply(target, receiver, args) {\\n return Function.prototype.apply.call(target, receiver, args);\\n }\\n\\nvar ReflectOwnKeys\\nif (R && typeof R.ownKeys === 'function') {\\n ReflectOwnKeys = R.ownKeys\\n} else if (Object.getOwnPropertySymbols) {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target)\\n .concat(Object.getOwnPropertySymbols(target));\\n };\\n} else {\\n ReflectOwnKeys = function ReflectOwnKeys(target) {\\n return Object.getOwnPropertyNames(target);\\n };\\n}\\n\\nfunction ProcessEmitWarning(warning) {\\n if (console && console.warn) console.warn(warning);\\n}\\n\\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\\n return value !== value;\\n}\\n\\nfunction EventEmitter() {\\n EventEmitter.init.call(this);\\n}\\nmodule.exports = EventEmitter;\\nmodule.exports.once = once;\\n\\n// Backwards-compat with node 0.10.x\\nEventEmitter.EventEmitter = EventEmitter;\\n\\nEventEmitter.prototype._events = undefined;\\nEventEmitter.prototype._eventsCount = 0;\\nEventEmitter.prototype._maxListeners = undefined;\\n\\n// By default EventEmitters will print a warning if more than 10 listeners are\\n// added to it. This is a useful default which helps finding memory leaks.\\nvar defaultMaxListeners = 10;\\n\\nfunction checkListener(listener) {\\n if (typeof listener !== 'function') {\\n throw new TypeError('The \\\"listener\\\" argument must be of type Function. Received type ' + typeof listener);\\n }\\n}\\n\\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\\n enumerable: true,\\n get: function() {\\n return defaultMaxListeners;\\n },\\n set: function(arg) {\\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\\n throw new RangeError('The value of \\\"defaultMaxListeners\\\" is out of range. It must be a non-negative number. Received ' + arg + '.');\\n }\\n defaultMaxListeners = arg;\\n }\\n});\\n\\nEventEmitter.init = function() {\\n\\n if (this._events === undefined ||\\n this._events === Object.getPrototypeOf(this)._events) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n }\\n\\n this._maxListeners = this._maxListeners || undefined;\\n};\\n\\n// Obviously not all Emitters should be limited to 10. This function allows\\n// that to be increased. Set to zero for unlimited.\\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\\n throw new RangeError('The value of \\\"n\\\" is out of range. It must be a non-negative number. Received ' + n + '.');\\n }\\n this._maxListeners = n;\\n return this;\\n};\\n\\nfunction _getMaxListeners(that) {\\n if (that._maxListeners === undefined)\\n return EventEmitter.defaultMaxListeners;\\n return that._maxListeners;\\n}\\n\\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\\n return _getMaxListeners(this);\\n};\\n\\nEventEmitter.prototype.emit = function emit(type) {\\n var args = [];\\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\\n var doError = (type === 'error');\\n\\n var events = this._events;\\n if (events !== undefined)\\n doError = (doError && events.error === undefined);\\n else if (!doError)\\n return false;\\n\\n // If there is no 'error' event listener then throw.\\n if (doError) {\\n var er;\\n if (args.length > 0)\\n er = args[0];\\n if (er instanceof Error) {\\n // Note: The comments on the `throw` lines are intentional, they show\\n // up in Node's output if this results in an unhandled exception.\\n throw er; // Unhandled 'error' event\\n }\\n // At least give some kind of context to the user\\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\\n err.context = er;\\n throw err; // Unhandled 'error' event\\n }\\n\\n var handler = events[type];\\n\\n if (handler === undefined)\\n return false;\\n\\n if (typeof handler === 'function') {\\n ReflectApply(handler, this, args);\\n } else {\\n var len = handler.length;\\n var listeners = arrayClone(handler, len);\\n for (var i = 0; i < len; ++i)\\n ReflectApply(listeners[i], this, args);\\n }\\n\\n return true;\\n};\\n\\nfunction _addListener(target, type, listener, prepend) {\\n var m;\\n var events;\\n var existing;\\n\\n checkListener(listener);\\n\\n events = target._events;\\n if (events === undefined) {\\n events = target._events = Object.create(null);\\n target._eventsCount = 0;\\n } else {\\n // To avoid recursion in the case that type === \\\"newListener\\\"! Before\\n // adding it to the listeners, first emit \\\"newListener\\\".\\n if (events.newListener !== undefined) {\\n target.emit('newListener', type,\\n listener.listener ? listener.listener : listener);\\n\\n // Re-assign `events` because a newListener handler could have caused the\\n // this._events to be assigned to a new object\\n events = target._events;\\n }\\n existing = events[type];\\n }\\n\\n if (existing === undefined) {\\n // Optimize the case of one listener. Don't need the extra array object.\\n existing = events[type] = listener;\\n ++target._eventsCount;\\n } else {\\n if (typeof existing === 'function') {\\n // Adding the second element, need to change to array.\\n existing = events[type] =\\n prepend ? [listener, existing] : [existing, listener];\\n // If we've already got an array, just append.\\n } else if (prepend) {\\n existing.unshift(listener);\\n } else {\\n existing.push(listener);\\n }\\n\\n // Check for listener leak\\n m = _getMaxListeners(target);\\n if (m > 0 && existing.length > m && !existing.warned) {\\n existing.warned = true;\\n // No error code for this since it is a Warning\\n // eslint-disable-next-line no-restricted-syntax\\n var w = new Error('Possible EventEmitter memory leak detected. ' +\\n existing.length + ' ' + String(type) + ' listeners ' +\\n 'added. Use emitter.setMaxListeners() to ' +\\n 'increase limit');\\n w.name = 'MaxListenersExceededWarning';\\n w.emitter = target;\\n w.type = type;\\n w.count = existing.length;\\n ProcessEmitWarning(w);\\n }\\n }\\n\\n return target;\\n}\\n\\nEventEmitter.prototype.addListener = function addListener(type, listener) {\\n return _addListener(this, type, listener, false);\\n};\\n\\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\\n\\nEventEmitter.prototype.prependListener =\\n function prependListener(type, listener) {\\n return _addListener(this, type, listener, true);\\n };\\n\\nfunction onceWrapper() {\\n if (!this.fired) {\\n this.target.removeListener(this.type, this.wrapFn);\\n this.fired = true;\\n if (arguments.length === 0)\\n return this.listener.call(this.target);\\n return this.listener.apply(this.target, arguments);\\n }\\n}\\n\\nfunction _onceWrap(target, type, listener) {\\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\\n var wrapped = onceWrapper.bind(state);\\n wrapped.listener = listener;\\n state.wrapFn = wrapped;\\n return wrapped;\\n}\\n\\nEventEmitter.prototype.once = function once(type, listener) {\\n checkListener(listener);\\n this.on(type, _onceWrap(this, type, listener));\\n return this;\\n};\\n\\nEventEmitter.prototype.prependOnceListener =\\n function prependOnceListener(type, listener) {\\n checkListener(listener);\\n this.prependListener(type, _onceWrap(this, type, listener));\\n return this;\\n };\\n\\n// Emits a 'removeListener' event if and only if the listener was removed.\\nEventEmitter.prototype.removeListener =\\n function removeListener(type, listener) {\\n var list, events, position, i, originalListener;\\n\\n checkListener(listener);\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n list = events[type];\\n if (list === undefined)\\n return this;\\n\\n if (list === listener || list.listener === listener) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else {\\n delete events[type];\\n if (events.removeListener)\\n this.emit('removeListener', type, list.listener || listener);\\n }\\n } else if (typeof list !== 'function') {\\n position = -1;\\n\\n for (i = list.length - 1; i >= 0; i--) {\\n if (list[i] === listener || list[i].listener === listener) {\\n originalListener = list[i].listener;\\n position = i;\\n break;\\n }\\n }\\n\\n if (position < 0)\\n return this;\\n\\n if (position === 0)\\n list.shift();\\n else {\\n spliceOne(list, position);\\n }\\n\\n if (list.length === 1)\\n events[type] = list[0];\\n\\n if (events.removeListener !== undefined)\\n this.emit('removeListener', type, originalListener || listener);\\n }\\n\\n return this;\\n };\\n\\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\\n\\nEventEmitter.prototype.removeAllListeners =\\n function removeAllListeners(type) {\\n var listeners, events, i;\\n\\n events = this._events;\\n if (events === undefined)\\n return this;\\n\\n // not listening for removeListener, no need to emit\\n if (events.removeListener === undefined) {\\n if (arguments.length === 0) {\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n } else if (events[type] !== undefined) {\\n if (--this._eventsCount === 0)\\n this._events = Object.create(null);\\n else\\n delete events[type];\\n }\\n return this;\\n }\\n\\n // emit removeListener for all listeners on all events\\n if (arguments.length === 0) {\\n var keys = Object.keys(events);\\n var key;\\n for (i = 0; i < keys.length; ++i) {\\n key = keys[i];\\n if (key === 'removeListener') continue;\\n this.removeAllListeners(key);\\n }\\n this.removeAllListeners('removeListener');\\n this._events = Object.create(null);\\n this._eventsCount = 0;\\n return this;\\n }\\n\\n listeners = events[type];\\n\\n if (typeof listeners === 'function') {\\n this.removeListener(type, listeners);\\n } else if (listeners !== undefined) {\\n // LIFO order\\n for (i = listeners.length - 1; i >= 0; i--) {\\n this.removeListener(type, listeners[i]);\\n }\\n }\\n\\n return this;\\n };\\n\\nfunction _listeners(target, type, unwrap) {\\n var events = target._events;\\n\\n if (events === undefined)\\n return [];\\n\\n var evlistener = events[type];\\n if (evlistener === undefined)\\n return [];\\n\\n if (typeof evlistener === 'function')\\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\\n\\n return unwrap ?\\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\\n}\\n\\nEventEmitter.prototype.listeners = function listeners(type) {\\n return _listeners(this, type, true);\\n};\\n\\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\\n return _listeners(this, type, false);\\n};\\n\\nEventEmitter.listenerCount = function(emitter, type) {\\n if (typeof emitter.listenerCount === 'function') {\\n return emitter.listenerCount(type);\\n } else {\\n return listenerCount.call(emitter, type);\\n }\\n};\\n\\nEventEmitter.prototype.listenerCount = listenerCount;\\nfunction listenerCount(type) {\\n var events = this._events;\\n\\n if (events !== undefined) {\\n var evlistener = events[type];\\n\\n if (typeof evlistener === 'function') {\\n return 1;\\n } else if (evlistener !== undefined) {\\n return evlistener.length;\\n }\\n }\\n\\n return 0;\\n}\\n\\nEventEmitter.prototype.eventNames = function eventNames() {\\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\\n};\\n\\nfunction arrayClone(arr, n) {\\n var copy = new Array(n);\\n for (var i = 0; i < n; ++i)\\n copy[i] = arr[i];\\n return copy;\\n}\\n\\nfunction spliceOne(list, index) {\\n for (; index + 1 < list.length; index++)\\n list[index] = list[index + 1];\\n list.pop();\\n}\\n\\nfunction unwrapListeners(arr) {\\n var ret = new Array(arr.length);\\n for (var i = 0; i < ret.length; ++i) {\\n ret[i] = arr[i].listener || arr[i];\\n }\\n return ret;\\n}\\n\\nfunction once(emitter, name) {\\n return new Promise(function (resolve, reject) {\\n function errorListener(err) {\\n emitter.removeListener(name, resolver);\\n reject(err);\\n }\\n\\n function resolver() {\\n if (typeof emitter.removeListener === 'function') {\\n emitter.removeListener('error', errorListener);\\n }\\n resolve([].slice.call(arguments));\\n };\\n\\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\\n if (name !== 'error') {\\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\\n }\\n });\\n}\\n\\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\\n if (typeof emitter.on === 'function') {\\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\\n }\\n}\\n\\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\\n if (typeof emitter.on === 'function') {\\n if (flags.once) {\\n emitter.once(name, listener);\\n } else {\\n emitter.on(name, listener);\\n }\\n } else if (typeof emitter.addEventListener === 'function') {\\n // EventTarget does not have `error` event semantics like Node\\n // EventEmitters, we do not listen for `error` events here.\\n emitter.addEventListener(name, function wrapListener(arg) {\\n // IE does not have builtin `{ once: true }` support so we\\n // have to do it manually.\\n if (flags.once) {\\n emitter.removeEventListener(name, wrapListener);\\n }\\n listener(arg);\\n });\\n } else {\\n throw new TypeError('The \\\"emitter\\\" argument must be of type EventEmitter. Received type ' + typeof emitter);\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/events/events.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/isomorphic-ws/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\\n\\nvar ws = null\\n\\nif (typeof WebSocket !== 'undefined') {\\n ws = WebSocket\\n} else if (typeof MozWebSocket !== 'undefined') {\\n ws = MozWebSocket\\n} else if (typeof global !== 'undefined') {\\n ws = global.WebSocket || global.MozWebSocket\\n} else if (typeof window !== 'undefined') {\\n ws = window.WebSocket || window.MozWebSocket\\n} else if (typeof self !== 'undefined') {\\n ws = self.WebSocket || self.MozWebSocket\\n}\\n\\nmodule.exports = ws\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/isomorphic-ws/browser.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/lodash.debounce/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"/* WEBPACK VAR INJECTION */(function(global) {/**\\n * lodash (Custom Build) <https://lodash.com/>\\n * Build: `lodash modularize exports=\\\"npm\\\" -o ./`\\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\\n * Released under MIT license <https://lodash.com/license>\\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\\n */\\n\\n/** Used as the `TypeError` message for \\\"Functions\\\" methods. */\\nvar FUNC_ERROR_TEXT = 'Expected a function';\\n\\n/** Used as references for various `Number` constants. */\\nvar NAN = 0 / 0;\\n\\n/** `Object#toString` result references. */\\nvar symbolTag = '[object Symbol]';\\n\\n/** Used to match leading and trailing whitespace. */\\nvar reTrim = /^\\\\s+|\\\\s+$/g;\\n\\n/** Used to detect bad signed hexadecimal string values. */\\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\\n\\n/** Used to detect binary string values. */\\nvar reIsBinary = /^0b[01]+$/i;\\n\\n/** Used to detect octal string values. */\\nvar reIsOctal = /^0o[0-7]+$/i;\\n\\n/** Built-in method references without a dependency on `root`. */\\nvar freeParseInt = parseInt;\\n\\n/** Detect free variable `global` from Node.js. */\\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\\n\\n/** Detect free variable `self`. */\\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\\n\\n/** Used as a reference to the global object. */\\nvar root = freeGlobal || freeSelf || Function('return this')();\\n\\n/** Used for built-in method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the\\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objectToString = objectProto.toString;\\n\\n/* Built-in method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max,\\n nativeMin = Math.min;\\n\\n/**\\n * Gets the timestamp of the number of milliseconds that have elapsed since\\n * the Unix epoch (1 January 1970 00:00:00 UTC).\\n *\\n * @static\\n * @memberOf _\\n * @since 2.4.0\\n * @category Date\\n * @returns {number} Returns the timestamp.\\n * @example\\n *\\n * _.defer(function(stamp) {\\n * console.log(_.now() - stamp);\\n * }, _.now());\\n * // => Logs the number of milliseconds it took for the deferred invocation.\\n */\\nvar now = function() {\\n return root.Date.now();\\n};\\n\\n/**\\n * Creates a debounced function that delays invoking `func` until after `wait`\\n * milliseconds have elapsed since the last time the debounced function was\\n * invoked. The debounced function comes with a `cancel` method to cancel\\n * delayed `func` invocations and a `flush` method to immediately invoke them.\\n * Provide `options` to indicate whether `func` should be invoked on the\\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\\n * with the last arguments provided to the debounced function. Subsequent\\n * calls to the debounced function return the result of the last `func`\\n * invocation.\\n *\\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\\n * invoked on the trailing edge of the timeout only if the debounced function\\n * is invoked more than once during the `wait` timeout.\\n *\\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\\n *\\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\\n * for details over the differences between `_.debounce` and `_.throttle`.\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Function\\n * @param {Function} func The function to debounce.\\n * @param {number} [wait=0] The number of milliseconds to delay.\\n * @param {Object} [options={}] The options object.\\n * @param {boolean} [options.leading=false]\\n * Specify invoking on the leading edge of the timeout.\\n * @param {number} [options.maxWait]\\n * The maximum time `func` is allowed to be delayed before it's invoked.\\n * @param {boolean} [options.trailing=true]\\n * Specify invoking on the trailing edge of the timeout.\\n * @returns {Function} Returns the new debounced function.\\n * @example\\n *\\n * // Avoid costly calculations while the window size is in flux.\\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\\n *\\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\\n * 'leading': true,\\n * 'trailing': false\\n * }));\\n *\\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\\n * var source = new EventSource('/stream');\\n * jQuery(source).on('message', debounced);\\n *\\n * // Cancel the trailing debounced invocation.\\n * jQuery(window).on('popstate', debounced.cancel);\\n */\\nfunction debounce(func, wait, options) {\\n var lastArgs,\\n lastThis,\\n maxWait,\\n result,\\n timerId,\\n lastCallTime,\\n lastInvokeTime = 0,\\n leading = false,\\n maxing = false,\\n trailing = true;\\n\\n if (typeof func != 'function') {\\n throw new TypeError(FUNC_ERROR_TEXT);\\n }\\n wait = toNumber(wait) || 0;\\n if (isObject(options)) {\\n leading = !!options.leading;\\n maxing = 'maxWait' in options;\\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\\n trailing = 'trailing' in options ? !!options.trailing : trailing;\\n }\\n\\n function invokeFunc(time) {\\n var args = lastArgs,\\n thisArg = lastThis;\\n\\n lastArgs = lastThis = undefined;\\n lastInvokeTime = time;\\n result = func.apply(thisArg, args);\\n return result;\\n }\\n\\n function leadingEdge(time) {\\n // Reset any `maxWait` timer.\\n lastInvokeTime = time;\\n // Start the timer for the trailing edge.\\n timerId = setTimeout(timerExpired, wait);\\n // Invoke the leading edge.\\n return leading ? invokeFunc(time) : result;\\n }\\n\\n function remainingWait(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime,\\n result = wait - timeSinceLastCall;\\n\\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\\n }\\n\\n function shouldInvoke(time) {\\n var timeSinceLastCall = time - lastCallTime,\\n timeSinceLastInvoke = time - lastInvokeTime;\\n\\n // Either this is the first call, activity has stopped and we're at the\\n // trailing edge, the system time has gone backwards and we're treating\\n // it as the trailing edge, or we've hit the `maxWait` limit.\\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\\n }\\n\\n function timerExpired() {\\n var time = now();\\n if (shouldInvoke(time)) {\\n return trailingEdge(time);\\n }\\n // Restart the timer.\\n timerId = setTimeout(timerExpired, remainingWait(time));\\n }\\n\\n function trailingEdge(time) {\\n timerId = undefined;\\n\\n // Only invoke if we have `lastArgs` which means `func` has been\\n // debounced at least once.\\n if (trailing && lastArgs) {\\n return invokeFunc(time);\\n }\\n lastArgs = lastThis = undefined;\\n return result;\\n }\\n\\n function cancel() {\\n if (timerId !== undefined) {\\n clearTimeout(timerId);\\n }\\n lastInvokeTime = 0;\\n lastArgs = lastCallTime = lastThis = timerId = undefined;\\n }\\n\\n function flush() {\\n return timerId === undefined ? result : trailingEdge(now());\\n }\\n\\n function debounced() {\\n var time = now(),\\n isInvoking = shouldInvoke(time);\\n\\n lastArgs = arguments;\\n lastThis = this;\\n lastCallTime = time;\\n\\n if (isInvoking) {\\n if (timerId === undefined) {\\n return leadingEdge(lastCallTime);\\n }\\n if (maxing) {\\n // Handle invocations in a tight loop.\\n timerId = setTimeout(timerExpired, wait);\\n return invokeFunc(lastCallTime);\\n }\\n }\\n if (timerId === undefined) {\\n timerId = setTimeout(timerExpired, wait);\\n }\\n return result;\\n }\\n debounced.cancel = cancel;\\n debounced.flush = flush;\\n return debounced;\\n}\\n\\n/**\\n * Checks if `value` is the\\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\\n *\\n * @static\\n * @memberOf _\\n * @since 0.1.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(_.noop);\\n * // => true\\n *\\n * _.isObject(null);\\n * // => false\\n */\\nfunction isObject(value) {\\n var type = typeof value;\\n return !!value && (type == 'object' || type == 'function');\\n}\\n\\n/**\\n * Checks if `value` is object-like. A value is object-like if it's not `null`\\n * and has a `typeof` result of \\\"object\\\".\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n * @example\\n *\\n * _.isObjectLike({});\\n * // => true\\n *\\n * _.isObjectLike([1, 2, 3]);\\n * // => true\\n *\\n * _.isObjectLike(_.noop);\\n * // => false\\n *\\n * _.isObjectLike(null);\\n * // => false\\n */\\nfunction isObjectLike(value) {\\n return !!value && typeof value == 'object';\\n}\\n\\n/**\\n * Checks if `value` is classified as a `Symbol` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\\n * @example\\n *\\n * _.isSymbol(Symbol.iterator);\\n * // => true\\n *\\n * _.isSymbol('abc');\\n * // => false\\n */\\nfunction isSymbol(value) {\\n return typeof value == 'symbol' ||\\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\\n}\\n\\n/**\\n * Converts `value` to a number.\\n *\\n * @static\\n * @memberOf _\\n * @since 4.0.0\\n * @category Lang\\n * @param {*} value The value to process.\\n * @returns {number} Returns the number.\\n * @example\\n *\\n * _.toNumber(3.2);\\n * // => 3.2\\n *\\n * _.toNumber(Number.MIN_VALUE);\\n * // => 5e-324\\n *\\n * _.toNumber(Infinity);\\n * // => Infinity\\n *\\n * _.toNumber('3.2');\\n * // => 3.2\\n */\\nfunction toNumber(value) {\\n if (typeof value == 'number') {\\n return value;\\n }\\n if (isSymbol(value)) {\\n return NAN;\\n }\\n if (isObject(value)) {\\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\\n value = isObject(other) ? (other + '') : other;\\n }\\n if (typeof value != 'string') {\\n return value === 0 ? value : +value;\\n }\\n value = value.replace(reTrim, '');\\n var isBinary = reIsBinary.test(value);\\n return (isBinary || reIsOctal.test(value))\\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\\n : (reIsBadHex.test(value) ? NAN : +value);\\n}\\n\\nmodule.exports = debounce;\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\\\"./node_modules/webpack/buildin/global.js\\\")))\\n\\n//# sourceURL=webpack://SerpWS/./node_modules/lodash.debounce/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/***/ (function(module, exports) {\n\neval(\"var g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n//# sourceURL=webpack://SerpWS/(webpack)/buildin/global.js?\");\n\n/***/ }),\n\n/***/ \"./src/constants/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiEndpoints\\\", function() { return apiEndpoints; });\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"apiVersions\\\", function() { return apiVersions; });\\nconst apiVersions = [1];\\nconst apiEndpoints = {\\n v1: \\\"wss://stagews.serpdev.ru/ws\\\"\\n};\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"createSerpWsApi\\\", function() { return createSerpWsApi; });\\n/* harmony import */ var _v1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./src/v1/index.ts\\\");\\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./src/constants/index.ts\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\\\"./node_modules/isomorphic-ws/browser.js\\\");\\n/* harmony import */ var isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(isomorphic_ws__WEBPACK_IMPORTED_MODULE_2__);\\n\\n\\n\\nfunction createSerpWsApi(settings = {}) {\\n const {\\n token,\\n version,\\n endpoint\\n } = settings;\\n if (!version) {\\n throw new Error(`You did not specify Serp API version.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n const numVersion = Number(version);\\n if (!_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].includes(numVersion)) {\\n throw new Error(`You have specified a non-existent version of Serp API: ${version}.\\n Available versions: ${_constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiVersions\\\"].join(\\\", \\\")}`);\\n }\\n switch (numVersion) {\\n case 1:\\n return new _v1__WEBPACK_IMPORTED_MODULE_0__[\\\"SerpWsApiV1\\\"]({\\n SocketClient: isomorphic_ws__WEBPACK_IMPORTED_MODULE_2___default.a,\\n token,\\n endpoint,\\n apiEndpoints: _constants__WEBPACK_IMPORTED_MODULE_1__[\\\"apiEndpoints\\\"]\\n });\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/index.ts?\");\n\n/***/ }),\n\n/***/ \"./src/v1/index.ts\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"SerpWsApiV1\\\", function() { return SerpWsApiV1; });\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\\\"./node_modules/events/events.js\\\");\\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\\\"./node_modules/lodash.debounce/index.js\\\");\\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \\\"string\\\"); return \\\"symbol\\\" == typeof i ? i : i + \\\"\\\"; }\\nfunction _toPrimitive(t, r) { if (\\\"object\\\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \\\"default\\\"); if (\\\"object\\\" != typeof i) return i; throw new TypeError(\\\"@@toPrimitive must return a primitive value.\\\"); } return (\\\"string\\\" === r ? String : Number)(t); }\\n\\n\\nclass SerpWsApiV1 extends events__WEBPACK_IMPORTED_MODULE_0___default.a {\\n constructor({\\n token,\\n SocketClient,\\n apiEndpoints,\\n endpoint\\n }) {\\n super();\\n _defineProperty(this, \\\"SocketClient\\\", void 0);\\n _defineProperty(this, \\\"socket\\\", void 0);\\n _defineProperty(this, \\\"isSocketOpen\\\", false);\\n _defineProperty(this, \\\"token\\\", void 0);\\n _defineProperty(this, \\\"endpoint\\\", void 0);\\n _defineProperty(this, \\\"reconnectTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingTimeout\\\", void 0);\\n _defineProperty(this, \\\"pingBackOffDelay\\\", 1000);\\n _defineProperty(this, \\\"reconnectTime\\\", 30000);\\n this.token = token;\\n this.endpoint = endpoint || apiEndpoints.v1;\\n this.SocketClient = SocketClient;\\n }\\n heartbeat() {\\n if (!this.socket) return;\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.socket.send(JSON.stringify({\\n action: \\\"PING\\\"\\n }));\\n\\n /**\\r\\n * Если ответа нет в течение this.pingBackOffDelay\\r\\n * шлём еще один запрос и так до достижения this.reconnectTime\\r\\n */\\n this.pingTimeout = setTimeout(() => {\\n this.heartbeat();\\n this.pingBackOffDelay = this.pingBackOffDelay * 2;\\n }, this.pingBackOffDelay);\\n this.reconnectTimeout = setTimeout(() => {\\n this.disconnect();\\n this.connect();\\n }, this.reconnectTime);\\n }\\n debouncedHeartbeat() {\\n return lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(this.heartbeat, 5000);\\n }\\n resetPing() {\\n if (this.reconnectTimeout) {\\n clearTimeout(this.reconnectTimeout);\\n }\\n if (this.pingTimeout) {\\n clearTimeout(this.pingTimeout);\\n }\\n this.pingBackOffDelay = 1000;\\n }\\n setToken(token) {\\n this.token = token;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n setEndpoint(endpoint) {\\n this.endpoint = endpoint;\\n if (this.isSocketOpen) {\\n this.disconnect();\\n }\\n }\\n connect() {\\n this.socket = new this.SocketClient(this.endpoint);\\n this.socket.onopen = () => {\\n if (!this.socket) return;\\n this.isSocketOpen = true;\\n this.resetPing();\\n this.socket.send(JSON.stringify({\\n action: \\\"AUTH\\\",\\n data: {\\n token: this.token\\n }\\n }));\\n this.socket.onmessage = ({\\n data\\n } = {\\n data: \\\"\\\"\\n }) => {\\n try {\\n const parsedData = JSON.parse(data);\\n if (parsedData.auth === \\\"ok\\\") {\\n this.debouncedHeartbeat();\\n return;\\n }\\n if (parsedData.PING) {\\n this.resetPing();\\n this.debouncedHeartbeat();\\n return;\\n }\\n this.emit(\\\"message\\\", parsedData);\\n } catch (error) {\\n this.emit(\\\"error\\\", error);\\n }\\n };\\n this.socket.onclose = data => {\\n this.resetPing();\\n this.emit(\\\"disconnect\\\", data);\\n this.isSocketOpen = false;\\n };\\n this.emit(\\\"connect\\\");\\n };\\n }\\n disconnect() {\\n if (this.socket) {\\n this.socket.close();\\n }\\n }\\n terminate() {\\n if (this.socket) {\\n this.socket.terminate();\\n }\\n }\\n}\\n\\n\\n//# sourceURL=webpack://SerpWS/./src/v1/index.ts?\");\n\n/***/ })\n\n/******/ });\n});\n\n//# sourceURL=webpack://SerpApi/./packages/serp-websocket/dist/index.web.js?");
40
40
 
41
41
  /***/ })
42
42
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serptech/api",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Library for work with SERP API",
5
5
  "source": "index.js",
6
6
  "main": "./dist/SerpApi.node.js",
@@ -265,7 +265,7 @@ eval("/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Readable
265
265
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
266
266
 
267
267
  "use strict";
268
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiEndpoints\", function() { return apiEndpoints; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiVersions\", function() { return apiVersions; });\nconst apiVersions = [1];\nconst apiEndpoints = {\n v1: \"wss://events.serptech.ru/\"\n};\n\n\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?");
268
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiEndpoints\", function() { return apiEndpoints; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiVersions\", function() { return apiVersions; });\nconst apiVersions = [1];\nconst apiEndpoints = {\n v1: \"wss://stagews.serpdev.ru/ws\"\n};\n\n\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?");
269
269
 
270
270
  /***/ }),
271
271
 
@@ -129,7 +129,7 @@ eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn th
129
129
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
130
130
 
131
131
  "use strict";
132
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiEndpoints\", function() { return apiEndpoints; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiVersions\", function() { return apiVersions; });\nconst apiVersions = [1];\nconst apiEndpoints = {\n v1: \"wss://events.serptech.ru/\"\n};\n\n\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?");
132
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiEndpoints\", function() { return apiEndpoints; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiVersions\", function() { return apiVersions; });\nconst apiVersions = [1];\nconst apiEndpoints = {\n v1: \"wss://stagews.serpdev.ru/ws\"\n};\n\n\n//# sourceURL=webpack://SerpWS/./src/constants/index.ts?");
133
133
 
134
134
  /***/ }),
135
135
 
@@ -1,7 +1,7 @@
1
1
  const apiVersions = [1];
2
2
 
3
3
  const apiEndpoints = {
4
- v1: "wss://events.serptech.ru/",
4
+ v1: "wss://stagews.serpdev.ru/ws",
5
5
  };
6
6
 
7
7
  export { apiEndpoints, apiVersions };