mirror of
https://github.com/shimataro/ssh-key-action.git
synced 2025-06-19 22:52:10 +10:00
* first action! (#1)
This commit is contained in:
parent
8deacc95b1
commit
ace1e6a69a
3750 changed files with 1155519 additions and 0 deletions
100
node_modules/socks/build/common/helpers.js
generated
vendored
Normal file
100
node_modules/socks/build/common/helpers.js
generated
vendored
Normal file
|
@ -0,0 +1,100 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const util_1 = require("./util");
|
||||
const constants_1 = require("./constants");
|
||||
const stream = require("stream");
|
||||
/**
|
||||
* Validates the provided SocksClientOptions
|
||||
* @param options { SocksClientOptions }
|
||||
* @param acceptedCommands { string[] } A list of accepted SocksProxy commands.
|
||||
*/
|
||||
function validateSocksClientOptions(options, acceptedCommands = ['connect', 'bind', 'associate']) {
|
||||
// Check SOCKs command option.
|
||||
if (!constants_1.SocksCommand[options.command]) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommand, options);
|
||||
}
|
||||
// Check SocksCommand for acceptable command.
|
||||
if (acceptedCommands.indexOf(options.command) === -1) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandForOperation, options);
|
||||
}
|
||||
// Check destination
|
||||
if (!isValidSocksRemoteHost(options.destination)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
|
||||
}
|
||||
// Check SOCKS proxy to use
|
||||
if (!isValidSocksProxy(options.proxy)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
|
||||
}
|
||||
// Check timeout
|
||||
if (options.timeout && !isValidTimeoutValue(options.timeout)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
|
||||
}
|
||||
// Check existing_socket (if provided)
|
||||
if (options.existing_socket &&
|
||||
!(options.existing_socket instanceof stream.Duplex)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsExistingSocket, options);
|
||||
}
|
||||
}
|
||||
exports.validateSocksClientOptions = validateSocksClientOptions;
|
||||
/**
|
||||
* Validates the SocksClientChainOptions
|
||||
* @param options { SocksClientChainOptions }
|
||||
*/
|
||||
function validateSocksClientChainOptions(options) {
|
||||
// Only connect is supported when chaining.
|
||||
if (options.command !== 'connect') {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandChain, options);
|
||||
}
|
||||
// Check destination
|
||||
if (!isValidSocksRemoteHost(options.destination)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
|
||||
}
|
||||
// Validate proxies (length)
|
||||
if (!(options.proxies &&
|
||||
Array.isArray(options.proxies) &&
|
||||
options.proxies.length >= 2)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxiesLength, options);
|
||||
}
|
||||
// Validate proxies
|
||||
options.proxies.forEach((proxy) => {
|
||||
if (!isValidSocksProxy(proxy)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
|
||||
}
|
||||
});
|
||||
// Check timeout
|
||||
if (options.timeout && !isValidTimeoutValue(options.timeout)) {
|
||||
throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
|
||||
}
|
||||
}
|
||||
exports.validateSocksClientChainOptions = validateSocksClientChainOptions;
|
||||
/**
|
||||
* Validates a SocksRemoteHost
|
||||
* @param remoteHost { SocksRemoteHost }
|
||||
*/
|
||||
function isValidSocksRemoteHost(remoteHost) {
|
||||
return (remoteHost &&
|
||||
typeof remoteHost.host === 'string' &&
|
||||
typeof remoteHost.port === 'number' &&
|
||||
remoteHost.port >= 0 &&
|
||||
remoteHost.port <= 65535);
|
||||
}
|
||||
/**
|
||||
* Validates a SocksProxy
|
||||
* @param proxy { SocksProxy }
|
||||
*/
|
||||
function isValidSocksProxy(proxy) {
|
||||
return (proxy &&
|
||||
(typeof proxy.host === 'string' || typeof proxy.ipaddress === 'string') &&
|
||||
typeof proxy.port === 'number' &&
|
||||
proxy.port >= 0 &&
|
||||
proxy.port <= 65535 &&
|
||||
(proxy.type === 4 || proxy.type === 5));
|
||||
}
|
||||
/**
|
||||
* Validates a timeout value.
|
||||
* @param value { Number }
|
||||
*/
|
||||
function isValidTimeoutValue(value) {
|
||||
return typeof value === 'number' && value > 0;
|
||||
}
|
||||
//# sourceMappingURL=helpers.js.map
|
Loading…
Add table
Add a link
Reference in a new issue