@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.
Files changed (124) hide show
  1. package/dependencies/src/axios-0.33.0/index.d.ts +345 -0
  2. package/dependencies/src/axios-0.33.0/lib/adapters/http.js +771 -0
  3. package/dependencies/src/axios-0.33.0/lib/adapters/xhr.js +305 -0
  4. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/axios.js +22 -7
  5. package/dependencies/src/axios-0.33.0/lib/cancel/CancelToken.js +118 -0
  6. package/dependencies/src/axios-0.33.0/lib/cancel/CanceledError.js +24 -0
  7. package/dependencies/src/axios-0.33.0/lib/core/Axios.js +178 -0
  8. package/dependencies/src/axios-0.33.0/lib/core/AxiosError.js +173 -0
  9. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/InterceptorManager.js +13 -2
  10. package/dependencies/src/axios-0.33.0/lib/core/buildFullPath.js +23 -0
  11. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/dispatchRequest.js +34 -16
  12. package/dependencies/src/axios-0.33.0/lib/core/mergeConfig.js +117 -0
  13. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/settle.js +4 -4
  14. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/transformData.js +5 -2
  15. package/dependencies/src/axios-0.33.0/lib/defaults/index.js +181 -0
  16. package/dependencies/src/axios-0.33.0/lib/defaults/transitional.js +7 -0
  17. package/dependencies/src/axios-0.33.0/lib/env/classes/FormData.js +2 -0
  18. package/dependencies/src/axios-0.33.0/lib/env/data.js +3 -0
  19. package/dependencies/src/axios-0.33.0/lib/helpers/AxiosURLSearchParams.js +50 -0
  20. package/dependencies/src/axios-0.33.0/lib/helpers/bind.js +7 -0
  21. package/dependencies/src/axios-0.33.0/lib/helpers/buildURL.js +63 -0
  22. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/combineURLs.js +1 -1
  23. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/cookies.js +15 -2
  24. package/dependencies/src/axios-0.33.0/lib/helpers/defaultRedactKeys.js +3 -0
  25. package/dependencies/src/axios-0.33.0/lib/helpers/estimateDataURLDecodedBytes.js +79 -0
  26. package/dependencies/src/axios-0.33.0/lib/helpers/formDataToJSON.js +91 -0
  27. package/dependencies/src/axios-0.33.0/lib/helpers/fromDataURI.js +51 -0
  28. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isAbsoluteURL.js +1 -1
  29. package/dependencies/src/axios-0.33.0/lib/helpers/isAxiosError.js +13 -0
  30. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isURLSameOrigin.js +12 -12
  31. package/dependencies/src/axios-0.33.0/lib/helpers/null.js +2 -0
  32. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/parseHeaders.js +2 -2
  33. package/dependencies/src/axios-0.33.0/lib/helpers/parseProtocol.js +6 -0
  34. package/dependencies/src/axios-0.33.0/lib/helpers/sanitizeHeaderValue.js +22 -0
  35. package/dependencies/src/axios-0.33.0/lib/helpers/shouldBypassProxy.js +187 -0
  36. package/dependencies/src/axios-0.33.0/lib/helpers/toFormData.js +212 -0
  37. package/dependencies/src/axios-0.33.0/lib/helpers/toURLEncodedForm.js +18 -0
  38. package/dependencies/src/axios-0.33.0/lib/helpers/validator.js +86 -0
  39. package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/FormData.js +3 -0
  40. package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/URLSearchParams.js +5 -0
  41. package/dependencies/src/axios-0.33.0/lib/platform/browser/index.js +11 -0
  42. package/dependencies/src/axios-0.33.0/lib/platform/index.js +3 -0
  43. package/dependencies/src/axios-0.33.0/lib/platform/node/classes/FormData.js +3 -0
  44. package/dependencies/src/axios-0.33.0/lib/platform/node/classes/URLSearchParams.js +5 -0
  45. package/dependencies/src/axios-0.33.0/lib/platform/node/index.js +11 -0
  46. package/dependencies/src/axios-0.33.0/lib/utils.js +565 -0
  47. package/dependencies/src/axios-0.33.0/package.json +100 -0
  48. package/dependencies/src/{bn.js-4.11.8 → bn.js-4.11.9}/lib/bn.js +7 -1
  49. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/base.js +36 -31
  50. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/edwards.js +13 -10
  51. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/mont.js +1 -1
  52. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/short.js +48 -47
  53. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curves.js +21 -21
  54. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/ec/index.js +53 -16
  55. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/key.js +8 -5
  56. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/signature.js +11 -1
  57. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/index.js +5 -2
  58. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/signature.js +3 -2
  59. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/precomputed/secp256k1.js +197 -197
  60. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/utils.js +12 -9
  61. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/package.json +20 -22
  62. package/dependencies/src/ethereumjs-util-5.2.0/index.js +1 -1
  63. package/dependencies/src/follow-redirects-1.16.0/debug.js +15 -0
  64. package/dependencies/src/follow-redirects-1.16.0/index.js +709 -0
  65. package/dependencies/src/follow-redirects-1.16.0/package.json +58 -0
  66. package/dependencies/src/proxy-from-env-1.1.0/index.js +108 -0
  67. package/dependencies/src/proxy-from-env-1.1.0/package.json +34 -0
  68. package/dependencies/src/secp256k1-3.7.1/lib/elliptic/index.js +2 -2
  69. package/dependencies/src/secp256k1-4.0.2/lib/elliptic.js +1 -1
  70. package/dependencies/src/tiny-secp256k1-1.1.3/js.js +2 -2
  71. package/errors/index.d.ts +2 -2
  72. package/errors/index.js.map +1 -1
  73. package/package.json +2 -2
  74. package/utils/remote-data/HttpRemoteData.js +3 -8
  75. package/utils/remote-data/HttpRemoteData.js.map +1 -1
  76. package/utils/remote-data/IpfsRemoteData.js +13 -7
  77. package/utils/remote-data/IpfsRemoteData.js.map +1 -1
  78. package/utils/remote-data/Sha256RemoteData.js +5 -6
  79. package/utils/remote-data/Sha256RemoteData.js.map +1 -1
  80. package/utils/remote-data/remoteDataRequest.d.ts +16 -0
  81. package/utils/remote-data/remoteDataRequest.js +240 -0
  82. package/utils/remote-data/remoteDataRequest.js.map +1 -0
  83. package/dependencies/src/axios-0.19.0/index.d.ts +0 -152
  84. package/dependencies/src/axios-0.19.0/lib/adapters/http.js +0 -275
  85. package/dependencies/src/axios-0.19.0/lib/adapters/xhr.js +0 -174
  86. package/dependencies/src/axios-0.19.0/lib/cancel/Cancel.js +0 -19
  87. package/dependencies/src/axios-0.19.0/lib/cancel/CancelToken.js +0 -57
  88. package/dependencies/src/axios-0.19.0/lib/core/Axios.js +0 -86
  89. package/dependencies/src/axios-0.19.0/lib/core/createError.js +0 -18
  90. package/dependencies/src/axios-0.19.0/lib/core/enhanceError.js +0 -42
  91. package/dependencies/src/axios-0.19.0/lib/core/mergeConfig.js +0 -51
  92. package/dependencies/src/axios-0.19.0/lib/defaults.js +0 -98
  93. package/dependencies/src/axios-0.19.0/lib/helpers/bind.js +0 -11
  94. package/dependencies/src/axios-0.19.0/lib/helpers/buildURL.js +0 -71
  95. package/dependencies/src/axios-0.19.0/lib/utils.js +0 -334
  96. package/dependencies/src/axios-0.19.0/package.json +0 -85
  97. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/base.js +0 -374
  98. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/mont.js +0 -178
  99. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curves.js +0 -206
  100. package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/key.js +0 -118
  101. package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/signature.js +0 -134
  102. package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/index.js +0 -118
  103. package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/signature.js +0 -65
  104. package/dependencies/src/elliptic-6.5.1/lib/elliptic/utils.js +0 -120
  105. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/edwards.js +0 -432
  106. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/index.js +0 -8
  107. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/short.js +0 -937
  108. package/dependencies/src/elliptic-6.5.3/lib/elliptic/ec/index.js +0 -241
  109. package/dependencies/src/elliptic-6.5.3/lib/elliptic/eddsa/key.js +0 -95
  110. package/dependencies/src/elliptic-6.5.3/lib/elliptic/precomputed/secp256k1.js +0 -780
  111. package/dependencies/src/elliptic-6.5.3/lib/elliptic.js +0 -13
  112. package/dependencies/src/elliptic-6.5.3/package.json +0 -55
  113. package/dependencies/src/follow-redirects-1.5.10/index.js +0 -322
  114. package/dependencies/src/is-buffer-2.0.3/index.js +0 -11
  115. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/index.js +0 -0
  116. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/cancel/isCancel.js +0 -0
  117. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/deprecatedMethod.js +0 -0
  118. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/normalizeHeaderName.js +0 -0
  119. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/spread.js +0 -0
  120. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/index.js +0 -0
  121. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/eddsa/key.js +0 -0
  122. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic.js +0 -0
  123. /package/dependencies/src/{follow-redirects-1.5.10 → follow-redirects-1.16.0}/http.js +0 -0
  124. /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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oFAA8F;AAE9F;;;;;;;;;;;GAWG;AAEH,IAAM,iBAAiB,GAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAE1C,QAAA,mBAAmB,GAAG,KAAK,CAAA;AAC3B,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACjD,QAAA,yBAAyB,GAAG,CAAC,CAAA;AAE1C,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI;QACF,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAA;KACjB;IAED,IAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAArB,IAAM,IAAI,cAAA;QACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAA;SACjB;QACD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC/B,IAAI,IAAI,GAAG,GAAG,EAAE;YACd,OAAO,SAAS,CAAA;SACjB;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjB;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IAC3B,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAA3C,IAAI,QAAA,EAAE,IAAI,QAAA,EAAK,IAAI,cAAwB,CAAA;IAClD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,OAAO,SAAS,CAAA;KACjB;IAED,IAAM,WAAW,GAAG,UAAC,KAAa;QAChC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,OAAO,EAAE,CAAA;SACV;QAED,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,gFAAgF;YAChF,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtD,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjC,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,OAAO,SAAS,CAAA;iBACjB;gBACD,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAI,EAAC;gBACnB,SAAQ;aACT;YAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,OAAO,SAAS,CAAA;aACjB;YACD,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACrC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;SACtC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,IAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IACnC,iFAAiF;IACjF,IAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;QACtD,OAAO,SAAS,CAAA;KACjB;IAED,IAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IACxD,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE;QACpD,OAAO,SAAS,CAAA;KACjB;IAED,qDAAW,SAAS,SAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAK,SAAS,QAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,KAAe;IAC7B,IAAA,CAAC,GAAO,KAAK,GAAZ,EAAE,CAAC,GAAI,KAAK,GAAT,CAAS;IAEpB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,4BAA4B;QACvC,CAAC,KAAK,EAAE,IAAI,UAAU;QACtB,CAAC,KAAK,GAAG,IAAI,WAAW;QACxB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,mCAAmC;QACzE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,6CAA6C;QACzE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU;QAC/C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,0CAA0C;QACpE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,UAAU;QACtC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,8BAA8B;QACvE,CAAC,IAAI,GAAG,CAAC,gDAAgD;KAC1D,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAe;IACpC,IAAM,QAAQ,GAAG;QAAC,gBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,2BAAmB;;QAAc,OAAA,MAAM,CAAC,KAAK,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAArB,CAAqB,CAAC;IAApD,CAAoD,CAAA;IAEvG,+FAA+F;IAC/F,yFAAyF;IACzF,4FAA4F;IAC5F,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;QAC/G,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;KACtC;IAED,OAAO,CACL,KAAK,CAAC,KAAK,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,CAAC,EAAV,CAAU,CAAC,IAAI,iBAAiB;QACtD,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe;QAC3E,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,wBAAwB;QACtD,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,uBAAuB;QAC5E,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,qBAAqB;KACxC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAM,GAAG,GAAoB,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1C,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAA;KACb;IAED,2EAA2E;IAC3E,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE;QAC9C,OAAO,KAAK,CAAA;KACb;IAED,0FAA0F;IAC1F,IAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;SAC1B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,WAAW,EAAE,CAAA;IAChB,IAAI,QAAQ,KAAK,EAAE,EAAE;QACnB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC/D,OAAO,KAAK,CAAA;KACb;IAED,oFAAoF;IACpF,IAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;KAC5B;IAED,IAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;KAC5B;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAxCD,0CAwCC;AAED;;;;GAIG;AACH,SAAsB,aAAa,CAAI,GAAW,EAAE,YAAmC;IAAnC,6BAAA,EAAA,qBAAmC;;;YACrF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,+DAAwD,GAAG,CAAE,CAAC,CAAA;aAC/E;YAED,sBAAO,eAAK,CAAC,GAAG,CAAsB,GAAG,EAAE;oBACzC,YAAY,cAAA;oBACZ,OAAO,EAAE,2BAAmB;oBAC5B,gBAAgB,EAAE,sCAA8B;oBAChD,YAAY,EAAE,iCAAyB;oBACvC,cAAc,EAAE,UAAC,OAA4B;wBAC3C,IAAM,IAAI,GAAY,OAAO,CAAC,IAAI,CAAA;wBAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;4BACtD,MAAM,IAAI,KAAK,CAAC,yEAAkE,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,CAAA;yBAClG;oBACH,CAAC;iBACF,CAAC,EAAA;;;CACH;AAjBD,sCAiBC"}
@@ -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
- };