Add support for outgoing request proxying Closes #2824
| @@ -37,6 +37,16 @@ basicAuthUser: | |||
| 37 | password: "password" | 37 | password: "password" |
| 38 | # Enables CORS proxy middleware | 38 | # Enables CORS proxy middleware |
| 39 | enableCorsProxy: false | 39 | enableCorsProxy: false |
| 40 | # -- REQUEST PROXY CONFIGURATION -- | ||
| 41 | requestProxy: | ||
| 42 | # If a proxy is enabled, all outgoing HTTP/HTTPS requests will be routed through it. | ||
| 43 | enabled: false | ||
| 44 | # Proxy URL. Possible protocols: http, https, socks, socks5, socks4, pac | ||
| 45 | url: "socks5://username:password@example.com:1080" | ||
| 46 | # Proxy bypass list. Requests to these hosts won't be routed through the proxy. | ||
| 47 | bypass: | ||
| 48 | - localhost | ||
| 49 | - 127.0.0.1 | ||
| 40 | # Enable multi-user mode | 50 | # Enable multi-user mode |
| 41 | enableUserAccounts: false | 51 | enableUserAccounts: false |
| 42 | # Enable discreet login mode: hides user list on the login screen | 52 | # Enable discreet login mode: hides user list on the login screen |
| @@ -40,6 +40,7 @@ | |||
| 40 | "png-chunk-text": "^1.0.0", | 40 | "png-chunk-text": "^1.0.0", |
| 41 | "png-chunks-encode": "^1.0.0", | 41 | "png-chunks-encode": "^1.0.0", |
| 42 | "png-chunks-extract": "^1.0.0", | 42 | "png-chunks-extract": "^1.0.0", |
| 43 | "proxy-agent": "^6.4.0", | ||
| 43 | "rate-limiter-flexible": "^5.0.0", | 44 | "rate-limiter-flexible": "^5.0.0", |
| 44 | "response-time": "^2.3.2", | 45 | "response-time": "^2.3.2", |
| 45 | "sanitize-filename": "^1.6.3", | 46 | "sanitize-filename": "^1.6.3", |
| @@ -941,6 +942,12 @@ | |||
| 941 | "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", | 942 | "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", |
| 942 | "license": "MIT" | 943 | "license": "MIT" |
| 943 | }, | 944 | }, |
| 945 | "node_modules/@tootallnate/quickjs-emscripten": { | ||
| 946 | "version": "0.23.0", | ||
| 947 | "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", | ||
| 948 | "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", | ||
| 949 | "license": "MIT" | ||
| 950 | }, | ||
| 944 | "node_modules/@types/cacheable-request": { | 951 | "node_modules/@types/cacheable-request": { |
| 945 | "version": "6.0.3", | 952 | "version": "6.0.3", |
| 946 | "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", | 953 | "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", |
| @@ -1080,6 +1087,41 @@ | |||
| 1080 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" | 1087 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" |
| 1081 | } | 1088 | } |
| 1082 | }, | 1089 | }, |
| 1090 | "node_modules/agent-base": { | ||
| 1091 | "version": "7.1.1", | ||
| 1092 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", | ||
| 1093 | "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", | ||
| 1094 | "license": "MIT", | ||
| 1095 | "dependencies": { | ||
| 1096 | "debug": "^4.3.4" | ||
| 1097 | }, | ||
| 1098 | "engines": { | ||
| 1099 | "node": ">= 14" | ||
| 1100 | } | ||
| 1101 | }, | ||
| 1102 | "node_modules/agent-base/node_modules/debug": { | ||
| 1103 | "version": "4.3.7", | ||
| 1104 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 1105 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 1106 | "license": "MIT", | ||
| 1107 | "dependencies": { | ||
| 1108 | "ms": "^2.1.3" | ||
| 1109 | }, | ||
| 1110 | "engines": { | ||
| 1111 | "node": ">=6.0" | ||
| 1112 | }, | ||
| 1113 | "peerDependenciesMeta": { | ||
| 1114 | "supports-color": { | ||
| 1115 | "optional": true | ||
| 1116 | } | ||
| 1117 | } | ||
| 1118 | }, | ||
| 1119 | "node_modules/agent-base/node_modules/ms": { | ||
| 1120 | "version": "2.1.3", | ||
| 1121 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 1122 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 1123 | "license": "MIT" | ||
| 1124 | }, | ||
| 1083 | "node_modules/agentkeepalive": { | 1125 | "node_modules/agentkeepalive": { |
| 1084 | "version": "4.5.0", | 1126 | "version": "4.5.0", |
| 1085 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", | 1127 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", |
| @@ -1382,6 +1424,18 @@ | |||
| 1382 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", | 1424 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", |
| 1383 | "license": "MIT" | 1425 | "license": "MIT" |
| 1384 | }, | 1426 | }, |
| 1427 | "node_modules/ast-types": { | ||
| 1428 | "version": "0.13.4", | ||
| 1429 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", | ||
| 1430 | "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", | ||
| 1431 | "license": "MIT", | ||
| 1432 | "dependencies": { | ||
| 1433 | "tslib": "^2.0.1" | ||
| 1434 | }, | ||
| 1435 | "engines": { | ||
| 1436 | "node": ">=4" | ||
| 1437 | } | ||
| 1438 | }, | ||
| 1385 | "node_modules/async": { | 1439 | "node_modules/async": { |
| 1386 | "version": "3.2.5", | 1440 | "version": "3.2.5", |
| 1387 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", | 1441 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", |
| @@ -1445,6 +1499,15 @@ | |||
| 1445 | ], | 1499 | ], |
| 1446 | "license": "MIT" | 1500 | "license": "MIT" |
| 1447 | }, | 1501 | }, |
| 1502 | "node_modules/basic-ftp": { | ||
| 1503 | "version": "5.0.5", | ||
| 1504 | "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", | ||
| 1505 | "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", | ||
| 1506 | "license": "MIT", | ||
| 1507 | "engines": { | ||
| 1508 | "node": ">=10.0.0" | ||
| 1509 | } | ||
| 1510 | }, | ||
| 1448 | "node_modules/bing-translate-api": { | 1511 | "node_modules/bing-translate-api": { |
| 1449 | "version": "2.9.1", | 1512 | "version": "2.9.1", |
| 1450 | "resolved": "https://registry.npmjs.org/bing-translate-api/-/bing-translate-api-2.9.1.tgz", | 1513 | "resolved": "https://registry.npmjs.org/bing-translate-api/-/bing-translate-api-2.9.1.tgz", |
| @@ -2250,6 +2313,15 @@ | |||
| 2250 | "url": "https://github.com/sponsors/fb55" | 2313 | "url": "https://github.com/sponsors/fb55" |
| 2251 | } | 2314 | } |
| 2252 | }, | 2315 | }, |
| 2316 | "node_modules/data-uri-to-buffer": { | ||
| 2317 | "version": "6.0.2", | ||
| 2318 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", | ||
| 2319 | "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", | ||
| 2320 | "license": "MIT", | ||
| 2321 | "engines": { | ||
| 2322 | "node": ">= 14" | ||
| 2323 | } | ||
| 2324 | }, | ||
| 2253 | "node_modules/debug": { | 2325 | "node_modules/debug": { |
| 2254 | "version": "2.6.9", | 2326 | "version": "2.6.9", |
| 2255 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | 2327 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
| @@ -2316,6 +2388,20 @@ | |||
| 2316 | "node": ">=8" | 2388 | "node": ">=8" |
| 2317 | } | 2389 | } |
| 2318 | }, | 2390 | }, |
| 2391 | "node_modules/degenerator": { | ||
| 2392 | "version": "5.0.1", | ||
| 2393 | "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", | ||
| 2394 | "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", | ||
| 2395 | "license": "MIT", | ||
| 2396 | "dependencies": { | ||
| 2397 | "ast-types": "^0.13.4", | ||
| 2398 | "escodegen": "^2.1.0", | ||
| 2399 | "esprima": "^4.0.1" | ||
| 2400 | }, | ||
| 2401 | "engines": { | ||
| 2402 | "node": ">= 14" | ||
| 2403 | } | ||
| 2404 | }, | ||
| 2319 | "node_modules/delayed-stream": { | 2405 | "node_modules/delayed-stream": { |
| 2320 | "version": "1.0.0", | 2406 | "version": "1.0.0", |
| 2321 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | 2407 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
| @@ -2528,6 +2614,27 @@ | |||
| 2528 | "node": ">=0.8.0" | 2614 | "node": ">=0.8.0" |
| 2529 | } | 2615 | } |
| 2530 | }, | 2616 | }, |
| 2617 | "node_modules/escodegen": { | ||
| 2618 | "version": "2.1.0", | ||
| 2619 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", | ||
| 2620 | "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", | ||
| 2621 | "license": "BSD-2-Clause", | ||
| 2622 | "dependencies": { | ||
| 2623 | "esprima": "^4.0.1", | ||
| 2624 | "estraverse": "^5.2.0", | ||
| 2625 | "esutils": "^2.0.2" | ||
| 2626 | }, | ||
| 2627 | "bin": { | ||
| 2628 | "escodegen": "bin/escodegen.js", | ||
| 2629 | "esgenerate": "bin/esgenerate.js" | ||
| 2630 | }, | ||
| 2631 | "engines": { | ||
| 2632 | "node": ">=6.0" | ||
| 2633 | }, | ||
| 2634 | "optionalDependencies": { | ||
| 2635 | "source-map": "~0.6.1" | ||
| 2636 | } | ||
| 2637 | }, | ||
| 2531 | "node_modules/eslint": { | 2638 | "node_modules/eslint": { |
| 2532 | "version": "8.57.0", | 2639 | "version": "8.57.0", |
| 2533 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", | 2640 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", |
| @@ -2683,6 +2790,19 @@ | |||
| 2683 | "url": "https://opencollective.com/eslint" | 2790 | "url": "https://opencollective.com/eslint" |
| 2684 | } | 2791 | } |
| 2685 | }, | 2792 | }, |
| 2793 | "node_modules/esprima": { | ||
| 2794 | "version": "4.0.1", | ||
| 2795 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||
| 2796 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", | ||
| 2797 | "license": "BSD-2-Clause", | ||
| 2798 | "bin": { | ||
| 2799 | "esparse": "bin/esparse.js", | ||
| 2800 | "esvalidate": "bin/esvalidate.js" | ||
| 2801 | }, | ||
| 2802 | "engines": { | ||
| 2803 | "node": ">=4" | ||
| 2804 | } | ||
| 2805 | }, | ||
| 2686 | "node_modules/esquery": { | 2806 | "node_modules/esquery": { |
| 2687 | "version": "1.5.0", | 2807 | "version": "1.5.0", |
| 2688 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", | 2808 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", |
| @@ -2713,7 +2833,6 @@ | |||
| 2713 | "version": "5.3.0", | 2833 | "version": "5.3.0", |
| 2714 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", | 2834 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", |
| 2715 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", | 2835 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", |
| 2716 | "dev": true, | ||
| 2717 | "license": "BSD-2-Clause", | 2836 | "license": "BSD-2-Clause", |
| 2718 | "engines": { | 2837 | "engines": { |
| 2719 | "node": ">=4.0" | 2838 | "node": ">=4.0" |
| @@ -2723,7 +2842,6 @@ | |||
| 2723 | "version": "2.0.3", | 2842 | "version": "2.0.3", |
| 2724 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", | 2843 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", |
| 2725 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", | 2844 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", |
| 2726 | "dev": true, | ||
| 2727 | "license": "BSD-2-Clause", | 2845 | "license": "BSD-2-Clause", |
| 2728 | "engines": { | 2846 | "engines": { |
| 2729 | "node": ">=0.10.0" | 2847 | "node": ">=0.10.0" |
| @@ -3071,6 +3189,20 @@ | |||
| 3071 | "node": ">= 0.6" | 3189 | "node": ">= 0.6" |
| 3072 | } | 3190 | } |
| 3073 | }, | 3191 | }, |
| 3192 | "node_modules/fs-extra": { | ||
| 3193 | "version": "11.2.0", | ||
| 3194 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", | ||
| 3195 | "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", | ||
| 3196 | "license": "MIT", | ||
| 3197 | "dependencies": { | ||
| 3198 | "graceful-fs": "^4.2.0", | ||
| 3199 | "jsonfile": "^6.0.1", | ||
| 3200 | "universalify": "^2.0.0" | ||
| 3201 | }, | ||
| 3202 | "engines": { | ||
| 3203 | "node": ">=14.14" | ||
| 3204 | } | ||
| 3205 | }, | ||
| 3074 | "node_modules/fs.realpath": { | 3206 | "node_modules/fs.realpath": { |
| 3075 | "version": "1.0.0", | 3207 | "version": "1.0.0", |
| 3076 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | 3208 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
| @@ -3130,6 +3262,44 @@ | |||
| 3130 | "url": "https://github.com/sponsors/sindresorhus" | 3262 | "url": "https://github.com/sponsors/sindresorhus" |
| 3131 | } | 3263 | } |
| 3132 | }, | 3264 | }, |
| 3265 | "node_modules/get-uri": { | ||
| 3266 | "version": "6.0.3", | ||
| 3267 | "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", | ||
| 3268 | "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", | ||
| 3269 | "license": "MIT", | ||
| 3270 | "dependencies": { | ||
| 3271 | "basic-ftp": "^5.0.2", | ||
| 3272 | "data-uri-to-buffer": "^6.0.2", | ||
| 3273 | "debug": "^4.3.4", | ||
| 3274 | "fs-extra": "^11.2.0" | ||
| 3275 | }, | ||
| 3276 | "engines": { | ||
| 3277 | "node": ">= 14" | ||
| 3278 | } | ||
| 3279 | }, | ||
| 3280 | "node_modules/get-uri/node_modules/debug": { | ||
| 3281 | "version": "4.3.7", | ||
| 3282 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 3283 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 3284 | "license": "MIT", | ||
| 3285 | "dependencies": { | ||
| 3286 | "ms": "^2.1.3" | ||
| 3287 | }, | ||
| 3288 | "engines": { | ||
| 3289 | "node": ">=6.0" | ||
| 3290 | }, | ||
| 3291 | "peerDependenciesMeta": { | ||
| 3292 | "supports-color": { | ||
| 3293 | "optional": true | ||
| 3294 | } | ||
| 3295 | } | ||
| 3296 | }, | ||
| 3297 | "node_modules/get-uri/node_modules/ms": { | ||
| 3298 | "version": "2.1.3", | ||
| 3299 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 3300 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 3301 | "license": "MIT" | ||
| 3302 | }, | ||
| 3133 | "node_modules/gifwrap": { | 3303 | "node_modules/gifwrap": { |
| 3134 | "version": "0.10.1", | 3304 | "version": "0.10.1", |
| 3135 | "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", | 3305 | "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", |
| @@ -3369,6 +3539,42 @@ | |||
| 3369 | "node": ">= 0.8" | 3539 | "node": ">= 0.8" |
| 3370 | } | 3540 | } |
| 3371 | }, | 3541 | }, |
| 3542 | "node_modules/http-proxy-agent": { | ||
| 3543 | "version": "7.0.2", | ||
| 3544 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", | ||
| 3545 | "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", | ||
| 3546 | "license": "MIT", | ||
| 3547 | "dependencies": { | ||
| 3548 | "agent-base": "^7.1.0", | ||
| 3549 | "debug": "^4.3.4" | ||
| 3550 | }, | ||
| 3551 | "engines": { | ||
| 3552 | "node": ">= 14" | ||
| 3553 | } | ||
| 3554 | }, | ||
| 3555 | "node_modules/http-proxy-agent/node_modules/debug": { | ||
| 3556 | "version": "4.3.7", | ||
| 3557 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 3558 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 3559 | "license": "MIT", | ||
| 3560 | "dependencies": { | ||
| 3561 | "ms": "^2.1.3" | ||
| 3562 | }, | ||
| 3563 | "engines": { | ||
| 3564 | "node": ">=6.0" | ||
| 3565 | }, | ||
| 3566 | "peerDependenciesMeta": { | ||
| 3567 | "supports-color": { | ||
| 3568 | "optional": true | ||
| 3569 | } | ||
| 3570 | } | ||
| 3571 | }, | ||
| 3572 | "node_modules/http-proxy-agent/node_modules/ms": { | ||
| 3573 | "version": "2.1.3", | ||
| 3574 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 3575 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 3576 | "license": "MIT" | ||
| 3577 | }, | ||
| 3372 | "node_modules/http2-wrapper": { | 3578 | "node_modules/http2-wrapper": { |
| 3373 | "version": "1.0.3", | 3579 | "version": "1.0.3", |
| 3374 | "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", | 3580 | "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", |
| @@ -3382,6 +3588,42 @@ | |||
| 3382 | "node": ">=10.19.0" | 3588 | "node": ">=10.19.0" |
| 3383 | } | 3589 | } |
| 3384 | }, | 3590 | }, |
| 3591 | "node_modules/https-proxy-agent": { | ||
| 3592 | "version": "7.0.5", | ||
| 3593 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", | ||
| 3594 | "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", | ||
| 3595 | "license": "MIT", | ||
| 3596 | "dependencies": { | ||
| 3597 | "agent-base": "^7.0.2", | ||
| 3598 | "debug": "4" | ||
| 3599 | }, | ||
| 3600 | "engines": { | ||
| 3601 | "node": ">= 14" | ||
| 3602 | } | ||
| 3603 | }, | ||
| 3604 | "node_modules/https-proxy-agent/node_modules/debug": { | ||
| 3605 | "version": "4.3.7", | ||
| 3606 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 3607 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 3608 | "license": "MIT", | ||
| 3609 | "dependencies": { | ||
| 3610 | "ms": "^2.1.3" | ||
| 3611 | }, | ||
| 3612 | "engines": { | ||
| 3613 | "node": ">=6.0" | ||
| 3614 | }, | ||
| 3615 | "peerDependenciesMeta": { | ||
| 3616 | "supports-color": { | ||
| 3617 | "optional": true | ||
| 3618 | } | ||
| 3619 | } | ||
| 3620 | }, | ||
| 3621 | "node_modules/https-proxy-agent/node_modules/ms": { | ||
| 3622 | "version": "2.1.3", | ||
| 3623 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 3624 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 3625 | "license": "MIT" | ||
| 3626 | }, | ||
| 3385 | "node_modules/humanize-ms": { | 3627 | "node_modules/humanize-ms": { |
| 3386 | "version": "1.2.1", | 3628 | "version": "1.2.1", |
| 3387 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", | 3629 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", |
| @@ -3485,6 +3727,19 @@ | |||
| 3485 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | 3727 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
| 3486 | "license": "ISC" | 3728 | "license": "ISC" |
| 3487 | }, | 3729 | }, |
| 3730 | "node_modules/ip-address": { | ||
| 3731 | "version": "9.0.5", | ||
| 3732 | "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", | ||
| 3733 | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", | ||
| 3734 | "license": "MIT", | ||
| 3735 | "dependencies": { | ||
| 3736 | "jsbn": "1.1.0", | ||
| 3737 | "sprintf-js": "^1.1.3" | ||
| 3738 | }, | ||
| 3739 | "engines": { | ||
| 3740 | "node": ">= 12" | ||
| 3741 | } | ||
| 3742 | }, | ||
| 3488 | "node_modules/ip-matching": { | 3743 | "node_modules/ip-matching": { |
| 3489 | "version": "2.1.2", | 3744 | "version": "2.1.2", |
| 3490 | "resolved": "https://registry.npmjs.org/ip-matching/-/ip-matching-2.1.2.tgz", | 3745 | "resolved": "https://registry.npmjs.org/ip-matching/-/ip-matching-2.1.2.tgz", |
| @@ -3669,6 +3924,12 @@ | |||
| 3669 | "js-yaml": "bin/js-yaml.js" | 3924 | "js-yaml": "bin/js-yaml.js" |
| 3670 | } | 3925 | } |
| 3671 | }, | 3926 | }, |
| 3927 | "node_modules/jsbn": { | ||
| 3928 | "version": "1.1.0", | ||
| 3929 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", | ||
| 3930 | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", | ||
| 3931 | "license": "MIT" | ||
| 3932 | }, | ||
| 3672 | "node_modules/json-buffer": { | 3933 | "node_modules/json-buffer": { |
| 3673 | "version": "3.0.1", | 3934 | "version": "3.0.1", |
| 3674 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", | 3935 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", |
| @@ -3761,6 +4022,18 @@ | |||
| 3761 | "dev": true, | 4022 | "dev": true, |
| 3762 | "license": "MIT" | 4023 | "license": "MIT" |
| 3763 | }, | 4024 | }, |
| 4025 | "node_modules/jsonfile": { | ||
| 4026 | "version": "6.1.0", | ||
| 4027 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||
| 4028 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", | ||
| 4029 | "license": "MIT", | ||
| 4030 | "dependencies": { | ||
| 4031 | "universalify": "^2.0.0" | ||
| 4032 | }, | ||
| 4033 | "optionalDependencies": { | ||
| 4034 | "graceful-fs": "^4.1.6" | ||
| 4035 | } | ||
| 4036 | }, | ||
| 3764 | "node_modules/keygrip": { | 4037 | "node_modules/keygrip": { |
| 3765 | "version": "1.1.0", | 4038 | "version": "1.1.0", |
| 3766 | "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", | 4039 | "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", |
| @@ -4053,6 +4326,15 @@ | |||
| 4053 | "node": ">= 0.6" | 4326 | "node": ">= 0.6" |
| 4054 | } | 4327 | } |
| 4055 | }, | 4328 | }, |
| 4329 | "node_modules/netmask": { | ||
| 4330 | "version": "2.0.2", | ||
| 4331 | "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", | ||
| 4332 | "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", | ||
| 4333 | "license": "MIT", | ||
| 4334 | "engines": { | ||
| 4335 | "node": ">= 0.4.0" | ||
| 4336 | } | ||
| 4337 | }, | ||
| 4056 | "node_modules/node-domexception": { | 4338 | "node_modules/node-domexception": { |
| 4057 | "version": "1.0.0", | 4339 | "version": "1.0.0", |
| 4058 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", | 4340 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", |
| @@ -4323,6 +4605,61 @@ | |||
| 4323 | "url": "https://github.com/sponsors/sindresorhus" | 4605 | "url": "https://github.com/sponsors/sindresorhus" |
| 4324 | } | 4606 | } |
| 4325 | }, | 4607 | }, |
| 4608 | "node_modules/pac-proxy-agent": { | ||
| 4609 | "version": "7.0.2", | ||
| 4610 | "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", | ||
| 4611 | "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", | ||
| 4612 | "license": "MIT", | ||
| 4613 | "dependencies": { | ||
| 4614 | "@tootallnate/quickjs-emscripten": "^0.23.0", | ||
| 4615 | "agent-base": "^7.0.2", | ||
| 4616 | "debug": "^4.3.4", | ||
| 4617 | "get-uri": "^6.0.1", | ||
| 4618 | "http-proxy-agent": "^7.0.0", | ||
| 4619 | "https-proxy-agent": "^7.0.5", | ||
| 4620 | "pac-resolver": "^7.0.1", | ||
| 4621 | "socks-proxy-agent": "^8.0.4" | ||
| 4622 | }, | ||
| 4623 | "engines": { | ||
| 4624 | "node": ">= 14" | ||
| 4625 | } | ||
| 4626 | }, | ||
| 4627 | "node_modules/pac-proxy-agent/node_modules/debug": { | ||
| 4628 | "version": "4.3.7", | ||
| 4629 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 4630 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 4631 | "license": "MIT", | ||
| 4632 | "dependencies": { | ||
| 4633 | "ms": "^2.1.3" | ||
| 4634 | }, | ||
| 4635 | "engines": { | ||
| 4636 | "node": ">=6.0" | ||
| 4637 | }, | ||
| 4638 | "peerDependenciesMeta": { | ||
| 4639 | "supports-color": { | ||
| 4640 | "optional": true | ||
| 4641 | } | ||
| 4642 | } | ||
| 4643 | }, | ||
| 4644 | "node_modules/pac-proxy-agent/node_modules/ms": { | ||
| 4645 | "version": "2.1.3", | ||
| 4646 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 4647 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 4648 | "license": "MIT" | ||
| 4649 | }, | ||
| 4650 | "node_modules/pac-resolver": { | ||
| 4651 | "version": "7.0.1", | ||
| 4652 | "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", | ||
| 4653 | "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", | ||
| 4654 | "license": "MIT", | ||
| 4655 | "dependencies": { | ||
| 4656 | "degenerator": "^5.0.0", | ||
| 4657 | "netmask": "^2.0.2" | ||
| 4658 | }, | ||
| 4659 | "engines": { | ||
| 4660 | "node": ">= 14" | ||
| 4661 | } | ||
| 4662 | }, | ||
| 4326 | "node_modules/pako": { | 4663 | "node_modules/pako": { |
| 4327 | "version": "1.0.11", | 4664 | "version": "1.0.11", |
| 4328 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", | 4665 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", |
| @@ -4618,6 +4955,57 @@ | |||
| 4618 | "node": ">= 0.10" | 4955 | "node": ">= 0.10" |
| 4619 | } | 4956 | } |
| 4620 | }, | 4957 | }, |
| 4958 | "node_modules/proxy-agent": { | ||
| 4959 | "version": "6.4.0", | ||
| 4960 | "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", | ||
| 4961 | "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", | ||
| 4962 | "license": "MIT", | ||
| 4963 | "dependencies": { | ||
| 4964 | "agent-base": "^7.0.2", | ||
| 4965 | "debug": "^4.3.4", | ||
| 4966 | "http-proxy-agent": "^7.0.1", | ||
| 4967 | "https-proxy-agent": "^7.0.3", | ||
| 4968 | "lru-cache": "^7.14.1", | ||
| 4969 | "pac-proxy-agent": "^7.0.1", | ||
| 4970 | "proxy-from-env": "^1.1.0", | ||
| 4971 | "socks-proxy-agent": "^8.0.2" | ||
| 4972 | }, | ||
| 4973 | "engines": { | ||
| 4974 | "node": ">= 14" | ||
| 4975 | } | ||
| 4976 | }, | ||
| 4977 | "node_modules/proxy-agent/node_modules/debug": { | ||
| 4978 | "version": "4.3.7", | ||
| 4979 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 4980 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 4981 | "license": "MIT", | ||
| 4982 | "dependencies": { | ||
| 4983 | "ms": "^2.1.3" | ||
| 4984 | }, | ||
| 4985 | "engines": { | ||
| 4986 | "node": ">=6.0" | ||
| 4987 | }, | ||
| 4988 | "peerDependenciesMeta": { | ||
| 4989 | "supports-color": { | ||
| 4990 | "optional": true | ||
| 4991 | } | ||
| 4992 | } | ||
| 4993 | }, | ||
| 4994 | "node_modules/proxy-agent/node_modules/lru-cache": { | ||
| 4995 | "version": "7.18.3", | ||
| 4996 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", | ||
| 4997 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", | ||
| 4998 | "license": "ISC", | ||
| 4999 | "engines": { | ||
| 5000 | "node": ">=12" | ||
| 5001 | } | ||
| 5002 | }, | ||
| 5003 | "node_modules/proxy-agent/node_modules/ms": { | ||
| 5004 | "version": "2.1.3", | ||
| 5005 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 5006 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 5007 | "license": "MIT" | ||
| 5008 | }, | ||
| 4621 | "node_modules/proxy-from-env": { | 5009 | "node_modules/proxy-from-env": { |
| 4622 | "version": "1.1.0", | 5010 | "version": "1.1.0", |
| 4623 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | 5011 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", |
| @@ -5165,6 +5553,83 @@ | |||
| 5165 | "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==", | 5553 | "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==", |
| 5166 | "license": "MIT" | 5554 | "license": "MIT" |
| 5167 | }, | 5555 | }, |
| 5556 | "node_modules/smart-buffer": { | ||
| 5557 | "version": "4.2.0", | ||
| 5558 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", | ||
| 5559 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", | ||
| 5560 | "license": "MIT", | ||
| 5561 | "engines": { | ||
| 5562 | "node": ">= 6.0.0", | ||
| 5563 | "npm": ">= 3.0.0" | ||
| 5564 | } | ||
| 5565 | }, | ||
| 5566 | "node_modules/socks": { | ||
| 5567 | "version": "2.8.3", | ||
| 5568 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", | ||
| 5569 | "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", | ||
| 5570 | "license": "MIT", | ||
| 5571 | "dependencies": { | ||
| 5572 | "ip-address": "^9.0.5", | ||
| 5573 | "smart-buffer": "^4.2.0" | ||
| 5574 | }, | ||
| 5575 | "engines": { | ||
| 5576 | "node": ">= 10.0.0", | ||
| 5577 | "npm": ">= 3.0.0" | ||
| 5578 | } | ||
| 5579 | }, | ||
| 5580 | "node_modules/socks-proxy-agent": { | ||
| 5581 | "version": "8.0.4", | ||
| 5582 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", | ||
| 5583 | "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", | ||
| 5584 | "license": "MIT", | ||
| 5585 | "dependencies": { | ||
| 5586 | "agent-base": "^7.1.1", | ||
| 5587 | "debug": "^4.3.4", | ||
| 5588 | "socks": "^2.8.3" | ||
| 5589 | }, | ||
| 5590 | "engines": { | ||
| 5591 | "node": ">= 14" | ||
| 5592 | } | ||
| 5593 | }, | ||
| 5594 | "node_modules/socks-proxy-agent/node_modules/debug": { | ||
| 5595 | "version": "4.3.7", | ||
| 5596 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", | ||
| 5597 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", | ||
| 5598 | "license": "MIT", | ||
| 5599 | "dependencies": { | ||
| 5600 | "ms": "^2.1.3" | ||
| 5601 | }, | ||
| 5602 | "engines": { | ||
| 5603 | "node": ">=6.0" | ||
| 5604 | }, | ||
| 5605 | "peerDependenciesMeta": { | ||
| 5606 | "supports-color": { | ||
| 5607 | "optional": true | ||
| 5608 | } | ||
| 5609 | } | ||
| 5610 | }, | ||
| 5611 | "node_modules/socks-proxy-agent/node_modules/ms": { | ||
| 5612 | "version": "2.1.3", | ||
| 5613 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
| 5614 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", | ||
| 5615 | "license": "MIT" | ||
| 5616 | }, | ||
| 5617 | "node_modules/source-map": { | ||
| 5618 | "version": "0.6.1", | ||
| 5619 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||
| 5620 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", | ||
| 5621 | "license": "BSD-3-Clause", | ||
| 5622 | "optional": true, | ||
| 5623 | "engines": { | ||
| 5624 | "node": ">=0.10.0" | ||
| 5625 | } | ||
| 5626 | }, | ||
| 5627 | "node_modules/sprintf-js": { | ||
| 5628 | "version": "1.1.3", | ||
| 5629 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", | ||
| 5630 | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", | ||
| 5631 | "license": "BSD-3-Clause" | ||
| 5632 | }, | ||
| 5168 | "node_modules/statuses": { | 5633 | "node_modules/statuses": { |
| 5169 | "version": "2.0.1", | 5634 | "version": "2.0.1", |
| 5170 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | 5635 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", |
| @@ -5378,6 +5843,12 @@ | |||
| 5378 | "utf8-byte-length": "^1.0.1" | 5843 | "utf8-byte-length": "^1.0.1" |
| 5379 | } | 5844 | } |
| 5380 | }, | 5845 | }, |
| 5846 | "node_modules/tslib": { | ||
| 5847 | "version": "2.7.0", | ||
| 5848 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", | ||
| 5849 | "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", | ||
| 5850 | "license": "0BSD" | ||
| 5851 | }, | ||
| 5381 | "node_modules/tsscmp": { | 5852 | "node_modules/tsscmp": { |
| 5382 | "version": "1.0.6", | 5853 | "version": "1.0.6", |
| 5383 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", | 5854 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", |
| @@ -5437,6 +5908,15 @@ | |||
| 5437 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", | 5908 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", |
| 5438 | "license": "MIT" | 5909 | "license": "MIT" |
| 5439 | }, | 5910 | }, |
| 5911 | "node_modules/universalify": { | ||
| 5912 | "version": "2.0.1", | ||
| 5913 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", | ||
| 5914 | "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", | ||
| 5915 | "license": "MIT", | ||
| 5916 | "engines": { | ||
| 5917 | "node": ">= 10.0.0" | ||
| 5918 | } | ||
| 5919 | }, | ||
| 5440 | "node_modules/unpipe": { | 5920 | "node_modules/unpipe": { |
| 5441 | "version": "1.0.0", | 5921 | "version": "1.0.0", |
| 5442 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | 5922 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", |
| @@ -30,6 +30,7 @@ | |||
| 30 | "png-chunk-text": "^1.0.0", | 30 | "png-chunk-text": "^1.0.0", |
| 31 | "png-chunks-encode": "^1.0.0", | 31 | "png-chunks-encode": "^1.0.0", |
| 32 | "png-chunks-extract": "^1.0.0", | 32 | "png-chunks-extract": "^1.0.0", |
| 33 | "proxy-agent": "^6.4.0", | ||
| 33 | "rate-limiter-flexible": "^5.0.0", | 34 | "rate-limiter-flexible": "^5.0.0", |
| 34 | "response-time": "^2.3.2", | 35 | "response-time": "^2.3.2", |
| 35 | "sanitize-filename": "^1.6.3", | 36 | "sanitize-filename": "^1.6.3", |
| @@ -37,6 +37,7 @@ util.inspect.defaultOptions.depth = 4; | |||
| 37 | const userModule = require('./src/users'); | 37 | const userModule = require('./src/users'); |
| 38 | const basicAuthMiddleware = require('./src/middleware/basicAuth'); | 38 | const basicAuthMiddleware = require('./src/middleware/basicAuth'); |
| 39 | const whitelistMiddleware = require('./src/middleware/whitelist'); | 39 | const whitelistMiddleware = require('./src/middleware/whitelist'); |
| 40 | const initRequestProxy = require('./src/request-proxy'); | ||
| 40 | const contentManager = require('./src/endpoints/content-manager'); | 41 | const contentManager = require('./src/endpoints/content-manager'); |
| 41 | const { | 42 | const { |
| 42 | getVersion, | 43 | getVersion, |
| @@ -662,6 +663,9 @@ const preSetupTasks = async function () { | |||
| 662 | console.error('Uncaught exception:', err); | 663 | console.error('Uncaught exception:', err); |
| 663 | exitProcess(); | 664 | exitProcess(); |
| 664 | }); | 665 | }); |
| 666 | |||
| 667 | // Add request proxy. | ||
| 668 | initRequestProxy(); | ||
| 665 | }; | 669 | }; |
| 666 | 670 | ||
| 667 | /** | 671 | /** |
| @@ -0,0 +1,52 @@ | |||
| 1 | const http = require('node:http'); | ||
| 2 | const https = require('node:https'); | ||
| 3 | |||
| 4 | const { getConfigValue, isValidUrl, color } = require('./util.js'); | ||
| 5 | |||
| 6 | const LOG_HEADER = '[Request Proxy]'; | ||
| 7 | |||
| 8 | function initRequestProxy() { | ||
| 9 | try { | ||
| 10 | const { ProxyAgent } = require('proxy-agent'); | ||
| 11 | const proxyEnabled = getConfigValue('requestProxy.enabled', false); | ||
| 12 | |||
| 13 | // No proxy is enabled, so return | ||
| 14 | if (!proxyEnabled) { | ||
| 15 | return; | ||
| 16 | } | ||
| 17 | |||
| 18 | const proxyUrl = getConfigValue('requestProxy.url', ''); | ||
| 19 | |||
| 20 | if (!proxyUrl) { | ||
| 21 | console.error(color.red(LOG_HEADER), 'No proxy URL provided'); | ||
| 22 | return; | ||
| 23 | } | ||
| 24 | |||
| 25 | if (!isValidUrl(proxyUrl)) { | ||
| 26 | console.error(color.red(LOG_HEADER), 'Invalid proxy URL provided'); | ||
| 27 | return; | ||
| 28 | } | ||
| 29 | |||
| 30 | // ProxyAgent uses proxy-from-env under the hood | ||
| 31 | // Reference: https://github.com/Rob--W/proxy-from-env | ||
| 32 | process.env.all_proxy = proxyUrl; | ||
| 33 | |||
| 34 | const proxyBypass = getConfigValue('requestProxy.bypass', []); | ||
| 35 | |||
| 36 | if (Array.isArray(proxyBypass) && proxyBypass.length > 0) { | ||
| 37 | process.env.no_proxy = proxyBypass.join(','); | ||
| 38 | } | ||
| 39 | |||
| 40 | const proxyAgent = new ProxyAgent(); | ||
| 41 | http.globalAgent = proxyAgent; | ||
| 42 | https.globalAgent = proxyAgent; | ||
| 43 | |||
| 44 | console.log(); | ||
| 45 | console.log(color.green(LOG_HEADER), 'Proxy URL is used:', color.blue(proxyUrl)); | ||
| 46 | console.log(); | ||
| 47 | } catch (error) { | ||
| 48 | console.error(color.red(LOG_HEADER), 'Failed to initialize request proxy:', error); | ||
| 49 | } | ||
| 50 | } | ||
| 51 | |||
| 52 | module.exports = initRequestProxy; | ||