From f8580cd9cdff927d9aaec0d767f3c2291249dba7 Mon Sep 17 00:00:00 2001 From: PrinceK-Git Date: Fri, 2 Oct 2026 02:28:24 +0530 Subject: [PATCH] feat: add 50MB file size limit to frontend and backend --- client/package-lock.json | 36 +++++++++---------- client/package.json | 1 + client/src/screens/contributions/index.jsx | 7 ++++ .../contribution/contribution.routes.js | 5 ++- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 61de3257..c9474582 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -12,6 +12,7 @@ "date-and-time": "^2.4.2", "file-saver": "^2.0.5", "filepond": "^4.30.4", + "filepond-plugin-file-validate-size": "^2.2.8", "js-cookie": "^3.0.1", "jszip": "^3.10.1", "react": "^18.2.0", @@ -75,7 +76,6 @@ "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -618,7 +618,6 @@ "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@types/react": "*" } @@ -737,7 +736,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -1324,8 +1322,16 @@ "version": "4.30.4", "resolved": "https://registry.npmjs.org/filepond/-/filepond-4.30.4.tgz", "integrity": "sha512-FCwsMvG9iiEs6uobdDrTaKsCgsqys0NuLgPPD8n37AYVYBiiDkrPkk9MSIU5rT2FahYcL1bScYI9huIPtlzqyA==", + "license": "MIT" + }, + "node_modules/filepond-plugin-file-validate-size": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/filepond-plugin-file-validate-size/-/filepond-plugin-file-validate-size-2.2.8.tgz", + "integrity": "sha512-yzb8scATmkWqPTP7oKQz6L8WwJm6Xmgc/fuq6DFGRaLz0I7372BUvBsxagBk/hypMIjvieNzhggm33Y60x3rcw==", "license": "MIT", - "peer": true + "peerDependencies": { + "filepond": ">=3.1.2 <5.x" + } }, "node_modules/fill-range": { "version": "7.0.1", @@ -1774,7 +1780,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -1800,7 +1805,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -1958,7 +1962,6 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -2014,7 +2017,6 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", "license": "MIT", - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -2188,7 +2190,6 @@ "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.15.9", "postcss": "^8.4.18", @@ -2265,7 +2266,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dev": true, - "peer": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -2632,7 +2632,6 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", "devOptional": true, - "peer": true, "requires": { "@types/react": "*" } @@ -2713,7 +2712,6 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, - "peer": true, "requires": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -3020,8 +3018,13 @@ "filepond": { "version": "4.30.4", "resolved": "https://registry.npmjs.org/filepond/-/filepond-4.30.4.tgz", - "integrity": "sha512-FCwsMvG9iiEs6uobdDrTaKsCgsqys0NuLgPPD8n37AYVYBiiDkrPkk9MSIU5rT2FahYcL1bScYI9huIPtlzqyA==", - "peer": true + "integrity": "sha512-FCwsMvG9iiEs6uobdDrTaKsCgsqys0NuLgPPD8n37AYVYBiiDkrPkk9MSIU5rT2FahYcL1bScYI9huIPtlzqyA==" + }, + "filepond-plugin-file-validate-size": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/filepond-plugin-file-validate-size/-/filepond-plugin-file-validate-size-2.2.8.tgz", + "integrity": "sha512-yzb8scATmkWqPTP7oKQz6L8WwJm6Xmgc/fuq6DFGRaLz0I7372BUvBsxagBk/hypMIjvieNzhggm33Y60x3rcw==", + "requires": {} }, "fill-range": { "version": "7.0.1", @@ -3312,7 +3315,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "peer": true, "requires": { "loose-envify": "^1.1.0" } @@ -3330,7 +3332,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "peer": true, "requires": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -3424,7 +3425,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "peer": true, "requires": { "@babel/runtime": "^7.9.2" } @@ -3463,7 +3463,6 @@ "version": "1.56.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", - "peer": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -3573,7 +3572,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "dev": true, - "peer": true, "requires": { "esbuild": "^0.15.9", "fsevents": "~2.3.2", diff --git a/client/package.json b/client/package.json index 6c4f5a20..e8ac67a6 100644 --- a/client/package.json +++ b/client/package.json @@ -13,6 +13,7 @@ "date-and-time": "^2.4.2", "file-saver": "^2.0.5", "filepond": "^4.30.4", + "filepond-plugin-file-validate-size": "^2.2.8", "js-cookie": "^3.0.1", "jszip": "^3.10.1", "react": "^18.2.0", diff --git a/client/src/screens/contributions/index.jsx b/client/src/screens/contributions/index.jsx index 1239d96e..90b233fd 100644 --- a/client/src/screens/contributions/index.jsx +++ b/client/src/screens/contributions/index.jsx @@ -1,6 +1,9 @@ import Wrapper from "./components/wrapper"; import SectionC from "./components/sectionC"; import { FilePond } from "react-filepond"; +import FilePondPluginFileValidateSize from "filepond-plugin-file-validate-size"; +import { registerPlugin } from "react-filepond"; +registerPlugin(FilePondPluginFileValidateSize); import "filepond/dist/filepond.min.css"; import { useEffect, useRef, useState } from "react"; import "./styles.scss"; @@ -94,6 +97,10 @@ const Contributions = () => {