@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.
- package/CHANGELOG.md +1117 -528
- package/LICENCE +1 -1
- package/dist/Cli.d.ts +7 -0
- package/dist/Cli.js +19 -0
- package/dist/Cli.js.map +1 -0
- package/dist/cluster.d.ts +1 -0
- package/dist/cluster.js +18 -0
- package/dist/cluster.js.map +1 -0
- package/dist/commands/CreateUser.d.ts +32 -0
- package/dist/commands/CreateUser.js +83 -0
- package/dist/commands/CreateUser.js.map +1 -0
- package/dist/commands/Documentation.d.ts +5 -0
- package/dist/commands/Documentation.js +15 -0
- package/dist/commands/Documentation.js.map +1 -0
- package/dist/commands/DropIndex.d.ts +16 -0
- package/dist/commands/DropIndex.js +30 -0
- package/dist/commands/DropIndex.js.map +1 -0
- package/dist/commands/GenerateRandomBytes.d.ts +7 -0
- package/dist/commands/GenerateRandomBytes.js +18 -0
- package/dist/commands/GenerateRandomBytes.js.map +1 -0
- package/dist/commands/GenerateTypes.d.ts +11 -0
- package/dist/commands/GenerateTypes.js +52 -0
- package/dist/commands/GenerateTypes.js.map +1 -0
- package/dist/commands/GetOpenApiJson.d.ts +17 -0
- package/dist/commands/GetOpenApiJson.js +272 -0
- package/dist/commands/GetOpenApiJson.js.map +1 -0
- package/dist/commands/SyncIndexes.d.ts +6 -0
- package/dist/commands/SyncIndexes.js +31 -0
- package/dist/commands/SyncIndexes.js.map +1 -0
- package/dist/commands/migration/Create.d.ts +18 -0
- package/dist/commands/migration/Create.js +57 -0
- package/dist/commands/migration/Create.js.map +1 -0
- package/dist/commands/migration/Migrate.d.ts +6 -0
- package/dist/commands/migration/Migrate.js +43 -0
- package/dist/commands/migration/Migrate.js.map +1 -0
- package/dist/config/auth.d.ts +6 -0
- package/dist/config/auth.js +7 -0
- package/dist/config/auth.js.map +1 -0
- package/dist/config/http.d.ts +8 -0
- package/dist/config/http.js +10 -0
- package/dist/config/http.js.map +1 -0
- package/dist/config/i18n.d.ts +13 -0
- package/dist/config/i18n.js +13 -0
- package/dist/config/i18n.js.map +1 -0
- package/dist/config/ipDetector.d.ts +5 -0
- package/dist/config/ipDetector.js +15 -0
- package/dist/config/ipDetector.js.map +1 -0
- package/dist/config/log.d.ts +11 -0
- package/dist/config/log.js +20 -0
- package/dist/config/log.js.map +1 -0
- package/dist/config/mongo.d.ts +4 -0
- package/dist/config/mongo.js +4 -0
- package/dist/config/mongo.js.map +1 -0
- package/dist/config/rateLimiter.d.ts +13 -0
- package/dist/config/rateLimiter.js +17 -0
- package/dist/config/rateLimiter.js.map +1 -0
- package/dist/config/redis.d.ts +5 -0
- package/dist/config/redis.js +5 -0
- package/dist/config/redis.js.map +1 -0
- package/dist/config/validate.d.ts +4 -0
- package/dist/config/validate.js +4 -0
- package/dist/config/validate.js.map +1 -0
- package/dist/controllers/Auth.d.ts +131 -0
- package/dist/controllers/Auth.js +186 -0
- package/dist/controllers/Auth.js.map +1 -0
- package/dist/controllers/Home.d.ts +15 -0
- package/dist/controllers/Home.js +22 -0
- package/dist/controllers/Home.js.map +1 -0
- package/dist/controllers/index.d.ts +16 -0
- package/dist/controllers/index.js +59 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/folderConfig.d.ts +34 -0
- package/dist/folderConfig.js +14 -0
- package/dist/folderConfig.js.map +1 -0
- package/dist/helpers/appInstance.d.ts +3 -0
- package/dist/helpers/appInstance.js +8 -0
- package/dist/helpers/appInstance.js.map +1 -0
- package/dist/helpers/crypto.d.ts +3 -0
- package/dist/helpers/crypto.js +17 -0
- package/dist/helpers/crypto.js.map +1 -0
- package/dist/helpers/files.d.ts +16 -0
- package/dist/helpers/files.js +76 -0
- package/dist/helpers/files.js.map +1 -0
- package/dist/helpers/logger.d.ts +4 -0
- package/dist/helpers/logger.js +20 -0
- package/dist/helpers/logger.js.map +1 -0
- package/dist/helpers/redis/clearNamespace.d.ts +2 -0
- package/dist/helpers/redis/clearNamespace.js +14 -0
- package/dist/helpers/redis/clearNamespace.js.map +1 -0
- package/dist/helpers/redis/redisConnection.d.ts +6 -0
- package/dist/helpers/redis/redisConnection.js +48 -0
- package/dist/helpers/redis/redisConnection.js.map +1 -0
- package/dist/helpers/yup.d.ts +13 -0
- package/dist/helpers/yup.js +21 -0
- package/dist/helpers/yup.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/models/Lock.d.ts +90 -0
- package/dist/models/Lock.js +97 -0
- package/dist/models/Lock.js.map +1 -0
- package/dist/models/Migration.d.ts +13 -0
- package/dist/models/Migration.js +14 -0
- package/dist/models/Migration.js.map +1 -0
- package/dist/models/Sequence.d.ts +28 -0
- package/dist/models/Sequence.js +19 -0
- package/dist/models/Sequence.js.map +1 -0
- package/dist/models/User.d.ts +656 -0
- package/dist/models/User.js +291 -0
- package/dist/models/User.js.map +1 -0
- package/dist/models/UserOld.d.ts +179 -0
- package/dist/models/UserOld.js +230 -0
- package/dist/models/UserOld.js.map +1 -0
- package/dist/modules/AbstractCommand.d.ts +51 -0
- package/dist/modules/AbstractCommand.js +60 -0
- package/dist/modules/AbstractCommand.js.map +1 -0
- package/dist/modules/AbstractConnector.d.ts +5 -0
- package/dist/modules/AbstractConnector.js +8 -0
- package/dist/modules/AbstractConnector.js.map +1 -0
- package/dist/modules/AbstractController.d.ts +95 -0
- package/dist/modules/AbstractController.js +323 -0
- package/dist/modules/AbstractController.js.map +1 -0
- package/dist/modules/AbstractModel.d.ts +29 -0
- package/dist/modules/AbstractModel.js +42 -0
- package/dist/modules/AbstractModel.js.map +1 -0
- package/dist/modules/Base.d.ts +29 -0
- package/dist/modules/Base.js +58 -0
- package/dist/modules/Base.js.map +1 -0
- package/dist/modules/BaseCli.d.ts +25 -0
- package/dist/modules/BaseCli.js +147 -0
- package/dist/modules/BaseCli.js.map +1 -0
- package/dist/modules/BaseModel.d.ts +55 -0
- package/dist/modules/BaseModel.js +37 -0
- package/dist/modules/BaseModel.js.map +1 -0
- package/dist/server.d.ts +123 -0
- package/dist/server.js +468 -0
- package/dist/server.js.map +1 -0
- package/dist/services/cache/Cache.d.ts +31 -0
- package/dist/services/cache/Cache.js +102 -0
- package/dist/services/cache/Cache.js.map +1 -0
- package/dist/services/documentation/DocumentationGenerator.d.ts +11 -0
- package/dist/services/documentation/DocumentationGenerator.js +130 -0
- package/dist/services/documentation/DocumentationGenerator.js.map +1 -0
- package/dist/services/http/HttpServer.d.ts +35 -0
- package/dist/services/http/HttpServer.js +70 -0
- package/dist/services/http/HttpServer.js.map +1 -0
- package/dist/services/http/middleware/AbstractMiddleware.d.ts +26 -0
- package/dist/services/http/middleware/AbstractMiddleware.js +41 -0
- package/dist/services/http/middleware/AbstractMiddleware.js.map +1 -0
- package/dist/services/http/middleware/Auth.d.ts +9 -0
- package/dist/services/http/middleware/Auth.js +18 -0
- package/dist/services/http/middleware/Auth.js.map +1 -0
- package/dist/services/http/middleware/Cors.d.ts +12 -0
- package/dist/services/http/middleware/Cors.js +36 -0
- package/dist/services/http/middleware/Cors.js.map +1 -0
- package/dist/services/http/middleware/GetUserByToken.d.ts +27 -0
- package/dist/services/http/middleware/GetUserByToken.js +47 -0
- package/dist/services/http/middleware/GetUserByToken.js.map +1 -0
- package/dist/services/http/middleware/I18n.d.ts +23 -0
- package/dist/services/http/middleware/I18n.js +61 -0
- package/dist/services/http/middleware/I18n.js.map +1 -0
- package/dist/services/http/middleware/IpDetector.d.ts +14 -0
- package/dist/services/http/middleware/IpDetector.js +55 -0
- package/dist/services/http/middleware/IpDetector.js.map +1 -0
- package/dist/services/http/middleware/Pagination.d.ts +27 -0
- package/dist/services/http/middleware/Pagination.js +46 -0
- package/dist/services/http/middleware/Pagination.js.map +1 -0
- package/dist/services/http/middleware/PrepareAppInfo.d.ts +8 -0
- package/dist/services/http/middleware/PrepareAppInfo.js +17 -0
- package/dist/services/http/middleware/PrepareAppInfo.js.map +1 -0
- package/dist/services/http/middleware/RateLimiter.d.ts +26 -0
- package/dist/services/http/middleware/RateLimiter.js +102 -0
- package/dist/services/http/middleware/RateLimiter.js.map +1 -0
- package/dist/services/http/middleware/RequestLogger.d.ts +8 -0
- package/dist/services/http/middleware/RequestLogger.js +18 -0
- package/dist/services/http/middleware/RequestLogger.js.map +1 -0
- package/dist/services/http/middleware/RequestParser.d.ts +8 -0
- package/dist/services/http/middleware/RequestParser.js +35 -0
- package/dist/services/http/middleware/RequestParser.js.map +1 -0
- package/dist/services/http/middleware/Role.d.ts +12 -0
- package/dist/services/http/middleware/Role.js +24 -0
- package/dist/services/http/middleware/Role.js.map +1 -0
- package/dist/services/i18n/I18n.d.ts +15 -0
- package/dist/services/i18n/I18n.js +58 -0
- package/dist/services/i18n/I18n.js.map +1 -0
- package/dist/services/logging/SentryTransport.d.ts +13 -0
- package/dist/services/logging/SentryTransport.js +121 -0
- package/dist/services/logging/SentryTransport.js.map +1 -0
- package/dist/services/validate/ValidateService.d.ts +31 -0
- package/dist/services/validate/ValidateService.js +95 -0
- package/dist/services/validate/ValidateService.js.map +1 -0
- package/dist/services/validate/drivers/AbstractValidator.d.ts +14 -0
- package/dist/services/validate/drivers/AbstractValidator.js +29 -0
- package/dist/services/validate/drivers/AbstractValidator.js.map +1 -0
- package/dist/services/validate/drivers/CustomValidator.d.ts +14 -0
- package/dist/services/validate/drivers/CustomValidator.js +48 -0
- package/dist/services/validate/drivers/CustomValidator.js.map +1 -0
- package/dist/services/validate/drivers/YupValidator.d.ts +13 -0
- package/dist/services/validate/drivers/YupValidator.js +86 -0
- package/dist/services/validate/drivers/YupValidator.js.map +1 -0
- package/dist/tests/frameworkVitestSetup.d.ts +1 -0
- package/dist/tests/frameworkVitestSetup.js +9 -0
- package/dist/tests/frameworkVitestSetup.js.map +1 -0
- package/dist/tests/globalSetupVitest.d.ts +3 -0
- package/dist/tests/globalSetupVitest.js +29 -0
- package/dist/tests/globalSetupVitest.js.map +1 -0
- package/dist/tests/setupVitest.d.ts +1 -0
- package/dist/tests/setupVitest.js +91 -0
- package/dist/tests/setupVitest.js.map +1 -0
- package/dist/tests/testHelpers.d.ts +340 -0
- package/dist/tests/testHelpers.js +48 -0
- package/dist/tests/testHelpers.js.map +1 -0
- package/package.json +53 -40
- package/Cli.js +0 -22
- package/cluster.js +0 -27
- package/commands/CreateUser.js +0 -75
- package/commands/Documentation.js +0 -17
- package/commands/DropIndex.js +0 -29
- package/commands/GenerateRandomBytes.js +0 -21
- package/commands/GetOpenApiJson.js +0 -325
- package/commands/SyncIndexes.js +0 -39
- package/commands/migration/Create.js +0 -61
- package/commands/migration/Migrate.js +0 -55
- package/config/auth.js +0 -9
- package/config/http.js +0 -9
- package/config/i18n.js +0 -12
- package/config/ipDetector.js +0 -14
- package/config/log.js +0 -22
- package/config/mail.js +0 -29
- package/config/mongo.js +0 -3
- package/config/rateLimiter.js +0 -16
- package/config/redis.js +0 -4
- package/config/validate.js +0 -3
- package/controllers/Auth.js +0 -210
- package/controllers/Home.js +0 -28
- package/controllers/index.js +0 -60
- package/folderConfig.js +0 -14
- package/helpers/files.js +0 -79
- package/helpers/logger.js +0 -17
- package/helpers/redis/clearNamespace.js +0 -14
- package/helpers/yup.js +0 -24
- package/index.js +0 -8
- package/jsconfig.json +0 -9
- package/locales/en/translation.json +0 -27
- package/locales/ru/translation.json +0 -27
- package/migrations/.gitkeep +0 -0
- package/models/Migration.js +0 -15
- package/models/Sequence.js +0 -22
- package/models/User.js +0 -263
- package/modules/AbstractCommand.js +0 -43
- package/modules/AbstractConnector.js +0 -9
- package/modules/AbstractController.js +0 -413
- package/modules/AbstractModel.d.ts +0 -48
- package/modules/AbstractModel.js +0 -92
- package/modules/Base.d.ts +0 -37
- package/modules/Base.js +0 -63
- package/modules/BaseCli.js +0 -97
- package/server.d.ts +0 -98
- package/server.js +0 -438
- package/services/cache/Cache.d.ts +0 -35
- package/services/cache/Cache.js +0 -124
- package/services/documentation/DocumentationGenerator.js +0 -169
- package/services/http/HttpServer.js +0 -96
- package/services/http/middleware/AbstractMiddleware.js +0 -51
- package/services/http/middleware/Auth.js +0 -20
- package/services/http/middleware/Cors.js +0 -46
- package/services/http/middleware/GetUserByToken.js +0 -47
- package/services/http/middleware/I18n.js +0 -117
- package/services/http/middleware/IpDetector.js +0 -59
- package/services/http/middleware/Pagination.js +0 -57
- package/services/http/middleware/PrepareAppInfo.js +0 -18
- package/services/http/middleware/RateLimiter.js +0 -134
- package/services/http/middleware/RequestLogger.js +0 -22
- package/services/http/middleware/RequestParser.js +0 -40
- package/services/http/middleware/Role.js +0 -29
- package/services/messaging/email/index.js +0 -217
- package/services/messaging/email/resources/.gitkeep +0 -1
- package/services/messaging/email/templates/emptyTemplate/html.pug +0 -9
- package/services/messaging/email/templates/emptyTemplate/subject.pug +0 -1
- package/services/messaging/email/templates/emptyTemplate/text.pug +0 -1
- package/services/messaging/email/templates/recovery/html.pug +0 -8
- package/services/messaging/email/templates/recovery/subject.pug +0 -2
- package/services/messaging/email/templates/recovery/text.pug +0 -3
- package/services/messaging/email/templates/verification/html.pug +0 -10
- package/services/messaging/email/templates/verification/subject.pug +0 -1
- package/services/messaging/email/templates/verification/text.pug +0 -1
- package/services/messaging/index.js +0 -3
- package/services/validate/ValidateService.js +0 -157
- package/services/validate/drivers/AbstractValidator.js +0 -37
- package/services/validate/drivers/CustomValidator.js +0 -51
- package/services/validate/drivers/YupValidator.js +0 -103
- package/tests/globalSetupVitest.js +0 -35
- package/tests/setup.js +0 -118
- package/tests/setupVitest.js +0 -109
- package/types/Expand.d.ts +0 -11
- package/types/TFoldersConfig.d.ts +0 -17
- package/views/404.pug +0 -3
- package/views/home.pug +0 -3
- package/views/layouts/base.pug +0 -39
- package/vitest.config.js +0 -16
- /package/{commands → dist/migrations}/.gitkeep +0 -0
package/LICENCE
CHANGED
package/dist/Cli.d.ts
ADDED
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
|
package/dist/Cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,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 {};
|
package/dist/cluster.js
ADDED
|
@@ -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
|
+
readonly id: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly description: "User id to find user";
|
|
11
|
+
};
|
|
12
|
+
readonly email: {
|
|
13
|
+
readonly type: "string";
|
|
14
|
+
readonly description: "User id to find/create user";
|
|
15
|
+
};
|
|
16
|
+
readonly password: {
|
|
17
|
+
readonly type: "string";
|
|
18
|
+
readonly description: "New password for user";
|
|
19
|
+
};
|
|
20
|
+
readonly roles: {
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
readonly description: "User roles comma separated string (--roles=user,admin,someOtherRoles)";
|
|
23
|
+
};
|
|
24
|
+
readonly update: {
|
|
25
|
+
readonly type: "boolean";
|
|
26
|
+
readonly default: false;
|
|
27
|
+
readonly description: "Update user if it exists";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
run(): Promise<boolean>;
|
|
31
|
+
}
|
|
32
|
+
export default CreateUser;
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
|
38
|
+
.args;
|
|
39
|
+
if (!email && !id) {
|
|
40
|
+
this.logger?.error('Input validation failded');
|
|
41
|
+
this.logger?.error('Please add "email" or "id" variables');
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const query = {};
|
|
45
|
+
if (id) {
|
|
46
|
+
query._id = id;
|
|
47
|
+
}
|
|
48
|
+
else if (email) {
|
|
49
|
+
query.email = email;
|
|
50
|
+
}
|
|
51
|
+
let user = await User.findOne(query);
|
|
52
|
+
if (user && !update) {
|
|
53
|
+
this.logger?.error('We are found a user in database. But "update" option is not providing. Exitin');
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (!user && !password) {
|
|
57
|
+
this.logger?.error('For a new user we alway asking for a password. Please provide it and rerun command');
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (!user && !email) {
|
|
61
|
+
this.logger?.error('For a new user we alway asking for a email. Please provide it and rerun command');
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!user) {
|
|
65
|
+
user = new User();
|
|
66
|
+
}
|
|
67
|
+
if (password) {
|
|
68
|
+
user.password = password;
|
|
69
|
+
}
|
|
70
|
+
if (email) {
|
|
71
|
+
user.email = email;
|
|
72
|
+
}
|
|
73
|
+
if (roles) {
|
|
74
|
+
user.roles = roles.split(',');
|
|
75
|
+
}
|
|
76
|
+
await user.save();
|
|
77
|
+
await user.generateToken();
|
|
78
|
+
this.logger?.info(`User was created/updated ${JSON.stringify(user, null, 4)}`);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export default CreateUser;
|
|
83
|
+
//# 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,15 @@
|
|
|
1
|
+
import ControllerManager from "../controllers/index.js";
|
|
2
|
+
import AbstractCommand from "../modules/AbstractCommand.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,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,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,KAAe,CAAC,CAAC;QAE3D,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,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,11 @@
|
|
|
1
|
+
import AbstractCommand from '../modules/AbstractCommand.ts';
|
|
2
|
+
declare class GenerateTypes extends AbstractCommand {
|
|
3
|
+
static get description(): string;
|
|
4
|
+
static isShouldInitModels: boolean;
|
|
5
|
+
run(): Promise<boolean>;
|
|
6
|
+
static getTemplate(configs: Map<string, unknown>, modelPaths: {
|
|
7
|
+
file: string;
|
|
8
|
+
path: string;
|
|
9
|
+
}[]): Promise<string>;
|
|
10
|
+
}
|
|
11
|
+
export default GenerateTypes;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 fs from 'node:fs/promises';
|
|
10
|
+
import AbstractCommand from "../modules/AbstractCommand.js";
|
|
11
|
+
import { BaseModel } from "../modules/BaseModel.js";
|
|
12
|
+
class GenerateTypes extends AbstractCommand {
|
|
13
|
+
static get description() {
|
|
14
|
+
return 'Gererates TypeScript types';
|
|
15
|
+
}
|
|
16
|
+
static isShouldInitModels = false;
|
|
17
|
+
async run() {
|
|
18
|
+
const template = await GenerateTypes.getTemplate(this.app.internalFilesCache.configs, this.app.internalFilesCache.modelPaths);
|
|
19
|
+
await fs.writeFile(`${process.cwd()}/genTypes.d.ts`, template);
|
|
20
|
+
console.log('TypeScript types generated successfully at genTypes.d.ts');
|
|
21
|
+
return Promise.resolve(true);
|
|
22
|
+
}
|
|
23
|
+
static async getTemplate(configs, modelPaths) {
|
|
24
|
+
const dir = process.cwd();
|
|
25
|
+
const configTypes = Array.from(configs)
|
|
26
|
+
.map((config) => ` getConfig(configName: '${config[0]}'): ${JSON.stringify(config[1], null, 6)};`)
|
|
27
|
+
.join('\n');
|
|
28
|
+
const modelTypes = (await Promise.all(modelPaths.map(async (modelPath) => {
|
|
29
|
+
const modelModule = await import(__rewriteRelativeImportExtension(modelPath.path));
|
|
30
|
+
const path = modelPath.path.replace(dir, '.');
|
|
31
|
+
if (modelModule.default.prototype instanceof BaseModel) {
|
|
32
|
+
return ` getModel(modelName: '${modelPath.file}'): GetModelTypeFromClass<typeof import('${path}').default>`;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return ` getModel(modelName: '${modelPath.file}'): import('${path}').default['mongooseModel']`;
|
|
36
|
+
}
|
|
37
|
+
}))).join('\n');
|
|
38
|
+
return `
|
|
39
|
+
import type {} from '@adaptivestone/framework/server.js';
|
|
40
|
+
import type { GetModelTypeFromClass } from '@adaptivestone/framework/modules/BaseModel.js';
|
|
41
|
+
|
|
42
|
+
declare module '@adaptivestone/framework/server.js' {
|
|
43
|
+
export interface IApp {
|
|
44
|
+
${configTypes}
|
|
45
|
+
${modelTypes}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export default GenerateTypes;
|
|
52
|
+
//# 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,kBAAkB,CAAC;AAClC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,aAAc,SAAQ,eAAe;IACzC,MAAM,KAAK,WAAW;QACpB,OAAO,4BAA4B,CAAC;IACtC,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,OAA6B,EAC7B,UAA4C;QAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aACpC,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,8BAA8B,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CACtF;aACA,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';
|