From f0357d45f20e9876a448dd302345ad8bd982bd3e Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 12 Jan 2024 18:14:31 -0800 Subject: [PATCH 1/2] server: fix stupid esm mime dependency --- server/package-lock.json | 25 +++++++++---------------- server/package.json | 5 +++-- server/src/http-interfaces.ts | 8 -------- server/src/plugin/media.ts | 6 +++--- 4 files changed, 15 insertions(+), 29 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index 4b9cca3fb..ed457d386 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -25,13 +25,14 @@ "linkfs": "^2.1.0", "lodash": "^4.17.21", "memfs": "^4.6.0", - "mime": "^4.0.1", + "mime-db": "^1.52.0", "nan": "^2.18.0", "node-dijkstra": "^2.5.0", "node-forge": "^1.3.1", "node-gyp": "^10.0.1", "router": "^1.3.8", "semver": "^7.5.4", + "send": "^0.18.0", "sharp": "^0.33.2", "source-map-support": "^0.5.21", "tar": "^6.2.0", @@ -52,7 +53,7 @@ "@types/http-auth": "^4.1.4", "@types/ip": "^1.1.3", "@types/lodash": "^4.14.202", - "@types/mime": "^3.0.4", + "@types/mime-db": "^1.43.5", "@types/node-dijkstra": "^2.5.6", "@types/node-forge": "^1.3.11", "@types/pem": "^1.14.4", @@ -786,6 +787,12 @@ "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==", "dev": true }, + "node_modules/@types/mime-db": { + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz", + "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==", + "dev": true + }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -2490,20 +2497,6 @@ "node": ">= 0.6" } }, - "node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", - "funding": [ - "https://github.com/sponsors/broofa" - ], - "bin": { - "mime": "bin/cli.js" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", diff --git a/server/package.json b/server/package.json index 4c6614010..c6c935df0 100644 --- a/server/package.json +++ b/server/package.json @@ -19,13 +19,14 @@ "linkfs": "^2.1.0", "lodash": "^4.17.21", "memfs": "^4.6.0", - "mime": "^3.0.0", + "mime-db": "^1.52.0", "nan": "^2.18.0", "node-dijkstra": "^2.5.0", "node-forge": "^1.3.1", "node-gyp": "^10.0.1", "router": "^1.3.8", "semver": "^7.5.4", + "send": "^0.18.0", "sharp": "^0.33.2", "source-map-support": "^0.5.21", "tar": "^6.2.0", @@ -43,7 +44,7 @@ "@types/http-auth": "^4.1.4", "@types/ip": "^1.1.3", "@types/lodash": "^4.14.202", - "@types/mime": "^3.0.4", + "@types/mime-db": "^1.43.5", "@types/node-dijkstra": "^2.5.6", "@types/node-forge": "^1.3.11", "@types/pem": "^1.14.4", diff --git a/server/src/http-interfaces.ts b/server/src/http-interfaces.ts index 30171f637..eb18087fd 100644 --- a/server/src/http-interfaces.ts +++ b/server/src/http-interfaces.ts @@ -5,7 +5,6 @@ import net from 'net'; import { join as pathJoin } from 'path'; import { RpcPeer } from "./rpc"; -const mime = require('mime/lite'); export class HttpResponseImpl implements HttpResponse { constructor(public res: Response, public unzippedDir: string, public filesPath: string) { } @@ -49,13 +48,6 @@ export class HttpResponseImpl implements HttpResponse { this.res.status(options.code); this.#setHeaders(options); - if (!this.res.getHeader('Content-Type')) { - const type = mime.getType(path); - if (type) { - this.res.contentType(mime.getExtension(type)); - } - } - let filePath = pathJoin(this.unzippedDir, 'fs', path); if (!fs.existsSync(filePath)) { filePath = pathJoin(this.filesPath, path); diff --git a/server/src/plugin/media.ts b/server/src/plugin/media.ts index e183c7c14..0ee53e315 100644 --- a/server/src/plugin/media.ts +++ b/server/src/plugin/media.ts @@ -2,13 +2,13 @@ import { BufferConverter, DeviceManager, FFmpegInput, MediaManager, MediaObject import pathToFfmpeg from 'ffmpeg-static'; import fs from 'fs'; import https from 'https'; -import mimeType from 'mime'; import Graph from 'node-dijkstra'; import os from 'os'; import path from 'path'; import MimeType from 'whatwg-mimetype'; import { MediaObject } from "./mediaobject"; import { MediaObjectRemote } from "./plugin-api"; +import send from 'send'; function typeMatches(target: string, candidate: string): boolean { // candidate will accept anything @@ -78,7 +78,7 @@ export abstract class MediaManagerBase implements MediaManager { } const ab = await fs.promises.readFile(filename); - const mt = mimeType.getType(data.toString()); + const mt = send.mime.lookup(filename); const mo = this.createMediaObject(ab, mt); return mo; } @@ -231,7 +231,7 @@ export abstract class MediaManagerBase implements MediaManager { ensureMediaObjectRemote(mediaObject: string | MediaObjectInterface): MediaObjectRemote { if (typeof mediaObject === 'string') { - const mime = mimeType.getType(mediaObject); + const mime = send.mime.lookup(mediaObject); return this.createMediaObjectRemote(mediaObject, mime); } return mediaObject as MediaObjectRemote; From a831c48f5f78f69f6b838a94834f23c2585c77e3 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 12 Jan 2024 18:22:41 -0800 Subject: [PATCH 2/2] server: fix stupid esm mime dependency --- server/package-lock.json | 8 -------- server/package.json | 2 -- 2 files changed, 10 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index ed457d386..199ad9721 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -25,7 +25,6 @@ "linkfs": "^2.1.0", "lodash": "^4.17.21", "memfs": "^4.6.0", - "mime-db": "^1.52.0", "nan": "^2.18.0", "node-dijkstra": "^2.5.0", "node-forge": "^1.3.1", @@ -53,7 +52,6 @@ "@types/http-auth": "^4.1.4", "@types/ip": "^1.1.3", "@types/lodash": "^4.14.202", - "@types/mime-db": "^1.43.5", "@types/node-dijkstra": "^2.5.6", "@types/node-forge": "^1.3.11", "@types/pem": "^1.14.4", @@ -787,12 +785,6 @@ "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==", "dev": true }, - "node_modules/@types/mime-db": { - "version": "1.43.5", - "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz", - "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==", - "dev": true - }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", diff --git a/server/package.json b/server/package.json index c6c935df0..dbc5c6d24 100644 --- a/server/package.json +++ b/server/package.json @@ -19,7 +19,6 @@ "linkfs": "^2.1.0", "lodash": "^4.17.21", "memfs": "^4.6.0", - "mime-db": "^1.52.0", "nan": "^2.18.0", "node-dijkstra": "^2.5.0", "node-forge": "^1.3.1", @@ -44,7 +43,6 @@ "@types/http-auth": "^4.1.4", "@types/ip": "^1.1.3", "@types/lodash": "^4.14.202", - "@types/mime-db": "^1.43.5", "@types/node-dijkstra": "^2.5.6", "@types/node-forge": "^1.3.11", "@types/pem": "^1.14.4",