@adaptivestone/framework 5.0.0-beta.11 → 5.0.0-beta.13

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 (271) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENCE +1 -1
  3. package/cliCommand.ts +10 -0
  4. package/dist/Cli.d.ts +7 -0
  5. package/dist/Cli.js +19 -0
  6. package/dist/Cli.js.map +1 -0
  7. package/dist/cluster.d.ts +1 -0
  8. package/dist/cluster.js +18 -0
  9. package/dist/cluster.js.map +1 -0
  10. package/dist/commands/CreateUser.d.ts +32 -0
  11. package/dist/commands/CreateUser.js +81 -0
  12. package/dist/commands/CreateUser.js.map +1 -0
  13. package/dist/commands/Documentation.d.ts +5 -0
  14. package/dist/commands/Documentation.js +15 -0
  15. package/dist/commands/Documentation.js.map +1 -0
  16. package/dist/commands/DropIndex.d.ts +16 -0
  17. package/dist/commands/DropIndex.js +30 -0
  18. package/dist/commands/DropIndex.js.map +1 -0
  19. package/dist/commands/GenerateRandomBytes.d.ts +7 -0
  20. package/dist/commands/GenerateRandomBytes.js +18 -0
  21. package/dist/commands/GenerateRandomBytes.js.map +1 -0
  22. package/dist/commands/GetOpenApiJson.d.ts +17 -0
  23. package/dist/commands/GetOpenApiJson.js +272 -0
  24. package/dist/commands/GetOpenApiJson.js.map +1 -0
  25. package/dist/commands/SyncIndexes.d.ts +6 -0
  26. package/dist/commands/SyncIndexes.js +32 -0
  27. package/dist/commands/SyncIndexes.js.map +1 -0
  28. package/dist/commands/migration/Create.d.ts +18 -0
  29. package/dist/commands/migration/Create.js +57 -0
  30. package/dist/commands/migration/Create.js.map +1 -0
  31. package/dist/commands/migration/Migrate.d.ts +6 -0
  32. package/dist/commands/migration/Migrate.js +46 -0
  33. package/dist/commands/migration/Migrate.js.map +1 -0
  34. package/dist/config/auth.d.ts +6 -0
  35. package/dist/config/auth.js +7 -0
  36. package/dist/config/auth.js.map +1 -0
  37. package/dist/config/http.d.ts +8 -0
  38. package/dist/config/http.js +10 -0
  39. package/dist/config/http.js.map +1 -0
  40. package/dist/config/i18n.d.ts +10 -0
  41. package/dist/config/i18n.js +13 -0
  42. package/dist/config/i18n.js.map +1 -0
  43. package/dist/config/ipDetector.d.ts +5 -0
  44. package/dist/config/ipDetector.js +15 -0
  45. package/dist/config/ipDetector.js.map +1 -0
  46. package/dist/config/log.d.ts +22 -0
  47. package/dist/config/log.js +23 -0
  48. package/dist/config/log.js.map +1 -0
  49. package/dist/config/mongo.d.ts +4 -0
  50. package/dist/config/mongo.js +4 -0
  51. package/dist/config/mongo.js.map +1 -0
  52. package/dist/config/rateLimiter.d.ts +15 -0
  53. package/dist/config/rateLimiter.js +17 -0
  54. package/dist/config/rateLimiter.js.map +1 -0
  55. package/dist/config/redis.d.ts +5 -0
  56. package/dist/config/redis.js +5 -0
  57. package/dist/config/redis.js.map +1 -0
  58. package/dist/config/validate.d.ts +4 -0
  59. package/dist/config/validate.js +4 -0
  60. package/dist/config/validate.js.map +1 -0
  61. package/dist/controllers/Auth.d.ts +74 -0
  62. package/dist/controllers/Auth.js +181 -0
  63. package/dist/controllers/Auth.js.map +1 -0
  64. package/dist/controllers/Home.d.ts +15 -0
  65. package/dist/controllers/Home.js +24 -0
  66. package/dist/controllers/Home.js.map +1 -0
  67. package/dist/controllers/index.d.ts +16 -0
  68. package/dist/controllers/index.js +59 -0
  69. package/dist/controllers/index.js.map +1 -0
  70. package/dist/folderConfig.d.ts +34 -0
  71. package/dist/folderConfig.js +15 -0
  72. package/dist/folderConfig.js.map +1 -0
  73. package/dist/helpers/files.d.ts +16 -0
  74. package/dist/helpers/files.js +76 -0
  75. package/dist/helpers/files.js.map +1 -0
  76. package/dist/helpers/logger.d.ts +4 -0
  77. package/dist/helpers/logger.js +28 -0
  78. package/dist/helpers/logger.js.map +1 -0
  79. package/dist/helpers/redis/clearNamespace.d.ts +3 -0
  80. package/dist/helpers/redis/clearNamespace.js +15 -0
  81. package/dist/helpers/redis/clearNamespace.js.map +1 -0
  82. package/dist/helpers/yup.d.ts +13 -0
  83. package/{helpers → dist/helpers}/yup.js +8 -9
  84. package/dist/helpers/yup.js.map +1 -0
  85. package/dist/index.d.ts +1 -0
  86. package/dist/index.js +7 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/models/Lock.d.ts +62 -0
  89. package/dist/models/Lock.js +94 -0
  90. package/dist/models/Lock.js.map +1 -0
  91. package/dist/models/Migration.d.ts +13 -0
  92. package/dist/models/Migration.js +14 -0
  93. package/dist/models/Migration.js.map +1 -0
  94. package/dist/models/Sequence.d.ts +23 -0
  95. package/dist/models/Sequence.js +16 -0
  96. package/dist/models/Sequence.js.map +1 -0
  97. package/dist/models/User.d.ts +178 -0
  98. package/dist/models/User.js +244 -0
  99. package/dist/models/User.js.map +1 -0
  100. package/dist/modules/AbstractCommand.d.ts +30 -0
  101. package/dist/modules/AbstractCommand.js +44 -0
  102. package/dist/modules/AbstractCommand.js.map +1 -0
  103. package/dist/modules/AbstractConnector.d.ts +5 -0
  104. package/dist/modules/AbstractConnector.js +8 -0
  105. package/dist/modules/AbstractConnector.js.map +1 -0
  106. package/dist/modules/AbstractController.d.ts +90 -0
  107. package/dist/modules/AbstractController.js +324 -0
  108. package/dist/modules/AbstractController.js.map +1 -0
  109. package/dist/modules/AbstractModel.d.ts +29 -0
  110. package/dist/modules/AbstractModel.js +73 -0
  111. package/dist/modules/AbstractModel.js.map +1 -0
  112. package/dist/modules/Base.d.ts +29 -0
  113. package/dist/modules/Base.js +54 -0
  114. package/dist/modules/Base.js.map +1 -0
  115. package/dist/modules/BaseCli.d.ts +25 -0
  116. package/dist/modules/BaseCli.js +138 -0
  117. package/dist/modules/BaseCli.js.map +1 -0
  118. package/dist/server.d.ts +110 -0
  119. package/dist/server.js +372 -0
  120. package/dist/server.js.map +1 -0
  121. package/dist/services/cache/Cache.d.ts +31 -0
  122. package/dist/services/cache/Cache.js +115 -0
  123. package/dist/services/cache/Cache.js.map +1 -0
  124. package/dist/services/documentation/DocumentationGenerator.d.ts +11 -0
  125. package/dist/services/documentation/DocumentationGenerator.js +134 -0
  126. package/dist/services/documentation/DocumentationGenerator.js.map +1 -0
  127. package/dist/services/http/HttpServer.d.ts +35 -0
  128. package/dist/services/http/HttpServer.js +71 -0
  129. package/dist/services/http/HttpServer.js.map +1 -0
  130. package/dist/services/http/middleware/AbstractMiddleware.d.ts +25 -0
  131. package/dist/services/http/middleware/AbstractMiddleware.js +43 -0
  132. package/dist/services/http/middleware/AbstractMiddleware.js.map +1 -0
  133. package/dist/services/http/middleware/Auth.d.ts +9 -0
  134. package/dist/services/http/middleware/Auth.js +18 -0
  135. package/dist/services/http/middleware/Auth.js.map +1 -0
  136. package/dist/services/http/middleware/Cors.d.ts +10 -0
  137. package/dist/services/http/middleware/Cors.js +36 -0
  138. package/dist/services/http/middleware/Cors.js.map +1 -0
  139. package/dist/services/http/middleware/GetUserByToken.d.ts +19 -0
  140. package/dist/services/http/middleware/GetUserByToken.js +40 -0
  141. package/dist/services/http/middleware/GetUserByToken.js.map +1 -0
  142. package/dist/services/http/middleware/I18n.d.ts +26 -0
  143. package/dist/services/http/middleware/I18n.js +97 -0
  144. package/dist/services/http/middleware/I18n.js.map +1 -0
  145. package/dist/services/http/middleware/IpDetector.d.ts +12 -0
  146. package/dist/services/http/middleware/IpDetector.js +51 -0
  147. package/dist/services/http/middleware/IpDetector.js.map +1 -0
  148. package/dist/services/http/middleware/Pagination.d.ts +27 -0
  149. package/dist/services/http/middleware/Pagination.js +47 -0
  150. package/dist/services/http/middleware/Pagination.js.map +1 -0
  151. package/dist/services/http/middleware/PrepareAppInfo.d.ts +8 -0
  152. package/dist/services/http/middleware/PrepareAppInfo.js +17 -0
  153. package/dist/services/http/middleware/PrepareAppInfo.js.map +1 -0
  154. package/dist/services/http/middleware/RateLimiter.d.ts +18 -0
  155. package/dist/services/http/middleware/RateLimiter.js +106 -0
  156. package/dist/services/http/middleware/RateLimiter.js.map +1 -0
  157. package/dist/services/http/middleware/RequestLogger.d.ts +8 -0
  158. package/dist/services/http/middleware/RequestLogger.js +18 -0
  159. package/dist/services/http/middleware/RequestLogger.js.map +1 -0
  160. package/dist/services/http/middleware/RequestParser.d.ts +8 -0
  161. package/dist/services/http/middleware/RequestParser.js +35 -0
  162. package/dist/services/http/middleware/RequestParser.js.map +1 -0
  163. package/dist/services/http/middleware/Role.d.ts +9 -0
  164. package/dist/services/http/middleware/Role.js +24 -0
  165. package/dist/services/http/middleware/Role.js.map +1 -0
  166. package/dist/services/validate/ValidateService.d.ts +31 -0
  167. package/dist/services/validate/ValidateService.js +96 -0
  168. package/dist/services/validate/ValidateService.js.map +1 -0
  169. package/dist/services/validate/drivers/AbstractValidator.d.ts +14 -0
  170. package/dist/services/validate/drivers/AbstractValidator.js +32 -0
  171. package/dist/services/validate/drivers/AbstractValidator.js.map +1 -0
  172. package/dist/services/validate/drivers/CustomValidator.d.ts +14 -0
  173. package/dist/services/validate/drivers/CustomValidator.js +48 -0
  174. package/dist/services/validate/drivers/CustomValidator.js.map +1 -0
  175. package/dist/services/validate/drivers/YupValidator.d.ts +13 -0
  176. package/dist/services/validate/drivers/YupValidator.js +86 -0
  177. package/dist/services/validate/drivers/YupValidator.js.map +1 -0
  178. package/dist/tests/globalSetupVitest.d.ts +2 -0
  179. package/dist/tests/globalSetupVitest.js +29 -0
  180. package/dist/tests/globalSetupVitest.js.map +1 -0
  181. package/dist/tests/setupVitest.d.ts +1 -0
  182. package/dist/tests/setupVitest.js +99 -0
  183. package/dist/tests/setupVitest.js.map +1 -0
  184. package/package.json +21 -11
  185. package/Cli.js +0 -21
  186. package/cluster.js +0 -25
  187. package/commands/.gitkeep +0 -0
  188. package/commands/CreateUser.js +0 -106
  189. package/commands/Documentation.js +0 -17
  190. package/commands/DropIndex.js +0 -38
  191. package/commands/GenerateRandomBytes.js +0 -21
  192. package/commands/GetOpenApiJson.js +0 -336
  193. package/commands/SyncIndexes.js +0 -40
  194. package/commands/migration/Create.js +0 -72
  195. package/commands/migration/Migrate.js +0 -56
  196. package/config/auth.js +0 -9
  197. package/config/http.js +0 -9
  198. package/config/i18n.js +0 -12
  199. package/config/ipDetector.js +0 -14
  200. package/config/log.js +0 -22
  201. package/config/mongo.js +0 -3
  202. package/config/rateLimiter.js +0 -16
  203. package/config/redis.js +0 -4
  204. package/config/validate.js +0 -3
  205. package/controllers/Auth.js +0 -201
  206. package/controllers/Home.js +0 -28
  207. package/controllers/index.js +0 -66
  208. package/eslint.config.js +0 -68
  209. package/folderConfig.js +0 -13
  210. package/helpers/files.js +0 -76
  211. package/helpers/logger.js +0 -16
  212. package/helpers/redis/clearNamespace.js +0 -14
  213. package/index.js +0 -8
  214. package/jsconfig.json +0 -9
  215. package/locales/en/translation.json +0 -27
  216. package/locales/ru/translation.json +0 -27
  217. package/migrations/.gitkeep +0 -0
  218. package/models/Lock.js +0 -107
  219. package/models/Migration.js +0 -15
  220. package/models/Sequence.js +0 -22
  221. package/models/User.js +0 -280
  222. package/modules/AbstractCommand.d.ts +0 -50
  223. package/modules/AbstractCommand.js +0 -52
  224. package/modules/AbstractConnector.js +0 -9
  225. package/modules/AbstractController.d.ts +0 -55
  226. package/modules/AbstractController.js +0 -400
  227. package/modules/AbstractModel.d.ts +0 -48
  228. package/modules/AbstractModel.js +0 -92
  229. package/modules/Base.d.ts +0 -37
  230. package/modules/Base.js +0 -64
  231. package/modules/BaseCli.js +0 -162
  232. package/server.d.ts +0 -100
  233. package/server.js +0 -439
  234. package/services/cache/Cache.d.ts +0 -35
  235. package/services/cache/Cache.js +0 -124
  236. package/services/documentation/DocumentationGenerator.js +0 -169
  237. package/services/http/HttpServer.js +0 -89
  238. package/services/http/middleware/AbstractMiddleware.js +0 -51
  239. package/services/http/middleware/Auth.js +0 -20
  240. package/services/http/middleware/Cors.js +0 -46
  241. package/services/http/middleware/GetUserByToken.js +0 -47
  242. package/services/http/middleware/I18n.js +0 -117
  243. package/services/http/middleware/IpDetector.js +0 -59
  244. package/services/http/middleware/Pagination.js +0 -57
  245. package/services/http/middleware/PrepareAppInfo.js +0 -18
  246. package/services/http/middleware/RateLimiter.js +0 -134
  247. package/services/http/middleware/RequestLogger.js +0 -22
  248. package/services/http/middleware/RequestParser.js +0 -40
  249. package/services/http/middleware/Role.js +0 -29
  250. package/services/messaging/email/resources/.gitkeep +0 -1
  251. package/services/messaging/email/templates/.gitkeep +0 -0
  252. package/services/messaging/email/templates/recovery/html.pug +0 -8
  253. package/services/messaging/email/templates/recovery/subject.pug +0 -2
  254. package/services/messaging/email/templates/recovery/text.pug +0 -3
  255. package/services/messaging/email/templates/verification/html.pug +0 -10
  256. package/services/messaging/email/templates/verification/subject.pug +0 -1
  257. package/services/messaging/email/templates/verification/text.pug +0 -1
  258. package/services/validate/ValidateService.js +0 -157
  259. package/services/validate/drivers/AbstractValidator.js +0 -37
  260. package/services/validate/drivers/CustomValidator.js +0 -51
  261. package/services/validate/drivers/YupValidator.js +0 -103
  262. package/tests/globalSetupVitest.js +0 -35
  263. package/tests/setup.js +0 -120
  264. package/tests/setupVitest.js +0 -111
  265. package/types/Expand.d.ts +0 -11
  266. package/types/ICommandArguments.d.ts +0 -41
  267. package/types/TFoldersConfig.d.ts +0 -20
  268. package/views/404.pug +0 -3
  269. package/views/home.pug +0 -3
  270. package/views/layouts/base.pug +0 -39
  271. package/vitest.config.js +0 -17
