@adaptivestone/framework 5.0.0-beta.2 → 5.0.0-beta.20

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 (285) hide show
  1. package/CHANGELOG.md +122 -1
  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 +81 -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 +12 -0
  22. package/dist/commands/GenerateTypes.js +60 -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 +32 -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 +46 -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 +10 -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 +22 -0
  49. package/dist/config/log.js +23 -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 +15 -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 +74 -0
  64. package/dist/controllers/Auth.js +181 -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 +24 -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 +15 -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 +14 -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 +28 -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/{helpers → dist/helpers}/yup.js +9 -12
  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 +89 -0
  97. package/dist/models/Lock.js +99 -0
  98. package/dist/models/Lock.js.map +1 -0
  99. package/dist/models/Migration.d.ts +10 -0
  100. package/dist/models/Migration.js +13 -0
  101. package/dist/models/Migration.js.map +1 -0
  102. package/dist/models/Sequence.d.ts +27 -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 +2372 -0
  106. package/dist/models/User.js +280 -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 +34 -0
  112. package/dist/modules/AbstractCommand.js +48 -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 +90 -0
  118. package/dist/modules/AbstractController.js +324 -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 +43 -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 +41 -0
  130. package/dist/modules/BaseModel.js +35 -0
  131. package/dist/modules/BaseModel.js.map +1 -0
  132. package/dist/server.d.ts +121 -0
  133. package/dist/server.js +432 -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 +115 -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 +134 -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 +71 -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 +43 -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 +10 -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 +19 -0
  154. package/dist/services/http/middleware/GetUserByToken.js +40 -0
  155. package/dist/services/http/middleware/GetUserByToken.js.map +1 -0
  156. package/dist/services/http/middleware/I18n.d.ts +26 -0
  157. package/dist/services/http/middleware/I18n.js +97 -0
  158. package/dist/services/http/middleware/I18n.js.map +1 -0
  159. package/dist/services/http/middleware/IpDetector.d.ts +12 -0
  160. package/dist/services/http/middleware/IpDetector.js +51 -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 +47 -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 +18 -0
  169. package/dist/services/http/middleware/RateLimiter.js +106 -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 +9 -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/validate/ValidateService.d.ts +31 -0
  181. package/dist/services/validate/ValidateService.js +96 -0
  182. package/dist/services/validate/ValidateService.js.map +1 -0
  183. package/dist/services/validate/drivers/AbstractValidator.d.ts +14 -0
  184. package/dist/services/validate/drivers/AbstractValidator.js +32 -0
  185. package/dist/services/validate/drivers/AbstractValidator.js.map +1 -0
  186. package/dist/services/validate/drivers/CustomValidator.d.ts +14 -0
  187. package/dist/services/validate/drivers/CustomValidator.js +48 -0
  188. package/dist/services/validate/drivers/CustomValidator.js.map +1 -0
  189. package/dist/services/validate/drivers/YupValidator.d.ts +13 -0
  190. package/dist/services/validate/drivers/YupValidator.js +86 -0
  191. package/dist/services/validate/drivers/YupValidator.js.map +1 -0
  192. package/dist/tests/globalSetupVitest.d.ts +2 -0
  193. package/dist/tests/globalSetupVitest.js +29 -0
  194. package/dist/tests/globalSetupVitest.js.map +1 -0
  195. package/dist/tests/setupVitest.d.ts +1 -0
  196. package/dist/tests/setupVitest.js +99 -0
  197. package/dist/tests/setupVitest.js.map +1 -0
  198. package/package.json +38 -23
  199. package/Cli.js +0 -22
  200. package/cluster.js +0 -27
  201. package/commands/CreateUser.js +0 -75
  202. package/commands/Documentation.js +0 -17
  203. package/commands/DropIndex.js +0 -29
  204. package/commands/GenerateRandomBytes.js +0 -21
  205. package/commands/GetOpenApiJson.js +0 -325
  206. package/commands/SyncIndexes.js +0 -39
  207. package/commands/migration/Create.js +0 -61
  208. package/commands/migration/Migrate.js +0 -55
  209. package/config/auth.js +0 -9
  210. package/config/http.js +0 -9
  211. package/config/i18n.js +0 -12
  212. package/config/ipDetector.js +0 -14
  213. package/config/log.js +0 -22
  214. package/config/mail.js +0 -29
  215. package/config/mongo.js +0 -3
  216. package/config/rateLimiter.js +0 -16
  217. package/config/redis.js +0 -4
  218. package/config/validate.js +0 -3
  219. package/controllers/Auth.js +0 -210
  220. package/controllers/Home.js +0 -28
  221. package/controllers/index.js +0 -60
  222. package/folderConfig.js +0 -14
  223. package/helpers/files.js +0 -79
  224. package/helpers/logger.js +0 -17
  225. package/helpers/redis/clearNamespace.js +0 -14
  226. package/index.js +0 -8
  227. package/jsconfig.json +0 -9
  228. package/locales/en/translation.json +0 -27
  229. package/locales/ru/translation.json +0 -27
  230. package/migrations/.gitkeep +0 -0
  231. package/models/Migration.js +0 -15
  232. package/models/Sequence.js +0 -22
  233. package/models/User.js +0 -263
  234. package/modules/AbstractCommand.js +0 -43
  235. package/modules/AbstractConnector.js +0 -9
  236. package/modules/AbstractController.js +0 -413
  237. package/modules/AbstractModel.d.ts +0 -48
  238. package/modules/AbstractModel.js +0 -86
  239. package/modules/Base.d.ts +0 -37
  240. package/modules/Base.js +0 -63
  241. package/modules/BaseCli.js +0 -97
  242. package/server.d.ts +0 -98
  243. package/server.js +0 -429
  244. package/services/cache/Cache.d.ts +0 -35
  245. package/services/cache/Cache.js +0 -124
  246. package/services/documentation/DocumentationGenerator.js +0 -169
  247. package/services/http/HttpServer.js +0 -96
  248. package/services/http/middleware/AbstractMiddleware.js +0 -51
  249. package/services/http/middleware/Auth.js +0 -20
  250. package/services/http/middleware/Cors.js +0 -46
  251. package/services/http/middleware/GetUserByToken.js +0 -47
  252. package/services/http/middleware/I18n.js +0 -117
  253. package/services/http/middleware/IpDetector.js +0 -59
  254. package/services/http/middleware/Pagination.js +0 -57
  255. package/services/http/middleware/PrepareAppInfo.js +0 -18
  256. package/services/http/middleware/RateLimiter.js +0 -134
  257. package/services/http/middleware/RequestLogger.js +0 -22
  258. package/services/http/middleware/RequestParser.js +0 -40
  259. package/services/http/middleware/Role.js +0 -29
  260. package/services/messaging/email/index.js +0 -217
  261. package/services/messaging/email/resources/.gitkeep +0 -1
  262. package/services/messaging/email/templates/emptyTemplate/html.pug +0 -9
  263. package/services/messaging/email/templates/emptyTemplate/subject.pug +0 -1
  264. package/services/messaging/email/templates/emptyTemplate/text.pug +0 -1
  265. package/services/messaging/email/templates/recovery/html.pug +0 -8
  266. package/services/messaging/email/templates/recovery/subject.pug +0 -2
  267. package/services/messaging/email/templates/recovery/text.pug +0 -3
  268. package/services/messaging/email/templates/verification/html.pug +0 -10
  269. package/services/messaging/email/templates/verification/subject.pug +0 -1
  270. package/services/messaging/email/templates/verification/text.pug +0 -1
  271. package/services/messaging/index.js +0 -3
  272. package/services/validate/ValidateService.js +0 -157
  273. package/services/validate/drivers/AbstractValidator.js +0 -37
  274. package/services/validate/drivers/CustomValidator.js +0 -51
  275. package/services/validate/drivers/YupValidator.js +0 -103
  276. package/tests/globalSetupVitest.js +0 -35
  277. package/tests/setup.js +0 -118
  278. package/tests/setupVitest.js +0 -109
  279. package/types/Expand.d.ts +0 -11
  280. package/types/TFoldersConfig.d.ts +0 -17
  281. package/views/404.pug +0 -3
  282. package/views/home.pug +0 -3
  283. package/views/layouts/base.pug +0 -39
  284. package/vitest.config.js +0 -16
  285. /package/{commands → dist/migrations}/.gitkeep +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,124 @@
