@adaptivestone/framework 5.0.0-beta.4 → 5.0.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/CHANGELOG.md +1117 -528
  2. package/LICENCE +1 -1
  3. package/dist/Cli.d.ts +7 -0
  4. package/dist/Cli.js +19 -0
  5. package/dist/Cli.js.map +1 -0
  6. package/dist/cluster.d.ts +1 -0
  7. package/dist/cluster.js +18 -0
  8. package/dist/cluster.js.map +1 -0
  9. package/dist/commands/CreateUser.d.ts +32 -0
  10. package/dist/commands/CreateUser.js +83 -0
  11. package/dist/commands/CreateUser.js.map +1 -0
  12. package/dist/commands/Documentation.d.ts +5 -0
  13. package/dist/commands/Documentation.js +15 -0
  14. package/dist/commands/Documentation.js.map +1 -0
  15. package/dist/commands/DropIndex.d.ts +16 -0
  16. package/dist/commands/DropIndex.js +30 -0
  17. package/dist/commands/DropIndex.js.map +1 -0
  18. package/dist/commands/GenerateRandomBytes.d.ts +7 -0
  19. package/dist/commands/GenerateRandomBytes.js +18 -0
  20. package/dist/commands/GenerateRandomBytes.js.map +1 -0
  21. package/dist/commands/GenerateTypes.d.ts +11 -0
  22. package/dist/commands/GenerateTypes.js +52 -0
  23. package/dist/commands/GenerateTypes.js.map +1 -0
  24. package/dist/commands/GetOpenApiJson.d.ts +17 -0
  25. package/dist/commands/GetOpenApiJson.js +272 -0
  26. package/dist/commands/GetOpenApiJson.js.map +1 -0
  27. package/dist/commands/SyncIndexes.d.ts +6 -0
  28. package/dist/commands/SyncIndexes.js +31 -0
  29. package/dist/commands/SyncIndexes.js.map +1 -0
  30. package/dist/commands/migration/Create.d.ts +18 -0
  31. package/dist/commands/migration/Create.js +57 -0
  32. package/dist/commands/migration/Create.js.map +1 -0
  33. package/dist/commands/migration/Migrate.d.ts +6 -0
  34. package/dist/commands/migration/Migrate.js +43 -0
  35. package/dist/commands/migration/Migrate.js.map +1 -0
  36. package/dist/config/auth.d.ts +6 -0
  37. package/dist/config/auth.js +7 -0
  38. package/dist/config/auth.js.map +1 -0
  39. package/dist/config/http.d.ts +8 -0
  40. package/dist/config/http.js +10 -0
  41. package/dist/config/http.js.map +1 -0
  42. package/dist/config/i18n.d.ts +13 -0
  43. package/dist/config/i18n.js +13 -0
  44. package/dist/config/i18n.js.map +1 -0
  45. package/dist/config/ipDetector.d.ts +5 -0
  46. package/dist/config/ipDetector.js +15 -0
  47. package/dist/config/ipDetector.js.map +1 -0
  48. package/dist/config/log.d.ts +11 -0
  49. package/dist/config/log.js +20 -0
  50. package/dist/config/log.js.map +1 -0
  51. package/dist/config/mongo.d.ts +4 -0
  52. package/dist/config/mongo.js +4 -0
  53. package/dist/config/mongo.js.map +1 -0
  54. package/dist/config/rateLimiter.d.ts +13 -0
  55. package/dist/config/rateLimiter.js +17 -0
  56. package/dist/config/rateLimiter.js.map +1 -0
  57. package/dist/config/redis.d.ts +5 -0
  58. package/dist/config/redis.js +5 -0
  59. package/dist/config/redis.js.map +1 -0
  60. package/dist/config/validate.d.ts +4 -0
  61. package/dist/config/validate.js +4 -0
  62. package/dist/config/validate.js.map +1 -0
  63. package/dist/controllers/Auth.d.ts +131 -0
  64. package/dist/controllers/Auth.js +186 -0
  65. package/dist/controllers/Auth.js.map +1 -0
  66. package/dist/controllers/Home.d.ts +15 -0
  67. package/dist/controllers/Home.js +22 -0
  68. package/dist/controllers/Home.js.map +1 -0
  69. package/dist/controllers/index.d.ts +16 -0
  70. package/dist/controllers/index.js +59 -0
  71. package/dist/controllers/index.js.map +1 -0
  72. package/dist/folderConfig.d.ts +34 -0
  73. package/dist/folderConfig.js +14 -0
  74. package/dist/folderConfig.js.map +1 -0
  75. package/dist/helpers/appInstance.d.ts +3 -0
  76. package/dist/helpers/appInstance.js +8 -0
  77. package/dist/helpers/appInstance.js.map +1 -0
  78. package/dist/helpers/crypto.d.ts +3 -0
  79. package/dist/helpers/crypto.js +17 -0
  80. package/dist/helpers/crypto.js.map +1 -0
  81. package/dist/helpers/files.d.ts +16 -0
  82. package/dist/helpers/files.js +76 -0
  83. package/dist/helpers/files.js.map +1 -0
  84. package/dist/helpers/logger.d.ts +4 -0
  85. package/dist/helpers/logger.js +20 -0
  86. package/dist/helpers/logger.js.map +1 -0
  87. package/dist/helpers/redis/clearNamespace.d.ts +2 -0
  88. package/dist/helpers/redis/clearNamespace.js +14 -0
  89. package/dist/helpers/redis/clearNamespace.js.map +1 -0
  90. package/dist/helpers/redis/redisConnection.d.ts +6 -0
  91. package/dist/helpers/redis/redisConnection.js +48 -0
  92. package/dist/helpers/redis/redisConnection.js.map +1 -0
  93. package/dist/helpers/yup.d.ts +13 -0
  94. package/dist/helpers/yup.js +21 -0
  95. package/dist/helpers/yup.js.map +1 -0
  96. package/dist/index.d.ts +1 -0
  97. package/dist/index.js +7 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/models/Lock.d.ts +90 -0
  100. package/dist/models/Lock.js +97 -0
  101. package/dist/models/Lock.js.map +1 -0
  102. package/dist/models/Migration.d.ts +13 -0
  103. package/dist/models/Migration.js +14 -0
  104. package/dist/models/Migration.js.map +1 -0
  105. package/dist/models/Sequence.d.ts +28 -0
  106. package/dist/models/Sequence.js +19 -0
  107. package/dist/models/Sequence.js.map +1 -0
  108. package/dist/models/User.d.ts +656 -0
  109. package/dist/models/User.js +291 -0
  110. package/dist/models/User.js.map +1 -0
  111. package/dist/models/UserOld.d.ts +179 -0
  112. package/dist/models/UserOld.js +230 -0
  113. package/dist/models/UserOld.js.map +1 -0
  114. package/dist/modules/AbstractCommand.d.ts +51 -0
  115. package/dist/modules/AbstractCommand.js +60 -0
  116. package/dist/modules/AbstractCommand.js.map +1 -0
  117. package/dist/modules/AbstractConnector.d.ts +5 -0
  118. package/dist/modules/AbstractConnector.js +8 -0
  119. package/dist/modules/AbstractConnector.js.map +1 -0
  120. package/dist/modules/AbstractController.d.ts +95 -0
  121. package/dist/modules/AbstractController.js +323 -0
  122. package/dist/modules/AbstractController.js.map +1 -0
  123. package/dist/modules/AbstractModel.d.ts +29 -0
  124. package/dist/modules/AbstractModel.js +42 -0
  125. package/dist/modules/AbstractModel.js.map +1 -0
  126. package/dist/modules/Base.d.ts +29 -0
  127. package/dist/modules/Base.js +58 -0
  128. package/dist/modules/Base.js.map +1 -0
  129. package/dist/modules/BaseCli.d.ts +25 -0
  130. package/dist/modules/BaseCli.js +147 -0
  131. package/dist/modules/BaseCli.js.map +1 -0
  132. package/dist/modules/BaseModel.d.ts +55 -0
  133. package/dist/modules/BaseModel.js +37 -0
  134. package/dist/modules/BaseModel.js.map +1 -0
  135. package/dist/server.d.ts +123 -0
  136. package/dist/server.js +468 -0
  137. package/dist/server.js.map +1 -0
  138. package/dist/services/cache/Cache.d.ts +31 -0
  139. package/dist/services/cache/Cache.js +102 -0
  140. package/dist/services/cache/Cache.js.map +1 -0
  141. package/dist/services/documentation/DocumentationGenerator.d.ts +11 -0
  142. package/dist/services/documentation/DocumentationGenerator.js +130 -0
  143. package/dist/services/documentation/DocumentationGenerator.js.map +1 -0
  144. package/dist/services/http/HttpServer.d.ts +35 -0
  145. package/dist/services/http/HttpServer.js +70 -0
  146. package/dist/services/http/HttpServer.js.map +1 -0
  147. package/dist/services/http/middleware/AbstractMiddleware.d.ts +26 -0
  148. package/dist/services/http/middleware/AbstractMiddleware.js +41 -0
  149. package/dist/services/http/middleware/AbstractMiddleware.js.map +1 -0
  150. package/dist/services/http/middleware/Auth.d.ts +9 -0
  151. package/dist/services/http/middleware/Auth.js +18 -0
  152. package/dist/services/http/middleware/Auth.js.map +1 -0
  153. package/dist/services/http/middleware/Cors.d.ts +12 -0
  154. package/dist/services/http/middleware/Cors.js +36 -0
  155. package/dist/services/http/middleware/Cors.js.map +1 -0
  156. package/dist/services/http/middleware/GetUserByToken.d.ts +27 -0
  157. package/dist/services/http/middleware/GetUserByToken.js +47 -0
  158. package/dist/services/http/middleware/GetUserByToken.js.map +1 -0
  159. package/dist/services/http/middleware/I18n.d.ts +23 -0
  160. package/dist/services/http/middleware/I18n.js +61 -0
  161. package/dist/services/http/middleware/I18n.js.map +1 -0
  162. package/dist/services/http/middleware/IpDetector.d.ts +14 -0
  163. package/dist/services/http/middleware/IpDetector.js +55 -0
  164. package/dist/services/http/middleware/IpDetector.js.map +1 -0
  165. package/dist/services/http/middleware/Pagination.d.ts +27 -0
  166. package/dist/services/http/middleware/Pagination.js +46 -0
  167. package/dist/services/http/middleware/Pagination.js.map +1 -0
  168. package/dist/services/http/middleware/PrepareAppInfo.d.ts +8 -0
  169. package/dist/services/http/middleware/PrepareAppInfo.js +17 -0
  170. package/dist/services/http/middleware/PrepareAppInfo.js.map +1 -0
  171. package/dist/services/http/middleware/RateLimiter.d.ts +26 -0
  172. package/dist/services/http/middleware/RateLimiter.js +102 -0
  173. package/dist/services/http/middleware/RateLimiter.js.map +1 -0
  174. package/dist/services/http/middleware/RequestLogger.d.ts +8 -0
  175. package/dist/services/http/middleware/RequestLogger.js +18 -0
  176. package/dist/services/http/middleware/RequestLogger.js.map +1 -0
  177. package/dist/services/http/middleware/RequestParser.d.ts +8 -0
  178. package/dist/services/http/middleware/RequestParser.js +35 -0
  179. package/dist/services/http/middleware/RequestParser.js.map +1 -0
  180. package/dist/services/http/middleware/Role.d.ts +12 -0
  181. package/dist/services/http/middleware/Role.js +24 -0
  182. package/dist/services/http/middleware/Role.js.map +1 -0
  183. package/dist/services/i18n/I18n.d.ts +15 -0
  184. package/dist/services/i18n/I18n.js +58 -0
  185. package/dist/services/i18n/I18n.js.map +1 -0
  186. package/dist/services/logging/SentryTransport.d.ts +13 -0
  187. package/dist/services/logging/SentryTransport.js +121 -0
  188. package/dist/services/logging/SentryTransport.js.map +1 -0
  189. package/dist/services/validate/ValidateService.d.ts +31 -0
  190. package/dist/services/validate/ValidateService.js +95 -0
  191. package/dist/services/validate/ValidateService.js.map +1 -0
  192. package/dist/services/validate/drivers/AbstractValidator.d.ts +14 -0
  193. package/dist/services/validate/drivers/AbstractValidator.js +29 -0
  194. package/dist/services/validate/drivers/AbstractValidator.js.map +1 -0
  195. package/dist/services/validate/drivers/CustomValidator.d.ts +14 -0
  196. package/dist/services/validate/drivers/CustomValidator.js +48 -0
  197. package/dist/services/validate/drivers/CustomValidator.js.map +1 -0
  198. package/dist/services/validate/drivers/YupValidator.d.ts +13 -0
  199. package/dist/services/validate/drivers/YupValidator.js +86 -0
  200. package/dist/services/validate/drivers/YupValidator.js.map +1 -0
  201. package/dist/tests/frameworkVitestSetup.d.ts +1 -0
  202. package/dist/tests/frameworkVitestSetup.js +9 -0
  203. package/dist/tests/frameworkVitestSetup.js.map +1 -0
  204. package/dist/tests/globalSetupVitest.d.ts +3 -0
  205. package/dist/tests/globalSetupVitest.js +29 -0
  206. package/dist/tests/globalSetupVitest.js.map +1 -0
  207. package/dist/tests/setupVitest.d.ts +1 -0
  208. package/dist/tests/setupVitest.js +91 -0
  209. package/dist/tests/setupVitest.js.map +1 -0
  210. package/dist/tests/testHelpers.d.ts +340 -0
  211. package/dist/tests/testHelpers.js +48 -0
  212. package/dist/tests/testHelpers.js.map +1 -0
  213. package/package.json +53 -40
  214. package/Cli.js +0 -22
  215. package/cluster.js +0 -27
  216. package/commands/CreateUser.js +0 -75
  217. package/commands/Documentation.js +0 -17
  218. package/commands/DropIndex.js +0 -29
  219. package/commands/GenerateRandomBytes.js +0 -21
  220. package/commands/GetOpenApiJson.js +0 -325
  221. package/commands/SyncIndexes.js +0 -39
  222. package/commands/migration/Create.js +0 -61
  223. package/commands/migration/Migrate.js +0 -55
  224. package/config/auth.js +0 -9
  225. package/config/http.js +0 -9
  226. package/config/i18n.js +0 -12
  227. package/config/ipDetector.js +0 -14
  228. package/config/log.js +0 -22
  229. package/config/mail.js +0 -29
  230. package/config/mongo.js +0 -3
  231. package/config/rateLimiter.js +0 -16
  232. package/config/redis.js +0 -4
  233. package/config/validate.js +0 -3
  234. package/controllers/Auth.js +0 -210
  235. package/controllers/Home.js +0 -28
  236. package/controllers/index.js +0 -60
  237. package/folderConfig.js +0 -14
  238. package/helpers/files.js +0 -79
  239. package/helpers/logger.js +0 -17
  240. package/helpers/redis/clearNamespace.js +0 -14
  241. package/helpers/yup.js +0 -24
  242. package/index.js +0 -8
  243. package/jsconfig.json +0 -9
  244. package/locales/en/translation.json +0 -27
  245. package/locales/ru/translation.json +0 -27
  246. package/migrations/.gitkeep +0 -0
  247. package/models/Migration.js +0 -15
  248. package/models/Sequence.js +0 -22
  249. package/models/User.js +0 -263
  250. package/modules/AbstractCommand.js +0 -43
  251. package/modules/AbstractConnector.js +0 -9
  252. package/modules/AbstractController.js +0 -413
  253. package/modules/AbstractModel.d.ts +0 -48
  254. package/modules/AbstractModel.js +0 -92
  255. package/modules/Base.d.ts +0 -37
  256. package/modules/Base.js +0 -63
  257. package/modules/BaseCli.js +0 -97
  258. package/server.d.ts +0 -98
  259. package/server.js +0 -438
  260. package/services/cache/Cache.d.ts +0 -35
  261. package/services/cache/Cache.js +0 -124
  262. package/services/documentation/DocumentationGenerator.js +0 -169
  263. package/services/http/HttpServer.js +0 -96
  264. package/services/http/middleware/AbstractMiddleware.js +0 -51
  265. package/services/http/middleware/Auth.js +0 -20
  266. package/services/http/middleware/Cors.js +0 -46
  267. package/services/http/middleware/GetUserByToken.js +0 -47
  268. package/services/http/middleware/I18n.js +0 -117
  269. package/services/http/middleware/IpDetector.js +0 -59
  270. package/services/http/middleware/Pagination.js +0 -57
  271. package/services/http/middleware/PrepareAppInfo.js +0 -18
  272. package/services/http/middleware/RateLimiter.js +0 -134
  273. package/services/http/middleware/RequestLogger.js +0 -22
  274. package/services/http/middleware/RequestParser.js +0 -40
  275. package/services/http/middleware/Role.js +0 -29
  276. package/services/messaging/email/index.js +0 -217
  277. package/services/messaging/email/resources/.gitkeep +0 -1
  278. package/services/messaging/email/templates/emptyTemplate/html.pug +0 -9
  279. package/services/messaging/email/templates/emptyTemplate/subject.pug +0 -1
  280. package/services/messaging/email/templates/emptyTemplate/text.pug +0 -1
  281. package/services/messaging/email/templates/recovery/html.pug +0 -8
  282. package/services/messaging/email/templates/recovery/subject.pug +0 -2
  283. package/services/messaging/email/templates/recovery/text.pug +0 -3
  284. package/services/messaging/email/templates/verification/html.pug +0 -10
  285. package/services/messaging/email/templates/verification/subject.pug +0 -1
  286. package/services/messaging/email/templates/verification/text.pug +0 -1
  287. package/services/messaging/index.js +0 -3
  288. package/services/validate/ValidateService.js +0 -157
  289. package/services/validate/drivers/AbstractValidator.js +0 -37
  290. package/services/validate/drivers/CustomValidator.js +0 -51
  291. package/services/validate/drivers/YupValidator.js +0 -103
  292. package/tests/globalSetupVitest.js +0 -35
  293. package/tests/setup.js +0 -118
  294. package/tests/setupVitest.js +0 -109
  295. package/types/Expand.d.ts +0 -11
  296. package/types/TFoldersConfig.d.ts +0 -17
  297. package/views/404.pug +0 -3
  298. package/views/home.pug +0 -3
  299. package/views/layouts/base.pug +0 -39
  300. package/vitest.config.js +0 -16
  301. /package/{commands → dist/migrations}/.gitkeep +0 -0
