mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-05 14:47:12 -04:00
Converted imports to es
This commit is contained in:
parent
078324c0d1
commit
4b8911dfee
33 changed files with 111 additions and 98 deletions
|
@ -12,7 +12,7 @@ const Changeset = require('../../static/js/Changeset');
|
||||||
const ChatMessage = require('../../static/js/ChatMessage');
|
const ChatMessage = require('../../static/js/ChatMessage');
|
||||||
const AttributePool = require('../../static/js/AttributePool');
|
const AttributePool = require('../../static/js/AttributePool');
|
||||||
const Stream = require('../utils/Stream');
|
const Stream = require('../utils/Stream');
|
||||||
const assert = require('assert').strict;
|
import {strict as assert} from "assert";
|
||||||
const db = require('./DB');
|
const db = require('./DB');
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
const authorManager = require('./AuthorManager');
|
const authorManager = require('./AuthorManager');
|
||||||
|
@ -39,13 +39,13 @@ exports.cleanText = (txt:string): string => txt.replace(/\r\n/g, '\n')
|
||||||
|
|
||||||
class Pad {
|
class Pad {
|
||||||
private db: Database;
|
private db: Database;
|
||||||
private atext: AText;
|
private readonly atext: AText;
|
||||||
private pool: APool;
|
private pool: APool;
|
||||||
private head: number;
|
private head: number;
|
||||||
private chatHead: number;
|
private chatHead: number;
|
||||||
private publicStatus: boolean;
|
private publicStatus: boolean;
|
||||||
private id: string;
|
private id: string;
|
||||||
private savedRevisions: any[];
|
private readonly savedRevisions: any[];
|
||||||
/**
|
/**
|
||||||
* @param id
|
* @param id
|
||||||
* @param [database] - Database object to access this pad's records (and only this pad's records;
|
* @param [database] - Database object to access this pad's records (and only this pad's records;
|
||||||
|
|
|
@ -28,7 +28,7 @@ const readOnlyManager = require('./ReadOnlyManager');
|
||||||
const sessionManager = require('./SessionManager');
|
const sessionManager = require('./SessionManager');
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
const webaccess = require('../hooks/express/webaccess');
|
const webaccess = require('../hooks/express/webaccess');
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const authLogger = log4js.getLogger('auth');
|
const authLogger = log4js.getLogger('auth');
|
||||||
const {padutils} = require('../../static/js/pad_utils');
|
const {padutils} = require('../../static/js/pad_utils');
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
const DB = require('./DB');
|
const DB = require('./DB');
|
||||||
const Store = require('express-session').Store;
|
const Store = require('express-session').Store;
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const util = require('util');
|
import util from 'util';
|
||||||
|
|
||||||
const logger = log4js.getLogger('SessionStore');
|
const logger = log4js.getLogger('SessionStore');
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
* require("./index").require("./path/to/template.ejs")
|
* require("./index").require("./path/to/template.ejs")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ejs = require('ejs');
|
import ejs from 'ejs';
|
||||||
const fs = require('fs');
|
import fs from 'fs';
|
||||||
const hooks = require('../../static/js/pluginfw/hooks.js');
|
const hooks = require('../../static/js/pluginfw/hooks.js');
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const resolve = require('resolve');
|
import resolve from 'resolve';
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
|
|
||||||
const templateCache = new Map();
|
const templateCache = new Map();
|
||||||
|
|
|
@ -38,7 +38,7 @@ const messageLogger = log4js.getLogger('message');
|
||||||
const accessLogger = log4js.getLogger('access');
|
const accessLogger = log4js.getLogger('access');
|
||||||
const hooks = require('../../static/js/pluginfw/hooks.js');
|
const hooks = require('../../static/js/pluginfw/hooks.js');
|
||||||
const stats = require('../stats')
|
const stats = require('../stats')
|
||||||
const assert = require('assert').strict;
|
import {strict as assert} from "assert";
|
||||||
import {RateLimiterMemory} from 'rate-limiter-flexible';
|
import {RateLimiterMemory} from 'rate-limiter-flexible';
|
||||||
import {ChangesetRequest, PadUserInfo, SocketClientRequest} from "../types/SocketClientRequest";
|
import {ChangesetRequest, PadUserInfo, SocketClientRequest} from "../types/SocketClientRequest";
|
||||||
import {APool, AText, PadAuthor, PadType} from "../types/PadType";
|
import {APool, AText, PadAuthor, PadType} from "../types/PadType";
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
import {MapArrayType} from "../types/MapType";
|
import {MapArrayType} from "../types/MapType";
|
||||||
import {SocketModule} from "../types/SocketModule";
|
import {SocketModule} from "../types/SocketModule";
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
const stats = require('../../node/stats')
|
const stats = require('../../node/stats')
|
||||||
|
|
||||||
|
|
|
@ -119,11 +119,10 @@ exports.restartServer = async () => {
|
||||||
options.ca.push(fs.readFileSync(caFileName));
|
options.ca.push(fs.readFileSync(caFileName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const https = await import('https')
|
||||||
const https = require('https');
|
|
||||||
exports.server = https.createServer(options, app);
|
exports.server = https.createServer(options, app);
|
||||||
} else {
|
} else {
|
||||||
const http = require('http');
|
const http = await import('http')
|
||||||
exports.server = http.createServer(app);
|
exports.server = http.createServer(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ const settings = require('../../utils/Settings');
|
||||||
const installer = require('../../../static/js/pluginfw/installer');
|
const installer = require('../../../static/js/pluginfw/installer');
|
||||||
const pluginDefs = require('../../../static/js/pluginfw/plugin_defs');
|
const pluginDefs = require('../../../static/js/pluginfw/plugin_defs');
|
||||||
const plugins = require('../../../static/js/pluginfw/plugins');
|
const plugins = require('../../../static/js/pluginfw/plugins');
|
||||||
const semver = require('semver');
|
import semver from 'semver';
|
||||||
|
|
||||||
|
|
||||||
exports.socketio = (hookName:string, args:ArgsExpressType, cb:Function) => {
|
exports.socketio = (hookName:string, args:ArgsExpressType, cb:Function) => {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import {PadQueryResult, PadSearchQuery} from "../../types/PadSearchQuery";
|
||||||
import {PadType} from "../../types/PadType";
|
import {PadType} from "../../types/PadType";
|
||||||
|
|
||||||
const eejs = require('../../eejs');
|
const eejs = require('../../eejs');
|
||||||
const fsp = require('fs').promises;
|
import {promises as fsp} from 'fs'
|
||||||
const hooks = require('../../../static/js/pluginfw/hooks');
|
const hooks = require('../../../static/js/pluginfw/hooks');
|
||||||
const plugins = require('../../../static/js/pluginfw/plugins');
|
const plugins = require('../../../static/js/pluginfw/plugins');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const clientLogger = log4js.getLogger('client');
|
const clientLogger = log4js.getLogger('client');
|
||||||
const {Formidable} = require('formidable');
|
import {Formidable} from 'formidable';
|
||||||
const apiHandler = require('../../handler/APIHandler');
|
const apiHandler = require('../../handler/APIHandler');
|
||||||
const util = require('util');
|
import util from 'util';
|
||||||
|
|
||||||
exports.expressPreSession = async (hookName:string, {app}:any) => {
|
exports.expressPreSession = async (hookName:string, {app}:any) => {
|
||||||
// The Etherpad client side sends information about how a disconnect happened
|
// The Etherpad client side sends information about how a disconnect happened
|
||||||
|
@ -14,17 +14,18 @@ exports.expressPreSession = async (hookName:string, {app}:any) => {
|
||||||
res.end('OK');
|
res.end('OK');
|
||||||
});
|
});
|
||||||
|
|
||||||
const parseJserrorForm = async (req:any) => {
|
const parseJserrorForm = async (req:any):Promise<string[]> => {
|
||||||
const form = new Formidable({
|
const form = new Formidable({
|
||||||
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.
|
||||||
});
|
});
|
||||||
const [fields, files] = await form.parse(req);
|
const [fields, files] = await form.parse(req);
|
||||||
return fields.errorInfo;
|
return fields.errorInfo!;
|
||||||
};
|
};
|
||||||
|
|
||||||
// The Etherpad client side sends information about client side javscript errors
|
// The Etherpad client side sends information about client side javscript errors
|
||||||
app.post('/jserror', (req:any, res:any, next:Function) => {
|
app.post('/jserror', (req:any, res:any, next:Function) => {
|
||||||
(async () => {
|
(async () => {
|
||||||
|
// @ts-ignore
|
||||||
const data = JSON.parse(await parseJserrorForm(req));
|
const data = JSON.parse(await parseJserrorForm(req));
|
||||||
clientLogger.warn(`${data.msg} --`, {
|
clientLogger.warn(`${data.msg} --`, {
|
||||||
[util.inspect.custom]: (depth: number, options:any) => {
|
[util.inspect.custom]: (depth: number, options:any) => {
|
||||||
|
|
|
@ -8,7 +8,7 @@ const exportHandler = require('../../handler/ExportHandler');
|
||||||
const importHandler = require('../../handler/ImportHandler');
|
const importHandler = require('../../handler/ImportHandler');
|
||||||
const padManager = require('../../db/PadManager');
|
const padManager = require('../../db/PadManager');
|
||||||
const readOnlyManager = require('../../db/ReadOnlyManager');
|
const readOnlyManager = require('../../db/ReadOnlyManager');
|
||||||
const rateLimit = require('express-rate-limit');
|
import rateLimit from 'express-rate-limit';
|
||||||
const securityManager = require('../../db/SecurityManager');
|
const securityManager = require('../../db/SecurityManager');
|
||||||
const webaccess = require('./webaccess');
|
const webaccess = require('./webaccess');
|
||||||
|
|
||||||
|
|
|
@ -19,14 +19,14 @@ import {ErrorCaused} from "../../types/ErrorCaused";
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const OpenAPIBackend = require('openapi-backend').default;
|
const OpenAPIBackend = require('openapi-backend').default;
|
||||||
const IncomingForm = require('formidable').IncomingForm;
|
import {IncomingForm} from 'formidable'
|
||||||
const cloneDeep = require('lodash.clonedeep');
|
import cloneDeep from 'lodash.clonedeep';
|
||||||
const createHTTPError = require('http-errors');
|
import createHTTPError from 'http-errors';
|
||||||
|
|
||||||
const apiHandler = require('../../handler/APIHandler');
|
const apiHandler = require('../../handler/APIHandler');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
|
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const logger = log4js.getLogger('API');
|
const logger = log4js.getLogger('API');
|
||||||
|
|
||||||
// https://github.com/OAI/OpenAPI-Specification/tree/master/schemas/v3.0
|
// https://github.com/OAI/OpenAPI-Specification/tree/master/schemas/v3.0
|
||||||
|
@ -401,6 +401,7 @@ for (const [resource, actions] of Object.entries(resources)) {
|
||||||
// add response objects
|
// add response objects
|
||||||
const responses:OpenAPISuccessResponse = {...defaultResponseRefs};
|
const responses:OpenAPISuccessResponse = {...defaultResponseRefs};
|
||||||
if (responseSchema) {
|
if (responseSchema) {
|
||||||
|
// @ts-ignore
|
||||||
responses[200] = cloneDeep(defaultResponses.Success);
|
responses[200] = cloneDeep(defaultResponses.Success);
|
||||||
responses[200].content!['application/json'].schema.properties.data = {
|
responses[200].content!['application/json'].schema.properties.data = {
|
||||||
type: 'object',
|
type: 'object',
|
||||||
|
@ -636,7 +637,7 @@ exports.expressPreSession = async (hookName:string, {app}:any) => {
|
||||||
// an unknown error happened
|
// an unknown error happened
|
||||||
// log it and throw internal error
|
// log it and throw internal error
|
||||||
logger.error(errCaused.stack || errCaused.toString());
|
logger.error(errCaused.stack || errCaused.toString());
|
||||||
throw new createHTTPError.InternalError('internal error');
|
throw new createHTTPError.InternalServerError('internal error');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,7 +658,7 @@ exports.expressPreSession = async (hookName:string, {app}:any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// start and bind to express
|
// start and bind to express
|
||||||
api.init();
|
await api.init();
|
||||||
app.use(apiRoot, async (req:any, res:any) => {
|
app.use(apiRoot, async (req:any, res:any) => {
|
||||||
let response = null;
|
let response = null;
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import {ArgsExpressType} from "../../types/ArgsExpressType";
|
||||||
import events from 'events';
|
import events from 'events';
|
||||||
const express = require('../express');
|
const express = require('../express');
|
||||||
import log4js from 'log4js';
|
import log4js from 'log4js';
|
||||||
const proxyaddr = require('proxy-addr');
|
import proxyaddr from 'proxy-addr';
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
import {Server, Socket} from 'socket.io'
|
import {Server, Socket} from 'socket.io'
|
||||||
const socketIORouter = require('../../handler/SocketIORouter');
|
const socketIORouter = require('../../handler/SocketIORouter');
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const eejs = require('../../eejs');
|
const eejs = require('../../eejs');
|
||||||
const fs = require('fs');
|
import fs from 'fs';
|
||||||
const fsp = fs.promises;
|
import {promises as fsp} from 'fs';
|
||||||
const toolbar = require('../../utils/toolbar');
|
const toolbar = require('../../utils/toolbar');
|
||||||
const hooks = require('../../../static/js/pluginfw/hooks');
|
const hooks = require('../../../static/js/pluginfw/hooks');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
const util = require('util');
|
import util from 'util';
|
||||||
const webaccess = require('./webaccess');
|
const webaccess = require('./webaccess');
|
||||||
|
|
||||||
exports.expressPreSession = async (hookName:string, {app}:any) => {
|
exports.expressPreSession = async (hookName:string, {app}: { app: any }) => {
|
||||||
// This endpoint is intended to conform to:
|
// This endpoint is intended to conform to:
|
||||||
// https://www.ietf.org/archive/id/draft-inadarei-api-health-check-06.html
|
// https://www.ietf.org/archive/id/draft-inadarei-api-health-check-06.html
|
||||||
app.get('/health', (req:any, res:any) => {
|
app.get('/health', (req:any, res:any) => {
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
import {MapArrayType} from "../../types/MapType";
|
import {MapArrayType} from "../../types/MapType";
|
||||||
import {PartType} from "../../types/PartType";
|
import {PartType} from "../../types/PartType";
|
||||||
|
|
||||||
const fs = require('fs').promises;
|
import {promises as fs} from 'fs'
|
||||||
const minify = require('../../utils/Minify');
|
const minify = require('../../utils/Minify');
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const plugins = require('../../../static/js/pluginfw/plugin_defs');
|
const plugins = require('../../../static/js/pluginfw/plugin_defs');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
const CachingMiddleware = require('../../utils/caching_middleware');
|
const CachingMiddleware = require('../../utils/caching_middleware');
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
import {Dirent} from "node:fs";
|
import {Dirent} from "node:fs";
|
||||||
import {PluginDef} from "../../types/PartType";
|
import {PluginDef} from "../../types/PartType";
|
||||||
|
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const fsp = require('fs').promises;
|
import {promises as fsp} from 'fs';
|
||||||
const plugins = require('../../../static/js/pluginfw/plugin_defs');
|
const plugins = require('../../../static/js/pluginfw/plugin_defs');
|
||||||
const sanitizePathname = require('../../utils/sanitizePathname');
|
const sanitizePathname = require('../../utils/sanitizePathname');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
|
|
|
@ -4,11 +4,11 @@ import type {MapArrayType} from "../types/MapType";
|
||||||
import {I18nPluginDefs} from "../types/I18nPluginDefs";
|
import {I18nPluginDefs} from "../types/I18nPluginDefs";
|
||||||
|
|
||||||
const languages = require('languages4translatewiki');
|
const languages = require('languages4translatewiki');
|
||||||
const fs = require('fs');
|
import fs from 'fs';
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const _ = require('underscore');
|
import _ from 'underscore';
|
||||||
const pluginDefs = require('../../static/js/pluginfw/plugin_defs.js');
|
const pluginDefs = require('../../static/js/pluginfw/plugin_defs.js');
|
||||||
const existsSync = require('../utils/path_exists');
|
import existsSync from '../utils/path_exists';
|
||||||
const settings = require('../utils/Settings');
|
const settings = require('../utils/Settings');
|
||||||
|
|
||||||
// returns all existing messages merged together and grouped by langcode
|
// returns all existing messages merged together and grouped by langcode
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
import {DeriveModel} from "../types/DeriveModel";
|
import {DeriveModel} from "../types/DeriveModel";
|
||||||
import {LegacyParams} from "../types/LegacyParams";
|
import {LegacyParams} from "../types/LegacyParams";
|
||||||
|
|
||||||
const {Buffer} = require('buffer');
|
import {Buffer} from 'buffer';
|
||||||
const crypto = require('./crypto');
|
const crypto = require('./crypto');
|
||||||
const db = require('../db/DB');
|
const db = require('../db/DB');
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
|
|
||||||
class Kdf {
|
class Kdf {
|
||||||
async generateParams(): Promise<{ salt: string; digest: string; keyLen: number; secret: string }> { throw new Error('not implemented'); }
|
async generateParams(): Promise<{ salt: string; digest: string; keyLen: number; secret: string }> { throw new Error('not implemented'); }
|
||||||
async derive(params: DeriveModel, info: any) { throw new Error('not implemented'); }
|
async derive(params: DeriveModel, info: any):Promise<string> { throw new Error('not implemented'); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class LegacyStaticSecret extends Kdf {
|
class LegacyStaticSecret extends Kdf {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const crypto = require('crypto');
|
import crypto from 'crypto';
|
||||||
const util = require('util');
|
import util from 'util';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,10 +22,10 @@
|
||||||
import {ChildProcess} from "node:child_process";
|
import {ChildProcess} from "node:child_process";
|
||||||
import {AsyncQueueTask} from "../types/AsyncQueueTask";
|
import {AsyncQueueTask} from "../types/AsyncQueueTask";
|
||||||
|
|
||||||
const spawn = require('child_process').spawn;
|
import {spawn} from 'child_process'
|
||||||
const async = require('async');
|
import async from 'async';
|
||||||
const settings = require('./Settings');
|
const settings = require('./Settings');
|
||||||
const os = require('os');
|
import os from 'os';
|
||||||
|
|
||||||
// on windows we have to spawn a process for each convertion,
|
// on windows we have to spawn a process for each convertion,
|
||||||
// cause the plugin abicommand doesn't exist on this platform
|
// cause the plugin abicommand doesn't exist on this platform
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const _ = require('underscore');
|
import _ from 'underscore';
|
||||||
|
|
||||||
const absPathLogger = log4js.getLogger('AbsolutePaths');
|
const absPathLogger = log4js.getLogger('AbsolutePaths');
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const Stream = require('./Stream');
|
const Stream = require('./Stream');
|
||||||
const assert = require('assert').strict;
|
import {strict as assert} from "assert";
|
||||||
|
|
||||||
const authorManager = require('../db/AuthorManager');
|
const authorManager = require('../db/AuthorManager');
|
||||||
const hooks = require('../../static/js/pluginfw/hooks');
|
const hooks = require('../../static/js/pluginfw/hooks');
|
||||||
const padManager = require('../db/PadManager');
|
const padManager = require('../db/PadManager');
|
||||||
|
|
|
@ -21,7 +21,7 @@ import {MapArrayType} from "../types/MapType";
|
||||||
const Changeset = require('../../static/js/Changeset');
|
const Changeset = require('../../static/js/Changeset');
|
||||||
const attributes = require('../../static/js/attributes');
|
const attributes = require('../../static/js/attributes');
|
||||||
const padManager = require('../db/PadManager');
|
const padManager = require('../db/PadManager');
|
||||||
const _ = require('underscore');
|
import _ from 'underscore';
|
||||||
const Security = require('../../static/js/security');
|
const Security = require('../../static/js/security');
|
||||||
const hooks = require('../../static/js/pluginfw/hooks');
|
const hooks = require('../../static/js/pluginfw/hooks');
|
||||||
const eejs = require('../eejs');
|
const eejs = require('../eejs');
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const async = require('async');
|
import async from 'async';
|
||||||
const fs = require('fs').promises;
|
import {promises as fs} from 'fs';
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const os = require('os');
|
import os from 'os';
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const runCmd = require('./run_cmd');
|
const runCmd = require('./run_cmd');
|
||||||
const settings = require('./Settings');
|
const settings = require('./Settings');
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ const queue = async.queue(doConvertTask, 1);
|
||||||
* @param {String} srcFile The path on disk to convert
|
* @param {String} srcFile The path on disk to convert
|
||||||
* @param {String} destFile The path on disk where the converted file should be stored
|
* @param {String} destFile The path on disk where the converted file should be stored
|
||||||
* @param {String} type The type to convert into
|
* @param {String} type The type to convert into
|
||||||
* @param {Function} callback Standard callback function
|
|
||||||
*/
|
*/
|
||||||
exports.convertFile = async (srcFile: string, destFile: string, type:string) => {
|
exports.convertFile = async (srcFile: string, destFile: string, type:string) => {
|
||||||
// Used for the moving of the file, not the conversion
|
// Used for the moving of the file, not the conversion
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const semver = require('semver');
|
import semver from 'semver';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quits if Etherpad is not running on a given minimum Node version
|
* Quits if Etherpad is not running on a given minimum Node version
|
||||||
|
|
|
@ -28,17 +28,16 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const absolutePaths = require('./AbsolutePaths');
|
const absolutePaths = require('./AbsolutePaths');
|
||||||
const deepEqual = require('fast-deep-equal/es6');
|
import fs from 'fs';
|
||||||
const fs = require('fs');
|
import os from 'os';
|
||||||
const os = require('os');
|
import path from 'path';
|
||||||
const path = require('path');
|
|
||||||
const argv = require('./Cli').argv;
|
const argv = require('./Cli').argv;
|
||||||
const jsonminify = require('jsonminify');
|
import jsonminify from 'jsonminify';
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const randomString = require('./randomstring');
|
const randomString = require('./randomstring');
|
||||||
const suppressDisableMsg = ' -- To suppress these warning messages change ' +
|
const suppressDisableMsg = ' -- To suppress these warning messages change ' +
|
||||||
'suppressErrorsInPadText to true in your settings.json\n';
|
'suppressErrorsInPadText to true in your settings.json\n';
|
||||||
const _ = require('underscore');
|
import _ from 'underscore';
|
||||||
|
|
||||||
const logger = log4js.getLogger('settings');
|
const logger = log4js.getLogger('settings');
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,13 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const Buffer = require('buffer').Buffer;
|
import {Buffer} from "buffer";
|
||||||
const fs = require('fs');
|
import fs, {promises as fsp} from 'fs';
|
||||||
const fsp = fs.promises;
|
import path from 'path';
|
||||||
const path = require('path');
|
import zlib from 'zlib';
|
||||||
const zlib = require('zlib');
|
|
||||||
const settings = require('./Settings');
|
const settings = require('./Settings');
|
||||||
const existsSync = require('./path_exists');
|
import existsSync from './path_exists';
|
||||||
const util = require('util');
|
import util from 'util';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The crypto module can be absent on reduced node installations.
|
* The crypto module can be absent on reduced node installations.
|
||||||
|
@ -37,10 +36,11 @@ const util = require('util');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
const _crypto = require('crypto');
|
import _crypto from 'crypto';
|
||||||
|
import {createReadStream} from "node:fs";
|
||||||
|
|
||||||
|
|
||||||
let CACHE_DIR = path.join(settings.root, 'var/');
|
let CACHE_DIR:string|boolean|fs.Stats|undefined = path.join(settings.root, 'var/');
|
||||||
CACHE_DIR = existsSync(CACHE_DIR) ? CACHE_DIR : undefined;
|
CACHE_DIR = existsSync(CACHE_DIR) ? CACHE_DIR : undefined;
|
||||||
|
|
||||||
type Headers = {
|
type Headers = {
|
||||||
|
@ -141,7 +141,7 @@ module.exports = class CachingMiddleware {
|
||||||
res.writeHead(304, headers);
|
res.writeHead(304, headers);
|
||||||
res.end();
|
res.end();
|
||||||
} else if (req.method === 'GET') {
|
} else if (req.method === 'GET') {
|
||||||
const readStream = fs.createReadStream(pathStr);
|
const readStream = createReadStream(pathStr);
|
||||||
res.writeHead(statusCode, headers);
|
res.writeHead(statusCode, headers);
|
||||||
readStream.pipe(res);
|
readStream.pipe(res);
|
||||||
} else {
|
} else {
|
||||||
|
@ -188,6 +188,7 @@ module.exports = class CachingMiddleware {
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
fsp.writeFile(`${CACHE_DIR}minified_${cacheKey}`, buffer).catch(() => {}),
|
fsp.writeFile(`${CACHE_DIR}minified_${cacheKey}`, buffer).catch(() => {}),
|
||||||
util.promisify(zlib.gzip)(buffer)
|
util.promisify(zlib.gzip)(buffer)
|
||||||
|
// @ts-ignore
|
||||||
.then((content: string) => fsp.writeFile(`${CACHE_DIR}minified_${cacheKey}.gz`, content))
|
.then((content: string) => fsp.writeFile(`${CACHE_DIR}minified_${cacheKey}.gz`, content))
|
||||||
.catch(() => {}),
|
.catch(() => {}),
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
const fs = require('fs');
|
import fs from 'fs';
|
||||||
|
|
||||||
const check = (path:string) => {
|
const check = (path:string):false|fs.Stats => {
|
||||||
const existsSync = fs.statSync || fs.existsSync;
|
const existsSync = fs.statSync || fs.existsSync;
|
||||||
|
|
||||||
let result;
|
let result:false|fs.Stats;
|
||||||
try {
|
try {
|
||||||
result = existsSync(path);
|
result = existsSync(path);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -13,4 +13,4 @@ const check = (path:string) => {
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = check;
|
export default check;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* Generates a random String with the given length. Is needed to generate the
|
* Generates a random String with the given length. Is needed to generate the
|
||||||
* Author, Group, readonly, session Ids
|
* Author, Group, readonly, session Ids
|
||||||
*/
|
*/
|
||||||
const cryptoMod = require('crypto');
|
import cryptoMod from 'crypto';
|
||||||
|
|
||||||
const randomString = (len: number) => cryptoMod.randomBytes(len).toString('hex');
|
const randomString = (len: number) => cryptoMod.randomBytes(len).toString('hex');
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import {ErrorExtended, RunCMDOptions, RunCMDPromise} from "../types/RunCMDOptions";
|
import {ErrorExtended, RunCMDOptions, RunCMDPromise} from "../types/RunCMDOptions";
|
||||||
import {ChildProcess} from "node:child_process";
|
import {ChildProcess, SpawnOptions} from "node:child_process";
|
||||||
import {PromiseWithStd} from "../types/PromiseWithStd";
|
import {PromiseWithStd} from "../types/PromiseWithStd";
|
||||||
import {Readable} from "node:stream";
|
import {Readable} from "node:stream";
|
||||||
|
|
||||||
const spawn = require('cross-spawn');
|
import spawn from 'cross-spawn';
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const settings = require('./Settings');
|
const settings = require('./Settings');
|
||||||
|
|
||||||
const logger = log4js.getLogger('runCmd');
|
const logger = log4js.getLogger('runCmd');
|
||||||
|
@ -32,6 +32,8 @@ const logLines = (readable: undefined | Readable | null, logLineFn: (arg0: (stri
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs a command, logging its output to Etherpad's logs by default.
|
* Runs a command, logging its output to Etherpad's logs by default.
|
||||||
*
|
*
|
||||||
|
@ -74,7 +76,7 @@ const logLines = (readable: undefined | Readable | null, logLineFn: (arg0: (stri
|
||||||
* - `stderr`: Similar to `stdout` but for stderr.
|
* - `stderr`: Similar to `stdout` but for stderr.
|
||||||
* - `child`: The ChildProcess object.
|
* - `child`: The ChildProcess object.
|
||||||
*/
|
*/
|
||||||
module.exports = exports = (args: string[], opts:RunCMDOptions = {}) => {
|
module.exports = exports = (args: string[], opts:SpawnOptions= {}) => {
|
||||||
logger.debug(`Executing command: ${args.join(' ')}`);
|
logger.debug(`Executing command: ${args.join(' ')}`);
|
||||||
|
|
||||||
opts = {cwd: settings.root, ...opts};
|
opts = {cwd: settings.root, ...opts};
|
||||||
|
@ -84,6 +86,7 @@ module.exports = exports = (args: string[], opts:RunCMDOptions = {}) => {
|
||||||
const stdio =
|
const stdio =
|
||||||
Array.isArray(opts.stdio) ? opts.stdio.slice() // Copy to avoid mutating the caller's array.
|
Array.isArray(opts.stdio) ? opts.stdio.slice() // Copy to avoid mutating the caller's array.
|
||||||
: typeof opts.stdio === 'function' ? [null, opts.stdio, opts.stdio]
|
: typeof opts.stdio === 'function' ? [null, opts.stdio, opts.stdio]
|
||||||
|
// @ts-ignore
|
||||||
: opts.stdio === 'string' ? [null, 'string', 'string']
|
: opts.stdio === 'string' ? [null, 'string', 'string']
|
||||||
: Array(3).fill(opts.stdio);
|
: Array(3).fill(opts.stdio);
|
||||||
const cmdLogger = log4js.getLogger(`runCmd|${args[0]}`);
|
const cmdLogger = log4js.getLogger(`runCmd|${args[0]}`);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
|
|
||||||
// Normalizes p and ensures that it is a relative path that does not reach outside. See
|
// Normalizes p and ensures that it is a relative path that does not reach outside. See
|
||||||
// https://nvd.nist.gov/vuln/detail/CVE-2015-3297 for additional context.
|
// https://nvd.nist.gov/vuln/detail/CVE-2015-3297 for additional context.
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@manypkg/find-root": "^2.2.1",
|
||||||
|
"@types/proxy-addr": "^2.0.3",
|
||||||
"async": "^3.2.5",
|
"async": "^3.2.5",
|
||||||
"axios": "^1.6.7",
|
"axios": "^1.6.7",
|
||||||
"clean-css": "^5.3.3",
|
"clean-css": "^5.3.3",
|
||||||
|
@ -41,7 +43,6 @@
|
||||||
"express": "4.18.3",
|
"express": "4.18.3",
|
||||||
"express-rate-limit": "^7.2.0",
|
"express-rate-limit": "^7.2.0",
|
||||||
"express-session": "npm:@etherpad/express-session@^1.18.2",
|
"express-session": "npm:@etherpad/express-session@^1.18.2",
|
||||||
"fast-deep-equal": "^3.1.3",
|
|
||||||
"find-root": "1.1.0",
|
"find-root": "1.1.0",
|
||||||
"formidable": "^3.5.1",
|
"formidable": "^3.5.1",
|
||||||
"http-errors": "^2.0.0",
|
"http-errors": "^2.0.0",
|
||||||
|
@ -79,12 +80,21 @@
|
||||||
"etherpad-lite": "node/server.ts"
|
"etherpad-lite": "node/server.ts"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@playwright/test": "^1.42.1",
|
||||||
"@types/async": "^3.2.24",
|
"@types/async": "^3.2.24",
|
||||||
|
"@types/cross-spawn": "^6.0.6",
|
||||||
|
"@types/ejs": "^3.1.5",
|
||||||
"@types/express": "^4.17.21",
|
"@types/express": "^4.17.21",
|
||||||
|
"@types/formidable": "^3.4.5",
|
||||||
"@types/http-errors": "^2.0.4",
|
"@types/http-errors": "^2.0.4",
|
||||||
"@types/jsdom": "^21.1.6",
|
"@types/jsdom": "^21.1.6",
|
||||||
|
"@types/jsonminify": "^0.4.3",
|
||||||
|
"@types/lodash.clonedeep": "^4.5.9",
|
||||||
"@types/mocha": "^10.0.6",
|
"@types/mocha": "^10.0.6",
|
||||||
"@types/node": "^20.11.26",
|
"@types/node": "^20.11.26",
|
||||||
|
"@types/resolve": "^1.20.6",
|
||||||
|
"@types/semver": "^7.5.8",
|
||||||
|
"@types/set-cookie-parser": "^2.4.7",
|
||||||
"@types/sinon": "^17.0.3",
|
"@types/sinon": "^17.0.3",
|
||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
"@types/underscore": "^1.11.15",
|
"@types/underscore": "^1.11.15",
|
||||||
|
@ -95,7 +105,6 @@
|
||||||
"mocha-froth": "^0.2.10",
|
"mocha-froth": "^0.2.10",
|
||||||
"nodeify": "^1.0.1",
|
"nodeify": "^1.0.1",
|
||||||
"openapi-schema-validation": "^0.4.2",
|
"openapi-schema-validation": "^0.4.2",
|
||||||
"@playwright/test": "^1.42.1",
|
|
||||||
"set-cookie-parser": "^2.6.0",
|
"set-cookie-parser": "^2.6.0",
|
||||||
"sinon": "^17.0.1",
|
"sinon": "^17.0.1",
|
||||||
"split-grid": "^1.0.11",
|
"split-grid": "^1.0.11",
|
||||||
|
|
|
@ -5,12 +5,12 @@ import {MapArrayType} from "../../node/types/MapType";
|
||||||
const AttributePool = require('../../static/js/AttributePool');
|
const AttributePool = require('../../static/js/AttributePool');
|
||||||
const apiHandler = require('../../node/handler/APIHandler');
|
const apiHandler = require('../../node/handler/APIHandler');
|
||||||
const assert = require('assert').strict;
|
const assert = require('assert').strict;
|
||||||
const io = require('socket.io-client');
|
import {io} from 'socket.io-client';
|
||||||
const log4js = require('log4js');
|
import log4js from 'log4js';
|
||||||
const {padutils} = require('../../static/js/pad_utils');
|
const {padutils} = require('../../static/js/pad_utils');
|
||||||
const process = require('process');
|
import process from 'process';
|
||||||
const server = require('../../node/server');
|
const server = require('../../node/server');
|
||||||
const setCookieParser = require('set-cookie-parser');
|
import setCookieParser from 'set-cookie-parser';
|
||||||
const settings = require('../../node/utils/Settings');
|
const settings = require('../../node/utils/Settings');
|
||||||
import supertest from 'supertest';
|
import supertest from 'supertest';
|
||||||
const webaccess = require('../../node/hooks/express/webaccess');
|
const webaccess = require('../../node/hooks/express/webaccess');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue