forked from annv/MinigameTest
minigame
This commit is contained in:
222
node_modules/selenium-webdriver/lib/proxy.js
generated
vendored
Normal file
222
node_modules/selenium-webdriver/lib/proxy.js
generated
vendored
Normal file
@@ -0,0 +1,222 @@
|
||||
// Licensed to the Software Freedom Conservancy (SFC) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The SFC licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
/**
|
||||
* @fileoverview Defines functions for configuring a webdriver proxy:
|
||||
*
|
||||
* const proxy = require('selenium-webdriver/proxy');
|
||||
* const {Capabilities} = require('selenium-webdriver');
|
||||
*
|
||||
* let capabilities = new Capabilities();
|
||||
* capabilities.setProxy(proxy.manual({http: 'host:1234'});
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
/**
|
||||
* Supported {@linkplain Config proxy configuration} types.
|
||||
*
|
||||
* @enum {string}
|
||||
*/
|
||||
const Type = {
|
||||
AUTODETECT: 'autodetect',
|
||||
DIRECT: 'direct',
|
||||
MANUAL: 'manual',
|
||||
PAC: 'pac',
|
||||
SYSTEM: 'system',
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes how a proxy should be configured for a WebDriver session.
|
||||
* @record
|
||||
*/
|
||||
function Config() {}
|
||||
|
||||
/**
|
||||
* The proxy type.
|
||||
* @type {Type}
|
||||
*/
|
||||
Config.prototype.proxyType
|
||||
|
||||
/**
|
||||
* Describes how to configure a PAC proxy.
|
||||
* @record
|
||||
* @extends {Config}
|
||||
*/
|
||||
function PacConfig() {}
|
||||
|
||||
/**
|
||||
* URL for the PAC file to use.
|
||||
*
|
||||
* @type {string}
|
||||
*/
|
||||
PacConfig.prototype.proxyAutoconfigUrl
|
||||
|
||||
/**
|
||||
* Record object that defines a manual proxy configuration. Manual
|
||||
* configurations can be easily created using either the
|
||||
* {@link ./proxy.manual proxy.manual()} or {@link ./proxy.socks proxy.socks()}
|
||||
* factory method.
|
||||
*
|
||||
* @record
|
||||
* @extends {Config}
|
||||
*/
|
||||
function ManualConfig() {}
|
||||
|
||||
/**
|
||||
* The proxy host for FTP requests.
|
||||
*
|
||||
* @type {(string|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.ftpProxy
|
||||
|
||||
/**
|
||||
* The proxy host for HTTP requests.
|
||||
*
|
||||
* @type {(string|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.httpProxy
|
||||
|
||||
/**
|
||||
* An array of hosts which should bypass all proxies.
|
||||
*
|
||||
* @type {(Array<string>|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.noProxy
|
||||
|
||||
/**
|
||||
* The proxy host for HTTPS requests.
|
||||
*
|
||||
* @type {(string|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.sslProxy
|
||||
|
||||
/**
|
||||
* Defines the host and port for the SOCKS proxy to use.
|
||||
*
|
||||
* @type {(number|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.socksProxy
|
||||
|
||||
/**
|
||||
* Defines the SOCKS proxy version. Must be a number in the range [0, 255].
|
||||
*
|
||||
* @type {(number|undefined)}
|
||||
*/
|
||||
ManualConfig.prototype.socksVersion
|
||||
|
||||
// PUBLIC API
|
||||
|
||||
/** @const */ exports.Config = Config
|
||||
/** @const */ exports.ManualConfig = ManualConfig
|
||||
/** @const */ exports.PacConfig = PacConfig
|
||||
/** @const */ exports.Type = Type
|
||||
|
||||
/**
|
||||
* Configures WebDriver to bypass all browser proxies.
|
||||
* @return {!Config} A new proxy configuration object.
|
||||
*/
|
||||
function direct() {
|
||||
return { proxyType: Type.DIRECT }
|
||||
}
|
||||
|
||||
/**
|
||||
* Manually configures the browser proxy. The following options are
|
||||
* supported:
|
||||
*
|
||||
* - `ftp`: Proxy host to use for FTP requests
|
||||
* - `http`: Proxy host to use for HTTP requests
|
||||
* - `https`: Proxy host to use for HTTPS requests
|
||||
* - `bypass`: A list of hosts requests should directly connect to,
|
||||
* bypassing any other proxies for that request. May be specified as a
|
||||
* comma separated string, or a list of strings.
|
||||
*
|
||||
* Behavior is undefined for FTP, HTTP, and HTTPS requests if the
|
||||
* corresponding key is omitted from the configuration options.
|
||||
*
|
||||
* @param {{ftp: (string|undefined),
|
||||
* http: (string|undefined),
|
||||
* https: (string|undefined),
|
||||
* bypass: (Array<string>|undefined)}} options Proxy
|
||||
* configuration options.
|
||||
* @return {!ManualConfig} A new proxy configuration object.
|
||||
*/
|
||||
function manual({ ftp, http, https, bypass }) {
|
||||
return {
|
||||
proxyType: Type.MANUAL,
|
||||
ftpProxy: ftp,
|
||||
httpProxy: http,
|
||||
sslProxy: https,
|
||||
noProxy: bypass,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a proxy configuration for a socks proxy.
|
||||
*
|
||||
* __Example:__
|
||||
*
|
||||
* const {Capabilities} = require('selenium-webdriver');
|
||||
* const proxy = require('selenium-webdriver/lib/proxy');
|
||||
*
|
||||
* let capabilities = new Capabilities();
|
||||
* capabilities.setProxy(proxy.socks('localhost:1234'));
|
||||
*
|
||||
* // Or, to include authentication.
|
||||
* capabilities.setProxy(proxy.socks('bob:password@localhost:1234'));
|
||||
*
|
||||
*
|
||||
* @param {string} socksProxy The proxy host, in the form `hostname:port`.
|
||||
* @param {number=} socksVersion The SOCKS proxy version.
|
||||
* @return {!ManualConfig} A new proxy configuration object.
|
||||
* @see https://en.wikipedia.org/wiki/SOCKS
|
||||
*/
|
||||
function socks(socksProxy, socksVersion = undefined) {
|
||||
return /** @type {!Config} */ ({
|
||||
proxyType: Type.MANUAL,
|
||||
socksProxy,
|
||||
socksVersion,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Configures WebDriver to configure the browser proxy using the PAC file at
|
||||
* the given URL.
|
||||
* @param {string} proxyAutoconfigUrl URL for the PAC proxy to use.
|
||||
* @return {!PacConfig} A new proxy configuration object.
|
||||
*/
|
||||
function pac(proxyAutoconfigUrl) {
|
||||
return { proxyType: Type.PAC, proxyAutoconfigUrl }
|
||||
}
|
||||
|
||||
/**
|
||||
* Configures WebDriver to use the current system's proxy.
|
||||
* @return {!Config} A new proxy configuration object.
|
||||
*/
|
||||
function system() {
|
||||
return { proxyType: Type.SYSTEM }
|
||||
}
|
||||
|
||||
// PUBLIC API
|
||||
|
||||
module.exports = {
|
||||
system,
|
||||
pac,
|
||||
socks,
|
||||
manual,
|
||||
direct,
|
||||
}
|
||||
Reference in New Issue
Block a user