zephyr-agent 0.1.5-next.3 → 0.1.5-next.4
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.
|
@@ -4,6 +4,8 @@ exports.fetchWithRetries = fetchWithRetries;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importStar(require("axios"));
|
|
6
6
|
const axios_retry_1 = tslib_1.__importDefault(require("axios-retry"));
|
|
7
|
+
const http_proxy_agent_1 = require("http-proxy-agent");
|
|
8
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
7
9
|
const is_ci_1 = tslib_1.__importDefault(require("is-ci"));
|
|
8
10
|
const errors_1 = require("../errors");
|
|
9
11
|
const IPV4_FAMILY = 4;
|
|
@@ -14,6 +16,60 @@ const RETRY_ERROR_CODES = [
|
|
|
14
16
|
'ECONNREFUSED',
|
|
15
17
|
'EPIPE',
|
|
16
18
|
];
|
|
19
|
+
/**
|
|
20
|
+
* Gets proxy URL from environment variables.
|
|
21
|
+
* Checks both uppercase and lowercase variants.
|
|
22
|
+
* Returns undefined if no proxy is configured.
|
|
23
|
+
*/
|
|
24
|
+
function getProxyUrl(protocol) {
|
|
25
|
+
const envVars = protocol === 'https'
|
|
26
|
+
? ['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy']
|
|
27
|
+
: ['HTTP_PROXY', 'http_proxy'];
|
|
28
|
+
for (const envVar of envVars) {
|
|
29
|
+
const value = process.env[envVar];
|
|
30
|
+
if (value) {
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Checks if a host should bypass the proxy based on NO_PROXY environment variable.
|
|
38
|
+
* NO_PROXY is a comma-separated list of hosts that should not use the proxy.
|
|
39
|
+
*/
|
|
40
|
+
function shouldBypassProxy(hostname) {
|
|
41
|
+
const noProxy = process.env['NO_PROXY'] || process.env['no_proxy'];
|
|
42
|
+
if (!noProxy) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const noProxyList = noProxy.split(',').map((h) => h.trim().toLowerCase());
|
|
46
|
+
const hostLower = hostname.toLowerCase();
|
|
47
|
+
return noProxyList.some((noProxyHost) => {
|
|
48
|
+
if (noProxyHost === '*') {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
// Handle wildcard domains like .example.com
|
|
52
|
+
if (noProxyHost.startsWith('.')) {
|
|
53
|
+
return hostLower.endsWith(noProxyHost) || hostLower === noProxyHost.slice(1);
|
|
54
|
+
}
|
|
55
|
+
return hostLower === noProxyHost || hostLower.endsWith(`.${noProxyHost}`);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates HTTP/HTTPS agents with proxy support if configured via environment variables.
|
|
60
|
+
*/
|
|
61
|
+
function getProxyAgents(url) {
|
|
62
|
+
// Check if this host should bypass the proxy
|
|
63
|
+
if (shouldBypassProxy(url.hostname)) {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
const httpProxyUrl = getProxyUrl('http');
|
|
67
|
+
const httpsProxyUrl = getProxyUrl('https');
|
|
68
|
+
return {
|
|
69
|
+
httpAgent: httpProxyUrl ? new http_proxy_agent_1.HttpProxyAgent(httpProxyUrl) : undefined,
|
|
70
|
+
httpsAgent: httpsProxyUrl ? new https_proxy_agent_1.HttpsProxyAgent(httpsProxyUrl) : undefined,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
17
73
|
function shouldRetry(error) {
|
|
18
74
|
// Retry on network errors (no response received)
|
|
19
75
|
if (!error.response) {
|
|
@@ -29,12 +85,17 @@ function shouldRetry(error) {
|
|
|
29
85
|
async function fetchWithRetries(url, options = {}, retries = 3) {
|
|
30
86
|
var _a, _b, _c, _d, _e;
|
|
31
87
|
try {
|
|
88
|
+
// Get proxy agents if configured via environment variables
|
|
89
|
+
const { httpAgent, httpsAgent } = getProxyAgents(url);
|
|
32
90
|
// Create a custom axios instance for this request with CI-friendly settings
|
|
33
91
|
const axiosInstance = axios_1.default.create({
|
|
34
92
|
// Force IPv4 in CI environments to avoid IPv6 connectivity issues
|
|
35
93
|
// References: https://github.com/actions/runner/issues/3138
|
|
36
94
|
// https://x.com/matteocollina/status/1640384245834055680
|
|
37
95
|
family: is_ci_1.default ? IPV4_FAMILY : undefined,
|
|
96
|
+
// Apply proxy agents if configured
|
|
97
|
+
httpAgent,
|
|
98
|
+
httpsAgent,
|
|
38
99
|
});
|
|
39
100
|
// Configure axios-retry
|
|
40
101
|
(0, axios_retry_1.default)(axiosInstance, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-retries.js","sourceRoot":"","sources":["../../../src/lib/http/fetch-with-retries.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fetch-with-retries.js","sourceRoot":"","sources":["../../../src/lib/http/fetch-with-retries.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -59,6 +59,10 @@
|
|
|
59
59
|
"@typescript-eslint/eslint-plugin": "catalog:eslint",
|
|
60
60
|
"ts-jest": "catalog:typescript"
|
|
61
61
|
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"http-proxy-agent": "^7.0.2",
|
|
64
|
+
"https-proxy-agent": "^7.0.6"
|
|
65
|
+
},
|
|
62
66
|
"publishConfig": {
|
|
63
67
|
"access": "public",
|
|
64
68
|
"provenance": true
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zephyr-agent",
|
|
3
|
-
"version": "0.1.5-next.
|
|
3
|
+
"version": "0.1.5-next.4",
|
|
4
4
|
"description": "Zephyr plugin agent",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"open": "^10.1.0",
|
|
41
41
|
"proper-lockfile": "^4.1.2",
|
|
42
42
|
"tslib": "^2.8.1",
|
|
43
|
-
"zephyr-edge-contract": "0.1.5-next.
|
|
43
|
+
"zephyr-edge-contract": "0.1.5-next.4"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@jest/globals": "^29.7.0",
|
|
@@ -54,6 +54,10 @@
|
|
|
54
54
|
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
|
55
55
|
"ts-jest": "^29.2.6"
|
|
56
56
|
},
|
|
57
|
+
"peerDependencies": {
|
|
58
|
+
"http-proxy-agent": "^7.0.2",
|
|
59
|
+
"https-proxy-agent": "^7.0.6"
|
|
60
|
+
},
|
|
57
61
|
"publishConfig": {
|
|
58
62
|
"access": "public",
|
|
59
63
|
"provenance": true
|