From bfd075eee938ab001a4e698cacfeb6d50ca83e45 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 11 Feb 2022 12:42:32 -0800 Subject: [PATCH] core: reduce mime db footprint --- plugins/core/package-lock.json | 59 ++++++++++++++++------------------ plugins/core/package.json | 5 +-- plugins/core/src/converters.ts | 6 ++-- 3 files changed, 34 insertions(+), 36 deletions(-) diff --git a/plugins/core/package-lock.json b/plugins/core/package-lock.json index 4beddf8d1..80947d2d0 100644 --- a/plugins/core/package-lock.json +++ b/plugins/core/package-lock.json @@ -1,21 +1,22 @@ { "name": "@scrypted/core", - "version": "0.0.194", + "version": "0.0.195", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/core", - "version": "0.0.194", + "version": "0.0.195", "license": "Apache-2.0", "dependencies": { "@koush/wrtc": "^0.5.2", "@scrypted/sdk": "file:../../sdk", - "mime-types": "^2.1.34", + "mime": "^3.0.0", "router": "^1.3.6", "typescript": "^4.5.5" }, "devDependencies": { + "@types/mime": "^2.0.3", "@types/node": "^16.9.0" } }, @@ -71,7 +72,7 @@ }, "../../sdk": { "name": "@scrypted/sdk", - "version": "0.0.161", + "version": "0.0.167", "license": "ISC", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.14.5", @@ -166,6 +167,12 @@ "resolved": "../../sdk", "link": true }, + "node_modules/@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", + "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "dev": true + }, "node_modules/@types/node": { "version": "16.9.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.0.tgz", @@ -673,23 +680,15 @@ "node": ">= 0.6" } }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">= 0.6" + "node": ">=10.0.0" } }, "node_modules/minimatch": { @@ -1413,6 +1412,12 @@ "webpack-bundle-analyzer": "^4.5.0" } }, + "@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", + "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "dev": true + }, "@types/node": { "version": "16.9.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.0.tgz", @@ -1808,18 +1813,10 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" }, "minimatch": { "version": "3.0.4", diff --git a/plugins/core/package.json b/plugins/core/package.json index 26a082071..93d11757a 100644 --- a/plugins/core/package.json +++ b/plugins/core/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/core", - "version": "0.0.194", + "version": "0.0.195", "description": "Scrypted Core plugin. Provides the UI, websocket, and engine.io APIs.", "author": "Scrypted", "license": "Apache-2.0", @@ -32,11 +32,12 @@ "dependencies": { "@koush/wrtc": "^0.5.2", "@scrypted/sdk": "file:../../sdk", - "mime-types": "^2.1.34", + "mime": "^3.0.0", "router": "^1.3.6", "typescript": "^4.5.5" }, "devDependencies": { + "@types/mime": "^2.0.3", "@types/node": "^16.9.0" } } diff --git a/plugins/core/src/converters.ts b/plugins/core/src/converters.ts index f18831d9c..1d3d9815b 100644 --- a/plugins/core/src/converters.ts +++ b/plugins/core/src/converters.ts @@ -1,6 +1,6 @@ -import { MediaStreamUrl, BufferConverter, FFMpegInput, HttpRequest, HttpRequestHandler, HttpResponse, ScryptedDeviceBase, ScryptedMimeTypes, MediaObject } from "@scrypted/sdk"; +import { BufferConverter, HttpRequest, HttpRequestHandler, HttpResponse, ScryptedDeviceBase, ScryptedMimeTypes } from "@scrypted/sdk"; import sdk from "@scrypted/sdk"; -import mimeTypes from "mime-types"; +import mime from "mime/lite"; const {endpointManager} = sdk; @@ -49,7 +49,7 @@ export class UrlConverter extends ScryptedDeviceBase implements HttpRequestHandl const uuid = uuidv4(); const endpoint = await (this.secure ? endpointManager.getPublicLocalEndpoint(this.nativeId) : endpointManager.getInsecurePublicLocalEndpoint(this.nativeId)); - const extension = mimeTypes.extension(fromMimeType); + const extension = mime.getExtension(fromMimeType); const filename = uuid + (extension ? `.${extension}` : '');