diff --git a/package.json b/package.json index 3f4e272ec61201e11ea1019c097cb923036e7d6e..635ceaf76aa0c3d1e783abc8532deb086e3343df 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "express-validator": "^5.0.0", "flat": "^4.1.0", "fluent-ffmpeg": "^2.1.0", + "fs-extra": "^7.0.0", "helmet": "^3.12.1", "ip-anonymize": "^0.0.6", "ipaddr.js": "https://github.com/whitequark/ipaddr.js.git#8e69afeb4053ee32447a101845f860848280eca5", @@ -110,7 +111,6 @@ "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017", "lodash": "^4.17.10", "magnet-uri": "^5.1.4", - "mkdirp": "^0.5.1", "morgan": "^1.5.3", "multer": "^1.1.0", "nodemailer": "^4.4.2", diff --git a/scripts/generate-code-contributors.ts b/scripts/generate-code-contributors.ts index 0cce62180cb5c36420288228c39097679754408b..3d37372d1e4aa2692ce018ea9d5338dea6142135 100755 --- a/scripts/generate-code-contributors.ts +++ b/scripts/generate-code-contributors.ts @@ -1,5 +1,5 @@ import { doRequest } from '../server/helpers/requests' -import { readFileSync } from 'fs' +import { readFileSync } from 'fs-extra' run() .then(() => process.exit(0)) diff --git a/scripts/i18n/create-custom-files.ts b/scripts/i18n/create-custom-files.ts index c4f8411e133b078e3fdbda97f81c577072d9bc04..eed3182a6ed37385c586f7dbc00fe0af3288e7bb 100755 --- a/scripts/i18n/create-custom-files.ts +++ b/scripts/i18n/create-custom-files.ts @@ -1,5 +1,5 @@ import * as jsToXliff12 from 'xliff/jsToXliff12' -import { writeFile } from 'fs' +import { writeFile } from 'fs-extra' import { join } from 'path' import { buildLanguages, diff --git a/scripts/i18n/xliff2json.ts b/scripts/i18n/xliff2json.ts index ed6854514c560d5fb58ef28aa7f617cef22c5759..7e6de28935069e03aa485700178a6821574c61fa 100755 --- a/scripts/i18n/xliff2json.ts +++ b/scripts/i18n/xliff2json.ts @@ -1,5 +1,5 @@ import * as xliff12ToJs from 'xliff/xliff12ToJs' -import { readFileSync, unlink, writeFile } from 'fs' +import { readFileSync, unlink, writeFile } from 'fs-extra' import { join } from 'path' import { buildFileLocale, I18N_LOCALES, isDefaultLocale } from '../../shared/models/i18n/i18n' import { eachSeries } from 'async' diff --git a/scripts/parse-log.ts b/scripts/parse-log.ts index d22e902667ade5d25251b1781228befba486fa39..86aaa7994be9904fc51b3337441a2381c412ca96 100755 --- a/scripts/parse-log.ts +++ b/scripts/parse-log.ts @@ -1,5 +1,5 @@ import * as program from 'commander' -import { createReadStream, readdirSync, statSync } from 'fs' +import { createReadStream, readdirSync, statSync } from 'fs-extra' import { join } from 'path' import { createInterface } from 'readline' import * as winston from 'winston' diff --git a/server/controllers/static.ts b/server/controllers/static.ts index 2a92810f353820739644eb0af78047daf81c7f6e..6e8f1a07f3f2f8b6821ca132e8e87d229f02c211 100644 --- a/server/controllers/static.ts +++ b/server/controllers/static.ts @@ -1,5 +1,5 @@ import * as cors from 'cors' -import { createReadStream } from 'fs' +import { createReadStream } from 'fs-extra' import * as express from 'express' import { CONFIG, STATIC_DOWNLOAD_PATHS, STATIC_MAX_AGE, STATIC_PATHS, ROUTE_CACHE_LIFETIME } from '../initializers' import { VideosPreviewCache } from '../lib/cache' diff --git a/server/helpers/captions-utils.ts b/server/helpers/captions-utils.ts index 8b04f878d1273b079ab1860bf83348e2ee8efdf6..20c9fe5aa436efb48cb45128c1c97ec9f2d0c1f5 100644 --- a/server/helpers/captions-utils.ts +++ b/server/helpers/captions-utils.ts @@ -3,7 +3,7 @@ import { join } from 'path' import { CONFIG } from '../initializers' import { VideoCaptionModel } from '../models/video/video-caption' import * as srt2vtt from 'srt-to-vtt' -import { createReadStream, createWriteStream } from 'fs' +import { createReadStream, createWriteStream } from 'fs-extra' async function moveAndProcessCaptionFile (physicalFile: { filename: string, path: string }, videoCaption: VideoCaptionModel) { const videoCaptionsDir = CONFIG.STORAGE.CAPTIONS_DIR diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 90d2cd9b3c2fd01038b92ccf2cc1c53d247e327b..9830d41a89bdc375443d3587447d026c50c1d9f9 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -6,8 +6,7 @@ import * as bcrypt from 'bcrypt' import * as createTorrent from 'create-torrent' import { createHash, pseudoRandomBytes } from 'crypto' -import { copyFile, readdir, readFile, rename, stat, Stats, unlink, writeFile } from 'fs' -import * as mkdirp from 'mkdirp' +import { copyFile, readdir, readFile, rename, stat, Stats, unlink, writeFile, mkdirp } from 'fs-extra' import { isAbsolute, join } from 'path' import * as pem from 'pem' import * as rimraf from 'rimraf' diff --git a/server/helpers/logger.ts b/server/helpers/logger.ts index 480c5b49eac3df0ee1f2cc4766bab769f6b0ea15..ce6e38f158f5df297a0083dbc6692b69229bc0b3 100644 --- a/server/helpers/logger.ts +++ b/server/helpers/logger.ts @@ -1,5 +1,5 @@ // Thanks http://tostring.it/2014/06/23/advanced-logging-with-nodejs/ -import * as mkdirp from 'mkdirp' +import { mkdirpSync } from 'fs-extra' import * as path from 'path' import * as winston from 'winston' import { CONFIG } from '../initializers' @@ -7,7 +7,7 @@ import { CONFIG } from '../initializers' const label = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT // Create the directory if it does not exist -mkdirp.sync(CONFIG.STORAGE.LOG_DIR) +mkdirpSync(CONFIG.STORAGE.LOG_DIR) function loggerReplacer (key: string, value: any) { if (value instanceof Error) { diff --git a/server/helpers/requests.ts b/server/helpers/requests.ts index 64e3ce663b13f8668483296047577f956e171bdb..ee9e804040e8364a00723f2312d3917c221fd830 100644 --- a/server/helpers/requests.ts +++ b/server/helpers/requests.ts @@ -1,5 +1,5 @@ import * as Bluebird from 'bluebird' -import { createWriteStream } from 'fs' +import { createWriteStream } from 'fs-extra' import * as request from 'request' import { ACTIVITY_PUB } from '../initializers' diff --git a/server/helpers/webtorrent.ts b/server/helpers/webtorrent.ts index 6f2adb3cb447d9eb74bfbffbc2821b493eccc84f..1c0d00d70d33e04a58fee3747f66d856cbbf4e00 100644 --- a/server/helpers/webtorrent.ts +++ b/server/helpers/webtorrent.ts @@ -1,7 +1,7 @@ import { logger } from './logger' import { generateVideoTmpPath } from './utils' import * as WebTorrent from 'webtorrent' -import { createWriteStream } from 'fs' +import { createWriteStream } from 'fs-extra' import { CONFIG } from '../initializers' import { join } from 'path' import { unlinkPromise } from './core-utils' diff --git a/server/initializers/migrations/0065-video-file-size.ts b/server/initializers/migrations/0065-video-file-size.ts index 4e2075f8b0700de9bfc22820a2f62dab1d891de7..66f25016a4eb76629aa16e23ccc81eeefc1b26ba 100644 --- a/server/initializers/migrations/0065-video-file-size.ts +++ b/server/initializers/migrations/0065-video-file-size.ts @@ -1,6 +1,6 @@ import * as Sequelize from 'sequelize' import * as Promise from 'bluebird' -import { stat } from 'fs' +import { stat } from 'fs-extra' import { VideoModel } from '../../models/video/video' function up (utils: { diff --git a/server/lib/cache/abstract-video-static-file-cache.ts b/server/lib/cache/abstract-video-static-file-cache.ts index 8e895cc82e6a10be63e4217b71e92f2c760c46bc..3e20c5d2adbf5b8852ff1a0f07e73676b260666e 100644 --- a/server/lib/cache/abstract-video-static-file-cache.ts +++ b/server/lib/cache/abstract-video-static-file-cache.ts @@ -1,5 +1,5 @@ import * as AsyncLRU from 'async-lru' -import { createWriteStream } from 'fs' +import { createWriteStream } from 'fs-extra' import { unlinkPromise } from '../../helpers/core-utils' import { logger } from '../../helpers/logger' import { VideoModel } from '../../models/video/video' diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index c8398c9e73031fa8f3b38d55bd91d63e52680687..bf8e5b6c3bcd6ce7f5b3cc7b471f5e814ce19c00 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -7,7 +7,7 @@ import { UserModel } from '../models/account/user' import { VideoModel } from '../models/video/video' import { JobQueue } from './job-queue' import { EmailPayload } from './job-queue/handlers/email' -import { readFileSync } from 'fs' +import { readFileSync } from 'fs-extra' class Emailer { diff --git a/server/lib/schedulers/youtube-dl-update-scheduler.ts b/server/lib/schedulers/youtube-dl-update-scheduler.ts index 24cd3f87b5f191ce24bc67d1b09b6ce2348ced9e..da47378e845ee54d2ac73ca5bace9cd86699069a 100644 --- a/server/lib/schedulers/youtube-dl-update-scheduler.ts +++ b/server/lib/schedulers/youtube-dl-update-scheduler.ts @@ -5,7 +5,7 @@ import { AbstractScheduler } from './abstract-scheduler' import { SCHEDULER_INTERVALS_MS } from '../../initializers' import { logger } from '../../helpers/logger' import * as request from 'request' -import { createWriteStream, writeFile } from 'fs' +import { createWriteStream, writeFile } from 'fs-extra' import { join } from 'path' import { mkdirpPromise, root } from '../../helpers/core-utils' diff --git a/server/tests/utils/users/accounts.ts b/server/tests/utils/users/accounts.ts index 30b3c54f8ec29b2c2cdc72e401968cb8ac1e34bd..024a315c72f40d0e246adb28902882def2a65af9 100644 --- a/server/tests/utils/users/accounts.ts +++ b/server/tests/utils/users/accounts.ts @@ -1,7 +1,7 @@ /* tslint:disable:no-unused-expression */ import { expect } from 'chai' -import { existsSync } from 'fs' +import { existsSync } from 'fs-extra' import { join } from 'path' import { Account } from '../../../../shared/models/actors' import { readdirPromise } from '../../../helpers/core-utils' diff --git a/server/tests/utils/videos/videos.ts b/server/tests/utils/videos/videos.ts index 674a92df93441bff816d67dad7774d192cd5d9ba..973bbbe87f0f1163d6c6f68b9aab93441ba2298b 100644 --- a/server/tests/utils/videos/videos.ts +++ b/server/tests/utils/videos/videos.ts @@ -1,7 +1,7 @@ /* tslint:disable:no-unused-expression */ import { expect } from 'chai' -import { existsSync, readFile } from 'fs' +import { existsSync, readFile } from 'fs-extra' import * as parseTorrent from 'parse-torrent' import { extname, join } from 'path' import * as request from 'supertest' diff --git a/server/tools/upload.ts b/server/tools/upload.ts index 4d40c8c1a23824822a549cb38b567e9f9edadae3..b5630bb9cb3be5c3b0ce915c2d6d384b6a418b98 100644 --- a/server/tools/upload.ts +++ b/server/tools/upload.ts @@ -1,5 +1,5 @@ import * as program from 'commander' -import { access, constants } from 'fs' +import { access, constants } from 'fs-extra' import { isAbsolute } from 'path' import { promisify } from 'util' import { getClient, login } from '../tests/utils'