fix: Properly prevent shortcut events, update dependencies

Closes #1440
This commit is contained in:
Maksim Eltyshev
2025-11-24 19:21:07 +01:00
parent 7e41a0167d
commit 5c787d65a9
7 changed files with 390 additions and 368 deletions

550
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -80,10 +80,10 @@
"dependencies": { "dependencies": {
"@ballerina/highlightjs-ballerina": "^1.0.1", "@ballerina/highlightjs-ballerina": "^1.0.1",
"@diplodoc/cut-extension": "^0.7.4", "@diplodoc/cut-extension": "^0.7.4",
"@diplodoc/transform": "^4.61.0", "@diplodoc/transform": "^4.64.1",
"@gravity-ui/components": "^4.12.0", "@gravity-ui/components": "^4.16.0",
"@gravity-ui/markdown-editor": "^15.19.1", "@gravity-ui/markdown-editor": "^15.25.0",
"@gravity-ui/uikit": "^7.20.0", "@gravity-ui/uikit": "^7.26.1",
"@juggle/resize-observer": "^3.4.0", "@juggle/resize-observer": "^3.4.0",
"@vitejs/plugin-react": "^4.7.0", "@vitejs/plugin-react": "^4.7.0",
"browserslist-to-esbuild": "^2.1.1", "browserslist-to-esbuild": "^2.1.1",
@@ -114,10 +114,10 @@
"highlightjs-zenscript": "^2.0.0", "highlightjs-zenscript": "^2.0.0",
"hightlightjs-papyrus": "^0.0.4", "hightlightjs-papyrus": "^0.0.4",
"history": "^5.3.0", "history": "^5.3.0",
"i18next": "^25.4.2", "i18next": "^25.6.3",
"i18next-browser-languagedetector": "^8.2.0", "i18next-browser-languagedetector": "^8.2.0",
"initials": "^3.1.2", "initials": "^3.1.2",
"javascript-time-ago": "^2.5.11", "javascript-time-ago": "^2.5.12",
"js-cookie": "^3.0.5", "js-cookie": "^3.0.5",
"jwt-decode": "^4.0.0", "jwt-decode": "^4.0.0",
"linkify-react": "^4.3.2", "linkify-react": "^4.3.2",
@@ -125,7 +125,7 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"lowlight": "^3.3.0", "lowlight": "^3.3.0",
"markdown-it": "^13.0.2", "markdown-it": "^13.0.2",
"nanoid": "^5.1.5", "nanoid": "^5.1.6",
"papaparse": "^5.5.3", "papaparse": "^5.5.3",
"patch-package": "^8.0.1", "patch-package": "^8.0.1",
"photoswipe": "^5.4.4", "photoswipe": "^5.4.4",
@@ -137,25 +137,25 @@
"react-dropzone": "^14.3.8", "react-dropzone": "^14.3.8",
"react-frame-component": "^5.2.7", "react-frame-component": "^5.2.7",
"react-hot-toast": "^2.6.0", "react-hot-toast": "^2.6.0",
"react-i18next": "^15.7.3", "react-i18next": "^15.7.4",
"react-input-mask": "^2.0.4", "react-input-mask": "^2.0.4",
"react-intersection-observer": "^9.16.0", "react-intersection-observer": "^9.16.0",
"react-mentions": "^4.4.10", "react-mentions": "^4.4.10",
"react-photoswipe-gallery": "^2.2.7", "react-photoswipe-gallery": "^2.2.7",
"react-redux": "^8.1.3", "react-redux": "^8.1.3",
"react-router-dom": "^6.30.1", "react-router-dom": "^6.30.2",
"react-textarea-autosize": "^8.5.9", "react-textarea-autosize": "^8.5.9",
"react-time-ago": "^7.3.3", "react-time-ago": "^7.3.5",
"redux": "^4.2.1", "redux": "^4.2.1",
"redux-logger": "^3.0.6", "redux-logger": "^3.0.6",
"redux-orm": "^0.16.2", "redux-orm": "^0.16.2",
"redux-saga": "^1.3.0", "redux-saga": "^1.4.2",
"reselect": "^4.1.8", "reselect": "^4.1.8",
"sails.io.js": "^1.2.1", "sails.io.js": "^1.2.1",
"sass-embedded": "^1.91.0", "sass-embedded": "^1.93.3",
"semantic-ui-react": "^2.1.5", "semantic-ui-react": "^2.1.5",
"socket.io-client": "^2.5.0", "socket.io-client": "^2.5.0",
"validator": "^13.15.20", "validator": "^13.15.23",
"vite": "^6.4.1", "vite": "^6.4.1",
"vite-plugin-commonjs": "^0.10.4", "vite-plugin-commonjs": "^0.10.4",
"vite-plugin-node-polyfills": "^0.23.0", "vite-plugin-node-polyfills": "^0.23.0",
@@ -163,8 +163,8 @@
"zxcvbn": "^4.4.2" "zxcvbn": "^4.4.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.28.0", "@babel/eslint-parser": "^7.28.5",
"@babel/preset-env": "^7.28.3", "@babel/preset-env": "^7.28.5",
"@cucumber/cucumber": "^11.3.0", "@cucumber/cucumber": "^11.3.0",
"@cucumber/pretty-formatter": "^1.0.1", "@cucumber/pretty-formatter": "^1.0.1",
"@playwright/test": "^1.56.1", "@playwright/test": "^1.56.1",

View File

@@ -1,5 +1,5 @@
diff --git a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js diff --git a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
index 0e615c4..383338d 100644 index 84c7781..3b2f51c 100644
--- a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js --- a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
+++ b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js +++ b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
@@ -101,7 +101,6 @@ export const BundlePreset = (builder, opts) => { @@ -101,7 +101,6 @@ export const BundlePreset = (builder, opts) => {
@@ -10,10 +10,10 @@ index 0e615c4..383338d 100644
deflist: { deflist: {
deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'), deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),
deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'), deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),
@@ -118,11 +117,6 @@ export const BundlePreset = (builder, opts) => { @@ -122,11 +121,6 @@ export const BundlePreset = (builder, opts) => {
...opts.yfmNote, ...opts.yfmTable,
controls: opts.mobile ? false : opts.yfmTable?.controls,
}, },
yfmTable: { yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'), ...opts.yfmTable },
- yfmFile: { - yfmFile: {
- fileUploadHandler: opts.fileUploadHandler, - fileUploadHandler: opts.fileUploadHandler,
- needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages, - needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,

View File

@@ -96,7 +96,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
dispatch(push(Paths.CARDS.replace(':id', card.id))); dispatch(push(Paths.CARDS.replace(':id', card.id)));
}; };
const handleCardNameEdit = () => { const handleCardNameEdit = (event) => {
if (!selectedCardRef.current) { if (!selectedCardRef.current) {
return; return;
} }
@@ -115,6 +115,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
return; return;
} }
event.preventDefault();
selectedCardRef.current.editName(); selectedCardRef.current.editName();
}; };
@@ -140,7 +141,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
selectedCardRef.current.openActions(CardActionsStep.StepTypes.ARCHIVE); selectedCardRef.current.openActions(CardActionsStep.StepTypes.ARCHIVE);
}; };
const handleCardMembers = () => { const handleCardMembers = (event) => {
if (!selectedCardRef.current) { if (!selectedCardRef.current) {
return; return;
} }
@@ -159,10 +160,11 @@ const ShortcutsProvider = React.memo(({ children }) => {
return; return;
} }
event.preventDefault();
selectedCardRef.current.openActions(CardActionsStep.StepTypes.MEMBERS); selectedCardRef.current.openActions(CardActionsStep.StepTypes.MEMBERS);
}; };
const handleCardLabels = () => { const handleCardLabels = (event) => {
if (!selectedCardRef.current) { if (!selectedCardRef.current) {
return; return;
} }
@@ -181,6 +183,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
return; return;
} }
event.preventDefault();
selectedCardRef.current.openActions(CardActionsStep.StepTypes.LABELS); selectedCardRef.current.openActions(CardActionsStep.StepTypes.LABELS);
}; };
@@ -234,18 +237,15 @@ const ShortcutsProvider = React.memo(({ children }) => {
break; break;
case 'KeyL': case 'KeyL':
event.preventDefault(); handleCardLabels(event);
handleCardLabels();
break; break;
case 'KeyM': case 'KeyM':
event.preventDefault(); handleCardMembers(event);
handleCardMembers();
break; break;
case 'KeyT': case 'KeyT':
event.preventDefault(); handleCardNameEdit(event);
handleCardNameEdit();
break; break;
case 'KeyV': case 'KeyV':

View File

@@ -6,5 +6,6 @@
:global(#app) { :global(#app) {
.wrapper { .wrapper {
cursor: auto; cursor: auto;
outline: none;
} }
} }

141
server/package-lock.json generated
View File

@@ -15,7 +15,7 @@
"dotenv-cli": "^7.4.4", "dotenv-cli": "^7.4.4",
"escape-html": "^1.0.3", "escape-html": "^1.0.3",
"escape-markdown": "^1.0.4", "escape-markdown": "^1.0.4",
"fs-extra": "^11.3.1", "fs-extra": "^11.3.2",
"ico-to-png": "^0.2.2", "ico-to-png": "^0.2.2",
"istextorbinary": "^9.5.0", "istextorbinary": "^9.5.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
@@ -23,7 +23,7 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mime": "^3.0.0", "mime": "^3.0.0",
"moment": "^2.30.1", "moment": "^2.30.1",
"nodemailer": "^7.0.7", "nodemailer": "^7.0.10",
"openid-client": "^5.7.1", "openid-client": "^5.7.1",
"patch-package": "^8.0.1", "patch-package": "^8.0.1",
"pg": "^8.16.3", "pg": "^8.16.3",
@@ -36,8 +36,8 @@
"serve-static": "^1.16.2", "serve-static": "^1.16.2",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"validator": "^13.15.20", "validator": "^13.15.23",
"winston": "^3.17.0", "winston": "^3.18.3",
"zxcvbn": "^4.4.2" "zxcvbn": "^4.4.2"
}, },
"devDependencies": { "devDependencies": {
@@ -48,7 +48,7 @@
"eslint-plugin-import": "^2.32.0", "eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4", "eslint-plugin-prettier": "^5.5.4",
"mocha": "^10.8.2", "mocha": "^10.8.2",
"nodemon": "^3.1.10", "nodemon": "^3.1.11",
"prettier": "3.3.3", "prettier": "3.3.3",
"supertest": "^7.1.4" "supertest": "^7.1.4"
}, },
@@ -985,12 +985,12 @@
} }
}, },
"node_modules/@dabh/diagnostics": { "node_modules/@dabh/diagnostics": {
"version": "2.0.3", "version": "2.0.8",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz",
"integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"colorspace": "1.1.x", "@so-ric/colorspace": "^1.1.6",
"enabled": "2.0.x", "enabled": "2.0.x",
"kuler": "^2.0.0" "kuler": "^2.0.0"
} }
@@ -2534,6 +2534,62 @@
"node": ">=18.0.0" "node": ">=18.0.0"
} }
}, },
"node_modules/@so-ric/colorspace": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz",
"integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==",
"license": "MIT",
"dependencies": {
"color": "^5.0.2",
"text-hex": "1.0.x"
}
},
"node_modules/@so-ric/colorspace/node_modules/color": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz",
"integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==",
"license": "MIT",
"dependencies": {
"color-convert": "^3.1.3",
"color-string": "^2.1.3"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-convert": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz",
"integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==",
"license": "MIT",
"dependencies": {
"color-name": "^2.0.0"
},
"engines": {
"node": ">=14.6"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-name": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz",
"integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==",
"license": "MIT",
"engines": {
"node": ">=12.20"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-string": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz",
"integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==",
"license": "MIT",
"dependencies": {
"color-name": "^2.0.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@socket.io/component-emitter": { "node_modules/@socket.io/component-emitter": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
@@ -3490,41 +3546,6 @@
"node": ">=0.1.90" "node": ">=0.1.90"
} }
}, },
"node_modules/colorspace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
"integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"license": "MIT",
"dependencies": {
"color": "^3.1.3",
"text-hex": "1.0.x"
}
},
"node_modules/colorspace/node_modules/color": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"license": "MIT",
"dependencies": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
}
},
"node_modules/colorspace/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/colorspace/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"license": "MIT"
},
"node_modules/combined-stream": { "node_modules/combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -5386,9 +5407,9 @@
} }
}, },
"node_modules/fs-extra": { "node_modules/fs-extra": {
"version": "11.3.1", "version": "11.3.2",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
@@ -7576,18 +7597,18 @@
} }
}, },
"node_modules/nodemailer": { "node_modules/nodemailer": {
"version": "7.0.7", "version": "7.0.10",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.7.tgz", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.10.tgz",
"integrity": "sha512-jGOaRznodf62TVzdyhKt/f1Q/c3kYynk8629sgJHpRzGZj01ezbgMMWJSAjHADcwTKxco3B68/R+KHJY2T5BaA==", "integrity": "sha512-Us/Se1WtT0ylXgNFfyFSx4LElllVLJXQjWi2Xz17xWw7amDKO2MLtFnVp1WACy7GkVGs+oBlRopVNUzlrGSw1w==",
"license": "MIT-0", "license": "MIT-0",
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/nodemon": { "node_modules/nodemon": {
"version": "3.1.10", "version": "3.1.11",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz",
"integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", "integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -10912,9 +10933,9 @@
} }
}, },
"node_modules/validator": { "node_modules/validator": {
"version": "13.15.20", "version": "13.15.23",
"resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz", "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.23.tgz",
"integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==", "integrity": "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 0.10" "node": ">= 0.10"
@@ -11435,13 +11456,13 @@
} }
}, },
"node_modules/winston": { "node_modules/winston": {
"version": "3.17.0", "version": "3.18.3",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", "resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz",
"integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@colors/colors": "^1.6.0", "@colors/colors": "^1.6.0",
"@dabh/diagnostics": "^2.0.2", "@dabh/diagnostics": "^2.0.8",
"async": "^3.2.3", "async": "^3.2.3",
"is-stream": "^2.0.0", "is-stream": "^2.0.0",
"logform": "^2.7.0", "logform": "^2.7.0",

View File

@@ -50,7 +50,7 @@
"dotenv-cli": "^7.4.4", "dotenv-cli": "^7.4.4",
"escape-html": "^1.0.3", "escape-html": "^1.0.3",
"escape-markdown": "^1.0.4", "escape-markdown": "^1.0.4",
"fs-extra": "^11.3.1", "fs-extra": "^11.3.2",
"ico-to-png": "^0.2.2", "ico-to-png": "^0.2.2",
"istextorbinary": "^9.5.0", "istextorbinary": "^9.5.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
@@ -58,7 +58,7 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mime": "^3.0.0", "mime": "^3.0.0",
"moment": "^2.30.1", "moment": "^2.30.1",
"nodemailer": "^7.0.7", "nodemailer": "^7.0.10",
"openid-client": "^5.7.1", "openid-client": "^5.7.1",
"patch-package": "^8.0.1", "patch-package": "^8.0.1",
"pg": "^8.16.3", "pg": "^8.16.3",
@@ -71,8 +71,8 @@
"serve-static": "^1.16.2", "serve-static": "^1.16.2",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"validator": "^13.15.20", "validator": "^13.15.23",
"winston": "^3.17.0", "winston": "^3.18.3",
"zxcvbn": "^4.4.2" "zxcvbn": "^4.4.2"
}, },
"devDependencies": { "devDependencies": {
@@ -83,7 +83,7 @@
"eslint-plugin-import": "^2.32.0", "eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4", "eslint-plugin-prettier": "^5.5.4",
"mocha": "^10.8.2", "mocha": "^10.8.2",
"nodemon": "^3.1.10", "nodemon": "^3.1.11",
"prettier": "3.3.3", "prettier": "3.3.3",
"supertest": "^7.1.4" "supertest": "^7.1.4"
}, },