@@ -0,0 +1,32 @@
1
+ import path from 'node:path';
2
+ import * as url from 'node:url';
3
+ import AbstractCommand from "../modules/AbstractCommand.js";
4
+ class SyncIndexes extends AbstractCommand {
5
+ async run() {
6
+ const dirname = url.fileURLToPath(new URL('.', import.meta.url));
7
+ const files = await this.getFilesPathWithInheritance(path.join(dirname, '/../models'), this.app.foldersConfig.models);
8
+ let models = [];
9
+ for (const file of files) {
10
+ models.push(path.basename(file.file, path.extname(file.file)));
11
+ }
12
+ models = models.sort();
13
+ this.logger?.info(`Total found ${models.length} models`);
14
+ for (const modelName of models) {
15
+ const Model = this.app.getModel(modelName);
16
+ // eslint-disable-next-line no-await-in-loop
17
+ const removedIndexes = await Model.syncIndexes(); // await in loop not a bug. Lets do one by one
18
+ if (removedIndexes.length) {
19
+ this.logger?.info(`Model - ${modelName} removed indexes: ${removedIndexes}`);
20
+ }
21
+ else {
22
+ this.logger?.info(`Model - ${modelName} NO removed indexes`);
23
+ }
24
+ }
25
+ return true;
26
+ }
27
+ static get description() {
28
+ return 'Synchronize indexes defined in models with a real one indexed on the database. Command will remove all indexes from the database that do not exist on model OR have different parameters. Then it will create a new indexes ';
29
+ }
30
+ }
31
+ export default SyncIndexes;
32
+ //# sourceMappingURL=SyncIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncIndexes.js","sourceRoot":"","sources":["../../src/commands/SyncIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,MAAM,WAAY,SAAQ,eAAe;IACvC,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAClD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAChC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAC9B,CAAC;QACF,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAEzD,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,4CAA4C;YAC5C,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,8CAA8C;YAChG,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,WAAW,SAAS,qBAAqB,cAAc,EAAE,CAC1D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,SAAS,qBAAqB,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,iOAAiO,CAAC;IAC3O,CAAC;CACF;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ import AbstractCommand from '../../modules/AbstractCommand.ts';
2
+ declare class CreateMigration extends AbstractCommand {
3
+ static get description(): string;
4
+ /**
5
+ * You able to add command arguments for parsing there.
6
+ */
7
+ static get commandArguments(): {
8
+ name: {
9
+ type: "string";
10
+ description: string;
11
+ required: boolean;
12
+ };
13
+ };
14
+ run(): Promise<boolean>;
15
+ static camelSentence(str: string): string;
16
+ static getTemplate(name: string): string;
17
+ }
18
+ export default CreateMigration;
@@ -0,0 +1,57 @@
1
+ import path from 'node:path';
2
+ import { promises as fs } from 'node:fs';
3
+ import AbstractCommand from "../../modules/AbstractCommand.js";
4
+ class CreateMigration extends AbstractCommand {
5
+ static get description() {
6
+ return 'Create new migration';
7
+ }
8
+ /**
9
+ * You able to add command arguments for parsing there.
10
+ */
11
+ static get commandArguments() {
12
+ return {
13
+ name: {
14
+ type: 'string',
15
+ description: 'Migration name',
16
+ required: true,
17
+ },
18
+ };
19
+ }
20
+ async run() {
21
+ if (this.args.name.match(/^\d/)) {
22
+ this.logger?.error('Command cant start from nubmer');
23
+ return false;
24
+ }
25
+ const fileName = `${Date.now()}_${CreateMigration.camelSentence(this.args.name)}.ts`;
26
+ const fileContent = CreateMigration.getTemplate(CreateMigration.camelSentence(this.args.name));
27
+ await fs.writeFile(path.join(this.app.foldersConfig.migrations, fileName), fileContent);
28
+ this.logger?.info(`Migration created ${fileName}`);
29
+ return true;
30
+ }
31
+ static camelSentence(str) {
32
+ return ` ${str}`
33
+ .toLowerCase()
34
+ .replace(/[^a-zA-Z0-9]+(.)/g, (match, chr) => chr.toUpperCase());
35
+ }
36
+ static getTemplate(name) {
37
+ return `/* eslint-disable class-methods-use-this */
38
+
39
+ import Base from '@adaptivestone/framework/modules/Base.js';
40
+
41
+ class ${name} extends Base {
42
+ async up() {
43
+ // put here your mirgation up logic
44
+ // const YourModel = this.app.getModel('ModelName');
45
+ }
46
+
47
+ async down() {
48
+ // put here your mirgation down logic
49
+ }
50
+ }
51
+
52
+ export default ${name};
53
+ `;
54
+ }
55
+ }
56
+ export default CreateMigration;
57
+ //# sourceMappingURL=Create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../src/commands/migration/Create.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,MAAM,eAAgB,SAAQ,eAAe;IAC3C,MAAM,KAAK,WAAW;QACpB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,gBAAgB;QACzB,OAAO;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,aAAa,CAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CACf,KAAK,CAAC;QAEP,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAC7C,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EACtD,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAW;QAC9B,OAAO,IAAI,GAAG,EAAE;aACb,WAAW,EAAE;aACb,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO;;;;QAIH,IAAI;;;;;;;;;;;iBAWK,IAAI;CACpB,CAAC;IACA,CAAC;CACF;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import AbstractCommand from '../../modules/AbstractCommand.ts';
2
+ declare class Migrate extends AbstractCommand {
3
+ static get description(): string;
4
+ run(): Promise<boolean>;
5
+ }
6
+ export default Migrate;
@@ -0,0 +1,46 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import * as url from 'node:url';
10
+ import path from 'node:path';
11
+ import AbstractCommand from "../../modules/AbstractCommand.js";
12
+ class Migrate extends AbstractCommand {
13
+ static get description() {
14
+ return 'Run all pending migrations';
15
+ }
16
+ async run() {
17
+ const dirname = url.fileURLToPath(new URL('.', import.meta.url));
18
+ const files = await this.getFilesPathWithInheritance(path.join(dirname, '/../../migrations'), this.app.foldersConfig.migrations);
19
+ files.sort((a, b) => Number(a.file.split('_')[0]) - Number(b.file.split('_')[0]));
20
+ const MigrationModel = this.app.getModel('Migration');
21
+ const lastMigration = await MigrationModel.findOne({})
22
+ .sort({ createdAt: -1 })
23
+ .exec();
24
+ let migrations = files;
25
+ if (lastMigration) {
26
+ const lastMigrationTime = Number(lastMigration.migrationFile.split('_')[0]);
27
+ migrations = files.filter((val) => Number(val.file.split('_')[0]) > lastMigrationTime);
28
+ }
29
+ for (const migration of migrations) {
30
+ this.logger?.info(`=== Start migration ${migration.file} ===`);
31
+ // eslint-disable-next-line no-await-in-loop
32
+ const { default: MigrationCommand } = await import(__rewriteRelativeImportExtension(migration.path));
33
+ const migrationCommand = new MigrationCommand(this.app);
34
+ // eslint-disable-next-line no-await-in-loop
35
+ await migrationCommand.up();
36
+ // eslint-disable-next-line no-await-in-loop
37
+ await MigrationModel.create({
38
+ migrationFile: migration.file,
39
+ });
40
+ }
41
+ this.logger?.info(`=== Migration Finished. Migrated ${migrations.length} files ===`);
42
+ return true;
43
+ }
44
+ }
45
+ export default Migrate;
46
+ //# sourceMappingURL=Migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrate.js","sourceRoot":"","sources":["../../../src/commands/migration/Migrate.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,MAAM,OAAQ,SAAQ,eAAe;IACnC,MAAM,KAAK,WAAW;QACpB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAClD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,EACvC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAClC,CAAC;QACF,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACtE,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;aACnD,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;aACvB,IAAI,EAAE,CAAC;QAEV,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,iBAAiB,GAAG,MAAM,CAC9B,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;YACF,UAAU,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAC5D,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC;YAC/D,4CAA4C;YAC5C,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,kCAAC,SAAS,CAAC,IAAI,EAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,4CAA4C;YAC5C,MAAM,gBAAgB,CAAC,EAAE,EAAE,CAAC;YAC5B,4CAA4C;YAC5C,MAAM,cAAc,CAAC,MAAM,CAAC;gBAC1B,aAAa,EAAE,SAAS,CAAC,IAAI;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,oCAAoC,UAAU,CAAC,MAAM,YAAY,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare namespace _default {
2
+ let hashRounds: number;
3
+ let saltSecret: string | void;
4
+ let isAuthWithVefificationFlow: boolean;
5
+ }
6
+ export default _default;
@@ -0,0 +1,7 @@
1
+ export default {
2
+ hashRounds: 64,
3
+ saltSecret: process.env.AUTH_SALT ||
4
+ console.error('AUTH_SALT is not defined. You can "npm run cli generateRandomBytes" and use it'),
5
+ isAuthWithVefificationFlow: true,
6
+ };
7
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/config/auth.js"],"names":[],"mappings":"AAAA,eAAe;IACb,UAAU,EAAE,EAAE;IACd,UAAU,EACR,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,OAAO,CAAC,KAAK,CACX,gFAAgF,CACjF;IACH,0BAA0B,EAAE,IAAI;CACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ declare namespace _default {
2
+ let port: string | number;
3
+ let hostname: string;
4
+ let corsDomains: string[];
5
+ let myDomain: string;
6
+ let siteDomain: string;
7
+ }
8
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export default {
2
+ port: process.env.HTTP_PORT || 3300,
3
+ hostname: process.env.HTTP_HOST || '0.0.0.0',
4
+ // if you want to use 'all' domains please copy this file to your app
5
+ // and set "corsDomains: [/./]
6
+ corsDomains: ['http://localhost:3000'],
7
+ myDomain: process.env.HTTP_DOMAIN || 'http://localhost:3300',
8
+ siteDomain: process.env.FRONT_DOMAIN || 'http://localhost:3000',
9
+ };
10
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/config/http.js"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI;IACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS;IAC5C,qEAAqE;IACrE,8BAA8B;IAC9B,WAAW,EAAE,CAAC,uBAAuB,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,uBAAuB;IAC5D,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB;CAChE,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare namespace _default {
2
+ let enabled: boolean;
3
+ let preload: string[];
4
+ let supportedLngs: string[];
5
+ let fallbackLng: string;
6
+ let saveMissing: boolean;
7
+ let debug: boolean;
8
+ let lookupQuerystring: string;
9
+ }
10
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * You can use any options from https://www.i18next.com/overview/configuration-options
3
+ */
4
+ export default {
5
+ enabled: true,
6
+ preload: ['en', 'ru'],
7
+ supportedLngs: ['en', 'ru'], // should be at least one supported
8
+ fallbackLng: 'en',
9
+ saveMissing: false,
10
+ debug: false,
11
+ lookupQuerystring: 'lng', // string to detect language on query
12
+ };
13
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/config/i18n.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAe;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,mCAAmC;IAChE,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,KAAK;IACZ,iBAAiB,EAAE,KAAK,EAAE,qCAAqC;CAChE,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare namespace _default {
2
+ let headers: string[];
3
+ let trustedProxy: string[];
4
+ }
5
+ export default _default;
@@ -0,0 +1,15 @@
1
+ export default {
2
+ headers: ['X-Forwarded-For'],
3
+ trustedProxy: [
4
+ // list of trusted proxies.
5
+ '169.254.0.0/16', // linklocal
6
+ 'fe80::/10', // linklocal
7
+ '127.0.0.1/8', // loopback
8
+ '::1/128', // loopback
9
+ '10.0.0.0/8', // uniquelocal
10
+ '172.16.0.0/12', // uniquelocal
11
+ '192.168.0.0/16', // uniquelocal
12
+ 'fc00::/7', // uniquelocal
13
+ ],
14
+ };
15
+ //# sourceMappingURL=ipDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipDetector.js","sourceRoot":"","sources":["../../src/config/ipDetector.js"],"names":[],"mappings":"AAAA,eAAe;IACb,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,YAAY,EAAE;QACZ,2BAA2B;QAC3B,gBAAgB,EAAE,YAAY;QAC9B,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,WAAW;QAC1B,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,cAAc;QAC5B,eAAe,EAAE,cAAc;QAC/B,gBAAgB,EAAE,cAAc;QAChC,UAAU,EAAE,cAAc;KAC3B;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ declare namespace _default {
2
+ let transports: ({
3
+ transport: string;
4
+ transportOptions: {
5
+ sentry: {
6
+ dsn: string | undefined;
7
+ };
8
+ level: string;
9
+ timestamp?: undefined;
10
+ };
11
+ enable: string | boolean;
12
+ } | {
13
+ transport: string;
14
+ transportOptions: {
15
+ level: string;
16
+ timestamp: boolean;
17
+ sentry?: undefined;
18
+ };
19
+ enable: string | boolean;
20
+ })[];
21
+ }
22
+ export default _default;
@@ -0,0 +1,23 @@
1
+ export default {
2
+ transports: [
3
+ {
4
+ transport: 'winston-transport-sentry-node',
5
+ transportOptions: {
6
+ sentry: {
7
+ dsn: process.env.LOGGER_SENTRY_DSN || process.env.SENTRY_DSN,
8
+ },
9
+ level: process.env.LOGGER_SENTRY_LEVEL || 'info',
10
+ },
11
+ enable: process.env.LOGGER_SENTRY_ENABLE || false,
12
+ },
13
+ {
14
+ transport: 'console',
15
+ transportOptions: {
16
+ level: process.env.LOGGER_CONSOLE_LEVEL || 'silly',
17
+ timestamp: true,
18
+ },
19
+ enable: process.env.LOGGER_CONSOLE_ENABLE || true,
20
+ },
21
+ ],
22
+ };
23
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/config/log.js"],"names":[],"mappings":"AAAA,eAAe;IACb,UAAU,EAAE;QACV;YACE,SAAS,EAAE,+BAA+B;YAC1C,gBAAgB,EAAE;gBAChB,MAAM,EAAE;oBACN,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;iBAC7D;gBACD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;aACjD;YACD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;SAClD;QACD;YACE,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE;gBAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO;gBAClD,SAAS,EAAE,IAAI;aAChB;YACD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI;SAClD;KACF;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ let connectionString: string | undefined;
3
+ }
4
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export default {
2
+ connectionString: process.env.MONGO_DSN,
3
+ };
4
+ //# sourceMappingURL=mongo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/config/mongo.js"],"names":[],"mappings":"AAAA,eAAe;IACb,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;CACxC,CAAC"}
@@ -0,0 +1,15 @@
1
+ declare namespace _default {
2
+ namespace limiterOptions {
3
+ let points: number;
4
+ let duration: number;
5
+ }
6
+ let driver: string;
7
+ let consumePoints: number;
8
+ namespace consumeKeyComponents {
9
+ let ip: boolean;
10
+ let route: boolean;
11
+ let user: boolean;
12
+ let request: never[];
13
+ }
14
+ }
15
+ export default _default;
@@ -0,0 +1,17 @@
1
+ export default {
2
+ limiterOptions: {
3
+ // https://github.com/animir/node-rate-limiter-flexible
4
+ // https://github.com/animir/node-rate-limiter-flexible/wiki/Options
5
+ points: 10, // 10 points
6
+ duration: 60, // Per 60 seconds
7
+ },
8
+ driver: 'memory', // can be 'mongo', 'redis'
9
+ consumePoints: 1,
10
+ consumeKeyComponents: {
11
+ ip: true, // include ip to key generation
12
+ route: true, // include route to key generation
13
+ user: true, // include user id to key generation (if user exits)
14
+ request: [], // what should be included from request (req.appInfo.request) if it presented
15
+ },
16
+ };
17
+ //# sourceMappingURL=rateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../src/config/rateLimiter.js"],"names":[],"mappings":"AAAA,eAAe;IACb,cAAc,EAAE;QACd,uDAAuD;QACvD,oEAAoE;QACpE,MAAM,EAAE,EAAE,EAAE,YAAY;QACxB,QAAQ,EAAE,EAAE,EAAE,iBAAiB;KAChC;IACD,MAAM,EAAE,QAAQ,EAAE,0BAA0B;IAC5C,aAAa,EAAE,CAAC;IAChB,oBAAoB,EAAE;QACpB,EAAE,EAAE,IAAI,EAAE,+BAA+B;QACzC,KAAK,EAAE,IAAI,EAAE,kCAAkC;QAC/C,IAAI,EAAE,IAAI,EAAE,oDAAoD;QAChE,OAAO,EAAE,EAAE,EAAE,6EAA6E;KAC3F;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare namespace _default {
2
+ let url: string;
3
+ let namespace: string;
4
+ }
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ export default {
2
+ url: process.env.REDIS_URI || 'redis://localhost',
3
+ namespace: process.env.REDIS_NAMESPACE || 'main',
4
+ };
5
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/config/redis.js"],"names":[],"mappings":"AAAA,eAAe;IACb,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,mBAAmB;IACjD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM;CACjD,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ let controllerValidationAbortEarly: boolean;
3
+ }
4
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export default {
2
+ controllerValidationAbortEarly: true, // abort validation on first error and return first error
3
+ };
4
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/config/validate.js"],"names":[],"mappings":"AAAA,eAAe;IACb,8BAA8B,EAAE,IAAI,EAAE,yDAAyD;CAChG,CAAC"}
@@ -0,0 +1,74 @@
1
+ import AbstractController from '../modules/AbstractController.ts';
2
+ import GetUserByToken from '../services/http/middleware/GetUserByToken.ts';
3
+ import RateLimiter from '../services/http/middleware/RateLimiter.ts';
4
+ import type { Response } from 'express';
5
+ import type { FrameworkRequest } from '../services/http/HttpServer.ts';
6
+ declare class Auth extends AbstractController {
7
+ get routes(): {
8
+ post: {
9
+ '/login': {
10
+ handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
11
+ request: import("yup").ObjectSchema<{
12
+ email: string;
13
+ password: string;
14
+ }, import("yup").AnyObject, {
15
+ email: undefined;
16
+ password: undefined;
17
+ }, "">;
18
+ };
19
+ '/register': {
20
+ handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
21
+ request: import("yup").ObjectSchema<{
22
+ email: string;
23
+ password: string;
24
+ nickName: string | undefined;
25
+ firstName: string | undefined;
26
+ lastName: string | undefined;
27
+ }, import("yup").AnyObject, {
28
+ email: undefined;
29
+ password: undefined;
30
+ nickName: undefined;
31
+ firstName: undefined;
32
+ lastName: undefined;
33
+ }, "">;
34
+ };
35
+ '/logout': (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
36
+ '/verify': (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
37
+ '/send-recovery-email': {
38
+ handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
39
+ request: import("yup").ObjectSchema<{
40
+ email: string;
41
+ }, import("yup").AnyObject, {
42
+ email: undefined;
43
+ }, "">;
44
+ };
45
+ '/recover-password': {
46
+ handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
47
+ request: import("yup").ObjectSchema<{
48
+ password: string;
49
+ passwordRecoveryToken: string;
50
+ }, import("yup").AnyObject, {
51
+ password: undefined;
52
+ passwordRecoveryToken: undefined;
53
+ }, "">;
54
+ };
55
+ '/send-verification': {
56
+ handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
57
+ request: import("yup").ObjectSchema<{
58
+ email: string;
59
+ }, import("yup").AnyObject, {
60
+ email: undefined;
61
+ }, "">;
62
+ };
63
+ };
64
+ };
65
+ postLogin(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
66
+ postRegister(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
67
+ postLogout(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
68
+ verifyUser(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
69
+ sendPasswordRecoveryEmail(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
70
+ recoverPassword(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
71
+ sendVerification(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
72
+ static get middleware(): Map<string, (typeof GetUserByToken | typeof RateLimiter)[]>;
73
+ }
74
+ export default Auth;