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

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 (298) hide show
  1. package/CHANGELOG.md +1107 -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/yup.d.ts +13 -0
  91. package/dist/helpers/yup.js +21 -0
  92. package/dist/helpers/yup.js.map +1 -0
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.js +7 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/models/Lock.d.ts +90 -0
  97. package/dist/models/Lock.js +97 -0
  98. package/dist/models/Lock.js.map +1 -0
  99. package/dist/models/Migration.d.ts +13 -0
  100. package/dist/models/Migration.js +14 -0
  101. package/dist/models/Migration.js.map +1 -0
  102. package/dist/models/Sequence.d.ts +28 -0
  103. package/dist/models/Sequence.js +19 -0
  104. package/dist/models/Sequence.js.map +1 -0
  105. package/dist/models/User.d.ts +656 -0
  106. package/dist/models/User.js +291 -0
  107. package/dist/models/User.js.map +1 -0
  108. package/dist/models/UserOld.d.ts +179 -0
  109. package/dist/models/UserOld.js +230 -0
  110. package/dist/models/UserOld.js.map +1 -0
  111. package/dist/modules/AbstractCommand.d.ts +51 -0
  112. package/dist/modules/AbstractCommand.js +60 -0
  113. package/dist/modules/AbstractCommand.js.map +1 -0
  114. package/dist/modules/AbstractConnector.d.ts +5 -0
  115. package/dist/modules/AbstractConnector.js +8 -0
  116. package/dist/modules/AbstractConnector.js.map +1 -0
  117. package/dist/modules/AbstractController.d.ts +94 -0
  118. package/dist/modules/AbstractController.js +323 -0
  119. package/dist/modules/AbstractController.js.map +1 -0
  120. package/dist/modules/AbstractModel.d.ts +29 -0
  121. package/dist/modules/AbstractModel.js +42 -0
  122. package/dist/modules/AbstractModel.js.map +1 -0
  123. package/dist/modules/Base.d.ts +29 -0
  124. package/dist/modules/Base.js +58 -0
  125. package/dist/modules/Base.js.map +1 -0
  126. package/dist/modules/BaseCli.d.ts +25 -0
  127. package/dist/modules/BaseCli.js +147 -0
  128. package/dist/modules/BaseCli.js.map +1 -0
  129. package/dist/modules/BaseModel.d.ts +55 -0
  130. package/dist/modules/BaseModel.js +37 -0
  131. package/dist/modules/BaseModel.js.map +1 -0
  132. package/dist/server.d.ts +123 -0
  133. package/dist/server.js +468 -0
  134. package/dist/server.js.map +1 -0
  135. package/dist/services/cache/Cache.d.ts +31 -0
  136. package/dist/services/cache/Cache.js +113 -0
  137. package/dist/services/cache/Cache.js.map +1 -0
  138. package/dist/services/documentation/DocumentationGenerator.d.ts +11 -0
  139. package/dist/services/documentation/DocumentationGenerator.js +130 -0
  140. package/dist/services/documentation/DocumentationGenerator.js.map +1 -0
  141. package/dist/services/http/HttpServer.d.ts +35 -0
  142. package/dist/services/http/HttpServer.js +70 -0
  143. package/dist/services/http/HttpServer.js.map +1 -0
  144. package/dist/services/http/middleware/AbstractMiddleware.d.ts +25 -0
  145. package/dist/services/http/middleware/AbstractMiddleware.js +41 -0
  146. package/dist/services/http/middleware/AbstractMiddleware.js.map +1 -0
  147. package/dist/services/http/middleware/Auth.d.ts +9 -0
  148. package/dist/services/http/middleware/Auth.js +18 -0
  149. package/dist/services/http/middleware/Auth.js.map +1 -0
  150. package/dist/services/http/middleware/Cors.d.ts +12 -0
  151. package/dist/services/http/middleware/Cors.js +36 -0
  152. package/dist/services/http/middleware/Cors.js.map +1 -0
  153. package/dist/services/http/middleware/GetUserByToken.d.ts +20 -0
  154. package/dist/services/http/middleware/GetUserByToken.js +39 -0
  155. package/dist/services/http/middleware/GetUserByToken.js.map +1 -0
  156. package/dist/services/http/middleware/I18n.d.ts +23 -0
  157. package/dist/services/http/middleware/I18n.js +61 -0
  158. package/dist/services/http/middleware/I18n.js.map +1 -0
  159. package/dist/services/http/middleware/IpDetector.d.ts +14 -0
  160. package/dist/services/http/middleware/IpDetector.js +55 -0
  161. package/dist/services/http/middleware/IpDetector.js.map +1 -0
  162. package/dist/services/http/middleware/Pagination.d.ts +27 -0
  163. package/dist/services/http/middleware/Pagination.js +46 -0
  164. package/dist/services/http/middleware/Pagination.js.map +1 -0
  165. package/dist/services/http/middleware/PrepareAppInfo.d.ts +8 -0
  166. package/dist/services/http/middleware/PrepareAppInfo.js +17 -0
  167. package/dist/services/http/middleware/PrepareAppInfo.js.map +1 -0
  168. package/dist/services/http/middleware/RateLimiter.d.ts +26 -0
  169. package/dist/services/http/middleware/RateLimiter.js +118 -0
  170. package/dist/services/http/middleware/RateLimiter.js.map +1 -0
  171. package/dist/services/http/middleware/RequestLogger.d.ts +8 -0
  172. package/dist/services/http/middleware/RequestLogger.js +18 -0
  173. package/dist/services/http/middleware/RequestLogger.js.map +1 -0
  174. package/dist/services/http/middleware/RequestParser.d.ts +8 -0
  175. package/dist/services/http/middleware/RequestParser.js +35 -0
  176. package/dist/services/http/middleware/RequestParser.js.map +1 -0
  177. package/dist/services/http/middleware/Role.d.ts +12 -0
  178. package/dist/services/http/middleware/Role.js +24 -0
  179. package/dist/services/http/middleware/Role.js.map +1 -0
  180. package/dist/services/i18n/I18n.d.ts +15 -0
  181. package/dist/services/i18n/I18n.js +58 -0
  182. package/dist/services/i18n/I18n.js.map +1 -0
  183. package/dist/services/logging/SentryTransport.d.ts +14 -0
  184. package/dist/services/logging/SentryTransport.js +57 -0
  185. package/dist/services/logging/SentryTransport.js.map +1 -0
  186. package/dist/services/validate/ValidateService.d.ts +31 -0
  187. package/dist/services/validate/ValidateService.js +95 -0
  188. package/dist/services/validate/ValidateService.js.map +1 -0
  189. package/dist/services/validate/drivers/AbstractValidator.d.ts +14 -0
  190. package/dist/services/validate/drivers/AbstractValidator.js +29 -0
  191. package/dist/services/validate/drivers/AbstractValidator.js.map +1 -0
  192. package/dist/services/validate/drivers/CustomValidator.d.ts +14 -0
  193. package/dist/services/validate/drivers/CustomValidator.js +48 -0
  194. package/dist/services/validate/drivers/CustomValidator.js.map +1 -0
  195. package/dist/services/validate/drivers/YupValidator.d.ts +13 -0
  196. package/dist/services/validate/drivers/YupValidator.js +86 -0
  197. package/dist/services/validate/drivers/YupValidator.js.map +1 -0
  198. package/dist/tests/frameworkVitestSetup.d.ts +1 -0
  199. package/dist/tests/frameworkVitestSetup.js +9 -0
  200. package/dist/tests/frameworkVitestSetup.js.map +1 -0
  201. package/dist/tests/globalSetupVitest.d.ts +3 -0
  202. package/dist/tests/globalSetupVitest.js +29 -0
  203. package/dist/tests/globalSetupVitest.js.map +1 -0
  204. package/dist/tests/setupVitest.d.ts +1 -0
  205. package/dist/tests/setupVitest.js +91 -0
  206. package/dist/tests/setupVitest.js.map +1 -0
  207. package/dist/tests/testHelpers.d.ts +340 -0
  208. package/dist/tests/testHelpers.js +48 -0
  209. package/dist/tests/testHelpers.js.map +1 -0
  210. package/package.json +45 -39
  211. package/Cli.js +0 -22
  212. package/cluster.js +0 -27
  213. package/commands/CreateUser.js +0 -75
  214. package/commands/Documentation.js +0 -17
  215. package/commands/DropIndex.js +0 -29
  216. package/commands/GenerateRandomBytes.js +0 -21
  217. package/commands/GetOpenApiJson.js +0 -325
  218. package/commands/SyncIndexes.js +0 -39
  219. package/commands/migration/Create.js +0 -61
  220. package/commands/migration/Migrate.js +0 -55
  221. package/config/auth.js +0 -9
  222. package/config/http.js +0 -9
  223. package/config/i18n.js +0 -12
  224. package/config/ipDetector.js +0 -14
  225. package/config/log.js +0 -22
  226. package/config/mail.js +0 -29
  227. package/config/mongo.js +0 -3
  228. package/config/rateLimiter.js +0 -16
  229. package/config/redis.js +0 -4
  230. package/config/validate.js +0 -3
  231. package/controllers/Auth.js +0 -210
  232. package/controllers/Home.js +0 -28
  233. package/controllers/index.js +0 -60
  234. package/folderConfig.js +0 -14
  235. package/helpers/files.js +0 -79
  236. package/helpers/logger.js +0 -17
  237. package/helpers/redis/clearNamespace.js +0 -14
  238. package/helpers/yup.js +0 -24
  239. package/index.js +0 -8
  240. package/jsconfig.json +0 -9
  241. package/locales/en/translation.json +0 -27
  242. package/locales/ru/translation.json +0 -27
  243. package/migrations/.gitkeep +0 -0
  244. package/models/Migration.js +0 -15
  245. package/models/Sequence.js +0 -22
  246. package/models/User.js +0 -263
  247. package/modules/AbstractCommand.js +0 -43
  248. package/modules/AbstractConnector.js +0 -9
  249. package/modules/AbstractController.js +0 -413
  250. package/modules/AbstractModel.d.ts +0 -48
  251. package/modules/AbstractModel.js +0 -92
  252. package/modules/Base.d.ts +0 -37
  253. package/modules/Base.js +0 -63
  254. package/modules/BaseCli.js +0 -97
  255. package/server.d.ts +0 -98
  256. package/server.js +0 -438
  257. package/services/cache/Cache.d.ts +0 -35
  258. package/services/cache/Cache.js +0 -124
  259. package/services/documentation/DocumentationGenerator.js +0 -169
  260. package/services/http/HttpServer.js +0 -96
  261. package/services/http/middleware/AbstractMiddleware.js +0 -51
  262. package/services/http/middleware/Auth.js +0 -20
  263. package/services/http/middleware/Cors.js +0 -46
  264. package/services/http/middleware/GetUserByToken.js +0 -47
  265. package/services/http/middleware/I18n.js +0 -117
  266. package/services/http/middleware/IpDetector.js +0 -59
  267. package/services/http/middleware/Pagination.js +0 -57
  268. package/services/http/middleware/PrepareAppInfo.js +0 -18
  269. package/services/http/middleware/RateLimiter.js +0 -134
  270. package/services/http/middleware/RequestLogger.js +0 -22
  271. package/services/http/middleware/RequestParser.js +0 -40
  272. package/services/http/middleware/Role.js +0 -29
  273. package/services/messaging/email/index.js +0 -217
  274. package/services/messaging/email/resources/.gitkeep +0 -1
  275. package/services/messaging/email/templates/emptyTemplate/html.pug +0 -9
  276. package/services/messaging/email/templates/emptyTemplate/subject.pug +0 -1
  277. package/services/messaging/email/templates/emptyTemplate/text.pug +0 -1
  278. package/services/messaging/email/templates/recovery/html.pug +0 -8
  279. package/services/messaging/email/templates/recovery/subject.pug +0 -2
  280. package/services/messaging/email/templates/recovery/text.pug +0 -3
  281. package/services/messaging/email/templates/verification/html.pug +0 -10
  282. package/services/messaging/email/templates/verification/subject.pug +0 -1
  283. package/services/messaging/email/templates/verification/text.pug +0 -1
  284. package/services/messaging/index.js +0 -3
  285. package/services/validate/ValidateService.js +0 -157
  286. package/services/validate/drivers/AbstractValidator.js +0 -37
  287. package/services/validate/drivers/CustomValidator.js +0 -51
  288. package/services/validate/drivers/YupValidator.js +0 -103
  289. package/tests/globalSetupVitest.js +0 -35
  290. package/tests/setup.js +0 -118
  291. package/tests/setupVitest.js +0 -109
  292. package/types/Expand.d.ts +0 -11
  293. package/types/TFoldersConfig.d.ts +0 -17
  294. package/views/404.pug +0 -3
  295. package/views/home.pug +0 -3
  296. package/views/layouts/base.pug +0 -39
  297. package/vitest.config.js +0 -16
  298. /package/{commands → dist/migrations}/.gitkeep +0 -0
