/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/parseControlResponse.js (2360B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseControlResponse = parseControlResponse; exports.isSingleLine = isSingleLine; exports.isMultiline = isMultiline; exports.positiveCompletion = positiveCompletion; exports.positiveIntermediate = positiveIntermediate; const LF = "\n"; /** * Parse an FTP control response as a collection of messages. A message is a complete * single- or multiline response. A response can also contain multiple multiline responses * that will each be represented by a message. A response can also be incomplete * and be completed on the next incoming data chunk for which case this function also * describes a `rest`. This function converts all CRLF to LF. */ function parseControlResponse(text) { const lines = text.split(/\r?\n/).filter(isNotBlank); const messages = []; let startAt = 0; let tokenRegex; for (let i = 0; i < lines.length; i++) { const line = lines[i]; // No group has been opened. if (!tokenRegex) { if (isMultiline(line)) { // Open a group by setting an expected token. const token = line.substr(0, 3); tokenRegex = new RegExp(`^${token}(?:$| )`); startAt = i; } else if (isSingleLine(line)) { // Single lines can be grouped immediately. messages.push(line); } } // Group has been opened, expect closing token. else if (tokenRegex.test(line)) { tokenRegex = undefined; messages.push(lines.slice(startAt, i + 1).join(LF)); } } // The last group might not have been closed, report it as a rest. const rest = tokenRegex ? lines.slice(startAt).join(LF) + LF : ""; return { messages, rest }; } function isSingleLine(line) { return /^\d\d\d(?:$| )/.test(line); } function isMultiline(line) { return /^\d\d\d-/.test(line); } /** * Return true if an FTP return code describes a positive completion. */ function positiveCompletion(code) { return code >= 200 && code < 300; } /** * Return true if an FTP return code describes a positive intermediate response. */ function positiveIntermediate(code) { return code >= 300 && code < 400; } function isNotBlank(str) { return str.trim() !== ""; }