package/CHANGELOG.md CHANGED
@@ -1,522 +1,990 @@
1
- ### 5.0.0-beta.4
1
+ # Changelog
2
2
 
3
- [NEW] on shutdown event now after timeout we are forcing to shutdown
3
+ All notable changes to this project will be documented in this file.
4
4
 
5
- ### 5.0.0-beta.2
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7
 
7
- [UPDATE] update deps
8
- [NEW] add ability to skip mongo model init in CLI env
9
- [NEW] now each mongo connection on CLI have own name and inslude command name there too (getMongoConnectionName in command)
8
+ ## [5.0.0-next]
10
9
 
11
- ### 5.0.0-beta.1
10
+ This is a big release that contains a lot of new features and breaking changes.
11
+ Main feature of that release is full TypeScript support insluding mongoose models.
12
12
 
13
- [UPDATE] update deps
14
- [BREAKING] vitest v3 https://vitest.dev/guide/migration.html
13
+ ### New Features
15
14
 
16
- ### 5.0.0-alpha.26
15
+ - **[NEW]** Full TypeScript support, including Mongoose models.
16
+ - **[NEW]** New model type: `BaseModel`, simplifying work with TypeScript and based on statics.
17
+ - **[NEW]** `AppInstance` helper to access the app instance from anywhere without passing it.
18
+ - **[NEW]** `GenerateTypes` command added.
19
+ - **[NEW]** `Lock` model for working with locks via MongoDB.
20
+ - **[NEW]** `FrameworkFolder` folder added to the app for module usage.
21
+ - **[NEW]** Ability to skip Mongo model initialization in CLI environments.
22
+ - **[NEW]** Mongo connections in CLI now have unique names, including the command name.
23
+ - **[NEW]** On shutdown event, force shutdown after a timeout.
24
+ - **[NEW]** `GenerateRandomBytes` command added.
25
+ - **[NEW]** `IpDetector` middleware for detecting proxies and `X-Forwarded-For` headers.
26
+ - **[NEW]** Test helpers getTestServerURL and serverInstance.
27
+ - **[NEW]** Rate limiter middleware - add consumeResult function to allow user middleware as a regular rate limiter
28
+ - **[NEW]** Ip detector middleware - add getIpAdressFromIncomingMessage function to allow user middleware as a detector of id adresses without middleware
29
+ - **[NEW]** Introduce i18nService (ability to user i18n not only inside middleware)
17
30
 
18
- [UPDATE] update deps
19
- [UPDATE] new commands view in CLI
31
+ ### Breaking changes (please read carefully)
20
32
 