package/models/User.js DELETED
@@ -1,263 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
-
3
- import { scrypt } from 'node:crypto';
4
-
5
- import { promisify } from 'node:util';
6
- import AbstractModel from '../modules/AbstractModel.js';
7
-
8
- class User extends AbstractModel {
9
- constructor(app) {
10
- super(app);
11
- const authConfig = this.app.getConfig('auth');
12
- this.hashRounds = authConfig.hashRounds;
13
- this.saltSecret = authConfig.saltSecret;
14
- }
15
-
16
- initHooks() {
17
- this.mongooseSchema.pre('save', async function userPreSaveHook() {
18
- if (this.isModified('password')) {
19
- this.password = await this.constructor.hashPassword(this.password);
20
- }
21
- });
22
- }
23
-
24
- // eslint-disable-next-line class-methods-use-this
25
- get modelSchema() {
26
- return {
27
- avatar: {
28
- type: String,
29
- maxlength: 255,
30
- },
31
- name: {
32
- first: {
33
- type: String,
34
- maxlength: 255,
35
- },
36
- last: {
37
- type: String,
38
- maxlength: 255,
39
- },
40
- nick: {
41
- minlength: 3,
42
- maxlength: 255,
43
- type: String,
44
- index: {
45
- unique: true,
46
- partialFilterExpression: { 'name.nick': { $type: 'string' } },
47
- },
48
- },
49
- },
50
- password: String,
51
- email: {
52
- type: String,
53
- maxlength: 255,
54
- index: {
55
- unique: true,
56
- partialFilterExpression: { email: { $type: 'string' } },
57
- },
58
- },
59
- sessionTokens: [{ token: String, valid: Date }],
60
- verificationTokens: [{ until: Date, token: String }],
61
- passwordRecoveryTokens: [{ until: Date, token: String }],
62
- permissions: [],
63
- roles: [],
64
- isVerified: { type: Boolean, default: false },
65
- locale: { type: String, default: 'en' },
66
- languages: [String],
67
- };
68
- }
69
-
70
- static async getUserByEmailAndPassword(email, password) {
71
- const data = await this.findOne({ email: String(email) });
72
- if (!data) {
73
- return false;
74
- }
75
- const hashedPasswords = await this.hashPassword(password);
76
-
77
- if (data.password !== hashedPasswords) {
78
- return false;
79
- }
80
- return data;
81
- }
82
-
83
- async generateToken() {
84
- const timestamp = new Date();
85
- timestamp.setDate(timestamp.getDate() + 30);
86
- const scryptAsync = promisify(scrypt);
87
- const data = await scryptAsync(
88
- this.email + Date.now(),
89
- this.getSuper().saltSecret,
90
- this.getSuper().hashRounds,
91
- );
92
- const token = data.toString('base64url');
93
- this.sessionTokens.push({ token, valid: timestamp });
94
- await this.save();
95
- return { token, valid: timestamp };
96
- }
97
-
98
- getPublic() {
99
- return {
100
- avatar: this.avatar,
101
- name: this.name,
102
- email: this.email,
103
- id: this.id,
104
- isVerified: this.isVerified,
105
- permissions: this.permissions,
106
- locale: this.locale,
107
- };
108
- }
109
-
110
- static async hashPassword(password) {
111
- const scryptAsync = promisify(scrypt);
112
- const data = await scryptAsync(
113
- String(password),
114
- this.getSuper().saltSecret,
115
- this.getSuper().hashRounds,
116
- );
117
- return data.toString('base64url');
118
- }
119
-
120
- static async getUserByToken(token) {
121
- const data = await this.findOne({ 'sessionTokens.token': String(token) });
122
- return data || false;
123
- }
124
-
125
- static async getUserByEmail(email) {
126
- const data = await this.findOne({ email: String(email) });
127
- if (!data) {
128
- return false;
129
- }
130
- return data;
131
- }
132
-
133
- static async generateUserPasswordRecoveryToken(userMongoose) {
134
- const date = new Date();
135
- date.setDate(date.getDate() + 14);
136
- const scryptAsync = promisify(scrypt);
137
- const data = await scryptAsync(
138
- userMongoose.email + Date.now(),
139
- userMongoose.getSuper().saltSecret,
140
- userMongoose.getSuper().hashRounds,
141
- );
142
- const token = data.toString('base64url');
143
- // if (err) {
144
- // this.logger.error("Hash 2 error ", err);
145
- // reject(err);
146
- // return;
147
- // }
148
- userMongoose.passwordRecoveryTokens = [];
149
- userMongoose.passwordRecoveryTokens.push({
150
- until: date,
151
- token,
152
- });
153
- await userMongoose.save();
154
- return { token, until: date.getTime() };
155
- }
156
-
157
- static async getUserByPasswordRecoveryToken(passwordRecoveryToken) {
158
- const data = await this.findOne({
159
- passwordRecoveryTokens: {
160
- $elemMatch: { token: String(passwordRecoveryToken) },
161
- },
162
- });
163
- if (!data) {
164
- return Promise.reject(new Error('User not exists'));
165
- }
166
- // TODO token expiration and remove that token
167
-
168
- data.passwordRecoveryTokens.pop();
169
-
170
- const result = await data.save();
171
- return result;
172
- }
173
-
174
- async sendPasswordRecoveryEmail(i18n) {
175
- const passwordRecoveryToken =
176
- await User.generateUserPasswordRecoveryToken(this);
177
- // speed optimisation
178
- const Mailer = (await import('../services/messaging/email/index.js'))
179
- .default;
180
-
181
- const mail = new Mailer(
182
- this.getSuper().app,
183
- 'recovery',
184
- {
185
- link: `${i18n.language}/auth/recovery?password_recovery_token=${passwordRecoveryToken.token}`,
186
- editor: this.name.nick,
187
- },
188
- i18n,
189
- );
190
- return mail.send(this.email);
191
- }
192
-
193
- static async generateUserVerificationToken(userMongoose) {
194
- const date = new Date();
195
- date.setDate(date.getDate() + 14);
196
- const scryptAsync = promisify(scrypt);
197
- const data = await scryptAsync(
198
- userMongoose.email + Date.now(),
199
- userMongoose.getSuper().saltSecret,
200
- userMongoose.getSuper().hashRounds,
201
- );
202
- const token = data.toString('base64url');
203
- // if (err) {
204
- // this.logger.error("Hash 2 error ", err);
205
- // reject(err);
206
- // return;
207
- // }
208
- userMongoose.verificationTokens = [];
209
- userMongoose.verificationTokens.push({
210
- until: date,
211
- token,
212
- });
213
- await userMongoose.save();
214
- return { token, until: date.getTime() };
215
- }
216
-
217
- static async getUserByVerificationToken(verificationToken) {
218
- const data = await this.findOne({
219
- verificationTokens: {
220
- $elemMatch: { token: String(verificationToken) },
221
- },
222
- });
223
- if (!data) {
224
- return Promise.reject(new Error('User not exists'));
225
- }
226
- // TODO token expiration and remove that token
227
-
228
- data.verificationTokens.pop();
229
-
230
- const result = await data.save();
231
- return result;
232
- }
233
-
234
- // async removeVerificationToken(verificationToken) {
235
- // this.mongooseModel.updateOne(
236
- // {
237
- // verificationTokens: {
238
- // $elemMatch: { token: String(verificationToken) },
239
- // },
240
- // },
241
- // { $pop: { verificationTokens: 1 } },
242
- // );
243
- // }
244
-
245
- async sendVerificationEmail(i18n) {
246
- const verificationToken = await User.generateUserVerificationToken(this);
247
- // speed optimisation
248
- const Mailer = (await import('../services/messaging/email/index.js'))
249
- .default;
250
- const mail = new Mailer(
251
- this.getSuper().app,
252
- 'verification',
253
- {
254
- link: `${i18n.language}/auth/login?verification_token=${verificationToken.token}`,
255
- editor: this.name.nick,
256
- },
257
- i18n,
258
- );
259
- return mail.send(this.email);
260
- }
261
- }
262
-
263
- export default User;
@@ -1,43 +0,0 @@
1
- import Base from './Base.js';
2
-
3
- class AbstractCommand extends Base {
4
- constructor(app, commands, args) {
5
- super(app);
6
- this.args = args;
7
- this.commands = commands;
8
- }
9
-
10
- static get description() {
11
- return 'Command description. PLEASE PROVIDE IT';
12
- }
13
-
14
- /**
15
- * If true, then this command will load models and init mongo connection
16
- */
17
- static isShouldInitModels = true;
18
-
19
- /**
20
- * Get mongo connection name
21
- * @param {String} commandName
22
- * @param {object} args
23
- * @returns string
24
- */
25
- static getMongoConnectionName(commandName, args) {
26
- return `CLI: ${commandName} ${JSON.stringify(args)}`;
27
- }
28
-
29
- /**
30
- * Entry point to every command. This method should be overridden
31
- * @return {Promise<boolean>} resut
32
- */
33
- async run() {
34
- this.logger.error('You should implement run method');
35
- return false;
36
- }
37
-
38
- static get loggerGroup() {
39
- return 'command';
40
- }
41
- }
42
-
43
- export default AbstractCommand;
@@ -1,9 +0,0 @@
1
- import Base from './Base.js';
2
-
3
- class AbstractConnector extends Base {
4
- static get loggerGroup() {
5
- return 'connector';
6
- }
7
- }
8
-
9
- export default AbstractConnector;