/usr/local/lib/node_modules/pm2/node_modules/basic-ftp/dist
NameSizeModeActions
Client.d.ts151730644editdlrm
Client.js321890644editdlrm
FileInfo.d.ts24880644editdlrm
FileInfo.js31760644editdlrm
FtpContext.d.ts63310644editdlrm
FtpContext.js150450644editdlrm
index.d.ts2420644editdlrm
index.js14060644editdlrm
netUtils.d.ts8670644editdlrm
netUtils.js24510644editdlrm
parseControlResponse.d.ts10100644editdlrm
parseControlResponse.js23600644editdlrm
parseList.d.ts1430644editdlrm
parseList.js30580644editdlrm
parseListDOS.d.ts4360644editdlrm
parseListDOS.js17750644editdlrm
parseListMLSD.d.ts8450644editdlrm
parseListMLSD.js78470644editdlrm
parseListUnix.d.ts4530644editdlrm
parseListUnix.js57100644editdlrm
ProgressTracker.d.ts16010644editdlrm
ProgressTracker.js20780644editdlrm
StringEncoding.d.ts1410644editdlrm
StringEncoding.js770644editdlrm
StringWriter.d.ts4430644editdlrm
StringWriter.js9970644editdlrm
transfer.d.ts17010644editdlrm
transfer.js140620644editdlrm
Edit: /usr/local/lib/node_modules/pm2/node_modules/basic-ftp/dist/netUtils.js (2451B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.describeTLS = describeTLS; exports.describeAddress = describeAddress; exports.upgradeSocket = upgradeSocket; exports.ipIsPrivateV4Address = ipIsPrivateV4Address; const tls_1 = require("tls"); /** * Returns a string describing the encryption on a given socket instance. */ function describeTLS(socket) { if (socket instanceof tls_1.TLSSocket) { const protocol = socket.getProtocol(); return protocol ? protocol : "Server socket or disconnected client socket"; } return "No encryption"; } /** * Returns a string describing the remote address of a socket. */ function describeAddress(socket) { if (socket.remoteFamily === "IPv6") { return `[${socket.remoteAddress}]:${socket.remotePort}`; } return `${socket.remoteAddress}:${socket.remotePort}`; } /** * Upgrade a socket connection with TLS. */ function upgradeSocket(socket, options) { return new Promise((resolve, reject) => { const tlsOptions = Object.assign({}, options, { socket }); const tlsSocket = (0, tls_1.connect)(tlsOptions, () => { const expectCertificate = tlsOptions.rejectUnauthorized !== false; if (expectCertificate && !tlsSocket.authorized) { reject(tlsSocket.authorizationError); } else { // Remove error listener added below. tlsSocket.removeAllListeners("error"); resolve(tlsSocket); } }).once("error", error => { reject(error); }); }); } /** * Returns true if an IP is a private address according to https://tools.ietf.org/html/rfc1918#section-3. * This will handle IPv4-mapped IPv6 addresses correctly but return false for all other IPv6 addresses. * * @param ip The IP as a string, e.g. "192.168.0.1" */ function ipIsPrivateV4Address(ip = "") { // Handle IPv4-mapped IPv6 addresses like ::ffff:192.168.0.1 if (ip.startsWith("::ffff:")) { ip = ip.substr(7); // Strip ::ffff: prefix } const octets = ip.split(".").map(o => parseInt(o, 10)); return octets[0] === 10 // 10.0.0.0 - 10.255.255.255 || (octets[0] === 172 && octets[1] >= 16 && octets[1] <= 31) // 172.16.0.0 - 172.31.255.255 || (octets[0] === 192 && octets[1] === 168) // 192.168.0.0 - 192.168.255.255 || ip === "127.0.0.1"; }