1
+ ### 5.0.0-next
2
+
3
+ This is a big release that contains a lot of new features and breaking changes.
4
+ Main feature of that release is full TypeScript support insluding mongoose models.
5
+
6
+ #### New Features
7
+
8
+ [NEW] Full TypeScript support, including Mongoose models.
9
+ [NEW] New model type: BaseModel, simplifying work with TypeScript and based on statics.
10
+ [NEW] AppInstance helper to access the app instance from anywhere without passing it.
11
+ [NEW] GenerateTypes command added.
12
+ [NEW] Lock model for working with locks via MongoDB.
13
+ [NEW] FrameworkFolder folder added to the app for module usage.
14
+ [NEW] Ability to skip Mongo model initialization in CLI environments.
15
+ [NEW] Mongo connections in CLI now have unique names, including the command name.
16
+ [NEW] On shutdown event, force shutdown after a timeout.
17
+ [NEW] GenerateRandomBytes command added.
18
+ [NEW] IpDetector middleware for detecting proxies and X-Forwarded-For headers.
19
+
20
+ #### Breaking changes (please read carefully)
21
+
22
+ [BREAKING] all models now should be extended from BaseModel. This is a potencial breaking change specially for User model.
23
+ [BREAKING] Remove jest support for testing
24
+ [BREAKING] move email module to separate package @adaptivestone/framework-module-email. Please use it if you want to send emails
25
+ [BREAKING] remove VIEWS folders at all. Should not afffect any user as this was not used internally
26
+ [BREAKING] removed noidemailer-sendmail-transport. Not needed anymore and not recommended to use as well
27
+ [BREAKING] remove minimist CLI parsing and replace it by commandArguments parser
28
+ [BREAKING] vitest v3 https://vitest.dev/guide/migration.html
29
+ [BREAKING] i18next v24 https://www.i18next.com/misc/migration-guide#v23.x.x-to-v24.0.0
30
+ [BREAKING] possible breaking. Framework start using express 5 instead of express 4. Please follow express migration guide too https://expressjs.com/en/guide/migrating-5.html.
31
+ [BREAKING] AS part of express 5 migration _ in rotes (middlewares) should have perameter. please replace _ to \*splat
32
+ [BREAKING] default auth responce changed to be unified. {token, user} = > {data:{token, user}}
33
+ [BREAKING] RateLimiter now need to have IpDetector middleware before
34
+ [BREAKING] removing staticFiles middleware as it not used in projects anymore. Docs with nginx config will be provided
35
+ [BREAKING] remove default AUTH_SALT. It should be provided on a app level now
36
+ [BREAKING] Minimum node version is 20.12 as for now (process.loadEnvFile)
37
+ [BREAKING] ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience
38
+ [BREAKING] Mongoose v8. https://mongoosejs.com/docs/migrating_to_8.html
39
+
40
+ ### 5.0.0-beta.20
41
+
42
+ [FIX] fix bug with Lock model index
43
+ [NEW] BaseModel add Virtuals
44
+
45
+ ### 5.0.0-beta.19
46
+
47
+ [NEW] intruducing new model type. BaseModel. Features - simplifie works with typescript. And based on statics
48
+ [BREAKING] all models now should be extended from BaseModel. This is a potencial breaking change specially for User model.
49
+
50
+ ### 5.0.0-beta.18
51
+
52
+ [UPDATE] move away connection from mongooseModels to server itself (preparation for different model types)
53
+ [BREAKING] potencial. We are removed callback from mongooseModels contrctuctor. It was not used in code.
54
+ [NEW] add appInstance helper to access app instance from anywhere without passing it
55
+
56
+ ### 5.0.0-beta.17
57
+
58
+ [NEW] add GenerateTypes command
59
+
60
+ ### 5.0.0-beta.16
61
+
62
+ [UPDATE] update deps
63
+ [UPDATE] new app getter internalFilesCache
64
+ [UPDATE] command new static props to load isShouldGetModelPaths
65
+
66
+ ### 5.0.0-beta.15
67
+
68
+ [FIX] fix missing folder migrations in dist folder (hope that will be finally)
69
+
70
+ ### 5.0.0-beta.14
71
+
72
+ [FIX] fix missing folder migrations in dist folder
73
+
74
+ ### 5.0.0-beta.13
75
+
76
+ [UPDATE] only process .ts or .js files (not .map files)
77
+
78
+ ### 5.0.0-beta.12
79
+
80
+ [BREAKING] Remove jest support for testing
81
+ [NEW] initial move to typescript. Potencially breaking.
82
+ [NEW] introduce src and dist folders
83
+
84
+ ### 5.0.0-beta.11
85
+
86
+ [NEW] commands typing
87
+ [NEW] commands support TS files
88
+ [UPDATE] update deps
89
+
90
+ ### 5.0.0-beta.9
91
+
92
+ [BREAKING] move email module to separate package @adaptivestone/framework-module-email. Please use it if you want to send emails
93
+ [NEW] app now contains 'frameworkFolder' folder the framework located. Mostly for modules usage
94
+ [BREAKING] remove VIEWS folders at all. Should not afffect any user as this was not used internally
95
+ [UPDATE] update typing
96
+ [UPDATE] change redis -> @redis/client as we are using only client from pakage
97
+ [BREAKING] removed noidemailer-sendmail-transport. Not needed anymore and not recommended to use as well
98
+
99
+ ### 5.0.0-beta.8
100
+
101
+ [UPDATE] update deps
102
+ [NEW] Lock model for working locks via mongoDB
103
+
104
+ ### 5.0.0-beta.7
105
+
106
+ [UPDATE] update deps
107
+ [UPDATE] change vitest shutdown behavior as mongo driver v6.13 change befaviur that affect us (MongoClient.close now closes any outstanding cursors)
108
+
109
+ ### 5.0.0-beta.5
110
+
111
+ [BREAKING] remove minimist CLI parsing and replace it by commandArguments parser
112
+ [UPDATE] migrated from eslint-plugin-import to eslint-plugin-import-x
113
+
114
+ ### 5.0.0-beta.5
115
+
116
+ [UPDATE] migrate to eslint 9 and away from aibnb styles (they are abonded)
117
+
118
+ ### 5.0.0-beta.4
119
+
120
+ [NEW] on shutdown event now after timeout we are forcing to shutdown
121
+
1
122
  ### 5.0.0-beta.2
2
123
 
3
124
  [UPDATE] update deps
@@ -458,7 +579,7 @@ await doc.populate([
458
579
  [UPDATE] update deps
459
580
  [UPDATE] winston console transport now using timestapms
460
581
  [UPDATE] PrepareAppInfo middleware now a global one. Do not need to include it on every controller
461
- [NEW] Request anso works with req.query, but req.body have bigger priority
582
+ [NEW] Request also works with req.query, but req.body have bigger priority
462
583
 
463
584
  ### 2.18.0
464
585
 
package/LICENCE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2016-2023 Andrei Lahunou
3
+ Copyright (c) 2016-2025 Andrei Lahunou
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/Cli.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import BaseCli from './modules/BaseCli.ts';
2
+ import type { TFolderConfig } from './folderConfig.ts';
3
+ declare class Cli extends BaseCli {
4
+ constructor(serverConfig: TFolderConfig);
5
+ run(): Promise<boolean>;
6
+ }
7
+ export default Cli;
package/dist/Cli.js ADDED
@@ -0,0 +1,19 @@
1
+ import mongoose from 'mongoose';
2
+ import BaseCli from "./modules/BaseCli.js";
3
+ import Server from "./server.js";
4
+ class Cli extends BaseCli {
5
+ constructor(serverConfig) {
6
+ mongoose.set('autoIndex', false); // we do not need create indexes on CLI.
7
+ const server = new Server(serverConfig);
8
+ super(server);
9
+ }
10
+ async run() {
11
+ await this.server.init({ isSkipModelInit: true, isSkipModelLoading: true });
12
+ const command = process.argv[2]?.toLowerCase();
13
+ await super.run(command);
14
+ this.app.events.emit('shutdown');
15
+ return true;
16
+ }
17
+ }
18
+ export default Cli;
19
+ //# sourceMappingURL=Cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,GAAI,SAAQ,OAAO;IACvB,YAAY,YAA2B;QACrC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,wCAAwC;QAC1E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC/C,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,GAAG,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import cluster from 'node:cluster';
2
+ import { cpus } from 'node:os';
3
+ const numCPUs = cpus().length;
4
+ if (cluster.isPrimary) {
5
+ console.log(`Master ${process.pid} is running`);
6
+ // Fork workers.
7
+ for (let i = 0; i < numCPUs; i += 1) {
8
+ cluster.fork();
9
+ }
10
+ cluster.on('exit', (worker, code, signal) => {
11
+ console.log(`Worker \x1B[45m ${worker.process.pid} \x1B[49m \x1B[41m †††† died †††† \x1B[49m. Code: ${signal || code}. Restarting...`);
12
+ cluster.fork();
13
+ });
14
+ }
15
+ else {
16
+ import("./server.js");
17
+ }
18
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC;AAE9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;IAChD,gBAAgB;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,CACT,mBACE,MAAM,CAAC,OAAO,CAAC,GACjB,qDACE,MAAM,IAAI,IACZ,iBAAiB,CAClB,CAAC;QACF,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,MAAM,CAAC,aAAa,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import AbstractCommand from '../modules/AbstractCommand.ts';
2
+ declare class CreateUser extends AbstractCommand {
3
+ static get description(): string;
4
+ /**
5
+ * You able to add command arguments for parsing there.
6
+ */
7
+ static get commandArguments(): {
8
+ id: {
9
+ type: "string";
10
+ description: string;
11
+ };
12
+ email: {
13
+ type: "string";
14
+ description: string;
15
+ };
16
+ password: {
17
+ type: "string";
18
+ description: string;
19
+ };
20
+ roles: {
21
+ type: "string";
22
+ description: string;
23
+ };
24
+ update: {
25
+ type: "boolean";
26
+ default: boolean;
27
+ description: string;
28
+ };
29
+ };
30
+ run(): Promise<any>;
31
+ }
32
+ export default CreateUser;
@@ -0,0 +1,81 @@
1
+ import AbstractCommand from "../modules/AbstractCommand.js";
2
+ // Example: node src/cli createuser --email=somemail@gmail.com --password=somePassword --roles=user,admin,someOtherRoles
3
+ class CreateUser extends AbstractCommand {
4
+ static get description() {
5
+ return 'Create user in a database';
6
+ }
7
+ /**
8
+ * You able to add command arguments for parsing there.
9
+ */
10
+ static get commandArguments() {
11
+ return {
12
+ id: {
13
+ type: 'string',
14
+ description: 'User id to find user',
15
+ },
16
+ email: {
17
+ type: 'string',
18
+ description: 'User id to find/create user',
19
+ },
20
+ password: {
21
+ type: 'string',
22
+ description: 'New password for user',
23
+ },
24
+ roles: {
25
+ type: 'string',
26
+ description: 'User roles comma separated string (--roles=user,admin,someOtherRoles)',
27
+ },
28
+ update: {
29
+ type: 'boolean',
30
+ default: false,
31
+ description: 'Update user if it exists',
32
+ },
33
+ };
34
+ }
35
+ async run() {
36
+ const User = this.app.getModel('User');
37
+ const { id, email, password, roles, update } = this.args;
38
+ if (!email && !id) {
39
+ this.logger?.error('Input validation failded');
40
+ this.logger?.error('Please add "email" or "id" variables');
41
+ return false;
42
+ }
43
+ let user;
44
+ if (id) {
45
+ user = await User.findOne({ _id: id });
46
+ }
47
+ else if (email) {
48
+ user = await User.findOne({ email });
49
+ }
50
+ if (user && !update) {
51
+ this.logger?.error('We are found a user in database. But "update" option is not providing. Exitin');
52
+ return false;
53
+ }
54
+ if (!user && !password) {
55
+ this.logger?.error('For a new user we alway asking for a password. Please provide it and rerun command');
56
+ return false;
57
+ }
58
+ if (!user && !email) {
59
+ this.logger?.error('For a new user we alway asking for a email. Please provide it and rerun command');
60
+ return false;
61
+ }
62
+ if (!user) {
63
+ user = new User();
64
+ }
65
+ if (password) {
66
+ user.password = password;
67
+ }
68
+ if (email) {
69
+ user.email = email;
70
+ }
71
+ if (roles) {
72
+ user.roles = roles.split(',');
73
+ }
74
+ await user.save();
75
+ await user.generateToken();
76
+ this.logger?.info(`User was created/updated ${JSON.stringify(user, null, 4)}`);
77
+ return user;
78
+ }
79
+ }
80
+ export default CreateUser;
81
+ //# sourceMappingURL=CreateUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../src/commands/CreateUser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default Documentation;
2
+ declare class Documentation extends AbstractCommand {
3
+ run(): Promise<any[]>;
4
+ }
5
+ import AbstractCommand from '../modules/AbstractCommand.ts';
@@ -0,0 +1,15 @@
1
+ import AbstractCommand from "../modules/AbstractCommand.js";
2
+ import ControllerManager from "../controllers/index.js";
3
+ class Documentation extends AbstractCommand {
4
+ static get description() {
5
+ return 'Generate documentation (internal)';
6
+ }
7
+ async run() {
8
+ const CM = new ControllerManager(this.app);
9
+ this.app.documentation = [];
10
+ await CM.initControllers();
11
+ return this.app.documentation;
12
+ }
13
+ }
14
+ export default Documentation;
15
+ //# sourceMappingURL=Documentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Documentation.js","sourceRoot":"","sources":["../../src/commands/Documentation.js"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,MAAM,aAAc,SAAQ,eAAe;IACzC,MAAM,KAAK,WAAW;QACpB,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC;QAC5B,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAChC,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ import AbstractCommand from '../modules/AbstractCommand.ts';
2
+ declare class DropIndex extends AbstractCommand {
3
+ static get description(): string;
4
+ /**
5
+ * You able to add command arguments for parsing there.
6
+ */
7
+ static get commandArguments(): {
8
+ model: {
9
+ type: "string";
10
+ description: string;
11
+ required: boolean;
12
+ };
13
+ };
14
+ run(): Promise<boolean>;
15
+ }
16
+ export default DropIndex;
@@ -0,0 +1,30 @@
1
+ import AbstractCommand from "../modules/AbstractCommand.js";
2
+ class DropIndex extends AbstractCommand {
3
+ static get description() {
4
+ return 'Drop indexes of model';
5
+ }
6
+ /**
7
+ * You able to add command arguments for parsing there.
8
+ */
9
+ static get commandArguments() {
10
+ return {
11
+ model: {
12
+ type: 'string',
13
+ description: 'Model name',
14
+ required: true,
15
+ },
16
+ };
17
+ }
18
+ async run() {
19
+ const Model = this.app.getModel(this.args.model);
20
+ if (!Model) {
21
+ this.logger?.error('Not able to find model');
22
+ return false;
23
+ }
24
+ await Model.collection.dropIndexes();
25
+ this.logger?.info('Success');
26
+ return true;
27
+ }
28
+ }
29
+ export default DropIndex;
30
+ //# sourceMappingURL=DropIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropIndex.js","sourceRoot":"","sources":["../../src/commands/DropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,MAAM,SAAU,SAAQ,eAAe;IACrC,MAAM,KAAK,WAAW;QACpB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,gBAAgB;QACzB,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ import AbstractCommand from '../modules/AbstractCommand.ts';
2
+ declare class GenerateRandomBytes extends AbstractCommand {
3
+ static get description(): string;
4
+ static isShouldInitModels: boolean;
5
+ run(): Promise<boolean>;
6
+ }
7
+ export default GenerateRandomBytes;
@@ -0,0 +1,18 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import AbstractCommand from "../modules/AbstractCommand.js";
3
+ class GenerateRandomBytes extends AbstractCommand {
4
+ static get description() {
5
+ return 'Generate random bytes ising randomBytes from node:crypto';
6
+ }
7
+ static isShouldInitModels = false;
8
+ async run() {
9
+ const sizes = [16, 32, 64, 128, 256];
10
+ for (const size of sizes) {
11
+ const bytes = randomBytes(size).toString('hex');
12
+ this.logger?.info(`${size} bytes: ${bytes}`);
13
+ }
14
+ return true;
15
+ }
16
+ }
17
+ export default GenerateRandomBytes;
18
+ //# sourceMappingURL=GenerateRandomBytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateRandomBytes.js","sourceRoot":"","sources":["../../src/commands/GenerateRandomBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,MAAM,mBAAoB,SAAQ,eAAe;IAC/C,MAAM,KAAK,WAAW;QACpB,OAAO,2DAA2D,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAElC,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AAGH,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import AbstractCommand from '../modules/AbstractCommand.ts';
2
+ declare class GenerateTypes extends AbstractCommand {
3
+ static get description(): string;
4
+ getTypesContent(): Promise<string>;
5
+ static isShouldInitModels: boolean;
6
+ run(): Promise<boolean>;
7
+ static getTemplate(configs: Map<string, any>, modelPaths: {
8
+ file: string;
9
+ path: string;
10
+ }[]): Promise<string>;
11
+ }
12
+ export default GenerateTypes;
@@ -0,0 +1,60 @@
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 AbstractCommand from "../modules/AbstractCommand.js";
10
+ import { BaseModel } from "../modules/BaseModel.js";
11
+ import * as url from 'url';
12
+ import fs from 'node:fs/promises';
13
+ class GenerateTypes extends AbstractCommand {
14
+ static get description() {
15
+ return 'Gererates TypeScript types';
16
+ }
17
+ async getTypesContent() {
18
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
19
+ const content = await fs.readFile(`${__dirname}/../../../src/types/types.ts`, 'utf8');
20
+ return content;
21
+ }
22
+ static isShouldInitModels = false;
23
+ async run() {
24
+ const template = await GenerateTypes.getTemplate(this.app.internalFilesCache.configs, this.app.internalFilesCache.modelPaths);
25
+ await fs.writeFile(`${process.cwd()}/genTypes.d.ts`, template);
26
+ console.log('TypeScript types generated successfully at genTypes.d.ts');
27
+ return Promise.resolve(true);
28
+ }
29
+ static async getTemplate(configs, modelPaths) {
30
+ const dir = process.cwd();
31
+ const configTypes = Array.from(configs)
32
+ .map((config) => {
33
+ return ` getConfig(configName: '${config[0]}'): ${JSON.stringify(config[1], null, 6)};`;
34
+ })
35
+ .join('\n');
36
+ const modelTypes = (await Promise.all(modelPaths.map(async (modelPath) => {
37
+ const modelModule = await import(__rewriteRelativeImportExtension(modelPath.path));
38
+ const path = modelPath.path.replace(dir, '.');
39
+ if (modelModule.default.prototype instanceof BaseModel) {
40
+ return ` getModel(modelName: '${modelPath.file}'): GetModelTypeFromClass<typeof import('${path}').default>`;
41
+ }
42
+ else {
43
+ return ` getModel(modelName: '${modelPath.file}'): import('${path}').default['mongooseModel']`;
44
+ }
45
+ }))).join('\n');
46
+ return `
47
+ import type {} from '@adaptivestone/framework/server.js';
48
+ import type { GetModelTypeFromClass } from '@adaptivestone/framework/modules/BaseModel.js';
49
+
50
+ declare module '@adaptivestone/framework/server.js' {
51
+ export interface IApp {
52
+ ${configTypes}
53
+ ${modelTypes}
54
+ }
55
+ }
56
+ `;
57
+ }
58
+ }
59
+ export default GenerateTypes;
60
+ //# sourceMappingURL=GenerateTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateTypes.js","sourceRoot":"","sources":["../../src/commands/GenerateTypes.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,MAAM,aAAc,SAAQ,eAAe;IACzC,MAAM,KAAK,WAAW;QACpB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC/B,GAAG,SAAS,8BAA8B,EAC1C,MAAM,CACP,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAElC,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAC9C,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,EACnC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CACvC,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAE/D,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAExE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,OAAyB,EACzB,UAA4C;QAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aACpC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,OAAO,8BAA8B,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;QAC7F,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,UAAU,GAAG,CACjB,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,MAAM,MAAM,kCAAC,SAAS,CAAC,IAAI,EAAC,CAAC;YACjD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,YAAY,SAAS,EAAE,CAAC;gBACvD,OAAO,4BAA4B,SAAS,CAAC,IAAI,4CAA4C,IAAI,aAAa,CAAC;YACjH,CAAC;iBAAM,CAAC;gBACN,OAAO,4BAA4B,SAAS,CAAC,IAAI,eAAe,IAAI,6BAA6B,CAAC;YACpG,CAAC;QACH,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;;;;;;QAMH,WAAW;QACX,UAAU;;;CAGjB,CAAC;IACA,CAAC;;AAGH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ export default GetOpenApiJson;
2
+ /**
3
+ * Command for generate documentation json file openApi
4
+ */
5
+ declare class GetOpenApiJson extends AbstractCommand {
6
+ /**
7
+ * You able to add command arguments for parsing there.
8
+ */
9
+ static get commandArguments(): {
10
+ output: {
11
+ type: string;
12
+ description: string;
13
+ };
14
+ };
15
+ run(): Promise<string>;
16
+ }
17
+ import AbstractCommand from '../modules/AbstractCommand.ts';