@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,272 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import AbstractCommand from "../modules/AbstractCommand.js";
3
+ /**
4
+ * Command for generate documentation json file openApi
5
+ */
6
+ class GetOpenApiJson extends AbstractCommand {
7
+ static get description() {
8
+ return 'Generate documentation (openApi) ';
9
+ }
10
+ /**
11
+ * You able to add command arguments for parsing there.
12
+ */
13
+ static get commandArguments() {
14
+ return {
15
+ output: {
16
+ type: 'string',
17
+ description: 'Output file path',
18
+ },
19
+ };
20
+ }
21
+ async run() {
22
+ const { myDomain } = this.app.getConfig('http');
23
+ let jsonFile = process.env.npm_package_json;
24
+ if (!jsonFile) {
25
+ jsonFile = `${process.env.PWD}/package.json`;
26
+ }
27
+ try {
28
+ jsonFile = JSON.parse(await fs.readFile(jsonFile, 'utf8'));
29
+ }
30
+ catch {
31
+ this.logger.error('No npm package detected. Please start this command via NPM as it depends on package.json');
32
+ }
33
+ if (!jsonFile) {
34
+ jsonFile = {
35
+ name: 'UNDETECTD PROJECT',
36
+ description: 'UNDETECTD PROJECT DECCRIPTION',
37
+ version: '0.0.0-undetrcted',
38
+ author: {
39
+ email: 'none@example.com',
40
+ },
41
+ };
42
+ }
43
+ if (!jsonFile.author) {
44
+ jsonFile.author = 'none@example.com';
45
+ }
46
+ const openApi = {
47
+ openapi: '3.0.0',
48
+ info: {
49
+ title: jsonFile.name,
50
+ description: jsonFile.description,
51
+ contact: {
52
+ email: jsonFile.author.email,
53
+ },
54
+ version: jsonFile.version,
55
+ },
56
+ servers: [
57
+ {
58
+ url: 'http://localhost:3300',
59
+ description: 'Localhost',
60
+ },
61
+ {
62
+ url: myDomain,
63
+ description: 'Domain from config',
64
+ },
65
+ ],
66
+ };
67
+ const baseDocumentation = await this.app.runCliCommand('documentation');
68
+ if (!baseDocumentation) {
69
+ throw new Error('Problems with basic documenation generation');
70
+ }
71
+ openApi.components = {};
72
+ openApi.components.securitySchemes = {};
73
+ openApi.tags = [];
74
+ for (const controller of baseDocumentation) {
75
+ const controllerName = controller.contollerName.split('/')[0];
76
+ if (!openApi.tags.find((tag) => tag.name === controllerName)) {
77
+ openApi.tags.push({
78
+ name: controllerName,
79
+ description: '',
80
+ });
81
+ }
82
+ }
83
+ openApi.paths = {};
84
+ const permissionWithRoutes = {};
85
+ for (const controller of baseDocumentation) {
86
+ for (const route of controller.routesInfo) {
87
+ const routeInfo = route[Object.keys(route)?.[0]];
88
+ const middlewares = [
89
+ ...routeInfo.controllerMiddlewares,
90
+ ...routeInfo.routeMiddlewares,
91
+ ];
92
+ const securitySchemaNames = [];
93
+ permissionWithRoutes[Object.keys(route)?.[0]] = [];
94
+ if (middlewares?.length) {
95
+ for (const middleware of middlewares) {
96
+ if (middleware?.authParams?.length) {
97
+ for (const authParam of middleware.authParams) {
98
+ const { permissions, ...mainFields } = authParam;
99
+ const fullName = authParam.name;
100
+ if (permissions) {
101
+ permissionWithRoutes[Object.keys(route)?.[0]].push(permissions);
102
+ }
103
+ if (!openApi.components.securitySchemes[fullName]) {
104
+ openApi.components.securitySchemes[fullName] = mainFields;
105
+ }
106
+ securitySchemaNames.push({
107
+ [fullName]: [],
108
+ });
109
+ }
110
+ }
111
+ }
112
+ }
113
+ let routeName = Object.keys(route)[0];
114
+ if (routeName === '/') {
115
+ continue;
116
+ }
117
+ if (routeName.slice(-1) === '/') {
118
+ routeName = routeName.substring(0, routeName.length - 1);
119
+ }
120
+ const partsRoute = routeName.split('/');
121
+ const newRoute = [];
122
+ const routeParameters = [];
123
+ for (const routeDetail of partsRoute) {
124
+ let routeCopy = routeDetail;
125
+ if (routeDetail.startsWith(':')) {
126
+ const routeChange = routeCopy.split('');
127
+ routeChange[0] = '{';
128
+ routeChange.push('}');
129
+ routeCopy = routeChange.join('');
130
+ routeParameters.push(routeCopy.replace(/^.|.$/g, ''));
131
+ }
132
+ newRoute.push(routeCopy);
133
+ }
134
+ routeName = newRoute.join('/');
135
+ if (!openApi.paths[routeName]) {
136
+ openApi.paths[routeName] = {};
137
+ }
138
+ const routeDescription = route[Object.keys(route)[0]]?.description || 'empty description';
139
+ const permissions = permissionWithRoutes[Object.keys(route)[0]][permissionWithRoutes[Object.keys(route)[0]].length - 1];
140
+ const routeDescriptionWithPermissions = `${permissions || ''} ${routeDescription}`;
141
+ const methodName = route[Object.keys(route)[0]].method.toLowerCase();
142
+ const routeTitle = route[Object.keys(route)[0]].name;
143
+ const routeFields = route[Object.keys(route)[0]].fields;
144
+ const routeQueryFields = route[Object.keys(route)[0]].queryFields;
145
+ if (!openApi.paths[routeName][methodName]) {
146
+ openApi.paths[routeName][methodName] = {};
147
+ }
148
+ openApi.paths[routeName][methodName].tags = [];
149
+ openApi.paths[routeName][methodName].tags.push(controller.contollerName.split('/')[0]);
150
+ openApi.paths[routeName][methodName].summary = routeTitle;
151
+ openApi.paths[routeName][methodName].description =
152
+ routeDescriptionWithPermissions;
153
+ openApi.paths[routeName][methodName].parameters = [];
154
+ openApi.paths[routeName][methodName].security = securitySchemaNames;
155
+ openApi.paths[routeName][methodName].responses = {
156
+ 200: {
157
+ description: 'Successfully',
158
+ },
159
+ 201: {
160
+ description: 'The resource was created successfully',
161
+ },
162
+ 400: {
163
+ description: 'There is a syntax error in the request',
164
+ },
165
+ 401: {
166
+ description: 'Authentication is required to access the requested resource',
167
+ },
168
+ 404: {
169
+ description: 'The server accepted the request, but did not find the corresponding resource at the specified URI',
170
+ },
171
+ };
172
+ for (const queryField of routeQueryFields) {
173
+ openApi.paths[routeName][methodName].parameters.push({
174
+ name: queryField.name,
175
+ in: 'query',
176
+ required: queryField?.required,
177
+ schema: {
178
+ type: queryField.type,
179
+ },
180
+ });
181
+ }
182
+ for (const routeField of routeParameters) {
183
+ openApi.paths[routeName][methodName].parameters.push({
184
+ name: routeField,
185
+ in: 'path',
186
+ required: true,
187
+ schema: {
188
+ type: 'string',
189
+ },
190
+ });
191
+ }
192
+ if (routeFields.length) {
193
+ const groupBodyFields = {};
194
+ const requiredFields = [];
195
+ let isMultipartFormaData = false;
196
+ for (const field of routeFields) {
197
+ if (field.required) {
198
+ requiredFields.push(field.name);
199
+ }
200
+ switch (field.type) {
201
+ case 'object':
202
+ groupBodyFields[field.name] = {
203
+ properties: {},
204
+ };
205
+ for (const objField of field.fields) {
206
+ groupBodyFields[field.name].properties[objField.name] = {
207
+ // fields file has mixed type but openApi doesnt have this type
208
+ type: objField.type === 'mixed' ? 'string' : objField.type,
209
+ };
210
+ }
211
+ break;
212
+ case 'array':
213
+ groupBodyFields[field.name] = {
214
+ items: {
215
+ type: field.innerType,
216
+ },
217
+ };
218
+ break;
219
+ case 'lazy':
220
+ groupBodyFields[field.name] = {
221
+ oneOf: [
222
+ {
223
+ type: 'object',
224
+ },
225
+ {
226
+ type: 'string',
227
+ },
228
+ ],
229
+ };
230
+ break;
231
+ case 'file':
232
+ groupBodyFields[field.name] = {
233
+ type: 'string',
234
+ format: 'binary',
235
+ };
236
+ isMultipartFormaData = true;
237
+ break;
238
+ default:
239
+ groupBodyFields[field.name] = {
240
+ type: field.type,
241
+ };
242
+ }
243
+ }
244
+ const contentType = isMultipartFormaData
245
+ ? 'multipart/form-data'
246
+ : 'application/json';
247
+ openApi.paths[routeName][methodName].requestBody = {
248
+ content: {
249
+ [contentType]: {
250
+ schema: {
251
+ type: 'object',
252
+ properties: groupBodyFields,
253
+ },
254
+ },
255
+ },
256
+ };
257
+ if (requiredFields.length) {
258
+ openApi.paths[routeName][methodName].requestBody.content[contentType].schema.required = requiredFields;
259
+ }
260
+ }
261
+ }
262
+ }
263
+ const result = JSON.stringify(openApi);
264
+ if (this.args.output) {
265
+ await fs.writeFile(this.args.output, result);
266
+ this.logger.info(`Output to: ${this.args.output}`);
267
+ }
268
+ return result;
269
+ }
270
+ }
271
+ export default GetOpenApiJson;
272
+ //# sourceMappingURL=GetOpenApiJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetOpenApiJson.js","sourceRoot":"","sources":["../../src/commands/GetOpenApiJson.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import AbstractCommand from '../modules/AbstractCommand.ts';
2
+ declare class SyncIndexes extends AbstractCommand {
3
+ run(): Promise<boolean>;
4
+ static get description(): string;
5
+ }
6
+ export default SyncIndexes;
@@ -0,0 +1,31 @@
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
+ const removedIndexes = await Model.syncIndexes(); // await in loop not a bug. Lets do one by one
17
+ if (removedIndexes.length) {
18
+ this.logger?.info(`Model - ${modelName} removed indexes: ${removedIndexes}`);
19
+ }
20
+ else {
21
+ this.logger?.info(`Model - ${modelName} NO removed indexes`);
22
+ }
23
+ }
24
+ return true;
25
+ }
26
+ static get description() {
27
+ 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 ';
28
+ }
29
+ }
30
+ export default SyncIndexes;
31
+ //# 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;AAEhC,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,CAAoB,CAAC;YAC9D,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 { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
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
+ const { name } = this.args;
22
+ if (name.match(/^\d/)) {
23
+ this.logger?.error('Command cant start from nubmer');
24
+ return false;
25
+ }
26
+ const fileName = `${Date.now()}_${CreateMigration.camelSentence(name)}.ts`;
27
+ const fileContent = CreateMigration.getTemplate(CreateMigration.camelSentence(name));
28
+ await fs.writeFile(path.join(this.app.foldersConfig.migrations, fileName), fileContent);
29
+ this.logger?.info(`Migration created ${fileName}`);
30
+ return true;
31
+ }
32
+ static camelSentence(str) {
33
+ return ` ${str}`
34
+ .toLowerCase()
35
+ .replace(/[^a-zA-Z0-9]+(.)/g, (_match, chr) => chr.toUpperCase());
36
+ }
37
+ static getTemplate(name) {
38
+ return `
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,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,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,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAwB,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,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,CAAC,IAAI,CAAC,KAAK,CAAC;QAE3E,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAC7C,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CACpC,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,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO;;;QAGH,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,43 @@
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 path from 'node:path';
10
+ import * as url from 'node:url';
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
+ const { default: MigrationCommand } = await import(__rewriteRelativeImportExtension(migration.path));
32
+ const migrationCommand = new MigrationCommand(this.app);
33
+ await migrationCommand.up();
34
+ await MigrationModel.create({
35
+ migrationFile: migration.file,
36
+ });
37
+ }
38
+ this.logger?.info(`=== Migration Finished. Migrated ${migrations.length} files ===`);
39
+ return true;
40
+ }
41
+ }
42
+ export default Migrate;
43
+ //# sourceMappingURL=Migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrate.js","sourceRoot":"","sources":["../../../src/commands/migration/Migrate.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,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,CACtC,WAAW,CACa,CAAC;QAC3B,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,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,MAAM,gBAAgB,CAAC,EAAE,EAAE,CAAC;YAC5B,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 const _default: {
2
+ hashRounds: number;
3
+ saltSecret: string | void;
4
+ 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.ts"],"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 const _default: {
2
+ port: string | number;
3
+ hostname: string;
4
+ corsDomains: string[];
5
+ myDomain: string;
6
+ 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.ts"],"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,13 @@
1
+ /**
2
+ * You can use any options from https://www.i18next.com/overview/configuration-options
3
+ */
4
+ declare const _default: {
5
+ enabled: boolean;
6
+ preload: string[];
7
+ supportedLngs: string[];
8
+ fallbackLng: string;
9
+ saveMissing: boolean;
10
+ debug: boolean;
11
+ lookupQuerystring: string;
12
+ };
13
+ 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.ts"],"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 const _default: {
2
+ headers: string[];
3
+ 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.ts"],"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,11 @@
1
+ export type TLogConfig = {
2
+ transports: {
3
+ transport: string;
4
+ transportOptions: {
5
+ level: string;
6
+ } & Record<string, unknown>;
7
+ enable: boolean;
8
+ }[];
9
+ };
10
+ declare const _default: TLogConfig;
11
+ export default _default;
@@ -0,0 +1,20 @@
1
+ export default {
2
+ transports: [
3
+ {
4
+ transport: 'sentry',
5
+ transportOptions: {
6
+ level: process.env.LOGGER_SENTRY_LEVEL || 'info',
7
+ },
8
+ enable: process.env.LOGGER_SENTRY_ENABLE || false,
9
+ },
10
+ {
11
+ transport: 'console',
12
+ transportOptions: {
13
+ level: process.env.LOGGER_CONSOLE_LEVEL || 'silly',
14
+ timestamp: true,
15
+ },
16
+ enable: process.env.LOGGER_CONSOLE_ENABLE || true,
17
+ },
18
+ ],
19
+ };
20
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/config/log.ts"],"names":[],"mappings":"AAYA,eAAe;IACb,UAAU,EAAE;QACV;YACE,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE;gBAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;aACZ;YACtC,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;aACsB;YACvC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI;SAClD;KACF;CACY,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ 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.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;CACxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { IRateLimiterOptions } from 'rate-limiter-flexible';
2
+ declare const _default: {
3
+ limiterOptions: IRateLimiterOptions;
4
+ driver: string;
5
+ consumePoints: number;
6
+ consumeKeyComponents: {
7
+ ip: boolean;
8
+ route: boolean;
9
+ user: boolean;
10
+ request: never[];
11
+ };
12
+ };
13
+ export default _default;