From 34c1a0fc8e1b7fd45f9b25f0529e95b89616b327 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Thu, 9 Apr 2026 23:58:39 +0300 Subject: [PATCH] Version 4.0.0 --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ LICENSE | 2 +- README.md | 2 +- package-lock.json | 22 +++++++++++----------- package.json | 2 +- 5 files changed, 51 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e366ac4c1..bf6c105ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## [Unreleased][unreleased] + +## [4.0.0][] - 2026-04-09 + +### Breaking + +- Inlined HTTP balancer and static file serving (moved from metacom); align `metacom` version and any integration assumptions when upgrading + +### Added + +- Static file compression (gzip, deflate, brotli, zstd) +- Tests for balancer, planner, and auth + +### Changed + +- Moved balancer implementation from metacom into impress +- Moved static file server from metacom into impress +- Ran application `start` methods the same way as `start.js` lifecycle hooks +- Improved error handling and return behaviour across several code paths +- Updated TypeScript typings and dependencies +- Applied metaskills-based code style; removed legacy ESLint config files +- Documented that HTTP webhooks are not part of metacom/impress core (implement separately if needed) + +### Fixed + +- Static compressor now instantiates fresh compressor instances where required +- Optional dependency handling for submodules (skip when missing, detect optional modules by error code) +- Avoided loading submodules twice when already loaded with the parent module +- Logged errors when module loading fails +- File watch behaviour with metawatch (`DirectoryWatcher` integration) + +### Removed + +- Duplicate code blocks + ## [3.1.2][] - 2025-09-29 - Fix worker: invoke handler for scheduler @@ -407,6 +442,8 @@ First generation of application server with following features - Connection drivers for database engines: MongoDB, PgSQL, Oracle, MySQL - Support GeoIP, health monitoring, task scheduling, server-side templating +[unreleased]: https://github.com/metarhia/impress/compare/v4.0.0...HEAD +[4.0.0]: https://github.com/metarhia/impress/compare/v3.1.2...v4.0.0 [3.1.2]: https://github.com/metarhia/impress/compare/v3.1.1...v3.1.2 [3.1.1]: https://github.com/metarhia/impress/compare/v3.1.0...v3.1.1 [3.1.0]: https://github.com/metarhia/impress/compare/v3.0.18...v3.1.0 diff --git a/LICENSE b/LICENSE index 5c50c3d49..ecbaa5450 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2012-2025 Metarhia contributors +Copyright (c) 2012-2026 Metarhia contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 5e4e8848c..4e5740b64 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Those features will be implemented in nearest future (3-6 months): ## License & Contributors -Copyright (c) 2012-2025 Metarhia contributors. +Copyright (c) 2012-2026 Metarhia contributors. See github for full [contributors list](https://github.com/metarhia/impress/graphs/contributors). Impress Application Server is [MIT licensed](./LICENSE). Project coordinator: <timur.shemsedinov@gmail.com> diff --git a/package-lock.json b/package-lock.json index 7478fd5dc..f7ceb3a8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "impress", - "version": "3.1.2", + "version": "4.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "impress", - "version": "3.1.2", + "version": "4.0.0", "license": "MIT", "dependencies": { "metacom": "^3.2.6", @@ -258,9 +258,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz", + "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==", "dev": true, "license": "MIT", "dependencies": { @@ -348,9 +348,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", + "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", "dev": true, "license": "MIT", "dependencies": { @@ -1386,9 +1386,9 @@ } }, "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index da558c206..92c7d650c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "impress", - "version": "3.1.2", + "version": "4.0.0", "author": "Timur Shemsedinov ", "description": "Enterprise application server for Node.js", "license": "MIT",