test: update 'proxy' dependency to v2 (#28895)

This won't fix it yet, but prepare for a smaller version bump once the
upstream fix has been merged.
https://github.com/microsoft/playwright/issues/28701.
This commit is contained in:
Max Schmitt 2024-01-08 19:57:46 +01:00 committed by GitHub
parent 1d8c6d4760
commit 0f3bd9835f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 28 deletions

59
package-lock.json generated
View file

@ -57,7 +57,7 @@
"mime": "^3.0.0", "mime": "^3.0.0",
"ncp": "^2.0.0", "ncp": "^2.0.0",
"node-stream-zip": "^1.15.0", "node-stream-zip": "^1.15.0",
"proxy": "^1.0.2", "proxy": "^2.1.1",
"react": "^18.1.0", "react": "^18.1.0",
"react-dom": "^18.1.0", "react-dom": "^18.1.0",
"socksv5": "0.0.6", "socksv5": "0.0.6",
@ -2281,9 +2281,10 @@
"dev": true "dev": true
}, },
"node_modules/args": { "node_modules/args": {
"version": "5.0.1", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz",
"integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"camelcase": "5.0.0", "camelcase": "5.0.0",
"chalk": "2.4.2", "chalk": "2.4.2",
@ -2491,7 +2492,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/basic-auth-parser": { "node_modules/basic-auth-parser": {
"version": "0.0.2", "version": "0.0.2-1",
"resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz",
"integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==",
"dev": true "dev": true
}, },
"node_modules/boolean": { "node_modules/boolean": {
@ -2613,8 +2616,9 @@
}, },
"node_modules/camelcase": { "node_modules/camelcase": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -5205,8 +5209,9 @@
}, },
"node_modules/leven": { "node_modules/leven": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
"integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -5477,8 +5482,9 @@
}, },
"node_modules/mri": { "node_modules/mri": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
"integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
@ -6002,16 +6008,17 @@
"optional": true "optional": true
}, },
"node_modules/proxy": { "node_modules/proxy": {
"version": "1.0.2", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz",
"integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"args": "5.0.1", "args": "^5.0.3",
"basic-auth-parser": "0.0.2", "basic-auth-parser": "0.0.2-1",
"debug": "^4.1.1" "debug": "^4.3.4"
}, },
"bin": { "engines": {
"proxy": "bin/proxy.js" "node": ">= 14"
} }
}, },
"node_modules/pump": { "node_modules/pump": {
@ -9805,7 +9812,9 @@
"dev": true "dev": true
}, },
"args": { "args": {
"version": "5.0.1", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz",
"integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==",
"dev": true, "dev": true,
"requires": { "requires": {
"camelcase": "5.0.0", "camelcase": "5.0.0",
@ -9963,7 +9972,9 @@
"dev": true "dev": true
}, },
"basic-auth-parser": { "basic-auth-parser": {
"version": "0.0.2", "version": "0.0.2-1",
"resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz",
"integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==",
"dev": true "dev": true
}, },
"boolean": { "boolean": {
@ -10042,6 +10053,8 @@
}, },
"camelcase": { "camelcase": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
@ -11752,6 +11765,8 @@
}, },
"leven": { "leven": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
"integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==",
"dev": true "dev": true
}, },
"levn": { "levn": {
@ -11940,6 +11955,8 @@
}, },
"mri": { "mri": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
"integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
"dev": true "dev": true
}, },
"ms": { "ms": {
@ -12296,12 +12313,14 @@
"optional": true "optional": true
}, },
"proxy": { "proxy": {
"version": "1.0.2", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz",
"integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==",
"dev": true, "dev": true,
"requires": { "requires": {
"args": "5.0.1", "args": "^5.0.3",
"basic-auth-parser": "0.0.2", "basic-auth-parser": "0.0.2-1",
"debug": "^4.1.1" "debug": "^4.3.4"
} }
}, },
"pump": { "pump": {

View file

@ -95,7 +95,7 @@
"mime": "^3.0.0", "mime": "^3.0.0",
"ncp": "^2.0.0", "ncp": "^2.0.0",
"node-stream-zip": "^1.15.0", "node-stream-zip": "^1.15.0",
"proxy": "^1.0.2", "proxy": "^2.1.1",
"react": "^18.1.0", "react": "^18.1.0",
"react-dom": "^18.1.0", "react-dom": "^18.1.0",
"socksv5": "0.0.6", "socksv5": "0.0.6",

View file

@ -14,9 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
import type { IncomingMessage, Server } from 'http'; import type { IncomingMessage } from 'http';
import type { Socket } from 'net'; import type { Socket } from 'net';
import createProxy from 'proxy'; import type { ProxyServer } from 'proxy';
import { createProxy } from 'proxy';
export class TestProxy { export class TestProxy {
readonly PORT: number; readonly PORT: number;
@ -25,7 +26,7 @@ export class TestProxy {
connectHosts: string[] = []; connectHosts: string[] = [];
requestUrls: string[] = []; requestUrls: string[] = [];
private readonly _server: Server; private readonly _server: ProxyServer;
private readonly _sockets = new Set<Socket>(); private readonly _sockets = new Set<Socket>();
private _handlers: { event: string, handler: (...args: any[]) => void }[] = []; private _handlers: { event: string, handler: (...args: any[]) => void }[] = [];
@ -66,11 +67,11 @@ export class TestProxy {
} }
setAuthHandler(handler: (req: IncomingMessage) => boolean) { setAuthHandler(handler: (req: IncomingMessage) => boolean) {
(this._server as any).authenticate = (req: IncomingMessage, callback) => { this._server.authenticate = (req: IncomingMessage) => {
try { try {
callback(null, handler(req)); return handler(req);
} catch (e) { } catch (e) {
callback(e, false); return false;
} }
}; };
} }
@ -81,7 +82,7 @@ export class TestProxy {
for (const { event, handler } of this._handlers) for (const { event, handler } of this._handlers)
this._server.removeListener(event, handler); this._server.removeListener(event, handler);
this._handlers = []; this._handlers = [];
(this._server as any).authenticate = undefined; this._server.authenticate = undefined;
} }
private _prependHandler(event: string, handler: (...args: any[]) => void) { private _prependHandler(event: string, handler: (...args: any[]) => void) {