urllib 4.1.0 → 4.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.
@@ -1,6 +1,6 @@
|
|
1
1
|
import { LookupFunction } from 'node:net';
|
2
2
|
import { Agent, Dispatcher, buildConnector } from 'undici';
|
3
|
-
export type CheckAddressFunction = (ip: string, family: number | string) => boolean;
|
3
|
+
export type CheckAddressFunction = (ip: string, family: number | string, hostname: string) => boolean;
|
4
4
|
export type HttpAgentOptions = {
|
5
5
|
lookup?: LookupFunction;
|
6
6
|
checkAddress?: CheckAddressFunction;
|
@@ -36,14 +36,14 @@ class HttpAgent extends undici_1.Agent {
|
|
36
36
|
if (options.checkAddress) {
|
37
37
|
// dnsOptions.all set to default on Node.js >= 20, dns.lookup will return address array object
|
38
38
|
if (typeof address === 'string') {
|
39
|
-
if (!options.checkAddress(address, family)) {
|
39
|
+
if (!options.checkAddress(address, family, hostname)) {
|
40
40
|
err = new IllegalAddressError(hostname, address, family);
|
41
41
|
}
|
42
42
|
}
|
43
43
|
else if (Array.isArray(address)) {
|
44
44
|
const addresses = address;
|
45
45
|
for (const addr of addresses) {
|
46
|
-
if (!options.checkAddress(addr.address, addr.family)) {
|
46
|
+
if (!options.checkAddress(addr.address, addr.family, hostname)) {
|
47
47
|
err = new IllegalAddressError(hostname, addr.address, addr.family);
|
48
48
|
break;
|
49
49
|
}
|
@@ -69,7 +69,7 @@ class HttpAgent extends undici_1.Agent {
|
|
69
69
|
const family = (0, node_net_1.isIP)(hostname);
|
70
70
|
if (family === 4 || family === 6) {
|
71
71
|
// if request hostname is ip, custom lookup won't execute
|
72
|
-
if (!this.#checkAddress(hostname, family)) {
|
72
|
+
if (!this.#checkAddress(hostname, family, hostname)) {
|
73
73
|
throw new IllegalAddressError(hostname, hostname, family);
|
74
74
|
}
|
75
75
|
}
|
@@ -78,4 +78,4 @@ class HttpAgent extends undici_1.Agent {
|
|
78
78
|
}
|
79
79
|
}
|
80
80
|
exports.HttpAgent = HttpAgent;
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0h0dHBBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMkI7QUFDM0IsdUNBQWdEO0FBQ2hELG1DQUlnQjtBQVdoQixNQUFNLG1CQUFvQixTQUFRLEtBQUs7SUFDckMsUUFBUSxDQUFTO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE1BQU0sQ0FBUztJQUVmLFlBQVksUUFBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBYztRQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBYSxTQUFVLFNBQVEsY0FBSztJQUNsQyxhQUFhLENBQXdCO0lBRXJDLFlBQVksT0FBeUI7UUFDbkMseUNBQXlDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksa0JBQUcsQ0FBQyxNQUFNLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQW1CLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFO2dCQUNwRCx5Q0FBeUM7Z0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEdBQUc7b0JBQUUsT0FBUSxRQUFnQixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN6Qiw4RkFBOEY7b0JBQzlGLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQzs0QkFDckQsR0FBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDM0QsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxNQUFNLFNBQVMsR0FBRyxPQUFnRCxDQUFDO3dCQUNuRSxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDOzRCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQ0FDL0QsR0FBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUNuRSxNQUFNOzRCQUNSLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBQ0EsUUFBZ0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxDQUFDO1lBQ0osT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTtTQUNsRSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE4QixFQUFFLE9BQW9DO1FBQzNFLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2hHLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDbEMsMkNBQTJDO1lBQzNDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQUksRUFBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyx5REFBeUQ7Z0JBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzVELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBdkRELDhCQXVEQyJ9
|
package/dist/esm/HttpAgent.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { LookupFunction } from 'node:net';
|
2
2
|
import { Agent, Dispatcher, buildConnector } from 'undici';
|
3
|
-
export type CheckAddressFunction = (ip: string, family: number | string) => boolean;
|
3
|
+
export type CheckAddressFunction = (ip: string, family: number | string, hostname: string) => boolean;
|
4
4
|
export type HttpAgentOptions = {
|
5
5
|
lookup?: LookupFunction;
|
6
6
|
checkAddress?: CheckAddressFunction;
|
package/dist/esm/HttpAgent.js
CHANGED
@@ -30,14 +30,14 @@ export class HttpAgent extends Agent {
|
|
30
30
|
if (options.checkAddress) {
|
31
31
|
// dnsOptions.all set to default on Node.js >= 20, dns.lookup will return address array object
|
32
32
|
if (typeof address === 'string') {
|
33
|
-
if (!options.checkAddress(address, family)) {
|
33
|
+
if (!options.checkAddress(address, family, hostname)) {
|
34
34
|
err = new IllegalAddressError(hostname, address, family);
|
35
35
|
}
|
36
36
|
}
|
37
37
|
else if (Array.isArray(address)) {
|
38
38
|
const addresses = address;
|
39
39
|
for (const addr of addresses) {
|
40
|
-
if (!options.checkAddress(addr.address, addr.family)) {
|
40
|
+
if (!options.checkAddress(addr.address, addr.family, hostname)) {
|
41
41
|
err = new IllegalAddressError(hostname, addr.address, addr.family);
|
42
42
|
break;
|
43
43
|
}
|
@@ -63,7 +63,7 @@ export class HttpAgent extends Agent {
|
|
63
63
|
const family = isIP(hostname);
|
64
64
|
if (family === 4 || family === 6) {
|
65
65
|
// if request hostname is ip, custom lookup won't execute
|
66
|
-
if (!this.#checkAddress(hostname, family)) {
|
66
|
+
if (!this.#checkAddress(hostname, family, hostname)) {
|
67
67
|
throw new IllegalAddressError(hostname, hostname, family);
|
68
68
|
}
|
69
69
|
}
|
@@ -71,4 +71,4 @@ export class HttpAgent extends Agent {
|
|
71
71
|
return super.dispatch(options, handler);
|
72
72
|
}
|
73
73
|
}
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0h0dHBBZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDM0IsT0FBTyxFQUFrQixJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUNMLEtBQUssR0FHTixNQUFNLFFBQVEsQ0FBQztBQVdoQixNQUFNLG1CQUFvQixTQUFRLEtBQUs7SUFDckMsUUFBUSxDQUFTO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE1BQU0sQ0FBUztJQUVmLFlBQVksUUFBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBYztRQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBQ2xDLGFBQWEsQ0FBd0I7SUFFckMsWUFBWSxPQUF5QjtRQUNuQyx5Q0FBeUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFtQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEUsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRTtnQkFDcEQseUNBQXlDO2dCQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxHQUFHO29CQUFFLE9BQVEsUUFBZ0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDekIsOEZBQThGO29CQUM5RixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7NEJBQ3JELEdBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7d0JBQzNELENBQUM7b0JBQ0gsQ0FBQzt5QkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDbEMsTUFBTSxTQUFTLEdBQUcsT0FBZ0QsQ0FBQzt3QkFDbkUsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQzs0QkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0NBQy9ELEdBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDbkUsTUFBTTs0QkFDUixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO2dCQUNBLFFBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLEtBQUssQ0FBQztZQUNKLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUU7U0FDbEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBOEIsRUFBRSxPQUFvQztRQUMzRSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNoRyxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ2xDLDJDQUEyQztZQUMzQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLHlEQUF5RDtnQkFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUNwRCxNQUFNLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YifQ==
|
package/dist/esm/HttpClient.js
CHANGED
@@ -48,7 +48,7 @@ class BlobFromStream {
|
|
48
48
|
return 'Blob';
|
49
49
|
}
|
50
50
|
}
|
51
|
-
export const VERSION = '4.
|
51
|
+
export const VERSION = '4.2.0';
|
52
52
|
// 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
|
53
53
|
export const HEADER_USER_AGENT = `node-urllib/${VERSION} Node.js/${process.version.substring(1)} (${process.platform}; ${process.arch})`;
|
54
54
|
function getFileName(stream) {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "urllib",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.2.0",
|
4
4
|
"publishConfig": {
|
5
5
|
"tag": "latest"
|
6
6
|
},
|
@@ -39,7 +39,7 @@
|
|
39
39
|
"test": "npm run lint && vitest run",
|
40
40
|
"test-keepalive": "cross-env TEST_KEEPALIVE_COUNT=50 vitest run --test-timeout 180000 keep-alive-header.test.ts",
|
41
41
|
"cov": "vitest run --coverage",
|
42
|
-
"ci": "npm run lint && npm run cov && npm run prepublishOnly && attw --pack",
|
42
|
+
"ci": "npm run lint && npm run cov && npm run prepublishOnly && npm pack && attw --pack",
|
43
43
|
"clean": "rm -rf dist",
|
44
44
|
"prepublishOnly": "npm run build"
|
45
45
|
},
|
@@ -52,7 +52,7 @@
|
|
52
52
|
"ylru": "^2.0.0"
|
53
53
|
},
|
54
54
|
"devDependencies": {
|
55
|
-
"@arethetypeswrong/cli": "^0.
|
55
|
+
"@arethetypeswrong/cli": "^0.16.0",
|
56
56
|
"@eggjs/tsconfig": "^1.3.3",
|
57
57
|
"@tsconfig/node18": "^18.2.1",
|
58
58
|
"@tsconfig/strictest": "^2.0.2",
|
@@ -67,7 +67,7 @@
|
|
67
67
|
"busboy": "^1.6.0",
|
68
68
|
"cross-env": "^7.0.3",
|
69
69
|
"eslint": "8",
|
70
|
-
"eslint-config-egg": "
|
70
|
+
"eslint-config-egg": "14",
|
71
71
|
"iconv-lite": "^0.6.3",
|
72
72
|
"proxy": "^1.0.2",
|
73
73
|
"selfsigned": "^2.0.1",
|
@@ -108,5 +108,6 @@
|
|
108
108
|
"src"
|
109
109
|
],
|
110
110
|
"types": "./dist/commonjs/index.d.ts",
|
111
|
-
"main": "./dist/commonjs/index.js"
|
111
|
+
"main": "./dist/commonjs/index.js",
|
112
|
+
"module": "./dist/esm/index.js"
|
112
113
|
}
|
package/src/HttpAgent.ts
CHANGED
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
buildConnector,
|
7
7
|
} from 'undici';
|
8
8
|
|
9
|
-
export type CheckAddressFunction = (ip: string, family: number | string) => boolean;
|
9
|
+
export type CheckAddressFunction = (ip: string, family: number | string, hostname: string) => boolean;
|
10
10
|
|
11
11
|
export type HttpAgentOptions = {
|
12
12
|
lookup?: LookupFunction;
|
@@ -46,13 +46,13 @@ export class HttpAgent extends Agent {
|
|
46
46
|
if (options.checkAddress) {
|
47
47
|
// dnsOptions.all set to default on Node.js >= 20, dns.lookup will return address array object
|
48
48
|
if (typeof address === 'string') {
|
49
|
-
if (!options.checkAddress(address, family)) {
|
49
|
+
if (!options.checkAddress(address, family, hostname)) {
|
50
50
|
err = new IllegalAddressError(hostname, address, family);
|
51
51
|
}
|
52
52
|
} else if (Array.isArray(address)) {
|
53
53
|
const addresses = address as { address: string, family: number }[];
|
54
54
|
for (const addr of addresses) {
|
55
|
-
if (!options.checkAddress(addr.address, addr.family)) {
|
55
|
+
if (!options.checkAddress(addr.address, addr.family, hostname)) {
|
56
56
|
err = new IllegalAddressError(hostname, addr.address, addr.family);
|
57
57
|
break;
|
58
58
|
}
|
@@ -79,7 +79,7 @@ export class HttpAgent extends Agent {
|
|
79
79
|
const family = isIP(hostname);
|
80
80
|
if (family === 4 || family === 6) {
|
81
81
|
// if request hostname is ip, custom lookup won't execute
|
82
|
-
if (!this.#checkAddress(hostname, family)) {
|
82
|
+
if (!this.#checkAddress(hostname, family, hostname)) {
|
83
83
|
throw new IllegalAddressError(hostname, hostname, family);
|
84
84
|
}
|
85
85
|
}
|