diff --git a/dist/react_native/pubnub.js b/dist/react_native/pubnub.js new file mode 100644 index 000000000..e244d4dc3 --- /dev/null +++ b/dist/react_native/pubnub.js @@ -0,0 +1,6798 @@ +/*! 4.20.2 / Consumer */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["PubNub"] = factory(); + else + root["PubNub"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _pubnubCommon = __webpack_require__(1); + + var _pubnubCommon2 = _interopRequireDefault(_pubnubCommon); + + var _networking = __webpack_require__(39); + + var _networking2 = _interopRequireDefault(_networking); + + var _common = __webpack_require__(40); + + var _common2 = _interopRequireDefault(_common); + + var _webNode = __webpack_require__(41); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _class = function (_PubNubCore) { + _inherits(_class, _PubNubCore); + + function _class(setup) { + _classCallCheck(this, _class); + + setup.db = new _common2.default(); + setup.networking = new _networking2.default({ del: _webNode.del, get: _webNode.get, post: _webNode.post }); + setup.sdkFamily = 'ReactNative'; + setup.ssl = true; + return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, setup)); + } + + return _class; + }(_pubnubCommon2.default); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _config = __webpack_require__(2); + + var _config2 = _interopRequireDefault(_config); + + var _index = __webpack_require__(6); + + var _index2 = _interopRequireDefault(_index); + + var _subscription_manager = __webpack_require__(8); + + var _subscription_manager2 = _interopRequireDefault(_subscription_manager); + + var _listener_manager = __webpack_require__(9); + + var _listener_manager2 = _interopRequireDefault(_listener_manager); + + var _endpoint = __webpack_require__(16); + + var _endpoint2 = _interopRequireDefault(_endpoint); + + var _add_channels = __webpack_require__(17); + + var addChannelsChannelGroupConfig = _interopRequireWildcard(_add_channels); + + var _remove_channels = __webpack_require__(18); + + var removeChannelsChannelGroupConfig = _interopRequireWildcard(_remove_channels); + + var _delete_group = __webpack_require__(19); + + var deleteChannelGroupConfig = _interopRequireWildcard(_delete_group); + + var _list_groups = __webpack_require__(20); + + var listChannelGroupsConfig = _interopRequireWildcard(_list_groups); + + var _list_channels = __webpack_require__(21); + + var listChannelsInChannelGroupConfig = _interopRequireWildcard(_list_channels); + + var _add_push_channels = __webpack_require__(22); + + var addPushChannelsConfig = _interopRequireWildcard(_add_push_channels); + + var _remove_push_channels = __webpack_require__(23); + + var removePushChannelsConfig = _interopRequireWildcard(_remove_push_channels); + + var _list_push_channels = __webpack_require__(24); + + var listPushChannelsConfig = _interopRequireWildcard(_list_push_channels); + + var _remove_device = __webpack_require__(25); + + var removeDevicePushConfig = _interopRequireWildcard(_remove_device); + + var _leave = __webpack_require__(26); + + var presenceLeaveEndpointConfig = _interopRequireWildcard(_leave); + + var _where_now = __webpack_require__(27); + + var presenceWhereNowEndpointConfig = _interopRequireWildcard(_where_now); + + var _heartbeat = __webpack_require__(28); + + var presenceHeartbeatEndpointConfig = _interopRequireWildcard(_heartbeat); + + var _get_state = __webpack_require__(29); + + var presenceGetStateConfig = _interopRequireWildcard(_get_state); + + var _set_state = __webpack_require__(30); + + var presenceSetStateConfig = _interopRequireWildcard(_set_state); + + var _here_now = __webpack_require__(31); + + var presenceHereNowConfig = _interopRequireWildcard(_here_now); + + var _audit = __webpack_require__(32); + + var auditEndpointConfig = _interopRequireWildcard(_audit); + + var _grant = __webpack_require__(33); + + var grantEndpointConfig = _interopRequireWildcard(_grant); + + var _publish = __webpack_require__(34); + + var publishEndpointConfig = _interopRequireWildcard(_publish); + + var _get_history = __webpack_require__(35); + + var historyEndpointConfig = _interopRequireWildcard(_get_history); + + var _delete_messages = __webpack_require__(36); + + var deleteMessagesEndpointConfig = _interopRequireWildcard(_delete_messages); + + var _fetch_messages = __webpack_require__(37); + + var fetchMessagesEndpointConfig = _interopRequireWildcard(_fetch_messages); + + var _time = __webpack_require__(12); + + var timeEndpointConfig = _interopRequireWildcard(_time); + + var _subscribe = __webpack_require__(38); + + var subscribeEndpointConfig = _interopRequireWildcard(_subscribe); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _categories = __webpack_require__(10); + + var _categories2 = _interopRequireDefault(_categories); + + var _flow_interfaces = __webpack_require__(5); + + var _uuid = __webpack_require__(3); + + var _uuid2 = _interopRequireDefault(_uuid); + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(setup) { + var _this = this; + + _classCallCheck(this, _class); + + var db = setup.db, + networking = setup.networking; + + + var config = this._config = new _config2.default({ setup: setup, db: db }); + var crypto = new _index2.default({ config: config }); + + networking.init(config); + + var modules = { config: config, networking: networking, crypto: crypto }; + + var timeEndpoint = _endpoint2.default.bind(this, modules, timeEndpointConfig); + var leaveEndpoint = _endpoint2.default.bind(this, modules, presenceLeaveEndpointConfig); + var heartbeatEndpoint = _endpoint2.default.bind(this, modules, presenceHeartbeatEndpointConfig); + var setStateEndpoint = _endpoint2.default.bind(this, modules, presenceSetStateConfig); + var subscribeEndpoint = _endpoint2.default.bind(this, modules, subscribeEndpointConfig); + + var listenerManager = this._listenerManager = new _listener_manager2.default(); + + var subscriptionManager = new _subscription_manager2.default({ + timeEndpoint: timeEndpoint, + leaveEndpoint: leaveEndpoint, + heartbeatEndpoint: heartbeatEndpoint, + setStateEndpoint: setStateEndpoint, + subscribeEndpoint: subscribeEndpoint, + crypto: modules.crypto, + config: modules.config, + listenerManager: listenerManager + }); + + this.addListener = listenerManager.addListener.bind(listenerManager); + this.removeListener = listenerManager.removeListener.bind(listenerManager); + this.removeAllListeners = listenerManager.removeAllListeners.bind(listenerManager); + + this.channelGroups = { + listGroups: _endpoint2.default.bind(this, modules, listChannelGroupsConfig), + listChannels: _endpoint2.default.bind(this, modules, listChannelsInChannelGroupConfig), + addChannels: _endpoint2.default.bind(this, modules, addChannelsChannelGroupConfig), + removeChannels: _endpoint2.default.bind(this, modules, removeChannelsChannelGroupConfig), + deleteGroup: _endpoint2.default.bind(this, modules, deleteChannelGroupConfig) + }; + + this.push = { + addChannels: _endpoint2.default.bind(this, modules, addPushChannelsConfig), + removeChannels: _endpoint2.default.bind(this, modules, removePushChannelsConfig), + deleteDevice: _endpoint2.default.bind(this, modules, removeDevicePushConfig), + listChannels: _endpoint2.default.bind(this, modules, listPushChannelsConfig) + }; + + this.hereNow = _endpoint2.default.bind(this, modules, presenceHereNowConfig); + this.whereNow = _endpoint2.default.bind(this, modules, presenceWhereNowEndpointConfig); + this.getState = _endpoint2.default.bind(this, modules, presenceGetStateConfig); + this.setState = subscriptionManager.adaptStateChange.bind(subscriptionManager); + + this.grant = _endpoint2.default.bind(this, modules, grantEndpointConfig); + this.audit = _endpoint2.default.bind(this, modules, auditEndpointConfig); + + this.publish = _endpoint2.default.bind(this, modules, publishEndpointConfig); + + this.fire = function (args, callback) { + args.replicate = false; + args.storeInHistory = false; + return _this.publish(args, callback); + }; + + this.history = _endpoint2.default.bind(this, modules, historyEndpointConfig); + this.deleteMessages = _endpoint2.default.bind(this, modules, deleteMessagesEndpointConfig); + this.fetchMessages = _endpoint2.default.bind(this, modules, fetchMessagesEndpointConfig); + + this.time = timeEndpoint; + + this.subscribe = subscriptionManager.adaptSubscribeChange.bind(subscriptionManager); + this.presence = subscriptionManager.adaptPresenceChange.bind(subscriptionManager); + this.unsubscribe = subscriptionManager.adaptUnsubscribeChange.bind(subscriptionManager); + this.disconnect = subscriptionManager.disconnect.bind(subscriptionManager); + this.reconnect = subscriptionManager.reconnect.bind(subscriptionManager); + + this.destroy = function (isOffline) { + subscriptionManager.unsubscribeAll(isOffline); + subscriptionManager.disconnect(); + }; + + this.stop = this.destroy; + + this.unsubscribeAll = subscriptionManager.unsubscribeAll.bind(subscriptionManager); + + this.getSubscribedChannels = subscriptionManager.getSubscribedChannels.bind(subscriptionManager); + this.getSubscribedChannelGroups = subscriptionManager.getSubscribedChannelGroups.bind(subscriptionManager); + + this.encrypt = crypto.encrypt.bind(crypto); + this.decrypt = crypto.decrypt.bind(crypto); + + this.getAuthKey = modules.config.getAuthKey.bind(modules.config); + this.setAuthKey = modules.config.setAuthKey.bind(modules.config); + this.setCipherKey = modules.config.setCipherKey.bind(modules.config); + this.getUUID = modules.config.getUUID.bind(modules.config); + this.setUUID = modules.config.setUUID.bind(modules.config); + this.getFilterExpression = modules.config.getFilterExpression.bind(modules.config); + this.setFilterExpression = modules.config.setFilterExpression.bind(modules.config); + + this.setHeartbeatInterval = modules.config.setHeartbeatInterval.bind(modules.config); + + if (networking.hasModule('proxy')) { + this.setProxy = function (proxy) { + modules.config.setProxy(proxy); + _this.reconnect(); + }; + } + } + + _createClass(_class, [{ + key: 'getVersion', + value: function getVersion() { + return this._config.getVersion(); + } + }, { + key: 'networkDownDetected', + value: function networkDownDetected() { + this._listenerManager.announceNetworkDown(); + + if (this._config.restore) { + this.disconnect(); + } else { + this.destroy(true); + } + } + }, { + key: 'networkUpDetected', + value: function networkUpDetected() { + this._listenerManager.announceNetworkUp(); + this.reconnect(); + } + }], [{ + key: 'generateUUID', + value: function generateUUID() { + return _uuid2.default.createUUID(); + } + }]); + + return _class; + }(); + + _class.OPERATIONS = _operations2.default; + _class.CATEGORIES = _categories2.default; + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _uuid = __webpack_require__(3); + + var _uuid2 = _interopRequireDefault(_uuid); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(_ref) { + var setup = _ref.setup, + db = _ref.db; + + _classCallCheck(this, _class); + + this._db = db; + + this.instanceId = 'pn-' + _uuid2.default.createUUID(); + this.secretKey = setup.secretKey || setup.secret_key; + this.subscribeKey = setup.subscribeKey || setup.subscribe_key; + this.publishKey = setup.publishKey || setup.publish_key; + this.sdkName = setup.sdkName; + this.sdkFamily = setup.sdkFamily; + this.partnerId = setup.partnerId; + this.setAuthKey(setup.authKey); + this.setCipherKey(setup.cipherKey); + + this.setFilterExpression(setup.filterExpression); + + this.origin = setup.origin || 'pubsub.pndsn.com'; + this.secure = setup.ssl || false; + this.restore = setup.restore || false; + this.proxy = setup.proxy; + this.keepAlive = setup.keepAlive; + this.keepAliveSettings = setup.keepAliveSettings; + this.autoNetworkDetection = setup.autoNetworkDetection || false; + + this.dedupeOnSubscribe = setup.dedupeOnSubscribe || false; + this.maximumCacheSize = setup.maximumCacheSize || 100; + + this.customEncrypt = setup.customEncrypt; + this.customDecrypt = setup.customDecrypt; + + if (typeof location !== 'undefined' && location.protocol === 'https:') { + this.secure = true; + } + + this.logVerbosity = setup.logVerbosity || false; + this.suppressLeaveEvents = setup.suppressLeaveEvents || false; + + this.announceFailedHeartbeats = setup.announceFailedHeartbeats || true; + this.announceSuccessfulHeartbeats = setup.announceSuccessfulHeartbeats || false; + + this.useInstanceId = setup.useInstanceId || false; + this.useRequestId = setup.useRequestId || false; + + this.requestMessageCountThreshold = setup.requestMessageCountThreshold; + + this.setTransactionTimeout(setup.transactionalRequestTimeout || 15 * 1000); + + this.setSubscribeTimeout(setup.subscribeRequestTimeout || 310 * 1000); + + this.setSendBeaconConfig(setup.useSendBeacon || true); + + this.setPresenceTimeout(setup.presenceTimeout || 300); + + if (setup.heartbeatInterval != null) { + this.setHeartbeatInterval(setup.heartbeatInterval); + } + + this.setUUID(this._decideUUID(setup.uuid)); + } + + _createClass(_class, [{ + key: 'getAuthKey', + value: function getAuthKey() { + return this.authKey; + } + }, { + key: 'setAuthKey', + value: function setAuthKey(val) { + this.authKey = val;return this; + } + }, { + key: 'setCipherKey', + value: function setCipherKey(val) { + this.cipherKey = val;return this; + } + }, { + key: 'getUUID', + value: function getUUID() { + return this.UUID; + } + }, { + key: 'setUUID', + value: function setUUID(val) { + if (this._db && this._db.set) this._db.set(this.subscribeKey + 'uuid', val); + this.UUID = val; + return this; + } + }, { + key: 'getFilterExpression', + value: function getFilterExpression() { + return this.filterExpression; + } + }, { + key: 'setFilterExpression', + value: function setFilterExpression(val) { + this.filterExpression = val;return this; + } + }, { + key: 'getPresenceTimeout', + value: function getPresenceTimeout() { + return this._presenceTimeout; + } + }, { + key: 'setPresenceTimeout', + value: function setPresenceTimeout(val) { + this._presenceTimeout = val; + this.setHeartbeatInterval(this._presenceTimeout / 2 - 1); + return this; + } + }, { + key: 'setProxy', + value: function setProxy(proxy) { + this.proxy = proxy; + } + }, { + key: 'getHeartbeatInterval', + value: function getHeartbeatInterval() { + return this._heartbeatInterval; + } + }, { + key: 'setHeartbeatInterval', + value: function setHeartbeatInterval(val) { + this._heartbeatInterval = val;return this; + } + }, { + key: 'getSubscribeTimeout', + value: function getSubscribeTimeout() { + return this._subscribeRequestTimeout; + } + }, { + key: 'setSubscribeTimeout', + value: function setSubscribeTimeout(val) { + this._subscribeRequestTimeout = val;return this; + } + }, { + key: 'getTransactionTimeout', + value: function getTransactionTimeout() { + return this._transactionalRequestTimeout; + } + }, { + key: 'setTransactionTimeout', + value: function setTransactionTimeout(val) { + this._transactionalRequestTimeout = val;return this; + } + }, { + key: 'isSendBeaconEnabled', + value: function isSendBeaconEnabled() { + return this._useSendBeacon; + } + }, { + key: 'setSendBeaconConfig', + value: function setSendBeaconConfig(val) { + this._useSendBeacon = val;return this; + } + }, { + key: 'getVersion', + value: function getVersion() { + return '4.20.2'; + } + }, { + key: '_decideUUID', + value: function _decideUUID(providedUUID) { + if (providedUUID) { + return providedUUID; + } + + if (this._db && this._db.get && this._db.get(this.subscribeKey + 'uuid')) { + return this._db.get(this.subscribeKey + 'uuid'); + } + + return 'pn-' + _uuid2.default.createUUID(); + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _lilUuid = __webpack_require__(4); + + var _lilUuid2 = _interopRequireDefault(_lilUuid); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = { + createUUID: function createUUID() { + if (_lilUuid2.default.uuid) { + return _lilUuid2.default.uuid(); + } else { + return (0, _lilUuid2.default)(); + } + } + }; + module.exports = exports['default']; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! lil-uuid - v0.1 - MIT License - https://github.com/lil-js/uuid */ + (function (root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } else if (typeof exports === 'object') { + factory(exports) + if (typeof module === 'object' && module !== null) { + module.exports = exports.uuid + } + } else { + factory((root.lil = root.lil || {})) + } + }(this, function (exports) { + var VERSION = '0.1.0' + var uuidRegex = { + '3': /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, + '4': /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + '5': /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i + } + + function uuid() { + var uuid = '', i, random + for (i = 0; i < 32; i++) { + random = Math.random() * 16 | 0; + if (i === 8 || i === 12 || i === 16 || i === 20) uuid += '-' + uuid += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16) + } + return uuid + } + + function isUUID(str, version) { + var pattern = uuidRegex[version || 'all'] + return pattern && pattern.test(str) || false + } + + uuid.isUUID = isUUID + uuid.VERSION = VERSION + + exports.uuid = uuid + exports.isUUID = isUUID + })); + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = {}; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _config = __webpack_require__(2); + + var _config2 = _interopRequireDefault(_config); + + var _hmacSha = __webpack_require__(7); + + var _hmacSha2 = _interopRequireDefault(_hmacSha); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(_ref) { + var config = _ref.config; + + _classCallCheck(this, _class); + + this._config = config; + + this._iv = '0123456789012345'; + + this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; + this._allowedKeyLengths = [128, 256]; + this._allowedModes = ['ecb', 'cbc']; + + this._defaultOptions = { + encryptKey: true, + keyEncoding: 'utf8', + keyLength: 256, + mode: 'cbc' + }; + } + + _createClass(_class, [{ + key: 'HMACSHA256', + value: function HMACSHA256(data) { + var hash = _hmacSha2.default.HmacSHA256(data, this._config.secretKey); + return hash.toString(_hmacSha2.default.enc.Base64); + } + }, { + key: 'SHA256', + value: function SHA256(s) { + return _hmacSha2.default.SHA256(s).toString(_hmacSha2.default.enc.Hex); + } + }, { + key: '_parseOptions', + value: function _parseOptions(incomingOptions) { + var options = incomingOptions || {}; + if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey; + if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding; + if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength; + if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode; + + if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) { + options.keyEncoding = this._defaultOptions.keyEncoding; + } + + if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) { + options.keyLength = this._defaultOptions.keyLength; + } + + if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) { + options.mode = this._defaultOptions.mode; + } + + return options; + } + }, { + key: '_decodeKey', + value: function _decodeKey(key, options) { + if (options.keyEncoding === 'base64') { + return _hmacSha2.default.enc.Base64.parse(key); + } else if (options.keyEncoding === 'hex') { + return _hmacSha2.default.enc.Hex.parse(key); + } else { + return key; + } + } + }, { + key: '_getPaddedKey', + value: function _getPaddedKey(key, options) { + key = this._decodeKey(key, options); + if (options.encryptKey) { + return _hmacSha2.default.enc.Utf8.parse(this.SHA256(key).slice(0, 32)); + } else { + return key; + } + } + }, { + key: '_getMode', + value: function _getMode(options) { + if (options.mode === 'ecb') { + return _hmacSha2.default.mode.ECB; + } else { + return _hmacSha2.default.mode.CBC; + } + } + }, { + key: '_getIV', + value: function _getIV(options) { + return options.mode === 'cbc' ? _hmacSha2.default.enc.Utf8.parse(this._iv) : null; + } + }, { + key: 'encrypt', + value: function encrypt(data, customCipherKey, options) { + if (this._config.customEncrypt) { + return this._config.customEncrypt(data); + } else { + return this.pnEncrypt(data, customCipherKey, options); + } + } + }, { + key: 'decrypt', + value: function decrypt(data, customCipherKey, options) { + if (this._config.customDecrypt) { + return this._config.customDecrypt(data); + } else { + return this.pnDecrypt(data, customCipherKey, options); + } + } + }, { + key: 'pnEncrypt', + value: function pnEncrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); + var iv = this._getIV(options); + var mode = this._getMode(options); + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + var encryptedHexArray = _hmacSha2.default.AES.encrypt(data, cipherKey, { iv: iv, mode: mode }).ciphertext; + var base64Encrypted = encryptedHexArray.toString(_hmacSha2.default.enc.Base64); + return base64Encrypted || data; + } + }, { + key: 'pnDecrypt', + value: function pnDecrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); + var iv = this._getIV(options); + var mode = this._getMode(options); + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + try { + var ciphertext = _hmacSha2.default.enc.Base64.parse(data); + var plainJSON = _hmacSha2.default.AES.decrypt({ ciphertext: ciphertext }, cipherKey, { iv: iv, mode: mode }).toString(_hmacSha2.default.enc.Utf8); + var plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; + } + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + + "use strict"; + + var CryptoJS = CryptoJS || function (h, s) { + var f = {}, + g = f.lib = {}, + q = function q() {}, + m = g.Base = { extend: function extend(a) { + q.prototype = this;var c = new q();a && c.mixIn(a);c.hasOwnProperty("init") || (c.init = function () { + c.$super.init.apply(this, arguments); + });c.init.prototype = c;c.$super = this;return c; + }, create: function create() { + var a = this.extend();a.init.apply(a, arguments);return a; + }, init: function init() {}, mixIn: function mixIn(a) { + for (var c in a) { + a.hasOwnProperty(c) && (this[c] = a[c]); + }a.hasOwnProperty("toString") && (this.toString = a.toString); + }, clone: function clone() { + return this.init.prototype.extend(this); + } }, + r = g.WordArray = m.extend({ init: function init(a, c) { + a = this.words = a || [];this.sigBytes = c != s ? c : 4 * a.length; + }, toString: function toString(a) { + return (a || k).stringify(this); + }, concat: function concat(a) { + var c = this.words, + d = a.words, + b = this.sigBytes;a = a.sigBytes;this.clamp();if (b % 4) for (var e = 0; e < a; e++) { + c[b + e >>> 2] |= (d[e >>> 2] >>> 24 - 8 * (e % 4) & 255) << 24 - 8 * ((b + e) % 4); + } else if (65535 < d.length) for (e = 0; e < a; e += 4) { + c[b + e >>> 2] = d[e >>> 2]; + } else c.push.apply(c, d);this.sigBytes += a;return this; + }, clamp: function clamp() { + var a = this.words, + c = this.sigBytes;a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4);a.length = h.ceil(c / 4); + }, clone: function clone() { + var a = m.clone.call(this);a.words = this.words.slice(0);return a; + }, random: function random(a) { + for (var c = [], d = 0; d < a; d += 4) { + c.push(4294967296 * h.random() | 0); + }return new r.init(c, a); + } }), + l = f.enc = {}, + k = l.Hex = { stringify: function stringify(a) { + var c = a.words;a = a.sigBytes;for (var d = [], b = 0; b < a; b++) { + var e = c[b >>> 2] >>> 24 - 8 * (b % 4) & 255;d.push((e >>> 4).toString(16));d.push((e & 15).toString(16)); + }return d.join(""); + }, parse: function parse(a) { + for (var c = a.length, d = [], b = 0; b < c; b += 2) { + d[b >>> 3] |= parseInt(a.substr(b, 2), 16) << 24 - 4 * (b % 8); + }return new r.init(d, c / 2); + } }, + n = l.Latin1 = { stringify: function stringify(a) { + var c = a.words;a = a.sigBytes;for (var d = [], b = 0; b < a; b++) { + d.push(String.fromCharCode(c[b >>> 2] >>> 24 - 8 * (b % 4) & 255)); + }return d.join(""); + }, parse: function parse(a) { + for (var c = a.length, d = [], b = 0; b < c; b++) { + d[b >>> 2] |= (a.charCodeAt(b) & 255) << 24 - 8 * (b % 4); + }return new r.init(d, c); + } }, + j = l.Utf8 = { stringify: function stringify(a) { + try { + return decodeURIComponent(escape(n.stringify(a))); + } catch (c) { + throw Error("Malformed UTF-8 data"); + } + }, parse: function parse(a) { + return n.parse(unescape(encodeURIComponent(a))); + } }, + u = g.BufferedBlockAlgorithm = m.extend({ reset: function reset() { + this._data = new r.init();this._nDataBytes = 0; + }, _append: function _append(a) { + "string" == typeof a && (a = j.parse(a));this._data.concat(a);this._nDataBytes += a.sigBytes; + }, _process: function _process(a) { + var c = this._data, + d = c.words, + b = c.sigBytes, + e = this.blockSize, + f = b / (4 * e), + f = a ? h.ceil(f) : h.max((f | 0) - this._minBufferSize, 0);a = f * e;b = h.min(4 * a, b);if (a) { + for (var g = 0; g < a; g += e) { + this._doProcessBlock(d, g); + }g = d.splice(0, a);c.sigBytes -= b; + }return new r.init(g, b); + }, clone: function clone() { + var a = m.clone.call(this); + a._data = this._data.clone();return a; + }, _minBufferSize: 0 });g.Hasher = u.extend({ cfg: m.extend(), init: function init(a) { + this.cfg = this.cfg.extend(a);this.reset(); + }, reset: function reset() { + u.reset.call(this);this._doReset(); + }, update: function update(a) { + this._append(a);this._process();return this; + }, finalize: function finalize(a) { + a && this._append(a);return this._doFinalize(); + }, blockSize: 16, _createHelper: function _createHelper(a) { + return function (c, d) { + return new a.init(d).finalize(c); + }; + }, _createHmacHelper: function _createHmacHelper(a) { + return function (c, d) { + return new t.HMAC.init(a, d).finalize(c); + }; + } });var t = f.algo = {};return f; + }(Math); + + (function (h) { + for (var s = CryptoJS, f = s.lib, g = f.WordArray, q = f.Hasher, f = s.algo, m = [], r = [], l = function l(a) { + return 4294967296 * (a - (a | 0)) | 0; + }, k = 2, n = 0; 64 > n;) { + var j;a: { + j = k;for (var u = h.sqrt(j), t = 2; t <= u; t++) { + if (!(j % t)) { + j = !1;break a; + } + }j = !0; + }j && (8 > n && (m[n] = l(h.pow(k, 0.5))), r[n] = l(h.pow(k, 1 / 3)), n++);k++; + }var a = [], + f = f.SHA256 = q.extend({ _doReset: function _doReset() { + this._hash = new g.init(m.slice(0)); + }, _doProcessBlock: function _doProcessBlock(c, d) { + for (var b = this._hash.words, e = b[0], f = b[1], g = b[2], j = b[3], h = b[4], m = b[5], n = b[6], q = b[7], p = 0; 64 > p; p++) { + if (16 > p) a[p] = c[d + p] | 0;else { + var k = a[p - 15], + l = a[p - 2];a[p] = ((k << 25 | k >>> 7) ^ (k << 14 | k >>> 18) ^ k >>> 3) + a[p - 7] + ((l << 15 | l >>> 17) ^ (l << 13 | l >>> 19) ^ l >>> 10) + a[p - 16]; + }k = q + ((h << 26 | h >>> 6) ^ (h << 21 | h >>> 11) ^ (h << 7 | h >>> 25)) + (h & m ^ ~h & n) + r[p] + a[p];l = ((e << 30 | e >>> 2) ^ (e << 19 | e >>> 13) ^ (e << 10 | e >>> 22)) + (e & f ^ e & g ^ f & g);q = n;n = m;m = h;h = j + k | 0;j = g;g = f;f = e;e = k + l | 0; + }b[0] = b[0] + e | 0;b[1] = b[1] + f | 0;b[2] = b[2] + g | 0;b[3] = b[3] + j | 0;b[4] = b[4] + h | 0;b[5] = b[5] + m | 0;b[6] = b[6] + n | 0;b[7] = b[7] + q | 0; + }, _doFinalize: function _doFinalize() { + var a = this._data, + d = a.words, + b = 8 * this._nDataBytes, + e = 8 * a.sigBytes; + d[e >>> 5] |= 128 << 24 - e % 32;d[(e + 64 >>> 9 << 4) + 14] = h.floor(b / 4294967296);d[(e + 64 >>> 9 << 4) + 15] = b;a.sigBytes = 4 * d.length;this._process();return this._hash; + }, clone: function clone() { + var a = q.clone.call(this);a._hash = this._hash.clone();return a; + } });s.SHA256 = q._createHelper(f);s.HmacSHA256 = q._createHmacHelper(f); + })(Math); + + (function () { + var h = CryptoJS, + s = h.enc.Utf8;h.algo.HMAC = h.lib.Base.extend({ init: function init(f, g) { + f = this._hasher = new f.init();"string" == typeof g && (g = s.parse(g));var h = f.blockSize, + m = 4 * h;g.sigBytes > m && (g = f.finalize(g));g.clamp();for (var r = this._oKey = g.clone(), l = this._iKey = g.clone(), k = r.words, n = l.words, j = 0; j < h; j++) { + k[j] ^= 1549556828, n[j] ^= 909522486; + }r.sigBytes = l.sigBytes = m;this.reset(); + }, reset: function reset() { + var f = this._hasher;f.reset();f.update(this._iKey); + }, update: function update(f) { + this._hasher.update(f);return this; + }, finalize: function finalize(f) { + var g = this._hasher;f = g.finalize(f);g.reset();return g.finalize(this._oKey.clone().concat(f)); + } }); + })(); + + (function () { + var u = CryptoJS, + p = u.lib.WordArray;u.enc.Base64 = { stringify: function stringify(d) { + var l = d.words, + p = d.sigBytes, + t = this._map;d.clamp();d = [];for (var r = 0; r < p; r += 3) { + for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) { + d.push(t.charAt(w >>> 6 * (3 - v) & 63)); + } + }if (l = t.charAt(64)) for (; d.length % 4;) { + d.push(l); + }return d.join(""); + }, parse: function parse(d) { + var l = d.length, + s = this._map, + t = s.charAt(64);t && (t = d.indexOf(t), -1 != t && (l = t));for (var t = [], r = 0, w = 0; w < l; w++) { + if (w % 4) { + var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), + b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4);r++; + } + }return p.create(t, r); + }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; + })(); + + (function (u) { + function p(b, n, a, c, e, j, k) { + b = b + (n & a | ~n & c) + e + k;return (b << j | b >>> 32 - j) + n; + }function d(b, n, a, c, e, j, k) { + b = b + (n & c | a & ~c) + e + k;return (b << j | b >>> 32 - j) + n; + }function l(b, n, a, c, e, j, k) { + b = b + (n ^ a ^ c) + e + k;return (b << j | b >>> 32 - j) + n; + }function s(b, n, a, c, e, j, k) { + b = b + (a ^ (n | ~c)) + e + k;return (b << j | b >>> 32 - j) + n; + }for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) { + b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; + }r = r.MD5 = v.extend({ _doReset: function _doReset() { + this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(q, n) { + for (var a = 0; 16 > a; a++) { + var c = n + a, + e = q[c];q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; + }var a = this._hash.words, + c = q[n + 0], + e = q[n + 1], + j = q[n + 2], + k = q[n + 3], + z = q[n + 4], + r = q[n + 5], + t = q[n + 6], + w = q[n + 7], + v = q[n + 8], + A = q[n + 9], + B = q[n + 10], + C = q[n + 11], + u = q[n + 12], + D = q[n + 13], + E = q[n + 14], + x = q[n + 15], + f = a[0], + m = a[1], + g = a[2], + h = a[3], + f = p(f, m, g, h, c, 7, b[0]), + h = p(h, f, m, g, e, 12, b[1]), + g = p(g, h, f, m, j, 17, b[2]), + m = p(m, g, h, f, k, 22, b[3]), + f = p(f, m, g, h, z, 7, b[4]), + h = p(h, f, m, g, r, 12, b[5]), + g = p(g, h, f, m, t, 17, b[6]), + m = p(m, g, h, f, w, 22, b[7]), + f = p(f, m, g, h, v, 7, b[8]), + h = p(h, f, m, g, A, 12, b[9]), + g = p(g, h, f, m, B, 17, b[10]), + m = p(m, g, h, f, C, 22, b[11]), + f = p(f, m, g, h, u, 7, b[12]), + h = p(h, f, m, g, D, 12, b[13]), + g = p(g, h, f, m, E, 17, b[14]), + m = p(m, g, h, f, x, 22, b[15]), + f = d(f, m, g, h, e, 5, b[16]), + h = d(h, f, m, g, t, 9, b[17]), + g = d(g, h, f, m, C, 14, b[18]), + m = d(m, g, h, f, c, 20, b[19]), + f = d(f, m, g, h, r, 5, b[20]), + h = d(h, f, m, g, B, 9, b[21]), + g = d(g, h, f, m, x, 14, b[22]), + m = d(m, g, h, f, z, 20, b[23]), + f = d(f, m, g, h, A, 5, b[24]), + h = d(h, f, m, g, E, 9, b[25]), + g = d(g, h, f, m, k, 14, b[26]), + m = d(m, g, h, f, v, 20, b[27]), + f = d(f, m, g, h, D, 5, b[28]), + h = d(h, f, m, g, j, 9, b[29]), + g = d(g, h, f, m, w, 14, b[30]), + m = d(m, g, h, f, u, 20, b[31]), + f = l(f, m, g, h, r, 4, b[32]), + h = l(h, f, m, g, v, 11, b[33]), + g = l(g, h, f, m, C, 16, b[34]), + m = l(m, g, h, f, E, 23, b[35]), + f = l(f, m, g, h, e, 4, b[36]), + h = l(h, f, m, g, z, 11, b[37]), + g = l(g, h, f, m, w, 16, b[38]), + m = l(m, g, h, f, B, 23, b[39]), + f = l(f, m, g, h, D, 4, b[40]), + h = l(h, f, m, g, c, 11, b[41]), + g = l(g, h, f, m, k, 16, b[42]), + m = l(m, g, h, f, t, 23, b[43]), + f = l(f, m, g, h, A, 4, b[44]), + h = l(h, f, m, g, u, 11, b[45]), + g = l(g, h, f, m, x, 16, b[46]), + m = l(m, g, h, f, j, 23, b[47]), + f = s(f, m, g, h, c, 6, b[48]), + h = s(h, f, m, g, w, 10, b[49]), + g = s(g, h, f, m, E, 15, b[50]), + m = s(m, g, h, f, r, 21, b[51]), + f = s(f, m, g, h, u, 6, b[52]), + h = s(h, f, m, g, k, 10, b[53]), + g = s(g, h, f, m, B, 15, b[54]), + m = s(m, g, h, f, e, 21, b[55]), + f = s(f, m, g, h, v, 6, b[56]), + h = s(h, f, m, g, x, 10, b[57]), + g = s(g, h, f, m, t, 15, b[58]), + m = s(m, g, h, f, D, 21, b[59]), + f = s(f, m, g, h, z, 6, b[60]), + h = s(h, f, m, g, C, 10, b[61]), + g = s(g, h, f, m, j, 15, b[62]), + m = s(m, g, h, f, A, 21, b[63]);a[0] = a[0] + f | 0;a[1] = a[1] + m | 0;a[2] = a[2] + g | 0;a[3] = a[3] + h | 0; + }, _doFinalize: function _doFinalize() { + var b = this._data, + n = b.words, + a = 8 * this._nDataBytes, + c = 8 * b.sigBytes;n[c >>> 5] |= 128 << 24 - c % 32;var e = u.floor(a / 4294967296);n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;b.sigBytes = 4 * (n.length + 1);this._process();b = this._hash;n = b.words;for (a = 0; 4 > a; a++) { + c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; + }return b; + }, clone: function clone() { + var b = v.clone.call(this);b._hash = this._hash.clone();return b; + } });t.MD5 = v._createHelper(r);t.HmacMD5 = v._createHmacHelper(r); + })(Math); + (function () { + var u = CryptoJS, + p = u.lib, + d = p.Base, + l = p.WordArray, + p = u.algo, + s = p.EvpKDF = d.extend({ cfg: d.extend({ keySize: 4, hasher: p.MD5, iterations: 1 }), init: function init(d) { + this.cfg = this.cfg.extend(d); + }, compute: function compute(d, r) { + for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { + n && s.update(n);var n = s.update(d).finalize(r);s.reset();for (var a = 1; a < p; a++) { + n = s.finalize(n), s.reset(); + }b.concat(n); + }b.sigBytes = 4 * q;return b; + } });u.EvpKDF = function (d, l, p) { + return s.create(p).compute(d, l); + }; + })(); + + CryptoJS.lib.Cipher || function (u) { + var p = CryptoJS, + d = p.lib, + l = d.Base, + s = d.WordArray, + t = d.BufferedBlockAlgorithm, + r = p.enc.Base64, + w = p.algo.EvpKDF, + v = d.Cipher = t.extend({ cfg: l.extend(), createEncryptor: function createEncryptor(e, a) { + return this.create(this._ENC_XFORM_MODE, e, a); + }, createDecryptor: function createDecryptor(e, a) { + return this.create(this._DEC_XFORM_MODE, e, a); + }, init: function init(e, a, b) { + this.cfg = this.cfg.extend(b);this._xformMode = e;this._key = a;this.reset(); + }, reset: function reset() { + t.reset.call(this);this._doReset(); + }, process: function process(e) { + this._append(e);return this._process(); + }, + finalize: function finalize(e) { + e && this._append(e);return this._doFinalize(); + }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function _createHelper(e) { + return { encrypt: function encrypt(b, k, d) { + return ("string" == typeof k ? c : a).encrypt(e, b, k, d); + }, decrypt: function decrypt(b, k, d) { + return ("string" == typeof k ? c : a).decrypt(e, b, k, d); + } }; + } });d.StreamCipher = v.extend({ _doFinalize: function _doFinalize() { + return this._process(!0); + }, blockSize: 1 });var b = p.mode = {}, + x = function x(e, a, b) { + var c = this._iv;c ? this._iv = u : c = this._prevBlock;for (var d = 0; d < b; d++) { + e[a + d] ^= c[d]; + } + }, + q = (d.BlockCipherMode = l.extend({ createEncryptor: function createEncryptor(e, a) { + return this.Encryptor.create(e, a); + }, createDecryptor: function createDecryptor(e, a) { + return this.Decryptor.create(e, a); + }, init: function init(e, a) { + this._cipher = e;this._iv = a; + } })).extend();q.Encryptor = q.extend({ processBlock: function processBlock(e, a) { + var b = this._cipher, + c = b.blockSize;x.call(this, e, a, c);b.encryptBlock(e, a);this._prevBlock = e.slice(a, a + c); + } });q.Decryptor = q.extend({ processBlock: function processBlock(e, a) { + var b = this._cipher, + c = b.blockSize, + d = e.slice(a, a + c);b.decryptBlock(e, a);x.call(this, e, a, c);this._prevBlock = d; + } });b = b.CBC = q;q = (p.pad = {}).Pkcs7 = { pad: function pad(a, b) { + for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) { + l.push(d); + }c = s.create(l, c);a.concat(c); + }, unpad: function unpad(a) { + a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255; + } };d.BlockCipher = v.extend({ cfg: v.cfg.extend({ mode: b, padding: q }), reset: function reset() { + v.reset.call(this);var a = this.cfg, + b = a.iv, + a = a.mode;if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;else c = a.createDecryptor, this._minBufferSize = 1;this._mode = c.call(a, this, b && b.words); + }, _doProcessBlock: function _doProcessBlock(a, b) { + this._mode.processBlock(a, b); + }, _doFinalize: function _doFinalize() { + var a = this.cfg.padding;if (this._xformMode == this._ENC_XFORM_MODE) { + a.pad(this._data, this.blockSize);var b = this._process(!0); + } else b = this._process(!0), a.unpad(b);return b; + }, blockSize: 4 });var n = d.CipherParams = l.extend({ init: function init(a) { + this.mixIn(a); + }, toString: function toString(a) { + return (a || this.formatter).stringify(this); + } }), + b = (p.format = {}).OpenSSL = { stringify: function stringify(a) { + var b = a.ciphertext;a = a.salt;return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r); + }, parse: function parse(a) { + a = r.parse(a);var b = a.words;if (1398893684 == b[0] && 1701076831 == b[1]) { + var c = s.create(b.slice(2, 4));b.splice(0, 4);a.sigBytes -= 16; + }return n.create({ ciphertext: a, salt: c }); + } }, + a = d.SerializableCipher = l.extend({ cfg: l.extend({ format: b }), encrypt: function encrypt(a, b, c, d) { + d = this.cfg.extend(d);var l = a.createEncryptor(c, d);b = l.finalize(b);l = l.cfg;return n.create({ ciphertext: b, key: c, iv: l.iv, algorithm: a, mode: l.mode, padding: l.padding, blockSize: a.blockSize, formatter: d.format }); + }, + decrypt: function decrypt(a, b, c, d) { + d = this.cfg.extend(d);b = this._parse(b, d.format);return a.createDecryptor(c, d).finalize(b.ciphertext); + }, _parse: function _parse(a, b) { + return "string" == typeof a ? b.parse(a, this) : a; + } }), + p = (p.kdf = {}).OpenSSL = { execute: function execute(a, b, c, d) { + d || (d = s.random(8));a = w.create({ keySize: b + c }).compute(a, d);c = s.create(a.words.slice(b), 4 * c);a.sigBytes = 4 * b;return n.create({ key: a, iv: c, salt: d }); + } }, + c = d.PasswordBasedCipher = a.extend({ cfg: a.cfg.extend({ kdf: p }), encrypt: function encrypt(b, c, d, l) { + l = this.cfg.extend(l);d = l.kdf.execute(d, b.keySize, b.ivSize);l.iv = d.iv;b = a.encrypt.call(this, b, c, d.key, l);b.mixIn(d);return b; + }, decrypt: function decrypt(b, c, d, l) { + l = this.cfg.extend(l);c = this._parse(c, l.format);d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);l.iv = d.iv;return a.decrypt.call(this, b, c, d.key, l); + } }); + }(); + + (function () { + for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) { + a[c] = 128 > c ? c << 1 : c << 1 ^ 283; + }for (var e = 0, j = 0, c = 0; 256 > c; c++) { + var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, + k = k >>> 8 ^ k & 255 ^ 99;l[e] = k;s[k] = e;var z = a[e], + F = a[z], + G = a[F], + y = 257 * a[k] ^ 16843008 * k;t[e] = y << 24 | y >>> 8;r[e] = y << 16 | y >>> 16;w[e] = y << 8 | y >>> 24;v[e] = y;y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e;b[k] = y << 24 | y >>> 8;x[k] = y << 16 | y >>> 16;q[k] = y << 8 | y >>> 24;n[k] = y;e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1; + }var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + d = d.AES = p.extend({ _doReset: function _doReset() { + for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) { + if (j < d) e[j] = c[j];else { + var k = e[j - 1];j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24);e[j] = e[j - d] ^ k; + } + }c = this._invKeySchedule = [];for (d = 0; d < a; d++) { + j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]]; + } + }, encryptBlock: function encryptBlock(a, b) { + this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l); + }, decryptBlock: function decryptBlock(a, c) { + var d = a[c + 1];a[c + 1] = a[c + 3];a[c + 3] = d;this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);d = a[c + 1];a[c + 1] = a[c + 3];a[c + 3] = d; + }, _doCryptBlock: function _doCryptBlock(a, b, c, d, e, j, l, f) { + for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) { + var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], + s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], + t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], + n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], + g = q, + h = s, + k = t; + }q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++];s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++];t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++];n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++];a[b] = q;a[b + 1] = s;a[b + 2] = t;a[b + 3] = n; + }, keySize: 8 });u.AES = p._createHelper(d); + })(); + + CryptoJS.mode.ECB = function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function processBlock(words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function processBlock(words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }(); + + module.exports = CryptoJS; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _cryptography = __webpack_require__(6); + + var _cryptography2 = _interopRequireDefault(_cryptography); + + var _config2 = __webpack_require__(2); + + var _config3 = _interopRequireDefault(_config2); + + var _listener_manager = __webpack_require__(9); + + var _listener_manager2 = _interopRequireDefault(_listener_manager); + + var _reconnection_manager = __webpack_require__(11); + + var _reconnection_manager2 = _interopRequireDefault(_reconnection_manager); + + var _deduping_manager = __webpack_require__(14); + + var _deduping_manager2 = _interopRequireDefault(_deduping_manager); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + var _flow_interfaces = __webpack_require__(5); + + var _categories = __webpack_require__(10); + + var _categories2 = _interopRequireDefault(_categories); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(_ref) { + var subscribeEndpoint = _ref.subscribeEndpoint, + leaveEndpoint = _ref.leaveEndpoint, + heartbeatEndpoint = _ref.heartbeatEndpoint, + setStateEndpoint = _ref.setStateEndpoint, + timeEndpoint = _ref.timeEndpoint, + config = _ref.config, + crypto = _ref.crypto, + listenerManager = _ref.listenerManager; + + _classCallCheck(this, _class); + + this._listenerManager = listenerManager; + this._config = config; + + this._leaveEndpoint = leaveEndpoint; + this._heartbeatEndpoint = heartbeatEndpoint; + this._setStateEndpoint = setStateEndpoint; + this._subscribeEndpoint = subscribeEndpoint; + + this._crypto = crypto; + + this._channels = {}; + this._presenceChannels = {}; + + this._heartbeatChannels = {}; + this._heartbeatChannelGroups = {}; + + this._channelGroups = {}; + this._presenceChannelGroups = {}; + + this._pendingChannelSubscriptions = []; + this._pendingChannelGroupSubscriptions = []; + + this._currentTimetoken = 0; + this._lastTimetoken = 0; + this._storedTimetoken = null; + + this._subscriptionStatusAnnounced = false; + + this._isOnline = true; + + this._reconnectionManager = new _reconnection_manager2.default({ timeEndpoint: timeEndpoint }); + this._dedupingManager = new _deduping_manager2.default({ config: config }); + } + + _createClass(_class, [{ + key: 'adaptStateChange', + value: function adaptStateChange(args, callback) { + var _this = this; + + var state = args.state, + _args$channels = args.channels, + channels = _args$channels === undefined ? [] : _args$channels, + _args$channelGroups = args.channelGroups, + channelGroups = _args$channelGroups === undefined ? [] : _args$channelGroups; + + + channels.forEach(function (channel) { + if (channel in _this._channels) _this._channels[channel].state = state; + }); + + channelGroups.forEach(function (channelGroup) { + if (channelGroup in _this._channelGroups) _this._channelGroups[channelGroup].state = state; + }); + + return this._setStateEndpoint({ state: state, channels: channels, channelGroups: channelGroups }, callback); + } + }, { + key: 'adaptPresenceChange', + value: function adaptPresenceChange(args) { + var _this2 = this; + + var connected = args.connected, + _args$channels2 = args.channels, + channels = _args$channels2 === undefined ? [] : _args$channels2, + _args$channelGroups2 = args.channelGroups, + channelGroups = _args$channelGroups2 === undefined ? [] : _args$channelGroups2; + + + if (connected) { + channels.forEach(function (channel) { + _this2._heartbeatChannels[channel] = { state: {} }; + }); + + channelGroups.forEach(function (channelGroup) { + _this2._heartbeatChannelGroups[channelGroup] = { state: {} }; + }); + } else { + channels.forEach(function (channel) { + if (channel in _this2._heartbeatChannels) { + delete _this2._heartbeatChannels[channel]; + } + }); + + channelGroups.forEach(function (channelGroup) { + if (channelGroup in _this2._heartbeatChannelGroups) { + delete _this2._heartbeatChannelGroups[channelGroup]; + } + }); + + if (this._config.suppressLeaveEvents === false) { + this._leaveEndpoint({ channels: channels, channelGroups: channelGroups }, function (status) { + _this2._listenerManager.announceStatus(status); + }); + } + } + + this.reconnect(); + } + }, { + key: 'adaptSubscribeChange', + value: function adaptSubscribeChange(args) { + var _this3 = this; + + var timetoken = args.timetoken, + _args$channels3 = args.channels, + channels = _args$channels3 === undefined ? [] : _args$channels3, + _args$channelGroups3 = args.channelGroups, + channelGroups = _args$channelGroups3 === undefined ? [] : _args$channelGroups3, + _args$withPresence = args.withPresence, + withPresence = _args$withPresence === undefined ? false : _args$withPresence; + + + if (!this._config.subscribeKey || this._config.subscribeKey === '') { + if (console && console.log) console.log('subscribe key missing; aborting subscribe'); + return; + } + + if (timetoken) { + this._lastTimetoken = this._currentTimetoken; + this._currentTimetoken = timetoken; + } + + if (this._currentTimetoken !== '0') { + this._storedTimetoken = this._currentTimetoken; + this._currentTimetoken = 0; + } + + channels.forEach(function (channel) { + _this3._channels[channel] = { state: {} }; + if (withPresence) _this3._presenceChannels[channel] = {}; + + _this3._pendingChannelSubscriptions.push(channel); + }); + + channelGroups.forEach(function (channelGroup) { + _this3._channelGroups[channelGroup] = { state: {} }; + if (withPresence) _this3._presenceChannelGroups[channelGroup] = {}; + + _this3._pendingChannelGroupSubscriptions.push(channelGroup); + }); + + this._subscriptionStatusAnnounced = false; + this.reconnect(); + } + }, { + key: 'adaptUnsubscribeChange', + value: function adaptUnsubscribeChange(args, isOffline) { + var _this4 = this; + + var _args$channels4 = args.channels, + channels = _args$channels4 === undefined ? [] : _args$channels4, + _args$channelGroups4 = args.channelGroups, + channelGroups = _args$channelGroups4 === undefined ? [] : _args$channelGroups4; + + var actualChannels = []; + var actualChannelGroups = []; + + + channels.forEach(function (channel) { + if (channel in _this4._channels) { + delete _this4._channels[channel]; + actualChannels.push(channel); + } + if (channel in _this4._presenceChannels) { + delete _this4._presenceChannels[channel]; + actualChannels.push(channel); + } + }); + + channelGroups.forEach(function (channelGroup) { + if (channelGroup in _this4._channelGroups) { + delete _this4._channelGroups[channelGroup]; + actualChannelGroups.push(channelGroup); + } + if (channelGroup in _this4._presenceChannelGroups) { + delete _this4._channelGroups[channelGroup]; + actualChannelGroups.push(channelGroup); + } + }); + + if (actualChannels.length === 0 && actualChannelGroups.length === 0) { + return; + } + + if (this._config.suppressLeaveEvents === false && !isOffline) { + this._leaveEndpoint({ channels: actualChannels, channelGroups: actualChannelGroups }, function (status) { + status.affectedChannels = actualChannels; + status.affectedChannelGroups = actualChannelGroups; + status.currentTimetoken = _this4._currentTimetoken; + status.lastTimetoken = _this4._lastTimetoken; + _this4._listenerManager.announceStatus(status); + }); + } + + if (Object.keys(this._channels).length === 0 && Object.keys(this._presenceChannels).length === 0 && Object.keys(this._channelGroups).length === 0 && Object.keys(this._presenceChannelGroups).length === 0) { + this._lastTimetoken = 0; + this._currentTimetoken = 0; + this._storedTimetoken = null; + this._region = null; + this._reconnectionManager.stopPolling(); + } + + this.reconnect(); + } + }, { + key: 'unsubscribeAll', + value: function unsubscribeAll(isOffline) { + this.adaptUnsubscribeChange({ channels: this.getSubscribedChannels(), channelGroups: this.getSubscribedChannelGroups() }, isOffline); + } + }, { + key: 'getHeartbeatChannels', + value: function getHeartbeatChannels() { + return Object.keys(this._heartbeatChannels); + } + }, { + key: 'getHeartbeatChannelGroups', + value: function getHeartbeatChannelGroups() { + return Object.keys(this._heartbeatChannelGroups); + } + }, { + key: 'getSubscribedChannels', + value: function getSubscribedChannels() { + return Object.keys(this._channels); + } + }, { + key: 'getSubscribedChannelGroups', + value: function getSubscribedChannelGroups() { + return Object.keys(this._channelGroups); + } + }, { + key: 'reconnect', + value: function reconnect() { + this._startSubscribeLoop(); + this._registerHeartbeatTimer(); + } + }, { + key: 'disconnect', + value: function disconnect() { + this._stopSubscribeLoop(); + this._stopHeartbeatTimer(); + this._reconnectionManager.stopPolling(); + } + }, { + key: '_registerHeartbeatTimer', + value: function _registerHeartbeatTimer() { + this._stopHeartbeatTimer(); + + if (this._config.getHeartbeatInterval() === 0) { + return; + } + + this._performHeartbeatLoop(); + this._heartbeatTimer = setInterval(this._performHeartbeatLoop.bind(this), this._config.getHeartbeatInterval() * 1000); + } + }, { + key: '_stopHeartbeatTimer', + value: function _stopHeartbeatTimer() { + if (this._heartbeatTimer) { + clearInterval(this._heartbeatTimer); + this._heartbeatTimer = null; + } + } + }, { + key: '_performHeartbeatLoop', + value: function _performHeartbeatLoop() { + var _this5 = this; + + var heartbeatChannels = []; + heartbeatChannels = heartbeatChannels.concat(this.getHeartbeatChannels()); + heartbeatChannels = heartbeatChannels.concat(this.getSubscribedChannels()); + + var heartbeatChannelGroups = []; + heartbeatChannelGroups = heartbeatChannelGroups.concat(this.getHeartbeatChannelGroups()); + heartbeatChannelGroups = heartbeatChannelGroups.concat(this.getSubscribedChannelGroups()); + + var presenceState = {}; + + if (heartbeatChannels.length === 0 && heartbeatChannelGroups.length === 0) { + return; + } + + this.getSubscribedChannels().forEach(function (channel) { + var channelState = _this5._channels[channel].state; + if (Object.keys(channelState).length) presenceState[channel] = channelState; + }); + + this.getSubscribedChannelGroups().forEach(function (channelGroup) { + var channelGroupState = _this5._channelGroups[channelGroup].state; + if (Object.keys(channelGroupState).length) presenceState[channelGroup] = channelGroupState; + }); + + var onHeartbeat = function onHeartbeat(status) { + if (status.error && _this5._config.announceFailedHeartbeats) { + _this5._listenerManager.announceStatus(status); + } + + if (status.error && _this5._config.autoNetworkDetection && _this5._isOnline) { + _this5._isOnline = false; + _this5.disconnect(); + _this5._listenerManager.announceNetworkDown(); + _this5.reconnect(); + } + + if (!status.error && _this5._config.announceSuccessfulHeartbeats) { + _this5._listenerManager.announceStatus(status); + } + }; + + this._heartbeatEndpoint({ + channels: heartbeatChannels, + channelGroups: heartbeatChannelGroups, + state: presenceState }, onHeartbeat.bind(this)); + } + }, { + key: '_startSubscribeLoop', + value: function _startSubscribeLoop() { + this._stopSubscribeLoop(); + var channels = []; + var channelGroups = []; + + Object.keys(this._channels).forEach(function (channel) { + return channels.push(channel); + }); + Object.keys(this._presenceChannels).forEach(function (channel) { + return channels.push(channel + '-pnpres'); + }); + + Object.keys(this._channelGroups).forEach(function (channelGroup) { + return channelGroups.push(channelGroup); + }); + Object.keys(this._presenceChannelGroups).forEach(function (channelGroup) { + return channelGroups.push(channelGroup + '-pnpres'); + }); + + if (channels.length === 0 && channelGroups.length === 0) { + return; + } + + var subscribeArgs = { + channels: channels, + channelGroups: channelGroups, + timetoken: this._currentTimetoken, + filterExpression: this._config.filterExpression, + region: this._region + }; + + this._subscribeCall = this._subscribeEndpoint(subscribeArgs, this._processSubscribeResponse.bind(this)); + } + }, { + key: '_processSubscribeResponse', + value: function _processSubscribeResponse(status, payload) { + var _this6 = this; + + if (status.error) { + if (status.category === _categories2.default.PNTimeoutCategory) { + this._startSubscribeLoop(); + } else if (status.category === _categories2.default.PNNetworkIssuesCategory) { + this.disconnect(); + + if (status.error && this._config.autoNetworkDetection && this._isOnline) { + this._isOnline = false; + this._listenerManager.announceNetworkDown(); + } + + this._reconnectionManager.onReconnection(function () { + if (_this6._config.autoNetworkDetection && !_this6._isOnline) { + _this6._isOnline = true; + _this6._listenerManager.announceNetworkUp(); + } + _this6.reconnect(); + _this6._subscriptionStatusAnnounced = true; + var reconnectedAnnounce = { + category: _categories2.default.PNReconnectedCategory, + operation: status.operation, + lastTimetoken: _this6._lastTimetoken, + currentTimetoken: _this6._currentTimetoken + }; + _this6._listenerManager.announceStatus(reconnectedAnnounce); + }); + + this._reconnectionManager.startPolling(); + this._listenerManager.announceStatus(status); + } else if (status.category === _categories2.default.PNBadRequestCategory) { + this._stopHeartbeatTimer(); + this._listenerManager.announceStatus(status); + } else { + this._listenerManager.announceStatus(status); + } + + return; + } + + if (this._storedTimetoken) { + this._currentTimetoken = this._storedTimetoken; + this._storedTimetoken = null; + } else { + this._lastTimetoken = this._currentTimetoken; + this._currentTimetoken = payload.metadata.timetoken; + } + + if (!this._subscriptionStatusAnnounced) { + var connectedAnnounce = {}; + connectedAnnounce.category = _categories2.default.PNConnectedCategory; + connectedAnnounce.operation = status.operation; + connectedAnnounce.affectedChannels = this._pendingChannelSubscriptions; + connectedAnnounce.subscribedChannels = this.getSubscribedChannels(); + connectedAnnounce.affectedChannelGroups = this._pendingChannelGroupSubscriptions; + connectedAnnounce.lastTimetoken = this._lastTimetoken; + connectedAnnounce.currentTimetoken = this._currentTimetoken; + this._subscriptionStatusAnnounced = true; + this._listenerManager.announceStatus(connectedAnnounce); + + this._pendingChannelSubscriptions = []; + this._pendingChannelGroupSubscriptions = []; + } + + var messages = payload.messages || []; + var _config = this._config, + requestMessageCountThreshold = _config.requestMessageCountThreshold, + dedupeOnSubscribe = _config.dedupeOnSubscribe; + + + if (requestMessageCountThreshold && messages.length >= requestMessageCountThreshold) { + var countAnnouncement = {}; + countAnnouncement.category = _categories2.default.PNRequestMessageCountExceededCategory; + countAnnouncement.operation = status.operation; + this._listenerManager.announceStatus(countAnnouncement); + } + + messages.forEach(function (message) { + var channel = message.channel; + var subscriptionMatch = message.subscriptionMatch; + var publishMetaData = message.publishMetaData; + + if (channel === subscriptionMatch) { + subscriptionMatch = null; + } + + if (dedupeOnSubscribe) { + if (_this6._dedupingManager.isDuplicate(message)) { + return; + } else { + _this6._dedupingManager.addEntry(message); + } + } + + if (_utils2.default.endsWith(message.channel, '-pnpres')) { + var announce = {}; + announce.channel = null; + announce.subscription = null; + + announce.actualChannel = subscriptionMatch != null ? channel : null; + announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; + + + if (channel) { + announce.channel = channel.substring(0, channel.lastIndexOf('-pnpres')); + } + + if (subscriptionMatch) { + announce.subscription = subscriptionMatch.substring(0, subscriptionMatch.lastIndexOf('-pnpres')); + } + + announce.action = message.payload.action; + announce.state = message.payload.data; + announce.timetoken = publishMetaData.publishTimetoken; + announce.occupancy = message.payload.occupancy; + announce.uuid = message.payload.uuid; + announce.timestamp = message.payload.timestamp; + + if (message.payload.join) { + announce.join = message.payload.join; + } + + if (message.payload.leave) { + announce.leave = message.payload.leave; + } + + if (message.payload.timeout) { + announce.timeout = message.payload.timeout; + } + + _this6._listenerManager.announcePresence(announce); + } else { + var _announce = {}; + _announce.channel = null; + _announce.subscription = null; + + _announce.actualChannel = subscriptionMatch != null ? channel : null; + _announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; + + + _announce.channel = channel; + _announce.subscription = subscriptionMatch; + _announce.timetoken = publishMetaData.publishTimetoken; + _announce.publisher = message.issuingClientId; + + if (message.userMetadata) { + _announce.userMetadata = message.userMetadata; + } + + if (_this6._config.cipherKey) { + _announce.message = _this6._crypto.decrypt(message.payload); + } else { + _announce.message = message.payload; + } + + _this6._listenerManager.announceMessage(_announce); + } + }); + + this._region = payload.metadata.region; + this._startSubscribeLoop(); + } + }, { + key: '_stopSubscribeLoop', + value: function _stopSubscribeLoop() { + if (this._subscribeCall) { + if (typeof this._subscribeCall.abort === 'function') { + this._subscribeCall.abort(); + } + this._subscribeCall = null; + } + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _flow_interfaces = __webpack_require__(5); + + var _categories = __webpack_require__(10); + + var _categories2 = _interopRequireDefault(_categories); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class() { + _classCallCheck(this, _class); + + this._listeners = []; + } + + _createClass(_class, [{ + key: 'addListener', + value: function addListener(newListeners) { + this._listeners.push(newListeners); + } + }, { + key: 'removeListener', + value: function removeListener(deprecatedListener) { + var newListeners = []; + + this._listeners.forEach(function (listener) { + if (listener !== deprecatedListener) newListeners.push(listener); + }); + + this._listeners = newListeners; + } + }, { + key: 'removeAllListeners', + value: function removeAllListeners() { + this._listeners = []; + } + }, { + key: 'announcePresence', + value: function announcePresence(announce) { + this._listeners.forEach(function (listener) { + if (listener.presence) listener.presence(announce); + }); + } + }, { + key: 'announceStatus', + value: function announceStatus(announce) { + this._listeners.forEach(function (listener) { + if (listener.status) listener.status(announce); + }); + } + }, { + key: 'announceMessage', + value: function announceMessage(announce) { + this._listeners.forEach(function (listener) { + if (listener.message) listener.message(announce); + }); + } + }, { + key: 'announceNetworkUp', + value: function announceNetworkUp() { + var networkStatus = {}; + networkStatus.category = _categories2.default.PNNetworkUpCategory; + this.announceStatus(networkStatus); + } + }, { + key: 'announceNetworkDown', + value: function announceNetworkDown() { + var networkStatus = {}; + networkStatus.category = _categories2.default.PNNetworkDownCategory; + this.announceStatus(networkStatus); + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = { + PNNetworkUpCategory: 'PNNetworkUpCategory', + + PNNetworkDownCategory: 'PNNetworkDownCategory', + + PNNetworkIssuesCategory: 'PNNetworkIssuesCategory', + + PNTimeoutCategory: 'PNTimeoutCategory', + + PNBadRequestCategory: 'PNBadRequestCategory', + + PNAccessDeniedCategory: 'PNAccessDeniedCategory', + + PNUnknownCategory: 'PNUnknownCategory', + + PNReconnectedCategory: 'PNReconnectedCategory', + + PNConnectedCategory: 'PNConnectedCategory', + + PNRequestMessageCountExceededCategory: 'PNRequestMessageCountExceededCategory' + + }; + module.exports = exports['default']; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _time = __webpack_require__(12); + + var _time2 = _interopRequireDefault(_time); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(_ref) { + var timeEndpoint = _ref.timeEndpoint; + + _classCallCheck(this, _class); + + this._timeEndpoint = timeEndpoint; + } + + _createClass(_class, [{ + key: 'onReconnection', + value: function onReconnection(reconnectionCallback) { + this._reconnectionCallback = reconnectionCallback; + } + }, { + key: 'startPolling', + value: function startPolling() { + this._timeTimer = setInterval(this._performTimeLoop.bind(this), 3000); + } + }, { + key: 'stopPolling', + value: function stopPolling() { + clearInterval(this._timeTimer); + } + }, { + key: '_performTimeLoop', + value: function _performTimeLoop() { + var _this = this; + + this._timeEndpoint(function (status) { + if (!status.error) { + clearInterval(_this._timeTimer); + _this._reconnectionCallback(); + } + }); + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.prepareParams = prepareParams; + exports.isAuthSupported = isAuthSupported; + exports.handleResponse = handleResponse; + exports.validateParams = validateParams; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNTimeOperation; + } + + function getURL() { + return '/time/0'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function prepareParams() { + return {}; + } + + function isAuthSupported() { + return false; + } + + function handleResponse(modules, serverResponse) { + return { + timetoken: serverResponse[0] + }; + } + + function validateParams() {} + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = { + PNTimeOperation: 'PNTimeOperation', + + PNHistoryOperation: 'PNHistoryOperation', + PNDeleteMessagesOperation: 'PNDeleteMessagesOperation', + PNFetchMessagesOperation: 'PNFetchMessagesOperation', + + PNSubscribeOperation: 'PNSubscribeOperation', + PNUnsubscribeOperation: 'PNUnsubscribeOperation', + PNPublishOperation: 'PNPublishOperation', + + PNPushNotificationEnabledChannelsOperation: 'PNPushNotificationEnabledChannelsOperation', + PNRemoveAllPushNotificationsOperation: 'PNRemoveAllPushNotificationsOperation', + + PNWhereNowOperation: 'PNWhereNowOperation', + PNSetStateOperation: 'PNSetStateOperation', + PNHereNowOperation: 'PNHereNowOperation', + PNGetStateOperation: 'PNGetStateOperation', + PNHeartbeatOperation: 'PNHeartbeatOperation', + + PNChannelGroupsOperation: 'PNChannelGroupsOperation', + PNRemoveGroupOperation: 'PNRemoveGroupOperation', + PNChannelsForGroupOperation: 'PNChannelsForGroupOperation', + PNAddChannelsToGroupOperation: 'PNAddChannelsToGroupOperation', + PNRemoveChannelsFromGroupOperation: 'PNRemoveChannelsFromGroupOperation', + + PNAccessManagerGrant: 'PNAccessManagerGrant', + PNAccessManagerAudit: 'PNAccessManagerAudit' + }; + module.exports = exports['default']; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _config = __webpack_require__(2); + + var _config2 = _interopRequireDefault(_config); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var hashCode = function hashCode(payload) { + var hash = 0; + if (payload.length === 0) return hash; + for (var i = 0; i < payload.length; i += 1) { + var character = payload.charCodeAt(i); + hash = (hash << 5) - hash + character; + hash = hash & hash; + } + return hash; + }; + + var _class = function () { + function _class(_ref) { + var config = _ref.config; + + _classCallCheck(this, _class); + + this.hashHistory = []; + this._config = config; + } + + _createClass(_class, [{ + key: 'getKey', + value: function getKey(message) { + var hashedPayload = hashCode(JSON.stringify(message.payload)).toString(); + var timetoken = message.publishMetaData.publishTimetoken; + return timetoken + '-' + hashedPayload; + } + }, { + key: 'isDuplicate', + value: function isDuplicate(message) { + return this.hashHistory.includes(this.getKey(message)); + } + }, { + key: 'addEntry', + value: function addEntry(message) { + if (this.hashHistory.length >= this._config.maximumCacheSize) { + this.hashHistory.shift(); + } + + this.hashHistory.push(this.getKey(message)); + } + }, { + key: 'clearHistory', + value: function clearHistory() { + this.hashHistory = []; + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + 'use strict'; + + function objectToList(o) { + var l = []; + Object.keys(o).forEach(function (key) { + return l.push(key); + }); + return l; + } + + function encodeString(input) { + return encodeURIComponent(input).replace(/[!~*'()]/g, function (x) { + return '%' + x.charCodeAt(0).toString(16).toUpperCase(); + }); + } + + function objectToListSorted(o) { + return objectToList(o).sort(); + } + + function signPamFromParams(params) { + var l = objectToListSorted(params); + return l.map(function (paramKey) { + return paramKey + '=' + encodeString(params[paramKey]); + }).join('&'); + } + + function endsWith(searchString, suffix) { + return searchString.indexOf(suffix, this.length - suffix.length) !== -1; + } + + function createPromise() { + var successResolve = void 0; + var failureResolve = void 0; + var promise = new Promise(function (fulfill, reject) { + successResolve = fulfill; + failureResolve = reject; + }); + + return { promise: promise, reject: failureResolve, fulfill: successResolve }; + } + + module.exports = { signPamFromParams: signPamFromParams, endsWith: endsWith, createPromise: createPromise, encodeString: encodeString }; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + exports.default = function (modules, endpoint) { + var networking = modules.networking, + config = modules.config; + + var callback = null; + var promiseComponent = null; + var incomingParams = {}; + + if (endpoint.getOperation() === _operations2.default.PNTimeOperation || endpoint.getOperation() === _operations2.default.PNChannelGroupsOperation) { + callback = arguments.length <= 2 ? undefined : arguments[2]; + } else { + incomingParams = arguments.length <= 2 ? undefined : arguments[2]; + callback = arguments.length <= 3 ? undefined : arguments[3]; + } + + if (typeof Promise !== 'undefined' && !callback) { + promiseComponent = _utils2.default.createPromise(); + } + + var validationResult = endpoint.validateParams(modules, incomingParams); + + if (validationResult) { + if (callback) { + return callback(createValidationError(validationResult)); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); + return promiseComponent.promise; + } + return; + } + + var outgoingParams = endpoint.prepareParams(modules, incomingParams); + var url = decideURL(endpoint, modules, incomingParams); + var callInstance = void 0; + var networkingParams = { url: url, + operation: endpoint.getOperation(), + timeout: endpoint.getRequestTimeout(modules) + }; + + outgoingParams.uuid = config.UUID; + outgoingParams.pnsdk = generatePNSDK(config); + + if (config.useInstanceId) { + outgoingParams.instanceid = config.instanceId; + } + + if (config.useRequestId) { + outgoingParams.requestid = _uuid2.default.createUUID(); + } + + if (endpoint.isAuthSupported() && config.getAuthKey()) { + outgoingParams.auth = config.getAuthKey(); + } + + if (config.secretKey) { + signRequest(modules, url, outgoingParams); + } + + var onResponse = function onResponse(status, payload) { + if (status.error) { + if (callback) { + callback(status); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status)); + } + return; + } + + var parsedPayload = endpoint.handleResponse(modules, payload, incomingParams); + + if (callback) { + callback(status, parsedPayload); + } else if (promiseComponent) { + promiseComponent.fulfill(parsedPayload); + } + }; + + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + var payload = endpoint.postPayload(modules, incomingParams); + callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse); + } else if (endpoint.useDelete && endpoint.useDelete()) { + callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse); + } else { + callInstance = networking.GET(outgoingParams, networkingParams, onResponse); + } + + if (endpoint.getOperation() === _operations2.default.PNSubscribeOperation) { + return callInstance; + } + + if (promiseComponent) { + return promiseComponent.promise; + } + }; + + var _uuid = __webpack_require__(3); + + var _uuid2 = _interopRequireDefault(_uuid); + + var _flow_interfaces = __webpack_require__(5); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + var _config = __webpack_require__(2); + + var _config2 = _interopRequireDefault(_config); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var PubNubError = function (_Error) { + _inherits(PubNubError, _Error); + + function PubNubError(message, status) { + _classCallCheck(this, PubNubError); + + var _this = _possibleConstructorReturn(this, (PubNubError.__proto__ || Object.getPrototypeOf(PubNubError)).call(this, message)); + + _this.name = _this.constructor.name; + _this.status = status; + _this.message = message; + return _this; + } + + return PubNubError; + }(Error); + + function createError(errorPayload, type) { + errorPayload.type = type; + errorPayload.error = true; + return errorPayload; + } + + function createValidationError(message) { + return createError({ message: message }, 'validationError'); + } + + function decideURL(endpoint, modules, incomingParams) { + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + return endpoint.postURL(modules, incomingParams); + } else { + return endpoint.getURL(modules, incomingParams); + } + } + + function generatePNSDK(config) { + if (config.sdkName) { + return config.sdkName; + } + + var base = 'PubNub-JS-' + config.sdkFamily; + + if (config.partnerId) { + base += '-' + config.partnerId; + } + + base += '/' + config.getVersion(); + + return base; + } + + function signRequest(modules, url, outgoingParams) { + var config = modules.config, + crypto = modules.crypto; + + + outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000); + var signInput = config.subscribeKey + '\n' + config.publishKey + '\n' + url + '\n'; + signInput += _utils2.default.signPamFromParams(outgoingParams); + + var signature = crypto.HMACSHA256(signInput); + signature = signature.replace(/\+/g, '-'); + signature = signature.replace(/\//g, '_'); + + outgoingParams.signature = signature; + } + + module.exports = exports['default']; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNAddChannelsToGroupOperation; + } + + function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + + + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + return '/v1/channel-registration/sub-key/' + config.subscribeKey + '/channel-group/' + _utils2.default.encodeString(channelGroup); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + + return { + add: channels.join(',') + }; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNRemoveChannelsFromGroupOperation; + } + + function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + + + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + return '/v1/channel-registration/sub-key/' + config.subscribeKey + '/channel-group/' + _utils2.default.encodeString(channelGroup); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + + return { + remove: channels.join(',') + }; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.isAuthSupported = isAuthSupported; + exports.getRequestTimeout = getRequestTimeout; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNRemoveGroupOperation; + } + + function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + return '/v1/channel-registration/sub-key/' + config.subscribeKey + '/channel-group/' + _utils2.default.encodeString(channelGroup) + '/remove'; + } + + function isAuthSupported() { + return true; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function prepareParams() { + return {}; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNChannelGroupsOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules) { + var config = modules.config; + + return '/v1/channel-registration/sub-key/' + config.subscribeKey + '/channel-group'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams() { + return {}; + } + + function handleResponse(modules, serverResponse) { + return { + groups: serverResponse.payload.groups + }; + } + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNChannelsForGroupOperation; + } + + function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + + return '/v1/channel-registration/sub-key/' + config.subscribeKey + '/channel-group/' + _utils2.default.encodeString(channelGroup); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams() { + return {}; + } + + function handleResponse(modules, serverResponse) { + return { + channels: serverResponse.payload.channels + }; + } + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNPushNotificationEnabledChannelsOperation; + } + + function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels; + var config = modules.config; + + + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm or apns)'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var device = incomingParams.device; + var config = modules.config; + + return '/v1/push/sub-key/' + config.subscribeKey + '/devices/' + device; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + return { type: pushGateway, add: channels.join(',') }; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNPushNotificationEnabledChannelsOperation; + } + + function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels; + var config = modules.config; + + + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm or apns)'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var device = incomingParams.device; + var config = modules.config; + + return '/v1/push/sub-key/' + config.subscribeKey + '/devices/' + device; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + return { type: pushGateway, remove: channels.join(',') }; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNPushNotificationEnabledChannelsOperation; + } + + function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; + + + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm or apns)'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var device = incomingParams.device; + var config = modules.config; + + return '/v1/push/sub-key/' + config.subscribeKey + '/devices/' + device; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway; + + return { type: pushGateway }; + } + + function handleResponse(modules, serverResponse) { + return { channels: serverResponse }; + } + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNRemoveAllPushNotificationsOperation; + } + + function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; + + + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm or apns)'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var device = incomingParams.device; + var config = modules.config; + + return '/v1/push/sub-key/' + config.subscribeKey + '/devices/' + device + '/remove'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway; + + return { type: pushGateway }; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNUnsubscribeOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v2/presence/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(stringifiedChannels) + '/leave'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2; + + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNWhereNowOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === undefined ? config.UUID : _incomingParams$uuid; + + return '/v2/presence/sub-key/' + config.subscribeKey + '/uuid/' + uuid; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams() { + return {}; + } + + function handleResponse(modules, serverResponse) { + if (!serverResponse.payload) { + return { channels: [] }; + } + return { channels: serverResponse.payload.channels }; + } + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.isAuthSupported = isAuthSupported; + exports.getRequestTimeout = getRequestTimeout; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNHeartbeatOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v2/presence/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(stringifiedChannels) + '/heartbeat'; + } + + function isAuthSupported() { + return true; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2, + _incomingParams$state = incomingParams.state, + state = _incomingParams$state === undefined ? {} : _incomingParams$state; + var config = modules.config; + + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + params.state = JSON.stringify(state); + params.heartbeat = config.getPresenceTimeout(); + return params; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNGetStateOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === undefined ? config.UUID : _incomingParams$uuid, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v2/presence/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(stringifiedChannels) + '/uuid/' + uuid; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2; + + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; + } + + function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === undefined ? [] : _incomingParams$chann3, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === undefined ? [] : _incomingParams$chann4; + + var channelsResponse = {}; + + if (channels.length === 1 && channelGroups.length === 0) { + channelsResponse[channels[0]] = serverResponse.payload; + } else { + channelsResponse = serverResponse.payload; + } + + return { channels: channelsResponse }; + } + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNSetStateOperation; + } + + function validateParams(modules, incomingParams) { + var config = modules.config; + var state = incomingParams.state, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2; + + + if (!state) return 'Missing State'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === undefined ? [] : _incomingParams$chann3; + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v2/presence/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(stringifiedChannels) + '/uuid/' + config.UUID + '/data'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var state = incomingParams.state, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === undefined ? [] : _incomingParams$chann4; + + var params = {}; + + params.state = JSON.stringify(state); + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; + } + + function handleResponse(modules, serverResponse) { + return { state: serverResponse.payload }; + } + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNHereNowOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2; + + var baseURL = '/v2/presence/sub-key/' + config.subscribeKey; + + if (channels.length > 0 || channelGroups.length > 0) { + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + baseURL += '/channel/' + _utils2.default.encodeString(stringifiedChannels); + } + + return baseURL; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann3 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann3 === undefined ? [] : _incomingParams$chann3, + _incomingParams$inclu = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu === undefined ? true : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeState, + includeState = _incomingParams$inclu2 === undefined ? false : _incomingParams$inclu2; + + var params = {}; + + if (!includeUUIDs) params.disable_uuids = 1; + if (includeState) params.state = 1; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; + } + + function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann4 = incomingParams.channels, + channels = _incomingParams$chann4 === undefined ? [] : _incomingParams$chann4, + _incomingParams$chann5 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann5 === undefined ? [] : _incomingParams$chann5, + _incomingParams$inclu3 = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu3 === undefined ? true : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeState, + includeState = _incomingParams$inclu4 === undefined ? false : _incomingParams$inclu4; + + + var prepareSingularChannel = function prepareSingularChannel() { + var response = {}; + var occupantsList = []; + response.totalChannels = 1; + response.totalOccupancy = serverResponse.occupancy; + response.channels = {}; + response.channels[channels[0]] = { + occupants: occupantsList, + name: channels[0], + occupancy: serverResponse.occupancy + }; + + if (includeUUIDs && serverResponse.uuids) { + serverResponse.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ state: uuidEntry.state, uuid: uuidEntry.uuid }); + } else { + occupantsList.push({ state: null, uuid: uuidEntry }); + } + }); + } + + return response; + }; + + var prepareMultipleChannel = function prepareMultipleChannel() { + var response = {}; + response.totalChannels = serverResponse.payload.total_channels; + response.totalOccupancy = serverResponse.payload.total_occupancy; + response.channels = {}; + + Object.keys(serverResponse.payload.channels).forEach(function (channelName) { + var channelEntry = serverResponse.payload.channels[channelName]; + var occupantsList = []; + response.channels[channelName] = { + occupants: occupantsList, + name: channelName, + occupancy: channelEntry.occupancy + }; + + if (includeUUIDs) { + channelEntry.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ state: uuidEntry.state, uuid: uuidEntry.uuid }); + } else { + occupantsList.push({ state: null, uuid: uuidEntry }); + } + }); + } + + return response; + }); + + return response; + }; + + var response = void 0; + if (channels.length > 1 || channelGroups.length > 0 || channelGroups.length === 0 && channels.length === 0) { + response = prepareMultipleChannel(); + } else { + response = prepareSingularChannel(); + } + + return response; + } + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNAccessManagerAudit; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules) { + var config = modules.config; + + return '/v2/auth/audit/sub-key/' + config.subscribeKey; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return false; + } + + function prepareParams(modules, incomingParams) { + var channel = incomingParams.channel, + channelGroup = incomingParams.channelGroup, + _incomingParams$authK = incomingParams.authKeys, + authKeys = _incomingParams$authK === undefined ? [] : _incomingParams$authK; + + var params = {}; + + if (channel) { + params.channel = channel; + } + + if (channelGroup) { + params['channel-group'] = channelGroup; + } + + if (authKeys.length > 0) { + params.auth = authKeys.join(','); + } + + return params; + } + + function handleResponse(modules, serverResponse) { + return serverResponse.payload; + } + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNAccessManagerGrant; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!config.publishKey) return 'Missing Publish Key'; + if (!config.secretKey) return 'Missing Secret Key'; + } + + function getURL(modules) { + var config = modules.config; + + return '/v2/auth/grant/sub-key/' + config.subscribeKey; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return false; + } + + function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2, + ttl = incomingParams.ttl, + _incomingParams$read = incomingParams.read, + read = _incomingParams$read === undefined ? false : _incomingParams$read, + _incomingParams$write = incomingParams.write, + write = _incomingParams$write === undefined ? false : _incomingParams$write, + _incomingParams$manag = incomingParams.manage, + manage = _incomingParams$manag === undefined ? false : _incomingParams$manag, + _incomingParams$authK = incomingParams.authKeys, + authKeys = _incomingParams$authK === undefined ? [] : _incomingParams$authK; + + var params = {}; + + params.r = read ? '1' : '0'; + params.w = write ? '1' : '0'; + params.m = manage ? '1' : '0'; + + if (channels.length > 0) { + params.channel = channels.join(','); + } + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + if (authKeys.length > 0) { + params.auth = authKeys.join(','); + } + + if (ttl || ttl === 0) { + params.ttl = ttl; + } + + return params; + } + + function handleResponse() { + return {}; + } + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.usePost = usePost; + exports.getURL = getURL; + exports.postURL = postURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.postPayload = postPayload; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function prepareMessagePayload(modules, messagePayload) { + var crypto = modules.crypto, + config = modules.config; + + var stringifiedPayload = JSON.stringify(messagePayload); + + if (config.cipherKey) { + stringifiedPayload = crypto.encrypt(stringifiedPayload); + stringifiedPayload = JSON.stringify(stringifiedPayload); + } + + return stringifiedPayload; + } + + function getOperation() { + return _operations2.default.PNPublishOperation; + } + + function validateParams(_ref, incomingParams) { + var config = _ref.config; + var message = incomingParams.message, + channel = incomingParams.channel; + + + if (!channel) return 'Missing Channel'; + if (!message) return 'Missing Message'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function usePost(modules, incomingParams) { + var _incomingParams$sendB = incomingParams.sendByPost, + sendByPost = _incomingParams$sendB === undefined ? false : _incomingParams$sendB; + + return sendByPost; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var channel = incomingParams.channel, + message = incomingParams.message; + + var stringifiedPayload = prepareMessagePayload(modules, message); + return '/publish/' + config.publishKey + '/' + config.subscribeKey + '/0/' + _utils2.default.encodeString(channel) + '/0/' + _utils2.default.encodeString(stringifiedPayload); + } + + function postURL(modules, incomingParams) { + var config = modules.config; + var channel = incomingParams.channel; + + return '/publish/' + config.publishKey + '/' + config.subscribeKey + '/0/' + _utils2.default.encodeString(channel) + '/0'; + } + + function getRequestTimeout(_ref2) { + var config = _ref2.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function postPayload(modules, incomingParams) { + var message = incomingParams.message; + + return prepareMessagePayload(modules, message); + } + + function prepareParams(modules, incomingParams) { + var meta = incomingParams.meta, + _incomingParams$repli = incomingParams.replicate, + replicate = _incomingParams$repli === undefined ? true : _incomingParams$repli, + storeInHistory = incomingParams.storeInHistory, + ttl = incomingParams.ttl; + + var params = {}; + + if (storeInHistory != null) { + if (storeInHistory) { + params.store = '1'; + } else { + params.store = '0'; + } + } + + if (ttl) { + params.ttl = ttl; + } + + if (replicate === false) { + params.norep = 'true'; + } + + if (meta && (typeof meta === 'undefined' ? 'undefined' : _typeof(meta)) === 'object') { + params.meta = JSON.stringify(meta); + } + + return params; + } + + function handleResponse(modules, serverResponse) { + return { timetoken: serverResponse[2] }; + } + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function __processMessage(modules, message) { + var config = modules.config, + crypto = modules.crypto; + + if (!config.cipherKey) return message; + + try { + return crypto.decrypt(message); + } catch (e) { + return message; + } + } + + function getOperation() { + return _operations2.default.PNHistoryOperation; + } + + function validateParams(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + + + if (!channel) return 'Missing channel'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + + return '/v2/history/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(channel); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var start = incomingParams.start, + end = incomingParams.end, + reverse = incomingParams.reverse, + _incomingParams$count = incomingParams.count, + count = _incomingParams$count === undefined ? 100 : _incomingParams$count, + _incomingParams$strin = incomingParams.stringifiedTimeToken, + stringifiedTimeToken = _incomingParams$strin === undefined ? false : _incomingParams$strin; + + var outgoingParams = { + include_token: 'true' + }; + + outgoingParams.count = count; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; + if (reverse != null) outgoingParams.reverse = reverse.toString(); + + return outgoingParams; + } + + function handleResponse(modules, serverResponse) { + var response = { + messages: [], + startTimeToken: serverResponse[1], + endTimeToken: serverResponse[2] + }; + + serverResponse[0].forEach(function (serverHistoryItem) { + var item = { + timetoken: serverHistoryItem.timetoken, + entry: __processMessage(modules, serverHistoryItem.message) + }; + + response.messages.push(item); + }); + + return response; + } + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.useDelete = useDelete; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNDeleteMessagesOperation; + } + + function validateParams(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + + + if (!channel) return 'Missing channel'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function useDelete() { + return true; + } + + function getURL(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + + + return '/v3/history/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(channel); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var start = incomingParams.start, + end = incomingParams.end; + + + var outgoingParams = {}; + + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + + return outgoingParams; + } + + function handleResponse(modules, serverResponse) { + return serverResponse.payload; + } + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function __processMessage(modules, message) { + var config = modules.config, + crypto = modules.crypto; + + if (!config.cipherKey) return message; + + try { + return crypto.decrypt(message); + } catch (e) { + return message; + } + } + + function getOperation() { + return _operations2.default.PNFetchMessagesOperation; + } + + function validateParams(modules, incomingParams) { + var channels = incomingParams.channels; + var config = modules.config; + + + if (!channels || channels.length === 0) return 'Missing channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + var config = modules.config; + + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v3/history/sub-key/' + config.subscribeKey + '/channel/' + _utils2.default.encodeString(stringifiedChannels); + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getTransactionTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(modules, incomingParams) { + var start = incomingParams.start, + end = incomingParams.end, + count = incomingParams.count; + + var outgoingParams = {}; + + if (count) outgoingParams.max = count; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + + return outgoingParams; + } + + function handleResponse(modules, serverResponse) { + var response = { + channels: {} + }; + + Object.keys(serverResponse.channels || {}).forEach(function (channelName) { + response.channels[channelName] = []; + + (serverResponse.channels[channelName] || []).forEach(function (messageEnvelope) { + var announce = {}; + announce.channel = channelName; + announce.subscription = null; + announce.timetoken = messageEnvelope.timetoken; + announce.message = __processMessage(modules, messageEnvelope.message); + response.channels[channelName].push(announce); + }); + }); + + return response; + } + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOperation = getOperation; + exports.validateParams = validateParams; + exports.getURL = getURL; + exports.getRequestTimeout = getRequestTimeout; + exports.isAuthSupported = isAuthSupported; + exports.prepareParams = prepareParams; + exports.handleResponse = handleResponse; + + var _flow_interfaces = __webpack_require__(5); + + var _operations = __webpack_require__(13); + + var _operations2 = _interopRequireDefault(_operations); + + var _utils = __webpack_require__(15); + + var _utils2 = _interopRequireDefault(_utils); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function getOperation() { + return _operations2.default.PNSubscribeOperation; + } + + function validateParams(modules) { + var config = modules.config; + + + if (!config.subscribeKey) return 'Missing Subscribe Key'; + } + + function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === undefined ? [] : _incomingParams$chann; + + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return '/v2/subscribe/' + config.subscribeKey + '/' + _utils2.default.encodeString(stringifiedChannels) + '/0'; + } + + function getRequestTimeout(_ref) { + var config = _ref.config; + + return config.getSubscribeTimeout(); + } + + function isAuthSupported() { + return true; + } + + function prepareParams(_ref2, incomingParams) { + var config = _ref2.config; + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === undefined ? [] : _incomingParams$chann2, + timetoken = incomingParams.timetoken, + filterExpression = incomingParams.filterExpression, + region = incomingParams.region; + + var params = { + heartbeat: config.getPresenceTimeout() + }; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + if (filterExpression && filterExpression.length > 0) { + params['filter-expr'] = filterExpression; + } + + if (timetoken) { + params.tt = timetoken; + } + + if (region) { + params.tr = region; + } + + return params; + } + + function handleResponse(modules, serverResponse) { + var messages = []; + + serverResponse.m.forEach(function (rawMessage) { + var publishMetaData = { + publishTimetoken: rawMessage.p.t, + region: rawMessage.p.r + }; + var parsedMessage = { + shard: parseInt(rawMessage.a, 10), + subscriptionMatch: rawMessage.b, + channel: rawMessage.c, + payload: rawMessage.d, + flags: rawMessage.f, + issuingClientId: rawMessage.i, + subscribeKey: rawMessage.k, + originationTimetoken: rawMessage.o, + userMetadata: rawMessage.u, + publishMetaData: publishMetaData + }; + messages.push(parsedMessage); + }); + + var metadata = { + timetoken: serverResponse.t.t, + region: serverResponse.t.r + }; + + return { messages: messages, metadata: metadata }; + } + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _config = __webpack_require__(2); + + var _config2 = _interopRequireDefault(_config); + + var _categories = __webpack_require__(10); + + var _categories2 = _interopRequireDefault(_categories); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class(modules) { + var _this = this; + + _classCallCheck(this, _class); + + this._modules = {}; + + Object.keys(modules).forEach(function (key) { + _this._modules[key] = modules[key].bind(_this); + }); + } + + _createClass(_class, [{ + key: 'init', + value: function init(config) { + this._config = config; + + this._maxSubDomain = 20; + this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain); + this._providedFQDN = (this._config.secure ? 'https://' : 'http://') + this._config.origin; + this._coreParams = {}; + + this.shiftStandardOrigin(); + } + }, { + key: 'nextOrigin', + value: function nextOrigin() { + if (this._providedFQDN.indexOf('pubsub.') === -1) { + return this._providedFQDN; + } + + var newSubDomain = void 0; + + this._currentSubDomain = this._currentSubDomain + 1; + + if (this._currentSubDomain >= this._maxSubDomain) { + this._currentSubDomain = 1; + } + + newSubDomain = this._currentSubDomain.toString(); + + return this._providedFQDN.replace('pubsub', 'ps' + newSubDomain); + } + }, { + key: 'hasModule', + value: function hasModule(name) { + return name in this._modules; + } + }, { + key: 'shiftStandardOrigin', + value: function shiftStandardOrigin() { + var failover = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + this._standardOrigin = this.nextOrigin(failover); + + return this._standardOrigin; + } + }, { + key: 'getStandardOrigin', + value: function getStandardOrigin() { + return this._standardOrigin; + } + }, { + key: 'POST', + value: function POST(params, body, endpoint, callback) { + return this._modules.post(params, body, endpoint, callback); + } + }, { + key: 'GET', + value: function GET(params, endpoint, callback) { + return this._modules.get(params, endpoint, callback); + } + }, { + key: 'DELETE', + value: function DELETE(params, endpoint, callback) { + return this._modules.del(params, endpoint, callback); + } + }, { + key: '_detectErrorCategory', + value: function _detectErrorCategory(err) { + if (err.code === 'ENOTFOUND') return _categories2.default.PNNetworkIssuesCategory; + if (err.code === 'ECONNREFUSED') return _categories2.default.PNNetworkIssuesCategory; + if (err.code === 'ECONNRESET') return _categories2.default.PNNetworkIssuesCategory; + if (err.code === 'EAI_AGAIN') return _categories2.default.PNNetworkIssuesCategory; + + if (err.status === 0 || err.hasOwnProperty('status') && typeof err.status === 'undefined') return _categories2.default.PNNetworkIssuesCategory; + if (err.timeout) return _categories2.default.PNTimeoutCategory; + + if (err.code === 'ETIMEDOUT') return _categories2.default.PNNetworkIssuesCategory; + + if (err.response) { + if (err.response.badRequest) return _categories2.default.PNBadRequestCategory; + if (err.response.forbidden) return _categories2.default.PNAccessDeniedCategory; + } + + return _categories2.default.PNUnknownCategory; + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports['default']; + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var _class = function () { + function _class() { + _classCallCheck(this, _class); + + this.storage = {}; + } + + _createClass(_class, [{ + key: "get", + value: function get(key) { + return this.storage[key]; + } + }, { + key: "set", + value: function set(key, value) { + this.storage[key] = value; + } + }]); + + return _class; + }(); + + exports.default = _class; + module.exports = exports["default"]; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.get = get; + exports.post = post; + exports.del = del; + + var _superagent = __webpack_require__(42); + + var _superagent2 = _interopRequireDefault(_superagent); + + var _flow_interfaces = __webpack_require__(5); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function log(req) { + var _pickLogger = function _pickLogger() { + if (console && console.log) return console; + if (window && window.console && window.console.log) return window.console; + return console; + }; + + var start = new Date().getTime(); + var timestamp = new Date().toISOString(); + var logger = _pickLogger(); + logger.log('<<<<<'); + logger.log('[' + timestamp + ']', '\n', req.url, '\n', req.qs); + logger.log('-----'); + + req.on('response', function (res) { + var now = new Date().getTime(); + var elapsed = now - start; + var timestampDone = new Date().toISOString(); + + logger.log('>>>>>>'); + logger.log('[' + timestampDone + ' / ' + elapsed + ']', '\n', req.url, '\n', req.qs, '\n', res.text); + logger.log('-----'); + }); + } + + function xdr(superagentConstruct, endpoint, callback) { + var _this = this; + + if (this._config.logVerbosity) { + superagentConstruct = superagentConstruct.use(log); + } + + if (this._config.proxy && this._modules.proxy) { + superagentConstruct = this._modules.proxy.call(this, superagentConstruct); + } + + if (this._config.keepAlive && this._modules.keepAlive) { + superagentConstruct = this._modules.keepAlive(superagentConstruct); + } + + return superagentConstruct.timeout(endpoint.timeout).end(function (err, resp) { + var status = {}; + status.error = err !== null; + status.operation = endpoint.operation; + + if (resp && resp.status) { + status.statusCode = resp.status; + } + + if (err) { + status.errorData = err; + status.category = _this._detectErrorCategory(err); + return callback(status, null); + } + + var parsedResponse = JSON.parse(resp.text); + + if (parsedResponse.error && parsedResponse.error === 1 && parsedResponse.status && parsedResponse.message && parsedResponse.service) { + status.errorData = parsedResponse; + status.statusCode = parsedResponse.status; + status.error = true; + status.category = _this._detectErrorCategory(status); + return callback(status, null); + } + + return callback(status, parsedResponse); + }); + } + + function get(params, endpoint, callback) { + var superagentConstruct = _superagent2.default.get(this.getStandardOrigin() + endpoint.url).query(params); + return xdr.call(this, superagentConstruct, endpoint, callback); + } + + function post(params, body, endpoint, callback) { + var superagentConstruct = _superagent2.default.post(this.getStandardOrigin() + endpoint.url).query(params).send(body); + return xdr.call(this, superagentConstruct, endpoint, callback); + } + + function del(params, endpoint, callback) { + var superagentConstruct = _superagent2.default.delete(this.getStandardOrigin() + endpoint.url).query(params); + return xdr.call(this, superagentConstruct, endpoint, callback); + } + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Root reference for iframes. + */ + + var root; + if (typeof window !== 'undefined') { // Browser window + root = window; + } else if (typeof self !== 'undefined') { // Web Worker + root = self; + } else { // Other environments + console.warn("Using browser-only version of superagent in non-browser environment"); + root = this; + } + + var Emitter = __webpack_require__(43); + var RequestBase = __webpack_require__(44); + var isObject = __webpack_require__(45); + var ResponseBase = __webpack_require__(46); + var Agent = __webpack_require__(48); + + /** + * Noop. + */ + + function noop(){}; + + /** + * Expose `request`. + */ + + var request = exports = module.exports = function(method, url) { + // callback + if ('function' == typeof url) { + return new exports.Request('GET', method).end(url); + } + + // url first + if (1 == arguments.length) { + return new exports.Request('GET', method); + } + + return new exports.Request(method, url); + } + + exports.Request = Request; + + /** + * Determine XHR. + */ + + request.getXHR = function () { + if (root.XMLHttpRequest + && (!root.location || 'file:' != root.location.protocol + || !root.ActiveXObject)) { + return new XMLHttpRequest; + } else { + try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} + } + throw Error("Browser-only version of superagent could not find XHR"); + }; + + /** + * Removes leading and trailing whitespace, added to support IE. + * + * @param {String} s + * @return {String} + * @api private + */ + + var trim = ''.trim + ? function(s) { return s.trim(); } + : function(s) { return s.replace(/(^\s*|\s*$)/g, ''); }; + + /** + * Serialize the given `obj`. + * + * @param {Object} obj + * @return {String} + * @api private + */ + + function serialize(obj) { + if (!isObject(obj)) return obj; + var pairs = []; + for (var key in obj) { + pushEncodedKeyValuePair(pairs, key, obj[key]); + } + return pairs.join('&'); + } + + /** + * Helps 'serialize' with serializing arrays. + * Mutates the pairs array. + * + * @param {Array} pairs + * @param {String} key + * @param {Mixed} val + */ + + function pushEncodedKeyValuePair(pairs, key, val) { + if (val != null) { + if (Array.isArray(val)) { + val.forEach(function(v) { + pushEncodedKeyValuePair(pairs, key, v); + }); + } else if (isObject(val)) { + for(var subkey in val) { + pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]); + } + } else { + pairs.push(encodeURIComponent(key) + + '=' + encodeURIComponent(val)); + } + } else if (val === null) { + pairs.push(encodeURIComponent(key)); + } + } + + /** + * Expose serialization method. + */ + + request.serializeObject = serialize; + + /** + * Parse the given x-www-form-urlencoded `str`. + * + * @param {String} str + * @return {Object} + * @api private + */ + + function parseString(str) { + var obj = {}; + var pairs = str.split('&'); + var pair; + var pos; + + for (var i = 0, len = pairs.length; i < len; ++i) { + pair = pairs[i]; + pos = pair.indexOf('='); + if (pos == -1) { + obj[decodeURIComponent(pair)] = ''; + } else { + obj[decodeURIComponent(pair.slice(0, pos))] = + decodeURIComponent(pair.slice(pos + 1)); + } + } + + return obj; + } + + /** + * Expose parser. + */ + + request.parseString = parseString; + + /** + * Default MIME type map. + * + * superagent.types.xml = 'application/xml'; + * + */ + + request.types = { + html: 'text/html', + json: 'application/json', + xml: 'text/xml', + urlencoded: 'application/x-www-form-urlencoded', + 'form': 'application/x-www-form-urlencoded', + 'form-data': 'application/x-www-form-urlencoded' + }; + + /** + * Default serialization map. + * + * superagent.serialize['application/xml'] = function(obj){ + * return 'generated xml here'; + * }; + * + */ + + request.serialize = { + 'application/x-www-form-urlencoded': serialize, + 'application/json': JSON.stringify, + }; + + /** + * Default parsers. + * + * superagent.parse['application/xml'] = function(str){ + * return { object parsed from str }; + * }; + * + */ + + request.parse = { + 'application/x-www-form-urlencoded': parseString, + 'application/json': JSON.parse, + }; + + /** + * Parse the given header `str` into + * an object containing the mapped fields. + * + * @param {String} str + * @return {Object} + * @api private + */ + + function parseHeader(str) { + var lines = str.split(/\r?\n/); + var fields = {}; + var index; + var line; + var field; + var val; + + for (var i = 0, len = lines.length; i < len; ++i) { + line = lines[i]; + index = line.indexOf(':'); + if (index === -1) { // could be empty line, just skip it + continue; + } + field = line.slice(0, index).toLowerCase(); + val = trim(line.slice(index + 1)); + fields[field] = val; + } + + return fields; + } + + /** + * Check if `mime` is json or has +json structured syntax suffix. + * + * @param {String} mime + * @return {Boolean} + * @api private + */ + + function isJSON(mime) { + // should match /json or +json + // but not /json-seq + return /[\/+]json($|[^-\w])/.test(mime); + } + + /** + * Initialize a new `Response` with the given `xhr`. + * + * - set flags (.ok, .error, etc) + * - parse header + * + * Examples: + * + * Aliasing `superagent` as `request` is nice: + * + * request = superagent; + * + * We can use the promise-like API, or pass callbacks: + * + * request.get('/').end(function(res){}); + * request.get('/', function(res){}); + * + * Sending data can be chained: + * + * request + * .post('/user') + * .send({ name: 'tj' }) + * .end(function(res){}); + * + * Or passed to `.send()`: + * + * request + * .post('/user') + * .send({ name: 'tj' }, function(res){}); + * + * Or passed to `.post()`: + * + * request + * .post('/user', { name: 'tj' }) + * .end(function(res){}); + * + * Or further reduced to a single call for simple cases: + * + * request + * .post('/user', { name: 'tj' }, function(res){}); + * + * @param {XMLHTTPRequest} xhr + * @param {Object} options + * @api private + */ + + function Response(req) { + this.req = req; + this.xhr = this.req.xhr; + // responseText is accessible only if responseType is '' or 'text' and on older browsers + this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined') + ? this.xhr.responseText + : null; + this.statusText = this.req.xhr.statusText; + var status = this.xhr.status; + // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request + if (status === 1223) { + status = 204; + } + this._setStatusProperties(status); + this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders()); + // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but + // getResponseHeader still works. so we get content-type even if getting + // other headers fails. + this.header['content-type'] = this.xhr.getResponseHeader('content-type'); + this._setHeaderProperties(this.header); + + if (null === this.text && req._responseType) { + this.body = this.xhr.response; + } else { + this.body = this.req.method != 'HEAD' + ? this._parseBody(this.text ? this.text : this.xhr.response) + : null; + } + } + + ResponseBase(Response.prototype); + + /** + * Parse the given body `str`. + * + * Used for auto-parsing of bodies. Parsers + * are defined on the `superagent.parse` object. + * + * @param {String} str + * @return {Mixed} + * @api private + */ + + Response.prototype._parseBody = function(str) { + var parse = request.parse[this.type]; + if (this.req._parser) { + return this.req._parser(this, str); + } + if (!parse && isJSON(this.type)) { + parse = request.parse['application/json']; + } + return parse && str && (str.length || str instanceof Object) + ? parse(str) + : null; + }; + + /** + * Return an `Error` representative of this response. + * + * @return {Error} + * @api public + */ + + Response.prototype.toError = function(){ + var req = this.req; + var method = req.method; + var url = req.url; + + var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')'; + var err = new Error(msg); + err.status = this.status; + err.method = method; + err.url = url; + + return err; + }; + + /** + * Expose `Response`. + */ + + request.Response = Response; + + /** + * Initialize a new `Request` with the given `method` and `url`. + * + * @param {String} method + * @param {String} url + * @api public + */ + + function Request(method, url) { + var self = this; + this._query = this._query || []; + this.method = method; + this.url = url; + this.header = {}; // preserves header name case + this._header = {}; // coerces header names to lowercase + this.on('end', function(){ + var err = null; + var res = null; + + try { + res = new Response(self); + } catch(e) { + err = new Error('Parser is unable to parse the response'); + err.parse = true; + err.original = e; + // issue #675: return the raw response if the response parsing fails + if (self.xhr) { + // ie9 doesn't have 'response' property + err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response; + // issue #876: return the http status code if the response parsing fails + err.status = self.xhr.status ? self.xhr.status : null; + err.statusCode = err.status; // backwards-compat only + } else { + err.rawResponse = null; + err.status = null; + } + + return self.callback(err); + } + + self.emit('response', res); + + var new_err; + try { + if (!self._isResponseOK(res)) { + new_err = new Error(res.statusText || 'Unsuccessful HTTP response'); + } + } catch(custom_err) { + new_err = custom_err; // ok() callback can throw + } + + // #1000 don't catch errors from the callback to avoid double calling it + if (new_err) { + new_err.original = err; + new_err.response = res; + new_err.status = res.status; + self.callback(new_err, res); + } else { + self.callback(null, res); + } + }); + } + + /** + * Mixin `Emitter` and `RequestBase`. + */ + + Emitter(Request.prototype); + RequestBase(Request.prototype); + + /** + * Set Content-Type to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.xml = 'application/xml'; + * + * request.post('/') + * .type('xml') + * .send(xmlstring) + * .end(callback); + * + * request.post('/') + * .type('application/xml') + * .send(xmlstring) + * .end(callback); + * + * @param {String} type + * @return {Request} for chaining + * @api public + */ + + Request.prototype.type = function(type){ + this.set('Content-Type', request.types[type] || type); + return this; + }; + + /** + * Set Accept to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.json = 'application/json'; + * + * request.get('/agent') + * .accept('json') + * .end(callback); + * + * request.get('/agent') + * .accept('application/json') + * .end(callback); + * + * @param {String} accept + * @return {Request} for chaining + * @api public + */ + + Request.prototype.accept = function(type){ + this.set('Accept', request.types[type] || type); + return this; + }; + + /** + * Set Authorization field value with `user` and `pass`. + * + * @param {String} user + * @param {String} [pass] optional in case of using 'bearer' as type + * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic') + * @return {Request} for chaining + * @api public + */ + + Request.prototype.auth = function(user, pass, options){ + if (1 === arguments.length) pass = ''; + if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options + options = pass; + pass = ''; + } + if (!options) { + options = { + type: 'function' === typeof btoa ? 'basic' : 'auto', + }; + } + + var encoder = function(string) { + if ('function' === typeof btoa) { + return btoa(string); + } + throw new Error('Cannot use basic auth, btoa is not a function'); + }; + + return this._auth(user, pass, options, encoder); + }; + + /** + * Add query-string `val`. + * + * Examples: + * + * request.get('/shoes') + * .query('size=10') + * .query({ color: 'blue' }) + * + * @param {Object|String} val + * @return {Request} for chaining + * @api public + */ + + Request.prototype.query = function(val){ + if ('string' != typeof val) val = serialize(val); + if (val) this._query.push(val); + return this; + }; + + /** + * Queue the given `file` as an attachment to the specified `field`, + * with optional `options` (or filename). + * + * ``` js + * request.post('/upload') + * .attach('content', new Blob(['hey!'], { type: "text/html"})) + * .end(callback); + * ``` + * + * @param {String} field + * @param {Blob|File} file + * @param {String|Object} options + * @return {Request} for chaining + * @api public + */ + + Request.prototype.attach = function(field, file, options){ + if (file) { + if (this._data) { + throw Error("superagent can't mix .send() and .attach()"); + } + + this._getFormData().append(field, file, options || file.name); + } + return this; + }; + + Request.prototype._getFormData = function(){ + if (!this._formData) { + this._formData = new root.FormData(); + } + return this._formData; + }; + + /** + * Invoke the callback with `err` and `res` + * and handle arity check. + * + * @param {Error} err + * @param {Response} res + * @api private + */ + + Request.prototype.callback = function(err, res){ + if (this._shouldRetry(err, res)) { + return this._retry(); + } + + var fn = this._callback; + this.clearTimeout(); + + if (err) { + if (this._maxRetries) err.retries = this._retries - 1; + this.emit('error', err); + } + + fn(err, res); + }; + + /** + * Invoke callback with x-domain error. + * + * @api private + */ + + Request.prototype.crossDomainError = function(){ + var err = new Error('Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.'); + err.crossDomain = true; + + err.status = this.status; + err.method = this.method; + err.url = this.url; + + this.callback(err); + }; + + // This only warns, because the request is still likely to work + Request.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){ + console.warn("This is not supported in browser version of superagent"); + return this; + }; + + // This throws, because it can't send/receive data as expected + Request.prototype.pipe = Request.prototype.write = function(){ + throw Error("Streaming is not supported in browser version of superagent"); + }; + + /** + * Check if `obj` is a host object, + * we don't want to serialize these :) + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + Request.prototype._isHost = function _isHost(obj) { + // Native objects stringify to [object File], [object Blob], [object FormData], etc. + return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]'; + } + + /** + * Initiate request, invoking callback `fn(res)` + * with an instanceof `Response`. + * + * @param {Function} fn + * @return {Request} for chaining + * @api public + */ + + Request.prototype.end = function(fn){ + if (this._endCalled) { + console.warn("Warning: .end() was called twice. This is not supported in superagent"); + } + this._endCalled = true; + + // store callback + this._callback = fn || noop; + + // querystring + this._finalizeQueryString(); + + return this._end(); + }; + + Request.prototype._end = function() { + var self = this; + var xhr = (this.xhr = request.getXHR()); + var data = this._formData || this._data; + + this._setTimeouts(); + + // state change + xhr.onreadystatechange = function(){ + var readyState = xhr.readyState; + if (readyState >= 2 && self._responseTimeoutTimer) { + clearTimeout(self._responseTimeoutTimer); + } + if (4 != readyState) { + return; + } + + // In IE9, reads to any property (e.g. status) off of an aborted XHR will + // result in the error "Could not complete the operation due to error c00c023f" + var status; + try { status = xhr.status } catch(e) { status = 0; } + + if (!status) { + if (self.timedout || self._aborted) return; + return self.crossDomainError(); + } + self.emit('end'); + }; + + // progress + var handleProgress = function(direction, e) { + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + e.direction = direction; + self.emit('progress', e); + }; + if (this.hasListeners('progress')) { + try { + xhr.onprogress = handleProgress.bind(null, 'download'); + if (xhr.upload) { + xhr.upload.onprogress = handleProgress.bind(null, 'upload'); + } + } catch(e) { + // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist. + // Reported here: + // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context + } + } + + // initiate request + try { + if (this.username && this.password) { + xhr.open(this.method, this.url, true, this.username, this.password); + } else { + xhr.open(this.method, this.url, true); + } + } catch (err) { + // see #1149 + return this.callback(err); + } + + // CORS + if (this._withCredentials) xhr.withCredentials = true; + + // body + if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) { + // serialize stuff + var contentType = this._header['content-type']; + var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : '']; + if (!serialize && isJSON(contentType)) { + serialize = request.serialize['application/json']; + } + if (serialize) data = serialize(data); + } + + // set header fields + for (var field in this.header) { + if (null == this.header[field]) continue; + + if (this.header.hasOwnProperty(field)) + xhr.setRequestHeader(field, this.header[field]); + } + + if (this._responseType) { + xhr.responseType = this._responseType; + } + + // send stuff + this.emit('request', this); + + // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing) + // We need null here if data is undefined + xhr.send(typeof data !== 'undefined' ? data : null); + return this; + }; + + request.agent = function() { + return new Agent(); + }; + + ["GET", "POST", "OPTIONS", "PATCH", "PUT", "DELETE"].forEach(function(method) { + Agent.prototype[method.toLowerCase()] = function(url, fn) { + var req = new request.Request(method, url); + this._setDefaults(req); + if (fn) { + req.end(fn); + } + return req; + }; + }); + + Agent.prototype.del = Agent.prototype['delete']; + + /** + * GET `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.get = function(url, data, fn) { + var req = request('GET', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.query(data); + if (fn) req.end(fn); + return req; + }; + + /** + * HEAD `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.head = function(url, data, fn) { + var req = request('HEAD', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.query(data); + if (fn) req.end(fn); + return req; + }; + + /** + * OPTIONS query to `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.options = function(url, data, fn) { + var req = request('OPTIONS', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; + }; + + /** + * DELETE `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + function del(url, data, fn) { + var req = request('DELETE', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; + } + + request['del'] = del; + request['delete'] = del; + + /** + * PATCH `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.patch = function(url, data, fn) { + var req = request('PATCH', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; + }; + + /** + * POST `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.post = function(url, data, fn) { + var req = request('POST', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; + }; + + /** + * PUT `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ + + request.put = function(url, data, fn) { + var req = request('PUT', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; + }; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + + + /** + * Expose `Emitter`. + */ + + if (true) { + module.exports = Emitter; + } + + /** + * Initialize a new `Emitter`. + * + * @api public + */ + + function Emitter(obj) { + if (obj) return mixin(obj); + }; + + /** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; + } + + /** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.on = + Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; + }; + + /** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; + }; + + /** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.off = + Emitter.prototype.removeListener = + Emitter.prototype.removeAllListeners = + Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + }; + + /** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + + Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks['$' + event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; + }; + + /** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + + Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; + }; + + /** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + + Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; + }; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Module of mixed-in functions shared between node and client code + */ + var isObject = __webpack_require__(45); + + /** + * Expose `RequestBase`. + */ + + module.exports = RequestBase; + + /** + * Initialize a new `RequestBase`. + * + * @api public + */ + + function RequestBase(obj) { + if (obj) return mixin(obj); + } + + /** + * Mixin the prototype properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in RequestBase.prototype) { + obj[key] = RequestBase.prototype[key]; + } + return obj; + } + + /** + * Clear previous timeout. + * + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.clearTimeout = function _clearTimeout(){ + clearTimeout(this._timer); + clearTimeout(this._responseTimeoutTimer); + delete this._timer; + delete this._responseTimeoutTimer; + return this; + }; + + /** + * Override default response body parser + * + * This function will be called to convert incoming data into request.body + * + * @param {Function} + * @api public + */ + + RequestBase.prototype.parse = function parse(fn){ + this._parser = fn; + return this; + }; + + /** + * Set format of binary response body. + * In browser valid formats are 'blob' and 'arraybuffer', + * which return Blob and ArrayBuffer, respectively. + * + * In Node all values result in Buffer. + * + * Examples: + * + * req.get('/') + * .responseType('blob') + * .end(callback); + * + * @param {String} val + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.responseType = function(val){ + this._responseType = val; + return this; + }; + + /** + * Override default request body serializer + * + * This function will be called to convert data set via .send or .attach into payload to send + * + * @param {Function} + * @api public + */ + + RequestBase.prototype.serialize = function serialize(fn){ + this._serializer = fn; + return this; + }; + + /** + * Set timeouts. + * + * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time. + * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections. + * + * Value of 0 or false means no timeout. + * + * @param {Number|Object} ms or {response, deadline} + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.timeout = function timeout(options){ + if (!options || 'object' !== typeof options) { + this._timeout = options; + this._responseTimeout = 0; + return this; + } + + for(var option in options) { + switch(option) { + case 'deadline': + this._timeout = options.deadline; + break; + case 'response': + this._responseTimeout = options.response; + break; + default: + console.warn("Unknown timeout option", option); + } + } + return this; + }; + + /** + * Set number of retry attempts on error. + * + * Failed requests will be retried 'count' times if timeout or err.code >= 500. + * + * @param {Number} count + * @param {Function} [fn] + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.retry = function retry(count, fn){ + // Default to 1 if no count passed or true + if (arguments.length === 0 || count === true) count = 1; + if (count <= 0) count = 0; + this._maxRetries = count; + this._retries = 0; + this._retryCallback = fn; + return this; + }; + + var ERROR_CODES = [ + 'ECONNRESET', + 'ETIMEDOUT', + 'EADDRINFO', + 'ESOCKETTIMEDOUT' + ]; + + /** + * Determine if a request should be retried. + * (Borrowed from segmentio/superagent-retry) + * + * @param {Error} err + * @param {Response} [res] + * @returns {Boolean} + */ + RequestBase.prototype._shouldRetry = function(err, res) { + if (!this._maxRetries || this._retries++ >= this._maxRetries) { + return false; + } + if (this._retryCallback) { + try { + var override = this._retryCallback(err, res); + if (override === true) return true; + if (override === false) return false; + // undefined falls back to defaults + } catch(e) { + console.error(e); + } + } + if (res && res.status && res.status >= 500 && res.status != 501) return true; + if (err) { + if (err.code && ~ERROR_CODES.indexOf(err.code)) return true; + // Superagent timeout + if (err.timeout && err.code == 'ECONNABORTED') return true; + if (err.crossDomain) return true; + } + return false; + }; + + /** + * Retry request + * + * @return {Request} for chaining + * @api private + */ + + RequestBase.prototype._retry = function() { + + this.clearTimeout(); + + // node + if (this.req) { + this.req = null; + this.req = this.request(); + } + + this._aborted = false; + this.timedout = false; + + return this._end(); + }; + + /** + * Promise support + * + * @param {Function} resolve + * @param {Function} [reject] + * @return {Request} + */ + + RequestBase.prototype.then = function then(resolve, reject) { + if (!this._fullfilledPromise) { + var self = this; + if (this._endCalled) { + console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"); + } + this._fullfilledPromise = new Promise(function(innerResolve, innerReject) { + self.end(function(err, res) { + if (err) innerReject(err); + else innerResolve(res); + }); + }); + } + return this._fullfilledPromise.then(resolve, reject); + }; + + RequestBase.prototype.catch = function(cb) { + return this.then(undefined, cb); + }; + + /** + * Allow for extension + */ + + RequestBase.prototype.use = function use(fn) { + fn(this); + return this; + }; + + RequestBase.prototype.ok = function(cb) { + if ('function' !== typeof cb) throw Error("Callback required"); + this._okCallback = cb; + return this; + }; + + RequestBase.prototype._isResponseOK = function(res) { + if (!res) { + return false; + } + + if (this._okCallback) { + return this._okCallback(res); + } + + return res.status >= 200 && res.status < 300; + }; + + /** + * Get request header `field`. + * Case-insensitive. + * + * @param {String} field + * @return {String} + * @api public + */ + + RequestBase.prototype.get = function(field){ + return this._header[field.toLowerCase()]; + }; + + /** + * Get case-insensitive header `field` value. + * This is a deprecated internal API. Use `.get(field)` instead. + * + * (getHeader is no longer used internally by the superagent code base) + * + * @param {String} field + * @return {String} + * @api private + * @deprecated + */ + + RequestBase.prototype.getHeader = RequestBase.prototype.get; + + /** + * Set header `field` to `val`, or multiple fields with one object. + * Case-insensitive. + * + * Examples: + * + * req.get('/') + * .set('Accept', 'application/json') + * .set('X-API-Key', 'foobar') + * .end(callback); + * + * req.get('/') + * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' }) + * .end(callback); + * + * @param {String|Object} field + * @param {String} val + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.set = function(field, val){ + if (isObject(field)) { + for (var key in field) { + this.set(key, field[key]); + } + return this; + } + this._header[field.toLowerCase()] = val; + this.header[field] = val; + return this; + }; + + /** + * Remove header `field`. + * Case-insensitive. + * + * Example: + * + * req.get('/') + * .unset('User-Agent') + * .end(callback); + * + * @param {String} field + */ + RequestBase.prototype.unset = function(field){ + delete this._header[field.toLowerCase()]; + delete this.header[field]; + return this; + }; + + /** + * Write the field `name` and `val`, or multiple fields with one object + * for "multipart/form-data" request bodies. + * + * ``` js + * request.post('/upload') + * .field('foo', 'bar') + * .end(callback); + * + * request.post('/upload') + * .field({ foo: 'bar', baz: 'qux' }) + * .end(callback); + * ``` + * + * @param {String|Object} name + * @param {String|Blob|File|Buffer|fs.ReadStream} val + * @return {Request} for chaining + * @api public + */ + RequestBase.prototype.field = function(name, val) { + // name should be either a string or an object. + if (null === name || undefined === name) { + throw new Error('.field(name, val) name can not be empty'); + } + + if (this._data) { + console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"); + } + + if (isObject(name)) { + for (var key in name) { + this.field(key, name[key]); + } + return this; + } + + if (Array.isArray(val)) { + for (var i in val) { + this.field(name, val[i]); + } + return this; + } + + // val should be defined now + if (null === val || undefined === val) { + throw new Error('.field(name, val) val can not be empty'); + } + if ('boolean' === typeof val) { + val = '' + val; + } + this._getFormData().append(name, val); + return this; + }; + + /** + * Abort the request, and clear potential timeout. + * + * @return {Request} + * @api public + */ + RequestBase.prototype.abort = function(){ + if (this._aborted) { + return this; + } + this._aborted = true; + this.xhr && this.xhr.abort(); // browser + this.req && this.req.abort(); // node + this.clearTimeout(); + this.emit('abort'); + return this; + }; + + RequestBase.prototype._auth = function(user, pass, options, base64Encoder) { + switch (options.type) { + case 'basic': + this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass)); + break; + + case 'auto': + this.username = user; + this.password = pass; + break; + + case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' }) + this.set('Authorization', 'Bearer ' + user); + break; + } + return this; + }; + + /** + * Enable transmission of cookies with x-domain requests. + * + * Note that for this to work the origin must not be + * using "Access-Control-Allow-Origin" with a wildcard, + * and also must set "Access-Control-Allow-Credentials" + * to "true". + * + * @api public + */ + + RequestBase.prototype.withCredentials = function(on) { + // This is browser-only functionality. Node side is no-op. + if (on == undefined) on = true; + this._withCredentials = on; + return this; + }; + + /** + * Set the max redirects to `n`. Does noting in browser XHR implementation. + * + * @param {Number} n + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.redirects = function(n){ + this._maxRedirects = n; + return this; + }; + + /** + * Maximum size of buffered response body, in bytes. Counts uncompressed size. + * Default 200MB. + * + * @param {Number} n + * @return {Request} for chaining + */ + RequestBase.prototype.maxResponseSize = function(n){ + if ('number' !== typeof n) { + throw TypeError("Invalid argument"); + } + this._maxResponseSize = n; + return this; + }; + + /** + * Convert to a plain javascript object (not JSON string) of scalar properties. + * Note as this method is designed to return a useful non-this value, + * it cannot be chained. + * + * @return {Object} describing method, url, and data of this request + * @api public + */ + + RequestBase.prototype.toJSON = function() { + return { + method: this.method, + url: this.url, + data: this._data, + headers: this._header, + }; + }; + + /** + * Send `data` as the request body, defaulting the `.type()` to "json" when + * an object is given. + * + * Examples: + * + * // manual json + * request.post('/user') + * .type('json') + * .send('{"name":"tj"}') + * .end(callback) + * + * // auto json + * request.post('/user') + * .send({ name: 'tj' }) + * .end(callback) + * + * // manual x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send('name=tj') + * .end(callback) + * + * // auto x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send({ name: 'tj' }) + * .end(callback) + * + * // defaults to x-www-form-urlencoded + * request.post('/user') + * .send('name=tobi') + * .send('species=ferret') + * .end(callback) + * + * @param {String|Object} data + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.send = function(data){ + var isObj = isObject(data); + var type = this._header['content-type']; + + if (this._formData) { + console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"); + } + + if (isObj && !this._data) { + if (Array.isArray(data)) { + this._data = []; + } else if (!this._isHost(data)) { + this._data = {}; + } + } else if (data && this._data && this._isHost(this._data)) { + throw Error("Can't merge these send calls"); + } + + // merge + if (isObj && isObject(this._data)) { + for (var key in data) { + this._data[key] = data[key]; + } + } else if ('string' == typeof data) { + // default to x-www-form-urlencoded + if (!type) this.type('form'); + type = this._header['content-type']; + if ('application/x-www-form-urlencoded' == type) { + this._data = this._data + ? this._data + '&' + data + : data; + } else { + this._data = (this._data || '') + data; + } + } else { + this._data = data; + } + + if (!isObj || this._isHost(data)) { + return this; + } + + // default to json + if (!type) this.type('json'); + return this; + }; + + /** + * Sort `querystring` by the sort function + * + * + * Examples: + * + * // default order + * request.get('/user') + * .query('name=Nick') + * .query('search=Manny') + * .sortQuery() + * .end(callback) + * + * // customized sort function + * request.get('/user') + * .query('name=Nick') + * .query('search=Manny') + * .sortQuery(function(a, b){ + * return a.length - b.length; + * }) + * .end(callback) + * + * + * @param {Function} sort + * @return {Request} for chaining + * @api public + */ + + RequestBase.prototype.sortQuery = function(sort) { + // _sort default to true but otherwise can be a function or boolean + this._sort = typeof sort === 'undefined' ? true : sort; + return this; + }; + + /** + * Compose querystring to append to req.url + * + * @api private + */ + RequestBase.prototype._finalizeQueryString = function(){ + var query = this._query.join('&'); + if (query) { + this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query; + } + this._query.length = 0; // Makes the call idempotent + + if (this._sort) { + var index = this.url.indexOf('?'); + if (index >= 0) { + var queryArr = this.url.substring(index + 1).split('&'); + if ('function' === typeof this._sort) { + queryArr.sort(this._sort); + } else { + queryArr.sort(); + } + this.url = this.url.substring(0, index) + '?' + queryArr.join('&'); + } + } + }; + + // For backwards compat only + RequestBase.prototype._appendQueryString = function() {console.trace("Unsupported");} + + /** + * Invoke callback with timeout error. + * + * @api private + */ + + RequestBase.prototype._timeoutError = function(reason, timeout, errno){ + if (this._aborted) { + return; + } + var err = new Error(reason + timeout + 'ms exceeded'); + err.timeout = timeout; + err.code = 'ECONNABORTED'; + err.errno = errno; + this.timedout = true; + this.abort(); + this.callback(err); + }; + + RequestBase.prototype._setTimeouts = function() { + var self = this; + + // deadline + if (this._timeout && !this._timer) { + this._timer = setTimeout(function(){ + self._timeoutError('Timeout of ', self._timeout, 'ETIME'); + }, this._timeout); + } + // response timeout + if (this._responseTimeout && !this._responseTimeoutTimer) { + this._responseTimeoutTimer = setTimeout(function(){ + self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT'); + }, this._responseTimeout); + } + }; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Check if `obj` is an object. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + + function isObject(obj) { + return null !== obj && 'object' === typeof obj; + } + + module.exports = isObject; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Module dependencies. + */ + + var utils = __webpack_require__(47); + + /** + * Expose `ResponseBase`. + */ + + module.exports = ResponseBase; + + /** + * Initialize a new `ResponseBase`. + * + * @api public + */ + + function ResponseBase(obj) { + if (obj) return mixin(obj); + } + + /** + * Mixin the prototype properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in ResponseBase.prototype) { + obj[key] = ResponseBase.prototype[key]; + } + return obj; + } + + /** + * Get case-insensitive `field` value. + * + * @param {String} field + * @return {String} + * @api public + */ + + ResponseBase.prototype.get = function(field) { + return this.header[field.toLowerCase()]; + }; + + /** + * Set header related properties: + * + * - `.type` the content type without params + * + * A response of "Content-Type: text/plain; charset=utf-8" + * will provide you with a `.type` of "text/plain". + * + * @param {Object} header + * @api private + */ + + ResponseBase.prototype._setHeaderProperties = function(header){ + // TODO: moar! + // TODO: make this a util + + // content-type + var ct = header['content-type'] || ''; + this.type = utils.type(ct); + + // params + var params = utils.params(ct); + for (var key in params) this[key] = params[key]; + + this.links = {}; + + // links + try { + if (header.link) { + this.links = utils.parseLinks(header.link); + } + } catch (err) { + // ignore + } + }; + + /** + * Set flags such as `.ok` based on `status`. + * + * For example a 2xx response will give you a `.ok` of __true__ + * whereas 5xx will be __false__ and `.error` will be __true__. The + * `.clientError` and `.serverError` are also available to be more + * specific, and `.statusType` is the class of error ranging from 1..5 + * sometimes useful for mapping respond colors etc. + * + * "sugar" properties are also defined for common cases. Currently providing: + * + * - .noContent + * - .badRequest + * - .unauthorized + * - .notAcceptable + * - .notFound + * + * @param {Number} status + * @api private + */ + + ResponseBase.prototype._setStatusProperties = function(status){ + var type = status / 100 | 0; + + // status / class + this.status = this.statusCode = status; + this.statusType = type; + + // basics + this.info = 1 == type; + this.ok = 2 == type; + this.redirect = 3 == type; + this.clientError = 4 == type; + this.serverError = 5 == type; + this.error = (4 == type || 5 == type) + ? this.toError() + : false; + + // sugar + this.accepted = 202 == status; + this.noContent = 204 == status; + this.badRequest = 400 == status; + this.unauthorized = 401 == status; + this.notAcceptable = 406 == status; + this.forbidden = 403 == status; + this.notFound = 404 == status; + }; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Return the mime type for the given `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + + exports.type = function(str){ + return str.split(/ *; */).shift(); + }; + + /** + * Return header field parameters. + * + * @param {String} str + * @return {Object} + * @api private + */ + + exports.params = function(str){ + return str.split(/ *; */).reduce(function(obj, str){ + var parts = str.split(/ *= */); + var key = parts.shift(); + var val = parts.shift(); + + if (key && val) obj[key] = val; + return obj; + }, {}); + }; + + /** + * Parse Link header fields. + * + * @param {String} str + * @return {Object} + * @api private + */ + + exports.parseLinks = function(str){ + return str.split(/ *, */).reduce(function(obj, str){ + var parts = str.split(/ *; */); + var url = parts[0].slice(1, -1); + var rel = parts[1].split(/ *= */)[1].slice(1, -1); + obj[rel] = url; + return obj; + }, {}); + }; + + /** + * Strip content related fields from `header`. + * + * @param {Object} header + * @return {Object} header + * @api private + */ + + exports.cleanHeader = function(header, changesOrigin){ + delete header['content-type']; + delete header['content-length']; + delete header['transfer-encoding']; + delete header['host']; + // secuirty + if (changesOrigin) { + delete header['authorization']; + delete header['cookie']; + } + return header; + }; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports) { + + function Agent() { + this._defaults = []; + } + + ["use", "on", "once", "set", "query", "type", "accept", "auth", "withCredentials", "sortQuery", "retry", "ok", "redirects", + "timeout", "buffer", "serialize", "parse", "ca", "key", "pfx", "cert"].forEach(function(fn) { + /** Default setting for all requests from this agent */ + Agent.prototype[fn] = function(/*varargs*/) { + this._defaults.push({fn:fn, arguments:arguments}); + return this; + } + }); + + Agent.prototype._setDefaults = function(req) { + this._defaults.forEach(function(def) { + req[def.fn].apply(req, def.arguments); + }); + }; + + module.exports = Agent; + + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/dist/react_native/pubnub.min.js b/dist/react_native/pubnub.min.js new file mode 100644 index 000000000..325459523 --- /dev/null +++ b/dist/react_native/pubnub.min.js @@ -0,0 +1,3 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PubNub=t():e.PubNub=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),u=r(a),c=n(39),l=r(c),h=n(40),f=r(h),p=n(41),d=(n(5),function(e){function t(e){return i(this,t),e.db=new f.default,e.networking=new l.default({del:p.del,get:p.get,post:p.post}),e.sdkFamily="ReactNative",e.ssl=!0,s(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return o(t,e),t}(u.default));t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],r=0;r>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new o.init(n,t/2)}},c=a.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new o.init(n,t)}},l=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},h=r.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,i=n.sigBytes,s=this.blockSize,a=i/(4*s),a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0);if(t=a*s,i=e.min(4*t,i),t){for(var u=0;ul;){var h;e:{h=c;for(var f=e.sqrt(h),p=2;p<=f;p++)if(!(h%p)){h=!1;break e}h=!0}h&&(8>l&&(o[l]=u(e.pow(c,.5))),a[l]=u(e.pow(c,1/3)),l++),c++}var d=[],r=r.SHA256=s.extend({_doReset:function(){this._hash=new i.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],c=n[5],l=n[6],h=n[7],f=0;64>f;f++){if(16>f)d[f]=0|e[t+f];else{var p=d[f-15],y=d[f-2];d[f]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+d[f-7]+((y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10)+d[f-16]}p=h+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&l)+a[f]+d[f],y=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&s^i&s),h=l,l=c,c=u,u=o+p|0,o=s,s=i,i=r,r=p+y|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+u|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=s._createHelper(r),t.HmacSHA256=s._createHmacHelper(r)}(Math),function(){var e=n,t=e.enc.Utf8;e.algo.HMAC=e.lib.Base.extend({init:function(e,n){e=this._hasher=new e.init,"string"==typeof n&&(n=t.parse(n));var r=e.blockSize,i=4*r;n.sigBytes>i&&(n=e.finalize(n)),n.clamp();for(var s=this._oKey=n.clone(),o=this._iKey=n.clone(),a=s.words,u=o.words,c=0;c>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,o=0;4>o&&i+.75*o>>6*(3-o)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var n=e.length,r=this._map,i=r.charAt(64);i&&-1!=(i=e.indexOf(i))&&(n=i);for(var i=[],s=0,o=0;o>>6-o%4*2;i[s>>>2]|=(a|u)<<24-s%4*8,s++}return t.create(i,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(e){function t(e,t,n,r,i,s,o){return((e=e+(t&n|~t&r)+i+o)<>>32-s)+t}function r(e,t,n,r,i,s,o){return((e=e+(t&r|n&~r)+i+o)<>>32-s)+t}function i(e,t,n,r,i,s,o){return((e=e+(t^n^r)+i+o)<>>32-s)+t}function s(e,t,n,r,i,s,o){return((e=e+(n^(t|~r))+i+o)<>>32-s)+t}for(var o=n,a=o.lib,u=a.WordArray,c=a.Hasher,a=o.algo,l=[],h=0;64>h;h++)l[h]=4294967296*e.abs(e.sin(h+1))|0;a=a.MD5=c.extend({_doReset:function(){this._hash=new u.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,n){for(var o=0;16>o;o++){var a=n+o,u=e[a];e[a]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}var o=this._hash.words,a=e[n+0],u=e[n+1],c=e[n+2],h=e[n+3],f=e[n+4],p=e[n+5],d=e[n+6],y=e[n+7],g=e[n+8],b=e[n+9],v=e[n+10],_=e[n+11],m=e[n+12],k=e[n+13],P=e[n+14],O=e[n+15],S=o[0],T=o[1],w=o[2],C=o[3],S=t(S,T,w,C,a,7,l[0]),C=t(C,S,T,w,u,12,l[1]),w=t(w,C,S,T,c,17,l[2]),T=t(T,w,C,S,h,22,l[3]),S=t(S,T,w,C,f,7,l[4]),C=t(C,S,T,w,p,12,l[5]),w=t(w,C,S,T,d,17,l[6]),T=t(T,w,C,S,y,22,l[7]),S=t(S,T,w,C,g,7,l[8]),C=t(C,S,T,w,b,12,l[9]),w=t(w,C,S,T,v,17,l[10]),T=t(T,w,C,S,_,22,l[11]),S=t(S,T,w,C,m,7,l[12]),C=t(C,S,T,w,k,12,l[13]),w=t(w,C,S,T,P,17,l[14]),T=t(T,w,C,S,O,22,l[15]),S=r(S,T,w,C,u,5,l[16]),C=r(C,S,T,w,d,9,l[17]),w=r(w,C,S,T,_,14,l[18]),T=r(T,w,C,S,a,20,l[19]),S=r(S,T,w,C,p,5,l[20]),C=r(C,S,T,w,v,9,l[21]),w=r(w,C,S,T,O,14,l[22]),T=r(T,w,C,S,f,20,l[23]),S=r(S,T,w,C,b,5,l[24]),C=r(C,S,T,w,P,9,l[25]),w=r(w,C,S,T,h,14,l[26]),T=r(T,w,C,S,g,20,l[27]),S=r(S,T,w,C,k,5,l[28]),C=r(C,S,T,w,c,9,l[29]),w=r(w,C,S,T,y,14,l[30]),T=r(T,w,C,S,m,20,l[31]),S=i(S,T,w,C,p,4,l[32]),C=i(C,S,T,w,g,11,l[33]),w=i(w,C,S,T,_,16,l[34]),T=i(T,w,C,S,P,23,l[35]),S=i(S,T,w,C,u,4,l[36]),C=i(C,S,T,w,f,11,l[37]),w=i(w,C,S,T,y,16,l[38]),T=i(T,w,C,S,v,23,l[39]),S=i(S,T,w,C,k,4,l[40]),C=i(C,S,T,w,a,11,l[41]),w=i(w,C,S,T,h,16,l[42]),T=i(T,w,C,S,d,23,l[43]),S=i(S,T,w,C,b,4,l[44]),C=i(C,S,T,w,m,11,l[45]),w=i(w,C,S,T,O,16,l[46]),T=i(T,w,C,S,c,23,l[47]),S=s(S,T,w,C,a,6,l[48]),C=s(C,S,T,w,y,10,l[49]),w=s(w,C,S,T,P,15,l[50]),T=s(T,w,C,S,p,21,l[51]),S=s(S,T,w,C,m,6,l[52]),C=s(C,S,T,w,h,10,l[53]),w=s(w,C,S,T,v,15,l[54]),T=s(T,w,C,S,u,21,l[55]),S=s(S,T,w,C,g,6,l[56]),C=s(C,S,T,w,O,10,l[57]),w=s(w,C,S,T,d,15,l[58]),T=s(T,w,C,S,k,21,l[59]),S=s(S,T,w,C,f,6,l[60]),C=s(C,S,T,w,_,10,l[61]),w=s(w,C,S,T,c,15,l[62]),T=s(T,w,C,S,b,21,l[63]);o[0]=o[0]+S|0,o[1]=o[1]+T|0,o[2]=o[2]+w|0,o[3]=o[3]+C|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var s=e.floor(r/4294967296);for(n[15+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),n[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(n.length+1),this._process(),t=this._hash,n=t.words,r=0;4>r;r++)i=n[r],n[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8);return t},clone:function(){var e=c.clone.call(this);return e._hash=this._hash.clone(),e}}),o.MD5=c._createHelper(a),o.HmacMD5=c._createHmacHelper(a)}(Math),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,t=e.algo,s=t.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:t.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=n.hasher.create(),s=i.create(),o=s.words,a=n.keySize,n=n.iterations;o.length>>2]}},r.BlockCipher=c.extend({cfg:c.cfg.extend({mode:l,padding:f}),reset:function(){c.reset.call(this);var e=this.cfg,t=e.iv,e=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=e.createEncryptor;else n=e.createDecryptor,this._minBufferSize=1;this._mode=n.call(e,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var p=r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),l=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return e=e.salt,(e?s.create([1398893684,1701076831]).concat(e).concat(t):t).toString(a)},parse:function(e){e=a.parse(e);var t=e.words;if(1398893684==t[0]&&1701076831==t[1]){var n=s.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return p.create({ciphertext:e,salt:n})}},d=r.SerializableCipher=i.extend({cfg:i.extend({format:l}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,p.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),t=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){return r||(r=s.random(8)),e=u.create({keySize:t+n}).compute(e,r),n=s.create(e.words.slice(t),4*n),e.sigBytes=4*t,p.create({key:e,iv:n,salt:r})}},y=r.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:t}),encrypt:function(e,t,n,r){return r=this.cfg.extend(r),n=r.kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,e=d.encrypt.call(this,e,t,n.key,r),e.mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,d.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],s=[],o=[],a=[],u=[],c=[],l=[],h=[],f=[],p=[],d=[],y=0;256>y;y++)d[y]=128>y?y<<1:y<<1^283;for(var g=0,b=0,y=0;256>y;y++){var v=b^b<<1^b<<2^b<<3^b<<4,v=v>>>8^255&v^99;i[g]=v,s[v]=g;var _=d[g],m=d[_],k=d[m],P=257*d[v]^16843008*v;o[g]=P<<24|P>>>8,a[g]=P<<16|P>>>16,u[g]=P<<8|P>>>24,c[g]=P,P=16843009*k^65537*m^257*_^16843008*g,l[v]=P<<24|P>>>8,h[v]=P<<16|P>>>16,f[v]=P<<8|P>>>24,p[v]=P,g?(g=_^d[d[d[k^_]]],b^=d[d[b]]):g=b=1}var O=[0,1,2,4,8,16,32,64,128,27,54],r=r.AES=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,e=4*((this._nRounds=n+6)+1),r=this._keySchedule=[],s=0;s>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o]):(o=o<<8|o>>>24,o=i[o>>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o],o^=O[s/n|0]<<24),r[s]=r[s-n]^o}for(t=this._invKeySchedule=[],n=0;nn||4>=s?o:l[i[o>>>24]]^h[i[o>>>16&255]]^f[i[o>>>8&255]]^p[i[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,h,f,p,s),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,s,o,a){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],h=e[t+2]^n[2],f=e[t+3]^n[3],p=4,d=1;d>>24]^i[l>>>16&255]^s[h>>>8&255]^o[255&f]^n[p++],g=r[l>>>24]^i[h>>>16&255]^s[f>>>8&255]^o[255&c]^n[p++],b=r[h>>>24]^i[f>>>16&255]^s[c>>>8&255]^o[255&l]^n[p++],f=r[f>>>24]^i[c>>>16&255]^s[l>>>8&255]^o[255&h]^n[p++],c=y,l=g,h=b;y=(a[c>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&f])^n[p++],g=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[f>>>8&255]<<8|a[255&c])^n[p++],b=(a[h>>>24]<<24|a[f>>>16&255]<<16|a[c>>>8&255]<<8|a[255&l])^n[p++],f=(a[f>>>24]<<24|a[c>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^n[p++],e[t]=y,e[t+1]=g,e[t+2]=b,e[t+3]=f},keySize:8});e.AES=t._createHelper(r)}(),n.mode.ECB=function(){var e=n.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e}(),e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n=o){var u={};u.category=g.default.PNRequestMessageCountExceededCategory,u.operation=e.operation,this._listenerManager.announceStatus(u)}i.forEach(function(e){var t=e.channel,r=e.subscriptionMatch,i=e.publishMetaData;if(t===r&&(r=null),a){if(n._dedupingManager.isDuplicate(e))return;n._dedupingManager.addEntry(e)}if(d.default.endsWith(e.channel,"-pnpres")){var s={};s.channel=null,s.subscription=null,s.actualChannel=null!=r?t:null,s.subscribedChannel=null!=r?r:t,t&&(s.channel=t.substring(0,t.lastIndexOf("-pnpres"))),r&&(s.subscription=r.substring(0,r.lastIndexOf("-pnpres"))),s.action=e.payload.action,s.state=e.payload.data,s.timetoken=i.publishTimetoken,s.occupancy=e.payload.occupancy,s.uuid=e.payload.uuid,s.timestamp=e.payload.timestamp,e.payload.join&&(s.join=e.payload.join),e.payload.leave&&(s.leave=e.payload.leave),e.payload.timeout&&(s.timeout=e.payload.timeout),n._listenerManager.announcePresence(s)}else{var o={};o.channel=null,o.subscription=null,o.actualChannel=null!=r?t:null,o.subscribedChannel=null!=r?r:t,o.channel=t,o.subscription=r,o.timetoken=i.publishTimetoken,o.publisher=e.issuingClientId,e.userMetadata&&(o.userMetadata=e.userMetadata),n._config.cipherKey?o.message=n._crypto.decrypt(e.payload):o.message=e.payload,n._listenerManager.announceMessage(o)}}),this._region=t.metadata.region,this._startSubscribeLoop()}},{key:"_stopSubscribeLoop",value:function(){this._subscribeCall&&("function"==typeof this._subscribeCall.abort&&this._subscribeCall.abort(),this._subscribeCall=null)}}]),e}();t.default=b,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n=this._config.maximumCacheSize&&this.hashHistory.shift(),this.hashHistory.push(this.getKey(e))}},{key:"clearHistory",value:function(){this.hashHistory=[]}}]),e}();t.default=a,e.exports=t.default},function(e,t){"use strict";function n(e){var t=[];return Object.keys(e).forEach(function(e){return t.push(e)}),t}function r(e){return encodeURIComponent(e).replace(/[!~*'()]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function i(e){return n(e).sort()}function s(e){return i(e).map(function(t){return t+"="+r(e[t])}).join("&")}function o(e,t){return-1!==e.indexOf(t,this.length-t.length)}function a(){var e=void 0,t=void 0;return{promise:new Promise(function(n,r){e=n,t=r}),reject:t,fulfill:e}}e.exports={signPamFromParams:s,endsWith:o,createPromise:a,encodeString:r}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e,t){return e.type=t,e.error=!0,e}function u(e){return a({message:e},"validationError")}function c(e,t,n){return e.usePost&&e.usePost(t,n)?e.postURL(t,n):e.getURL(t,n)}function l(e){if(e.sdkName)return e.sdkName;var t="PubNub-JS-"+e.sdkFamily;return e.partnerId&&(t+="-"+e.partnerId),t+="/"+e.getVersion()}function h(e,t,n){var r=e.config,i=e.crypto;n.timestamp=Math.floor((new Date).getTime()/1e3);var s=r.subscribeKey+"\n"+r.publishKey+"\n"+t+"\n";s+=y.default.signPamFromParams(n);var o=i.HMACSHA256(s);o=o.replace(/\+/g,"-"),o=o.replace(/\//g,"_"),n.signature=o}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=e.networking,r=e.config,i=null,s=null,o={};t.getOperation()===v.default.PNTimeOperation||t.getOperation()===v.default.PNChannelGroupsOperation?i=arguments.length<=2?void 0:arguments[2]:(o=arguments.length<=2?void 0:arguments[2],i=arguments.length<=3?void 0:arguments[3]),"undefined"==typeof Promise||i||(s=y.default.createPromise());var a=t.validateParams(e,o);if(!a){var f=t.prepareParams(e,o),d=c(t,e,o),g=void 0,b={url:d,operation:t.getOperation(),timeout:t.getRequestTimeout(e)};f.uuid=r.UUID,f.pnsdk=l(r),r.useInstanceId&&(f.instanceid=r.instanceId),r.useRequestId&&(f.requestid=p.default.createUUID()),t.isAuthSupported()&&r.getAuthKey()&&(f.auth=r.getAuthKey()),r.secretKey&&h(e,d,f);var m=function(n,r){if(n.error)return void(i?i(n):s&&s.reject(new _("PubNub call failed, check status for details",n)));var a=t.handleResponse(e,r,o);i?i(n,a):s&&s.fulfill(a)};if(t.usePost&&t.usePost(e,o)){var k=t.postPayload(e,o);g=n.POST(f,k,b,m)}else g=t.useDelete&&t.useDelete()?n.DELETE(f,b,m):n.GET(f,b,m);return t.getOperation()===v.default.PNSubscribeOperation?g:s?s.promise:void 0}return i?i(u(a)):s?(s.reject(new _("Validation failed, check status for details",u(a))),s.promise):void 0};var f=n(3),p=r(f),d=(n(5),n(15)),y=r(d),g=n(2),b=(r(g),n(13)),v=r(b),_=function(e){function t(e,n){i(this,t);var r=s(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.name=r.constructor.name,r.status=n,r.message=e,r}return o(t,e),t}(Error);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNAddChannelsToGroupOperation}function s(e,t){var n=t.channels,r=t.channelGroup,i=e.config;return r?n&&0!==n.length?i.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channels":"Missing Channel Group"}function o(e,t){var n=t.channelGroup;return"/v1/channel-registration/sub-key/"+e.config.subscribeKey+"/channel-group/"+d.default.encodeString(n)}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.channels;return{add:(void 0===n?[]:n).join(",")}}function l(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNRemoveChannelsFromGroupOperation}function s(e,t){var n=t.channels,r=t.channelGroup,i=e.config;return r?n&&0!==n.length?i.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channels":"Missing Channel Group"}function o(e,t){var n=t.channelGroup;return"/v1/channel-registration/sub-key/"+e.config.subscribeKey+"/channel-group/"+d.default.encodeString(n)}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.channels;return{remove:(void 0===n?[]:n).join(",")}}function l(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNRemoveGroupOperation}function s(e,t){var n=t.channelGroup,r=e.config;return n?r.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channel Group"}function o(e,t){var n=t.channelGroup;return"/v1/channel-registration/sub-key/"+e.config.subscribeKey+"/channel-group/"+d.default.encodeString(n)+"/remove"}function a(){return!0}function u(e){return e.config.getTransactionTimeout()}function c(){return{}}function l(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.isAuthSupported=a,t.getRequestTimeout=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(){return h.default.PNChannelGroupsOperation}function i(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function s(e){return"/v1/channel-registration/sub-key/"+e.config.subscribeKey+"/channel-group"}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(){return{}}function c(e,t){return{groups:t.payload.groups}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNChannelsForGroupOperation}function s(e,t){var n=t.channelGroup,r=e.config;return n?r.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channel Group"}function o(e,t){var n=t.channelGroup;return"/v1/channel-registration/sub-key/"+e.config.subscribeKey+"/channel-group/"+d.default.encodeString(n)}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(){return{}}function l(e,t){return{channels:t.payload.channels}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(){return h.default.PNPushNotificationEnabledChannelsOperation}function i(e,t){var n=t.device,r=t.pushGateway,i=t.channels,s=e.config;return n?r?i&&0!==i.length?s.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channels":"Missing GW Type (pushGateway: gcm or apns)":"Missing Device ID (device)"}function s(e,t){var n=t.device;return"/v1/push/sub-key/"+e.config.subscribeKey+"/devices/"+n}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(e,t){var n=t.pushGateway,r=t.channels;return{type:n,add:(void 0===r?[]:r).join(",")}}function c(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(){return h.default.PNPushNotificationEnabledChannelsOperation}function i(e,t){var n=t.device,r=t.pushGateway,i=t.channels,s=e.config;return n?r?i&&0!==i.length?s.subscribeKey?void 0:"Missing Subscribe Key":"Missing Channels":"Missing GW Type (pushGateway: gcm or apns)":"Missing Device ID (device)"}function s(e,t){var n=t.device;return"/v1/push/sub-key/"+e.config.subscribeKey+"/devices/"+n}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(e,t){var n=t.pushGateway,r=t.channels;return{type:n,remove:(void 0===r?[]:r).join(",")}}function c(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(){return h.default.PNPushNotificationEnabledChannelsOperation}function i(e,t){var n=t.device,r=t.pushGateway,i=e.config;return n?r?i.subscribeKey?void 0:"Missing Subscribe Key":"Missing GW Type (pushGateway: gcm or apns)":"Missing Device ID (device)"}function s(e,t){var n=t.device;return"/v1/push/sub-key/"+e.config.subscribeKey+"/devices/"+n}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(e,t){return{type:t.pushGateway}}function c(e,t){return{channels:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(){return h.default.PNRemoveAllPushNotificationsOperation}function i(e,t){var n=t.device,r=t.pushGateway,i=e.config;return n?r?i.subscribeKey?void 0:"Missing Subscribe Key":"Missing GW Type (pushGateway: gcm or apns)":"Missing Device ID (device)"}function s(e,t){var n=t.device;return"/v1/push/sub-key/"+e.config.subscribeKey+"/devices/"+n+"/remove"}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(e,t){return{type:t.pushGateway}}function c(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNUnsubscribeOperation}function s(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function o(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,s=i.length>0?i.join(","):",";return"/v2/presence/sub-key/"+n.subscribeKey+"/channel/"+d.default.encodeString(s)+"/leave"}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i={};return r.length>0&&(i["channel-group"]=r.join(",")),i}function l(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(){return h.default.PNWhereNowOperation}function i(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function s(e,t){var n=e.config,r=t.uuid,i=void 0===r?n.UUID:r;return"/v2/presence/sub-key/"+n.subscribeKey+"/uuid/"+i}function o(e){return e.config.getTransactionTimeout()}function a(){return!0}function u(){return{}}function c(e,t){return t.payload?{channels:t.payload.channels}:{channels:[]}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNHeartbeatOperation}function s(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function o(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,s=i.length>0?i.join(","):",";return"/v2/presence/sub-key/"+n.subscribeKey+"/channel/"+d.default.encodeString(s)+"/heartbeat"}function a(){return!0}function u(e){return e.config.getTransactionTimeout()}function c(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i=t.state,s=void 0===i?{}:i,o=e.config,a={};return r.length>0&&(a["channel-group"]=r.join(",")),a.state=JSON.stringify(s),a.heartbeat=o.getPresenceTimeout(),a}function l(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.isAuthSupported=a,t.getRequestTimeout=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNGetStateOperation}function s(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function o(e,t){var n=e.config,r=t.uuid,i=void 0===r?n.UUID:r,s=t.channels,o=void 0===s?[]:s,a=o.length>0?o.join(","):",";return"/v2/presence/sub-key/"+n.subscribeKey+"/channel/"+d.default.encodeString(a)+"/uuid/"+i}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i={};return r.length>0&&(i["channel-group"]=r.join(",")),i}function l(e,t,n){var r=n.channels,i=void 0===r?[]:r,s=n.channelGroups,o=void 0===s?[]:s,a={};return 1===i.length&&0===o.length?a[i[0]]=t.payload:a=t.payload,{channels:a}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNSetStateOperation}function s(e,t){var n=e.config,r=t.state,i=t.channels,s=void 0===i?[]:i,o=t.channelGroups,a=void 0===o?[]:o;return r?n.subscribeKey?0===s.length&&0===a.length?"Please provide a list of channels and/or channel-groups":void 0:"Missing Subscribe Key":"Missing State"}function o(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,s=i.length>0?i.join(","):",";return"/v2/presence/sub-key/"+n.subscribeKey+"/channel/"+d.default.encodeString(s)+"/uuid/"+n.UUID+"/data"}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.state,r=t.channelGroups,i=void 0===r?[]:r,s={};return s.state=JSON.stringify(n),i.length>0&&(s["channel-group"]=i.join(",")),s}function l(e,t){return{state:t.payload}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNHereNowOperation}function s(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function o(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,s=t.channelGroups,o=void 0===s?[]:s,a="/v2/presence/sub-key/"+n.subscribeKey;if(i.length>0||o.length>0){var u=i.length>0?i.join(","):",";a+="/channel/"+d.default.encodeString(u)}return a}function a(e){return e.config.getTransactionTimeout()}function u(){return!0}function c(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i=t.includeUUIDs,s=void 0===i||i,o=t.includeState,a=void 0!==o&&o,u={};return s||(u.disable_uuids=1),a&&(u.state=1),r.length>0&&(u["channel-group"]=r.join(",")),u}function l(e,t,n){var r=n.channels,i=void 0===r?[]:r,s=n.channelGroups,o=void 0===s?[]:s,a=n.includeUUIDs,u=void 0===a||a,c=n.includeState,l=void 0!==c&&c;return i.length>1||o.length>0||0===o.length&&0===i.length?function(){var e={};return e.totalChannels=t.payload.total_channels,e.totalOccupancy=t.payload.total_occupancy,e.channels={},Object.keys(t.payload.channels).forEach(function(n){var r=t.payload.channels[n],i=[];return e.channels[n]={occupants:i,name:n,occupancy:r.occupancy},u&&r.uuids.forEach(function(e){l?i.push({state:e.state,uuid:e.uuid}):i.push({state:null,uuid:e})}),e}),e}():function(){var e={},n=[];return e.totalChannels=1,e.totalOccupancy=t.occupancy,e.channels={},e.channels[i[0]]={occupants:n,name:i[0],occupancy:t.occupancy},u&&t.uuids&&t.uuids.forEach(function(e){l?n.push({state:e.state,uuid:e.uuid}):n.push({state:null,uuid:e})}),e}()}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(){return h.default.PNAccessManagerAudit}function i(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function s(e){return"/v2/auth/audit/sub-key/"+e.config.subscribeKey}function o(e){return e.config.getTransactionTimeout()}function a(){return!1}function u(e,t){var n=t.channel,r=t.channelGroup,i=t.authKeys,s=void 0===i?[]:i,o={};return n&&(o.channel=n),r&&(o["channel-group"]=r),s.length>0&&(o.auth=s.join(",")),o}function c(e,t){return t.payload}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(){return h.default.PNAccessManagerGrant}function i(e){var t=e.config;return t.subscribeKey?t.publishKey?t.secretKey?void 0:"Missing Secret Key":"Missing Publish Key":"Missing Subscribe Key"}function s(e){return"/v2/auth/grant/sub-key/"+e.config.subscribeKey}function o(e){return e.config.getTransactionTimeout()}function a(){return!1}function u(e,t){var n=t.channels,r=void 0===n?[]:n,i=t.channelGroups,s=void 0===i?[]:i,o=t.ttl,a=t.read,u=void 0!==a&&a,c=t.write,l=void 0!==c&&c,h=t.manage,f=void 0!==h&&h,p=t.authKeys,d=void 0===p?[]:p,y={};return y.r=u?"1":"0",y.w=l?"1":"0",y.m=f?"1":"0",r.length>0&&(y.channel=r.join(",")),s.length>0&&(y["channel-group"]=s.join(",")),d.length>0&&(y.auth=d.join(",")),(o||0===o)&&(y.ttl=o),y}function c(){return{}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=r,t.validateParams=i,t.getURL=s,t.getRequestTimeout=o,t.isAuthSupported=a,t.prepareParams=u,t.handleResponse=c;var l=(n(5),n(13)),h=function(e){return e&&e.__esModule?e:{default:e}}(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=e.crypto,r=e.config,i=JSON.stringify(t);return r.cipherKey&&(i=n.encrypt(i),i=JSON.stringify(i)),i}function s(){return b.default.PNPublishOperation}function o(e,t){var n=e.config,r=t.message +;return t.channel?r?n.subscribeKey?void 0:"Missing Subscribe Key":"Missing Message":"Missing Channel"}function a(e,t){var n=t.sendByPost;return void 0!==n&&n}function u(e,t){var n=e.config,r=t.channel,s=t.message,o=i(e,s);return"/publish/"+n.publishKey+"/"+n.subscribeKey+"/0/"+_.default.encodeString(r)+"/0/"+_.default.encodeString(o)}function c(e,t){var n=e.config,r=t.channel;return"/publish/"+n.publishKey+"/"+n.subscribeKey+"/0/"+_.default.encodeString(r)+"/0"}function l(e){return e.config.getTransactionTimeout()}function h(){return!0}function f(e,t){return i(e,t.message)}function p(e,t){var n=t.meta,r=t.replicate,i=void 0===r||r,s=t.storeInHistory,o=t.ttl,a={};return null!=s&&(a.store=s?"1":"0"),o&&(a.ttl=o),!1===i&&(a.norep="true"),n&&"object"===(void 0===n?"undefined":y(n))&&(a.meta=JSON.stringify(n)),a}function d(e,t){return{timetoken:t[2]}}Object.defineProperty(t,"__esModule",{value:!0});var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.getOperation=s,t.validateParams=o,t.usePost=a,t.getURL=u,t.postURL=c,t.getRequestTimeout=l,t.isAuthSupported=h,t.postPayload=f,t.prepareParams=p,t.handleResponse=d;var g=(n(5),n(13)),b=r(g),v=n(15),_=r(v)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=e.config,r=e.crypto;if(!n.cipherKey)return t;try{return r.decrypt(t)}catch(e){return t}}function s(){return p.default.PNHistoryOperation}function o(e,t){var n=t.channel,r=e.config;return n?r.subscribeKey?void 0:"Missing Subscribe Key":"Missing channel"}function a(e,t){var n=t.channel;return"/v2/history/sub-key/"+e.config.subscribeKey+"/channel/"+y.default.encodeString(n)}function u(e){return e.config.getTransactionTimeout()}function c(){return!0}function l(e,t){var n=t.start,r=t.end,i=t.reverse,s=t.count,o=void 0===s?100:s,a=t.stringifiedTimeToken,u=void 0!==a&&a,c={include_token:"true"};return c.count=o,n&&(c.start=n),r&&(c.end=r),u&&(c.string_message_token="true"),null!=i&&(c.reverse=i.toString()),c}function h(e,t){var n={messages:[],startTimeToken:t[1],endTimeToken:t[2]};return t[0].forEach(function(t){var r={timetoken:t.timetoken,entry:i(e,t.message)};n.messages.push(r)}),n}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=s,t.validateParams=o,t.getURL=a,t.getRequestTimeout=u,t.isAuthSupported=c,t.prepareParams=l,t.handleResponse=h;var f=(n(5),n(13)),p=r(f),d=n(15),y=r(d)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return p.default.PNDeleteMessagesOperation}function s(e,t){var n=t.channel,r=e.config;return n?r.subscribeKey?void 0:"Missing Subscribe Key":"Missing channel"}function o(){return!0}function a(e,t){var n=t.channel;return"/v3/history/sub-key/"+e.config.subscribeKey+"/channel/"+y.default.encodeString(n)}function u(e){return e.config.getTransactionTimeout()}function c(){return!0}function l(e,t){var n=t.start,r=t.end,i={};return n&&(i.start=n),r&&(i.end=r),i}function h(e,t){return t.payload}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.useDelete=o,t.getURL=a,t.getRequestTimeout=u,t.isAuthSupported=c,t.prepareParams=l,t.handleResponse=h;var f=(n(5),n(13)),p=r(f),d=n(15),y=r(d)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=e.config,r=e.crypto;if(!n.cipherKey)return t;try{return r.decrypt(t)}catch(e){return t}}function s(){return p.default.PNFetchMessagesOperation}function o(e,t){var n=t.channels,r=e.config;return n&&0!==n.length?r.subscribeKey?void 0:"Missing Subscribe Key":"Missing channels"}function a(e,t){var n=t.channels,r=void 0===n?[]:n,i=e.config,s=r.length>0?r.join(","):",";return"/v3/history/sub-key/"+i.subscribeKey+"/channel/"+y.default.encodeString(s)}function u(e){return e.config.getTransactionTimeout()}function c(){return!0}function l(e,t){var n=t.start,r=t.end,i=t.count,s={};return i&&(s.max=i),n&&(s.start=n),r&&(s.end=r),s}function h(e,t){var n={channels:{}};return Object.keys(t.channels||{}).forEach(function(r){n.channels[r]=[],(t.channels[r]||[]).forEach(function(t){var s={};s.channel=r,s.subscription=null,s.timetoken=t.timetoken,s.message=i(e,t.message),n.channels[r].push(s)})}),n}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=s,t.validateParams=o,t.getURL=a,t.getRequestTimeout=u,t.isAuthSupported=c,t.prepareParams=l,t.handleResponse=h;var f=(n(5),n(13)),p=r(f),d=n(15),y=r(d)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return f.default.PNSubscribeOperation}function s(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"}function o(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,s=i.length>0?i.join(","):",";return"/v2/subscribe/"+n.subscribeKey+"/"+d.default.encodeString(s)+"/0"}function a(e){return e.config.getSubscribeTimeout()}function u(){return!0}function c(e,t){var n=e.config,r=t.channelGroups,i=void 0===r?[]:r,s=t.timetoken,o=t.filterExpression,a=t.region,u={heartbeat:n.getPresenceTimeout()};return i.length>0&&(u["channel-group"]=i.join(",")),o&&o.length>0&&(u["filter-expr"]=o),s&&(u.tt=s),a&&(u.tr=a),u}function l(e,t){var n=[];t.m.forEach(function(e){var t={publishTimetoken:e.p.t,region:e.p.r},r={shard:parseInt(e.a,10),subscriptionMatch:e.b,channel:e.c,payload:e.d,flags:e.f,issuingClientId:e.i,subscribeKey:e.k,originationTimetoken:e.o,userMetadata:e.u,publishMetaData:t};n.push(r)});var r={timetoken:t.t.t,region:t.t.r};return{messages:n,metadata:r}}Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=i,t.validateParams=s,t.getURL=o,t.getRequestTimeout=a,t.isAuthSupported=u,t.prepareParams=c,t.handleResponse=l;var h=(n(5),n(13)),f=r(h),p=n(15),d=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n=this._maxSubDomain&&(this._currentSubDomain=1),e=this._currentSubDomain.toString(),this._providedFQDN.replace("pubsub","ps"+e)}},{key:"hasModule",value:function(e){return e in this._modules}},{key:"shiftStandardOrigin",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._standardOrigin=this.nextOrigin(e),this._standardOrigin}},{key:"getStandardOrigin",value:function(){return this._standardOrigin}},{key:"POST",value:function(e,t,n,r){return this._modules.post(e,t,n,r)}},{key:"GET",value:function(e,t,n){return this._modules.get(e,t,n)}},{key:"DELETE",value:function(e,t,n){return this._modules.del(e,t,n)}},{key:"_detectErrorCategory",value:function(e){if("ENOTFOUND"===e.code)return u.default.PNNetworkIssuesCategory;if("ECONNREFUSED"===e.code)return u.default.PNNetworkIssuesCategory;if("ECONNRESET"===e.code)return u.default.PNNetworkIssuesCategory;if("EAI_AGAIN"===e.code)return u.default.PNNetworkIssuesCategory;if(0===e.status||e.hasOwnProperty("status")&&void 0===e.status)return u.default.PNNetworkIssuesCategory;if(e.timeout)return u.default.PNTimeoutCategory;if("ETIMEDOUT"===e.code)return u.default.PNNetworkIssuesCategory;if(e.response){if(e.response.badRequest)return u.default.PNBadRequestCategory;if(e.response.forbidden)return u.default.PNAccessDeniedCategory}return u.default.PNUnknownCategory}}]),e}());t.default=c,e.exports=t.default},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n>>>>>"),r.log("["+o+" / "+s+"]","\n",e.url,"\n",e.qs,"\n",n.text),r.log("-----")})}function i(e,t,n){var i=this;return this._config.logVerbosity&&(e=e.use(r)),this._config.proxy&&this._modules.proxy&&(e=this._modules.proxy.call(this,e)),this._config.keepAlive&&this._modules.keepAlive&&(e=this._modules.keepAlive(e)),e.timeout(t.timeout).end(function(e,r){var s={};if(s.error=null!==e,s.operation=t.operation,r&&r.status&&(s.statusCode=r.status),e)return s.errorData=e,s.category=i._detectErrorCategory(e),n(s,null);var o=JSON.parse(r.text);return o.error&&1===o.error&&o.status&&o.message&&o.service?(s.errorData=o,s.statusCode=o.status,s.error=!0,s.category=i._detectErrorCategory(s),n(s,null)):n(s,o)})}function s(e,t,n){var r=c.default.get(this.getStandardOrigin()+t.url).query(e);return i.call(this,r,t,n)}function o(e,t,n,r){var s=c.default.post(this.getStandardOrigin()+n.url).query(e).send(t);return i.call(this,s,n,r)}function a(e,t,n){var r=c.default.delete(this.getStandardOrigin()+t.url).query(e);return i.call(this,r,t,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.get=s,t.post=o,t.del=a;var u=n(42),c=function(e){return e&&e.__esModule?e:{default:e}}(u);n(5)},function(e,t,n){function r(){}function i(e){if(!y(e))return e;var t=[];for(var n in e)s(t,n,e[n]);return t.join("&")}function s(e,t,n){if(null!=n)if(Array.isArray(n))n.forEach(function(n){s(e,t,n)});else if(y(n))for(var r in n)s(e,t+"["+r+"]",n[r]);else e.push(encodeURIComponent(t)+"="+encodeURIComponent(n));else null===n&&e.push(encodeURIComponent(t))}function o(e){for(var t,n,r={},i=e.split("&"),s=0,o=i.length;s=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4==n){var r;try{r=t.status}catch(e){r=0}if(!r){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var r=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.onprogress=r.bind(null,"download"),t.upload&&(t.upload.onprogress=r.bind(null,"upload"))}catch(e){}try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof n&&!this._isHost(n)){var i=this._header["content-type"],s=this._serializer||v.serialize[i?i.split(";")[0]:""];!s&&u(i)&&(s=v.serialize["application/json"]),s&&(n=s(n))}for(var o in this.header)null!=this.header[o]&&this.header.hasOwnProperty(o)&&t.setRequestHeader(o,this.header[o]);return this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0!==n?n:null),this},v.agent=function(){return new b},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach(function(e){b.prototype[e.toLowerCase()]=function(t,n){var r=new v.Request(e,t);return this._setDefaults(r),n&&r.end(n),r}}),b.prototype.del=b.prototype.delete,v.get=function(e,t,n){var r=v("GET",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},v.head=function(e,t,n){var r=v("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},v.options=function(e,t,n){var r=v("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},v.del=h,v.delete=h,v.patch=function(e,t,n){var r=v("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},v.post=function(e,t,n){var r=v("POST",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},v.put=function(e,t,n){var r=v("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r}},function(e,t,n){function r(e){if(e)return i(e)}function i(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}e.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var r,i=0;i=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&t.status>=500&&501!=t.status)return!0;if(e){if(e.code&&~o.indexOf(e.code))return!0;if(e.timeout&&"ECONNABORTED"==e.code)return!0;if(e.crossDomain)return!0}return!1},r.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},r.prototype.then=function(e,t){if(!this._fullfilledPromise){var n=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(e,t){n.end(function(n,r){n?t(n):e(r)})})}return this._fullfilledPromise.then(e,t)},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype.use=function(e){return e(this),this},r.prototype.ok=function(e){if("function"!=typeof e)throw Error("Callback required");return this._okCallback=e,this},r.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},r.prototype.get=function(e){return this._header[e.toLowerCase()]},r.prototype.getHeader=r.prototype.get,r.prototype.set=function(e,t){if(s(e)){for(var n in e)this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},r.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},r.prototype.field=function(e,t){if(null===e||void 0===e)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),s(e)){for(var n in e)this.field(n,e[n]);return this}if(Array.isArray(t)){for(var r in t)this.field(e,t[r]);return this}if(null===t||void 0===t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=""+t),this._getFormData().append(e,t),this},r.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},r.prototype._auth=function(e,t,n,r){switch(n.type){case"basic":this.set("Authorization","Basic "+r(e+":"+t));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer "+e)}return this},r.prototype.withCredentials=function(e){return void 0==e&&(e=!0),this._withCredentials=e,this},r.prototype.redirects=function(e){return this._maxRedirects=e,this},r.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw TypeError("Invalid argument");return this._maxResponseSize=e,this},r.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},r.prototype.send=function(e){var t=s(e),n=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&s(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(n||this.type("form"),n=this._header["content-type"],this._data="application/x-www-form-urlencoded"==n?this._data?this._data+"&"+e:e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)?this:(n||this.type("json"),this)},r.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},r.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.indexOf("?")>=0?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.substring(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.substring(0,t)+"?"+n.join("&")}}},r.prototype._appendQueryString=function(){console.trace("Unsupported")},r.prototype._timeoutError=function(e,t,n){if(!this._aborted){var r=new Error(e+t+"ms exceeded");r.timeout=t,r.code="ECONNABORTED",r.errno=n,this.timedout=!0,this.abort(),this.callback(r)}},r.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},function(e,t){"use strict";function n(e){return null!==e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";function r(e){if(e)return i(e)}function i(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}var s=n(47);e.exports=r,r.prototype.get=function(e){return this.header[e.toLowerCase()]},r.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=s.type(t);var n=s.params(t);for(var r in n)this[r]=n[r];this.links={};try{e.link&&(this.links=s.parseLinks(e.link))}catch(e){}},r.prototype._setStatusProperties=function(e){var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.redirect=3==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.forbidden=403==e,this.notFound=404==e}},function(e,t){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var n=t.split(/ *= */),r=n.shift(),i=n.shift();return r&&i&&(e[r]=i),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var n=t.split(/ *; */),r=n[0].slice(1,-1);return e[n[1].split(/ *= */)[1].slice(1,-1)]=r,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},function(e,t){function n(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert"].forEach(function(e){n.prototype[e]=function(){return this._defaults.push({fn:e,arguments:arguments}),this}}),n.prototype._setDefaults=function(e){this._defaults.forEach(function(t){e[t.fn].apply(e,t.arguments)})},e.exports=n}])}); \ No newline at end of file diff --git a/dist/react_native/stats.json b/dist/react_native/stats.json new file mode 100644 index 000000000..1df90c5fc --- /dev/null +++ b/dist/react_native/stats.json @@ -0,0 +1 @@ +{"errors":[],"warnings":[],"version":"1.15.0","hash":"d8bd96d71e62fa298b50","publicPath":"","assetsByChunkName":{"main":"pubnub.js"},"assets":[{"name":"pubnub.js","size":202599,"chunks":[0],"chunkNames":["main"],"emitted":true},{"name":"stats.json","size":0,"chunks":[],"chunkNames":[]}],"chunks":[{"id":0,"rendered":true,"initial":true,"entry":true,"extraAsync":false,"size":192915,"names":["main"],"files":["pubnub.js"],"hash":"db765e9de02c947aafe7","parents":[],"modules":[],"filteredModules":49,"origins":[{"moduleId":0,"module":"/Users/samhunter/Documents/javascript/node_modules/babel-loader/lib/index.js!/Users/samhunter/Documents/javascript/src/react_native/index.js","moduleIdentifier":"/Users/samhunter/Documents/javascript/node_modules/babel-loader/lib/index.js!/Users/samhunter/Documents/javascript/src/react_native/index.js","moduleName":"./src/react_native/index.js","loc":"","name":"main","reasons":[]}]}],"modules":[],"filteredModules":49,"children":[]} \ No newline at end of file diff --git a/gulpfile.babel.js b/gulpfile.babel.js index cbc74a0a4..80788138e 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -51,6 +51,12 @@ gulp.task('compile_titanium', () => { .pipe(gulp.dest('dist/titanium')); }); +gulp.task('compile_react_native', () => { + return gulp.src('src/react_native/index.js') + .pipe(gulpWebpack(webpackConfig)) + .pipe(gulp.dest('dist/react_native')); +}); + gulp.task('create_version', () => { return gulp.src('dist/web/pubnub.js') .pipe(rename(`pubnub.${packageJSON.version}.js`)) @@ -81,6 +87,13 @@ gulp.task('uglify_titanium', () => { .pipe(gulp.dest('dist/titanium')); }); +gulp.task('uglify_react_native', () => { + return gulp.src('dist/react_native/pubnub.js') + .pipe(uglify({ mangle: true, compress: true })) + .pipe(rename('pubnub.min.js')) + .pipe(gulp.dest('dist/react_native')); +}); + gulp.task('lint_code', [], () => { return gulp.src(['src/**/*.js']) .pipe(eslint()) diff --git a/yarn.lock b/yarn.lock index e3a88854f..1d3ca06e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,7 +23,7 @@ abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -accepts@1.3.3, accepts@~1.3.3: +accepts@1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: @@ -104,10 +104,6 @@ ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -188,14 +184,6 @@ array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -218,13 +206,6 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -array.prototype.find@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - arraybuffer.slice@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" @@ -271,7 +252,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@1.x, async@^1.3.0, async@^1.4.0, async@^1.5.2: +async@1.x, async@^1.3.0, async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -798,10 +779,6 @@ base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -908,17 +885,6 @@ body-parser@^1.16.1: raw-body "~2.2.0" type-is "~1.6.15" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1015,10 +981,6 @@ buffer-indexof-polyfill@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz#a9fb806ce8145d5428510ce72f278bb363a638bf" -buffer-indexof@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" - buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" @@ -1066,10 +1028,6 @@ bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" -bytes@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" - bytes@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-0.3.0.tgz#78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935" @@ -1177,7 +1135,7 @@ chalk@~0.4.0: has-color "~0.1.0" strip-ansi "~0.1.0" -chokidar@^1.0.0, chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.0.0, chokidar@^1.4.1, chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -1270,6 +1228,12 @@ combine-lists@^1.0.0: dependencies: lodash "^4.5.0" +combined-stream@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1308,24 +1272,6 @@ component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" -compressible@~2.0.10: - version "2.0.11" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" - dependencies: - mime-db ">= 1.29.0 < 2" - -compression@^1.5.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" - dependencies: - accepts "~1.3.3" - bytes "2.5.0" - compressible "~2.0.10" - debug "2.6.8" - on-headers "~1.0.1" - safe-buffer "5.1.1" - vary "~1.1.1" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1346,10 +1292,6 @@ concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" -connect-history-api-fallback@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" - connect@^3.6.0: version "3.6.3" resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.3.tgz#f7320d46a25b4be7b483a2236517f24b1e27e301" @@ -1381,10 +1323,6 @@ contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" @@ -1393,15 +1331,11 @@ convert-source-map@1.X, convert-source-map@^1.1.0, convert-source-map@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" -cookiejar@^2.0.6: +cookiejar@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" @@ -1538,7 +1472,7 @@ debug@0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" -debug@2, debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: +debug@2, debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.8: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: @@ -1568,6 +1502,12 @@ debug@2.6.7: dependencies: ms "2.0.0" +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1638,7 +1578,7 @@ deep-eql@^0.1.3: dependencies: type-detect "0.1.1" -deep-equal@^1.0.0, deep-equal@^1.0.1: +deep-equal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -1656,13 +1596,6 @@ defaults@^1.0.0: dependencies: clone "^1.0.2" -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - degenerator@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" @@ -1683,17 +1616,6 @@ del@^2.0.2: pinkie-promise "^2.0.0" rimraf "^2.2.8" -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1702,7 +1624,7 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1, depd@~1.1.0, depd@~1.1.1: +depd@1.1.1, depd@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" @@ -1717,10 +1639,6 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - detect-file@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" @@ -1737,10 +1655,6 @@ detect-newline@2.X: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -1757,24 +1671,7 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.1.tgz#d0124c651d0efb969a80481dddeb25e6c2c12b44" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - -doctrine@1.5.0, doctrine@^1.2.2: +doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: @@ -2013,24 +1910,6 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.0" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - es5-ext@^0.10.13, es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2: version "0.10.27" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.27.tgz#bf926b058c62b1cb5de1a887930673b6aa6d9a66" @@ -2174,16 +2053,6 @@ eslint-plugin-mocha@^4.8.0: dependencies: ramda "^0.24.1" -eslint-plugin-react@^6.9.0: - version "6.10.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" - dependencies: - array.prototype.find "^2.0.1" - doctrine "^1.2.2" - has "^1.0.1" - jsx-ast-utils "^1.3.4" - object.assign "^4.0.4" - eslint-restricted-globals@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" @@ -2272,10 +2141,6 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" - event-emitter@^0.3.4, event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" @@ -2303,12 +2168,6 @@ events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" @@ -2368,39 +2227,6 @@ expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -express@^4.13.3: - version "4.15.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" - dependencies: - accepts "~1.3.3" - array-flatten "1.1.1" - content-disposition "0.5.2" - content-type "~1.0.2" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.8" - depd "~1.1.1" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.4" - fresh "0.5.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.1" - path-to-regexp "0.1.7" - proxy-addr "~1.1.5" - qs "6.5.0" - range-parser "~1.2.0" - send "0.15.4" - serve-static "1.12.4" - setprototypeof "1.0.3" - statuses "~1.3.1" - type-is "~1.6.15" - utils-merge "1.0.0" - vary "~1.1.1" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -2441,18 +2267,6 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -2507,7 +2321,7 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@1.0.4, finalhandler@~1.0.4: +finalhandler@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" dependencies: @@ -2627,21 +2441,17 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@1.0.0-rc4: - version "1.0.0-rc4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc4.tgz#05ac6bc22227b43e4461f488161554699d4f8b5e" +form-data@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: - async "^1.5.2" - combined-stream "^1.0.5" - mime-types "^2.1.10" + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" form-data@~2.1.1: version "2.1.4" @@ -2657,17 +2467,9 @@ formatio@1.2.0: dependencies: samsam "1.x" -formidable@^1.0.17: - version "1.1.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" - -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" - -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +formidable@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" from@~0: version "0.1.7" @@ -2730,7 +2532,7 @@ ftp@~0.3.10: readable-stream "1.1.x" xregexp "2.0.0" -function-bind@^1.0.2, function-bind@^1.1.0: +function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -2937,16 +2739,6 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globule@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" @@ -3209,10 +3001,6 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - handlebars@^4.0.1: version "4.0.10" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" @@ -3347,19 +3135,6 @@ hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - htmlparser2@3.8.x: version "3.8.3" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" @@ -3370,11 +3145,7 @@ htmlparser2@3.8.x: entities "1.0" readable-stream "1.1" -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@~1.6.1, http-errors@~1.6.2: +http-errors@~1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: @@ -3391,16 +3162,7 @@ http-proxy-agent@1, http-proxy-agent@^1.0.0: debug "2" extend "3" -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.13.0, http-proxy@^1.16.2: +http-proxy@^1.13.0: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: @@ -3507,12 +3269,6 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -internal-ip@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - interpret@^0.6.4: version "0.6.6" resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" @@ -3531,14 +3287,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ip@^1.1.0, ip@^1.1.4, ip@^1.1.5: +ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" - irregular-plurals@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.3.0.tgz#7af06931bdf74be33dcf585a13e06fccc16caecf" @@ -3580,14 +3332,6 @@ is-bzip2@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -3717,12 +3461,6 @@ is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - is-relative@^0.1.0: version "0.1.3" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" @@ -3747,10 +3485,6 @@ is-stream@^1.0.0, is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - is-tar@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" @@ -3909,7 +3643,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@3.3.2, json3@^3.3.2: +json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -3940,10 +3674,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^1.3.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" - karma-babel-preprocessor@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/karma-babel-preprocessor/-/karma-babel-preprocessor-6.0.1.tgz#7ae1d3e64950dbe11f421b74040ab08fb5a66c21" @@ -4091,6 +3821,10 @@ liftoff@^2.1.0: rechoir "^0.6.2" resolve "^1.1.7" +lil-uuid@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/lil-uuid/-/lil-uuid-0.1.1.tgz#f9edcf23f00e42bf43f0f843d98d8b53f3341f16" + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -4373,7 +4107,7 @@ lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.2: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.2: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -4401,10 +4135,6 @@ logalot@^2.0.0: figures "^1.3.5" squeak "^1.0.0" -loglevel@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" - lolex@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6" @@ -4525,21 +4255,17 @@ meow@^3.1.0, meow@^3.3.0, meow@^3.5.0: redent "^1.0.0" trim-newlines "^1.0.0" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - merge-stream@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" dependencies: readable-stream "^2.0.1" -methods@^1.1.1, methods@~1.1.2: +methods@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.1.5, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -4564,24 +4290,24 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: +mime-db@~1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" -mime-types@^2.1.10, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: mime-db "~1.29.0" -mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - mime@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -4667,17 +4393,6 @@ ms@2.0.0, ms@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" - dependencies: - dns-packet "^1.0.1" - thunky "^0.1.0" - multipipe@^0.1.0, multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -4737,10 +4452,6 @@ node-fetch@^1.6.3: encoding "^0.1.11" is-stream "^1.0.1" -node-forge@0.6.33: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" - node-libs-browser@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" @@ -4891,22 +4602,10 @@ object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" -object-keys@^1.0.10, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" -object.assign@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - object-keys "^1.0.10" - object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" @@ -4929,20 +4628,12 @@ object.pick@^1.2.0: dependencies: isobject "^2.1.0" -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - once@1.x, once@^1.3.0, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4959,13 +4650,6 @@ onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - optimist@^0.6.1, optimist@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -5007,12 +4691,6 @@ ordered-read-streams@^0.3.0: is-stream "^1.0.1" readable-stream "^2.0.1" -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - os-browserify@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" @@ -5060,10 +4738,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" - pac-proxy-agent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.0.tgz#beb17cd2b06a20b379d57e1b2e2c29be0dfe5f9a" @@ -5190,10 +4864,6 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - path-to-regexp@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" @@ -5260,10 +4930,6 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -5290,14 +4956,6 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" -portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -5338,13 +4996,6 @@ propagate@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/propagate/-/propagate-0.4.0.tgz#f3fcca0a6fe06736a7ba572966069617c130b481" -proxy-addr@~1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" - dependencies: - forwarded "~0.1.0" - ipaddr.js "1.4.0" - proxy-agent@2: version "2.1.0" resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.1.0.tgz#a3a2b3866debfeb79bb791f345dc9bc876e7ff86" @@ -5392,10 +5043,14 @@ qs@6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@6.5.0, qs@^6.0.2, qs@^6.1.0: +qs@^6.0.2: version "6.5.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" +qs@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" @@ -5408,14 +5063,6 @@ querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - ramda@^0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" @@ -5433,7 +5080,7 @@ randombytes@^2.0.0, randombytes@^2.0.1: dependencies: safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: +range-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -5500,7 +5147,7 @@ readable-stream@1.1, readable-stream@1.1.x, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: +readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -5726,7 +5373,7 @@ require-uncached@^1.0.2: caller-path "^0.1.0" resolve-from "^1.0.0" -requires-port@1.0.x, requires-port@1.x.x: +requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5810,7 +5457,7 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5824,16 +5471,6 @@ seek-bzip@^1.0.3: dependencies: commander "~2.8.1" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selfsigned@^1.9.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" - dependencies: - node-forge "0.6.33" - semver-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" @@ -5856,49 +5493,10 @@ semver@~5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" -send@0.15.4: - version "0.15.4" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" - dependencies: - debug "2.6.8" - depd "~1.1.1" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" - http-errors "~1.6.2" - mime "1.3.4" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" - sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" -serve-index@^1.7.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" - dependencies: - accepts "~1.3.3" - batch "0.6.1" - debug "2.6.8" - escape-html "~1.0.3" - http-errors "~1.6.1" - mime-types "~2.1.15" - parseurl "~1.3.1" - -serve-static@1.12.4: - version "1.12.4" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.4" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -6024,24 +5622,6 @@ socket.io@1.7.3: socket.io-client "1.7.3" socket.io-parser "2.3.1" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.18: - version "0.3.18" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" - dependencies: - faye-websocket "^0.10.0" - uuid "^2.0.2" - socks-proxy-agent@2: version "2.1.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" @@ -6131,29 +5711,6 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -6365,22 +5922,22 @@ superagent-proxy@^1.0.2: debug "2" proxy-agent "2" -superagent@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-2.3.0.tgz#703529a0714e57e123959ddefbce193b2e50d115" +superagent@^3.8.1: + version "3.8.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.2.tgz#e4a11b9d047f7d3efeb3bbe536d9ec0021d16403" dependencies: component-emitter "^1.2.0" - cookiejar "^2.0.6" - debug "^2.2.0" + cookiejar "^2.1.0" + debug "^3.1.0" extend "^3.0.0" - form-data "1.0.0-rc4" - formidable "^1.0.17" + form-data "^2.3.1" + formidable "^1.1.1" methods "^1.1.1" - mime "^1.3.4" - qs "^6.1.0" + mime "^1.4.1" + qs "^6.5.1" readable-stream "^2.0.5" -supports-color@3.1.2, supports-color@^3.1.0, supports-color@^3.1.1: +supports-color@3.1.2, supports-color@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: @@ -6505,10 +6062,6 @@ thunkify@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" - tildify@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" @@ -6519,10 +6072,6 @@ time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - timed-out@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" @@ -6728,20 +6277,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@^1.1.8: - version "1.1.9" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" - dependencies: - querystringify "~1.0.0" - requires-port "1.0.x" - url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -6780,11 +6315,11 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" -uuid@^2.0.1, uuid@^2.0.2: +uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0, uuid@^3.0.1: +uuid@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -6805,10 +6340,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -vary@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -6926,12 +6457,6 @@ watchpack@^1.3.1: chokidar "^1.7.0" graceful-fs "^4.1.2" -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - webpack-core@~0.6.9: version "0.6.9" resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" @@ -6939,44 +6464,6 @@ webpack-core@~0.6.9: source-list-map "~0.1.7" source-map "~0.4.1" -webpack-dev-middleware@^1.11.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" - dependencies: - memory-fs "~0.4.1" - mime "^1.3.4" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" - -webpack-dev-server@^2.4.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^1.6.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - del "^3.0.0" - express "^4.13.3" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - internal-ip "^1.2.0" - ip "^1.1.5" - loglevel "^1.4.1" - opn "4.0.2" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.18" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" - webpack-dev-middleware "^1.11.0" - yargs "^6.0.0" - webpack-sources@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" @@ -7042,16 +6529,6 @@ webpack@^2.4.1: webpack-sources "^1.0.1" yargs "^6.0.0" -websocket-driver@>=0.5.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - dependencies: - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" - which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"