/usr/local/lib/node_modules/pm2/node_modules/basic-ftp/dist
NameSizeModeActions
Client.d.ts147780644editdlrm
Client.js315090644editdlrm
FileInfo.d.ts24880644editdlrm
FileInfo.js31760644editdlrm
FtpContext.d.ts64240644editdlrm
FtpContext.js148480644editdlrm
index.d.ts2420644editdlrm
index.js14060644editdlrm
netUtils.d.ts9290644editdlrm
netUtils.js25620644editdlrm
parseControlResponse.d.ts10100644editdlrm
parseControlResponse.js25040644editdlrm
parseList.d.ts1430644editdlrm
parseList.js27540644editdlrm
parseListDOS.d.ts4360644editdlrm
parseListDOS.js18460644editdlrm
parseListMLSD.d.ts8450644editdlrm
parseListMLSD.js79420644editdlrm
parseListUnix.d.ts4530644editdlrm
parseListUnix.js57810644editdlrm
ProgressTracker.d.ts16320644editdlrm
ProgressTracker.js20780644editdlrm
StringEncoding.d.ts1410644editdlrm
StringEncoding.js770644editdlrm
StringWriter.d.ts3770644editdlrm
StringWriter.js6750644editdlrm
transfer.d.ts13270644editdlrm
transfer.js133580644editdlrm
Edit: /usr/local/lib/node_modules/pm2/node_modules/basic-ftp/dist/parseControlResponse.js (2504B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.positiveIntermediate = exports.positiveCompletion = exports.isMultiline = exports.isSingleLine = exports.parseControlResponse = void 0; 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 }; } exports.parseControlResponse = parseControlResponse; function isSingleLine(line) { return /^\d\d\d(?:$| )/.test(line); } exports.isSingleLine = isSingleLine; function isMultiline(line) { return /^\d\d\d-/.test(line); } exports.isMultiline = isMultiline; /** * Return true if an FTP return code describes a positive completion. */ function positiveCompletion(code) { return code >= 200 && code < 300; } exports.positiveCompletion = positiveCompletion; /** * Return true if an FTP return code describes a positive intermediate response. */ function positiveIntermediate(code) { return code >= 300 && code < 400; } exports.positiveIntermediate = positiveIntermediate; function isNotBlank(str) { return str.trim() !== ""; }