bfdotcom-theme 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,219 @@
1
+ /*
2
+ * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License").
5
+ * You may not use this file except in compliance with the License.
6
+ * A copy of the License is located at
7
+ *
8
+ * http://aws.amazon.com/apache2.0
9
+ *
10
+ * or in the "license" file accompanying this file. This file is distributed
11
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12
+ * express or implied. See the License for the specific language governing
13
+ * permissions and limitations under the License.
14
+ */
15
+
16
+ var apiGateway = apiGateway || {};
17
+ apiGateway.core = apiGateway.core || {};
18
+
19
+ apiGateway.core.sigV4ClientFactory = {};
20
+ apiGateway.core.sigV4ClientFactory.newClient = function (config) {
21
+ var AWS_SHA_256 = 'AWS4-HMAC-SHA256';
22
+ var AWS4_REQUEST = 'aws4_request';
23
+ var AWS4 = 'AWS4';
24
+ var X_AMZ_DATE = 'x-amz-date';
25
+ var X_AMZ_SECURITY_TOKEN = 'x-amz-security-token';
26
+ var HOST = 'host';
27
+ var AUTHORIZATION = 'Authorization';
28
+
29
+ function hash(value) {
30
+ return CryptoJS.SHA256(value);
31
+ }
32
+
33
+ function hexEncode(value) {
34
+ return value.toString(CryptoJS.enc.Hex);
35
+ }
36
+
37
+ function hmac(secret, value) {
38
+ return CryptoJS.HmacSHA256(value, secret, {asBytes: true});
39
+ }
40
+
41
+ function buildCanonicalRequest(method, path, queryParams, headers, payload) {
42
+ return method + '\n' +
43
+ buildCanonicalUri(path) + '\n' +
44
+ buildCanonicalQueryString(queryParams) + '\n' +
45
+ buildCanonicalHeaders(headers) + '\n' +
46
+ buildCanonicalSignedHeaders(headers) + '\n' +
47
+ hexEncode(hash(payload));
48
+ }
49
+
50
+ function hashCanonicalRequest(request) {
51
+ return hexEncode(hash(request));
52
+ }
53
+
54
+ function buildCanonicalUri(uri) {
55
+ return encodeURI(uri);
56
+ }
57
+
58
+ function buildCanonicalQueryString(queryParams) {
59
+ if (Object.keys(queryParams).length < 1) {
60
+ return '';
61
+ }
62
+
63
+ var sortedQueryParams = [];
64
+ for (var property in queryParams) {
65
+ if (queryParams.hasOwnProperty(property)) {
66
+ sortedQueryParams.push(property);
67
+ }
68
+ }
69
+ sortedQueryParams.sort();
70
+
71
+ var canonicalQueryString = '';
72
+ for (var i = 0; i < sortedQueryParams.length; i++) {
73
+ canonicalQueryString += sortedQueryParams[i] + '=' + fixedEncodeURIComponent(queryParams[sortedQueryParams[i]]) + '&';
74
+ }
75
+ return canonicalQueryString.substr(0, canonicalQueryString.length - 1);
76
+ }
77
+
78
+ function fixedEncodeURIComponent (str) {
79
+ return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
80
+ return '%' + c.charCodeAt(0).toString(16).toUpperCase();
81
+ });
82
+ }
83
+
84
+ function buildCanonicalHeaders(headers) {
85
+ var canonicalHeaders = '';
86
+ var sortedKeys = [];
87
+ for (var property in headers) {
88
+ if (headers.hasOwnProperty(property)) {
89
+ sortedKeys.push(property);
90
+ }
91
+ }
92
+ sortedKeys.sort();
93
+
94
+ for (var i = 0; i < sortedKeys.length; i++) {
95
+ canonicalHeaders += sortedKeys[i].toLowerCase() + ':' + headers[sortedKeys[i]] + '\n';
96
+ }
97
+ return canonicalHeaders;
98
+ }
99
+
100
+ function buildCanonicalSignedHeaders(headers) {
101
+ var sortedKeys = [];
102
+ for (var property in headers) {
103
+ if (headers.hasOwnProperty(property)) {
104
+ sortedKeys.push(property.toLowerCase());
105
+ }
106
+ }
107
+ sortedKeys.sort();
108
+
109
+ return sortedKeys.join(';');
110
+ }
111
+
112
+ function buildStringToSign(datetime, credentialScope, hashedCanonicalRequest) {
113
+ return AWS_SHA_256 + '\n' +
114
+ datetime + '\n' +
115
+ credentialScope + '\n' +
116
+ hashedCanonicalRequest;
117
+ }
118
+
119
+ function buildCredentialScope(datetime, region, service) {
120
+ return datetime.substr(0, 8) + '/' + region + '/' + service + '/' + AWS4_REQUEST
121
+ }
122
+
123
+ function calculateSigningKey(secretKey, datetime, region, service) {
124
+ return hmac(hmac(hmac(hmac(AWS4 + secretKey, datetime.substr(0, 8)), region), service), AWS4_REQUEST);
125
+ }
126
+
127
+ function calculateSignature(key, stringToSign) {
128
+ return hexEncode(hmac(key, stringToSign));
129
+ }
130
+
131
+ function buildAuthorizationHeader(accessKey, credentialScope, headers, signature) {
132
+ return AWS_SHA_256 + ' Credential=' + accessKey + '/' + credentialScope + ', SignedHeaders=' + buildCanonicalSignedHeaders(headers) + ', Signature=' + signature;
133
+ }
134
+
135
+ var awsSigV4Client = { };
136
+ if(config.accessKey === undefined || config.secretKey === undefined) {
137
+ return awsSigV4Client;
138
+ }
139
+ awsSigV4Client.accessKey = apiGateway.core.utils.assertDefined(config.accessKey, 'accessKey');
140
+ awsSigV4Client.secretKey = apiGateway.core.utils.assertDefined(config.secretKey, 'secretKey');
141
+ awsSigV4Client.sessionToken = config.sessionToken;
142
+ awsSigV4Client.serviceName = apiGateway.core.utils.assertDefined(config.serviceName, 'serviceName');
143
+ awsSigV4Client.region = apiGateway.core.utils.assertDefined(config.region, 'region');
144
+ awsSigV4Client.endpoint = apiGateway.core.utils.assertDefined(config.endpoint, 'endpoint');
145
+
146
+ awsSigV4Client.makeRequest = function (request) {
147
+ var verb = apiGateway.core.utils.assertDefined(request.verb, 'verb');
148
+ var path = apiGateway.core.utils.assertDefined(request.path, 'path');
149
+ var queryParams = apiGateway.core.utils.copy(request.queryParams);
150
+ if (queryParams === undefined) {
151
+ queryParams = {};
152
+ }
153
+ var headers = apiGateway.core.utils.copy(request.headers);
154
+ if (headers === undefined) {
155
+ headers = {};
156
+ }
157
+
158
+ //If the user has not specified an override for Content type the use default
159
+ if(headers['Content-Type'] === undefined) {
160
+ headers['Content-Type'] = config.defaultContentType;
161
+ }
162
+
163
+ //If the user has not specified an override for Accept type the use default
164
+ if(headers['Accept'] === undefined) {
165
+ headers['Accept'] = config.defaultAcceptType;
166
+ }
167
+
168
+ var body = apiGateway.core.utils.copy(request.body);
169
+ if (body === undefined || verb === 'GET') { // override request body and set to empty when signing GET requests
170
+ body = '';
171
+ } else {
172
+ body = JSON.stringify(body);
173
+ }
174
+
175
+ //If there is no body remove the content-type header so it is not included in SigV4 calculation
176
+ if(body === '' || body === undefined || body === null) {
177
+ delete headers['Content-Type'];
178
+ }
179
+
180
+ var datetime = new Date().toISOString().replace(/\.\d{3}Z$/, 'Z').replace(/[:\-]|\.\d{3}/g, '');
181
+ headers[X_AMZ_DATE] = datetime;
182
+ var parser = document.createElement('a');
183
+ parser.href = awsSigV4Client.endpoint;
184
+ headers[HOST] = parser.hostname;
185
+
186
+ var canonicalRequest = buildCanonicalRequest(verb, path, queryParams, headers, body);
187
+ var hashedCanonicalRequest = hashCanonicalRequest(canonicalRequest);
188
+ var credentialScope = buildCredentialScope(datetime, awsSigV4Client.region, awsSigV4Client.serviceName);
189
+ var stringToSign = buildStringToSign(datetime, credentialScope, hashedCanonicalRequest);
190
+ var signingKey = calculateSigningKey(awsSigV4Client.secretKey, datetime, awsSigV4Client.region, awsSigV4Client.serviceName);
191
+ var signature = calculateSignature(signingKey, stringToSign);
192
+ headers[AUTHORIZATION] = buildAuthorizationHeader(awsSigV4Client.accessKey, credentialScope, headers, signature);
193
+ if(awsSigV4Client.sessionToken !== undefined && awsSigV4Client.sessionToken !== '') {
194
+ headers[X_AMZ_SECURITY_TOKEN] = awsSigV4Client.sessionToken;
195
+ }
196
+ delete headers[HOST];
197
+
198
+ var url = config.endpoint + path;
199
+ var queryString = buildCanonicalQueryString(queryParams);
200
+ if (queryString != '') {
201
+ url += '?' + queryString;
202
+ }
203
+
204
+ //Need to re-attach Content-Type if it is not specified at this point
205
+ if(headers['Content-Type'] === undefined) {
206
+ headers['Content-Type'] = config.defaultContentType;
207
+ }
208
+
209
+ var signedRequest = {
210
+ method: verb,
211
+ url: url,
212
+ headers: headers,
213
+ data: body
214
+ };
215
+ return axios(signedRequest);
216
+ };
217
+
218
+ return awsSigV4Client;
219
+ };
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License").
5
+ * You may not use this file except in compliance with the License.
6
+ * A copy of the License is located at
7
+ *
8
+ * http://aws.amazon.com/apache2.0
9
+ *
10
+ * or in the "license" file accompanying this file. This file is distributed
11
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12
+ * express or implied. See the License for the specific language governing
13
+ * permissions and limitations under the License.
14
+ */
15
+
16
+ var apiGateway = apiGateway || {};
17
+ apiGateway.core = apiGateway.core || {};
18
+
19
+ apiGateway.core.simpleHttpClientFactory = {};
20
+ apiGateway.core.simpleHttpClientFactory.newClient = function (config) {
21
+ function buildCanonicalQueryString(queryParams) {
22
+ //Build a properly encoded query string from a QueryParam object
23
+ if (Object.keys(queryParams).length < 1) {
24
+ return '';
25
+ }
26
+
27
+ var canonicalQueryString = '';
28
+ for (var property in queryParams) {
29
+ if (queryParams.hasOwnProperty(property)) {
30
+ canonicalQueryString += encodeURIComponent(property) + '=' + encodeURIComponent(queryParams[property]) + '&';
31
+ }
32
+ }
33
+
34
+ return canonicalQueryString.substr(0, canonicalQueryString.length - 1);
35
+ }
36
+
37
+ var simpleHttpClient = { };
38
+ simpleHttpClient.endpoint = apiGateway.core.utils.assertDefined(config.endpoint, 'endpoint');
39
+
40
+ simpleHttpClient.makeRequest = function (request) {
41
+ var verb = apiGateway.core.utils.assertDefined(request.verb, 'verb');
42
+ var path = apiGateway.core.utils.assertDefined(request.path, 'path');
43
+ var queryParams = apiGateway.core.utils.copy(request.queryParams);
44
+ if (queryParams === undefined) {
45
+ queryParams = {};
46
+ }
47
+ var headers = apiGateway.core.utils.copy(request.headers);
48
+ if (headers === undefined) {
49
+ headers = {};
50
+ }
51
+
52
+ //If the user has not specified an override for Content type the use default
53
+ if(headers['Content-Type'] === undefined) {
54
+ headers['Content-Type'] = config.defaultContentType;
55
+ }
56
+
57
+ //If the user has not specified an override for Accept type the use default
58
+ if(headers['Accept'] === undefined) {
59
+ headers['Accept'] = config.defaultAcceptType;
60
+ }
61
+
62
+ var body = apiGateway.core.utils.copy(request.body);
63
+ if (body === undefined) {
64
+ body = '';
65
+ }
66
+
67
+ var url = config.endpoint + path;
68
+ var queryString = buildCanonicalQueryString(queryParams);
69
+ if (queryString != '') {
70
+ url += '?' + queryString;
71
+ }
72
+ var simpleHttpRequest = {
73
+ method: verb,
74
+ url: url,
75
+ headers: headers,
76
+ data: body
77
+ };
78
+ return axios(simpleHttpRequest);
79
+ };
80
+ return simpleHttpClient;
81
+ };
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License").
5
+ * You may not use this file except in compliance with the License.
6
+ * A copy of the License is located at
7
+ *
8
+ * http://aws.amazon.com/apache2.0
9
+ *
10
+ * or in the "license" file accompanying this file. This file is distributed
11
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12
+ * express or implied. See the License for the specific language governing
13
+ * permissions and limitations under the License.
14
+ */
15
+
16
+ var apiGateway = apiGateway || {};
17
+ apiGateway.core = apiGateway.core || {};
18
+
19
+ apiGateway.core.utils = {
20
+ assertDefined: function (object, name) {
21
+ if (object === undefined) {
22
+ throw name + ' must be defined';
23
+ } else {
24
+ return object;
25
+ }
26
+ },
27
+ assertParametersDefined: function (params, keys, ignore) {
28
+ if (keys === undefined) {
29
+ return;
30
+ }
31
+ if (keys.length > 0 && params === undefined) {
32
+ params = {};
33
+ }
34
+ for (var i = 0; i < keys.length; i++) {
35
+ if(!apiGateway.core.utils.contains(ignore, keys[i])) {
36
+ apiGateway.core.utils.assertDefined(params[keys[i]], keys[i]);
37
+ }
38
+ }
39
+ },
40
+ parseParametersToObject: function (params, keys) {
41
+ if (params === undefined) {
42
+ return {};
43
+ }
44
+ var object = { };
45
+ for (var i = 0; i < keys.length; i++) {
46
+ object[keys[i]] = params[keys[i]];
47
+ }
48
+ return object;
49
+ },
50
+ contains: function(a, obj) {
51
+ if(a === undefined) { return false;}
52
+ var i = a.length;
53
+ while (i--) {
54
+ if (a[i] === obj) {
55
+ return true;
56
+ }
57
+ }
58
+ return false;
59
+ },
60
+ copy: function (obj) {
61
+ if (null == obj || "object" != typeof obj) return obj;
62
+ var copy = obj.constructor();
63
+ for (var attr in obj) {
64
+ if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
65
+ }
66
+ return copy;
67
+ },
68
+ mergeInto: function (baseObj, additionalProps) {
69
+ if (null == baseObj || "object" != typeof baseObj) return baseObj;
70
+ var merged = baseObj.constructor();
71
+ for (var attr in baseObj) {
72
+ if (baseObj.hasOwnProperty(attr)) merged[attr] = baseObj[attr];
73
+ }
74
+ if (null == additionalProps || "object" != typeof additionalProps) return baseObj;
75
+ for (attr in additionalProps) {
76
+ if (additionalProps.hasOwnProperty(attr)) merged[attr] = additionalProps[attr];
77
+ }
78
+ return merged;
79
+ }
80
+ };
@@ -0,0 +1,1089 @@
1
+ /*
2
+ axios v0.7.0
3
+ Copyright (c) 2014 Matt Zabriskie
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ */
23
+ (function webpackUniversalModuleDefinition(root, factory) {
24
+ if(typeof exports === 'object' && typeof module === 'object')
25
+ module.exports = factory();
26
+ else if(typeof define === 'function' && define.amd)
27
+ define([], factory);
28
+ else if(typeof exports === 'object')
29
+ exports["axios"] = factory();
30
+ else
31
+ root["axios"] = factory();
32
+ })(this, function() {
33
+ return /******/ (function(modules) { // webpackBootstrap
34
+ /******/ // The module cache
35
+ /******/ var installedModules = {};
36
+ /******/
37
+ /******/ // The require function
38
+ /******/ function __webpack_require__(moduleId) {
39
+ /******/
40
+ /******/ // Check if module is in cache
41
+ /******/ if(installedModules[moduleId])
42
+ /******/ return installedModules[moduleId].exports;
43
+ /******/
44
+ /******/ // Create a new module (and put it into the cache)
45
+ /******/ var module = installedModules[moduleId] = {
46
+ /******/ exports: {},
47
+ /******/ id: moduleId,
48
+ /******/ loaded: false
49
+ /******/ };
50
+ /******/
51
+ /******/ // Execute the module function
52
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
53
+ /******/
54
+ /******/ // Flag the module as loaded
55
+ /******/ module.loaded = true;
56
+ /******/
57
+ /******/ // Return the exports of the module
58
+ /******/ return module.exports;
59
+ /******/ }
60
+ /******/
61
+ /******/
62
+ /******/ // expose the modules object (__webpack_modules__)
63
+ /******/ __webpack_require__.m = modules;
64
+ /******/
65
+ /******/ // expose the module cache
66
+ /******/ __webpack_require__.c = installedModules;
67
+ /******/
68
+ /******/ // __webpack_public_path__
69
+ /******/ __webpack_require__.p = "";
70
+ /******/
71
+ /******/ // Load entry module and return exports
72
+ /******/ return __webpack_require__(0);
73
+ /******/ })
74
+ /************************************************************************/
75
+ /******/ ([
76
+ /* 0 */
77
+ /***/ function(module, exports, __webpack_require__) {
78
+
79
+ module.exports = __webpack_require__(1);
80
+
81
+ /***/ },
82
+ /* 1 */
83
+ /***/ function(module, exports, __webpack_require__) {
84
+
85
+ 'use strict';
86
+
87
+ var defaults = __webpack_require__(2);
88
+ var utils = __webpack_require__(3);
89
+ var dispatchRequest = __webpack_require__(4);
90
+ var InterceptorManager = __webpack_require__(12);
91
+
92
+ var axios = module.exports = function (config) {
93
+ // Allow for axios('example/url'[, config]) a la fetch API
94
+ if (typeof config === 'string') {
95
+ config = utils.merge({
96
+ url: arguments[0]
97
+ }, arguments[1]);
98
+ }
99
+
100
+ config = utils.merge({
101
+ method: 'get',
102
+ headers: {},
103
+ timeout: defaults.timeout,
104
+ transformRequest: defaults.transformRequest,
105
+ transformResponse: defaults.transformResponse
106
+ }, config);
107
+
108
+ // Don't allow overriding defaults.withCredentials
109
+ config.withCredentials = config.withCredentials || defaults.withCredentials;
110
+
111
+ // Hook up interceptors middleware
112
+ var chain = [dispatchRequest, undefined];
113
+ var promise = Promise.resolve(config);
114
+
115
+ axios.interceptors.request.forEach(function (interceptor) {
116
+ chain.unshift(interceptor.fulfilled, interceptor.rejected);
117
+ });
118
+
119
+ axios.interceptors.response.forEach(function (interceptor) {
120
+ chain.push(interceptor.fulfilled, interceptor.rejected);
121
+ });
122
+
123
+ while (chain.length) {
124
+ promise = promise.then(chain.shift(), chain.shift());
125
+ }
126
+
127
+ return promise;
128
+ };
129
+
130
+ // Expose defaults
131
+ axios.defaults = defaults;
132
+
133
+ // Expose all/spread
134
+ axios.all = function (promises) {
135
+ return Promise.all(promises);
136
+ };
137
+ axios.spread = __webpack_require__(13);
138
+
139
+ // Expose interceptors
140
+ axios.interceptors = {
141
+ request: new InterceptorManager(),
142
+ response: new InterceptorManager()
143
+ };
144
+
145
+ // Provide aliases for supported request methods
146
+ (function () {
147
+ function createShortMethods() {
148
+ utils.forEach(arguments, function (method) {
149
+ axios[method] = function (url, config) {
150
+ return axios(utils.merge(config || {}, {
151
+ method: method,
152
+ url: url
153
+ }));
154
+ };
155
+ });
156
+ }
157
+
158
+ function createShortMethodsWithData() {
159
+ utils.forEach(arguments, function (method) {
160
+ axios[method] = function (url, data, config) {
161
+ return axios(utils.merge(config || {}, {
162
+ method: method,
163
+ url: url,
164
+ data: data
165
+ }));
166
+ };
167
+ });
168
+ }
169
+
170
+ createShortMethods('delete', 'get', 'head');
171
+ createShortMethodsWithData('post', 'put', 'patch');
172
+ })();
173
+
174
+
175
+ /***/ },
176
+ /* 2 */
177
+ /***/ function(module, exports, __webpack_require__) {
178
+
179
+ 'use strict';
180
+
181
+ var utils = __webpack_require__(3);
182
+
183
+ var PROTECTION_PREFIX = /^\)\]\}',?\n/;
184
+ var DEFAULT_CONTENT_TYPE = {
185
+ 'Content-Type': 'application/json'
186
+ };
187
+
188
+ module.exports = {
189
+ transformRequest: [function (data, headers) {
190
+ if(utils.isFormData(data)) {
191
+ return data;
192
+ }
193
+ if (utils.isArrayBuffer(data)) {
194
+ return data;
195
+ }
196
+ if (utils.isArrayBufferView(data)) {
197
+ return data.buffer;
198
+ }
199
+ if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {
200
+ // Set application/json if no Content-Type has been specified
201
+ if (!utils.isUndefined(headers)) {
202
+ utils.forEach(headers, function (val, key) {
203
+ if (key.toLowerCase() === 'content-type') {
204
+ headers['Content-Type'] = val;
205
+ }
206
+ });
207
+
208
+ if (utils.isUndefined(headers['Content-Type'])) {
209
+ headers['Content-Type'] = 'application/json;charset=utf-8';
210
+ }
211
+ }
212
+ return JSON.stringify(data);
213
+ }
214
+ return data;
215
+ }],
216
+
217
+ transformResponse: [function (data) {
218
+ if (typeof data === 'string') {
219
+ data = data.replace(PROTECTION_PREFIX, '');
220
+ try {
221
+ data = JSON.parse(data);
222
+ } catch (e) { /* Ignore */ }
223
+ }
224
+ return data;
225
+ }],
226
+
227
+ headers: {
228
+ common: {
229
+ 'Accept': 'application/json, text/plain, */*'
230
+ },
231
+ patch: utils.merge(DEFAULT_CONTENT_TYPE),
232
+ post: utils.merge(DEFAULT_CONTENT_TYPE),
233
+ put: utils.merge(DEFAULT_CONTENT_TYPE)
234
+ },
235
+
236
+ timeout: 0,
237
+
238
+ xsrfCookieName: 'XSRF-TOKEN',
239
+ xsrfHeaderName: 'X-XSRF-TOKEN'
240
+ };
241
+
242
+
243
+ /***/ },
244
+ /* 3 */
245
+ /***/ function(module, exports) {
246
+
247
+ 'use strict';
248
+
249
+ /*global toString:true*/
250
+
251
+ // utils is a library of generic helper functions non-specific to axios
252
+
253
+ var toString = Object.prototype.toString;
254
+
255
+ /**
256
+ * Determine if a value is an Array
257
+ *
258
+ * @param {Object} val The value to test
259
+ * @returns {boolean} True if value is an Array, otherwise false
260
+ */
261
+ function isArray(val) {
262
+ return toString.call(val) === '[object Array]';
263
+ }
264
+
265
+ /**
266
+ * Determine if a value is an ArrayBuffer
267
+ *
268
+ * @param {Object} val The value to test
269
+ * @returns {boolean} True if value is an ArrayBuffer, otherwise false
270
+ */
271
+ function isArrayBuffer(val) {
272
+ return toString.call(val) === '[object ArrayBuffer]';
273
+ }
274
+
275
+ /**
276
+ * Determine if a value is a FormData
277
+ *
278
+ * @param {Object} val The value to test
279
+ * @returns {boolean} True if value is an FormData, otherwise false
280
+ */
281
+ function isFormData(val) {
282
+ return toString.call(val) === '[object FormData]';
283
+ }
284
+
285
+ /**
286
+ * Determine if a value is a view on an ArrayBuffer
287
+ *
288
+ * @param {Object} val The value to test
289
+ * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
290
+ */
291
+ function isArrayBufferView(val) {
292
+ if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
293
+ return ArrayBuffer.isView(val);
294
+ } else {
295
+ return (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);
296
+ }
297
+ }
298
+
299
+ /**
300
+ * Determine if a value is a String
301
+ *
302
+ * @param {Object} val The value to test
303
+ * @returns {boolean} True if value is a String, otherwise false
304
+ */
305
+ function isString(val) {
306
+ return typeof val === 'string';
307
+ }
308
+
309
+ /**
310
+ * Determine if a value is a Number
311
+ *
312
+ * @param {Object} val The value to test
313
+ * @returns {boolean} True if value is a Number, otherwise false
314
+ */
315
+ function isNumber(val) {
316
+ return typeof val === 'number';
317
+ }
318
+
319
+ /**
320
+ * Determine if a value is undefined
321
+ *
322
+ * @param {Object} val The value to test
323
+ * @returns {boolean} True if the value is undefined, otherwise false
324
+ */
325
+ function isUndefined(val) {
326
+ return typeof val === 'undefined';
327
+ }
328
+
329
+ /**
330
+ * Determine if a value is an Object
331
+ *
332
+ * @param {Object} val The value to test
333
+ * @returns {boolean} True if value is an Object, otherwise false
334
+ */
335
+ function isObject(val) {
336
+ return val !== null && typeof val === 'object';
337
+ }
338
+
339
+ /**
340
+ * Determine if a value is a Date
341
+ *
342
+ * @param {Object} val The value to test
343
+ * @returns {boolean} True if value is a Date, otherwise false
344
+ */
345
+ function isDate(val) {
346
+ return toString.call(val) === '[object Date]';
347
+ }
348
+
349
+ /**
350
+ * Determine if a value is a File
351
+ *
352
+ * @param {Object} val The value to test
353
+ * @returns {boolean} True if value is a File, otherwise false
354
+ */
355
+ function isFile(val) {
356
+ return toString.call(val) === '[object File]';
357
+ }
358
+
359
+ /**
360
+ * Determine if a value is a Blob
361
+ *
362
+ * @param {Object} val The value to test
363
+ * @returns {boolean} True if value is a Blob, otherwise false
364
+ */
365
+ function isBlob(val) {
366
+ return toString.call(val) === '[object Blob]';
367
+ }
368
+
369
+ /**
370
+ * Trim excess whitespace off the beginning and end of a string
371
+ *
372
+ * @param {String} str The String to trim
373
+ * @returns {String} The String freed of excess whitespace
374
+ */
375
+ function trim(str) {
376
+ return str.replace(/^\s*/, '').replace(/\s*$/, '');
377
+ }
378
+
379
+ /**
380
+ * Determine if a value is an Arguments object
381
+ *
382
+ * @param {Object} val The value to test
383
+ * @returns {boolean} True if value is an Arguments object, otherwise false
384
+ */
385
+ function isArguments(val) {
386
+ return toString.call(val) === '[object Arguments]';
387
+ }
388
+
389
+ /**
390
+ * Determine if we're running in a standard browser environment
391
+ *
392
+ * This allows axios to run in a web worker, and react-native.
393
+ * Both environments support XMLHttpRequest, but not fully standard globals.
394
+ *
395
+ * web workers:
396
+ * typeof window -> undefined
397
+ * typeof document -> undefined
398
+ *
399
+ * react-native:
400
+ * typeof document.createelement -> undefined
401
+ */
402
+ function isStandardBrowserEnv() {
403
+ return (
404
+ typeof window !== 'undefined' &&
405
+ typeof document !== 'undefined' &&
406
+ typeof document.createElement === 'function'
407
+ );
408
+ }
409
+
410
+ /**
411
+ * Iterate over an Array or an Object invoking a function for each item.
412
+ *
413
+ * If `obj` is an Array or arguments callback will be called passing
414
+ * the value, index, and complete array for each item.
415
+ *
416
+ * If 'obj' is an Object callback will be called passing
417
+ * the value, key, and complete object for each property.
418
+ *
419
+ * @param {Object|Array} obj The object to iterate
420
+ * @param {Function} fn The callback to invoke for each item
421
+ */
422
+ function forEach(obj, fn) {
423
+ // Don't bother if no value provided
424
+ if (obj === null || typeof obj === 'undefined') {
425
+ return;
426
+ }
427
+
428
+ // Check if obj is array-like
429
+ var isArrayLike = isArray(obj) || isArguments(obj);
430
+
431
+ // Force an array if not already something iterable
432
+ if (typeof obj !== 'object' && !isArrayLike) {
433
+ obj = [obj];
434
+ }
435
+
436
+ // Iterate over array values
437
+ if (isArrayLike) {
438
+ for (var i = 0, l = obj.length; i < l; i++) {
439
+ fn.call(null, obj[i], i, obj);
440
+ }
441
+ }
442
+ // Iterate over object keys
443
+ else {
444
+ for (var key in obj) {
445
+ if (obj.hasOwnProperty(key)) {
446
+ fn.call(null, obj[key], key, obj);
447
+ }
448
+ }
449
+ }
450
+ }
451
+
452
+ /**
453
+ * Accepts varargs expecting each argument to be an object, then
454
+ * immutably merges the properties of each object and returns result.
455
+ *
456
+ * When multiple objects contain the same key the later object in
457
+ * the arguments list will take precedence.
458
+ *
459
+ * Example:
460
+ *
461
+ * ```js
462
+ * var result = merge({foo: 123}, {foo: 456});
463
+ * console.log(result.foo); // outputs 456
464
+ * ```
465
+ *
466
+ * @param {Object} obj1 Object to merge
467
+ * @returns {Object} Result of all merge properties
468
+ */
469
+ function merge(/*obj1, obj2, obj3, ...*/) {
470
+ var result = {};
471
+ forEach(arguments, function (obj) {
472
+ forEach(obj, function (val, key) {
473
+ result[key] = val;
474
+ });
475
+ });
476
+ return result;
477
+ }
478
+
479
+ module.exports = {
480
+ isArray: isArray,
481
+ isArrayBuffer: isArrayBuffer,
482
+ isFormData: isFormData,
483
+ isArrayBufferView: isArrayBufferView,
484
+ isString: isString,
485
+ isNumber: isNumber,
486
+ isObject: isObject,
487
+ isUndefined: isUndefined,
488
+ isDate: isDate,
489
+ isFile: isFile,
490
+ isBlob: isBlob,
491
+ isStandardBrowserEnv: isStandardBrowserEnv,
492
+ forEach: forEach,
493
+ merge: merge,
494
+ trim: trim
495
+ };
496
+
497
+
498
+ /***/ },
499
+ /* 4 */
500
+ /***/ function(module, exports, __webpack_require__) {
501
+
502
+ /* WEBPACK VAR INJECTION */(function(process) {'use strict';
503
+
504
+ /**
505
+ * Dispatch a request to the server using whichever adapter
506
+ * is supported by the current environment.
507
+ *
508
+ * @param {object} config The config that is to be used for the request
509
+ * @returns {Promise} The Promise to be fulfilled
510
+ */
511
+ module.exports = function dispatchRequest(config) {
512
+ return new Promise(function (resolve, reject) {
513
+ try {
514
+ // For browsers use XHR adapter
515
+ if ((typeof XMLHttpRequest !== 'undefined') || (typeof ActiveXObject !== 'undefined')) {
516
+ __webpack_require__(6)(resolve, reject, config);
517
+ }
518
+ // For node use HTTP adapter
519
+ else if (typeof process !== 'undefined') {
520
+ __webpack_require__(6)(resolve, reject, config);
521
+ }
522
+ } catch (e) {
523
+ reject(e);
524
+ }
525
+ });
526
+ };
527
+
528
+
529
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
530
+
531
+ /***/ },
532
+ /* 5 */
533
+ /***/ function(module, exports) {
534
+
535
+ // shim for using process in browser
536
+
537
+ var process = module.exports = {};
538
+ var queue = [];
539
+ var draining = false;
540
+ var currentQueue;
541
+ var queueIndex = -1;
542
+
543
+ function cleanUpNextTick() {
544
+ draining = false;
545
+ if (currentQueue.length) {
546
+ queue = currentQueue.concat(queue);
547
+ } else {
548
+ queueIndex = -1;
549
+ }
550
+ if (queue.length) {
551
+ drainQueue();
552
+ }
553
+ }
554
+
555
+ function drainQueue() {
556
+ if (draining) {
557
+ return;
558
+ }
559
+ var timeout = setTimeout(cleanUpNextTick);
560
+ draining = true;
561
+
562
+ var len = queue.length;
563
+ while(len) {
564
+ currentQueue = queue;
565
+ queue = [];
566
+ while (++queueIndex < len) {
567
+ if (currentQueue) {
568
+ currentQueue[queueIndex].run();
569
+ }
570
+ }
571
+ queueIndex = -1;
572
+ len = queue.length;
573
+ }
574
+ currentQueue = null;
575
+ draining = false;
576
+ clearTimeout(timeout);
577
+ }
578
+
579
+ process.nextTick = function (fun) {
580
+ var args = new Array(arguments.length - 1);
581
+ if (arguments.length > 1) {
582
+ for (var i = 1; i < arguments.length; i++) {
583
+ args[i - 1] = arguments[i];
584
+ }
585
+ }
586
+ queue.push(new Item(fun, args));
587
+ if (queue.length === 1 && !draining) {
588
+ setTimeout(drainQueue, 0);
589
+ }
590
+ };
591
+
592
+ // v8 likes predictible objects
593
+ function Item(fun, array) {
594
+ this.fun = fun;
595
+ this.array = array;
596
+ }
597
+ Item.prototype.run = function () {
598
+ this.fun.apply(null, this.array);
599
+ };
600
+ process.title = 'browser';
601
+ process.browser = true;
602
+ process.env = {};
603
+ process.argv = [];
604
+ process.version = ''; // empty string to avoid regexp issues
605
+ process.versions = {};
606
+
607
+ function noop() {}
608
+
609
+ process.on = noop;
610
+ process.addListener = noop;
611
+ process.once = noop;
612
+ process.off = noop;
613
+ process.removeListener = noop;
614
+ process.removeAllListeners = noop;
615
+ process.emit = noop;
616
+
617
+ process.binding = function (name) {
618
+ throw new Error('process.binding is not supported');
619
+ };
620
+
621
+ process.cwd = function () { return '/' };
622
+ process.chdir = function (dir) {
623
+ throw new Error('process.chdir is not supported');
624
+ };
625
+ process.umask = function() { return 0; };
626
+
627
+
628
+ /***/ },
629
+ /* 6 */
630
+ /***/ function(module, exports, __webpack_require__) {
631
+
632
+ 'use strict';
633
+
634
+ /*global ActiveXObject:true*/
635
+
636
+ var defaults = __webpack_require__(2);
637
+ var utils = __webpack_require__(3);
638
+ var buildUrl = __webpack_require__(7);
639
+ var parseHeaders = __webpack_require__(8);
640
+ var transformData = __webpack_require__(9);
641
+
642
+ module.exports = function xhrAdapter(resolve, reject, config) {
643
+ // Transform request data
644
+ var data = transformData(
645
+ config.data,
646
+ config.headers,
647
+ config.transformRequest
648
+ );
649
+
650
+ // Merge headers
651
+ var requestHeaders = utils.merge(
652
+ defaults.headers.common,
653
+ defaults.headers[config.method] || {},
654
+ config.headers || {}
655
+ );
656
+
657
+ if (utils.isFormData(data)) {
658
+ // Content-Type needs to be sent in all requests so the mapping template can be applied
659
+ //delete requestHeaders['Content-Type']; // Let the browser set it
660
+ }
661
+
662
+ // Create the request
663
+ var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
664
+ request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true);
665
+
666
+ // Set the request timeout in MS
667
+ request.timeout = config.timeout;
668
+
669
+ // Listen for ready state
670
+ request.onreadystatechange = function () {
671
+ if (request && request.readyState === 4) {
672
+ // Prepare the response
673
+ var responseHeaders = parseHeaders(request.getAllResponseHeaders());
674
+ var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
675
+ var response = {
676
+ data: transformData(
677
+ responseData,
678
+ responseHeaders,
679
+ config.transformResponse
680
+ ),
681
+ status: request.status,
682
+ statusText: request.statusText,
683
+ headers: responseHeaders,
684
+ config: config
685
+ };
686
+
687
+ // Resolve or reject the Promise based on the status
688
+ (request.status >= 200 && request.status < 300 ?
689
+ resolve :
690
+ reject)(response);
691
+
692
+ // Clean up request
693
+ request = null;
694
+ }
695
+ };
696
+
697
+ // Add xsrf header
698
+ // This is only done if running in a standard browser environment.
699
+ // Specifically not if we're in a web worker, or react-native.
700
+ if (utils.isStandardBrowserEnv()) {
701
+ var cookies = __webpack_require__(10);
702
+ var urlIsSameOrigin = __webpack_require__(11);
703
+
704
+ // Add xsrf header
705
+ var xsrfValue = urlIsSameOrigin(config.url) ?
706
+ cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
707
+ undefined;
708
+
709
+ if (xsrfValue) {
710
+ requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
711
+ }
712
+ }
713
+
714
+ // Add headers to the request
715
+ utils.forEach(requestHeaders, function (val, key) {
716
+ // Remove Content-Type if data is undefined
717
+ if (!data && key.toLowerCase() === 'content-type') {
718
+ delete requestHeaders[key];
719
+ }
720
+ // Otherwise add header to the request
721
+ else {
722
+ request.setRequestHeader(key, val);
723
+ }
724
+ });
725
+
726
+ // Add withCredentials to request if needed
727
+ if (config.withCredentials) {
728
+ request.withCredentials = true;
729
+ }
730
+
731
+ // Add responseType to request if needed
732
+ if (config.responseType) {
733
+ try {
734
+ request.responseType = config.responseType;
735
+ } catch (e) {
736
+ if (request.responseType !== 'json') {
737
+ throw e;
738
+ }
739
+ }
740
+ }
741
+
742
+ if (utils.isArrayBuffer(data)) {
743
+ data = new DataView(data);
744
+ }
745
+
746
+ // Send the request
747
+ request.send(data);
748
+ };
749
+
750
+
751
+ /***/ },
752
+ /* 7 */
753
+ /***/ function(module, exports, __webpack_require__) {
754
+
755
+ 'use strict';
756
+
757
+ var utils = __webpack_require__(3);
758
+
759
+ function encode(val) {
760
+ return encodeURIComponent(val).
761
+ replace(/%40/gi, '@').
762
+ replace(/%3A/gi, ':').
763
+ replace(/%24/g, '$').
764
+ replace(/%2C/gi, ',').
765
+ replace(/%20/g, '+').
766
+ replace(/%5B/gi, '[').
767
+ replace(/%5D/gi, ']');
768
+ }
769
+
770
+ /**
771
+ * Build a URL by appending params to the end
772
+ *
773
+ * @param {string} url The base of the url (e.g., http://www.google.com)
774
+ * @param {object} [params] The params to be appended
775
+ * @returns {string} The formatted url
776
+ */
777
+ module.exports = function buildUrl(url, params) {
778
+ if (!params) {
779
+ return url;
780
+ }
781
+
782
+ var parts = [];
783
+
784
+ utils.forEach(params, function (val, key) {
785
+ if (val === null || typeof val === 'undefined') {
786
+ return;
787
+ }
788
+
789
+ if (utils.isArray(val)) {
790
+ key = key + '[]';
791
+ }
792
+
793
+ if (!utils.isArray(val)) {
794
+ val = [val];
795
+ }
796
+
797
+ utils.forEach(val, function (v) {
798
+ if (utils.isDate(v)) {
799
+ v = v.toISOString();
800
+ }
801
+ else if (utils.isObject(v)) {
802
+ v = JSON.stringify(v);
803
+ }
804
+ parts.push(encode(key) + '=' + encode(v));
805
+ });
806
+ });
807
+
808
+ if (parts.length > 0) {
809
+ url += (url.indexOf('?') === -1 ? '?' : '&') + parts.join('&');
810
+ }
811
+
812
+ return url;
813
+ };
814
+
815
+
816
+ /***/ },
817
+ /* 8 */
818
+ /***/ function(module, exports, __webpack_require__) {
819
+
820
+ 'use strict';
821
+
822
+ var utils = __webpack_require__(3);
823
+
824
+ /**
825
+ * Parse headers into an object
826
+ *
827
+ * ```
828
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
829
+ * Content-Type: application/json
830
+ * Connection: keep-alive
831
+ * Transfer-Encoding: chunked
832
+ * ```
833
+ *
834
+ * @param {String} headers Headers needing to be parsed
835
+ * @returns {Object} Headers parsed into an object
836
+ */
837
+ module.exports = function parseHeaders(headers) {
838
+ var parsed = {}, key, val, i;
839
+
840
+ if (!headers) { return parsed; }
841
+
842
+ utils.forEach(headers.split('\n'), function(line) {
843
+ i = line.indexOf(':');
844
+ key = utils.trim(line.substr(0, i)).toLowerCase();
845
+ val = utils.trim(line.substr(i + 1));
846
+
847
+ if (key) {
848
+ parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
849
+ }
850
+ });
851
+
852
+ return parsed;
853
+ };
854
+
855
+
856
+ /***/ },
857
+ /* 9 */
858
+ /***/ function(module, exports, __webpack_require__) {
859
+
860
+ 'use strict';
861
+
862
+ var utils = __webpack_require__(3);
863
+
864
+ /**
865
+ * Transform the data for a request or a response
866
+ *
867
+ * @param {Object|String} data The data to be transformed
868
+ * @param {Array} headers The headers for the request or response
869
+ * @param {Array|Function} fns A single function or Array of functions
870
+ * @returns {*} The resulting transformed data
871
+ */
872
+ module.exports = function transformData(data, headers, fns) {
873
+ utils.forEach(fns, function (fn) {
874
+ data = fn(data, headers);
875
+ });
876
+
877
+ return data;
878
+ };
879
+
880
+
881
+ /***/ },
882
+ /* 10 */
883
+ /***/ function(module, exports, __webpack_require__) {
884
+
885
+ 'use strict';
886
+
887
+ /**
888
+ * WARNING:
889
+ * This file makes references to objects that aren't safe in all environments.
890
+ * Please see lib/utils.isStandardBrowserEnv before including this file.
891
+ */
892
+
893
+ var utils = __webpack_require__(3);
894
+
895
+ module.exports = {
896
+ write: function write(name, value, expires, path, domain, secure) {
897
+ var cookie = [];
898
+ cookie.push(name + '=' + encodeURIComponent(value));
899
+
900
+ if (utils.isNumber(expires)) {
901
+ cookie.push('expires=' + new Date(expires).toGMTString());
902
+ }
903
+
904
+ if (utils.isString(path)) {
905
+ cookie.push('path=' + path);
906
+ }
907
+
908
+ if (utils.isString(domain)) {
909
+ cookie.push('domain=' + domain);
910
+ }
911
+
912
+ if (secure === true) {
913
+ cookie.push('secure');
914
+ }
915
+
916
+ document.cookie = cookie.join('; ');
917
+ },
918
+
919
+ read: function read(name) {
920
+ var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
921
+ return (match ? decodeURIComponent(match[3]) : null);
922
+ },
923
+
924
+ remove: function remove(name) {
925
+ this.write(name, '', Date.now() - 86400000);
926
+ }
927
+ };
928
+
929
+
930
+ /***/ },
931
+ /* 11 */
932
+ /***/ function(module, exports, __webpack_require__) {
933
+
934
+ 'use strict';
935
+
936
+ /**
937
+ * WARNING:
938
+ * This file makes references to objects that aren't safe in all environments.
939
+ * Please see lib/utils.isStandardBrowserEnv before including this file.
940
+ */
941
+
942
+ var utils = __webpack_require__(3);
943
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
944
+ var urlParsingNode = document.createElement('a');
945
+ var originUrl;
946
+
947
+ /**
948
+ * Parse a URL to discover it's components
949
+ *
950
+ * @param {String} url The URL to be parsed
951
+ * @returns {Object}
952
+ */
953
+ function urlResolve(url) {
954
+ var href = url;
955
+
956
+ if (msie) {
957
+ // IE needs attribute set twice to normalize properties
958
+ urlParsingNode.setAttribute('href', href);
959
+ href = urlParsingNode.href;
960
+ }
961
+
962
+ urlParsingNode.setAttribute('href', href);
963
+
964
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
965
+ return {
966
+ href: urlParsingNode.href,
967
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
968
+ host: urlParsingNode.host,
969
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
970
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
971
+ hostname: urlParsingNode.hostname,
972
+ port: urlParsingNode.port,
973
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
974
+ urlParsingNode.pathname :
975
+ '/' + urlParsingNode.pathname
976
+ };
977
+ }
978
+
979
+ originUrl = urlResolve(window.location.href);
980
+
981
+ /**
982
+ * Determine if a URL shares the same origin as the current location
983
+ *
984
+ * @param {String} requestUrl The URL to test
985
+ * @returns {boolean} True if URL shares the same origin, otherwise false
986
+ */
987
+ module.exports = function urlIsSameOrigin(requestUrl) {
988
+ var parsed = (utils.isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl;
989
+ return (parsed.protocol === originUrl.protocol &&
990
+ parsed.host === originUrl.host);
991
+ };
992
+
993
+
994
+ /***/ },
995
+ /* 12 */
996
+ /***/ function(module, exports, __webpack_require__) {
997
+
998
+ 'use strict';
999
+
1000
+ var utils = __webpack_require__(3);
1001
+
1002
+ function InterceptorManager() {
1003
+ this.handlers = [];
1004
+ }
1005
+
1006
+ /**
1007
+ * Add a new interceptor to the stack
1008
+ *
1009
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
1010
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
1011
+ *
1012
+ * @return {Number} An ID used to remove interceptor later
1013
+ */
1014
+ InterceptorManager.prototype.use = function (fulfilled, rejected) {
1015
+ this.handlers.push({
1016
+ fulfilled: fulfilled,
1017
+ rejected: rejected
1018
+ });
1019
+ return this.handlers.length - 1;
1020
+ };
1021
+
1022
+ /**
1023
+ * Remove an interceptor from the stack
1024
+ *
1025
+ * @param {Number} id The ID that was returned by `use`
1026
+ */
1027
+ InterceptorManager.prototype.eject = function (id) {
1028
+ if (this.handlers[id]) {
1029
+ this.handlers[id] = null;
1030
+ }
1031
+ };
1032
+
1033
+ /**
1034
+ * Iterate over all the registered interceptors
1035
+ *
1036
+ * This method is particularly useful for skipping over any
1037
+ * interceptors that may have become `null` calling `remove`.
1038
+ *
1039
+ * @param {Function} fn The function to call for each interceptor
1040
+ */
1041
+ InterceptorManager.prototype.forEach = function (fn) {
1042
+ utils.forEach(this.handlers, function (h) {
1043
+ if (h !== null) {
1044
+ fn(h);
1045
+ }
1046
+ });
1047
+ };
1048
+
1049
+ module.exports = InterceptorManager;
1050
+
1051
+
1052
+ /***/ },
1053
+ /* 13 */
1054
+ /***/ function(module, exports) {
1055
+
1056
+ 'use strict';
1057
+
1058
+ /**
1059
+ * Syntactic sugar for invoking a function and expanding an array for arguments.
1060
+ *
1061
+ * Common use case would be to use `Function.prototype.apply`.
1062
+ *
1063
+ * ```js
1064
+ * function f(x, y, z) {}
1065
+ * var args = [1, 2, 3];
1066
+ * f.apply(null, args);
1067
+ * ```
1068
+ *
1069
+ * With `spread` this example can be re-written.
1070
+ *
1071
+ * ```js
1072
+ * spread(function(x, y, z) {})([1, 2, 3]);
1073
+ * ```
1074
+ *
1075
+ * @param {Function} callback
1076
+ * @returns {Function}
1077
+ */
1078
+ module.exports = function spread(callback) {
1079
+ return function (arr) {
1080
+ return callback.apply(null, arr);
1081
+ };
1082
+ };
1083
+
1084
+
1085
+ /***/ }
1086
+ /******/ ])
1087
+ });
1088
+ ;
1089
+ //# sourceMappingURL=axios.map