21
- ### 5.0.0-alpha.24
33
+ - **[BREAKING]** No more global variables for testing and default user will not be created by default
34
+ - **[BREAKING]** All models now should be extended from `BaseModel`. This is a potencial breaking change specially for `User` model.
35
+ - **[BREAKING]** Remove jest support for testing.
36
+ - **[BREAKING]** Move email module to separate package `@adaptivestone/framework-module-email`. Please use it if you want to send emails.
37
+ - **[BREAKING]** Remove `VIEWS` folders at all. Should not affect any user as this was not used internally.
38
+ - **[BREAKING]** Removed `noidemailer-sendmail-transport`. Not needed anymore and not recommended to use as well.
39
+ - **[BREAKING]** Remove `minimist` CLI parsing and replace it by `commandArguments` parser.
40
+ - **[BREAKING]** `vitest` v3 <https://vitest.dev/guide/migration.html>.
41
+ - **[BREAKING]** `i18next` v24 <https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0>.
42
+ - **[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>.
43
+ - **[BREAKING]** As part of express 5 migration `_` in rotes (middlewares) should have perameter. please replace `_` to `*splat`.
44
+ - **[BREAKING]** Default auth responce changed to be unified. `{token, user}` => `{data:{token, user}}`.
45
+ - **[BREAKING]** `RateLimiter` now need to have `IpDetector` middleware before.
46
+ - **[BREAKING]** Removing `staticFiles` middleware as it not used in projects anymore. Docs with nginx config will be provided.
47
+ - **[BREAKING]** Remove default `AUTH_SALT`. It should be provided on a app level now.
48
+ - **[BREAKING]** Minimum node version is 20.12 as for now (`process.loadEnvFile`).
49
+ - **[BREAKING]** ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience.
50
+ - **[BREAKING]** Mongoose v8. <https://mongoosejs.com/docs/migrating_to_8.html>.
51
+ - **[BREAKING]** Vitest v4 <https://vitest.dev/guide/migration.html#vitest-4>
22
52
 
23
- [UPDATE] update deps
24
- [BREAKING] i18next v24 https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0
25
53
 
26
- ### 5.0.0-alpha.23
54
+ ---
55
+ ## [5.0.0-beta.41]
27
56
 
28
- [UPDATE] update deps
57
+ - **[UPDATE]** Update deps
58
+ - **[NEW]** Bearer scheme support
59
+ - **[NEW]** redisConnection helper
29
60
 
30
- ### 5.0.0-alpha.22
31
61
 
32
- [UPDATE] update deps
33
- [FIX] fix optional routing parameters
34
62
 
35
- ### 5.0.0-alpha.21
63
+ ---
64
+ ## [5.0.0-beta.40]
36
65
 
37
- [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.
38
- [BREAKING] AS part of express 5 migration _ in rotes (middlewares) should have perameter. please replace _ to \*splat
39
- [UPDATE] update deps
40
- [UPDATE] Mailer uses await import() for startup speedup
66
+ - **[UPDATE]** Update `rate-limiter-flexible` to v9.
67
+ - **[UPDATE]** Remove 'winston-transport-sentry' and implementcustom logic based on 'sentry' itself (from v9.14 sentry have native winston support)
41
68
 
42
- ### 5.0.0-alpha.20
43
69
 
44
- [UPDATE] update deps
45
- [UPDATE] #realLogger do not throw error in a scecific cases (model toJSON({virtual:true}))
70
+ ## [5.0.0-beta.39]
46
71
 
47
- ### 5.0.0-alpha.19
72
+ - **[UPDATE]** rete limiter. Do not create index on mongo if we have "process.env.test === 'true'"
48
73
 
49
- [NEW] added modelSchemaOptions for models
74
+ ---
50
75
 
51
- ### 5.0.0-alpha.18
76
+ ## [5.0.0-beta.38]
52
77
 
53
- [BREAKING] default auth responce changed to be unified. {token, user} = > {data:{token, user}}
54
- [UPDATE] RateLimiter updae key generation
78
+ - **[UPDATE]** update dependencies
79
+ - **[UPDATE]** update rate limiter Mongo option to not create an index by default when NODE_ENV=test
80
+ - **[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 https://github.com/Automattic/mongoose/issues/15699
81
+ - **[BREAKING]** Vitest v4 <https://vitest.dev/guide/migration.html#vitest-4>
55
82
 
56
- ### 5.0.0-alpha.17
83
+ ---
57
84
 
58
- [NEW] generateRandomBytes command
59
- [UPDATE] update deps
85
+ ## [5.0.0-beta.36]
60
86
 
61
- ### 5.0.0-alpha.16
87
+ - **[UPDATE]** i18nService update loading to avoid race conditions
88
+ ---
62
89
 
63
- [UPDATE] no warning of direct usage body and query
64
- [UPDATE] update deps
90
+ ## [5.0.0-beta.36]
65
91
 
66
- ### 5.0.0-alpha.15
92
+ - **[UPDATE]** i18nService update method names
67
93
 
68
- [BUG] fix bug with pagination
69
- [UPDATE] update deps
94
+ ---
70
95
 
71
- ### 5.0.0-alpha.14
96
+ ## [5.0.0-beta.35]
72
97
 
73
- [NEW] add types for Abstract model (wip)
98
+ - **[NEW]** Introduce i18nService (ability to user i18n not only inside middleware)
74
99
 
75
- ### 5.0.0-alpha.13
100
+ ---
76
101
 
77
- [UPDATE] update deps
78
- [UPDATE] update i18n internal implementation
79
- [CHANGE] disable https server view
102
+ ## [5.0.0-beta.34]
80
103
 
81
- ### 5.0.0-alpha.12
104
+ - **[NEW]** I18nMiddlewareAppInfo type
82
105
 
83
- [UPDATE] update deps
106
+ ---
84
107
 
85
- ### 5.0.0-alpha.11
108
+ ## [5.0.0-beta.33]
86
109
 
87
- [UPDATE] update deps
110
+ - **[NEW]** consumeResult changed to be more flexible
88
111
 
89
- ### 5.0.0-alpha.10
112
+ ---
90
113
 
91
- [UPDATE] update deps
92
- [NEW] IpDetector middleware that support detecting proxy and X-Forwarded-For header
93
- [BREAKING] RateLimiter now need to have IpDetector middleware before
114
+ ## [5.0.0-beta.32]
94
115
 
95
- ### 5.0.0-alpha.9
116
+ - **[NEW]** Ip detector middleware - add getIpAdressFromIncomingMessage function to allow user middleware as a detector of id adresses without middleware
96
117
 
97
- [UPDATE] update deps
98
- [BREAKING] removing staticFiles middleware as it not used in projects anymore. Docs with nginx config will be provided
99
- [BREAKING] remove default AUTH_SALT. It should be provided on a app level now
100
- [BREAKING] Vitest 2.0.0 https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0
118
+ ---
101
119
 
102
- ### 5.0.0-alpha.8
120
+ ## [5.0.0-beta.31]
103
121
 
104
- [UPDATE] replace dotenv with loadEnvFile
105
- [UPDATE] replace nodemon with node --watch (dev only)
106
- [BREAKING] Minimum node version is 20.12 as for now (process.loadEnvFile)
122
+ - **[NEW]** Rate limiter middleware - add consumeResult function to allow user middleware as a regular rate limiter
107
123
 
108
- ### 5.0.0-alpha.7
109
124
 
110
- [UPDATE] deps update
125
+ ---
111
126
 
112
- ### 5.0.0-alpha.6
127
+ ## [5.0.0-beta.30]
113
128
 
114
- [UPDATE] Update internal documentation (jsdoc, d.ts)
129
+ - **[FIX]** Fix CLI mongo app name generation (64 symbols limit)
115
130
 
116
- ### 5.0.0-alpha.5
117
131
 
118
- [UPDATE] More verbose errors for rapsing body request.
119
- [UPDATE] deps update
132
+ ---
120
133
 
121
- ### 5.0.0-alpha.4
134
+ ## [5.0.0-beta.29]
122
135
 
123
- [UPDATE] Update rate-limiter-flexible to v5
124
- [CHANGE] Cache update redis.setEX to redis.set(..,..,{EX:xx}) as setEX deprecated
136
+ - **[FIX]** Fix CLI mongo app name generation (128 symbols limit)
125
137
 
126
- ### 5.0.0-alpha.3
138
+ ---
127
139
 
128
- [UPDATE] deps update
129
- [FIX] Migration commands apply
140
+ ## [5.0.0-beta.28]
130
141
 
131
- ### 5.0.0-alpha.2
142
+ - **[UPDATE]** Inside CLI allow to have a negative values
143
+ - **[UPDATE]** Update deps.
132
144
 
133
- [UPDATE] deps update
145
+ ---
134
146
 
135
- ### 5.0.0-alpha.1
147
+ ## [5.0.0-beta.27]
136
148
 
137
- [BREAKING] Vitest 1.0.0 https://vitest.dev/guide/migration.html#migrating-from-vitest-0-34-6
138
- [BREAKING] ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience
139
- [BREAKING] Mongoose v8. https://mongoosejs.com/docs/migrating_to_8.html
149
+ - **[UPDATE]** Remove eslint, prettiver and move to biome
150
+ - **[UPDATE]** Update types.
151
+ - **[UPDATE]** Update deps.
140
152
 
141
- ### 4.11.4
142
153
 
143
- [UPDATE] deps update
154
+ ---
144
155
 
145
- ### 4.11.3
156
+ ## [5.0.0-beta.26]
146
157
 
147
- [UPDATE] deps update
158
+ - **[UPDATE]** Update types.
159
+ - **[UPDATE]** Update tests (more ts).
148
160
 
149
- ### 4.11.2
161
+ ---
150
162
 
151
- [FIX] Cors middleware return proper headers on multidomains
163
+ ## [5.0.0-beta.25]
152
164
 
153
- ### 4.11.1
165
+ - **[UPDATE]** Update types.
154
166
 
155
- [FIX] Cors middleware return proper status
167
+ ---
156
168
 
157
- ### 4.11.0
169
+ ## [5.0.0-beta.24]
158
170
 
159
- [NEW] Cors middleware
160
- [BREAKING] This is a potencial breaking change as we switched from cors external package to internal middleware. From API nothing was changed. This is a potencial breaking changes, but it should keep working as it
171
+ - **[UPDATE]** Update types.
161
172
 
162
- ### 4.10.0
173
+ ---
163
174
 
164
- [UPDATE] deps update
165
- [NEW] Static file middleware
166
- [BREAKING] This is a potencial breaking change as we switched from express.static to internal middleware that provide less features but faster. From API nothing was changed
175
+ ## [5.0.0-beta.23]
167
176
 
168
- ### 4.9.2
177
+ - **[BREAKING]** No more global variables for testing and default user will not be created by default
178
+ - **[NEW]** Test helpers getTestServerURL, serverInstance, setDefaultUser, setDefaultAuthToken and createDefaultTestUser.
169
179
 
170
- [UPDATE] deps update
180
+ ---
171
181
 
172
- ### 4.9.1
182
+ ## [5.0.0-beta.22]
173
183
 
174
- [UPDATE] all responces from framework now happens in JSON. Previouls sometime aswers was in plan text
184
+ - **[UPDATE]** Update types.
175
185
 
176
- ### 4.9.0
186
+ ---
177
187
 
178
- [BREAKING] We are separated testsing to setyp and global setup. Global setup now care of mongo to make sure that only on mongodb memoery server is spinned up. If you are using vitest please add "globalSetup: node_modules/@adaptivestone/framework/tests/globalSetupVitest" to your vitest config
188
+ ## [5.0.0-beta.21]
179
189
 
180
- ### 4.8.3
190
+ - **[FIX]** Fix bug with missed model options.
181
191
 
182
- [UPDATE] Fix problme with fat start and closing connections after
192
+ ---
183
193
 
184
- ### 4.8.2
194
+ ## [5.0.0-beta.20]
185
195
 
186
- [UPDATE] CLI - disable mongoose index creation
196
+ - **[FIX]** Fix bug with `Lock` model index.
197
+ - **[NEW]** `BaseModel` add `Virtuals`.
187
198
 
188
- ### 4.8.1
199
+ ---
189
200
 
190
- [UPDATE] Model inited on server inited.
191
- [NEW] New options to skip model init isSkipModelInit
192
- [NEW] New method server method initAllModels()
201
+ ## [5.0.0-beta.19]
193
202
 
194
- ### 4.8.0
203
+ - **[NEW]** Introducing new model type. `BaseModel`. Features - simplifie works with typescript. And based on statics.
204
+ - **[BREAKING]** All models now should be extended from `BaseModel`. This is a potencial breaking change specially for `User` model.
195
205
 
196
- [BREAKING] Minimum node js version id 18.17.0 now.
197
- [BREAKING] Removed getFileWithExtendingInhirence. This was internal method and not suppose to use externally
198
- [UPDATE] update Base getFilesPathWithInheritance to use fs.read dir resursive option
199
- [UPDATE] update cache (refactor+tets)
200
- [UPDATE] update config and model inits
206
+ ---
201
207
 
202
- ### 4.7.0
208
+ ## [5.0.0-beta.18]
203
209
 
204
- [UPDATE] update logger init (refactor)
205
- [UPDATE] updated deps
210
+ - **[UPDATE]** Move away connection from `mongooseModels` to server itself (preparation for different model types).
211
+ - **[BREAKING]** Potencial. We are removed callback from `mongooseModels` contrctuctor. It was not used in code.
212
+ - **[NEW]** Add `appInstance` helper to access app instance from anywhere without passing it.
206
213
 
207
- ### 4.6.0
214
+ ---
208
215
 
209
- [NEW] migrated from JEST to vitest
216
+ ## [5.0.0-beta.17]
210
217
 
211
- ### 4.5.0
218
+ - **[NEW]** Add `GenerateTypes` command.
212
219
 
213
- [NEW] Now getSuper() available as a method on mongoose models
214
- [UPDATE] Update rate-limiter-flexible to v3
215
- [UPDATE] Update test runner to suport ESM. In case problem with test please copy babel.config.js from framework to your project directory
220
+ ---
216
221
 
217
- ### 4.4.0
222
+ ## [5.0.0-beta.16]
218
223
 
219
- [NEW] New method to grab url of server it testing enviroument global.server.testingGetUrl("/some/endpoint")
224
+ - **[UPDATE]** Update deps.
225
+ - **[UPDATE]** New app getter `internalFilesCache`.
226
+ - **[UPDATE]** Command new static props to load `isShouldGetModelPaths`.
220
227
 
221
- ### 4.3.1
228
+ ---
222
229
 
223
- [UPDATE] Yup file validator update. As formidable now return all fields as an array
230
+ ## [5.0.0-beta.15]
224
231
 
225
- ### 4.3.0
232
+ - **[FIX]** Fix missing folder `migrations` in `dist` folder (hope that will be finally).
226
233
 
227
- [BREAKING] updated formidable with 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
234
+ ---
228
235
 
229
- ### 4.2.0
236
+ ## [5.0.0-beta.14]
230
237
 
231
- [UPDATE] updated deps
232
- [NEW] CreateUser cli command. Ability to update user by email or id.
238
+ - **[FIX]** Fix missing folder `migrations` in `dist` folder.
233
239
 
234
- ### 4.1.0
240
+ ---
235
241
 
236
- [UPDATE] updated deps
237
- [NEW] email - Ability to render templae to string for future usage
242
+ ## [5.0.0-beta.13]
238
243
 
239
- ### 4.0.0
244
+ - **[UPDATE]** Only process `.ts` or `.js` files (not `.map` files).
240
245
 
241
- [BREAKING] change bcrypt encryption with scrypt
242
- [BREAKING] change internal express parser to formidable parser. Affect you if external formidable is used
243
- [BREAKING] should not affect any user. Changed email-templates module to internal implementation. Idea to keep dependensy list smaller
244
- [BREAKING] change i18n middleware to internal one. Nothing should be affected
245
- [BREAKING] now validation of request splitted between request and query
246
- [BREAKING] supportedLngs option added to i18n config
247
- [BREAKING] email inliner now looking for src/services/messaging/email/resources folder instead of 'build' folder.
246
+ ---
248
247
 
249
- [BREAKING] Mongoose v7. https://mongoosejs.com/docs/migrating_to_7.html
250
- [BREAKING] Yup validation was updated to v1 https://github.com/jquense/yup/issues/1906
248
+ ## [5.0.0-beta.12]
251
249
 
252
- [DEPRECATED] getExpress path is deprecated. Renamed to getHttpPath
250
+ - **[BREAKING]** Remove jest support for testing.
251
+ - **[NEW]** Initial move to typescript. Potencially breaking.
252
+ - **[NEW]** Introduce `src` and `dist` folders.
253
253
 
254
- [NEW] pagination middleware
255
- [NEW] requestLogger middleware. Migrated from core server to be an middleware
256
- [NEW] CreateUser command
257
- [NEW] custom yup validator for validate File requests
258
- [UPDATE] updated deps
259
- [UPDATE] openApi generator support files
260
- [UPDATE] updated 18n middleware. Introduced internal cachce. Speed up of request processing up to 100%
261
- [UPDATE] cache drivers to JSON support BigInt numbers
254
+ ---
262
255
 
263
- ### 3.4.3
256
+ ## [5.0.0-beta.11]
264
257
 
265
- [UPDATE] updated deps
266
- [FIX] fix tests for redis
267
- [FIX] support in tests TEST_FOLDER_EMAILS
258
+ - **[NEW]** Commands typing.
259
+ - **[NEW]** Commands support TS files.
260
+ - **[UPDATE]** Update deps.
268
261
 
269
- ### 3.4.2
262
+ ---
270
263
 
271
- [UPDATE] updated deps
272
- [FIX] fix documentation generation
264
+ ## [5.0.0-beta.9]
273
265
 
274
- ### 3.4.1
266
+ - **[BREAKING]** Move email module to separate package `@adaptivestone/framework-module-email`. Please use it if you want to send emails.
267
+ - **[NEW]** App now contains `frameworkFolder` folder the framework located. Mostly for modules usage.
268
+ - **[BREAKING]** Remove `VIEWS` folders at all. Should not afffect any user as this was not used internally.
269
+ - **[UPDATE]** Update typing.
270
+ - **[UPDATE]** Change `redis` -> `@redis/client` as we are using only client from pakage.
271
+ - **[BREAKING]** Removed `noidemailer-sendmail-transport`. Not needed anymore and not recommended to use as well.
275
272
 
276
- [FIX] fix documentation generation
273
+ ---
277
274
 
278
- ### 3.4.0
275
+ ## [5.0.0-beta.8]
279
276
 
280
- [NEW] now we pass 'req' to validation and casting as a second parameter. This done mostly for custom validators
277
+ - **[UPDATE]** Update deps.
278
+ - **[NEW]** `Lock` model for working locks via mongoDB.
281
279
 
282
- ### 3.3.0
280
+ ---
283
281
 
284
- [NEW] new command 'SyncIndexes' to sync indexes for mongodb https://framework.adaptivestone.com/docs/cli#syncindexes
285
- [UPDATE] updated deps
286
- [FIX] fix documentation generation
282
+ ## [5.0.0-beta.7]
287
283
 
288
- ### 3.2.2
284
+ - **[UPDATE]** Update deps.
285
+ - **[UPDATE]** Change `vitest` shutdown behavior as mongo driver v6.13 change befaviur that affect us (`MongoClient.close` now closes any outstanding cursors).
289
286
 
290
- [UPDATE] add options for i18n to config.
291
- [CHANGE] by default i18n not writing missed keys. Can be enabled via config
287
+ ---
292
288
 
293
- ### 3.2.1
289
+ ## [5.0.0-beta.5]
294
290
 
295
- [UPDATE] updated deps
296
- [FIX] fix documentation generation
291
+ - **[BREAKING]** Remove `minimist` CLI parsing and replace it by `commandArguments` parser.
292
+ - **[UPDATE]** Migrated from `eslint-plugin-import` to `eslint-plugin-import-x`.
293
+ - **[UPDATE]** Migrate to eslint 9 and away from aibnb styles (they are abonded).
297
294
 
298
- ### 3.2.0
295
+ ---
299
296
 
300
- [UPDATE] updated deps
301
- [NEW] cache.removeKey(key) - function to remove key from cache
297
+ ## [5.0.0-beta.4]
302
298
 
303
- ### 3.1.1
299
+ - **[NEW]** On shutdown event now after timeout we are forcing to shutdown.
304
300
 
305
- [UPDATE] updated deps
306
- [FIX] fix cache error handling.
301
+ ---
307
302
 
308
- ### 3.1.0
303
+ ## [5.0.0-beta.2]
309
304
 
310
- [NEW] new comand to generate open API documentation (wip)
311
- [NEW] coverage report
312
- [UPDATE] updated deps
305
+ - **[UPDATE]** Update deps.
306
+ - **[NEW]** Add ability to skip mongo model init in CLI env.
307
+ - **[NEW]** Now each mongo connection on CLI have own name and inslude command name there too (`getMongoConnectionName` in command).
313
308
 
314
- ### 3.0.23
309
+ ---
315
310
 
316
- [UPDATE] updated deps
317
- [FIX] fix custom errors
311
+ ## [5.0.0-beta.1]
318
312
 
319
- ### 3.0.22
313
+ - **[UPDATE]** Update deps.
314
+ - **[BREAKING]** `vitest` v3 <https://vitest.dev/guide/migration.html>.
320
315
 
321
- [UPDATE] updated deps
322
- [UPDATE] cast function now can be ASYNC too
316
+ ---
323
317
 
324
- ### 3.0.21
318
+ ## [5.0.0-alpha.26]
325
319
 
326
- [UPDATE] updated redis to v4
327
- [NEW] updates tests to have own namespace on redis
320
+ - **[UPDATE]** Update deps.
321
+ - **[UPDATE]** New commands view in CLI.
328
322
 
329
- ### 3.0.20
323
+ ---
330
324
 
331
- [UPDATE] update deps
325
+ ## [5.0.0-alpha.24]
332
326
 
333
- ### 3.0.19
327
+ - **[UPDATE]** Update deps.
328
+ - **[BREAKING]** `i18next` v24 <https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0>.
334
329
 
335
- [UPDATE] update deps
330
+ ---
336
331
 
337
- ### 3.0.18
332
+ ## [5.0.0-alpha.23]
338
333
 
339
- [UPDATE] update deps
340
- [UPDATE] change default branch to 'main'
334
+ - **[UPDATE]** Update deps.
341
335
 
342
- ### 3.0.17
336
+ ---
343
337
 
344
- [UPDATE] update deps
338
+ ## [5.0.0-alpha.22]
345
339
 
346
- ### 3.0.16
340
+ - **[UPDATE]** Update deps.
341
+ - **[FIX]** Fix optional routing parameters.
347
342
 
348
- [UPDATE] update deps
349
- [FIX] fix bug with route level middleware
343
+ ---
350
344
 
351
- ### 3.0.15
345
+ ## [5.0.0-alpha.21]
352
346
 
353
- [UPDATE] update deps
354
- [UPDATE] minimum node version 16
347
+ - **[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>.
348
+ - **[BREAKING]** As part of express 5 migration `_` in rotes (middlewares) should have perameter. please replace `_` to `*splat`.
349
+ - **[UPDATE]** Update deps.
350
+ - **[UPDATE]** Mailer uses `await import()` for startup speedup.
355
351
 
356
- ### 3.0.14
352
+ ---
357
353
 
358
- [NEW] now possible to show all errors during validation (default one) by parameter controllerValidationAbortEarly
359
- [UPDATE] update deps
354
+ ## [5.0.0-alpha.20]
360
355
 
361
- ### 3.0.13
356
+ - **[UPDATE]** Update deps.
357
+ - **[UPDATE]** `#realLogger` do not throw error in a scecific cases (`model.toJSON({virtual:true})`).
362
358
 
363
- [UPDATE] bug fix with "mergeParams"
359
+ ---
364
360
 
365
- ### 3.0.12
361
+ ## [5.0.0-alpha.19]
366
362
 
367
- [NEW] ability to pass "mergeParams" options to express router
368
- [UPDATE] update deps
363
+ - **[NEW]** Added `modelSchemaOptions` for models.
369
364
 
370
- ### 3.0.11
365
+ ---
371
366
 
372
- [UPDATE] more verbose email error
367
+ ## [5.0.0-alpha.18]
373
368
 
374
- ### 3.0.10
369
+ - **[BREAKING]** Default auth responce changed to be unified. `{token, user}` => `{data:{token, user}}`.
370
+ - **[UPDATE]** `RateLimiter` updae key generation.
375
371
 
376
- [UPDATE] update deps
377
- [CHANGE] tests afterAll not using timeout anymore (conflict with jest 28-alpha)
378
- [NEW] config for mail now supports "EMAIL_TRANSPORT" env variable. SMTP by default (as was)
372
+ ---
379
373
 
380
- ### 3.0.9
374
+ ## [5.0.0-alpha.17]
381
375
 
382
- [UPDATE] update deps
376
+ - **[NEW]** `generateRandomBytes` command.
377
+ - **[UPDATE]** Update deps.
383
378
 
384
- ### 3.0.8
379
+ ---
385
380
 
386
- [UPDATE] update deps
381
+ ## [5.0.0-alpha.16]
387
382
 
388
- ### 3.0.7
383
+ - **[UPDATE]** No warning of direct usage `body` and `query`.
384
+ - **[UPDATE]** Update deps.
389
385
 
390
- [UPDATE] update deps
391
- [CHANGE] change default getConfig method
386
+ ---
392
387
 
393
- ### 3.0.6
388
+ ## [5.0.0-alpha.15]
394
389
 
395
- [UPDATE] update deps
390
+ - **[BUG]** Fix bug with pagination.
391
+ - **[UPDATE]** Update deps.
396
392
 
397
- ### 3.0.5
393
+ ---
398
394
 
399
- [UPDATE] update deps
395
+ ## [5.0.0-alpha.14]
400
396
 
401
- ### 3.0.4
397
+ - **[NEW]** Add types for `Abstract` model (wip).
402
398
 
403
- [UPDATE] fix bug with app shutdown
399
+ ---
404
400
 
405
- ### 3.0.3
401
+ ## [5.0.0-alpha.13]
406
402
 
407
- [UPDATE] update deps
403
+ - **[UPDATE]** Update deps.
404
+ - **[UPDATE]** Update `i18n` internal implementation.
405
+ - **[CHANGE]** Disable https server view.
408
406
 
409
- ### 3.0.2
407
+ ---
410
408
 
411
- [UPDATE] update deps
409
+ ## [5.0.0-alpha.12]
412
410
 
413
- ### 3.0.1
411
+ - **[UPDATE]** Update deps.
414
412
 
415
- [UPDATE] update deps
416
- [UPDATE] getUserByTokens more logs
413
+ ---
417
414
 
418
- ### 3.0.0
415
+ ## [5.0.0-alpha.11]
419
416
 
420
- [BREAKING] Mongoose v6. Than a lot of changes:[mongoDB drive changes](https://github.com/mongodb/node-mongodb-native/blob/4.0/docs/CHANGES_4.0.0.md), [Mongoose changes](https://mongoosejs.com/docs/migrating_to_6.html).
421
- Notable changes from migration
422
- Removed `execPopulate()`[link](https://mongoosejs.com/docs/migrating_to_6.html#removed-execpopulate)
417
+ - **[UPDATE]** Update deps.
423
418
 
424
- ```js
425
- // Document#populate() now returns a promise and is now no longer chainable.
419
+ ---
426
420
 
427
- //Replace
428
- await doc.populate('path1').populate('path2').execPopulate();
429
- // with
430
- await doc.populate(['path1', 'path2']);
431
- //Replace
432
- await doc
433
- .populate('path1', 'select1')
434
- .populate('path2', 'select2')
435
- .execPopulate();
436
- // with
437
- await doc.populate([
438
- { path: 'path1', select: 'select1' },
439
- { path: 'path2', select: 'select2' },
440
- ]);
441
- ```
421
+ ## [5.0.0-alpha.10]
442
422
 
443
- [REMOVED] removed deprecated router handler string not allowed anymore. Use functions by itself
444
- [REMOVED] removed deprecated someSecretSalt() on user model (use this.saltSecret instead)
445
- [REMOVED] removed deprecated validate() on abstract controller and as result validator dependency. Use request validators instead
446
- [REMOVED] removed deprecated isUseControllerNameForRouting() on abstract controller. Use getExpressPath() instead
447
- [REMOVED] removed deprecated Base.loadFilesWithInheritance please use getFilesPathWithInheritance that produce almost the same output
448
- [BREAKING] Removed "success" field on Auth contreoller. Please use http status instead
449
- [BREAKING] Auth controller - "error" error responce renamed to "message"
423
+ - **[UPDATE]** Update deps.
424
+ - **[NEW]** `IpDetector` middleware that support detecting proxy and `X-Forwarded-For` header.
425
+ - **[BREAKING]** `RateLimiter` now need to have `IpDetector` middleware before.
450
426
 
451
- ```js
452
- // Before
453
- {
454
- error: 'Some error';
455
- }
456
- // After
457
- {
458
- message: 'Some error';
459
- }
460
- ```
427
+ ---
461
428
 
462
- [UPDATE] update deps
463
- [UPDATE] winston console transport now using timestapms
464
- [UPDATE] PrepareAppInfo middleware now a global one. Do not need to include it on every controller
465
- [NEW] Request anso works with req.query, but req.body have bigger priority
429
+ ## [5.0.0-alpha.9]
466
430
 
467
- ### 2.18.0
431
+ - **[UPDATE]** Update deps.
432
+ - **[BREAKING]** Removing `staticFiles` middleware as it not used in projects anymore. Docs with nginx config will be provided.
433
+ - **[BREAKING]** Remove default `AUTH_SALT`. It should be provided on a app level now.
434
+ - **[BREAKING]** Vitest 2.0.0 <https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0>.
468
435
 
469
- [UPDATE] update deps
470
- [UPDATE] replace body-parser with express.json
471
- [NEW] role middleware
436
+ ---
472
437
 
473
- ### 2.17.0
438
+ ## [5.0.0-alpha.8]
474
439
 
475
- [UPDATE] update deps
476
- [NEW] new env variable LOGGER_SENTRY_LEVEL (default=info)
477
- [NEW] new env variable LOGGER_CONSOLE_ENABLE (default=true)
478
- [BREAKING] on translation we changed i18next. Please convert files if you have plurals inside it https://i18next.github.io/i18next-v4-format-converter-web/
440
+ - **[UPDATE]** Replace `dotenv` with `loadEnvFile`.
441
+ - **[UPDATE]** Replace `nodemon` with `node --watch` (dev only).
442
+ - **[BREAKING]** Minimum node version is 20.12 as for now (`process.loadEnvFile`).
479
443
 
480
- #### 2.16.0
444
+ ---
481
445
 
482
- [UPDATE] update deps
483
- [NEW] begin adding type script definitions
446
+ ## [5.0.0-alpha.7]
484
447
 
485
- #### 2.15.4
448
+ - **[UPDATE]** Deps update.
486
449
 
487
- [UPDATE] update deps
488
- [UPDATE] update tests timeout
450
+ ---
489
451
 
490
- #### 2.15.0
452
+ ## [5.0.0-alpha.6]
491
453
 
492
- [UPDATE] update deps
493
- [NEW] Ability to configure Auth flow with 'isAuthWithVefificationFlow' option.
494
- [BREAKING] Register not return status 201 instead of 200
454
+ - **[UPDATE]** Update internal documentation (`jsdoc`, `d.ts`).
495
455
 
496
- #### 2.14.0
456
+ ---
497
457
 
498
- [NEW] Add Sequence. It provide ability to easily generate sequences for given types. It save to use on distributed environments
458
+ ## [5.0.0-alpha.5]
499
459
 
500
- ```javascript
501
- const SequenceModel = this.app.getModel('Sequence');
502
- // will be 1
503
- const someTypeSequence = await SequenceModel.getSequence('someType');
504
- // will be 2
505
- const someTypeSequence2 = await SequenceModel.getSequence('someType');
506
- // will be 1 as type is another
507
- const someAnotherTypeSequence =
508
- await SequenceModel.getSequence('someAnotherType');
509
- ```
460
+ - **[UPDATE]** More verbose errors for rapsing body request.
461
+ - **[UPDATE]** Deps update.
510
462
 
511
- #### 2.13.1
463
+ ---
512
464
 
513
- [FIX] fix documentation about not using req.appInfo.request, but using req.body for RateLimiter
465
+ ## [5.0.0-alpha.4]
514
466
 
515
- #### 2.13.0
516
-
517
- [NEW] Rate limited middleware - ability to include request components (req.body) for key generation. Please not that you have no access to req.appInfo.request on this stage
518
-
519
- ```javascript
467
+ - **[UPDATE]** Update `rate-limiter-flexible` to v5.
468
+ - **[CHANGE]** Cache update `redis.setEX` to `redis.set(..,..,{EX:xx})` as `setEX` deprecated.
469
+
470
+ ---
471
+
472
+ ## [5.0.0-alpha.3]
473
+
474
+ - **[UPDATE]** Deps update.
475
+ - **[FIX]** `Migration` commands apply.
476
+
477
+ ---
478
+
479
+ ## [5.0.0-alpha.2]
480
+
481
+ - **[UPDATE]** Deps update.
482
+
483
+ ---
484
+
485
+ ## [5.0.0-alpha.1]
486
+
487
+ - **[BREAKING]** Vitest 1.0.0 <https://vitest.dev/guide/migration.html#migrating-from-vitest-0-34-6>.
488
+ - **[BREAKING]** ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience.
489
+ - **[BREAKING]** Mongoose v8. <https://mongoosejs.com/docs/migrating_to_8.html>.
490
+
491
+ ---
492
+
493
+ ## [4.11.4]
494
+
495
+ - **[UPDATE]** Deps update.
496
+
497
+ ---
498
+
499
+ ## [4.11.3]
500
+
501
+ - **[UPDATE]** Deps update.
502
+
503
+ ---
504
+
505
+ ## [4.11.2]
506
+
507
+ - **[FIX]** `Cors` middleware return proper headers on multidomains.
508
+
509
+ ---
510
+
511
+ ## [4.11.1]
512
+
513
+ - **[FIX]** `Cors` middleware return proper status.
514
+
515
+ ---
516
+
517
+ ## [4.11.0]
518
+
519
+ - **[NEW]** `Cors` middleware.
520
+ - **[BREAKING]** This is a potencial breaking change as we switched from `cors` external package to internal middleware. From API nothing was changed. This is a potencial breaking changes, but it should keep working as it.
521
+
522
+ ---
523
+
524
+ ## [4.10.0]
525
+
526
+ - **[UPDATE]** Deps update.
527
+ - **[NEW]** Static file middleware.
528
+ - **[BREAKING]** This is a potencial breaking change as we switched from `express.static` to internal middleware that provide less features but faster. From API nothing was changed.
529
+
530
+ ---
531
+
532
+ ## [4.9.2]
533
+
534
+ - **[UPDATE]** Deps update.
535
+
536
+ ---
537
+
538
+ ## [4.9.1]
539
+
540
+ - **[UPDATE]** All responces from framework now happens in JSON. Previouls sometime aswers was in plan text.
541
+
542
+ ---
543
+
544
+ ## [4.9.0]
545
+
546
+ - **[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 `vitest` please add `"globalSetup": "node_modules/@adaptivestone/framework/tests/globalSetupVitest"` to your vitest config.
547
+
548
+ ---
549
+
550
+ ## [4.8.3]
551
+
552
+ - **[UPDATE]** Fix problme with fat start and closing connections after.
553
+
554
+ ---
555
+
556
+ ## [4.8.2]
557
+
558
+ - **[UPDATE]** CLI - disable mongoose index creation.
559
+
560
+ ---
561
+
562
+ ## [4.8.1]
563
+
564
+ - **[UPDATE]** Model inited on server inited.
565
+ - **[NEW]** New options to skip model init `isSkipModelInit`.
566
+ - **[NEW]** New method server method `initAllModels()`.
567
+
568
+ ---
569
+
570
+ ## [4.8.0]
571
+
572
+ - **[BREAKING]** Minimum node js version id 18.17.0 now.
573
+ - **[BREAKING]** Removed `getFileWithExtendingInhirence`. This was internal method and not suppose to use externally.
574
+ - **[UPDATE]** Update `Base.getFilesPathWithInheritance` to use `fs.read` dir resursive option.
575
+ - **[UPDATE]** Update cache (refactor+tets).
576
+ - **[UPDATE]** Update config and model inits.
577
+
578
+ ---
579
+
580
+ ## [4.7.0]
581
+
582
+ - **[UPDATE]** Update logger init (refactor).
583
+ - **[UPDATE]** Updated deps.
584
+
585
+ ---
586
+
587
+ ## [4.6.0]
588
+
589
+ - **[NEW]** Migrated from JEST to `vitest`.
590
+
591
+ ---
592
+
593
+ ## [4.5.0]
594
+
595
+ - **[NEW]** Now `getSuper()` available as a method on mongoose models.
596
+ - **[UPDATE]** Update `rate-limiter-flexible` to v3.
597
+ - **[UPDATE]** Update test runner to suport ESM. In case problem with test please copy `babel.config.js` from framework to your project directory.
598
+
599
+ ---
600
+
601
+ ## [4.4.0]
602
+
603
+ - **[NEW]** New method to grab url of server it testing enviroument `global.server.testingGetUrl("/some/endpoint")`.
604
+
605
+ ---
606
+
607
+ ## [4.3.1]
608
+
609
+ - **[UPDATE]** `Yup` file validator update. As formidable now return all fields as an array.
610
+
611
+ ---
612
+
613
+ ## [4.3.0]
614
+
615
+ - **[BREAKING]** Updated `formidable` with 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.
616
+
617
+ ---
618
+
619
+ ## [4.2.0]
620
+
621
+ - **[UPDATE]** Updated deps.
622
+ - **[NEW]** `CreateUser` cli command. Ability to update user by email or id.
623
+
624
+ ---
625
+
626
+ ## [4.1.0]
627
+
628
+ - **[UPDATE]** Updated deps.
629
+ - **[NEW]** Email - Ability to render templae to string for future usage.
630
+
631
+ ---
632
+
633
+ ## [4.0.0]
634
+
635
+ - **[BREAKING]** Change `bcrypt` encryption with `scrypt`.
636
+ - **[BREAKING]** Change internal express parser to `formidable` parser. Affect you if external `formidable` is used.
637
+ - **[BREAKING]** Should not affect any user. Changed `email-templates` module to internal implementation. Idea to keep dependensy list smaller.
638
+ - **[BREAKING]** Change `i18n` middleware to internal one. Nothing should be affected.
639
+ - **[BREAKING]** Now validation of request splitted between `request` and `query`.
640
+ - **[BREAKING]** `supportedLngs` option added to `i18n` config.
641
+ - **[BREAKING]** Email inliner now looking for `src/services/messaging/email/resources` folder instead of `build` folder.
642
+ - **[BREAKING]** Mongoose v7. <https://mongoosejs.com/docs/migrating_to_7.html>.
643
+ - **[BREAKING]** `Yup` validation was updated to v1 <https://github.com/jquense/yup/issues/1906>.
644
+ - **[DEPRECATED]** `getExpress` path is deprecated. Renamed to `getHttpPath`.
645
+ - **[NEW]** Pagination middleware.
646
+ - **[NEW]** `requestLogger` middleware. Migrated from core server to be an middleware.
647
+ - **[NEW]** `CreateUser` command.
648
+ - **[NEW]** Custom `yup` validator for validate File requests.
649
+ - **[UPDATE]** Updated deps.
650
+ - **[UPDATE]** `openApi` generator support files.
651
+ - **[UPDATE]** Updated `18n` middleware. Introduced internal cachce. Speed up of request processing up to 100%.
652
+ - **[UPDATE]** Cache drivers to JSON support `BigInt` numbers.
653
+
654
+ ---
655
+
656
+ ## [3.4.3]
657
+
658
+ - **[UPDATE]** Updated deps.
659
+ - **[FIX]** Fix tests for redis.
660
+ - **[FIX]** Support in tests `TEST_FOLDER_EMAILS`.
661
+
662
+ ---
663
+
664
+ ## [3.4.2]
665
+
666
+ - **[UPDATE]** Updated deps.
667
+ - **[FIX]** Fix documentation generation.
668
+
669
+ ---
670
+
671
+ ## [3.4.1]
672
+
673
+ - **[FIX]** Fix documentation generation.
674
+
675
+ ---
676
+
677
+ ## [3.4.0]
678
+
679
+ - **[NEW]** Now we pass `req` to validation and casting as a second parameter. This done mostly for custom validators.
680
+
681
+ ---
682
+
683
+ ## [3.3.0]
684
+
685
+ - **[NEW]** New command `SyncIndexes` to sync indexes for mongodb <https://framework.adaptivestone.com/docs/cli#syncindexes>.
686
+ - **[UPDATE]** Updated deps.
687
+ - **[FIX]** Fix documentation generation.
688
+
689
+ ---
690
+
691
+ ## [3.2.2]
692
+
693
+ - **[UPDATE]** Add options for `i18n` to config.
694
+ - **[CHANGE]** By default `i18n` not writing missed keys. Can be enabled via config.
695
+
696
+ ---
697
+
698
+ ## [3.2.1]
699
+
700
+ - **[UPDATE]** Updated deps.
701
+ - **[FIX]** Fix documentation generation.
702
+
703
+ ---
704
+
705
+ ## [3.2.0]
706
+
707
+ - **[UPDATE]** Updated deps.
708
+ - **[NEW]** `cache.removeKey(key)` - function to remove key from cache.
709
+
710
+ ---
711
+
712
+ ## [3.1.1]
713
+
714
+ - **[UPDATE]** Updated deps.
715
+ - **[FIX]** Fix cache error handling.
716
+
717
+ ---
718
+
719
+ ## [3.1.0]
720
+
721
+ - **[NEW]** New comand to generate open API documentation (wip).
722
+ - **[NEW]** Coverage report.
723
+ - **[UPDATE]** Updated deps.
724
+
725
+ ---
726
+
727
+ ## [3.0.23]
728
+
729
+ - **[UPDATE]** Updated deps.
730
+ - **[FIX]** Fix custom errors.
731
+
732
+ ---
733
+
734
+ ## [3.0.22]
735
+
736
+ - **[UPDATE]** Updated deps.
737
+ - **[UPDATE]** Cast function now can be ASYNC too.
738
+
739
+ ---
740
+
741
+ ## [3.0.21]
742
+
743
+ - **[UPDATE]** Updated redis to v4.
744
+ - **[NEW]** Updates tests to have own namespace on redis.
745
+
746
+ ---
747
+
748
+ ## [3.0.20]
749
+
750
+ - **[UPDATE]** Update deps.
751
+
752
+ ---
753
+
754
+ ## [3.0.19]
755
+
756
+ - **[UPDATE]** Update deps.
757
+
758
+ ---
759
+
760
+ ## [3.0.18]
761
+
762
+ - **[UPDATE]** Update deps.
763
+ - **[UPDATE]** Change default branch to `main`.
764
+
765
+ ---
766
+
767
+ ## [3.0.17]
768
+
769
+ - **[UPDATE]** Update deps.
770
+
771
+ ---
772
+
773
+ ## [3.0.16]
774
+
775
+ - **[UPDATE]** Update deps.
776
+ - **[FIX]** Fix bug with route level middleware.
777
+
778
+ ---
779
+
780
+ ## [3.0.15]
781
+
782
+ - **[UPDATE]** Update deps.
783
+ - **[UPDATE]** Minimum node version 16.
784
+
785
+ ---
786
+
787
+ ## [3.0.14]
788
+
789
+ - **[NEW]** Now possible to show all errors during validation (default one) by parameter `controllerValidationAbortEarly`.
790
+ - **[UPDATE]** Update deps.
791
+
792
+ ---
793
+
794
+ ## [3.0.13]
795
+
796
+ - **[UPDATE]** Bug fix with "mergeParams".
797
+
798
+ ---
799
+
800
+ ## [3.0.12]
801
+
802
+ - **[NEW]** Ability to pass "mergeParams" options to express router.
803
+ - **[UPDATE]** Update deps.
804
+
805
+ ---
806
+
807
+ ## [3.0.11]
808
+
809
+ - **[UPDATE]** More verbose email error.
810
+
811
+ ---
812
+
813
+ ## [3.0.10]
814
+
815
+ - **[UPDATE]** Update deps.
816
+ - **[CHANGE]** Tests `afterAll` not using timeout anymore (conflict with jest 28-alpha).
817
+ - **[NEW]** Config for mail now supports "EMAIL_TRANSPORT" env variable. SMTP by default (as was).
818
+
819
+ ---
820
+
821
+ ## [3.0.9]
822
+
823
+ - **[UPDATE]** Update deps.
824
+
825
+ ---
826
+
827
+ ## [3.0.8]
828
+
829
+ - **[UPDATE]** Update deps.
830
+
831
+ ---
832
+
833
+ ## [3.0.7]
834
+
835
+ - **[UPDATE]** Update deps.
836
+ - **[CHANGE]** Change default `getConfig` method.
837
+
838
+ ---
839
+
840
+ ## [3.0.6]
841
+
842
+ - **[UPDATE]** Update deps.
843
+
844
+ ---
845
+
846
+ ## [3.0.5]
847
+
848
+ - **[UPDATE]** Update deps.
849
+
850
+ ---
851
+
852
+ ## [3.0.4]
853
+
854
+ - **[UPDATE]** Fix bug with app shutdown.
855
+
856
+ ---
857
+
858
+ ## [3.0.3]
859
+
860
+ - **[UPDATE]** Update deps.
861
+
862
+ ---
863
+
864
+ ## [3.0.2]
865
+
866
+ - **[UPDATE]** Update deps.
867
+
868
+ ---
869
+
870
+ ## [3.0.1]
871
+
872
+ - **[UPDATE]** Update deps.
873
+ - **[UPDATE]** `getUserByTokens` more logs.
874
+
875
+ ---
876
+
877
+ ## [3.0.0]
878
+
879
+ - **[BREAKING]** Mongoose v6. Than a lot of changes:[mongoDB drive changes](https://github.com/mongodb/node-mongodb-native/blob/4.0/docs/CHANGES_4.0.0.md), [Mongoose changes](https://mongoosejs.com/docs/migrating_to_6.html).
880
+ Notable changes from migration
881
+ Removed `execPopulate()`[link](https://mongoosejs.com/docs/migrating_to_6.html#removed-execpopulate)
882
+ ```js
883
+ // Document#populate() now returns a promise and is now no longer chainable.
884
+ //Replace
885
+ await doc.populate('path1').populate('path2').execPopulate();
886
+ // with
887
+ await doc.populate(['path1', 'path2']);
888
+ //Replace
889
+ await doc
890
+ .populate('path1', 'select1')
891
+ .populate('path2', 'select2')
892
+ .execPopulate();
893
+ // with
894
+ await doc.populate([
895
+ { path: 'path1', select: 'select1' },
896
+ { path: 'path2', select: 'select2' },
897
+ ]);
898
+ ```
899
+ - **[REMOVED]** Removed deprecated router handler string not allowed anymore. Use functions by itself.
900
+ - **[REMOVED]** Removed deprecated `someSecretSalt()` on user model (use `this.saltSecret` instead).
901
+ - **[REMOVED]** Removed deprecated `validate()` on abstract controller and as result validator dependency. Use request validators instead.
902
+ - **[REMOVED]** Removed deprecated `isUseControllerNameForRouting()` on abstract controller. Use `getExpressPath()` instead.
903
+ - **[REMOVED]** Removed deprecated `Base.loadFilesWithInheritance` please use `getFilesPathWithInheritance` that produce almost the same output.
904
+ - **[BREAKING]** Removed "success" field on Auth contreoller. Please use http status instead.
905
+ - **[BREAKING]** Auth controller - "error" error responce renamed to "message".
906
+ ```js
907
+ // Before
908
+ {
909
+ error: 'Some error';
910
+ }
911
+ // After
912
+ {
913
+ message: 'Some error';
914
+ }
915
+ ```
916
+ - **[UPDATE]** Update deps.
917
+ - **[UPDATE]** Winston console transport now using timestapms.
918
+ - **[UPDATE]** `PrepareAppInfo` middleware now a global one. Do not need to include it on every controller.
919
+ - **[NEW]** Request also works with `req.query`, but `req.body` have bigger priority.
920
+
921
+ ---
922
+
923
+ ## [2.18.0]
924
+
925
+ - **[UPDATE]** Update deps.
926
+ - **[UPDATE]** Replace `body-parser` with `express.json`.
927
+ - **[NEW]** Role middleware.
928
+
929
+ ---
930
+
931
+ ## [2.17.0]
932
+
933
+ - **[UPDATE]** Update deps.
934
+ - **[NEW]** New env variable `LOGGER_SENTRY_LEVEL` (default=`info`).
935
+ - **[NEW]** New env variable `LOGGER_CONSOLE_ENABLE` (default=`true`).
936
+ - **[BREAKING]** On translation we changed `i18next`. Please convert files if you have plurals inside it <https://i18next.github.io/i18next-v4-format-converter-web/>.
937
+
938
+ ---
939
+
940
+ ## [2.16.0]
941
+
942
+ - **[UPDATE]** Update deps.
943
+ - **[NEW]** Begin adding type script definitions.
944
+
945
+ ---
946
+
947
+ ## [2.15.4]
948
+
949
+ - **[UPDATE]** Update deps.
950
+ - **[UPDATE]** Update tests timeout.
951
+
952
+ ---
953
+
954
+ ## [2.15.0]
955
+
956
+ - **[UPDATE]** Update deps.
957
+ - **[NEW]** Ability to configure Auth flow with `isAuthWithVefificationFlow` option.
958
+ - **[BREAKING]** Register not return status 201 instead of 200.
959
+
960
+ ---
961
+
962
+ ## [2.14.0]
963
+
964
+ - **[NEW]** Add `Sequence`. It provide ability to easily generate sequences for given types. It save to use on distributed environments.
965
+ ```javascript
966
+ const SequenceModel = this.app.getModel('Sequence');
967
+ // will be 1
968
+ const someTypeSequence = await SequenceModel.getSequence('someType');
969
+ // will be 2
970
+ const someTypeSequence2 = await SequenceModel.getSequence('someType');
971
+ // will be 1 as type is another
972
+ const someAnotherTypeSequence =
973
+ await SequenceModel.getSequence('someAnotherType');
974
+ ```
975
+
976
+ ---
977
+
978
+ ## [2.13.1]
979
+
980
+ - **[FIX]** Fix documentation about not using `req.appInfo.request`, but using `req.body` for `RateLimiter`.
981
+
982
+ ---
983
+
984
+ ## [2.13.0]
985
+
986
+ - **[NEW]** Rate limited middleware - ability to include request components (`req.body`) for key generation. Please not that you have no access to `req.appInfo.request` on this stage.
987
+ ```javascript
520
988
  static get middleware() {
521
989
  return new Map([
522
990
  ['POST/login', [
@@ -526,16 +994,16 @@ const someAnotherTypeSequence =
526
994
  ]]
527
995
  ]);
528
996
  }
529
- ```
530
-
531
- #### 2.12.0
997
+ ```
532
998
 
533
- [UPDATE] update deps
534
- [NEW] Rate limited middleware
999
+ ---
535
1000
 
536
- As rate limited we using https://github.com/animir/node-rate-limiter-flexible
1001
+ ## [2.12.0]
537
1002
 
538
- ```javascript
1003
+ - **[UPDATE]** Update deps.
1004
+ - **[NEW]** Rate limited middleware.
1005
+ As rate limited we using <https://github.com/animir/node-rate-limiter-flexible>
1006
+ ```javascript
539
1007
  static get middleware() {
540
1008
  return new Map([
541
1009
  ['POST/login', [
@@ -545,13 +1013,10 @@ As rate limited we using https://github.com/animir/node-rate-limiter-flexible
545
1013
  ]]
546
1014
  ]);
547
1015
  }
548
- ```
549
-
550
- 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)
551
-
552
- Rate limiter have multiple backends (memory, redis and mongo). Buy default 'memory' backend activated
553
-
554
- ```javascript
1016
+ ```
1017
+ 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)
1018
+ Rate limiter have multiple backends (memory, redis and mongo). Buy default 'memory' backend activated
1019
+ ```javascript
555
1020
  static get middleware() {
556
1021
  return new Map([
557
1022
  [
@@ -570,18 +1035,21 @@ Rate limiter have multiple backends (memory, redis and mongo). Buy default 'memo
570
1035
  ],
571
1036
  ]);
572
1037
  }
573
- ```
1038
+ ```
574
1039
 
575
- #### 2.11.0
1040
+ ---
576
1041
 
577
- [NEW] Added env variable HTTP_HOST for configure host to listen
1042
+ ## [2.11.0]
578
1043
 
579
- #### 2.10.0
1044
+ - **[NEW]** Added env variable `HTTP_HOST` for configure host to listen.
580
1045
 
581
- [UPDATE] update deps
582
- [NEW] ability to pass parameters to middleware
1046
+ ---
583
1047
 
584
- ```javascript
1048
+ ## [2.10.0]
1049
+
1050
+ - **[UPDATE]** Update deps.
1051
+ - **[NEW]** Ability to pass parameters to middleware.
1052
+ ```javascript
585
1053
  static get middleware() {
586
1054
  return new Map([
587
1055
  ['POST/someUrl', [
@@ -591,113 +1059,150 @@ Rate limiter have multiple backends (memory, redis and mongo). Buy default 'memo
591
1059
  ]]
592
1060
  ]);
593
1061
  }
594
- ```
1062
+ ```
1063
+ All this params goes to constructor as a second paramater.
1064
+
1065
+ ---
1066
+
1067
+ ## [2.9.2]
1068
+
1069
+ - **[UPDATE]** Update deps.
1070
+ - **[FIX]** Fix auth nick.
1071
+
1072
+ ---
1073
+
1074
+ ## [2.9.1]
1075
+
1076
+ - **[UPDATE]** Update deps.
1077
+
1078
+ ---
1079
+
1080
+ ## [2.9.0]
1081
+
1082
+ - **[BREAKING]** Auth controller update.
1083
+
1084
+ ---
1085
+
1086
+ ## [2.8.3]
595
1087
 
596
- All this params goes to constructor as a second paramater
1088
+ - **[FIX]** Update recovery email template.
597
1089
 
598
- #### 2.9.2
1090
+ ---
599
1091
 
600
- [UPDATE] update deps
601
- [FIX] fix auth nick
1092
+ ## [2.8.2]
602
1093
 
603
- #### 2.9.1
1094
+ - **[FIX]** Update AUTH controller.
604
1095
 
605
- [UPDATE] update deps
1096
+ ---
606
1097
 
607
- #### 2.9.0
1098
+ ## [2.8.1]
608
1099
 
609
- [BREAKING] Auth controller update
1100
+ - **[UPDATE]** Update deps.
1101
+ - **[FIX]** Update AUTH controller.
610
1102
 
611
- #### 2.8.3
1103
+ ---
612
1104
 
613
- [FIX] update recovery email template
1105
+ ## [2.8.0]
614
1106
 
615
- #### 2.8.2
1107
+ - **[UPDATE]** Change controllers to reflect latest changes.
1108
+ - **[UPDATE]** Add warning when using `req.body` directly.
1109
+ - **[BREAKING]** Possible breaking. `AsyncFunction` now required for router handler (it always was but without checking of code).
1110
+ - **[DEPRECATE]** Usage of `validator` of controllers.
1111
+ - **[DEPRECATE]** Usage of `isUseControllerNameForRouting` of controllers.
616
1112
 
617
- [FIX] update AUTH controller
1113
+ ---
618
1114
 
619
- #### 2.8.1
1115
+ ## [2.7.4]
620
1116
 
621
- [UPDATE] update deps
622
- [FIX] update AUTH controller
1117
+ - **[UPDATE]** Update deps.
623
1118
 
624
- #### 2.8.0
1119
+ ---
625
1120
 
626
- [UPDATE] change controllers to reflect latest changes
627
- [UPDATE] add warning when using 'req.body' directly
628
- [BREAKING] Possible breaking. AsyncFunction now required for router handler (it always was but without checking of code)
629
- [DEPRECATE] usage of 'validator' of controllers
630
- [DEPRECATE] usage of 'isUseControllerNameForRouting' of controllers.
1121
+ ## [2.7.3]
631
1122
 
632
- #### 2.7.4
1123
+ - **[UPDATE]** Replace `i18next-node-fs-backend` to `i18next-fs-backend` (drop in replacement).
633
1124
 
634
- [UPDATE] update deps
1125
+ ---
635
1126
 
636
- #### 2.7.3
1127
+ ## [2.7.2]
637
1128
 
638
- [UPDATE] replace i18next-node-fs-backend to i18next-fs-backend (drop in replacement)
1129
+ - **[UPDATE]** Update deps.
639
1130
 
640
- #### 2.7.2
1131
+ ---
641
1132
 
642
- [UPDATE] update deps
1133
+ ## [2.7.1]
643
1134
 
644
- #### 2.7.1
1135
+ - **[REMOVE]** Remove unused websocket.
645
1136
 
646
- [REMOVE] remove unused websocket
1137
+ ---
647
1138
 
648
- #### 2.7.0
1139
+ ## [2.7.0]
649
1140
 
650
- [UPDATE] change winston sentry transport
1141
+ - **[UPDATE]** Change winston sentry transport.
651
1142
 
652
- #### 2.6.5
1143
+ ---
653
1144
 
654
- [UPDATE] update deps
655
- [UPDATE] optimize deps
1145
+ ## [2.6.5]
656
1146
 
657
- #### 2.6.4
1147
+ - **[UPDATE]** Update deps.
1148
+ - **[UPDATE]** Optimize deps.
658
1149
 
659
- [UPDATE] update deps
1150
+ ---
660
1151
 
661
- #### 2.6.3
1152
+ ## [2.6.4]
662
1153
 
663
- [UPDATE] update deps
664
- [UPDATE] update handling exceptions loging
1154
+ - **[UPDATE]** Update deps.
665
1155
 
666
- #### 2.6.2
1156
+ ---
667
1157
 
668
- [UPDATE] normalize auth config
1158
+ ## [2.6.3]
669
1159
 
670
- #### 2.6.1
1160
+ - **[UPDATE]** Update deps.
1161
+ - **[UPDATE]** Update handling exceptions loging.
671
1162
 
672
- [FIX] fix error on cache system
673
- [UPDATE] stripUnknown=true by default on casting
1163
+ ---
674
1164
 
675
- #### 2.6.0
1165
+ ## [2.6.2]
676
1166
 
677
- [UPDATE] deps update
678
- [NEW]new cache system (alpha, subject of change)
1167
+ - **[UPDATE]** Normalize auth config.
679
1168
 
680
- ```javascript
681
- const cacheTime = 60 * 5;
682
- this.app.cache.getSetValue(
683
- 'someKey',
684
- async () => {
685
- // function that will execute in case cache value is missed
686
- },
687
- cacheTime,
688
- );
689
- ```
1169
+ ---
690
1170
 
691
- #### 2.5.1
1171
+ ## [2.6.1]
692
1172
 
693
- [UPDATE] deps update
694
- [FIX] fix error logging on unhadled rejection
1173
+ - **[FIX]** Fix error on cache system.
1174
+ - **[UPDATE]** `stripUnknown=true` by default on casting.
695
1175
 
696
- #### 2.5.0
1176
+ ---
697
1177
 
698
- [NEW] new route handler format with request validations and casting (yup based)
1178
+ ## [2.6.0]
699
1179
 
700
- ```javascript
1180
+ - **[UPDATE]** Deps update.
1181
+ - **[NEW]** New cache system (alpha, subject of change).
1182
+ ```javascript
1183
+ const cacheTime = 60 * 5;
1184
+ this.app.cache.getSetValue(
1185
+ 'someKey',
1186
+ async () => {
1187
+ // function that will execute in case cache value is missed
1188
+ },
1189
+ cacheTime,
1190
+ );
1191
+ ```
1192
+
1193
+ ---
1194
+
1195
+ ## [2.5.1]
1196
+
1197
+ - **[UPDATE]** Deps update.
1198
+ - **[FIX]** Fix error logging on unhadled rejection.
1199
+
1200
+ ---
1201
+
1202
+ ## [2.5.0]
1203
+
1204
+ - **[NEW]** New route handler format with request validations and casting (yup based).
1205
+ ```javascript
701
1206
  get routes() {
702
1207
  return {
703
1208
  post: {
@@ -712,217 +1217,301 @@ this.app.cache.getSetValue(
712
1217
  }
713
1218
  // send request with data {count: "5000"}
714
1219
  // will produce error with status 400 and {errors: {count:['Text error']}}
715
-
716
-
717
1220
  postSample(req,res) =>{
718
1221
  // on success validate we pass here.
719
1222
  // {count: "5000"}
720
1223
  console.log(req.appInfo.request)
721
1224
  // {count: 5000} -> casted to number
722
1225
  }
723
- ```
1226
+ ```
1227
+
1228
+ ---
724
1229
 
725
- #### 2.4.4
1230
+ ## [2.4.4]
726
1231
 
727
- [UPDATE] deps update
728
- [NEW] controller unhandled rejection now handled with default error
729
- [NEW] handle error with wrong model name
1232
+ - **[UPDATE]** Deps update.
1233
+ - **[NEW]** Controller unhandled rejection now handled with default error.
1234
+ - **[NEW]** Handle error with wrong model name.
730
1235
 
731
- #### 2.4.3
1236
+ ---
732
1237
 
733
- [UPDATE] deps update
1238
+ ## [2.4.3]
734
1239
 
735
- #### 2.4.2
1240
+ - **[UPDATE]** Deps update.
736
1241
 
737
- [FIX] abstract controlled middleware
738
- [UPDATE] deps update
1242
+ ---
739
1243
 
740
- #### 2.4.1
1244
+ ## [2.4.2]
741
1245
 
742
- [FIX] updated test because of previous breaking changes
1246
+ - **[FIX]** Abstract controlled middleware.
1247
+ - **[UPDATE]** Deps update.
743
1248
 
744
- #### 2.4.0
1249
+ ---
745
1250
 
746
- [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.
1251
+ ## [2.4.1]
747
1252
 
748
- [NEW] Controller middleware now support methods. Previous only ALL was 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 "/" then ALL method will be used (like previous bahaviour)
1253
+ - **[FIX]** Updated test because of previous breaking changes.
749
1254
 
750
- ```javascript
1255
+ ---
1256
+
1257
+ ## [2.4.0]
1258
+
1259
+ - **[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.
1260
+ - **[NEW]** Controller middleware now support methods. Previous only `ALL` was 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 "/" then `ALL` method will be used (like previous bahaviour).
1261
+ ```javascript
751
1262
  static get middleware() {
752
1263
  return new Map([['GET/*', [PrepareAppInfo, GetUserByToken]]]);
753
1264
  }
754
- ```
1265
+ ```
1266
+
1267
+ ---
1268
+
1269
+ ## [2.3.14]
1270
+
1271
+ - **[FIX]** Fix validate controller method for non strings.
1272
+
1273
+ ---
1274
+
1275
+ ## [2.3.13]
1276
+
1277
+ - **[UPDATE]** Testing now with mongoDB Replica.
1278
+ - **[UPDATE]** Refactor CLI.
1279
+
1280
+ ---
1281
+
1282
+ ## [2.3.12]
1283
+
1284
+ - **[UPDATE]** Testing update.
1285
+
1286
+ ---
1287
+
1288
+ ## [2.3.11]
1289
+
1290
+ - **[UPDATE]** Refactor CLI for testing.
1291
+
1292
+ ---
1293
+
1294
+ ## [2.3.10]
1295
+
1296
+ - **[UPDATE]** Update user model indexes to allow null email and nick.
1297
+ - **[UPDATE]** Deps update.
1298
+
1299
+ ---
1300
+
1301
+ ## [2.3.9]
1302
+
1303
+ - **[FIX]** Test fix.
1304
+
1305
+ ---
1306
+
1307
+ ## [2.3.8]
1308
+
1309
+ - **[NEW]** Add `global.testSetup.beforeAll` `global.testSetup.afterAll` functions and `global.testSetup.disableUserCreate` flag for testing testing.
1310
+
1311
+ ---
1312
+
1313
+ ## [2.3.7]
1314
+
1315
+ - **[UPDATE]** Deps update.
1316
+ - **[NEW]** Add `global.testSetup.userCreate` function for testing.
1317
+
1318
+ ---
1319
+
1320
+ ## [2.3.6]
1321
+
1322
+ - **[UPDATE]** Deps update.
1323
+ - **[FIX]** Test fix.
1324
+
1325
+ ---
1326
+
1327
+ ## [2.3.5]
1328
+
1329
+ - **[NEW]** Add command `DropIndex`.
1330
+ - **[UPDATE]** Deps update.
1331
+
1332
+ ---
1333
+
1334
+ ## [2.3.4]
1335
+
1336
+ - **[NEW]** Add `webResources` option to email service.
1337
+ - **[UPDATE]** Deps update.
1338
+
1339
+ ---
1340
+
1341
+ ## [2.3.3]
1342
+
1343
+ - **[UPDATE]** Deps update.
1344
+
1345
+ ---
1346
+
1347
+ ## [2.3.2]
1348
+
1349
+ - **[FIX]** Fix controllers order to load.
755
1350
 
756
- #### 2.3.14
1351
+ ---
757
1352
 
758
- [FIX] fix validate controller method for non strings
1353
+ ## [2.3.1]
759
1354
 
760
- #### 2.3.13
1355
+ - **[FIX]** Fix parsing token.
761
1356
 
762
- [UPDATE] testing now with mongoDB Replica
763
- [UPDATE] refactor CLI
1357
+ ---
764
1358
 
765
- #### 2.3.12
1359
+ ## [2.3.0]
766
1360
 
767
- [UPDATE] testing update
1361
+ - **[NEW]** `Migration/create` `migration/migrate` commands.
768
1362
 
769
- #### 2.3.11
1363
+ ---
770
1364
 
771
- [UPDATE] refactor CLI for testing
1365
+ ## [2.2.6]
772
1366
 
773
- #### 2.3.10
1367
+ - **[NEW]** CLI command receiving parsed arguments.
774
1368
 
775
- [UPDATE] update user model indexes to allow null email and nick
776
- [UPDATE] deps update
1369
+ ---
777
1370
 
778
- #### 2.3.9
1371
+ ## [2.2.5]
779
1372
 
780
- [FIX] test fix
1373
+ - **[FIX]** Fix disconnecting problems with replica set.
781
1374
 
782
- #### 2.3.8
1375
+ ---
783
1376
 
784
- [NEW] add 'global.testSetup.beforeAll' 'global.testSetup.afterAll' functions and 'global.testSetup.disableUserCreate' flag for testing testing
1377
+ ## [2.2.4]
785
1378
 
786
- #### 2.3.7
1379
+ - **[UPDATE]** Internal update for speed up cli init.
787
1380
 
788
- [UPDATE] deps update
789
- [NEW] add 'global.testSetup.userCreate' function for testing
1381
+ ---
790
1382
 
791
- #### 2.3.6
1383
+ ## [2.2.3]
792
1384
 
793
- [UPDATE] deps update
794
- [FIX] test fix
1385
+ - **[FIX]** Fix language detection.
795
1386
 
796
- #### 2.3.5
1387
+ ---
797
1388
 
798
- [NEW] Add command DropIndex
799
- [UPDATE] deps update
1389
+ ## [2.2.2]
800
1390
 
801
- #### 2.3.4
1391
+ - **[FIX]** Fix test as part of docker image update. This just a `mongo-memory-server` problems.
1392
+ - **[NEW]** Add config to configure language detecting order and types.
802
1393
 
803
- [NEW] Add webResources option to email service
804
- [UPDATE] deps update
1394
+ ---
805
1395
 
806
- #### 2.3.3
1396
+ ## [2.2.1]
807
1397
 
808
- [UPDATE] deps update
1398
+ - **[UPDATE]** Deps update.
809
1399
 
810
- #### 2.3.2
1400
+ ---
811
1401
 
812
- [FIX] Fix controllers order to load
1402
+ ## [2.2.0]
813
1403
 
814
- #### 2.3.1
1404
+ - **[DEPRECATED]** `Base.loadFilesWithInheritance` please use `getFilesPathWithInheritance` that produce almost the same output.
1405
+ - **[UPDATE]** Deps update.
1406
+ - **[UPDATE]** Https logs now contains request time.
1407
+ - **[NEW]** Ability to put controllers into folders with path inheritance.
1408
+ - **[NEW]** Ability to replace `expressPath` on controller - `getExpressPath()` methos.
1409
+ - **[NEW]** Ability to put commands into folders with path inheritance.
815
1410
 
816
- [FIX] Fix parsing token
1411
+ ---
817
1412
 
818
- #### 2.3.0
1413
+ ## [2.1.2]
819
1414
 
820
- [NEW] Migration/create migration/migrate commands
1415
+ - **[UPDATE]** Disconnect of mongoose when command was finished.
821
1416
 
822
- #### 2.2.6
1417
+ ---
823
1418
 
824
- [NEW] CLI command receiving parsed arguments
1419
+ ## [2.1.1]
825
1420
 
826
- #### 2.2.5
1421
+ - **[UPDATE]** Deps update.
827
1422
 
828
- [FIX] Fix disconnecting problems with replica set
1423
+ ---
829
1424
 
830
- #### 2.2.4
1425
+ ## [2.1.0]
831
1426
 
832
- [UPDATE] Internal update for speed up cli init
1427
+ - **[DEV]** Added codestyle checker.
1428
+ - **[NEW]** Initial CLI module.
833
1429
 
834
- #### 2.2.3
1430
+ ---
835
1431
 
836
- [FIX] fix language detection
1432
+ ## [2.0.2]
837
1433
 
838
- #### 2.2.2
1434
+ - **[UPDATE]** Socket.io v3.
1435
+ - **[UPDATE]** Deps update.
839
1436
 
840
- [FIX] fix test as part of docker image update. This just a mongo-memory-server problems
841
- [NEW] add config to configure language detecting order and types
1437
+ ---
842
1438
 
843
- #### 2.2.1
1439
+ ## [2.0.1]
844
1440
 
845
- [UPDATE] deps update
1441
+ - **[NEW]** Added config to websocket.
846
1442
 
847
- #### 2.2.0
1443
+ ---
848
1444
 
849
- [DEPRECATED] Base.loadFilesWithInheritance please use getFilesPathWithInheritance that produce almost the same output
850
- [UPDATE] deps update
851
- [UPDATE] https logs now contains request time
852
- [NEW] Ability to put controllers into folders with path inheritance
853
- [NEW] Ability to replace expressPath on controller - getExpressPath() methos
854
- [NEW] Ability to put commands into folders with path inheritance
1445
+ ## [2.0.0]
855
1446
 
856
- #### 2.1.2
1447
+ - **[BREAKING]** Change config format of log config. Now configs can be only objects.
857
1448
 
858
- [UPDATE] disconnect of mongoose when command was finished
1449
+ ---
859
1450
 
860
- #### 2.1.1
1451
+ ## [1.5.0]
861
1452
 
862
- [UPDATE] deps update
1453
+ - **[NEW]** Support for environment configs (`config.js` and `config.{NODE_ENV}.js`) with overwrite.
1454
+ - **[UPDATE]** Deps update.
863
1455
 
864
- #### 2.1.0
1456
+ ---
865
1457
 
866
- [DEV] added codestyle checker
867
- [NEW] Initial CLI module
1458
+ ## [1.4.0]
868
1459
 
869
- #### 2.0.2 released
1460
+ - **[NEW]** Ability to pass additional parameter to server that will be executed before adding page 404.
870
1461
 
871
- [UPDATE] socket.io v3
872
- [UPDATE] deps update
1462
+ ---
873
1463
 
874
- #### 2.0.1
1464
+ ## [1.3.0]
875
1465
 
876
- [NEW] Added config to websocket
1466
+ - **[NEW]** Models now support optional callback that will executed on connection ready. If mongo already connected then callback will be executed immediately.
877
1467
 
878
- #### 2.0.0
1468
+ ---
879
1469
 
880
- [BREAKING] Change config format of log config. Now configs can be only objects
1470
+ ## [1.2.9]
881
1471
 
882
- #### 1.5.0
1472
+ - **[UPDATE]** Update deps.
883
1473
 
884
- [NEW] Support for environment configs (config.js and config.{NODE_ENV}.js) with overwrite
885
- [UPDATE] deps update
1474
+ ---
886
1475
 
887
- #### 1.4.0
1476
+ ## [1.2.8]
888
1477
 
889
- Ability to pass additional parameter to server that will be executed before adding page 404
1478
+ - **[UPDATE]** Update deps.
890
1479
 
891
- #### 1.3.0
1480
+ ---
892
1481
 
893
- Models now support optional callback that will executed on connection ready. If mongo already connected then callback will be executed immediately
1482
+ ## [1.2.7]
894
1483
 
895
- #### 1.2.9
1484
+ - **[NEW]** Add abilty to return error from custom validation functions.
896
1485
 
897
- Update deps
1486
+ ---
898
1487
 
899
- #### 1.2.8
1488
+ ## [1.2.6]
900
1489
 
901
- Update deps
1490
+ - **[UPDATE]** Validator documentation (jsdoc) update.
1491
+ - **[UPDATE]** Validator support pass parameters to validator.
902
1492
 
903
- #### 1.2.7
1493
+ ---
904
1494
 
905
- Add abilty to return error from custom validation functions
1495
+ ## [1.2.5]
906
1496
 
907
- #### 1.2.6
1497
+ - **[FIX]** Fix problem with test (user should be global on tests).
908
1498
 
909
- Validator documentation (jsdoc) update
910
- Validator support pass parameters to validator
1499
+ ---
911
1500
 
912
- #### 1.2.5
1501
+ ## [1.2.4]
913
1502
 
914
- Fix problem with test (user should be global on tests)
1503
+ - **[NEW]** Add eslint.
1504
+ - **[UPDATE]** Code refactor.
915
1505
 
916
- #### 1.2.4
1506
+ ---
917
1507
 
918
- Add eslint
919
- Code refactor
1508
+ ## [1.2.3]
920
1509
 
921
- #### 1.2.3
1510
+ - **[NEW]** Add prettier.
1511
+ - **[UPDATE]** Code reformat.
922
1512
 
923
- Add prettier
924
- Code reformat
1513
+ ---
925
1514
 
926
- #### 1.2.2
1515
+ ## [1.2.2]
927
1516
 
928
- Update deps
1517
+ - **[UPDATE]** Update deps.