@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
@@ -0,0 +1,656 @@
1
+ import type { TFunction } from 'i18next';
2
+ import type { Schema } from 'mongoose';
3
+ import type { ExtractProperty, GetModelTypeFromClass, GetModelTypeLiteFromSchema } from '../modules/BaseModel.ts';
4
+ import { BaseModel } from '../modules/BaseModel.ts';
5
+ export type UserModelLite = GetModelTypeLiteFromSchema<typeof User.modelSchema, ExtractProperty<typeof User, 'schemaOptions'>>;
6
+ export type TUser = GetModelTypeFromClass<typeof User>;
7
+ declare class User extends BaseModel {
8
+ static initHooks(schema: Schema): void;
9
+ static get modelSchema(): {
10
+ readonly avatar: {
11
+ readonly type: StringConstructor;
12
+ readonly maxlength: 255;
13
+ };
14
+ readonly name: {
15
+ readonly first: {
16
+ readonly type: StringConstructor;
17
+ readonly maxlength: 255;
18
+ };
19
+ readonly last: {
20
+ readonly type: StringConstructor;
21
+ readonly maxlength: 255;
22
+ };
23
+ readonly nick: {
24
+ readonly minlength: 3;
25
+ readonly maxlength: 255;
26
+ readonly type: StringConstructor;
27
+ readonly index: {
28
+ readonly unique: true;
29
+ readonly partialFilterExpression: {
30
+ readonly 'name.nick': {
31
+ readonly $type: "string";
32
+ };
33
+ };
34
+ };
35
+ };
36
+ };
37
+ readonly password: StringConstructor;
38
+ readonly email: {
39
+ readonly type: StringConstructor;
40
+ readonly maxlength: 255;
41
+ readonly index: {
42
+ readonly unique: true;
43
+ readonly partialFilterExpression: {
44
+ readonly email: {
45
+ readonly $type: "string";
46
+ };
47
+ };
48
+ };
49
+ };
50
+ readonly sessionTokens: readonly [{
51
+ readonly token: StringConstructor;
52
+ readonly valid: DateConstructor;
53
+ }];
54
+ readonly verificationTokens: readonly [{
55
+ readonly until: DateConstructor;
56
+ readonly token: StringConstructor;
57
+ }];
58
+ readonly passwordRecoveryTokens: readonly [{
59
+ readonly until: DateConstructor;
60
+ readonly token: StringConstructor;
61
+ }];
62
+ readonly permissions: readonly [StringConstructor];
63
+ readonly roles: readonly [StringConstructor];
64
+ readonly isVerified: {
65
+ readonly type: BooleanConstructor;
66
+ readonly default: false;
67
+ };
68
+ readonly locale: {
69
+ readonly type: StringConstructor;
70
+ readonly default: "en";
71
+ };
72
+ readonly languages: readonly [StringConstructor];
73
+ };
74
+ static get modelStatics(): {
75
+ /**
76
+ * Get user by email and password
77
+ * @param {string} email
78
+ * @param {string} password
79
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
80
+ */
81
+ readonly getUserByEmailAndPassword: <T extends UserModelLite>(this: T, email: string, password: string) => Promise<false | InstanceType<T>>;
82
+ /**
83
+ * Get user by token
84
+ * @param {string}
85
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
86
+ */
87
+ readonly getUserByToken: (this: UserModelLite, token: string) => Promise<false | (import("mongoose").Document<unknown, {}, {
88
+ isVerified: boolean;
89
+ locale: string;
90
+ name?: {
91
+ first?: string | null | undefined;
92
+ last?: string | null | undefined;
93
+ nick?: string | null | undefined;
94
+ } | null | undefined;
95
+ createdAt?: NativeDate | null | undefined;
96
+ updatedAt?: NativeDate | null | undefined;
97
+ avatar?: string | null | undefined;
98
+ password?: string | null | undefined;
99
+ email?: string | null | undefined;
100
+ sessionTokens?: {
101
+ token?: string | null | undefined;
102
+ valid?: NativeDate | null | undefined;
103
+ }[] | null | undefined;
104
+ verificationTokens?: {
105
+ token?: string | null | undefined;
106
+ until?: NativeDate | null | undefined;
107
+ }[] | null | undefined;
108
+ passwordRecoveryTokens?: {
109
+ token?: string | null | undefined;
110
+ until?: NativeDate | null | undefined;
111
+ }[] | null | undefined;
112
+ permissions?: string[] | null | undefined;
113
+ roles?: string[] | null | undefined;
114
+ languages?: string[] | null | undefined;
115
+ }, {}, {}> & {
116
+ isVerified: boolean;
117
+ locale: string;
118
+ name?: {
119
+ first?: string | null | undefined;
120
+ last?: string | null | undefined;
121
+ nick?: string | null | undefined;
122
+ } | null | undefined;
123
+ createdAt?: NativeDate | null | undefined;
124
+ updatedAt?: NativeDate | null | undefined;
125
+ avatar?: string | null | undefined;
126
+ password?: string | null | undefined;
127
+ email?: string | null | undefined;
128
+ sessionTokens?: {
129
+ token?: string | null | undefined;
130
+ valid?: NativeDate | null | undefined;
131
+ }[] | null | undefined;
132
+ verificationTokens?: {
133
+ token?: string | null | undefined;
134
+ until?: NativeDate | null | undefined;
135
+ }[] | null | undefined;
136
+ passwordRecoveryTokens?: {
137
+ token?: string | null | undefined;
138
+ until?: NativeDate | null | undefined;
139
+ }[] | null | undefined;
140
+ permissions?: string[] | null | undefined;
141
+ roles?: string[] | null | undefined;
142
+ languages?: string[] | null | undefined;
143
+ } & {
144
+ _id: import("mongoose").Types.ObjectId;
145
+ } & {
146
+ __v: number;
147
+ })>;
148
+ /**
149
+ * Get user by email
150
+ * @param {string}
151
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
152
+ */
153
+ readonly getUserByEmail: (this: UserModelLite, email: string) => Promise<false | (import("mongoose").Document<unknown, {}, {
154
+ isVerified: boolean;
155
+ locale: string;
156
+ name?: {
157
+ first?: string | null | undefined;
158
+ last?: string | null | undefined;
159
+ nick?: string | null | undefined;
160
+ } | null | undefined;
161
+ createdAt?: NativeDate | null | undefined;
162
+ updatedAt?: NativeDate | null | undefined;
163
+ avatar?: string | null | undefined;
164
+ password?: string | null | undefined;
165
+ email?: string | null | undefined;
166
+ sessionTokens?: {
167
+ token?: string | null | undefined;
168
+ valid?: NativeDate | null | undefined;
169
+ }[] | null | undefined;
170
+ verificationTokens?: {
171
+ token?: string | null | undefined;
172
+ until?: NativeDate | null | undefined;
173
+ }[] | null | undefined;
174
+ passwordRecoveryTokens?: {
175
+ token?: string | null | undefined;
176
+ until?: NativeDate | null | undefined;
177
+ }[] | null | undefined;
178
+ permissions?: string[] | null | undefined;
179
+ roles?: string[] | null | undefined;
180
+ languages?: string[] | null | undefined;
181
+ }, {}, {}> & {
182
+ isVerified: boolean;
183
+ locale: string;
184
+ name?: {
185
+ first?: string | null | undefined;
186
+ last?: string | null | undefined;
187
+ nick?: string | null | undefined;
188
+ } | null | undefined;
189
+ createdAt?: NativeDate | null | undefined;
190
+ updatedAt?: NativeDate | null | undefined;
191
+ avatar?: string | null | undefined;
192
+ password?: string | null | undefined;
193
+ email?: string | null | undefined;
194
+ sessionTokens?: {
195
+ token?: string | null | undefined;
196
+ valid?: NativeDate | null | undefined;
197
+ }[] | null | undefined;
198
+ verificationTokens?: {
199
+ token?: string | null | undefined;
200
+ until?: NativeDate | null | undefined;
201
+ }[] | null | undefined;
202
+ passwordRecoveryTokens?: {
203
+ token?: string | null | undefined;
204
+ until?: NativeDate | null | undefined;
205
+ }[] | null | undefined;
206
+ permissions?: string[] | null | undefined;
207
+ roles?: string[] | null | undefined;
208
+ languages?: string[] | null | undefined;
209
+ } & {
210
+ _id: import("mongoose").Types.ObjectId;
211
+ } & {
212
+ __v: number;
213
+ })>;
214
+ /**
215
+ * Get user by password recovery token
216
+ * @param {string} passwordRecoveryToken
217
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
218
+ */
219
+ readonly getUserByPasswordRecoveryToken: (this: UserModelLite, passwordRecoveryToken: string) => Promise<import("mongoose").Document<unknown, {}, {
220
+ isVerified: boolean;
221
+ locale: string;
222
+ name?: {
223
+ first?: string | null | undefined;
224
+ last?: string | null | undefined;
225
+ nick?: string | null | undefined;
226
+ } | null | undefined;
227
+ createdAt?: NativeDate | null | undefined;
228
+ updatedAt?: NativeDate | null | undefined;
229
+ avatar?: string | null | undefined;
230
+ password?: string | null | undefined;
231
+ email?: string | null | undefined;
232
+ sessionTokens?: {
233
+ token?: string | null | undefined;
234
+ valid?: NativeDate | null | undefined;
235
+ }[] | null | undefined;
236
+ verificationTokens?: {
237
+ token?: string | null | undefined;
238
+ until?: NativeDate | null | undefined;
239
+ }[] | null | undefined;
240
+ passwordRecoveryTokens?: {
241
+ token?: string | null | undefined;
242
+ until?: NativeDate | null | undefined;
243
+ }[] | null | undefined;
244
+ permissions?: string[] | null | undefined;
245
+ roles?: string[] | null | undefined;
246
+ languages?: string[] | null | undefined;
247
+ }, {}, {}> & {
248
+ isVerified: boolean;
249
+ locale: string;
250
+ name?: {
251
+ first?: string | null | undefined;
252
+ last?: string | null | undefined;
253
+ nick?: string | null | undefined;
254
+ } | null | undefined;
255
+ createdAt?: NativeDate | null | undefined;
256
+ updatedAt?: NativeDate | null | undefined;
257
+ avatar?: string | null | undefined;
258
+ password?: string | null | undefined;
259
+ email?: string | null | undefined;
260
+ sessionTokens?: {
261
+ token?: string | null | undefined;
262
+ valid?: NativeDate | null | undefined;
263
+ }[] | null | undefined;
264
+ verificationTokens?: {
265
+ token?: string | null | undefined;
266
+ until?: NativeDate | null | undefined;
267
+ }[] | null | undefined;
268
+ passwordRecoveryTokens?: {
269
+ token?: string | null | undefined;
270
+ until?: NativeDate | null | undefined;
271
+ }[] | null | undefined;
272
+ permissions?: string[] | null | undefined;
273
+ roles?: string[] | null | undefined;
274
+ languages?: string[] | null | undefined;
275
+ } & {
276
+ _id: import("mongoose").Types.ObjectId;
277
+ } & {
278
+ __v: number;
279
+ }>;
280
+ /**
281
+ * Get user by verification token
282
+ * @param {string} verificationToken
283
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
284
+ */
285
+ readonly getUserByVerificationToken: (this: UserModelLite, verificationToken: string) => Promise<import("mongoose").Document<unknown, {}, {
286
+ isVerified: boolean;
287
+ locale: string;
288
+ name?: {
289
+ first?: string | null | undefined;
290
+ last?: string | null | undefined;
291
+ nick?: string | null | undefined;
292
+ } | null | undefined;
293
+ createdAt?: NativeDate | null | undefined;
294
+ updatedAt?: NativeDate | null | undefined;
295
+ avatar?: string | null | undefined;
296
+ password?: string | null | undefined;
297
+ email?: string | null | undefined;
298
+ sessionTokens?: {
299
+ token?: string | null | undefined;
300
+ valid?: NativeDate | null | undefined;
301
+ }[] | null | undefined;
302
+ verificationTokens?: {
303
+ token?: string | null | undefined;
304
+ until?: NativeDate | null | undefined;
305
+ }[] | null | undefined;
306
+ passwordRecoveryTokens?: {
307
+ token?: string | null | undefined;
308
+ until?: NativeDate | null | undefined;
309
+ }[] | null | undefined;
310
+ permissions?: string[] | null | undefined;
311
+ roles?: string[] | null | undefined;
312
+ languages?: string[] | null | undefined;
313
+ }, {}, {}> & {
314
+ isVerified: boolean;
315
+ locale: string;
316
+ name?: {
317
+ first?: string | null | undefined;
318
+ last?: string | null | undefined;
319
+ nick?: string | null | undefined;
320
+ } | null | undefined;
321
+ createdAt?: NativeDate | null | undefined;
322
+ updatedAt?: NativeDate | null | undefined;
323
+ avatar?: string | null | undefined;
324
+ password?: string | null | undefined;
325
+ email?: string | null | undefined;
326
+ sessionTokens?: {
327
+ token?: string | null | undefined;
328
+ valid?: NativeDate | null | undefined;
329
+ }[] | null | undefined;
330
+ verificationTokens?: {
331
+ token?: string | null | undefined;
332
+ until?: NativeDate | null | undefined;
333
+ }[] | null | undefined;
334
+ passwordRecoveryTokens?: {
335
+ token?: string | null | undefined;
336
+ until?: NativeDate | null | undefined;
337
+ }[] | null | undefined;
338
+ permissions?: string[] | null | undefined;
339
+ roles?: string[] | null | undefined;
340
+ languages?: string[] | null | undefined;
341
+ } & {
342
+ _id: import("mongoose").Types.ObjectId;
343
+ } & {
344
+ __v: number;
345
+ }>;
346
+ };
347
+ static get modelInstanceMethods(): {
348
+ /**
349
+ * Generate token for user
350
+ * @returns {Object}
351
+ */
352
+ readonly generateToken: (this: import("mongoose").Document<unknown, {}, {
353
+ isVerified: boolean;
354
+ locale: string;
355
+ name?: {
356
+ first?: string | null | undefined;
357
+ last?: string | null | undefined;
358
+ nick?: string | null | undefined;
359
+ } | null | undefined;
360
+ createdAt?: NativeDate | null | undefined;
361
+ updatedAt?: NativeDate | null | undefined;
362
+ avatar?: string | null | undefined;
363
+ password?: string | null | undefined;
364
+ email?: string | null | undefined;
365
+ sessionTokens?: {
366
+ token?: string | null | undefined;
367
+ valid?: NativeDate | null | undefined;
368
+ }[] | null | undefined;
369
+ verificationTokens?: {
370
+ token?: string | null | undefined;
371
+ until?: NativeDate | null | undefined;
372
+ }[] | null | undefined;
373
+ passwordRecoveryTokens?: {
374
+ token?: string | null | undefined;
375
+ until?: NativeDate | null | undefined;
376
+ }[] | null | undefined;
377
+ permissions?: string[] | null | undefined;
378
+ roles?: string[] | null | undefined;
379
+ languages?: string[] | null | undefined;
380
+ }, {}, {}> & {
381
+ isVerified: boolean;
382
+ locale: string;
383
+ name?: {
384
+ first?: string | null | undefined;
385
+ last?: string | null | undefined;
386
+ nick?: string | null | undefined;
387
+ } | null | undefined;
388
+ createdAt?: NativeDate | null | undefined;
389
+ updatedAt?: NativeDate | null | undefined;
390
+ avatar?: string | null | undefined;
391
+ password?: string | null | undefined;
392
+ email?: string | null | undefined;
393
+ sessionTokens?: {
394
+ token?: string | null | undefined;
395
+ valid?: NativeDate | null | undefined;
396
+ }[] | null | undefined;
397
+ verificationTokens?: {
398
+ token?: string | null | undefined;
399
+ until?: NativeDate | null | undefined;
400
+ }[] | null | undefined;
401
+ passwordRecoveryTokens?: {
402
+ token?: string | null | undefined;
403
+ until?: NativeDate | null | undefined;
404
+ }[] | null | undefined;
405
+ permissions?: string[] | null | undefined;
406
+ roles?: string[] | null | undefined;
407
+ languages?: string[] | null | undefined;
408
+ } & {
409
+ _id: import("mongoose").Types.ObjectId;
410
+ } & {
411
+ __v: number;
412
+ }) => Promise<{
413
+ token: string;
414
+ valid: Date;
415
+ }>;
416
+ /**
417
+ * Send password recovery email
418
+ * @param {Object}
419
+ * @param {TFunction}
420
+ * @param {string} i18n.language
421
+ * @returns {Promise<boolean>}
422
+ */
423
+ readonly sendPasswordRecoveryEmail: (this: import("mongoose").Document<unknown, {}, {
424
+ isVerified: boolean;
425
+ locale: string;
426
+ name?: {
427
+ first?: string | null | undefined;
428
+ last?: string | null | undefined;
429
+ nick?: string | null | undefined;
430
+ } | null | undefined;
431
+ createdAt?: NativeDate | null | undefined;
432
+ updatedAt?: NativeDate | null | undefined;
433
+ avatar?: string | null | undefined;
434
+ password?: string | null | undefined;
435
+ email?: string | null | undefined;
436
+ sessionTokens?: {
437
+ token?: string | null | undefined;
438
+ valid?: NativeDate | null | undefined;
439
+ }[] | null | undefined;
440
+ verificationTokens?: {
441
+ token?: string | null | undefined;
442
+ until?: NativeDate | null | undefined;
443
+ }[] | null | undefined;
444
+ passwordRecoveryTokens?: {
445
+ token?: string | null | undefined;
446
+ until?: NativeDate | null | undefined;
447
+ }[] | null | undefined;
448
+ permissions?: string[] | null | undefined;
449
+ roles?: string[] | null | undefined;
450
+ languages?: string[] | null | undefined;
451
+ }, {}, {}> & {
452
+ isVerified: boolean;
453
+ locale: string;
454
+ name?: {
455
+ first?: string | null | undefined;
456
+ last?: string | null | undefined;
457
+ nick?: string | null | undefined;
458
+ } | null | undefined;
459
+ createdAt?: NativeDate | null | undefined;
460
+ updatedAt?: NativeDate | null | undefined;
461
+ avatar?: string | null | undefined;
462
+ password?: string | null | undefined;
463
+ email?: string | null | undefined;
464
+ sessionTokens?: {
465
+ token?: string | null | undefined;
466
+ valid?: NativeDate | null | undefined;
467
+ }[] | null | undefined;
468
+ verificationTokens?: {
469
+ token?: string | null | undefined;
470
+ until?: NativeDate | null | undefined;
471
+ }[] | null | undefined;
472
+ passwordRecoveryTokens?: {
473
+ token?: string | null | undefined;
474
+ until?: NativeDate | null | undefined;
475
+ }[] | null | undefined;
476
+ permissions?: string[] | null | undefined;
477
+ roles?: string[] | null | undefined;
478
+ languages?: string[] | null | undefined;
479
+ } & {
480
+ _id: import("mongoose").Types.ObjectId;
481
+ } & {
482
+ __v: number;
483
+ }, i18n: {
484
+ t: TFunction;
485
+ language: string;
486
+ }) => Promise<any>;
487
+ /**
488
+ * Send verification email
489
+ * @param {Object}
490
+ * @param {TFunction} i18n.t
491
+ * @param {string} i18n.language
492
+ * @returns {Promise<boolean>}
493
+ */
494
+ readonly sendVerificationEmail: (this: import("mongoose").Document<unknown, {}, {
495
+ isVerified: boolean;
496
+ locale: string;
497
+ name?: {
498
+ first?: string | null | undefined;
499
+ last?: string | null | undefined;
500
+ nick?: string | null | undefined;
501
+ } | null | undefined;
502
+ createdAt?: NativeDate | null | undefined;
503
+ updatedAt?: NativeDate | null | undefined;
504
+ avatar?: string | null | undefined;
505
+ password?: string | null | undefined;
506
+ email?: string | null | undefined;
507
+ sessionTokens?: {
508
+ token?: string | null | undefined;
509
+ valid?: NativeDate | null | undefined;
510
+ }[] | null | undefined;
511
+ verificationTokens?: {
512
+ token?: string | null | undefined;
513
+ until?: NativeDate | null | undefined;
514
+ }[] | null | undefined;
515
+ passwordRecoveryTokens?: {
516
+ token?: string | null | undefined;
517
+ until?: NativeDate | null | undefined;
518
+ }[] | null | undefined;
519
+ permissions?: string[] | null | undefined;
520
+ roles?: string[] | null | undefined;
521
+ languages?: string[] | null | undefined;
522
+ }, {}, {}> & {
523
+ isVerified: boolean;
524
+ locale: string;
525
+ name?: {
526
+ first?: string | null | undefined;
527
+ last?: string | null | undefined;
528
+ nick?: string | null | undefined;
529
+ } | null | undefined;
530
+ createdAt?: NativeDate | null | undefined;
531
+ updatedAt?: NativeDate | null | undefined;
532
+ avatar?: string | null | undefined;
533
+ password?: string | null | undefined;
534
+ email?: string | null | undefined;
535
+ sessionTokens?: {
536
+ token?: string | null | undefined;
537
+ valid?: NativeDate | null | undefined;
538
+ }[] | null | undefined;
539
+ verificationTokens?: {
540
+ token?: string | null | undefined;
541
+ until?: NativeDate | null | undefined;
542
+ }[] | null | undefined;
543
+ passwordRecoveryTokens?: {
544
+ token?: string | null | undefined;
545
+ until?: NativeDate | null | undefined;
546
+ }[] | null | undefined;
547
+ permissions?: string[] | null | undefined;
548
+ roles?: string[] | null | undefined;
549
+ languages?: string[] | null | undefined;
550
+ } & {
551
+ _id: import("mongoose").Types.ObjectId;
552
+ } & {
553
+ __v: number;
554
+ }, i18n: {
555
+ t: TFunction;
556
+ language: string;
557
+ }) => Promise<any>; /**
558
+ * Get public user data
559
+ * @returns {Object}
560
+ */
561
+ readonly getPublic: (this: import("mongoose").Document<unknown, {}, {
562
+ isVerified: boolean;
563
+ locale: string;
564
+ name?: {
565
+ first?: string | null | undefined;
566
+ last?: string | null | undefined;
567
+ nick?: string | null | undefined;
568
+ } | null | undefined;
569
+ createdAt?: NativeDate | null | undefined;
570
+ updatedAt?: NativeDate | null | undefined;
571
+ avatar?: string | null | undefined;
572
+ password?: string | null | undefined;
573
+ email?: string | null | undefined;
574
+ sessionTokens?: {
575
+ token?: string | null | undefined;
576
+ valid?: NativeDate | null | undefined;
577
+ }[] | null | undefined;
578
+ verificationTokens?: {
579
+ token?: string | null | undefined;
580
+ until?: NativeDate | null | undefined;
581
+ }[] | null | undefined;
582
+ passwordRecoveryTokens?: {
583
+ token?: string | null | undefined;
584
+ until?: NativeDate | null | undefined;
585
+ }[] | null | undefined;
586
+ permissions?: string[] | null | undefined;
587
+ roles?: string[] | null | undefined;
588
+ languages?: string[] | null | undefined;
589
+ }, {}, {}> & {
590
+ isVerified: boolean;
591
+ locale: string;
592
+ name?: {
593
+ first?: string | null | undefined;
594
+ last?: string | null | undefined;
595
+ nick?: string | null | undefined;
596
+ } | null | undefined;
597
+ createdAt?: NativeDate | null | undefined;
598
+ updatedAt?: NativeDate | null | undefined;
599
+ avatar?: string | null | undefined;
600
+ password?: string | null | undefined;
601
+ email?: string | null | undefined;
602
+ sessionTokens?: {
603
+ token?: string | null | undefined;
604
+ valid?: NativeDate | null | undefined;
605
+ }[] | null | undefined;
606
+ verificationTokens?: {
607
+ token?: string | null | undefined;
608
+ until?: NativeDate | null | undefined;
609
+ }[] | null | undefined;
610
+ passwordRecoveryTokens?: {
611
+ token?: string | null | undefined;
612
+ until?: NativeDate | null | undefined;
613
+ }[] | null | undefined;
614
+ permissions?: string[] | null | undefined;
615
+ roles?: string[] | null | undefined;
616
+ languages?: string[] | null | undefined;
617
+ } & {
618
+ _id: import("mongoose").Types.ObjectId;
619
+ } & {
620
+ __v: number;
621
+ }) => {
622
+ avatar: string | null | undefined;
623
+ name: {
624
+ first?: string | null | undefined;
625
+ last?: string | null | undefined;
626
+ nick?: string | null | undefined;
627
+ } | null | undefined;
628
+ email: string | null | undefined;
629
+ id: any;
630
+ isVerified: boolean;
631
+ permissions: string[] | null | undefined;
632
+ locale: string;
633
+ };
634
+ };
635
+ }
636
+ export declare const userHelpers: {
637
+ /**
638
+ * Generate user verification token
639
+ * @param {InstanceType<UserModelLite>} userMongoose
640
+ * @returns {Promise<{ token: string; until: number }>}
641
+ */
642
+ generateUserVerificationToken: (userMongoose: InstanceType<UserModelLite>) => Promise<{
643
+ token: string;
644
+ until: number;
645
+ }>;
646
+ /**
647
+ * Get user by id
648
+ * @param {string}
649
+ * @returns {Promise<InstanceType<UserModelLite> | false>}
650
+ */
651
+ generateUserPasswordRecoveryToken: (userMongoose: InstanceType<UserModelLite>) => Promise<{
652
+ token: string;
653
+ until: number;
654
+ }>;
655
+ };
656
+ export default User;