rekwest 4.2.1 → 4.2.3
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/dist/defaults.js +3 -1
- package/dist/postflight.js +8 -6
- package/package.json +2 -2
- package/src/defaults.mjs +46 -44
- package/src/postflight.mjs +12 -9
package/dist/defaults.js
CHANGED
|
@@ -15,6 +15,7 @@ const stash = {
|
|
|
15
15
|
credentials: _constants.requestCredentials.sameOrigin,
|
|
16
16
|
digest: true,
|
|
17
17
|
follow: 20,
|
|
18
|
+
h2: false,
|
|
18
19
|
get maxRetryAfter() {
|
|
19
20
|
return this[_utils.maxRetryAfter] ?? this.timeout;
|
|
20
21
|
},
|
|
@@ -33,7 +34,8 @@ const stash = {
|
|
|
33
34
|
statusCodes: [HTTP_STATUS_TOO_MANY_REQUESTS, HTTP_STATUS_SERVICE_UNAVAILABLE]
|
|
34
35
|
},
|
|
35
36
|
thenable: false,
|
|
36
|
-
timeout: 3e5
|
|
37
|
+
timeout: 3e5,
|
|
38
|
+
trimTrailingSlashes: false
|
|
37
39
|
};
|
|
38
40
|
var _default = {
|
|
39
41
|
stash
|
package/dist/postflight.js
CHANGED
|
@@ -71,11 +71,14 @@ const postflight = (req, res, options, {
|
|
|
71
71
|
if (!/^https?:/i.test(location.protocol)) {
|
|
72
72
|
return res.emit('error', new _errors.RequestError('URL scheme must be "http" or "https".'));
|
|
73
73
|
}
|
|
74
|
-
if (!(0, _utils.sameOrigin)(location, url)
|
|
75
|
-
Reflect.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
if (!(0, _utils.sameOrigin)(location, url)) {
|
|
75
|
+
Reflect.set(options, 'h2', false);
|
|
76
|
+
if ([_constants.requestCredentials.omit, _constants.requestCredentials.sameOrigin].includes(credentials)) {
|
|
77
|
+
Object.keys(options.headers).filter(it => new RegExp(HTTP2_HEADER_AUTHORIZATION, 'i').test(it)).forEach(it => Reflect.deleteProperty(options.headers, it));
|
|
78
|
+
location.password = location.username = '';
|
|
79
|
+
if (credentials === _constants.requestCredentials.omit) {
|
|
80
|
+
options.cookies = false;
|
|
81
|
+
}
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
options.url = location;
|
|
@@ -88,7 +91,6 @@ const postflight = (req, res, options, {
|
|
|
88
91
|
options.body = null;
|
|
89
92
|
options.method = HTTP2_METHOD_GET;
|
|
90
93
|
}
|
|
91
|
-
Reflect.set(options, 'h2', false);
|
|
92
94
|
Reflect.set(options, 'redirected', true);
|
|
93
95
|
if (statusCode === HTTP_STATUS_MOVED_PERMANENTLY && res.headers[HTTP2_HEADER_RETRY_AFTER]) {
|
|
94
96
|
let interval = res.headers[HTTP2_HEADER_RETRY_AFTER];
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@babel/eslint-parser": "^7.19.1",
|
|
14
14
|
"@babel/preset-env": "^7.20.2",
|
|
15
15
|
"c8": "^7.12.0",
|
|
16
|
-
"eslint": "^8.
|
|
16
|
+
"eslint": "^8.29.0",
|
|
17
17
|
"eslint-config-ultra-refined": "^2.10.0",
|
|
18
18
|
"mocha": "^10.1.0"
|
|
19
19
|
},
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"test:bail": "mocha --bail",
|
|
68
68
|
"test:cover": "c8 --include=src --reporter=lcov --reporter=text npm test"
|
|
69
69
|
},
|
|
70
|
-
"version": "4.2.
|
|
70
|
+
"version": "4.2.3"
|
|
71
71
|
}
|
package/src/defaults.mjs
CHANGED
|
@@ -1,44 +1,46 @@
|
|
|
1
|
-
import http2 from 'node:http2';
|
|
2
|
-
import {
|
|
3
|
-
requestCredentials,
|
|
4
|
-
requestRedirect,
|
|
5
|
-
} from './constants.mjs';
|
|
6
|
-
import { maxRetryAfter } from './utils.mjs';
|
|
7
|
-
|
|
8
|
-
const {
|
|
9
|
-
HTTP2_METHOD_GET,
|
|
10
|
-
HTTP_STATUS_SERVICE_UNAVAILABLE,
|
|
11
|
-
HTTP_STATUS_TOO_MANY_REQUESTS,
|
|
12
|
-
} = http2.constants;
|
|
13
|
-
|
|
14
|
-
const stash = {
|
|
15
|
-
credentials: requestCredentials.sameOrigin,
|
|
16
|
-
digest: true,
|
|
17
|
-
follow: 20,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
import http2 from 'node:http2';
|
|
2
|
+
import {
|
|
3
|
+
requestCredentials,
|
|
4
|
+
requestRedirect,
|
|
5
|
+
} from './constants.mjs';
|
|
6
|
+
import { maxRetryAfter } from './utils.mjs';
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
HTTP2_METHOD_GET,
|
|
10
|
+
HTTP_STATUS_SERVICE_UNAVAILABLE,
|
|
11
|
+
HTTP_STATUS_TOO_MANY_REQUESTS,
|
|
12
|
+
} = http2.constants;
|
|
13
|
+
|
|
14
|
+
const stash = {
|
|
15
|
+
credentials: requestCredentials.sameOrigin,
|
|
16
|
+
digest: true,
|
|
17
|
+
follow: 20,
|
|
18
|
+
h2: false,
|
|
19
|
+
get maxRetryAfter() {
|
|
20
|
+
return this[maxRetryAfter] ?? this.timeout;
|
|
21
|
+
},
|
|
22
|
+
set maxRetryAfter(value) {
|
|
23
|
+
this[maxRetryAfter] = value;
|
|
24
|
+
},
|
|
25
|
+
method: HTTP2_METHOD_GET,
|
|
26
|
+
parse: true,
|
|
27
|
+
redirect: requestRedirect.follow,
|
|
28
|
+
redirected: false,
|
|
29
|
+
retry: {
|
|
30
|
+
attempts: 0,
|
|
31
|
+
backoffStrategy: 'interval * Math.log(Math.random() * (Math.E * Math.E - Math.E) + Math.E)',
|
|
32
|
+
interval: 1e3,
|
|
33
|
+
retryAfter: true,
|
|
34
|
+
statusCodes: [
|
|
35
|
+
HTTP_STATUS_TOO_MANY_REQUESTS,
|
|
36
|
+
HTTP_STATUS_SERVICE_UNAVAILABLE,
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
thenable: false,
|
|
40
|
+
timeout: 3e5,
|
|
41
|
+
trimTrailingSlashes: false,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default {
|
|
45
|
+
stash,
|
|
46
|
+
};
|
package/src/postflight.mjs
CHANGED
|
@@ -77,14 +77,18 @@ export const postflight = (req, res, options, { reject, resolve }) => {
|
|
|
77
77
|
return res.emit('error', new RequestError('URL scheme must be "http" or "https".'));
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
if (!sameOrigin(location, url)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
if (!sameOrigin(location, url)) {
|
|
81
|
+
Reflect.set(options, 'h2', false);
|
|
82
|
+
if ([
|
|
83
|
+
requestCredentials.omit,
|
|
84
|
+
requestCredentials.sameOrigin,
|
|
85
|
+
].includes(credentials)) {
|
|
86
|
+
Object.keys(options.headers).filter((it) => new RegExp(HTTP2_HEADER_AUTHORIZATION, 'i').test(it))
|
|
87
|
+
.forEach((it) => Reflect.deleteProperty(options.headers, it));
|
|
88
|
+
location.password = location.username = '';
|
|
89
|
+
if (credentials === requestCredentials.omit) {
|
|
90
|
+
options.cookies = false;
|
|
91
|
+
}
|
|
88
92
|
}
|
|
89
93
|
}
|
|
90
94
|
|
|
@@ -109,7 +113,6 @@ export const postflight = (req, res, options, { reject, resolve }) => {
|
|
|
109
113
|
options.method = HTTP2_METHOD_GET;
|
|
110
114
|
}
|
|
111
115
|
|
|
112
|
-
Reflect.set(options, 'h2', false);
|
|
113
116
|
Reflect.set(options, 'redirected', true);
|
|
114
117
|
|
|
115
118
|
if (statusCode === HTTP_STATUS_MOVED_PERMANENTLY && res.headers[HTTP2_HEADER_RETRY_AFTER]) {
|