chore: release v0.26.5
This commit is contained in:
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.26.5] - 2026-04-27
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Birthdays: increased maximum photo upload size from ~0.9 MB to 5 MB
|
||||||
|
|
||||||
## [0.26.4] - 2026-04-27
|
## [0.26.4] - 2026-04-27
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.26.4",
|
"version": "0.26.5",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.26.4",
|
"version": "0.26.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^6.0.0",
|
"bcrypt": "^6.0.0",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.26.4",
|
"version": "0.26.5",
|
||||||
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
||||||
"main": "server/index.js",
|
"main": "server/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+3
-3
@@ -87,8 +87,8 @@ app.set('trust proxy', process.env.TRUST_PROXY !== undefined ? process.env.TRUST
|
|||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
// Request-Parsing
|
// Request-Parsing
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
app.use(express.json({ limit: '1mb' }));
|
app.use(express.json({ limit: '7mb' }));
|
||||||
app.use(express.urlencoded({ extended: true, limit: '1mb' }));
|
app.use(express.urlencoded({ extended: true, limit: '7mb' }));
|
||||||
|
|
||||||
// JSON-Parse-Fehler abfangen (gibt sonst HTML zurück)
|
// JSON-Parse-Fehler abfangen (gibt sonst HTML zurück)
|
||||||
app.use((err, req, res, next) => {
|
app.use((err, req, res, next) => {
|
||||||
@@ -96,7 +96,7 @@ app.use((err, req, res, next) => {
|
|||||||
return res.status(400).json({ error: 'Invalid JSON in request body.', code: 400 });
|
return res.status(400).json({ error: 'Invalid JSON in request body.', code: 400 });
|
||||||
}
|
}
|
||||||
if (err.type === 'entity.too.large') {
|
if (err.type === 'entity.too.large') {
|
||||||
return res.status(413).json({ error: 'Request body too large (max. 1 MB).', code: 413 });
|
return res.status(413).json({ error: 'Request body too large (max. 7 MB).', code: 413 });
|
||||||
}
|
}
|
||||||
next(err);
|
next(err);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { deleteBirthdayArtifacts, hydrateBirthday, syncBirthdayArtifacts, syncAl
|
|||||||
|
|
||||||
const log = createLogger('Birthdays');
|
const log = createLogger('Birthdays');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const MAX_PHOTO_LENGTH = 900_000;
|
const MAX_PHOTO_LENGTH = 6_990_507; // ~5 MB raw image in base64
|
||||||
const PHOTO_RE = /^data:image\/(png|jpeg|jpg|webp|gif);base64,[A-Za-z0-9+/=]+$/;
|
const PHOTO_RE = /^data:image\/(png|jpeg|jpg|webp|gif);base64,[A-Za-z0-9+/=]+$/;
|
||||||
|
|
||||||
function validatePhotoData(val) {
|
function validatePhotoData(val) {
|
||||||
|
|||||||
Reference in New Issue
Block a user