All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This is a big release that contains a lot of new features and breaking changes. Main feature of that release is full TypeScript support insluding mongoose models.
- [NEW] Full TypeScript support, including Mongoose models.
- [NEW] New model type:
BaseModel, simplifying work with TypeScript and based on statics. - [NEW]
AppInstancehelper to access the app instance from anywhere without passing it. - [NEW]
GenerateTypescommand added. - [NEW]
Lockmodel for working with locks via MongoDB. - [NEW]
FrameworkFolderfolder added to the app for module usage. - [NEW] Ability to skip Mongo model initialization in CLI environments.
- [NEW] Mongo connections in CLI now have unique names, including the command name.
- [NEW] On shutdown event, force shutdown after a timeout.
- [NEW]
GenerateRandomBytescommand added. - [NEW]
IpDetectormiddleware for detecting proxies andX-Forwarded-Forheaders. - [NEW] Test helpers getTestServerURL and serverInstance.
- [NEW] Rate limiter middleware - add consumeResult function to allow user middleware as a regular rate limiter
- [NEW] Ip detector middleware - add getIpAdressFromIncomingMessage function to allow user middleware as a detector of id adresses without middleware
- [NEW] Introduce i18nService (ability to user i18n not only inside middleware)
- [BREAKING] No more global variables for testing and default user will not be created by default
- [BREAKING] All models now should be extended from
BaseModel. This is a potencial breaking change specially forUsermodel. - [BREAKING] Remove jest support for testing.
- [BREAKING] Move email module to separate package
@adaptivestone/framework-module-email. Please use it if you want to send emails. - [BREAKING] Remove
VIEWSfolders at all. Should not affect any user as this was not used internally. - [BREAKING] Removed
noidemailer-sendmail-transport. Not needed anymore and not recommended to use as well. - [BREAKING] Remove
minimistCLI parsing and replace it bycommandArgumentsparser. - [BREAKING]
vitestv3 https://vitest.dev/guide/migration.html. - [BREAKING]
i18nextv24 https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0. - [BREAKING] Possible breaking. Framework start using express 5 instead of express 4. Please follow express migration guide too https://expressjs.com/en/guide/migrating-5.html.
- [BREAKING] As part of express 5 migration
_in rotes (middlewares) should have perameter. please replace_to*splat. - [BREAKING] Default auth responce changed to be unified.
{token, user}=>{data:{token, user}}. - [BREAKING]
RateLimiternow need to haveIpDetectormiddleware before. - [BREAKING] Removing
staticFilesmiddleware as it not used in projects anymore. Docs with nginx config will be provided. - [BREAKING] Remove default
AUTH_SALT. It should be provided on a app level now. - [BREAKING] Minimum node version is 20.12 as for now (
process.loadEnvFile). - [BREAKING] ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience.
- [BREAKING] Mongoose v8. https://mongoosejs.com/docs/migrating_to_8.html.
- [BREAKING] Mongoose v9. https://mongoosejs.com/docs/migrating_to_9.html.
- [BREAKING] Vitest v4 https://vitest.dev/guide/migration.html#vitest-4
- [BREAKING] rate-limiter-flexible v9->v10
- [BREAKING] typecript v5->v6
- [NEW] Logout method
- [Update] set model typing
- [FIX] Fix typo in peerDeps
- [BREAKING] Mongoose v9. https://mongoosejs.com/docs/migrating_to_9.html.
- [UPDATE] Update deps
- [NEW] Bearer scheme support
- [NEW] redisConnection helper
- [UPDATE] Update
rate-limiter-flexibleto v9. - [UPDATE] Remove 'winston-transport-sentry' and implementcustom logic based on 'sentry' itself (from v9.14 sentry have native winston support)
- [UPDATE] rete limiter. Do not create index on mongo if we have "process.env.test === 'true'"
- [UPDATE] update dependencies
- [UPDATE] update rate limiter Mongo option to not create an index by default when NODE_ENV=test
- [UPDATE] the default User model now uses roles and permissions with the String type (previously was any, for historical reasons). To avoid changes on Mongoose 8.19 as it affects User model Automattic/mongoose#15699
- [BREAKING] Vitest v4 https://vitest.dev/guide/migration.html#vitest-4
- [UPDATE] i18nService update loading to avoid race conditions
- [UPDATE] i18nService update method names
- [NEW] Introduce i18nService (ability to user i18n not only inside middleware)
- [NEW] I18nMiddlewareAppInfo type
- [NEW] consumeResult changed to be more flexible
- [NEW] Ip detector middleware - add getIpAdressFromIncomingMessage function to allow user middleware as a detector of id adresses without middleware
- [NEW] Rate limiter middleware - add consumeResult function to allow user middleware as a regular rate limiter
- [FIX] Fix CLI mongo app name generation (64 symbols limit)
- [FIX] Fix CLI mongo app name generation (128 symbols limit)
- [UPDATE] Inside CLI allow to have a negative values
- [UPDATE] Update deps.
- [UPDATE] Remove eslint, prettiver and move to biome
- [UPDATE] Update types.
- [UPDATE] Update deps.
- [UPDATE] Update types.
- [UPDATE] Update tests (more ts).
- [UPDATE] Update types.
- [UPDATE] Update types.
- [BREAKING] No more global variables for testing and default user will not be created by default
- [NEW] Test helpers getTestServerURL, serverInstance, setDefaultUser, setDefaultAuthToken and createDefaultTestUser.
- [UPDATE] Update types.
- [FIX] Fix bug with missed model options.
- [FIX] Fix bug with
Lockmodel index. - [NEW]
BaseModeladdVirtuals.
- [NEW] Introducing new model type.
BaseModel. Features - simplifie works with typescript. And based on statics. - [BREAKING] All models now should be extended from
BaseModel. This is a potencial breaking change specially forUsermodel.
- [UPDATE] Move away connection from
mongooseModelsto server itself (preparation for different model types). - [BREAKING] Potencial. We are removed callback from
mongooseModelscontrctuctor. It was not used in code. - [NEW] Add
appInstancehelper to access app instance from anywhere without passing it.
- [NEW] Add
GenerateTypescommand.
- [UPDATE] Update deps.
- [UPDATE] New app getter
internalFilesCache. - [UPDATE] Command new static props to load
isShouldGetModelPaths.
- [FIX] Fix missing folder
migrationsindistfolder (hope that will be finally).
- [FIX] Fix missing folder
migrationsindistfolder.
- [UPDATE] Only process
.tsor.jsfiles (not.mapfiles).
- [BREAKING] Remove jest support for testing.
- [NEW] Initial move to typescript. Potencially breaking.
- [NEW] Introduce
srcanddistfolders.
- [NEW] Commands typing.
- [NEW] Commands support TS files.
- [UPDATE] Update deps.
- [BREAKING] Move email module to separate package
@adaptivestone/framework-module-email. Please use it if you want to send emails. - [NEW] App now contains
frameworkFolderfolder the framework located. Mostly for modules usage. - [BREAKING] Remove
VIEWSfolders at all. Should not afffect any user as this was not used internally. - [UPDATE] Update typing.
- [UPDATE] Change
redis->@redis/clientas we are using only client from pakage. - [BREAKING] Removed
noidemailer-sendmail-transport. Not needed anymore and not recommended to use as well.
- [UPDATE] Update deps.
- [NEW]
Lockmodel for working locks via mongoDB.
- [UPDATE] Update deps.
- [UPDATE] Change
vitestshutdown behavior as mongo driver v6.13 change befaviur that affect us (MongoClient.closenow closes any outstanding cursors).
- [BREAKING] Remove
minimistCLI parsing and replace it bycommandArgumentsparser. - [UPDATE] Migrated from
eslint-plugin-importtoeslint-plugin-import-x. - [UPDATE] Migrate to eslint 9 and away from aibnb styles (they are abonded).
- [NEW] On shutdown event now after timeout we are forcing to shutdown.
- [UPDATE] Update deps.
- [NEW] Add ability to skip mongo model init in CLI env.
- [NEW] Now each mongo connection on CLI have own name and inslude command name there too (
getMongoConnectionNamein command).
- [UPDATE] Update deps.
- [BREAKING]
vitestv3 https://vitest.dev/guide/migration.html.
- [UPDATE] Update deps.
- [UPDATE] New commands view in CLI.
- [UPDATE] Update deps.
- [BREAKING]
i18nextv24 https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [FIX] Fix optional routing parameters.
- [BREAKING] Possible breaking. Framework start using express 5 instead of express 4. Please follow express migration guide too https://expressjs.com/en/guide/migrating-5.html.
- [BREAKING] As part of express 5 migration
_in rotes (middlewares) should have perameter. please replace_to*splat. - [UPDATE] Update deps.
- [UPDATE] Mailer uses
await import()for startup speedup.
- [UPDATE] Update deps.
- [UPDATE]
#realLoggerdo not throw error in a scecific cases (model.toJSON({virtual:true})).
- [NEW] Added
modelSchemaOptionsfor models.
- [BREAKING] Default auth responce changed to be unified.
{token, user}=>{data:{token, user}}. - [UPDATE]
RateLimiterupdae key generation.
- [NEW]
generateRandomBytescommand. - [UPDATE] Update deps.
- [UPDATE] No warning of direct usage
bodyandquery. - [UPDATE] Update deps.
- [BUG] Fix bug with pagination.
- [UPDATE] Update deps.
- [NEW] Add types for
Abstractmodel (wip).
- [UPDATE] Update deps.
- [UPDATE] Update
i18ninternal implementation. - [CHANGE] Disable https server view.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [NEW]
IpDetectormiddleware that support detecting proxy andX-Forwarded-Forheader. - [BREAKING]
RateLimiternow need to haveIpDetectormiddleware before.
- [UPDATE] Update deps.
- [BREAKING] Removing
staticFilesmiddleware as it not used in projects anymore. Docs with nginx config will be provided. - [BREAKING] Remove default
AUTH_SALT. It should be provided on a app level now. - [BREAKING] Vitest 2.0.0 https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0.
- [UPDATE] Replace
dotenvwithloadEnvFile. - [UPDATE] Replace
nodemonwithnode --watch(dev only). - [BREAKING] Minimum node version is 20.12 as for now (
process.loadEnvFile).
- [UPDATE] Deps update.
- [UPDATE] Update internal documentation (
jsdoc,d.ts).
- [UPDATE] More verbose errors for rapsing body request.
- [UPDATE] Deps update.
- [UPDATE] Update
rate-limiter-flexibleto v5. - [CHANGE] Cache update
redis.setEXtoredis.set(..,..,{EX:xx})assetEXdeprecated.
- [UPDATE] Deps update.
- [FIX]
Migrationcommands apply.
- [UPDATE] Deps update.
- [BREAKING] Vitest 1.0.0 https://vitest.dev/guide/migration.html#migrating-from-vitest-0-34-6.
- [BREAKING] ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience.
- [BREAKING] Mongoose v8. https://mongoosejs.com/docs/migrating_to_8.html.
- [UPDATE] Deps update.
- [UPDATE] Deps update.
- [FIX]
Corsmiddleware return proper headers on multidomains.
- [FIX]
Corsmiddleware return proper status.
- [NEW]
Corsmiddleware. - [BREAKING] This is a potencial breaking change as we switched from
corsexternal package to internal middleware. From API nothing was changed. This is a potencial breaking changes, but it should keep working as it.
- [UPDATE] Deps update.
- [NEW] Static file middleware.
- [BREAKING] This is a potencial breaking change as we switched from
express.staticto internal middleware that provide less features but faster. From API nothing was changed.
- [UPDATE] Deps update.
- [UPDATE] All responces from framework now happens in JSON. Previouls sometime aswers was in plan text.
- [BREAKING] We are separated testsing to setyp and global setup. Global setup now care of mongo to make sure that only on mongodb memory server is spinned up. If you are using
vitestplease add"globalSetup": "node_modules/@adaptivestone/framework/tests/globalSetupVitest"to your vitest config.
- [UPDATE] Fix problme with fat start and closing connections after.
- [UPDATE] CLI - disable mongoose index creation.
- [UPDATE] Model inited on server inited.
- [NEW] New options to skip model init
isSkipModelInit. - [NEW] New method server method
initAllModels().
- [BREAKING] Minimum node js version id 18.17.0 now.
- [BREAKING] Removed
getFileWithExtendingInhirence. This was internal method and not suppose to use externally. - [UPDATE] Update
Base.getFilesPathWithInheritanceto usefs.readdir resursive option. - [UPDATE] Update cache (refactor+tets).
- [UPDATE] Update config and model inits.
- [UPDATE] Update logger init (refactor).
- [UPDATE] Updated deps.
- [NEW] Migrated from JEST to
vitest.
- [NEW] Now
getSuper()available as a method on mongoose models. - [UPDATE] Update
rate-limiter-flexibleto v3. - [UPDATE] Update test runner to suport ESM. In case problem with test please copy
babel.config.jsfrom framework to your project directory.
- [NEW] New method to grab url of server it testing enviroument
global.server.testingGetUrl("/some/endpoint").
- [UPDATE]
Yupfile validator update. As formidable now return all fields as an array.
- [BREAKING] Updated
formidablewith a new version + tests. Marked as breaking because of a new major version, but this is internal of framework and exernal still the same. Should break nothing.
- [UPDATE] Updated deps.
- [NEW]
CreateUsercli command. Ability to update user by email or id.
- [UPDATE] Updated deps.
- [NEW] Email - Ability to render templae to string for future usage.
- [BREAKING] Change
bcryptencryption withscrypt. - [BREAKING] Change internal express parser to
formidableparser. Affect you if externalformidableis used. - [BREAKING] Should not affect any user. Changed
email-templatesmodule to internal implementation. Idea to keep dependensy list smaller. - [BREAKING] Change
i18nmiddleware to internal one. Nothing should be affected. - [BREAKING] Now validation of request splitted between
requestandquery. - [BREAKING]
supportedLngsoption added toi18nconfig. - [BREAKING] Email inliner now looking for
src/services/messaging/email/resourcesfolder instead ofbuildfolder. - [BREAKING] Mongoose v7. https://mongoosejs.com/docs/migrating_to_7.html.
- [BREAKING]
Yupvalidation was updated to v1 jquense/yup#1906. - [DEPRECATED]
getExpresspath is deprecated. Renamed togetHttpPath. - [NEW] Pagination middleware.
- [NEW]
requestLoggermiddleware. Migrated from core server to be an middleware. - [NEW]
CreateUsercommand. - [NEW] Custom
yupvalidator for validate File requests. - [UPDATE] Updated deps.
- [UPDATE]
openApigenerator support files. - [UPDATE] Updated
18nmiddleware. Introduced internal cachce. Speed up of request processing up to 100%. - [UPDATE] Cache drivers to JSON support
BigIntnumbers.
- [UPDATE] Updated deps.
- [FIX] Fix tests for redis.
- [FIX] Support in tests
TEST_FOLDER_EMAILS.
- [UPDATE] Updated deps.
- [FIX] Fix documentation generation.
- [FIX] Fix documentation generation.
- [NEW] Now we pass
reqto validation and casting as a second parameter. This done mostly for custom validators.
- [NEW] New command
SyncIndexesto sync indexes for mongodb https://framework.adaptivestone.com/docs/cli#syncindexes. - [UPDATE] Updated deps.
- [FIX] Fix documentation generation.
- [UPDATE] Add options for
i18nto config. - [CHANGE] By default
i18nnot writing missed keys. Can be enabled via config.
- [UPDATE] Updated deps.
- [FIX] Fix documentation generation.
- [UPDATE] Updated deps.
- [NEW]
cache.removeKey(key)- function to remove key from cache.
- [UPDATE] Updated deps.
- [FIX] Fix cache error handling.
- [NEW] New comand to generate open API documentation (wip).
- [NEW] Coverage report.
- [UPDATE] Updated deps.
- [UPDATE] Updated deps.
- [FIX] Fix custom errors.
- [UPDATE] Updated deps.
- [UPDATE] Cast function now can be ASYNC too.
- [UPDATE] Updated redis to v4.
- [NEW] Updates tests to have own namespace on redis.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Change default branch to
main.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [FIX] Fix bug with route level middleware.
- [UPDATE] Update deps.
- [UPDATE] Minimum node version 16.
- [NEW] Now possible to show all errors during validation (default one) by parameter
controllerValidationAbortEarly. - [UPDATE] Update deps.
- [UPDATE] Bug fix with "mergeParams".
- [NEW] Ability to pass "mergeParams" options to express router.
- [UPDATE] Update deps.
- [UPDATE] More verbose email error.
- [UPDATE] Update deps.
- [CHANGE] Tests
afterAllnot using timeout anymore (conflict with jest 28-alpha). - [NEW] Config for mail now supports "EMAIL_TRANSPORT" env variable. SMTP by default (as was).
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [CHANGE] Change default
getConfigmethod.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Fix bug with app shutdown.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE]
getUserByTokensmore logs.
- [BREAKING] Mongoose v6. Than a lot of changes:mongoDB drive changes, Mongoose changes.
Notable changes from migration
Removed
execPopulate()link// Document#populate() now returns a promise and is now no longer chainable. //Replace await doc.populate('path1').populate('path2').execPopulate(); // with await doc.populate(['path1', 'path2']); //Replace await doc .populate('path1', 'select1') .populate('path2', 'select2') .execPopulate(); // with await doc.populate([ { path: 'path1', select: 'select1' }, { path: 'path2', select: 'select2' }, ]);
- [REMOVED] Removed deprecated router handler string not allowed anymore. Use functions by itself.
- [REMOVED] Removed deprecated
someSecretSalt()on user model (usethis.saltSecretinstead). - [REMOVED] Removed deprecated
validate()on abstract controller and as result validator dependency. Use request validators instead. - [REMOVED] Removed deprecated
isUseControllerNameForRouting()on abstract controller. UsegetExpressPath()instead. - [REMOVED] Removed deprecated
Base.loadFilesWithInheritanceplease usegetFilesPathWithInheritancethat produce almost the same output. - [BREAKING] Removed "success" field on Auth contreoller. Please use http status instead.
- [BREAKING] Auth controller - "error" error responce renamed to "message".
// Before { error: 'Some error'; } // After { message: 'Some error'; }
- [UPDATE] Update deps.
- [UPDATE] Winston console transport now using timestapms.
- [UPDATE]
PrepareAppInfomiddleware now a global one. Do not need to include it on every controller. - [NEW] Request also works with
req.query, butreq.bodyhave bigger priority.
- [UPDATE] Update deps.
- [UPDATE] Replace
body-parserwithexpress.json. - [NEW] Role middleware.
- [UPDATE] Update deps.
- [NEW] New env variable
LOGGER_SENTRY_LEVEL(default=info). - [NEW] New env variable
LOGGER_CONSOLE_ENABLE(default=true). - [BREAKING] On translation we changed
i18next. Please convert files if you have plurals inside it https://i18next.github.io/i18next-v4-format-converter-web/.
- [UPDATE] Update deps.
- [NEW] Begin adding type script definitions.
- [UPDATE] Update deps.
- [UPDATE] Update tests timeout.
- [UPDATE] Update deps.
- [NEW] Ability to configure Auth flow with
isAuthWithVefificationFlowoption. - [BREAKING] Register not return status 201 instead of 200.
- [NEW] Add
Sequence. It provide ability to easily generate sequences for given types. It save to use on distributed environments.const SequenceModel = this.app.getModel('Sequence'); // will be 1 const someTypeSequence = await SequenceModel.getSequence('someType'); // will be 2 const someTypeSequence2 = await SequenceModel.getSequence('someType'); // will be 1 as type is another const someAnotherTypeSequence = await SequenceModel.getSequence('someAnotherType');
- [FIX] Fix documentation about not using
req.appInfo.request, but usingreq.bodyforRateLimiter.
- [NEW] Rate limited middleware - ability to include request components (
req.body) for key generation. Please not that you have no access toreq.appInfo.requeston this stage.static get middleware() { return new Map([ ['POST/login', [ PrepareAppInfo, GetUserByToken, [RateLimiter,{consumeKeyComponents: { ip: false, request:['email','phone'] }}] ]] ]); }
- [UPDATE] Update deps.
- [NEW] Rate limited middleware.
As rate limited we using https://github.com/animir/node-rate-limiter-flexible
Be default rate key generated based on Route, IP and userID. But you can adjust it vie config (global) or via middleware parameters (see v 2.10.0) Rate limiter have multiple backends (memory, redis and mongo). Buy default 'memory' backend activated
static get middleware() { return new Map([ ['POST/login', [ PrepareAppInfo, GetUserByToken, RateLimiter ]] ]); }
static get middleware() { return new Map([ [ 'POST/login', [ PrepareAppInfo, GetUserByToken, [ RateLimiter, { consumeKeyComponents: { ip: false }, limiterOptions: { points: 5 }, }, ], ], ], ]); }
- [NEW] Added env variable
HTTP_HOSTfor configure host to listen.
- [UPDATE] Update deps.
- [NEW] Ability to pass parameters to middleware.
All this params goes to constructor as a second paramater.
static get middleware() { return new Map([ ['POST/someUrl', [ PrepareAppInfo, GetUserByToken, [RoleMiddleware, { roles: ['admin'] ]}] ]] ]); }
- [UPDATE] Update deps.
- [FIX] Fix auth nick.
- [UPDATE] Update deps.
- [BREAKING] Auth controller update.
- [FIX] Update recovery email template.
- [FIX] Update AUTH controller.
- [UPDATE] Update deps.
- [FIX] Update AUTH controller.
- [UPDATE] Change controllers to reflect latest changes.
- [UPDATE] Add warning when using
req.bodydirectly. - [BREAKING] Possible breaking.
AsyncFunctionnow required for router handler (it always was but without checking of code). - [DEPRECATE] Usage of
validatorof controllers. - [DEPRECATE] Usage of
isUseControllerNameForRoutingof controllers.
- [UPDATE] Update deps.
- [UPDATE] Replace
i18next-node-fs-backendtoi18next-fs-backend(drop in replacement).
- [UPDATE] Update deps.
- [REMOVE] Remove unused websocket.
- [UPDATE] Change winston sentry transport.
- [UPDATE] Update deps.
- [UPDATE] Optimize deps.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [UPDATE] Update handling exceptions loging.
- [UPDATE] Normalize auth config.
- [FIX] Fix error on cache system.
- [UPDATE]
stripUnknown=trueby default on casting.
- [UPDATE] Deps update.
- [NEW] New cache system (alpha, subject of change).
const cacheTime = 60 * 5; this.app.cache.getSetValue( 'someKey', async () => { // function that will execute in case cache value is missed }, cacheTime, );
- [UPDATE] Deps update.
- [FIX] Fix error logging on unhadled rejection.
- [NEW] New route handler format with request validations and casting (yup based).
get routes() { return { post: { '/': { handler: this.postSample, request: yup.object().shape({ count: yup.number().max(100)required(), }) } } } } // send request with data {count: "5000"} // will produce error with status 400 and {errors: {count:['Text error']}} postSample(req,res) =>{ // on success validate we pass here. // {count: "5000"} console.log(req.appInfo.request) // {count: 5000} -> casted to number }
- [UPDATE] Deps update.
- [NEW] Controller unhandled rejection now handled with default error.
- [NEW] Handle error with wrong model name.
- [UPDATE] Deps update.
- [FIX] Abstract controlled middleware.
- [UPDATE] Deps update.
- [FIX] Updated test because of previous breaking changes.
- [BREAKING] Possible that bug fix of middleware can affect your code. Previous route middleware was GLOBAL (
router.use) now in router level only (route.any). Previous Home controller (/route be default) middleware affect ANY routes on app. Right now that fixed. - [NEW] Controller middleware now support methods. Previous only
ALLwas supported. Possible to start router with any method that supported by Express and middleware will be scoped by this method. If middleware route started from "/" thenALLmethod will be used (like previous bahaviour).static get middleware() { return new Map([['GET/*', [PrepareAppInfo, GetUserByToken]]]); }
- [FIX] Fix validate controller method for non strings.
- [UPDATE] Testing now with mongoDB Replica.
- [UPDATE] Refactor CLI.
- [UPDATE] Testing update.
- [UPDATE] Refactor CLI for testing.
- [UPDATE] Update user model indexes to allow null email and nick.
- [UPDATE] Deps update.
- [FIX] Test fix.
- [NEW] Add
global.testSetup.beforeAllglobal.testSetup.afterAllfunctions andglobal.testSetup.disableUserCreateflag for testing testing.
- [UPDATE] Deps update.
- [NEW] Add
global.testSetup.userCreatefunction for testing.
- [UPDATE] Deps update.
- [FIX] Test fix.
- [NEW] Add command
DropIndex. - [UPDATE] Deps update.
- [NEW] Add
webResourcesoption to email service. - [UPDATE] Deps update.
- [UPDATE] Deps update.
- [FIX] Fix controllers order to load.
- [FIX] Fix parsing token.
- [NEW]
Migration/createmigration/migratecommands.
- [NEW] CLI command receiving parsed arguments.
- [FIX] Fix disconnecting problems with replica set.
- [UPDATE] Internal update for speed up cli init.
- [FIX] Fix language detection.
- [FIX] Fix test as part of docker image update. This just a
mongo-memory-serverproblems. - [NEW] Add config to configure language detecting order and types.
- [UPDATE] Deps update.
- [DEPRECATED]
Base.loadFilesWithInheritanceplease usegetFilesPathWithInheritancethat produce almost the same output. - [UPDATE] Deps update.
- [UPDATE] Https logs now contains request time.
- [NEW] Ability to put controllers into folders with path inheritance.
- [NEW] Ability to replace
expressPathon controller -getExpressPath()methos. - [NEW] Ability to put commands into folders with path inheritance.
- [UPDATE] Disconnect of mongoose when command was finished.
- [UPDATE] Deps update.
- [DEV] Added codestyle checker.
- [NEW] Initial CLI module.
- [UPDATE] Socket.io v3.
- [UPDATE] Deps update.
- [NEW] Added config to websocket.
- [BREAKING] Change config format of log config. Now configs can be only objects.
- [NEW] Support for environment configs (
config.jsandconfig.{NODE_ENV}.js) with overwrite. - [UPDATE] Deps update.
- [NEW] Ability to pass additional parameter to server that will be executed before adding page 404.
- [NEW] Models now support optional callback that will executed on connection ready. If mongo already connected then callback will be executed immediately.
- [UPDATE] Update deps.
- [UPDATE] Update deps.
- [NEW] Add abilty to return error from custom validation functions.
- [UPDATE] Validator documentation (jsdoc) update.
- [UPDATE] Validator support pass parameters to validator.
- [FIX] Fix problem with test (user should be global on tests).
- [NEW] Add eslint.
- [UPDATE] Code refactor.
- [NEW] Add prettier.
- [UPDATE] Code reformat.
- [UPDATE] Update deps.