From 9bf63cccc733ff6d50478f2a2074226594b9ba69 Mon Sep 17 00:00:00 2001 From: Nam Nguyen Date: Wed, 26 Apr 2023 11:36:24 -0300 Subject: [PATCH] Add latest build --- dist/moxios.js | 146 +++++++++++++++++++++++++---------------- dist/moxios.js.map | 2 +- dist/moxios.min.js | 146 +++++++++++++++++++++++++---------------- dist/moxios.min.js.map | 2 +- 4 files changed, 180 insertions(+), 116 deletions(-) diff --git a/dist/moxios.js b/dist/moxios.js index 9117e32..8a7cd91 100644 --- a/dist/moxios.js +++ b/dist/moxios.js @@ -52,7 +52,7 @@ return /******/ (function(modules) { // webpackBootstrap /************************************************************************/ /******/ ([ /* 0 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -95,11 +95,44 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var TimeoutException = new Error('Timeout: Stub function not called.'); - var DEFAULT_WAIT_DELAY = 100; + var DEFAULT_WAIT_DELAY = 1; // The default adapter var defaultAdapter = void 0; + /** + * Check if a tracked stub or request matches a request by comparing URL and method + * + * @param {Object} tracked An item of a Tracker instance + * @param {Object} request A Request + * @param {String} [baseURL] The base URL of the request config + * @return {boolean} Whether or not the request is a match for the tracked item + */ + var matchRequest = function matchRequest(tracked, request) { + var baseURL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + + var matchedURL = false; + var matchedMethod = true; + + if (tracked.url instanceof RegExp) { + matchedURL = tracked.url.test(request.url); + } else if (request.url instanceof RegExp) { + matchedURL = request.url.test(tracked.url); + } else { + matchedURL = '' + (baseURL || '') + tracked.url === request.url; + } + + if (tracked.method) { + // Stub tracking + matchedMethod = request.config.method.toLowerCase() === tracked.method.toLowerCase(); + } else if (tracked.config && tracked.config.method) { + // Request tracking + matchedMethod = request.config.method.toLowerCase() === tracked.config.method.toLowerCase(); + } + + return matchedURL && matchedMethod; + }; + /** * The mock adapter that gets installed. * @@ -115,14 +148,8 @@ return /******/ (function(modules) { // webpackBootstrap // Check for matching stub to auto respond with for (var i = 0, l = moxios.stubs.count(); i < l; i++) { var stub = moxios.stubs.at(i); - var correctURL = stub.url instanceof RegExp ? stub.url.test(request.url) : stub.url === request.url; - var correctMethod = true; - if (stub.method !== undefined) { - correctMethod = stub.method.toLowerCase() === request.config.method.toLowerCase(); - } - - if (correctURL && correctMethod) { + if (matchRequest(stub, request, config && config.baseURL)) { if (stub.timeout) { throwTimeout(config); } @@ -269,24 +296,15 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'get', value: function get(method, url) { - function getElem(element, index, array) { - var matchedUrl = element.url instanceof RegExp ? element.url.test(element.url) : element.url === url; - var matchedMethod = void 0; - - if (element.config) { - // request tracking - matchedMethod = method.toLowerCase() === element.config.method.toLowerCase(); - } else { - // stub tracking - matchedMethod = method.toLowerCase() === element.method.toLowerCase(); - } - - if (matchedUrl && matchedMethod) { - return element; - } - } + // Mock a request config + var request = { + url: url, + config: { method: method } + }; - return this.__items.find(getElem); + return this.__items.find(function (item) { + return matchRequest(item, request); + }); } /** @@ -315,7 +333,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Function} reject The function to call when Promise is rejected * @param {Object} config The config object to be used for the request */ - function Request(resolve, reject, config) { _classCallCheck(this, Request); @@ -426,7 +443,7 @@ return /******/ (function(modules) { // webpackBootstrap * Install the mock adapter for axios */ install: function install() { - var instance = arguments.length <= 0 || arguments[0] === undefined ? _axios2.default : arguments[0]; + var instance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _axios2.default; defaultAdapter = instance.defaults.adapter; instance.defaults.adapter = mockAdapter; @@ -436,7 +453,7 @@ return /******/ (function(modules) { // webpackBootstrap * Uninstall the mock adapter and reset state */ uninstall: function uninstall() { - var instance = arguments.length <= 0 || arguments[0] === undefined ? _axios2.default : arguments[0]; + var instance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _axios2.default; instance.defaults.adapter = defaultAdapter; this.stubs.reset(); @@ -445,13 +462,19 @@ return /******/ (function(modules) { // webpackBootstrap /** * Stub a response to be used to respond to a request matching a method and a URL or RegExp + * The first parameter is optional for backwards compatability reasons. It might change to + * a required parameter in the future. Please always specify a method * - * @param {String} method An axios command + * @param {String} [method] An axios command * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against * @param {Object} response The response to use when a match is made */ - stubRequest: function stubRequest(urlOrRegExp, response) { - this.stubs.track({ url: urlOrRegExp, response: response }); + stubRequest: function stubRequest() { + if (arguments.length === 3) { + this.stubs.track({ method: arguments.length <= 0 ? undefined : arguments[0], url: arguments.length <= 1 ? undefined : arguments[1], response: arguments.length <= 2 ? undefined : arguments[2] }); + } else { + this.stubs.track({ url: arguments.length <= 0 ? undefined : arguments[0], response: arguments.length <= 1 ? undefined : arguments[1] }); + } }, /** @@ -520,28 +543,37 @@ return /******/ (function(modules) { // webpackBootstrap * This is naively using a `setTimeout`. * May need to beef this up a bit in the future. * - * @param {Function} fn The function to execute once waiting is over + * @param {Function} fn Optional function to execute once waiting is over * @param {Number} delay How much time in milliseconds to wait + * + * @return {Object} Promise that gets resolved when waiting completed */ - wait: function wait(fn) { - var delay = arguments.length <= 1 || arguments[1] === undefined ? this.delay : arguments[1]; + wait: function wait() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var cb = typeof args[0] === 'function' ? args.shift() : null; + var delay = typeof args[0] !== 'undefined' ? args.shift() : this.delay; - setTimeout(fn, delay); + return new Promise(function (resolve) { + setTimeout(resolve, delay); + }).then(cb); } }; exports.default = moxios; module.exports = exports['default']; -/***/ }, +/***/ }), /* 1 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; -/***/ }, +/***/ }), /* 2 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -613,9 +645,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 3 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -918,9 +950,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 4 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -935,9 +967,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 5 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1009,9 +1041,9 @@ return /******/ (function(modules) { // webpackBootstrap ); -/***/ }, +/***/ }), /* 6 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -1051,9 +1083,9 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = btoa; -/***/ }, +/***/ }), /* 7 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1110,9 +1142,9 @@ return /******/ (function(modules) { // webpackBootstrap ); -/***/ }, +/***/ }), /* 8 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1141,9 +1173,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 9 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1164,9 +1196,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 10 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -1189,7 +1221,7 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ } +/***/ }) /******/ ]) }); ; diff --git a/dist/moxios.js.map b/dist/moxios.js.map index b8e67ad..0639081 100644 --- a/dist/moxios.js.map +++ b/dist/moxios.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap cd22835bc4f2ba662ffd","webpack:///./index.js","webpack:///external \"axios\"","webpack:///./~/axios/lib/helpers/buildURL.js","webpack:///./~/axios/lib/utils.js","webpack:///./~/axios/lib/helpers/bind.js","webpack:///./~/axios/lib/helpers/isURLSameOrigin.js","webpack:///./~/axios/lib/helpers/btoa.js","webpack:///./~/axios/lib/helpers/cookies.js","webpack:///./~/axios/lib/core/settle.js","webpack:///./~/axios/lib/core/createError.js","webpack:///./~/axios/lib/core/enhanceError.js"],"names":[],"mappings":"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B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAwC;AACxC,QAAO;;AAEP;AACA,2DAA0D,wBAAwB;AAClF;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,iCAAgC;AAChC,8BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,IAAG;AACH;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"dist/moxios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"axios\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"axios\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"moxios\"] = factory(require(\"axios\"));\n\telse\n\t\troot[\"moxios\"] = factory(root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap cd22835bc4f2ba662ffd\n **/","import axios from 'axios'\nimport buildURL from 'axios/lib/helpers/buildURL'\nimport isURLSameOrigin from 'axios/lib/helpers/isURLSameOrigin'\nimport btoa from 'axios/lib/helpers/btoa'\nimport cookies from 'axios/lib/helpers/cookies'\nimport settle from 'axios/lib/core/settle'\nimport createError from 'axios/lib/core/createError'\n\nconst TimeoutException = new Error('Timeout: Stub function not called.')\nconst DEFAULT_WAIT_DELAY = 100\n\n// The default adapter\nlet defaultAdapter\n\n/**\n * The mock adapter that gets installed.\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\nlet mockAdapter = (config) => {\n return new Promise(function (resolve, reject) {\n let request = new Request(resolve, reject, config)\n moxios.requests.track(request)\n\n // Check for matching stub to auto respond with\n for (let i=0, l=moxios.stubs.count(); i {\n return createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED')\n}\n\n/**\n * throw common error for timeout response\n *\n * @param {object} config The config object to be used for the request\n */\nlet throwTimeout = (config) => {\n throw createTimeout(config)\n}\n\nclass Tracker {\n constructor() {\n this.__items = []\n }\n\n /**\n * Reset all the items being tracked\n */\n reset() {\n this.__items.splice(0)\n }\n\n /**\n * Add an item to be tracked\n *\n * @param {Object} item An item to be tracked\n */\n track(item) {\n this.__items.push(item)\n }\n\n /**\n * The count of items being tracked\n *\n * @return {Number}\n */\n count() {\n return this.__items.length\n }\n\n /**\n * Get an item being tracked at a given index\n *\n * @param {Number} index The index for the item to retrieve\n * @return {Object}\n */\n at(index) {\n return this.__items[index]\n }\n\n /**\n * Get the first item being tracked\n *\n * @return {Object}\n */\n first() {\n return this.at(0)\n }\n\n /**\n * Get the most recent (last) item being tracked\n *\n * @return {Object}\n */\n mostRecent() {\n return this.at(this.count() - 1)\n }\n\n /**\n * Dump the items being tracked to the console.\n */\n debug() {\n console.log();\n this.__items.forEach((element) => {\n let output;\n\n if (element.config) {\n // request\n output = element.config.method.toLowerCase() + ', ';\n output += element.config.url;\n } else {\n // stub\n output = element.method.toLowerCase() + ', ';\n output += element.url + ', ';\n output += element.response.status + ', ';\n\n if (element.response.response) {\n output += JSON.stringify(element.response.response);\n } else {\n output += '{}';\n }\n }\n console.log(output);\n });\n }\n\n /**\n * Find and return element given the HTTP method and the URL.\n */\n get(method, url) {\n function getElem (element, index, array) {\n let matchedUrl = element.url instanceof RegExp ? element.url.test(element.url) : element.url === url;\n let matchedMethod;\n\n if (element.config) {\n // request tracking\n matchedMethod = method.toLowerCase() === element.config.method.toLowerCase();\n } else {\n // stub tracking\n matchedMethod = method.toLowerCase() === element.method.toLowerCase();\n }\n\n if (matchedUrl && matchedMethod) {\n return element;\n }\n }\n\n return this.__items.find(getElem);\n }\n\n /**\n * Stop an element from being tracked by removing it. Finds and returns the element,\n * given the HTTP method and the URL.\n */\n remove(method, url) {\n let elem = this.get(method, url);\n let index = this.__items.indexOf(elem);\n\n return this.__items.splice(index, 1)[0];\n }\n}\n\nclass Request {\n /**\n * Create a new Request object\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\n constructor(resolve, reject, config) {\n this.resolve = resolve\n this.reject = reject\n this.config = config\n\n this.headers = config.headers\n this.url = buildURL(config.url, config.params, config.paramsSerializer)\n this.timeout = config.timeout\n this.withCredentials = config.withCredentials || false\n this.responseType = config.responseType\n\n // Set auth header\n if (config.auth) {\n let username = config.auth.username || ''\n let password = config.auth.password || ''\n this.headers.Authorization = 'Basic ' + btoa(username + ':' + password)\n }\n\n // Set xsrf header\n if (typeof document !== 'undefined' && typeof document.cookie !== 'undefined') {\n let xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined\n\n if (xsrfValue) {\n this.headers[config.xsrfHeaderName] = xsrfValue\n }\n }\n }\n\n /**\n * Respond to this request with a timeout result\n *\n * @return {Promise} A Promise that rejects with a timeout result\n */\n respondWithTimeout() {\n let response = new Response(this, createTimeout(this.config))\n settle(this.resolve, this.reject, response)\n return new Promise(function(resolve, reject) {\n moxios.wait(function() {\n reject(response)\n })\n })\n }\n\n /**\n * Respond to this request with a specified result\n *\n * @param {Object} res The data representing the result of the request\n * @return {Promise} A Promise that resolves once the response is ready\n */\n respondWith(res) {\n let response = new Response(this, res)\n settle(this.resolve, this.reject, response)\n return new Promise(function (resolve) {\n moxios.wait(function () {\n resolve(response)\n })\n })\n }\n}\n\nclass Response {\n /**\n * Create a new Response object\n *\n * @param {Request} req The Request that this Response is associated with\n * @param {Object} res The data representing the result of the request\n */\n constructor(req, res) {\n this.config = req.config\n this.data = res.responseText || res.response;\n this.status = res.status\n this.statusText = res.statusText\n \n /* lowecase all headers keys to be consistent with Axios */\n if ('headers' in res) {\n let newHeaders = {};\n for (let header in res.headers) {\n newHeaders[header.toLowerCase()] = res.headers[header];\n }\n res.headers = newHeaders;\n }\n this.headers = res.headers\n this.request = req\n this.code = res.code\n }\n}\n\nlet moxios = {\n stubs: new Tracker(),\n requests: new Tracker(),\n delay: DEFAULT_WAIT_DELAY,\n timeoutException: TimeoutException,\n\n /**\n * Install the mock adapter for axios\n */\n install: function(instance = axios) {\n defaultAdapter = instance.defaults.adapter\n instance.defaults.adapter = mockAdapter\n },\n\n /**\n * Uninstall the mock adapter and reset state\n */\n uninstall: function(instance = axios) {\n instance.defaults.adapter = defaultAdapter\n this.stubs.reset()\n this.requests.reset()\n },\n\n /**\n * Stub a response to be used to respond to a request matching a method and a URL or RegExp\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubRequest: function (urlOrRegExp, response) {\n this.stubs.track({url: urlOrRegExp, response});\n },\n\n /**\n * Stub a response to be used one or more times to respond to a request matching a\n * method and a URL or RegExp.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubOnce: function (method, urlOrRegExp, response) {\n return new Promise((resolve) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n });\n },\n\n /**\n * Stub a timed response to a request matching a method and a URL or RegExp. If\n * timer fires, reject with a TimeoutException for simple assertions. The goal is\n * to show that a certain request was not made.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubFailure: function (method, urlOrRegExp, response) {\n return new Promise((resolve, reject) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n setTimeout(function() {\n reject(TimeoutException);\n }, 500);\n });\n },\n\n /**\n * Stub a timeout to be used to respond to a request matching a URL or RegExp\n *\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n */\n stubTimeout: function(urlOrRegExp) {\n this.stubs.track({url: urlOrRegExp, timeout: true})\n },\n\n /**\n * Run a single test with mock adapter installed.\n * This will install the mock adapter, execute the function provided,\n * then uninstall the mock adapter once complete.\n *\n * @param {Function} fn The function to be executed\n */\n withMock: function(fn) {\n this.install()\n try {\n fn()\n } finally {\n this.uninstall()\n }\n },\n\n /**\n * Wait for request to be made before proceding.\n * This is naively using a `setTimeout`.\n * May need to beef this up a bit in the future.\n *\n * @param {Function} fn The function to execute once waiting is over\n * @param {Number} delay How much time in milliseconds to wait\n */\n wait: function(fn, delay = this.delay) {\n setTimeout(fn, delay)\n }\n}\n\nexport default moxios\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 1\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/buildURL.js\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/utils.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/bind.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/isURLSameOrigin.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/btoa.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/cookies.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response\n ));\n }\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/settle.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, response);\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/createError.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.response = response;\n return error;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/enhanceError.js\n ** module id = 10\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 9827c7096fe239437efb","webpack:///./index.js","webpack:///external \"axios\"","webpack:///./~/axios/lib/helpers/buildURL.js","webpack:///./~/axios/lib/utils.js","webpack:///./~/axios/lib/helpers/bind.js","webpack:///./~/axios/lib/helpers/isURLSameOrigin.js","webpack:///./~/axios/lib/helpers/btoa.js","webpack:///./~/axios/lib/helpers/cookies.js","webpack:///./~/axios/lib/core/settle.js","webpack:///./~/axios/lib/core/createError.js","webpack:///./~/axios/lib/core/enhanceError.js"],"names":["TimeoutException","Error","DEFAULT_WAIT_DELAY","defaultAdapter","matchRequest","tracked","request","baseURL","matchedURL","matchedMethod","url","RegExp","test","method","config","toLowerCase","mockAdapter","Promise","resolve","reject","Request","moxios","requests","track","i","l","stubs","count","stub","at","timeout","throwTimeout","respondWith","response","createTimeout","Tracker","__items","splice","item","push","length","index","console","log","forEach","element","output","status","JSON","stringify","find","elem","get","indexOf","headers","params","paramsSerializer","withCredentials","responseType","auth","username","password","Authorization","document","cookie","xsrfValue","cookies","read","xsrfCookieName","undefined","xsrfHeaderName","Response","wait","res","req","data","responseText","statusText","newHeaders","header","code","delay","timeoutException","install","instance","axios","defaults","adapter","uninstall","reset","stubRequest","stubOnce","urlOrRegExp","stubFailure","setTimeout","stubTimeout","withMock","fn","args","cb","shift","then"],"mappings":"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a,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAwC;AACxC,QAAO;;AAEP;AACA,2DAA0D,wBAAwB;AAClF;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,iCAAgC;AAChC,8BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,IAAG;AACH;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"dist/moxios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"axios\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"axios\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"moxios\"] = factory(require(\"axios\"));\n\telse\n\t\troot[\"moxios\"] = factory(root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9827c7096fe239437efb","import axios from 'axios'\nimport buildURL from 'axios/lib/helpers/buildURL'\nimport isURLSameOrigin from 'axios/lib/helpers/isURLSameOrigin'\nimport btoa from 'axios/lib/helpers/btoa'\nimport cookies from 'axios/lib/helpers/cookies'\nimport settle from 'axios/lib/core/settle'\nimport createError from 'axios/lib/core/createError'\n\nconst TimeoutException = new Error('Timeout: Stub function not called.')\nconst DEFAULT_WAIT_DELAY = 1\n\n// The default adapter\nlet defaultAdapter\n\n/**\n * Check if a tracked stub or request matches a request by comparing URL and method\n *\n * @param {Object} tracked An item of a Tracker instance\n * @param {Object} request A Request\n * @param {String} [baseURL] The base URL of the request config\n * @return {boolean} Whether or not the request is a match for the tracked item\n */\nlet matchRequest = (tracked, request, baseURL = '') => {\n let matchedURL = false\n let matchedMethod = true\n\n if (tracked.url instanceof RegExp) {\n matchedURL = tracked.url.test(request.url)\n } else if (request.url instanceof RegExp) {\n matchedURL = request.url.test(tracked.url)\n } else {\n matchedURL = `${baseURL || ''}${tracked.url}` === request.url\n }\n\n if (tracked.method) {\n // Stub tracking\n matchedMethod = request.config.method.toLowerCase() === tracked.method.toLowerCase()\n } else if (tracked.config && tracked.config.method) {\n // Request tracking\n matchedMethod = request.config.method.toLowerCase() === tracked.config.method.toLowerCase()\n }\n\n return matchedURL && matchedMethod\n}\n\n/**\n * The mock adapter that gets installed.\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\nlet mockAdapter = (config) => {\n return new Promise(function (resolve, reject) {\n let request = new Request(resolve, reject, config)\n moxios.requests.track(request)\n\n // Check for matching stub to auto respond with\n for (let i=0, l=moxios.stubs.count(); i {\n return createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED')\n}\n\n/**\n * throw common error for timeout response\n *\n * @param {object} config The config object to be used for the request\n */\nlet throwTimeout = (config) => {\n throw createTimeout(config)\n}\n\nclass Tracker {\n constructor() {\n this.__items = []\n }\n\n /**\n * Reset all the items being tracked\n */\n reset() {\n this.__items.splice(0)\n }\n\n /**\n * Add an item to be tracked\n *\n * @param {Object} item An item to be tracked\n */\n track(item) {\n this.__items.push(item)\n }\n\n /**\n * The count of items being tracked\n *\n * @return {Number}\n */\n count() {\n return this.__items.length\n }\n\n /**\n * Get an item being tracked at a given index\n *\n * @param {Number} index The index for the item to retrieve\n * @return {Object}\n */\n at(index) {\n return this.__items[index]\n }\n\n /**\n * Get the first item being tracked\n *\n * @return {Object}\n */\n first() {\n return this.at(0)\n }\n\n /**\n * Get the most recent (last) item being tracked\n *\n * @return {Object}\n */\n mostRecent() {\n return this.at(this.count() - 1)\n }\n\n /**\n * Dump the items being tracked to the console.\n */\n debug() {\n console.log();\n this.__items.forEach((element) => {\n let output;\n\n if (element.config) {\n // request\n output = element.config.method.toLowerCase() + ', ';\n output += element.config.url;\n } else {\n // stub\n output = element.method.toLowerCase() + ', ';\n output += element.url + ', ';\n output += element.response.status + ', ';\n\n if (element.response.response) {\n output += JSON.stringify(element.response.response);\n } else {\n output += '{}';\n }\n }\n console.log(output);\n });\n }\n\n /**\n * Find and return element given the HTTP method and the URL.\n */\n get(method, url) {\n // Mock a request config\n let request = {\n url,\n config: { method }\n }\n\n return this.__items.find((item) => matchRequest(item, request));\n }\n\n /**\n * Stop an element from being tracked by removing it. Finds and returns the element,\n * given the HTTP method and the URL.\n */\n remove(method, url) {\n let elem = this.get(method, url);\n let index = this.__items.indexOf(elem);\n\n return this.__items.splice(index, 1)[0];\n }\n}\n\nclass Request {\n /**\n * Create a new Request object\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\n constructor(resolve, reject, config) {\n this.resolve = resolve\n this.reject = reject\n this.config = config\n\n this.headers = config.headers\n this.url = buildURL(config.url, config.params, config.paramsSerializer)\n this.timeout = config.timeout\n this.withCredentials = config.withCredentials || false\n this.responseType = config.responseType\n\n // Set auth header\n if (config.auth) {\n let username = config.auth.username || ''\n let password = config.auth.password || ''\n this.headers.Authorization = 'Basic ' + btoa(username + ':' + password)\n }\n\n // Set xsrf header\n if (typeof document !== 'undefined' && typeof document.cookie !== 'undefined') {\n let xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined\n\n if (xsrfValue) {\n this.headers[config.xsrfHeaderName] = xsrfValue\n }\n }\n }\n\n /**\n * Respond to this request with a timeout result\n *\n * @return {Promise} A Promise that rejects with a timeout result\n */\n respondWithTimeout() {\n let response = new Response(this, createTimeout(this.config))\n settle(this.resolve, this.reject, response)\n return new Promise(function(resolve, reject) {\n moxios.wait(function() {\n reject(response)\n })\n })\n }\n\n /**\n * Respond to this request with a specified result\n *\n * @param {Object} res The data representing the result of the request\n * @return {Promise} A Promise that resolves once the response is ready\n */\n respondWith(res) {\n let response = new Response(this, res)\n settle(this.resolve, this.reject, response)\n return new Promise(function (resolve) {\n moxios.wait(function () {\n resolve(response)\n })\n })\n }\n}\n\nclass Response {\n /**\n * Create a new Response object\n *\n * @param {Request} req The Request that this Response is associated with\n * @param {Object} res The data representing the result of the request\n */\n constructor(req, res) {\n this.config = req.config\n this.data = res.responseText || res.response;\n this.status = res.status\n this.statusText = res.statusText\n \n /* lowecase all headers keys to be consistent with Axios */\n if ('headers' in res) {\n let newHeaders = {};\n for (let header in res.headers) {\n newHeaders[header.toLowerCase()] = res.headers[header];\n }\n res.headers = newHeaders;\n }\n this.headers = res.headers\n this.request = req\n this.code = res.code\n }\n}\n\nlet moxios = {\n stubs: new Tracker(),\n requests: new Tracker(),\n delay: DEFAULT_WAIT_DELAY,\n timeoutException: TimeoutException,\n\n /**\n * Install the mock adapter for axios\n */\n install: function(instance = axios) {\n defaultAdapter = instance.defaults.adapter\n instance.defaults.adapter = mockAdapter\n },\n\n /**\n * Uninstall the mock adapter and reset state\n */\n uninstall: function(instance = axios) {\n instance.defaults.adapter = defaultAdapter\n this.stubs.reset()\n this.requests.reset()\n },\n\n /**\n * Stub a response to be used to respond to a request matching a method and a URL or RegExp\n * The first parameter is optional for backwards compatability reasons. It might change to\n * a required parameter in the future. Please always specify a method\n *\n * @param {String} [method] An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubRequest: function(...args) {\n if (args.length === 3) {\n this.stubs.track({method: args[0], url: args[1], response: args[2]});\n } else {\n this.stubs.track({url: args[0], response: args[1]});\n }\n },\n\n /**\n * Stub a response to be used one or more times to respond to a request matching a\n * method and a URL or RegExp.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubOnce: function (method, urlOrRegExp, response) {\n return new Promise((resolve) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n });\n },\n\n /**\n * Stub a timed response to a request matching a method and a URL or RegExp. If\n * timer fires, reject with a TimeoutException for simple assertions. The goal is\n * to show that a certain request was not made.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubFailure: function (method, urlOrRegExp, response) {\n return new Promise((resolve, reject) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n setTimeout(function() {\n reject(TimeoutException);\n }, 500);\n });\n },\n\n /**\n * Stub a timeout to be used to respond to a request matching a URL or RegExp\n *\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n */\n stubTimeout: function(urlOrRegExp) {\n this.stubs.track({url: urlOrRegExp, timeout: true})\n },\n\n /**\n * Run a single test with mock adapter installed.\n * This will install the mock adapter, execute the function provided,\n * then uninstall the mock adapter once complete.\n *\n * @param {Function} fn The function to be executed\n */\n withMock: function(fn) {\n this.install()\n try {\n fn()\n } finally {\n this.uninstall()\n }\n },\n\n /**\n * Wait for request to be made before proceding.\n * This is naively using a `setTimeout`.\n * May need to beef this up a bit in the future.\n *\n * @param {Function} fn Optional function to execute once waiting is over\n * @param {Number} delay How much time in milliseconds to wait\n *\n * @return {Object} Promise that gets resolved when waiting completed\n */\n wait: function(...args) {\n const cb = typeof args[0] === 'function' ? args.shift() : null\n const delay = typeof args[0] !== 'undefined' ? args.shift() : this.delay\n\n return new Promise(resolve => {\n setTimeout(resolve, delay)\n }).then(cb);\n }\n}\n\nexport default moxios\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"axios\"\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/buildURL.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/utils.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/bind.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/isURLSameOrigin.js\n// module id = 5\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/btoa.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/cookies.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/settle.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/createError.js\n// module id = 9\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.response = response;\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/enhanceError.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/moxios.min.js b/dist/moxios.min.js index 8dc12dd..7a5ec8f 100644 --- a/dist/moxios.min.js +++ b/dist/moxios.min.js @@ -52,7 +52,7 @@ return /******/ (function(modules) { // webpackBootstrap /************************************************************************/ /******/ ([ /* 0 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -95,11 +95,44 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var TimeoutException = new Error('Timeout: Stub function not called.'); - var DEFAULT_WAIT_DELAY = 100; + var DEFAULT_WAIT_DELAY = 1; // The default adapter var defaultAdapter = void 0; + /** + * Check if a tracked stub or request matches a request by comparing URL and method + * + * @param {Object} tracked An item of a Tracker instance + * @param {Object} request A Request + * @param {String} [baseURL] The base URL of the request config + * @return {boolean} Whether or not the request is a match for the tracked item + */ + var matchRequest = function matchRequest(tracked, request) { + var baseURL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + + var matchedURL = false; + var matchedMethod = true; + + if (tracked.url instanceof RegExp) { + matchedURL = tracked.url.test(request.url); + } else if (request.url instanceof RegExp) { + matchedURL = request.url.test(tracked.url); + } else { + matchedURL = '' + (baseURL || '') + tracked.url === request.url; + } + + if (tracked.method) { + // Stub tracking + matchedMethod = request.config.method.toLowerCase() === tracked.method.toLowerCase(); + } else if (tracked.config && tracked.config.method) { + // Request tracking + matchedMethod = request.config.method.toLowerCase() === tracked.config.method.toLowerCase(); + } + + return matchedURL && matchedMethod; + }; + /** * The mock adapter that gets installed. * @@ -115,14 +148,8 @@ return /******/ (function(modules) { // webpackBootstrap // Check for matching stub to auto respond with for (var i = 0, l = moxios.stubs.count(); i < l; i++) { var stub = moxios.stubs.at(i); - var correctURL = stub.url instanceof RegExp ? stub.url.test(request.url) : stub.url === request.url; - var correctMethod = true; - if (stub.method !== undefined) { - correctMethod = stub.method.toLowerCase() === request.config.method.toLowerCase(); - } - - if (correctURL && correctMethod) { + if (matchRequest(stub, request, config && config.baseURL)) { if (stub.timeout) { throwTimeout(config); } @@ -269,24 +296,15 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'get', value: function get(method, url) { - function getElem(element, index, array) { - var matchedUrl = element.url instanceof RegExp ? element.url.test(element.url) : element.url === url; - var matchedMethod = void 0; - - if (element.config) { - // request tracking - matchedMethod = method.toLowerCase() === element.config.method.toLowerCase(); - } else { - // stub tracking - matchedMethod = method.toLowerCase() === element.method.toLowerCase(); - } - - if (matchedUrl && matchedMethod) { - return element; - } - } + // Mock a request config + var request = { + url: url, + config: { method: method } + }; - return this.__items.find(getElem); + return this.__items.find(function (item) { + return matchRequest(item, request); + }); } /** @@ -315,7 +333,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Function} reject The function to call when Promise is rejected * @param {Object} config The config object to be used for the request */ - function Request(resolve, reject, config) { _classCallCheck(this, Request); @@ -426,7 +443,7 @@ return /******/ (function(modules) { // webpackBootstrap * Install the mock adapter for axios */ install: function install() { - var instance = arguments.length <= 0 || arguments[0] === undefined ? _axios2.default : arguments[0]; + var instance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _axios2.default; defaultAdapter = instance.defaults.adapter; instance.defaults.adapter = mockAdapter; @@ -436,7 +453,7 @@ return /******/ (function(modules) { // webpackBootstrap * Uninstall the mock adapter and reset state */ uninstall: function uninstall() { - var instance = arguments.length <= 0 || arguments[0] === undefined ? _axios2.default : arguments[0]; + var instance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _axios2.default; instance.defaults.adapter = defaultAdapter; this.stubs.reset(); @@ -445,13 +462,19 @@ return /******/ (function(modules) { // webpackBootstrap /** * Stub a response to be used to respond to a request matching a method and a URL or RegExp + * The first parameter is optional for backwards compatability reasons. It might change to + * a required parameter in the future. Please always specify a method * - * @param {String} method An axios command + * @param {String} [method] An axios command * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against * @param {Object} response The response to use when a match is made */ - stubRequest: function stubRequest(urlOrRegExp, response) { - this.stubs.track({ url: urlOrRegExp, response: response }); + stubRequest: function stubRequest() { + if (arguments.length === 3) { + this.stubs.track({ method: arguments.length <= 0 ? undefined : arguments[0], url: arguments.length <= 1 ? undefined : arguments[1], response: arguments.length <= 2 ? undefined : arguments[2] }); + } else { + this.stubs.track({ url: arguments.length <= 0 ? undefined : arguments[0], response: arguments.length <= 1 ? undefined : arguments[1] }); + } }, /** @@ -520,28 +543,37 @@ return /******/ (function(modules) { // webpackBootstrap * This is naively using a `setTimeout`. * May need to beef this up a bit in the future. * - * @param {Function} fn The function to execute once waiting is over + * @param {Function} fn Optional function to execute once waiting is over * @param {Number} delay How much time in milliseconds to wait + * + * @return {Object} Promise that gets resolved when waiting completed */ - wait: function wait(fn) { - var delay = arguments.length <= 1 || arguments[1] === undefined ? this.delay : arguments[1]; + wait: function wait() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var cb = typeof args[0] === 'function' ? args.shift() : null; + var delay = typeof args[0] !== 'undefined' ? args.shift() : this.delay; - setTimeout(fn, delay); + return new Promise(function (resolve) { + setTimeout(resolve, delay); + }).then(cb); } }; exports.default = moxios; module.exports = exports['default']; -/***/ }, +/***/ }), /* 1 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; -/***/ }, +/***/ }), /* 2 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -613,9 +645,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 3 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -918,9 +950,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 4 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -935,9 +967,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 5 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1009,9 +1041,9 @@ return /******/ (function(modules) { // webpackBootstrap ); -/***/ }, +/***/ }), /* 6 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -1051,9 +1083,9 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = btoa; -/***/ }, +/***/ }), /* 7 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1110,9 +1142,9 @@ return /******/ (function(modules) { // webpackBootstrap ); -/***/ }, +/***/ }), /* 8 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1141,9 +1173,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 9 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { 'use strict'; @@ -1164,9 +1196,9 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, +/***/ }), /* 10 */ -/***/ function(module, exports) { +/***/ (function(module, exports) { 'use strict'; @@ -1189,7 +1221,7 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ } +/***/ }) /******/ ]) }); ; diff --git a/dist/moxios.min.js.map b/dist/moxios.min.js.map index b673130..c809b6a 100644 --- a/dist/moxios.min.js.map +++ b/dist/moxios.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 9c57fb1db17184650816","webpack:///./index.js","webpack:///external \"axios\"","webpack:///./~/axios/lib/helpers/buildURL.js","webpack:///./~/axios/lib/utils.js","webpack:///./~/axios/lib/helpers/bind.js","webpack:///./~/axios/lib/helpers/isURLSameOrigin.js","webpack:///./~/axios/lib/helpers/btoa.js","webpack:///./~/axios/lib/helpers/cookies.js","webpack:///./~/axios/lib/core/settle.js","webpack:///./~/axios/lib/core/createError.js","webpack:///./~/axios/lib/core/enhanceError.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACtCA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AAEA,KAAM,mBAAmB,IAAI,KAAJ,CAAU,oCAAV,CAAzB;AACA,KAAM,qBAAqB,GAA3B;;AAEA;AACA,KAAI,uBAAJ;;AAEA;;;;;;;AAOA,KAAI,cAAc,SAAd,WAAc,CAAC,MAAD,EAAY;AAC5B,UAAO,IAAI,OAAJ,CAAY,UAAU,OAAV,EAAmB,MAAnB,EAA2B;AAC5C,SAAI,UAAU,IAAI,OAAJ,CAAY,OAAZ,EAAqB,MAArB,EAA6B,MAA7B,CAAd;AACA,YAAO,QAAP,CAAgB,KAAhB,CAAsB,OAAtB;;AAEA;AACA,UAAK,IAAI,IAAE,CAAN,EAAS,IAAE,OAAO,KAAP,CAAa,KAAb,EAAhB,EAAsC,IAAE,CAAxC,EAA2C,GAA3C,EAAgD;AAC9C,WAAI,OAAO,OAAO,KAAP,CAAa,EAAb,CAAgB,CAAhB,CAAX;AACA,WAAI,aAAa,KAAK,GAAL,YAAoB,MAApB,GAA6B,KAAK,GAAL,CAAS,IAAT,CAAc,QAAQ,GAAtB,CAA7B,GAA0D,KAAK,GAAL,KAAa,QAAQ,GAAhG;AACA,WAAI,gBAAgB,IAApB;;AAEA,WAAI,KAAK,MAAL,KAAgB,SAApB,EAA+B;AAC7B,yBAAgB,KAAK,MAAL,CAAY,WAAZ,OAA8B,QAAQ,MAAR,CAAe,MAAf,CAAsB,WAAtB,EAA9C;AACD;;AAED,WAAI,cAAc,aAAlB,EAAiC;AAC/B,aAAI,KAAK,OAAT,EAAkB;AAChB,wBAAa,MAAb;AACD;AACD,iBAAQ,WAAR,CAAoB,KAAK,QAAzB;AACA,cAAK,OAAL;AACA;AACD;AACF;AACF,IAvBM,CAAP;AAwBD,EAzBD;;AA2BA;;;;;AAKA,KAAI,gBAAgB,SAAhB,aAAgB,CAAC,MAAD,EAAY;AAC9B,UAAO,2BAAY,gBAAgB,OAAO,OAAvB,GAAiC,aAA7C,EAA4D,MAA5D,EAAoE,cAApE,CAAP;AACD,EAFD;;AAIA;;;;;AAKA,KAAI,eAAe,SAAf,YAAe,CAAC,MAAD,EAAY;AAC7B,SAAM,cAAc,MAAd,CAAN;AACD,EAFD;;KAIM,O;AACJ,sBAAc;AAAA;;AACZ,UAAK,OAAL,GAAe,EAAf;AACD;;AAED;;;;;;;6BAGQ;AACN,YAAK,OAAL,CAAa,MAAb,CAAoB,CAApB;AACD;;AAED;;;;;;;;2BAKM,I,EAAM;AACV,YAAK,OAAL,CAAa,IAAb,CAAkB,IAAlB;AACD;;AAED;;;;;;;;6BAKQ;AACN,cAAO,KAAK,OAAL,CAAa,MAApB;AACD;;AAED;;;;;;;;;wBAMG,K,EAAO;AACR,cAAO,KAAK,OAAL,CAAa,KAAb,CAAP;AACD;;AAED;;;;;;;;6BAKQ;AACN,cAAO,KAAK,EAAL,CAAQ,CAAR,CAAP;AACD;;AAED;;;;;;;;kCAKa;AACX,cAAO,KAAK,EAAL,CAAQ,KAAK,KAAL,KAAe,CAAvB,CAAP;AACD;;AAED;;;;;;6BAGQ;AACN,eAAQ,GAAR;AACA,YAAK,OAAL,CAAa,OAAb,CAAqB,UAAC,OAAD,EAAa;AAChC,aAAI,eAAJ;;AAEA,aAAI,QAAQ,MAAZ,EAAoB;AAClB;AACA,oBAAS,QAAQ,MAAR,CAAe,MAAf,CAAsB,WAAtB,KAAsC,IAA/C;AACA,qBAAU,QAAQ,MAAR,CAAe,GAAzB;AACD,UAJD,MAIO;AACL;AACA,oBAAS,QAAQ,MAAR,CAAe,WAAf,KAA+B,IAAxC;AACA,qBAAU,QAAQ,GAAR,GAAc,IAAxB;AACA,qBAAU,QAAQ,QAAR,CAAiB,MAAjB,GAA0B,IAApC;;AAEA,eAAI,QAAQ,QAAR,CAAiB,QAArB,EAA+B;AAC7B,uBAAU,KAAK,SAAL,CAAe,QAAQ,QAAR,CAAiB,QAAhC,CAAV;AACD,YAFD,MAEO;AACL,uBAAU,IAAV;AACD;AACF;AACD,iBAAQ,GAAR,CAAY,MAAZ;AACD,QApBD;AAqBD;;AAED;;;;;;yBAGI,M,EAAQ,G,EAAK;AACf,gBAAS,OAAT,CAAkB,OAAlB,EAA2B,KAA3B,EAAkC,KAAlC,EAAyC;AACvC,aAAI,aAAa,QAAQ,GAAR,YAAuB,MAAvB,GAAgC,QAAQ,GAAR,CAAY,IAAZ,CAAiB,QAAQ,GAAzB,CAAhC,GAAgE,QAAQ,GAAR,KAAgB,GAAjG;AACA,aAAI,sBAAJ;;AAEA,aAAI,QAAQ,MAAZ,EAAoB;AAClB;AACA,2BAAgB,OAAO,WAAP,OAAyB,QAAQ,MAAR,CAAe,MAAf,CAAsB,WAAtB,EAAzC;AACD,UAHD,MAGO;AACL;AACA,2BAAgB,OAAO,WAAP,OAAyB,QAAQ,MAAR,CAAe,WAAf,EAAzC;AACD;;AAED,aAAI,cAAc,aAAlB,EAAiC;AAC/B,kBAAO,OAAP;AACD;AACF;;AAED,cAAO,KAAK,OAAL,CAAa,IAAb,CAAkB,OAAlB,CAAP;AACD;;AAED;;;;;;;4BAIO,M,EAAQ,G,EAAK;AAClB,WAAI,OAAO,KAAK,GAAL,CAAS,MAAT,EAAiB,GAAjB,CAAX;AACA,WAAI,QAAQ,KAAK,OAAL,CAAa,OAAb,CAAqB,IAArB,CAAZ;;AAEA,cAAO,KAAK,OAAL,CAAa,MAAb,CAAoB,KAApB,EAA2B,CAA3B,EAA8B,CAA9B,CAAP;AACD;;;;;;KAGG,O;AACJ;;;;;;;;AAOA,oBAAY,OAAZ,EAAqB,MAArB,EAA6B,MAA7B,EAAqC;AAAA;;AACnC,UAAK,OAAL,GAAe,OAAf;AACA,UAAK,MAAL,GAAc,MAAd;AACA,UAAK,MAAL,GAAc,MAAd;;AAEA,UAAK,OAAL,GAAe,OAAO,OAAtB;AACA,UAAK,GAAL,GAAW,wBAAS,OAAO,GAAhB,EAAqB,OAAO,MAA5B,EAAoC,OAAO,gBAA3C,CAAX;AACA,UAAK,OAAL,GAAe,OAAO,OAAtB;AACA,UAAK,eAAL,GAAuB,OAAO,eAAP,IAA0B,KAAjD;AACA,UAAK,YAAL,GAAoB,OAAO,YAA3B;;AAEA;AACA,SAAI,OAAO,IAAX,EAAiB;AACf,WAAI,WAAW,OAAO,IAAP,CAAY,QAAZ,IAAwB,EAAvC;AACA,WAAI,WAAW,OAAO,IAAP,CAAY,QAAZ,IAAwB,EAAvC;AACA,YAAK,OAAL,CAAa,aAAb,GAA6B,WAAW,oBAAK,WAAW,GAAX,GAAiB,QAAtB,CAAxC;AACD;;AAED;AACA,SAAI,OAAO,QAAP,KAAoB,WAApB,IAAmC,OAAO,SAAS,MAAhB,KAA2B,WAAlE,EAA+E;AAC7E,WAAI,YAAY,OAAO,eAAP,IAA0B,+BAAgB,OAAO,GAAvB,CAA1B,GACd,kBAAQ,IAAR,CAAa,OAAO,cAApB,CADc,GAEd,SAFF;;AAIA,WAAI,SAAJ,EAAe;AACb,cAAK,OAAL,CAAa,OAAO,cAApB,IAAsC,SAAtC;AACD;AACF;AACF;;AAED;;;;;;;;;0CAKqB;AACnB,WAAI,WAAW,IAAI,QAAJ,CAAa,IAAb,EAAmB,cAAc,KAAK,MAAnB,CAAnB,CAAf;AACA,6BAAO,KAAK,OAAZ,EAAqB,KAAK,MAA1B,EAAkC,QAAlC;AACA,cAAO,IAAI,OAAJ,CAAY,UAAS,OAAT,EAAkB,MAAlB,EAA0B;AAC3C,gBAAO,IAAP,CAAY,YAAW;AACrB,kBAAO,QAAP;AACD,UAFD;AAGD,QAJM,CAAP;AAKD;;AAED;;;;;;;;;iCAMY,G,EAAK;AACf,WAAI,WAAW,IAAI,QAAJ,CAAa,IAAb,EAAmB,GAAnB,CAAf;AACA,6BAAO,KAAK,OAAZ,EAAqB,KAAK,MAA1B,EAAkC,QAAlC;AACA,cAAO,IAAI,OAAJ,CAAY,UAAU,OAAV,EAAmB;AACpC,gBAAO,IAAP,CAAY,YAAY;AACtB,mBAAQ,QAAR;AACD,UAFD;AAGD,QAJM,CAAP;AAKD;;;;;;KAGG,Q;AACJ;;;;;;AAMA,mBAAY,GAAZ,EAAiB,GAAjB,EAAsB;AAAA;;AACpB,QAAK,MAAL,GAAc,IAAI,MAAlB;AACA,QAAK,IAAL,GAAY,IAAI,YAAJ,IAAoB,IAAI,QAApC;AACA,QAAK,MAAL,GAAc,IAAI,MAAlB;AACA,QAAK,UAAL,GAAkB,IAAI,UAAtB;;AAEA;AACA,OAAI,aAAa,GAAjB,EAAsB;AACpB,SAAI,aAAa,EAAjB;AACA,UAAK,IAAI,MAAT,IAAmB,IAAI,OAAvB,EAAgC;AAC9B,kBAAW,OAAO,WAAP,EAAX,IAAmC,IAAI,OAAJ,CAAY,MAAZ,CAAnC;AACD;AACD,SAAI,OAAJ,GAAc,UAAd;AACD;AACD,QAAK,OAAL,GAAe,IAAI,OAAnB;AACA,QAAK,OAAL,GAAe,GAAf;AACA,QAAK,IAAL,GAAY,IAAI,IAAhB;AACD,E;;AAGH,KAAI,SAAS;AACX,UAAO,IAAI,OAAJ,EADI;AAEX,aAAU,IAAI,OAAJ,EAFC;AAGX,UAAO,kBAHI;AAIX,qBAAkB,gBAJP;;AAMX;;;AAGA,YAAS,mBAA2B;AAAA,SAAlB,QAAkB;;AAClC,sBAAiB,SAAS,QAAT,CAAkB,OAAnC;AACA,cAAS,QAAT,CAAkB,OAAlB,GAA4B,WAA5B;AACD,IAZU;;AAcX;;;AAGA,cAAW,qBAA2B;AAAA,SAAlB,QAAkB;;AACpC,cAAS,QAAT,CAAkB,OAAlB,GAA4B,cAA5B;AACA,UAAK,KAAL,CAAW,KAAX;AACA,UAAK,QAAL,CAAc,KAAd;AACD,IArBU;;AAuBX;;;;;;;AAOA,gBAAa,qBAAU,WAAV,EAAuB,QAAvB,EAAiC;AAC5C,UAAK,KAAL,CAAW,KAAX,CAAiB,EAAC,KAAK,WAAN,EAAmB,kBAAnB,EAAjB;AACD,IAhCU;;AAkCX;;;;;;;;AAQA,aAAU,kBAAU,MAAV,EAAkB,WAAlB,EAA+B,QAA/B,EAAyC;AAAA;;AACjD,YAAO,IAAI,OAAJ,CAAY,UAAC,OAAD,EAAa;AAC9B,aAAK,KAAL,CAAW,KAAX,CAAiB,EAAC,KAAK,WAAN,EAAmB,cAAnB,EAA2B,kBAA3B,EAAqC,gBAArC,EAAjB;AACD,MAFM,CAAP;AAGD,IA9CU;;AAgDX;;;;;;;;;AASA,gBAAa,qBAAU,MAAV,EAAkB,WAAlB,EAA+B,QAA/B,EAAyC;AAAA;;AACpD,YAAO,IAAI,OAAJ,CAAY,UAAC,OAAD,EAAU,MAAV,EAAqB;AACtC,cAAK,KAAL,CAAW,KAAX,CAAiB,EAAC,KAAK,WAAN,EAAmB,cAAnB,EAA2B,kBAA3B,EAAqC,gBAArC,EAAjB;AACA,kBAAW,YAAW;AACpB,gBAAO,gBAAP;AACD,QAFD,EAEG,GAFH;AAGD,MALM,CAAP;AAMD,IAhEU;;AAkEX;;;;;AAKA,gBAAa,qBAAS,WAAT,EAAsB;AACjC,UAAK,KAAL,CAAW,KAAX,CAAiB,EAAC,KAAK,WAAN,EAAmB,SAAS,IAA5B,EAAjB;AACD,IAzEU;;AA2EX;;;;;;;AAOA,aAAU,kBAAS,EAAT,EAAa;AACrB,UAAK,OAAL;AACA,SAAI;AACF;AACD,MAFD,SAEU;AACR,YAAK,SAAL;AACD;AACF,IAzFU;;AA2FX;;;;;;;;AAQA,SAAM,cAAS,EAAT,EAAiC;AAAA,SAApB,KAAoB,yDAAZ,KAAK,KAAO;;AACrC,gBAAW,EAAX,EAAe,KAAf;AACD;AArGU,EAAb;;mBAwGe,M;;;;;;;ACrYf,gD;;;;;;ACAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAwC;AACxC,QAAO;;AAEP;AACA,2DAA0D,wBAAwB;AAClF;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,iCAAgC;AAChC,8BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,IAAG;AACH;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"dist/moxios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"axios\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"axios\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"moxios\"] = factory(require(\"axios\"));\n\telse\n\t\troot[\"moxios\"] = factory(root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9c57fb1db17184650816\n **/","import axios from 'axios'\nimport buildURL from 'axios/lib/helpers/buildURL'\nimport isURLSameOrigin from 'axios/lib/helpers/isURLSameOrigin'\nimport btoa from 'axios/lib/helpers/btoa'\nimport cookies from 'axios/lib/helpers/cookies'\nimport settle from 'axios/lib/core/settle'\nimport createError from 'axios/lib/core/createError'\n\nconst TimeoutException = new Error('Timeout: Stub function not called.')\nconst DEFAULT_WAIT_DELAY = 100\n\n// The default adapter\nlet defaultAdapter\n\n/**\n * The mock adapter that gets installed.\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\nlet mockAdapter = (config) => {\n return new Promise(function (resolve, reject) {\n let request = new Request(resolve, reject, config)\n moxios.requests.track(request)\n\n // Check for matching stub to auto respond with\n for (let i=0, l=moxios.stubs.count(); i {\n return createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED')\n}\n\n/**\n * throw common error for timeout response\n *\n * @param {object} config The config object to be used for the request\n */\nlet throwTimeout = (config) => {\n throw createTimeout(config)\n}\n\nclass Tracker {\n constructor() {\n this.__items = []\n }\n\n /**\n * Reset all the items being tracked\n */\n reset() {\n this.__items.splice(0)\n }\n\n /**\n * Add an item to be tracked\n *\n * @param {Object} item An item to be tracked\n */\n track(item) {\n this.__items.push(item)\n }\n\n /**\n * The count of items being tracked\n *\n * @return {Number}\n */\n count() {\n return this.__items.length\n }\n\n /**\n * Get an item being tracked at a given index\n *\n * @param {Number} index The index for the item to retrieve\n * @return {Object}\n */\n at(index) {\n return this.__items[index]\n }\n\n /**\n * Get the first item being tracked\n *\n * @return {Object}\n */\n first() {\n return this.at(0)\n }\n\n /**\n * Get the most recent (last) item being tracked\n *\n * @return {Object}\n */\n mostRecent() {\n return this.at(this.count() - 1)\n }\n\n /**\n * Dump the items being tracked to the console.\n */\n debug() {\n console.log();\n this.__items.forEach((element) => {\n let output;\n\n if (element.config) {\n // request\n output = element.config.method.toLowerCase() + ', ';\n output += element.config.url;\n } else {\n // stub\n output = element.method.toLowerCase() + ', ';\n output += element.url + ', ';\n output += element.response.status + ', ';\n\n if (element.response.response) {\n output += JSON.stringify(element.response.response);\n } else {\n output += '{}';\n }\n }\n console.log(output);\n });\n }\n\n /**\n * Find and return element given the HTTP method and the URL.\n */\n get(method, url) {\n function getElem (element, index, array) {\n let matchedUrl = element.url instanceof RegExp ? element.url.test(element.url) : element.url === url;\n let matchedMethod;\n\n if (element.config) {\n // request tracking\n matchedMethod = method.toLowerCase() === element.config.method.toLowerCase();\n } else {\n // stub tracking\n matchedMethod = method.toLowerCase() === element.method.toLowerCase();\n }\n\n if (matchedUrl && matchedMethod) {\n return element;\n }\n }\n\n return this.__items.find(getElem);\n }\n\n /**\n * Stop an element from being tracked by removing it. Finds and returns the element,\n * given the HTTP method and the URL.\n */\n remove(method, url) {\n let elem = this.get(method, url);\n let index = this.__items.indexOf(elem);\n\n return this.__items.splice(index, 1)[0];\n }\n}\n\nclass Request {\n /**\n * Create a new Request object\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\n constructor(resolve, reject, config) {\n this.resolve = resolve\n this.reject = reject\n this.config = config\n\n this.headers = config.headers\n this.url = buildURL(config.url, config.params, config.paramsSerializer)\n this.timeout = config.timeout\n this.withCredentials = config.withCredentials || false\n this.responseType = config.responseType\n\n // Set auth header\n if (config.auth) {\n let username = config.auth.username || ''\n let password = config.auth.password || ''\n this.headers.Authorization = 'Basic ' + btoa(username + ':' + password)\n }\n\n // Set xsrf header\n if (typeof document !== 'undefined' && typeof document.cookie !== 'undefined') {\n let xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined\n\n if (xsrfValue) {\n this.headers[config.xsrfHeaderName] = xsrfValue\n }\n }\n }\n\n /**\n * Respond to this request with a timeout result\n *\n * @return {Promise} A Promise that rejects with a timeout result\n */\n respondWithTimeout() {\n let response = new Response(this, createTimeout(this.config))\n settle(this.resolve, this.reject, response)\n return new Promise(function(resolve, reject) {\n moxios.wait(function() {\n reject(response)\n })\n })\n }\n\n /**\n * Respond to this request with a specified result\n *\n * @param {Object} res The data representing the result of the request\n * @return {Promise} A Promise that resolves once the response is ready\n */\n respondWith(res) {\n let response = new Response(this, res)\n settle(this.resolve, this.reject, response)\n return new Promise(function (resolve) {\n moxios.wait(function () {\n resolve(response)\n })\n })\n }\n}\n\nclass Response {\n /**\n * Create a new Response object\n *\n * @param {Request} req The Request that this Response is associated with\n * @param {Object} res The data representing the result of the request\n */\n constructor(req, res) {\n this.config = req.config\n this.data = res.responseText || res.response;\n this.status = res.status\n this.statusText = res.statusText\n \n /* lowecase all headers keys to be consistent with Axios */\n if ('headers' in res) {\n let newHeaders = {};\n for (let header in res.headers) {\n newHeaders[header.toLowerCase()] = res.headers[header];\n }\n res.headers = newHeaders;\n }\n this.headers = res.headers\n this.request = req\n this.code = res.code\n }\n}\n\nlet moxios = {\n stubs: new Tracker(),\n requests: new Tracker(),\n delay: DEFAULT_WAIT_DELAY,\n timeoutException: TimeoutException,\n\n /**\n * Install the mock adapter for axios\n */\n install: function(instance = axios) {\n defaultAdapter = instance.defaults.adapter\n instance.defaults.adapter = mockAdapter\n },\n\n /**\n * Uninstall the mock adapter and reset state\n */\n uninstall: function(instance = axios) {\n instance.defaults.adapter = defaultAdapter\n this.stubs.reset()\n this.requests.reset()\n },\n\n /**\n * Stub a response to be used to respond to a request matching a method and a URL or RegExp\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubRequest: function (urlOrRegExp, response) {\n this.stubs.track({url: urlOrRegExp, response});\n },\n\n /**\n * Stub a response to be used one or more times to respond to a request matching a\n * method and a URL or RegExp.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubOnce: function (method, urlOrRegExp, response) {\n return new Promise((resolve) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n });\n },\n\n /**\n * Stub a timed response to a request matching a method and a URL or RegExp. If\n * timer fires, reject with a TimeoutException for simple assertions. The goal is\n * to show that a certain request was not made.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubFailure: function (method, urlOrRegExp, response) {\n return new Promise((resolve, reject) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n setTimeout(function() {\n reject(TimeoutException);\n }, 500);\n });\n },\n\n /**\n * Stub a timeout to be used to respond to a request matching a URL or RegExp\n *\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n */\n stubTimeout: function(urlOrRegExp) {\n this.stubs.track({url: urlOrRegExp, timeout: true})\n },\n\n /**\n * Run a single test with mock adapter installed.\n * This will install the mock adapter, execute the function provided,\n * then uninstall the mock adapter once complete.\n *\n * @param {Function} fn The function to be executed\n */\n withMock: function(fn) {\n this.install()\n try {\n fn()\n } finally {\n this.uninstall()\n }\n },\n\n /**\n * Wait for request to be made before proceding.\n * This is naively using a `setTimeout`.\n * May need to beef this up a bit in the future.\n *\n * @param {Function} fn The function to execute once waiting is over\n * @param {Number} delay How much time in milliseconds to wait\n */\n wait: function(fn, delay = this.delay) {\n setTimeout(fn, delay)\n }\n}\n\nexport default moxios\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 1\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/buildURL.js\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/utils.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/bind.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/isURLSameOrigin.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/btoa.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/helpers/cookies.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response\n ));\n }\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/settle.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, response);\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/createError.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.response = response;\n return error;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/axios/lib/core/enhanceError.js\n ** module id = 10\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 417f70b93765e1298f7c","webpack:///./index.js","webpack:///external \"axios\"","webpack:///./~/axios/lib/helpers/buildURL.js","webpack:///./~/axios/lib/utils.js","webpack:///./~/axios/lib/helpers/bind.js","webpack:///./~/axios/lib/helpers/isURLSameOrigin.js","webpack:///./~/axios/lib/helpers/btoa.js","webpack:///./~/axios/lib/helpers/cookies.js","webpack:///./~/axios/lib/core/settle.js","webpack:///./~/axios/lib/core/createError.js","webpack:///./~/axios/lib/core/enhanceError.js"],"names":["TimeoutException","Error","DEFAULT_WAIT_DELAY","defaultAdapter","matchRequest","tracked","request","baseURL","matchedURL","matchedMethod","url","RegExp","test","method","config","toLowerCase","mockAdapter","Promise","resolve","reject","Request","moxios","requests","track","i","l","stubs","count","stub","at","timeout","throwTimeout","respondWith","response","createTimeout","Tracker","__items","splice","item","push","length","index","console","log","forEach","element","output","status","JSON","stringify","find","elem","get","indexOf","headers","params","paramsSerializer","withCredentials","responseType","auth","username","password","Authorization","document","cookie","xsrfValue","cookies","read","xsrfCookieName","undefined","xsrfHeaderName","Response","wait","res","req","data","responseText","statusText","newHeaders","header","code","delay","timeoutException","install","instance","axios","defaults","adapter","uninstall","reset","stubRequest","stubOnce","urlOrRegExp","stubFailure","setTimeout","stubTimeout","withMock","fn","args","cb","shift","then"],"mappings":"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a,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1SA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAwC;AACxC,QAAO;;AAEP;AACA,2DAA0D,wBAAwB;AAClF;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,iCAAgC;AAChC,8BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,IAAG;AACH;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"dist/moxios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"axios\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"axios\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"moxios\"] = factory(require(\"axios\"));\n\telse\n\t\troot[\"moxios\"] = factory(root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 417f70b93765e1298f7c","import axios from 'axios'\nimport buildURL from 'axios/lib/helpers/buildURL'\nimport isURLSameOrigin from 'axios/lib/helpers/isURLSameOrigin'\nimport btoa from 'axios/lib/helpers/btoa'\nimport cookies from 'axios/lib/helpers/cookies'\nimport settle from 'axios/lib/core/settle'\nimport createError from 'axios/lib/core/createError'\n\nconst TimeoutException = new Error('Timeout: Stub function not called.')\nconst DEFAULT_WAIT_DELAY = 1\n\n// The default adapter\nlet defaultAdapter\n\n/**\n * Check if a tracked stub or request matches a request by comparing URL and method\n *\n * @param {Object} tracked An item of a Tracker instance\n * @param {Object} request A Request\n * @param {String} [baseURL] The base URL of the request config\n * @return {boolean} Whether or not the request is a match for the tracked item\n */\nlet matchRequest = (tracked, request, baseURL = '') => {\n let matchedURL = false\n let matchedMethod = true\n\n if (tracked.url instanceof RegExp) {\n matchedURL = tracked.url.test(request.url)\n } else if (request.url instanceof RegExp) {\n matchedURL = request.url.test(tracked.url)\n } else {\n matchedURL = `${baseURL || ''}${tracked.url}` === request.url\n }\n\n if (tracked.method) {\n // Stub tracking\n matchedMethod = request.config.method.toLowerCase() === tracked.method.toLowerCase()\n } else if (tracked.config && tracked.config.method) {\n // Request tracking\n matchedMethod = request.config.method.toLowerCase() === tracked.config.method.toLowerCase()\n }\n\n return matchedURL && matchedMethod\n}\n\n/**\n * The mock adapter that gets installed.\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\nlet mockAdapter = (config) => {\n return new Promise(function (resolve, reject) {\n let request = new Request(resolve, reject, config)\n moxios.requests.track(request)\n\n // Check for matching stub to auto respond with\n for (let i=0, l=moxios.stubs.count(); i {\n return createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED')\n}\n\n/**\n * throw common error for timeout response\n *\n * @param {object} config The config object to be used for the request\n */\nlet throwTimeout = (config) => {\n throw createTimeout(config)\n}\n\nclass Tracker {\n constructor() {\n this.__items = []\n }\n\n /**\n * Reset all the items being tracked\n */\n reset() {\n this.__items.splice(0)\n }\n\n /**\n * Add an item to be tracked\n *\n * @param {Object} item An item to be tracked\n */\n track(item) {\n this.__items.push(item)\n }\n\n /**\n * The count of items being tracked\n *\n * @return {Number}\n */\n count() {\n return this.__items.length\n }\n\n /**\n * Get an item being tracked at a given index\n *\n * @param {Number} index The index for the item to retrieve\n * @return {Object}\n */\n at(index) {\n return this.__items[index]\n }\n\n /**\n * Get the first item being tracked\n *\n * @return {Object}\n */\n first() {\n return this.at(0)\n }\n\n /**\n * Get the most recent (last) item being tracked\n *\n * @return {Object}\n */\n mostRecent() {\n return this.at(this.count() - 1)\n }\n\n /**\n * Dump the items being tracked to the console.\n */\n debug() {\n console.log();\n this.__items.forEach((element) => {\n let output;\n\n if (element.config) {\n // request\n output = element.config.method.toLowerCase() + ', ';\n output += element.config.url;\n } else {\n // stub\n output = element.method.toLowerCase() + ', ';\n output += element.url + ', ';\n output += element.response.status + ', ';\n\n if (element.response.response) {\n output += JSON.stringify(element.response.response);\n } else {\n output += '{}';\n }\n }\n console.log(output);\n });\n }\n\n /**\n * Find and return element given the HTTP method and the URL.\n */\n get(method, url) {\n // Mock a request config\n let request = {\n url,\n config: { method }\n }\n\n return this.__items.find((item) => matchRequest(item, request));\n }\n\n /**\n * Stop an element from being tracked by removing it. Finds and returns the element,\n * given the HTTP method and the URL.\n */\n remove(method, url) {\n let elem = this.get(method, url);\n let index = this.__items.indexOf(elem);\n\n return this.__items.splice(index, 1)[0];\n }\n}\n\nclass Request {\n /**\n * Create a new Request object\n *\n * @param {Function} resolve The function to call when Promise is resolved\n * @param {Function} reject The function to call when Promise is rejected\n * @param {Object} config The config object to be used for the request\n */\n constructor(resolve, reject, config) {\n this.resolve = resolve\n this.reject = reject\n this.config = config\n\n this.headers = config.headers\n this.url = buildURL(config.url, config.params, config.paramsSerializer)\n this.timeout = config.timeout\n this.withCredentials = config.withCredentials || false\n this.responseType = config.responseType\n\n // Set auth header\n if (config.auth) {\n let username = config.auth.username || ''\n let password = config.auth.password || ''\n this.headers.Authorization = 'Basic ' + btoa(username + ':' + password)\n }\n\n // Set xsrf header\n if (typeof document !== 'undefined' && typeof document.cookie !== 'undefined') {\n let xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined\n\n if (xsrfValue) {\n this.headers[config.xsrfHeaderName] = xsrfValue\n }\n }\n }\n\n /**\n * Respond to this request with a timeout result\n *\n * @return {Promise} A Promise that rejects with a timeout result\n */\n respondWithTimeout() {\n let response = new Response(this, createTimeout(this.config))\n settle(this.resolve, this.reject, response)\n return new Promise(function(resolve, reject) {\n moxios.wait(function() {\n reject(response)\n })\n })\n }\n\n /**\n * Respond to this request with a specified result\n *\n * @param {Object} res The data representing the result of the request\n * @return {Promise} A Promise that resolves once the response is ready\n */\n respondWith(res) {\n let response = new Response(this, res)\n settle(this.resolve, this.reject, response)\n return new Promise(function (resolve) {\n moxios.wait(function () {\n resolve(response)\n })\n })\n }\n}\n\nclass Response {\n /**\n * Create a new Response object\n *\n * @param {Request} req The Request that this Response is associated with\n * @param {Object} res The data representing the result of the request\n */\n constructor(req, res) {\n this.config = req.config\n this.data = res.responseText || res.response;\n this.status = res.status\n this.statusText = res.statusText\n \n /* lowecase all headers keys to be consistent with Axios */\n if ('headers' in res) {\n let newHeaders = {};\n for (let header in res.headers) {\n newHeaders[header.toLowerCase()] = res.headers[header];\n }\n res.headers = newHeaders;\n }\n this.headers = res.headers\n this.request = req\n this.code = res.code\n }\n}\n\nlet moxios = {\n stubs: new Tracker(),\n requests: new Tracker(),\n delay: DEFAULT_WAIT_DELAY,\n timeoutException: TimeoutException,\n\n /**\n * Install the mock adapter for axios\n */\n install: function(instance = axios) {\n defaultAdapter = instance.defaults.adapter\n instance.defaults.adapter = mockAdapter\n },\n\n /**\n * Uninstall the mock adapter and reset state\n */\n uninstall: function(instance = axios) {\n instance.defaults.adapter = defaultAdapter\n this.stubs.reset()\n this.requests.reset()\n },\n\n /**\n * Stub a response to be used to respond to a request matching a method and a URL or RegExp\n * The first parameter is optional for backwards compatability reasons. It might change to\n * a required parameter in the future. Please always specify a method\n *\n * @param {String} [method] An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubRequest: function(...args) {\n if (args.length === 3) {\n this.stubs.track({method: args[0], url: args[1], response: args[2]});\n } else {\n this.stubs.track({url: args[0], response: args[1]});\n }\n },\n\n /**\n * Stub a response to be used one or more times to respond to a request matching a\n * method and a URL or RegExp.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubOnce: function (method, urlOrRegExp, response) {\n return new Promise((resolve) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n });\n },\n\n /**\n * Stub a timed response to a request matching a method and a URL or RegExp. If\n * timer fires, reject with a TimeoutException for simple assertions. The goal is\n * to show that a certain request was not made.\n *\n * @param {String} method An axios command\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n * @param {Object} response The response to use when a match is made\n */\n stubFailure: function (method, urlOrRegExp, response) {\n return new Promise((resolve, reject) => {\n this.stubs.track({url: urlOrRegExp, method, response, resolve});\n setTimeout(function() {\n reject(TimeoutException);\n }, 500);\n });\n },\n\n /**\n * Stub a timeout to be used to respond to a request matching a URL or RegExp\n *\n * @param {String|RegExp} urlOrRegExp A URL or RegExp to test against\n */\n stubTimeout: function(urlOrRegExp) {\n this.stubs.track({url: urlOrRegExp, timeout: true})\n },\n\n /**\n * Run a single test with mock adapter installed.\n * This will install the mock adapter, execute the function provided,\n * then uninstall the mock adapter once complete.\n *\n * @param {Function} fn The function to be executed\n */\n withMock: function(fn) {\n this.install()\n try {\n fn()\n } finally {\n this.uninstall()\n }\n },\n\n /**\n * Wait for request to be made before proceding.\n * This is naively using a `setTimeout`.\n * May need to beef this up a bit in the future.\n *\n * @param {Function} fn Optional function to execute once waiting is over\n * @param {Number} delay How much time in milliseconds to wait\n *\n * @return {Object} Promise that gets resolved when waiting completed\n */\n wait: function(...args) {\n const cb = typeof args[0] === 'function' ? args.shift() : null\n const delay = typeof args[0] !== 'undefined' ? args.shift() : this.delay\n\n return new Promise(resolve => {\n setTimeout(resolve, delay)\n }).then(cb);\n }\n}\n\nexport default moxios\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"axios\"\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/buildURL.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/utils.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/bind.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/isURLSameOrigin.js\n// module id = 5\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/btoa.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/cookies.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/settle.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/createError.js\n// module id = 9\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.response = response;\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/enhanceError.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file