New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@infurnia/backend-file-storage

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@infurnia/backend-file-storage - npm Package Compare versions

Comparing version 2.13.0 to 3.0.0

56

index.js

@@ -5,2 +5,3 @@ const utils = require('./utils');

const multerGoogleStorage = require("@infurnia/multer-cloud-storage");
const multer = require('multer');
const OK_RESPONSE_TEXT = "OK";

@@ -24,4 +25,57 @@ const crypto = require('crypto');

filterFile = function(
upload_type
) {
try {
let filter_mimetype = [];
let filter_extension = [];
if(upload_type == 'image') {
filter_mimetype = ["image/apng", "image/avif", "image/gif", "image/jpeg", "image/png", "image/svg+xml", "image/webp"];
filter_extension = [".png", ".jpeg", ".jpg", ".avif", ".svg", ".gif", ".webp"];
} else if(upload_type == 'model') {
filter_mimetype = ["model/3mf", "model/vrml", "application/octet-stream"];
filter_extension = [".obj", ".mtl", ".blend", ".glb"];
}
return function(req, file, cb) {
if(filter_extension.includes(path.extname(file.originalname)) && filter_mimetype.includes(file.mimetype)) {
cb(null, true);
} else {
console.error(`Invalid file upload (${upload_type}): ${file.originalname} ${file.mimetype}`);
cb(new Error("file is invalid"))
}
}
} catch (err) {
console.error(`error in file_storage/index.js/filterFile`);
console.error(err);
throw err;
}
}
getMulter = function(storage_engine, upload_type, {multer_type, args}, utils) {
let filterFileFunc = this.filterFile;
return function(req, res, next) {
let multerInstance = multer({
storage: storage_engine,
fileFilter: filterFileFunc(upload_type)
});
if(multer_type == "single") {
multerInstance = multerInstance.single(args[0])
} else if(multer_type == "array") {
multerInstance = multerInstance.array(...args)
} else if(multer_type == "any") {
multerInstance = multerInstance.any()
} else {
throw new Error(`multer_type ${multer_type} not supported`);
}
return multerInstance(req, res, function(err) {
if (err) {
return utils.send_response_bad_request_error(res, new Error("BAD_FILE_UPLOAD"))
}
return next();
});
}
}
//returns multer storage engine object for the bucket
getMulter = function(
getMulterStorage = function(
destination,

@@ -28,0 +82,0 @@ filename_fn = function (req, file, cb) {

5

package.json
{
"name": "@infurnia/backend-file-storage",
"version": "2.13.0",
"version": "3.0.0",
"description": "Storage engine for google cloud storage",

@@ -26,3 +26,4 @@ "main": "index.js",

"moment": "^2.29.4",
"path": "^0.12.7"
"path": "^0.12.7",
"multer": "^1.3.0"
},

@@ -29,0 +30,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc