@airgap/coinlib-core 0.13.46 → 0.13.47
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.
- package/dependencies/src/axios-0.33.0/index.d.ts +345 -0
- package/dependencies/src/axios-0.33.0/lib/adapters/http.js +771 -0
- package/dependencies/src/axios-0.33.0/lib/adapters/xhr.js +305 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/axios.js +22 -7
- package/dependencies/src/axios-0.33.0/lib/cancel/CancelToken.js +118 -0
- package/dependencies/src/axios-0.33.0/lib/cancel/CanceledError.js +24 -0
- package/dependencies/src/axios-0.33.0/lib/core/Axios.js +178 -0
- package/dependencies/src/axios-0.33.0/lib/core/AxiosError.js +173 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/InterceptorManager.js +13 -2
- package/dependencies/src/axios-0.33.0/lib/core/buildFullPath.js +23 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/dispatchRequest.js +34 -16
- package/dependencies/src/axios-0.33.0/lib/core/mergeConfig.js +117 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/settle.js +4 -4
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/transformData.js +5 -2
- package/dependencies/src/axios-0.33.0/lib/defaults/index.js +181 -0
- package/dependencies/src/axios-0.33.0/lib/defaults/transitional.js +7 -0
- package/dependencies/src/axios-0.33.0/lib/env/classes/FormData.js +2 -0
- package/dependencies/src/axios-0.33.0/lib/env/data.js +3 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/AxiosURLSearchParams.js +50 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/bind.js +7 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/buildURL.js +63 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/combineURLs.js +1 -1
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/cookies.js +15 -2
- package/dependencies/src/axios-0.33.0/lib/helpers/defaultRedactKeys.js +3 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/estimateDataURLDecodedBytes.js +79 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/formDataToJSON.js +91 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/fromDataURI.js +51 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isAbsoluteURL.js +1 -1
- package/dependencies/src/axios-0.33.0/lib/helpers/isAxiosError.js +13 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isURLSameOrigin.js +12 -12
- package/dependencies/src/axios-0.33.0/lib/helpers/null.js +2 -0
- package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/parseHeaders.js +2 -2
- package/dependencies/src/axios-0.33.0/lib/helpers/parseProtocol.js +6 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/sanitizeHeaderValue.js +22 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/shouldBypassProxy.js +187 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/toFormData.js +212 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/toURLEncodedForm.js +18 -0
- package/dependencies/src/axios-0.33.0/lib/helpers/validator.js +86 -0
- package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/FormData.js +3 -0
- package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/URLSearchParams.js +5 -0
- package/dependencies/src/axios-0.33.0/lib/platform/browser/index.js +11 -0
- package/dependencies/src/axios-0.33.0/lib/platform/index.js +3 -0
- package/dependencies/src/axios-0.33.0/lib/platform/node/classes/FormData.js +3 -0
- package/dependencies/src/axios-0.33.0/lib/platform/node/classes/URLSearchParams.js +5 -0
- package/dependencies/src/axios-0.33.0/lib/platform/node/index.js +11 -0
- package/dependencies/src/axios-0.33.0/lib/utils.js +565 -0
- package/dependencies/src/axios-0.33.0/package.json +100 -0
- package/dependencies/src/{bn.js-4.11.8 → bn.js-4.11.9}/lib/bn.js +7 -1
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/base.js +36 -31
- package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/edwards.js +13 -10
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/mont.js +1 -1
- package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/short.js +48 -47
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curves.js +21 -21
- package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/ec/index.js +53 -16
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/key.js +8 -5
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/signature.js +11 -1
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/index.js +5 -2
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/signature.js +3 -2
- package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/precomputed/secp256k1.js +197 -197
- package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/utils.js +12 -9
- package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/package.json +20 -22
- package/dependencies/src/ethereumjs-util-5.2.0/index.js +1 -1
- package/dependencies/src/follow-redirects-1.16.0/debug.js +15 -0
- package/dependencies/src/follow-redirects-1.16.0/index.js +709 -0
- package/dependencies/src/follow-redirects-1.16.0/package.json +58 -0
- package/dependencies/src/proxy-from-env-1.1.0/index.js +108 -0
- package/dependencies/src/proxy-from-env-1.1.0/package.json +34 -0
- package/dependencies/src/secp256k1-3.7.1/lib/elliptic/index.js +2 -2
- package/dependencies/src/secp256k1-4.0.2/lib/elliptic.js +1 -1
- package/dependencies/src/tiny-secp256k1-1.1.3/js.js +2 -2
- package/errors/index.d.ts +2 -2
- package/errors/index.js.map +1 -1
- package/package.json +2 -2
- package/utils/remote-data/HttpRemoteData.js +3 -8
- package/utils/remote-data/HttpRemoteData.js.map +1 -1
- package/utils/remote-data/IpfsRemoteData.js +13 -7
- package/utils/remote-data/IpfsRemoteData.js.map +1 -1
- package/utils/remote-data/Sha256RemoteData.js +5 -6
- package/utils/remote-data/Sha256RemoteData.js.map +1 -1
- package/utils/remote-data/remoteDataRequest.d.ts +16 -0
- package/utils/remote-data/remoteDataRequest.js +240 -0
- package/utils/remote-data/remoteDataRequest.js.map +1 -0
- package/dependencies/src/axios-0.19.0/index.d.ts +0 -152
- package/dependencies/src/axios-0.19.0/lib/adapters/http.js +0 -275
- package/dependencies/src/axios-0.19.0/lib/adapters/xhr.js +0 -174
- package/dependencies/src/axios-0.19.0/lib/cancel/Cancel.js +0 -19
- package/dependencies/src/axios-0.19.0/lib/cancel/CancelToken.js +0 -57
- package/dependencies/src/axios-0.19.0/lib/core/Axios.js +0 -86
- package/dependencies/src/axios-0.19.0/lib/core/createError.js +0 -18
- package/dependencies/src/axios-0.19.0/lib/core/enhanceError.js +0 -42
- package/dependencies/src/axios-0.19.0/lib/core/mergeConfig.js +0 -51
- package/dependencies/src/axios-0.19.0/lib/defaults.js +0 -98
- package/dependencies/src/axios-0.19.0/lib/helpers/bind.js +0 -11
- package/dependencies/src/axios-0.19.0/lib/helpers/buildURL.js +0 -71
- package/dependencies/src/axios-0.19.0/lib/utils.js +0 -334
- package/dependencies/src/axios-0.19.0/package.json +0 -85
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/base.js +0 -374
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/mont.js +0 -178
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/curves.js +0 -206
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/key.js +0 -118
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/signature.js +0 -134
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/index.js +0 -118
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/signature.js +0 -65
- package/dependencies/src/elliptic-6.5.1/lib/elliptic/utils.js +0 -120
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/edwards.js +0 -432
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/index.js +0 -8
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/short.js +0 -937
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/ec/index.js +0 -241
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/eddsa/key.js +0 -95
- package/dependencies/src/elliptic-6.5.3/lib/elliptic/precomputed/secp256k1.js +0 -780
- package/dependencies/src/elliptic-6.5.3/lib/elliptic.js +0 -13
- package/dependencies/src/elliptic-6.5.3/package.json +0 -55
- package/dependencies/src/follow-redirects-1.5.10/index.js +0 -322
- package/dependencies/src/is-buffer-2.0.3/index.js +0 -11
- /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/index.js +0 -0
- /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/cancel/isCancel.js +0 -0
- /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/deprecatedMethod.js +0 -0
- /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/normalizeHeaderName.js +0 -0
- /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/spread.js +0 -0
- /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/index.js +0 -0
- /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/eddsa/key.js +0 -0
- /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic.js +0 -0
- /package/dependencies/src/{follow-redirects-1.5.10 → follow-redirects-1.16.0}/http.js +0 -0
- /package/dependencies/src/{follow-redirects-1.5.10 → follow-redirects-1.16.0}/https.js +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
+
if (ar || !(i in from)) {
|
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
+
ar[i] = from[i];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
+
};
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.remoteDataGet = exports.isPublicHttpUrl = exports.REMOTE_DATA_MAX_REDIRECTS = exports.REMOTE_DATA_MAX_CONTENT_LENGTH = exports.REMOTE_DATA_TIMEOUT = void 0;
|
|
52
|
+
var index_1 = __importDefault(require("../../dependencies/src/axios-0.33.0/index"));
|
|
53
|
+
/**
|
|
54
|
+
* Remote data URIs can originate from untrusted, attacker-controlled sources, e.g. the `token_info`
|
|
55
|
+
* big map of an arbitrary Tezos FA2 contract. Fetching them unguarded turns the wallet into an SSRF
|
|
56
|
+
* proxy against whatever the host can reach (cloud metadata endpoints, a local node's RPC, ...).
|
|
57
|
+
*
|
|
58
|
+
* Every remote data fetch therefore goes through `remoteDataGet`, which rejects non-public targets
|
|
59
|
+
* and bounds the request.
|
|
60
|
+
*
|
|
61
|
+
* Known limitation: only *literal* addresses are checked, so a hostname that resolves to a private
|
|
62
|
+
* address (DNS rebinding) is not caught. Closing that requires a custom `lookup` passed down to
|
|
63
|
+
* `http.request`.
|
|
64
|
+
*/
|
|
65
|
+
var ALLOWED_PROTOCOLS = ['http:', 'https:'];
|
|
66
|
+
exports.REMOTE_DATA_TIMEOUT = 30000;
|
|
67
|
+
exports.REMOTE_DATA_MAX_CONTENT_LENGTH = 10 * 1024 * 1024;
|
|
68
|
+
exports.REMOTE_DATA_MAX_REDIRECTS = 3;
|
|
69
|
+
function parseUrl(uri) {
|
|
70
|
+
try {
|
|
71
|
+
return new URL(uri);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function parseIPv4(hostname) {
|
|
78
|
+
var parts = hostname.split('.');
|
|
79
|
+
if (parts.length !== 4) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
var bytes = [];
|
|
83
|
+
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
84
|
+
var part = parts_1[_i];
|
|
85
|
+
if (!/^[0-9]{1,3}$/.test(part)) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
var byte = parseInt(part, 10);
|
|
89
|
+
if (byte > 255) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
bytes.push(byte);
|
|
93
|
+
}
|
|
94
|
+
return bytes;
|
|
95
|
+
}
|
|
96
|
+
function parseIPv6(hostname) {
|
|
97
|
+
var _a = hostname.split('::'), head = _a[0], tail = _a[1], rest = _a.slice(2);
|
|
98
|
+
if (rest.length > 0) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
var parseGroups = function (value) {
|
|
102
|
+
if (value === '') {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
var groups = value.split(':');
|
|
106
|
+
var bytes = [];
|
|
107
|
+
for (var i = 0; i < groups.length; i++) {
|
|
108
|
+
// an IPv4 address may only appear as the very last piece, e.g. ::ffff:127.0.0.1
|
|
109
|
+
if (i === groups.length - 1 && groups[i].includes('.')) {
|
|
110
|
+
var ipv4 = parseIPv4(groups[i]);
|
|
111
|
+
if (ipv4 === undefined) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
bytes.push.apply(bytes, ipv4);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (!/^[0-9a-fA-F]{1,4}$/.test(groups[i])) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
var group = parseInt(groups[i], 16);
|
|
121
|
+
bytes.push(group >>> 8, group & 0xff);
|
|
122
|
+
}
|
|
123
|
+
return bytes;
|
|
124
|
+
};
|
|
125
|
+
var headBytes = parseGroups(head);
|
|
126
|
+
// `tail === undefined` means the address was not compressed and must be complete
|
|
127
|
+
var tailBytes = tail === undefined ? [] : parseGroups(tail);
|
|
128
|
+
if (headBytes === undefined || tailBytes === undefined) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
var missing = 16 - headBytes.length - tailBytes.length;
|
|
132
|
+
if (tail === undefined ? missing !== 0 : missing < 0) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return __spreadArray(__spreadArray(__spreadArray([], headBytes, true), new Array(missing).fill(0), true), tailBytes, true);
|
|
136
|
+
}
|
|
137
|
+
function isBlockedIPv4(bytes) {
|
|
138
|
+
var a = bytes[0], b = bytes[1];
|
|
139
|
+
return (a === 0 || // 0.0.0.0/8, "this network"
|
|
140
|
+
a === 10 || // private
|
|
141
|
+
a === 127 || // loopback
|
|
142
|
+
(a === 100 && b >= 64 && b <= 127) || // 100.64.0.0/10, carrier-grade NAT
|
|
143
|
+
(a === 169 && b === 254) || // link-local, incl. cloud metadata endpoints
|
|
144
|
+
(a === 172 && b >= 16 && b <= 31) || // private
|
|
145
|
+
(a === 192 && b === 0) || // 192.0.0.0/24, IETF protocol assignments
|
|
146
|
+
(a === 192 && b === 168) || // private
|
|
147
|
+
(a === 198 && (b === 18 || b === 19)) || // 198.18.0.0/15, benchmarking
|
|
148
|
+
a >= 224 // multicast and reserved, incl. 255.255.255.255
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
function isBlockedIPv6(bytes) {
|
|
152
|
+
var isPrefix = function () {
|
|
153
|
+
var prefix = [];
|
|
154
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
155
|
+
prefix[_i] = arguments[_i];
|
|
156
|
+
}
|
|
157
|
+
return prefix.every(function (byte, index) { return bytes[index] === byte; });
|
|
158
|
+
};
|
|
159
|
+
// IPv4-mapped (::ffff:0:0/96) and IPv4-translated/NAT64 (64:ff9b::/96) addresses embed an IPv4
|
|
160
|
+
// address in the last four bytes and are routed as such, so they must be judged as IPv4.
|
|
161
|
+
// Node normalizes ::ffff:127.0.0.1 to the hex form ::ffff:7f00:1, hence the check on bytes.
|
|
162
|
+
if (isPrefix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff) || isPrefix(0, 0x64, 0xff, 0x9b, 0, 0, 0, 0, 0, 0, 0, 0)) {
|
|
163
|
+
return isBlockedIPv4(bytes.slice(12));
|
|
164
|
+
}
|
|
165
|
+
return (bytes.every(function (byte) { return byte === 0; }) || // :: unspecified
|
|
166
|
+
isPrefix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1) || // ::1 loopback
|
|
167
|
+
(bytes[0] & 0xfe) === 0xfc || // fc00::/7 unique local
|
|
168
|
+
(bytes[0] === 0xfe && (bytes[1] & 0xc0) === 0x80) || // fe80::/10 link-local
|
|
169
|
+
bytes[0] === 0xff // ff00::/8 multicast
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Whether `uri` is an `http(s)` URL that does not obviously point back at the host or its private
|
|
174
|
+
* network. Anything unparseable, non-`http(s)`, credential-bearing or address-literal-private is
|
|
175
|
+
* rejected.
|
|
176
|
+
*/
|
|
177
|
+
function isPublicHttpUrl(uri) {
|
|
178
|
+
var url = parseUrl(uri);
|
|
179
|
+
if (url === undefined) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
if (!ALLOWED_PROTOCOLS.includes(url.protocol)) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
// credentials in an untrusted URL are only ever a way to make us leak them
|
|
186
|
+
if (url.username !== '' || url.password !== '') {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
// `new URL` keeps IPv6 hosts bracketed and may keep a fully qualified name's trailing dot
|
|
190
|
+
var hostname = url.hostname
|
|
191
|
+
.replace(/^\[|\]$/g, '')
|
|
192
|
+
.replace(/\.$/, '')
|
|
193
|
+
.toLowerCase();
|
|
194
|
+
if (hostname === '') {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
if (hostname === 'localhost' || hostname.endsWith('.localhost')) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
// `new URL` already normalizes the integer, octal and hex spellings of an IPv4 host
|
|
201
|
+
var ipv4 = parseIPv4(hostname);
|
|
202
|
+
if (ipv4 !== undefined) {
|
|
203
|
+
return !isBlockedIPv4(ipv4);
|
|
204
|
+
}
|
|
205
|
+
var ipv6 = parseIPv6(hostname);
|
|
206
|
+
if (ipv6 !== undefined) {
|
|
207
|
+
return !isBlockedIPv6(ipv6);
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
exports.isPublicHttpUrl = isPublicHttpUrl;
|
|
212
|
+
/**
|
|
213
|
+
* The single entry point through which remote data is fetched. Validates the target, bounds the
|
|
214
|
+
* request, and re-validates every redirect hop, since a one-off check on the initial URL is
|
|
215
|
+
* trivially defeated by a redirect.
|
|
216
|
+
*/
|
|
217
|
+
function remoteDataGet(uri, responseType) {
|
|
218
|
+
if (responseType === void 0) { responseType = 'json'; }
|
|
219
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
220
|
+
return __generator(this, function (_a) {
|
|
221
|
+
if (!isPublicHttpUrl(uri)) {
|
|
222
|
+
throw new Error("Refusing to fetch remote data from a non-public URL: ".concat(uri));
|
|
223
|
+
}
|
|
224
|
+
return [2 /*return*/, index_1.default.get(uri, {
|
|
225
|
+
responseType: responseType,
|
|
226
|
+
timeout: exports.REMOTE_DATA_TIMEOUT,
|
|
227
|
+
maxContentLength: exports.REMOTE_DATA_MAX_CONTENT_LENGTH,
|
|
228
|
+
maxRedirects: exports.REMOTE_DATA_MAX_REDIRECTS,
|
|
229
|
+
beforeRedirect: function (options) {
|
|
230
|
+
var href = options.href;
|
|
231
|
+
if (typeof href !== 'string' || !isPublicHttpUrl(href)) {
|
|
232
|
+
throw new Error("Refusing to follow a remote data redirect to a non-public URL: ".concat(String(href)));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
})];
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
exports.remoteDataGet = remoteDataGet;
|
|
240
|
+
//# sourceMappingURL=remoteDataRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remoteDataRequest.js","sourceRoot":"","sources":["../../../src/utils/remote-data/remoteDataRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
export interface AxiosTransformer {
|
|
2
|
-
(data: any, headers?: any): any;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export interface AxiosAdapter {
|
|
6
|
-
(config: AxiosRequestConfig): AxiosPromise<any>;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface AxiosBasicCredentials {
|
|
10
|
-
username: string;
|
|
11
|
-
password: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface AxiosProxyConfig {
|
|
15
|
-
host: string;
|
|
16
|
-
port: number;
|
|
17
|
-
auth?: {
|
|
18
|
-
username: string;
|
|
19
|
-
password:string;
|
|
20
|
-
};
|
|
21
|
-
protocol?: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type Method =
|
|
25
|
-
| 'get' | 'GET'
|
|
26
|
-
| 'delete' | 'DELETE'
|
|
27
|
-
| 'head' | 'HEAD'
|
|
28
|
-
| 'options' | 'OPTIONS'
|
|
29
|
-
| 'post' | 'POST'
|
|
30
|
-
| 'put' | 'PUT'
|
|
31
|
-
| 'patch' | 'PATCH'
|
|
32
|
-
|
|
33
|
-
export type ResponseType =
|
|
34
|
-
| 'arraybuffer'
|
|
35
|
-
| 'blob'
|
|
36
|
-
| 'document'
|
|
37
|
-
| 'json'
|
|
38
|
-
| 'text'
|
|
39
|
-
| 'stream'
|
|
40
|
-
|
|
41
|
-
export interface AxiosRequestConfig {
|
|
42
|
-
url?: string;
|
|
43
|
-
method?: Method;
|
|
44
|
-
baseURL?: string;
|
|
45
|
-
transformRequest?: AxiosTransformer | AxiosTransformer[];
|
|
46
|
-
transformResponse?: AxiosTransformer | AxiosTransformer[];
|
|
47
|
-
headers?: any;
|
|
48
|
-
params?: any;
|
|
49
|
-
paramsSerializer?: (params: any) => string;
|
|
50
|
-
data?: any;
|
|
51
|
-
timeout?: number;
|
|
52
|
-
withCredentials?: boolean;
|
|
53
|
-
adapter?: AxiosAdapter;
|
|
54
|
-
auth?: AxiosBasicCredentials;
|
|
55
|
-
responseType?: ResponseType;
|
|
56
|
-
xsrfCookieName?: string;
|
|
57
|
-
xsrfHeaderName?: string;
|
|
58
|
-
onUploadProgress?: (progressEvent: any) => void;
|
|
59
|
-
onDownloadProgress?: (progressEvent: any) => void;
|
|
60
|
-
maxContentLength?: number;
|
|
61
|
-
validateStatus?: (status: number) => boolean;
|
|
62
|
-
maxRedirects?: number;
|
|
63
|
-
socketPath?: string | null;
|
|
64
|
-
httpAgent?: any;
|
|
65
|
-
httpsAgent?: any;
|
|
66
|
-
proxy?: AxiosProxyConfig | false;
|
|
67
|
-
cancelToken?: CancelToken;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface AxiosResponse<T = any> {
|
|
71
|
-
data: T;
|
|
72
|
-
status: number;
|
|
73
|
-
statusText: string;
|
|
74
|
-
headers: any;
|
|
75
|
-
config: AxiosRequestConfig;
|
|
76
|
-
request?: any;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface AxiosError<T = any> extends Error {
|
|
80
|
-
config: AxiosRequestConfig;
|
|
81
|
-
code?: string;
|
|
82
|
-
request?: any;
|
|
83
|
-
response?: AxiosResponse<T>;
|
|
84
|
-
isAxiosError: boolean;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export interface AxiosPromise<T = any> extends Promise<AxiosResponse<T>> {
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface CancelStatic {
|
|
91
|
-
new (message?: string): Cancel;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export interface Cancel {
|
|
95
|
-
message: string;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export interface Canceler {
|
|
99
|
-
(message?: string): void;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export interface CancelTokenStatic {
|
|
103
|
-
new (executor: (cancel: Canceler) => void): CancelToken;
|
|
104
|
-
source(): CancelTokenSource;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface CancelToken {
|
|
108
|
-
promise: Promise<Cancel>;
|
|
109
|
-
reason?: Cancel;
|
|
110
|
-
throwIfRequested(): void;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export interface CancelTokenSource {
|
|
114
|
-
token: CancelToken;
|
|
115
|
-
cancel: Canceler;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export interface AxiosInterceptorManager<V> {
|
|
119
|
-
use(onFulfilled?: (value: V) => V | Promise<V>, onRejected?: (error: any) => any): number;
|
|
120
|
-
eject(id: number): void;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export interface AxiosInstance {
|
|
124
|
-
(config: AxiosRequestConfig): AxiosPromise;
|
|
125
|
-
(url: string, config?: AxiosRequestConfig): AxiosPromise;
|
|
126
|
-
defaults: AxiosRequestConfig;
|
|
127
|
-
interceptors: {
|
|
128
|
-
request: AxiosInterceptorManager<AxiosRequestConfig>;
|
|
129
|
-
response: AxiosInterceptorManager<AxiosResponse>;
|
|
130
|
-
};
|
|
131
|
-
getUri(config?: AxiosRequestConfig): string;
|
|
132
|
-
request<T = any, R = AxiosResponse<T>> (config: AxiosRequestConfig): Promise<R>;
|
|
133
|
-
get<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;
|
|
134
|
-
delete<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;
|
|
135
|
-
head<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;
|
|
136
|
-
post<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
137
|
-
put<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
138
|
-
patch<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export interface AxiosStatic extends AxiosInstance {
|
|
142
|
-
create(config?: AxiosRequestConfig): AxiosInstance;
|
|
143
|
-
Cancel: CancelStatic;
|
|
144
|
-
CancelToken: CancelTokenStatic;
|
|
145
|
-
isCancel(value: any): boolean;
|
|
146
|
-
all<T>(values: (T | Promise<T>)[]): Promise<T[]>;
|
|
147
|
-
spread<T, R>(callback: (...args: T[]) => R): (array: T[]) => R;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
declare const Axios: AxiosStatic;
|
|
151
|
-
|
|
152
|
-
export default Axios;
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utils = require('./../utils');
|
|
4
|
-
var settle = require('./../core/settle');
|
|
5
|
-
var buildURL = require('./../helpers/buildURL');
|
|
6
|
-
var http = require('http');
|
|
7
|
-
var https = require('https');
|
|
8
|
-
var httpFollow = require('../../../follow-redirects-1.5.10/index').http;
|
|
9
|
-
var httpsFollow = require('../../../follow-redirects-1.5.10/index').https;
|
|
10
|
-
var url = require('url');
|
|
11
|
-
var zlib = require('zlib');
|
|
12
|
-
var pkg = require('./../../package.json');
|
|
13
|
-
var createError = require('../core/createError');
|
|
14
|
-
var enhanceError = require('../core/enhanceError');
|
|
15
|
-
|
|
16
|
-
var isHttps = /https:?/;
|
|
17
|
-
|
|
18
|
-
/*eslint consistent-return:0*/
|
|
19
|
-
module.exports = function httpAdapter(config) {
|
|
20
|
-
return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {
|
|
21
|
-
var timer;
|
|
22
|
-
var resolve = function resolve(value) {
|
|
23
|
-
clearTimeout(timer);
|
|
24
|
-
resolvePromise(value);
|
|
25
|
-
};
|
|
26
|
-
var reject = function reject(value) {
|
|
27
|
-
clearTimeout(timer);
|
|
28
|
-
rejectPromise(value);
|
|
29
|
-
};
|
|
30
|
-
var data = config.data;
|
|
31
|
-
var headers = config.headers;
|
|
32
|
-
|
|
33
|
-
// Set User-Agent (required by some servers)
|
|
34
|
-
// Only set header if it hasn't been set in config
|
|
35
|
-
// See https://github.com/axios/axios/issues/69
|
|
36
|
-
if (!headers['User-Agent'] && !headers['user-agent']) {
|
|
37
|
-
headers['User-Agent'] = 'axios/' + pkg.version;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (data && !utils.isStream(data)) {
|
|
41
|
-
if (Buffer.isBuffer(data)) {
|
|
42
|
-
// Nothing to do...
|
|
43
|
-
} else if (utils.isArrayBuffer(data)) {
|
|
44
|
-
data = Buffer.from(new Uint8Array(data));
|
|
45
|
-
} else if (utils.isString(data)) {
|
|
46
|
-
data = Buffer.from(data, 'utf-8');
|
|
47
|
-
} else {
|
|
48
|
-
return reject(createError(
|
|
49
|
-
'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
|
|
50
|
-
config
|
|
51
|
-
));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Add Content-Length header if data exists
|
|
55
|
-
headers['Content-Length'] = data.length;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// HTTP basic authentication
|
|
59
|
-
var auth = undefined;
|
|
60
|
-
if (config.auth) {
|
|
61
|
-
var username = config.auth.username || '';
|
|
62
|
-
var password = config.auth.password || '';
|
|
63
|
-
auth = username + ':' + password;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Parse url
|
|
67
|
-
var parsed = url.parse(config.url);
|
|
68
|
-
var protocol = parsed.protocol || 'http:';
|
|
69
|
-
|
|
70
|
-
if (!auth && parsed.auth) {
|
|
71
|
-
var urlAuth = parsed.auth.split(':');
|
|
72
|
-
var urlUsername = urlAuth[0] || '';
|
|
73
|
-
var urlPassword = urlAuth[1] || '';
|
|
74
|
-
auth = urlUsername + ':' + urlPassword;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (auth) {
|
|
78
|
-
delete headers.Authorization;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
var isHttpsRequest = isHttps.test(protocol);
|
|
82
|
-
var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
|
|
83
|
-
|
|
84
|
-
var options = {
|
|
85
|
-
path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''),
|
|
86
|
-
method: config.method.toUpperCase(),
|
|
87
|
-
headers: headers,
|
|
88
|
-
agent: agent,
|
|
89
|
-
auth: auth
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
if (config.socketPath) {
|
|
93
|
-
options.socketPath = config.socketPath;
|
|
94
|
-
} else {
|
|
95
|
-
options.hostname = parsed.hostname;
|
|
96
|
-
options.port = parsed.port;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
var proxy = config.proxy;
|
|
100
|
-
if (!proxy && proxy !== false) {
|
|
101
|
-
var proxyEnv = protocol.slice(0, -1) + '_proxy';
|
|
102
|
-
var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];
|
|
103
|
-
if (proxyUrl) {
|
|
104
|
-
var parsedProxyUrl = url.parse(proxyUrl);
|
|
105
|
-
var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;
|
|
106
|
-
var shouldProxy = true;
|
|
107
|
-
|
|
108
|
-
if (noProxyEnv) {
|
|
109
|
-
var noProxy = noProxyEnv.split(',').map(function trim(s) {
|
|
110
|
-
return s.trim();
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {
|
|
114
|
-
if (!proxyElement) {
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
if (proxyElement === '*') {
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
if (proxyElement[0] === '.' &&
|
|
121
|
-
parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement &&
|
|
122
|
-
proxyElement.match(/\./g).length === parsed.hostname.match(/\./g).length) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return parsed.hostname === proxyElement;
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (shouldProxy) {
|
|
132
|
-
proxy = {
|
|
133
|
-
host: parsedProxyUrl.hostname,
|
|
134
|
-
port: parsedProxyUrl.port
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
if (parsedProxyUrl.auth) {
|
|
138
|
-
var proxyUrlAuth = parsedProxyUrl.auth.split(':');
|
|
139
|
-
proxy.auth = {
|
|
140
|
-
username: proxyUrlAuth[0],
|
|
141
|
-
password: proxyUrlAuth[1]
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (proxy) {
|
|
149
|
-
options.hostname = proxy.host;
|
|
150
|
-
options.host = proxy.host;
|
|
151
|
-
options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');
|
|
152
|
-
options.port = proxy.port;
|
|
153
|
-
options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path;
|
|
154
|
-
|
|
155
|
-
// Basic proxy authorization
|
|
156
|
-
if (proxy.auth) {
|
|
157
|
-
var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');
|
|
158
|
-
options.headers['Proxy-Authorization'] = 'Basic ' + base64;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
var transport;
|
|
163
|
-
var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);
|
|
164
|
-
if (config.transport) {
|
|
165
|
-
transport = config.transport;
|
|
166
|
-
} else if (config.maxRedirects === 0) {
|
|
167
|
-
transport = isHttpsProxy ? https : http;
|
|
168
|
-
} else {
|
|
169
|
-
if (config.maxRedirects) {
|
|
170
|
-
options.maxRedirects = config.maxRedirects;
|
|
171
|
-
}
|
|
172
|
-
transport = isHttpsProxy ? httpsFollow : httpFollow;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (config.maxContentLength && config.maxContentLength > -1) {
|
|
176
|
-
options.maxBodyLength = config.maxContentLength;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Create the request
|
|
180
|
-
var req = transport.request(options, function handleResponse(res) {
|
|
181
|
-
if (req.aborted) return;
|
|
182
|
-
|
|
183
|
-
// uncompress the response body transparently if required
|
|
184
|
-
var stream = res;
|
|
185
|
-
switch (res.headers['content-encoding']) {
|
|
186
|
-
/*eslint default-case:0*/
|
|
187
|
-
case 'gzip':
|
|
188
|
-
case 'compress':
|
|
189
|
-
case 'deflate':
|
|
190
|
-
// add the unzipper to the body stream processing pipeline
|
|
191
|
-
stream = (res.statusCode === 204) ? stream : stream.pipe(zlib.createUnzip());
|
|
192
|
-
|
|
193
|
-
// remove the content-encoding in order to not confuse downstream operations
|
|
194
|
-
delete res.headers['content-encoding'];
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// return the last request in case of redirects
|
|
199
|
-
var lastRequest = res.req || req;
|
|
200
|
-
|
|
201
|
-
var response = {
|
|
202
|
-
status: res.statusCode,
|
|
203
|
-
statusText: res.statusMessage,
|
|
204
|
-
headers: res.headers,
|
|
205
|
-
config: config,
|
|
206
|
-
request: lastRequest
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
if (config.responseType === 'stream') {
|
|
210
|
-
response.data = stream;
|
|
211
|
-
settle(resolve, reject, response);
|
|
212
|
-
} else {
|
|
213
|
-
var responseBuffer = [];
|
|
214
|
-
stream.on('data', function handleStreamData(chunk) {
|
|
215
|
-
responseBuffer.push(chunk);
|
|
216
|
-
|
|
217
|
-
// make sure the content length is not over the maxContentLength if specified
|
|
218
|
-
if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) {
|
|
219
|
-
stream.destroy();
|
|
220
|
-
reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',
|
|
221
|
-
config, null, lastRequest));
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
stream.on('error', function handleStreamError(err) {
|
|
226
|
-
if (req.aborted) return;
|
|
227
|
-
reject(enhanceError(err, config, null, lastRequest));
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
stream.on('end', function handleStreamEnd() {
|
|
231
|
-
var responseData = Buffer.concat(responseBuffer);
|
|
232
|
-
if (config.responseType !== 'arraybuffer') {
|
|
233
|
-
responseData = responseData.toString(config.responseEncoding);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
response.data = responseData;
|
|
237
|
-
settle(resolve, reject, response);
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
// Handle errors
|
|
243
|
-
req.on('error', function handleRequestError(err) {
|
|
244
|
-
if (req.aborted) return;
|
|
245
|
-
reject(enhanceError(err, config, null, req));
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
// Handle request timeout
|
|
249
|
-
if (config.timeout) {
|
|
250
|
-
timer = setTimeout(function handleRequestTimeout() {
|
|
251
|
-
req.abort();
|
|
252
|
-
reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req));
|
|
253
|
-
}, config.timeout);
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
if (config.cancelToken) {
|
|
257
|
-
// Handle cancellation
|
|
258
|
-
config.cancelToken.promise.then(function onCanceled(cancel) {
|
|
259
|
-
if (req.aborted) return;
|
|
260
|
-
|
|
261
|
-
req.abort();
|
|
262
|
-
reject(cancel);
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// Send the request
|
|
267
|
-
if (utils.isStream(data)) {
|
|
268
|
-
data.on('error', function handleStreamError(err) {
|
|
269
|
-
reject(enhanceError(err, config, null, req));
|
|
270
|
-
}).pipe(req);
|
|
271
|
-
} else {
|
|
272
|
-
req.end(data);
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
};
|