feat(proxy): use os-proxy-config to get system proxy info instead of resolveProxy (#5123)
* feat(proxy): integrate os-proxy-config for system proxy management - Added os-proxy-config dependency to manage system proxy settings. - Refactored setSystemProxy method to utilize getSystemProxy for improved proxy handling. * fix lint error
This commit is contained in:
parent
288ebe5222
commit
185900ada6
@ -94,6 +94,7 @@
|
|||||||
"jsdom": "^26.0.0",
|
"jsdom": "^26.0.0",
|
||||||
"markdown-it": "^14.1.0",
|
"markdown-it": "^14.1.0",
|
||||||
"officeparser": "^4.1.1",
|
"officeparser": "^4.1.1",
|
||||||
|
"os-proxy-config": "^1.1.1",
|
||||||
"proxy-agent": "^6.5.0",
|
"proxy-agent": "^6.5.0",
|
||||||
"tar": "^7.4.3",
|
"tar": "^7.4.3",
|
||||||
"turndown": "^7.2.0",
|
"turndown": "^7.2.0",
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { ProxyConfig as _ProxyConfig, session } from 'electron'
|
import { ProxyConfig as _ProxyConfig, session } from 'electron'
|
||||||
import { socksDispatcher } from 'fetch-socks'
|
import { socksDispatcher } from 'fetch-socks'
|
||||||
|
import { getSystemProxy } from 'os-proxy-config'
|
||||||
import { ProxyAgent as GeneralProxyAgent } from 'proxy-agent'
|
import { ProxyAgent as GeneralProxyAgent } from 'proxy-agent'
|
||||||
import { ProxyAgent, setGlobalDispatcher } from 'undici'
|
import { ProxyAgent, setGlobalDispatcher } from 'undici'
|
||||||
|
|
||||||
@ -70,15 +71,14 @@ export class ProxyManager {
|
|||||||
|
|
||||||
private async setSystemProxy(): Promise<void> {
|
private async setSystemProxy(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
|
const currentProxy = await getSystemProxy()
|
||||||
|
if (!currentProxy || currentProxy.proxyUrl === this.config.url) {
|
||||||
|
return
|
||||||
|
}
|
||||||
await this.setSessionsProxy({ mode: 'system' })
|
await this.setSessionsProxy({ mode: 'system' })
|
||||||
const proxyString = await session.defaultSession.resolveProxy('https://dummy.com')
|
this.config.url = currentProxy.proxyUrl.toLowerCase()
|
||||||
const [protocol, address] = proxyString.split(';')[0].split(' ')
|
|
||||||
const url = protocol === 'PROXY' ? `http://${address}` : null
|
|
||||||
if (url && url !== this.config.url) {
|
|
||||||
this.config.url = url.toLowerCase()
|
|
||||||
this.setEnvironment(this.config.url)
|
this.setEnvironment(this.config.url)
|
||||||
this.proxyAgent = new GeneralProxyAgent()
|
this.proxyAgent = new GeneralProxyAgent()
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to set system proxy:', error)
|
console.error('Failed to set system proxy:', error)
|
||||||
throw error
|
throw error
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import useUpdateHandler from './useUpdateHandler'
|
|||||||
|
|
||||||
export function useAppInit() {
|
export function useAppInit() {
|
||||||
const dispatch = useAppDispatch()
|
const dispatch = useAppDispatch()
|
||||||
const { proxyUrl, language, windowStyle, autoCheckUpdate, proxyMode, customCss, enableDataCollection } = useSettings()
|
const { proxyUrl, language, windowStyle, autoCheckUpdate, proxyMode, customCss } = useSettings()
|
||||||
const { minappShow } = useRuntime()
|
const { minappShow } = useRuntime()
|
||||||
const { setDefaultModel, setTopicNamingModel, setTranslateModel } = useDefaultModel()
|
const { setDefaultModel, setTopicNamingModel, setTranslateModel } = useDefaultModel()
|
||||||
const avatar = useLiveQuery(() => db.settings.get('image://avatar'))
|
const avatar = useLiveQuery(() => db.settings.get('image://avatar'))
|
||||||
|
|||||||
133
yarn.lock
133
yarn.lock
@ -4317,6 +4317,7 @@ __metadata:
|
|||||||
npx-scope-finder: "npm:^1.2.0"
|
npx-scope-finder: "npm:^1.2.0"
|
||||||
officeparser: "npm:^4.1.1"
|
officeparser: "npm:^4.1.1"
|
||||||
openai: "patch:openai@npm%3A4.87.3#~/.yarn/patches/openai-npm-4.87.3-2b30a7685f.patch"
|
openai: "patch:openai@npm%3A4.87.3#~/.yarn/patches/openai-npm-4.87.3-2b30a7685f.patch"
|
||||||
|
os-proxy-config: "npm:^1.1.1"
|
||||||
p-queue: "npm:^8.1.0"
|
p-queue: "npm:^8.1.0"
|
||||||
posthog-js: "npm:^1.236.2"
|
posthog-js: "npm:^1.236.2"
|
||||||
prettier: "npm:^3.5.3"
|
prettier: "npm:^3.5.3"
|
||||||
@ -6264,6 +6265,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"decompress-response@npm:^4.2.0":
|
||||||
|
version: 4.2.1
|
||||||
|
resolution: "decompress-response@npm:4.2.1"
|
||||||
|
dependencies:
|
||||||
|
mimic-response: "npm:^2.0.0"
|
||||||
|
checksum: 10c0/5e4821be332e80e3639acee2441c41d245fc07ac3ee85a6f28893c10c079d66d9bf09e8d84bffeae5656a4625e09e9b93fb4a5705adbe6b07202eea64fae1c8d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"decompress-response@npm:^6.0.0":
|
"decompress-response@npm:^6.0.0":
|
||||||
version: 6.0.0
|
version: 6.0.0
|
||||||
resolution: "decompress-response@npm:6.0.0"
|
resolution: "decompress-response@npm:6.0.0"
|
||||||
@ -10861,6 +10871,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"mac-system-proxy@npm:^1.0.0":
|
||||||
|
version: 1.0.4
|
||||||
|
resolution: "mac-system-proxy@npm:1.0.4"
|
||||||
|
checksum: 10c0/5511658640b938f7ef99a42cd551b0143efd5a432caffbe4cb219ab7eaeeb79eb8786e830c73e2652d813d7af81d6aeb5bbb34e957e38754ff51f6a2e5797bad
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"magic-string@npm:^0.30.10, magic-string@npm:^0.30.17":
|
"magic-string@npm:^0.30.10, magic-string@npm:^0.30.17":
|
||||||
version: 0.30.17
|
version: 0.30.17
|
||||||
resolution: "magic-string@npm:0.30.17"
|
resolution: "magic-string@npm:0.30.17"
|
||||||
@ -12004,6 +12021,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"mimic-response@npm:^2.0.0":
|
||||||
|
version: 2.1.0
|
||||||
|
resolution: "mimic-response@npm:2.1.0"
|
||||||
|
checksum: 10c0/717475c840f20deca87a16cb2f7561f9115f5de225ea2377739e09890c81aec72f43c81fd4984650c4044e66be5a846fa7a517ac7908f01009e1e624e19864d5
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"mimic-response@npm:^3.1.0":
|
"mimic-response@npm:^3.1.0":
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
resolution: "mimic-response@npm:3.1.0"
|
resolution: "mimic-response@npm:3.1.0"
|
||||||
@ -12296,6 +12320,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"napi-build-utils@npm:^1.0.1":
|
||||||
|
version: 1.0.2
|
||||||
|
resolution: "napi-build-utils@npm:1.0.2"
|
||||||
|
checksum: 10c0/37fd2cd0ff2ad20073ce78d83fd718a740d568b225924e753ae51cb69d68f330c80544d487e5e5bd18e28702ed2ca469c2424ad948becd1862c1b0209542b2e9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"napi-build-utils@npm:^2.0.0":
|
"napi-build-utils@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "napi-build-utils@npm:2.0.0"
|
resolution: "napi-build-utils@npm:2.0.0"
|
||||||
@ -12351,6 +12382,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"node-abi@npm:^2.7.0":
|
||||||
|
version: 2.30.1
|
||||||
|
resolution: "node-abi@npm:2.30.1"
|
||||||
|
dependencies:
|
||||||
|
semver: "npm:^5.4.1"
|
||||||
|
checksum: 10c0/baddd9799ae3f9ad085695cd6545438a76f5a8deb47976daf06b13ee90e9dab5463de145b703aca38a5afb627c038e85d5f8a4ba2f31ec678a68366cb6daf76f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"node-abi@npm:^3.3.0, node-abi@npm:^3.45.0":
|
"node-abi@npm:^3.3.0, node-abi@npm:^3.45.0":
|
||||||
version: 3.74.0
|
version: 3.74.0
|
||||||
resolution: "node-abi@npm:3.74.0"
|
resolution: "node-abi@npm:3.74.0"
|
||||||
@ -12369,6 +12409,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"node-addon-api@npm:^3.1.0":
|
||||||
|
version: 3.2.1
|
||||||
|
resolution: "node-addon-api@npm:3.2.1"
|
||||||
|
dependencies:
|
||||||
|
node-gyp: "npm:latest"
|
||||||
|
checksum: 10c0/41f21c9d12318875a2c429befd06070ce367065a3ef02952cfd4ea17ef69fa14012732f510b82b226e99c254da8d671847ea018cad785f839a5366e02dd56302
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"node-addon-api@npm:^7.0.0":
|
"node-addon-api@npm:^7.0.0":
|
||||||
version: 7.1.1
|
version: 7.1.1
|
||||||
resolution: "node-addon-api@npm:7.1.1"
|
resolution: "node-addon-api@npm:7.1.1"
|
||||||
@ -12485,6 +12534,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"noop-logger@npm:^0.1.1":
|
||||||
|
version: 0.1.1
|
||||||
|
resolution: "noop-logger@npm:0.1.1"
|
||||||
|
checksum: 10c0/7319a3f1dcfaca9d066e1786ad13c2209891226e29dc4a4ce6dbaafb0cc6efeeb8dc78414fcf630d7f4f3964a5a69cda8b815a165d034f2de9142632b8c8ac20
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"nopt@npm:^4.0.1":
|
"nopt@npm:^4.0.1":
|
||||||
version: 4.0.3
|
version: 4.0.3
|
||||||
resolution: "nopt@npm:4.0.3"
|
resolution: "nopt@npm:4.0.3"
|
||||||
@ -12570,7 +12626,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"npmlog@npm:^4.0.2":
|
"npmlog@npm:^4.0.1, npmlog@npm:^4.0.2":
|
||||||
version: 4.1.2
|
version: 4.1.2
|
||||||
resolution: "npmlog@npm:4.1.2"
|
resolution: "npmlog@npm:4.1.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12902,6 +12958,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"os-proxy-config@npm:^1.1.1":
|
||||||
|
version: 1.1.1
|
||||||
|
resolution: "os-proxy-config@npm:1.1.1"
|
||||||
|
dependencies:
|
||||||
|
mac-system-proxy: "npm:^1.0.0"
|
||||||
|
windows-system-proxy: "npm:^1.0.0"
|
||||||
|
checksum: 10c0/87f493e73e3daa91c908d7a9d7271e768ca3f3267adc77a2423bc71af536ec3ee78d16b8e34e647bae1225893c0e0ccf30be8d0b3e7a6d2bf58876c5a701813d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"os-tmpdir@npm:^1.0.0":
|
"os-tmpdir@npm:^1.0.0":
|
||||||
version: 1.0.2
|
version: 1.0.2
|
||||||
resolution: "os-tmpdir@npm:1.0.2"
|
resolution: "os-tmpdir@npm:1.0.2"
|
||||||
@ -13601,6 +13667,31 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"prebuild-install@npm:^5.3.5":
|
||||||
|
version: 5.3.6
|
||||||
|
resolution: "prebuild-install@npm:5.3.6"
|
||||||
|
dependencies:
|
||||||
|
detect-libc: "npm:^1.0.3"
|
||||||
|
expand-template: "npm:^2.0.3"
|
||||||
|
github-from-package: "npm:0.0.0"
|
||||||
|
minimist: "npm:^1.2.3"
|
||||||
|
mkdirp-classic: "npm:^0.5.3"
|
||||||
|
napi-build-utils: "npm:^1.0.1"
|
||||||
|
node-abi: "npm:^2.7.0"
|
||||||
|
noop-logger: "npm:^0.1.1"
|
||||||
|
npmlog: "npm:^4.0.1"
|
||||||
|
pump: "npm:^3.0.0"
|
||||||
|
rc: "npm:^1.2.7"
|
||||||
|
simple-get: "npm:^3.0.3"
|
||||||
|
tar-fs: "npm:^2.0.0"
|
||||||
|
tunnel-agent: "npm:^0.6.0"
|
||||||
|
which-pm-runs: "npm:^1.0.0"
|
||||||
|
bin:
|
||||||
|
prebuild-install: bin.js
|
||||||
|
checksum: 10c0/e24b7ea6c12fffdccad3fa40bb999277216081cbf96b768b34417aec773e9df2242df22c4529d47263713a1f02db16f5a89e909b24020c47232fe98b7efb7037
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"prebuild-install@npm:^7.1.1":
|
"prebuild-install@npm:^7.1.1":
|
||||||
version: 7.1.3
|
version: 7.1.3
|
||||||
resolution: "prebuild-install@npm:7.1.3"
|
resolution: "prebuild-install@npm:7.1.3"
|
||||||
@ -14750,6 +14841,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"registry-js@npm:^1.15.1":
|
||||||
|
version: 1.16.0
|
||||||
|
resolution: "registry-js@npm:1.16.0"
|
||||||
|
dependencies:
|
||||||
|
node-addon-api: "npm:^3.1.0"
|
||||||
|
node-gyp: "npm:latest"
|
||||||
|
prebuild-install: "npm:^5.3.5"
|
||||||
|
checksum: 10c0/654e9e780648da40099f198f1ea1ddcdecb65c5162103c86b27c021a5e3ee66a6141f0209eb7054b5832bc7f34502d6f28f9ce419fabf434452604d207f36be4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"rehype-katex@npm:^7.0.1":
|
"rehype-katex@npm:^7.0.1":
|
||||||
version: 7.0.1
|
version: 7.0.1
|
||||||
resolution: "rehype-katex@npm:7.0.1"
|
resolution: "rehype-katex@npm:7.0.1"
|
||||||
@ -15389,7 +15491,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0":
|
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0":
|
||||||
version: 5.7.2
|
version: 5.7.2
|
||||||
resolution: "semver@npm:5.7.2"
|
resolution: "semver@npm:5.7.2"
|
||||||
bin:
|
bin:
|
||||||
@ -15592,6 +15694,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"simple-get@npm:^3.0.3":
|
||||||
|
version: 3.1.1
|
||||||
|
resolution: "simple-get@npm:3.1.1"
|
||||||
|
dependencies:
|
||||||
|
decompress-response: "npm:^4.2.0"
|
||||||
|
once: "npm:^1.3.1"
|
||||||
|
simple-concat: "npm:^1.0.0"
|
||||||
|
checksum: 10c0/438c78844ea1b1e7268d13ee0b3a39c7d644183367aec916aed3b676b45d3037a61d9f975c200a49b42eb851f29f03745118af1e13c01e60a7b4044f2fd60be7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"simple-get@npm:^4.0.0":
|
"simple-get@npm:^4.0.0":
|
||||||
version: 4.0.1
|
version: 4.0.1
|
||||||
resolution: "simple-get@npm:4.0.1"
|
resolution: "simple-get@npm:4.0.1"
|
||||||
@ -17554,6 +17667,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"which-pm-runs@npm:^1.0.0":
|
||||||
|
version: 1.1.0
|
||||||
|
resolution: "which-pm-runs@npm:1.1.0"
|
||||||
|
checksum: 10c0/b8f2f230aa49babe21cb93f169f5da13937f940b8cc7a47d2078d9d200950c0dba5ac5659bc01bdbe401e6db3adec6a97b6115215a4ca8e87fd714aebd0cabc6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"which@npm:^1.2.10":
|
"which@npm:^1.2.10":
|
||||||
version: 1.3.1
|
version: 1.3.1
|
||||||
resolution: "which@npm:1.3.1"
|
resolution: "which@npm:1.3.1"
|
||||||
@ -17604,6 +17724,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"windows-system-proxy@npm:^1.0.0":
|
||||||
|
version: 1.0.0
|
||||||
|
resolution: "windows-system-proxy@npm:1.0.0"
|
||||||
|
dependencies:
|
||||||
|
registry-js: "npm:^1.15.1"
|
||||||
|
checksum: 10c0/f3712938ce0786c359f171c40cc40df37448e06feeaaddd056312dcc93caff02c1eac9df6f0fac162ec99ac1f23dffb70bf19fe08fac097fed3c32b7ae95f6aa
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"word-wrap@npm:^1.2.5":
|
"word-wrap@npm:^1.2.5":
|
||||||
version: 1.2.5
|
version: 1.2.5
|
||||||
resolution: "word-wrap@npm:1.2.5"
|
resolution: "word-wrap@npm:1.2.5"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user