mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-22 00:16:15 -04:00
deps: Upgrade formidable to 2.0.1
This commit is contained in:
parent
6009fdf979
commit
5520161088
4 changed files with 53 additions and 26 deletions
|
@ -26,7 +26,7 @@ const padMessageHandler = require('./PadMessageHandler');
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
const formidable = require('formidable');
|
const {Formidable} = require('formidable');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const importHtml = require('../utils/ImportHtml');
|
const importHtml = require('../utils/ImportHtml');
|
||||||
const importEtherpad = require('../utils/ImportEtherpad');
|
const importEtherpad = require('../utils/ImportEtherpad');
|
||||||
|
@ -83,22 +83,11 @@ const doImport = async (req, res, padId) => {
|
||||||
// setting flag for whether to use converter or not
|
// setting flag for whether to use converter or not
|
||||||
let useConverter = (converter != null);
|
let useConverter = (converter != null);
|
||||||
|
|
||||||
const form = new formidable.IncomingForm();
|
const form = new Formidable({
|
||||||
form.keepExtensions = true;
|
keepExtensions: true,
|
||||||
form.uploadDir = tmpDirectory;
|
uploadDir: tmpDirectory,
|
||||||
form.maxFileSize = settings.importMaxFileSize;
|
maxFileSize: settings.importMaxFileSize,
|
||||||
|
});
|
||||||
// Ref: https://github.com/node-formidable/formidable/issues/469
|
|
||||||
// Crash in Etherpad was Uploading Error: Error: Request aborted
|
|
||||||
// [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
|
|
||||||
form.onPart = (part) => {
|
|
||||||
form.handlePart(part);
|
|
||||||
if (part.filename !== undefined) {
|
|
||||||
form.openedFiles[form.openedFiles.length - 1]._writeStream.on('error', (err) => {
|
|
||||||
form.emit('error', err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// locally wrapped Promise, since form.parse requires a callback
|
// locally wrapped Promise, since form.parse requires a callback
|
||||||
let srcFile = await new Promise((resolve, reject) => {
|
let srcFile = await new Promise((resolve, reject) => {
|
||||||
|
@ -115,7 +104,7 @@ const doImport = async (req, res, padId) => {
|
||||||
logger.warn('Import failed because form had no file');
|
logger.warn('Import failed because form had no file');
|
||||||
return reject(new ImportError('uploadFailed'));
|
return reject(new ImportError('uploadFailed'));
|
||||||
}
|
}
|
||||||
resolve(files.file.path);
|
resolve(files.file.filepath);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -2,22 +2,23 @@
|
||||||
|
|
||||||
const log4js = require('log4js');
|
const log4js = require('log4js');
|
||||||
const clientLogger = log4js.getLogger('client');
|
const clientLogger = log4js.getLogger('client');
|
||||||
const formidable = require('formidable');
|
const {Formidable} = require('formidable');
|
||||||
const apiHandler = require('../../handler/APIHandler');
|
const apiHandler = require('../../handler/APIHandler');
|
||||||
const util = require('util');
|
const util = require('util');
|
||||||
|
|
||||||
exports.expressPreSession = async (hookName, {app}) => {
|
exports.expressPreSession = async (hookName, {app}) => {
|
||||||
// The Etherpad client side sends information about how a disconnect happened
|
// The Etherpad client side sends information about how a disconnect happened
|
||||||
app.post('/ep/pad/connection-diagnostic-info', (req, res) => {
|
app.post('/ep/pad/connection-diagnostic-info', (req, res) => {
|
||||||
new formidable.IncomingForm().parse(req, (err, fields, files) => {
|
new Formidable().parse(req, (err, fields, files) => {
|
||||||
clientLogger.info(`DIAGNOSTIC-INFO: ${fields.diagnosticInfo}`);
|
clientLogger.info(`DIAGNOSTIC-INFO: ${fields.diagnosticInfo}`);
|
||||||
res.end('OK');
|
res.end('OK');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const parseJserrorForm = async (req) => await new Promise((resolve, reject) => {
|
const parseJserrorForm = async (req) => await new Promise((resolve, reject) => {
|
||||||
const form = new formidable.IncomingForm();
|
const form = new Formidable({
|
||||||
form.maxFileSize = 1; // Files are not expected. Not sure if 0 means unlimited, so 1 is used.
|
maxFileSize: 1, // Files are not expected. Not sure if 0 means unlimited, so 1 is used.
|
||||||
|
});
|
||||||
form.on('error', (err) => reject(err));
|
form.on('error', (err) => reject(err));
|
||||||
form.parse(req, (err, fields) => err != null ? reject(err) : resolve(fields.errorInfo));
|
form.parse(req, (err, fields) => err != null ? reject(err) : resolve(fields.errorInfo));
|
||||||
});
|
});
|
||||||
|
|
43
src/package-lock.json
generated
43
src/package-lock.json
generated
|
@ -936,6 +936,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
|
||||||
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
|
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
|
||||||
},
|
},
|
||||||
|
"asap": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
||||||
|
},
|
||||||
"asn1": {
|
"asn1": {
|
||||||
"version": "0.2.4",
|
"version": "0.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||||
|
@ -1537,6 +1542,15 @@
|
||||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
|
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"dezalgo": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
|
||||||
|
"requires": {
|
||||||
|
"asap": "^2.0.0",
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"diff": {
|
"diff": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
|
||||||
|
@ -2452,9 +2466,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"formidable": {
|
"formidable": {
|
||||||
"version": "1.2.6",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
|
||||||
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ=="
|
"integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
|
||||||
|
"requires": {
|
||||||
|
"dezalgo": "1.0.3",
|
||||||
|
"hexoid": "1.0.0",
|
||||||
|
"once": "1.4.0",
|
||||||
|
"qs": "6.9.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"qs": {
|
||||||
|
"version": "6.9.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
|
||||||
|
"integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
|
@ -2801,6 +2828,11 @@
|
||||||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"hexoid": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g=="
|
||||||
|
},
|
||||||
"html-encoding-sniffer": {
|
"html-encoding-sniffer": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
|
||||||
|
@ -8400,6 +8432,11 @@
|
||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"formidable": {
|
||||||
|
"version": "1.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
|
||||||
|
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ=="
|
||||||
|
},
|
||||||
"mime": {
|
"mime": {
|
||||||
"version": "2.6.0",
|
"version": "2.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
"express-session": "npm:@etherpad/express-session@^1.18.1",
|
"express-session": "npm:@etherpad/express-session@^1.18.1",
|
||||||
"fast-deep-equal": "^3.1.3",
|
"fast-deep-equal": "^3.1.3",
|
||||||
"find-root": "1.1.0",
|
"find-root": "1.1.0",
|
||||||
"formidable": "^1.2.6",
|
"formidable": "^2.0.1",
|
||||||
"http-errors": "^2.0.0",
|
"http-errors": "^2.0.0",
|
||||||
"js-cookie": "^3.0.1",
|
"js-cookie": "^3.0.1",
|
||||||
"jsdom": "^18.1.1",
|
"jsdom": "^18.1.1",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue