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

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 +126 -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 +36 -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,128 @@
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.21
41
+
42
+ [FIX] fix bug with missed model options
43
+
44
+ ### 5.0.0-beta.20
45
+
46
+ [FIX] fix bug with Lock model index
47
+ [NEW] BaseModel add Virtuals
48
+
49
+ ### 5.0.0-beta.19
50
+
51
+ [NEW] intruducing new model type. BaseModel. Features - simplifie works with typescript. And based on statics
52
+ [BREAKING] all models now should be extended from BaseModel. This is a potencial breaking change specially for User model.
53
+
54
+ ### 5.0.0-beta.18
55
+
56
+ [UPDATE] move away connection from mongooseModels to server itself (preparation for different model types)
57
+ [BREAKING] potencial. We are removed callback from mongooseModels contrctuctor. It was not used in code.
58
+ [NEW] add appInstance helper to access app instance from anywhere without passing it
59
+
60
+ ### 5.0.0-beta.17
61
+
62
+ [NEW] add GenerateTypes command
63
+
64
+ ### 5.0.0-beta.16
65
+
66
+ [UPDATE] update deps
67
+ [UPDATE] new app getter internalFilesCache
68
+ [UPDATE] command new static props to load isShouldGetModelPaths
69
+
70
+ ### 5.0.0-beta.15
71
+
72
+ [FIX] fix missing folder migrations in dist folder (hope that will be finally)
73
+
74
+ ### 5.0.0-beta.14
75
+
76
+ [FIX] fix missing folder migrations in dist folder
77
+
78
+ ### 5.0.0-beta.13
79
+
80
+ [UPDATE] only process .ts or .js files (not .map files)
81
+
82
+ ### 5.0.0-beta.12
83
+
84
+ [BREAKING] Remove jest support for testing
85
+ [NEW] initial move to typescript. Potencially breaking.
86
+ [NEW] introduce src and dist folders
87
+
88
+ ### 5.0.0-beta.11
89
+
90
+ [NEW] commands typing
91
+ [NEW] commands support TS files
92
+ [UPDATE] update deps
93
+
94
+ ### 5.0.0-beta.9
95
+
96
+ [BREAKING] move email module to separate package @adaptivestone/framework-module-email. Please use it if you want to send emails
97
+ [NEW] app now contains 'frameworkFolder' folder the framework located. Mostly for modules usage
98
+ [BREAKING] remove VIEWS folders at all. Should not afffect any user as this was not used internally
99
+ [UPDATE] update typing
100
+ [UPDATE] change redis -> @redis/client as we are using only client from pakage
101
+ [BREAKING] removed noidemailer-sendmail-transport. Not needed anymore and not recommended to use as well
102
+
103
+ ### 5.0.0-beta.8
104
+
105
+ [UPDATE] update deps
106
+ [NEW] Lock model for working locks via mongoDB
107
+
108
+ ### 5.0.0-beta.7
109
+
110
+ [UPDATE] update deps
111
+ [UPDATE] change vitest shutdown behavior as mongo driver v6.13 change befaviur that affect us (MongoClient.close now closes any outstanding cursors)
112
+
113
+ ### 5.0.0-beta.5
114
+
115
+ [BREAKING] remove minimist CLI parsing and replace it by commandArguments parser
116
+ [UPDATE] migrated from eslint-plugin-import to eslint-plugin-import-x
117
+
118
+ ### 5.0.0-beta.5
119
+
120
+ [UPDATE] migrate to eslint 9 and away from aibnb styles (they are abonded)
121
+
122
+ ### 5.0.0-beta.4
123
+
124
+ [NEW] on shutdown event now after timeout we are forcing to shutdown
125
+
1
126
  ### 5.0.0-beta.2
2
127
 
3
128
  [UPDATE] update deps
@@ -458,7 +583,7 @@ await doc.populate([
458
583
  [UPDATE] update deps
459
584
  [UPDATE] winston console transport now using timestapms
460
585
  [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
586
+ [NEW] Request also works with req.query, but req.body have bigger priority
462
587
 
463
588
  ### 2.18.0
464
589
 
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';