@solidxai/core 0.1.4 → 0.1.5-beta.0
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/.claude/settings.local.json +8 -0
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants.d.ts +3 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -12
- package/dist/constants.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.d.ts +1 -4
- package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -0
- package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/role-metadata.controller.js +15 -0
- package/dist/controllers/role-metadata.controller.js.map +1 -1
- package/dist/dtos/create-email-template.dto.d.ts.map +1 -1
- package/dist/dtos/create-email-template.dto.js.map +1 -1
- package/dist/dtos/create-list-of-values.dto.d.ts.map +1 -1
- package/dist/dtos/create-list-of-values.dto.js.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/create-security-rule.dto.js.map +1 -1
- package/dist/dtos/create-sms-template.dto.d.ts.map +1 -1
- package/dist/dtos/create-sms-template.dto.js.map +1 -1
- package/dist/dtos/create-view-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-view-metadata.dto.js.map +1 -1
- package/dist/dtos/otp-sign-in.dto.d.ts +1 -1
- package/dist/dtos/otp-sign-in.dto.d.ts.map +1 -1
- package/dist/dtos/otp-sign-in.dto.js +2 -2
- package/dist/dtos/otp-sign-in.dto.js.map +1 -1
- package/dist/dtos/otp-sign-up.dto.d.ts +2 -2
- package/dist/dtos/otp-sign-up.dto.d.ts.map +1 -1
- package/dist/dtos/otp-sign-up.dto.js +2 -2
- package/dist/dtos/otp-sign-up.dto.js.map +1 -1
- package/dist/dtos/resolve-s3-url.dto.d.ts +2 -5
- package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -1
- package/dist/dtos/resolve-s3-url.dto.js +1 -13
- package/dist/dtos/resolve-s3-url.dto.js.map +1 -1
- package/dist/dtos/sign-up.dto.d.ts.map +1 -1
- package/dist/dtos/sign-up.dto.js.map +1 -1
- package/dist/dtos/update-email-template.dto.d.ts.map +1 -1
- package/dist/dtos/update-email-template.dto.js.map +1 -1
- package/dist/dtos/update-list-of-values.dto.d.ts.map +1 -1
- package/dist/dtos/update-list-of-values.dto.js.map +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/update-security-rule.dto.js.map +1 -1
- package/dist/dtos/update-sms-template.dto.d.ts.map +1 -1
- package/dist/dtos/update-sms-template.dto.js.map +1 -1
- package/dist/dtos/update-view-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-view-metadata.dto.js.map +1 -1
- package/dist/entities/user.entity.d.ts +1 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +6 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +2 -0
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +33 -23
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +3 -0
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +36 -23
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/security.helper.js +1 -0
- package/dist/helpers/security.helper.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/repository/solid-base.repository.d.ts +10 -1
- package/dist/repository/solid-base.repository.d.ts.map +1 -1
- package/dist/repository/solid-base.repository.js +109 -0
- package/dist/repository/solid-base.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +2 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +141 -71
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +12 -25
- package/dist/services/authentication.service.d.ts +22 -8
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +228 -214
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +4 -0
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +66 -32
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +7 -4
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file/disk-file.service.d.ts +0 -2
- package/dist/services/file/disk-file.service.d.ts.map +1 -1
- package/dist/services/file/disk-file.service.js +7 -16
- package/dist/services/file/disk-file.service.js.map +1 -1
- package/dist/services/file/index.d.ts +1 -0
- package/dist/services/file/index.d.ts.map +1 -1
- package/dist/services/file/index.js +1 -0
- package/dist/services/file/index.js.map +1 -1
- package/dist/services/file/storage-path-builder.d.ts +17 -0
- package/dist/services/file/storage-path-builder.d.ts.map +1 -0
- package/dist/{seeders/sms-template-seeder.service.js → services/file/storage-path-builder.js} +45 -35
- package/dist/services/file/storage-path-builder.js.map +1 -0
- package/dist/services/media.service.d.ts +1 -1
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +45 -6
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +46 -7
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +4 -6
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +16 -14
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +3 -2
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +7 -4
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +24 -2
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +8 -6
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/solid-core.module.d.ts +3 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +45 -9
- package/dist/solid-core.module.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +35 -2
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/package.json +8 -2
- package/src/constants/error-messages.ts +1 -0
- package/src/constants.ts +3 -3
- package/src/controllers/role-metadata.controller.ts +26 -18
- package/src/dtos/create-email-template.dto.ts +7 -0
- package/src/dtos/create-list-of-values.dto.ts +7 -0
- package/src/dtos/create-menu-item-metadata.dto.ts +12 -1
- package/src/dtos/create-role-metadata.dto.ts +9 -0
- package/src/dtos/create-scheduled-job.dto.ts +14 -0
- package/src/dtos/create-security-rule.dto.ts +6 -0
- package/src/dtos/create-sms-template.dto.ts +6 -0
- package/src/dtos/create-view-metadata.dto.ts +11 -0
- package/src/dtos/otp-sign-in.dto.ts +3 -3
- package/src/dtos/otp-sign-up.dto.ts +3 -3
- package/src/dtos/resolve-s3-url.dto.ts +2 -12
- package/src/dtos/sign-up.dto.ts +0 -2
- package/src/dtos/update-email-template.dto.ts +6 -0
- package/src/dtos/update-list-of-values.dto.ts +8 -0
- package/src/dtos/update-menu-item-metadata.dto.ts +12 -0
- package/src/dtos/update-scheduled-job.dto.ts +15 -0
- package/src/dtos/update-security-rule.dto.ts +7 -0
- package/src/dtos/update-sms-template.dto.ts +32 -32
- package/src/dtos/update-view-metadata.dto.ts +12 -0
- package/src/entities/user.entity.ts +3 -0
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +43 -32
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +45 -33
- package/src/helpers/security.helper.ts +1 -1
- package/src/index.ts +0 -4
- package/src/repository/solid-base.repository.ts +172 -1
- package/src/seeders/module-metadata-seeder.service.ts +188 -126
- package/src/seeders/permission-metadata-seeder.service.ts +1 -4
- package/src/seeders/seed-data/solid-core-metadata.json +12 -25
- package/src/services/authentication.service.ts +268 -266
- package/src/services/crud-helper.service.ts +79 -36
- package/src/services/crud.service.ts +9 -4
- package/src/services/field-metadata.service.ts +0 -71
- package/src/services/file/disk-file.service.ts +8 -18
- package/src/services/file/index.ts +1 -0
- package/src/services/file/storage-path-builder.ts +56 -0
- package/src/services/media.service.ts +13 -7
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +1 -1
- package/src/services/mediaStorageProviders/file-storage-provider.ts +13 -8
- package/src/services/module-metadata.service.ts +18 -15
- package/src/services/setting.service.ts +5 -3
- package/src/services/settings/default-settings-provider.service.ts +5 -3
- package/src/solid-core.module.ts +16 -12
- package/src/testing/adapters/ui/playwright-adapter.ts +1 -1
- package/dist/passport-strategies/local.strategy.d.ts +0 -15
- package/dist/passport-strategies/local.strategy.d.ts.map +0 -1
- package/dist/passport-strategies/local.strategy.js +0 -44
- package/dist/passport-strategies/local.strategy.js.map +0 -1
- package/dist/seeders/email-template-seeder.service.d.ts +0 -10
- package/dist/seeders/email-template-seeder.service.d.ts.map +0 -1
- package/dist/seeders/email-template-seeder.service.js +0 -84
- package/dist/seeders/email-template-seeder.service.js.map +0 -1
- package/dist/seeders/sms-template-seeder.service.d.ts +0 -10
- package/dist/seeders/sms-template-seeder.service.d.ts.map +0 -1
- package/dist/seeders/sms-template-seeder.service.js.map +0 -1
- package/dist/seeders/user-seeder.service.d.ts +0 -10
- package/dist/seeders/user-seeder.service.d.ts.map +0 -1
- package/dist/seeders/user-seeder.service.js +0 -44
- package/dist/seeders/user-seeder.service.js.map +0 -1
- package/src/passport-strategies/local.strategy.ts +0 -28
- package/src/seeders/email-template-seeder.service.ts +0 -49
- package/src/seeders/sms-template-seeder.service.ts +0 -50
- package/src/seeders/user-seeder.service.ts +0 -33
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.PlaywrightAdapter = void 0;
|
|
4
|
-
const playwright_1 = require("playwright");
|
|
5
37
|
function isAbsoluteUrl(url) {
|
|
6
38
|
return /^https?:\/\//i.test(url);
|
|
7
39
|
}
|
|
@@ -11,7 +43,8 @@ class PlaywrightAdapter {
|
|
|
11
43
|
this.headless = opts?.headless ?? true;
|
|
12
44
|
}
|
|
13
45
|
async start() {
|
|
14
|
-
|
|
46
|
+
const { chromium } = await Promise.resolve().then(() => __importStar(require('playwright')));
|
|
47
|
+
this.browser = await chromium.launch({ headless: this.headless });
|
|
15
48
|
this.context = await this.browser.newContext();
|
|
16
49
|
this.page = await this.context.newPage();
|
|
17
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-adapter.js","sourceRoot":"","sources":["../../../../src/testing/adapters/ui/playwright-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"playwright-adapter.js","sourceRoot":"","sources":["../../../../src/testing/adapters/ui/playwright-adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAa,iBAAiB;IAO5B,YAAY,IAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA7CD,8CA6CC","sourcesContent":["import type { Browser, BrowserContext, Page } from \"playwright\";\n\nimport type { PlaywrightAdapterOptions } from \"./ui.types\";\n\nfunction isAbsoluteUrl(url: string): boolean {\n return /^https?:\\/\\//i.test(url);\n}\n\nexport class PlaywrightAdapter {\n private readonly baseUrl?: string;\n private readonly headless: boolean;\n private browser?: Browser;\n private context?: BrowserContext;\n public page?: Page;\n\n constructor(opts?: PlaywrightAdapterOptions) {\n this.baseUrl = opts?.baseUrl;\n this.headless = opts?.headless ?? true;\n }\n\n async start(): Promise<void> {\n const { chromium } = await import('playwright');\n this.browser = await chromium.launch({ headless: this.headless });\n this.context = await this.browser.newContext();\n this.page = await this.context.newPage();\n }\n\n async stop(): Promise<void> {\n try {\n if (this.context) {\n await this.context.close();\n }\n } finally {\n this.context = undefined;\n this.page = undefined;\n }\n\n try {\n if (this.browser) {\n await this.browser.close();\n }\n } finally {\n this.browser = undefined;\n }\n }\n\n resolveUrl(url: string): string {\n if (isAbsoluteUrl(url)) return url;\n if (this.baseUrl) {\n return new URL(url, this.baseUrl).toString();\n }\n return url;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidxai/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5-beta.0",
|
|
4
4
|
"description": "This module is a NestJS module containing all the required core providers required by a Solid application",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"@nestjs/throttler": "^6.4.0",
|
|
42
42
|
"amqplib": "^0.10.4",
|
|
43
43
|
"axios": "^1.7.0",
|
|
44
|
+
"form-data": "^4.0.0",
|
|
44
45
|
"bcrypt": "^5.1.1",
|
|
45
46
|
"bson": "^6.10.1",
|
|
46
47
|
"cache-manager": "^5.5.2",
|
|
@@ -76,7 +77,13 @@
|
|
|
76
77
|
"uuid": "^9.0.1",
|
|
77
78
|
"xlsx": "^0.18.5"
|
|
78
79
|
},
|
|
80
|
+
"peerDependenciesMeta": {
|
|
81
|
+
"playwright": {
|
|
82
|
+
"optional": true
|
|
83
|
+
}
|
|
84
|
+
},
|
|
79
85
|
"peerDependencies": {
|
|
86
|
+
"playwright": ">=1.0.0",
|
|
80
87
|
"@nestjs/axios": "^3.0.2",
|
|
81
88
|
"@nestjs/cache-manager": "^2.2.2",
|
|
82
89
|
"@nestjs/common": "^10.0.0",
|
|
@@ -119,7 +126,6 @@
|
|
|
119
126
|
"@nestjs/testing": "^10.0.0",
|
|
120
127
|
"@nestjs/typeorm": "^10.0.1",
|
|
121
128
|
"@solidxai/code-builder": "^0.0.2",
|
|
122
|
-
"@playwright/test": "^1.50.0",
|
|
123
129
|
"@types/express": "^4.17.17",
|
|
124
130
|
"@types/hapi__joi": "^17.1.12",
|
|
125
131
|
"@types/jest": "^29.5.2",
|
|
@@ -5,6 +5,7 @@ export const ERROR_MESSAGES = {
|
|
|
5
5
|
USER_NOT_FOUND: 'User does not exist.',
|
|
6
6
|
USER_NOT_ACTIVE: 'User profile is not activated.',
|
|
7
7
|
USER_INACTIVE: 'User is inactive.',
|
|
8
|
+
ACCOUNT_BLOCKED: 'Your account has been blocked due to multiple failed login attempts.',
|
|
8
9
|
PASSWORD_INCORRECT: 'Password does not match.',
|
|
9
10
|
PUBLIC_REGISTRATION_DISABLED: 'Public registrations are disabled.',
|
|
10
11
|
UNIQUE_CONSTRAINT_VIOLATION: 'A unique constraint violation occurred.',
|
package/src/constants.ts
CHANGED
|
@@ -9,13 +9,13 @@ export const {
|
|
|
9
9
|
} = new ConfigurableModuleBuilder<QueuesModuleOptions>().build();
|
|
10
10
|
export const REQUEST_USER_KEY = 'user';
|
|
11
11
|
|
|
12
|
-
export enum
|
|
12
|
+
export enum PasswordlessLoginValidateWhatSources {
|
|
13
13
|
EMAIL = 'email',
|
|
14
14
|
MOBILE = 'mobile',
|
|
15
|
-
|
|
15
|
+
SELECTABLE = 'selectable',
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export enum
|
|
18
|
+
export enum PasswordlessRegistrationValidateWhatSources {
|
|
19
19
|
EMAIL = 'email',
|
|
20
20
|
MOBILE = 'mobile',
|
|
21
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete } from '@nestjs/common';
|
|
1
|
+
import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';
|
|
2
2
|
import { AnyFilesInterceptor } from "@nestjs/platform-express";
|
|
3
3
|
import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
|
|
4
4
|
import { RoleMetadataService } from '../services/role-metadata.service';
|
|
@@ -7,31 +7,39 @@ import { UpdateRoleMetadataDto } from '../dtos/update-role-metadata.dto';
|
|
|
7
7
|
import { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';
|
|
8
8
|
import { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';
|
|
9
9
|
|
|
10
|
-
@ApiTags('Solid Core')
|
|
10
|
+
@ApiTags('Solid Core')
|
|
11
11
|
@Controller('role-metadata') //FIXME: Change this to the model plural name
|
|
12
12
|
export class RoleMetadataController {
|
|
13
|
-
constructor(private readonly service: RoleMetadataService) {}
|
|
13
|
+
constructor(private readonly service: RoleMetadataService) { }
|
|
14
14
|
|
|
15
15
|
@ApiBearerAuth("jwt")
|
|
16
16
|
@Post()
|
|
17
17
|
@UseInterceptors(AnyFilesInterceptor())
|
|
18
|
-
create(@Body() createDto: CreateRoleMetadataDto, @UploadedFiles() files: Array<Express.Multer.File
|
|
19
|
-
return this.service.create(createDto, files,solidRequestContext);
|
|
18
|
+
create(@Body() createDto: CreateRoleMetadataDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
19
|
+
return this.service.create(createDto, files, solidRequestContext);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
@ApiBearerAuth("jwt")
|
|
23
23
|
@Post('/bulk')
|
|
24
24
|
@UseInterceptors(AnyFilesInterceptor())
|
|
25
|
-
insertMany(@Body() createDtos: CreateRoleMetadataDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []
|
|
26
|
-
return this.service.insertMany(createDtos, filesArray,solidRequestContext);
|
|
25
|
+
insertMany(@Body() createDtos: CreateRoleMetadataDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = [], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
26
|
+
return this.service.insertMany(createDtos, filesArray, solidRequestContext);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
@ApiBearerAuth("jwt")
|
|
31
31
|
@Put(':id')
|
|
32
32
|
@UseInterceptors(AnyFilesInterceptor())
|
|
33
|
-
update(@Param('id') id: number, @Body() updateDto: UpdateRoleMetadataDto, @UploadedFiles() files: Array<Express.Multer.File
|
|
34
|
-
return this.service.update(id, updateDto, files,false,solidRequestContext);
|
|
33
|
+
update(@Param('id') id: number, @Body() updateDto: UpdateRoleMetadataDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
34
|
+
return this.service.update(id, updateDto, files, false, solidRequestContext);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@ApiBearerAuth("jwt")
|
|
39
|
+
@Patch(':id')
|
|
40
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
41
|
+
partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateRoleMetadataDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
42
|
+
return this.service.update(id, updateDto, files, true);
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
@ApiBearerAuth("jwt")
|
|
@@ -40,31 +48,31 @@ export class RoleMetadataController {
|
|
|
40
48
|
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
41
49
|
@ApiQuery({ name: 'offset', required: false, type: Number })
|
|
42
50
|
@ApiQuery({ name: 'fields', required: false, type: Array })
|
|
43
|
-
@ApiQuery({ name: 'sort', required: false, type: Array })
|
|
51
|
+
@ApiQuery({ name: 'sort', required: false, type: Array })
|
|
44
52
|
@ApiQuery({ name: 'groupBy', required: false, type: Array })
|
|
45
53
|
@ApiQuery({ name: 'populate', required: false, type: Array })
|
|
46
54
|
@ApiQuery({ name: 'populateMedia', required: false, type: Array })
|
|
47
55
|
@ApiQuery({ name: 'filters', required: false, type: Array })
|
|
48
56
|
@Get()
|
|
49
|
-
async findMany(@Query() query: any
|
|
50
|
-
return this.service.find(query,solidRequestContext);
|
|
57
|
+
async findMany(@Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
58
|
+
return this.service.find(query, solidRequestContext);
|
|
51
59
|
}
|
|
52
60
|
|
|
53
61
|
@ApiBearerAuth("jwt")
|
|
54
62
|
@Get(':id')
|
|
55
|
-
async findOne(@Param('id') id: string, @Query() query: any
|
|
56
|
-
return this.service.findOne(+id, query,solidRequestContext);
|
|
63
|
+
async findOne(@Param('id') id: string, @Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
64
|
+
return this.service.findOne(+id, query, solidRequestContext);
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
@Delete('/bulk')
|
|
60
|
-
async deleteMany(@Body() ids: number[]
|
|
61
|
-
return this.service.deleteMany(ids,solidRequestContext);
|
|
68
|
+
async deleteMany(@Body() ids: number[], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
69
|
+
return this.service.deleteMany(ids, solidRequestContext);
|
|
62
70
|
}
|
|
63
71
|
|
|
64
72
|
@ApiBearerAuth("jwt")
|
|
65
73
|
@Delete(':id')
|
|
66
|
-
async delete
|
|
67
|
-
return this.service.delete(id,solidRequestContext);
|
|
74
|
+
async delete(@Param('id') id: number, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
|
|
75
|
+
return this.service.delete(id, solidRequestContext);
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
|
|
@@ -9,31 +9,38 @@ export class CreateEmailTemplateDto {
|
|
|
9
9
|
@IsString()
|
|
10
10
|
@ApiProperty()
|
|
11
11
|
name: string;
|
|
12
|
+
|
|
12
13
|
@IsNotEmpty()
|
|
13
14
|
@IsString()
|
|
14
15
|
@ApiProperty()
|
|
15
16
|
displayName: string;
|
|
17
|
+
|
|
16
18
|
@IsNotEmpty()
|
|
17
19
|
@IsString()
|
|
18
20
|
@ApiProperty()
|
|
19
21
|
body: string;
|
|
22
|
+
|
|
20
23
|
@IsNotEmpty()
|
|
21
24
|
@IsString()
|
|
22
25
|
@ApiProperty()
|
|
23
26
|
subject: string = "{}";
|
|
27
|
+
|
|
24
28
|
@IsOptional()
|
|
25
29
|
@IsString()
|
|
26
30
|
@ApiProperty()
|
|
27
31
|
description: string;
|
|
32
|
+
|
|
28
33
|
@IsOptional()
|
|
29
34
|
@IsBoolean()
|
|
30
35
|
@ApiProperty()
|
|
31
36
|
active: boolean = true;
|
|
37
|
+
|
|
32
38
|
@IsOptional()
|
|
33
39
|
@IsArray()
|
|
34
40
|
@ValidateNested({ each: true })
|
|
35
41
|
@Type(() => CreateEmailAttachmentDto)
|
|
36
42
|
attachments: CreateEmailAttachmentDto[];
|
|
43
|
+
|
|
37
44
|
@IsOptional()
|
|
38
45
|
@IsString()
|
|
39
46
|
@ApiProperty()
|
|
@@ -7,30 +7,37 @@ export class CreateListOfValuesDto {
|
|
|
7
7
|
@IsString()
|
|
8
8
|
@ApiProperty()
|
|
9
9
|
type: string;
|
|
10
|
+
|
|
10
11
|
@IsNotEmpty()
|
|
11
12
|
@IsString()
|
|
12
13
|
@ApiProperty()
|
|
13
14
|
value: string;
|
|
15
|
+
|
|
14
16
|
@IsNotEmpty()
|
|
15
17
|
@IsString()
|
|
16
18
|
@ApiProperty()
|
|
17
19
|
display: string;
|
|
20
|
+
|
|
18
21
|
@IsNotEmpty()
|
|
19
22
|
@IsString()
|
|
20
23
|
@ApiProperty()
|
|
21
24
|
description: string;
|
|
25
|
+
|
|
22
26
|
@IsOptional()
|
|
23
27
|
@IsBoolean()
|
|
24
28
|
@ApiProperty()
|
|
25
29
|
default: boolean = false;
|
|
30
|
+
|
|
26
31
|
@IsOptional()
|
|
27
32
|
@IsInt()
|
|
28
33
|
@ApiProperty()
|
|
29
34
|
sequence: number;
|
|
35
|
+
|
|
30
36
|
@IsOptional()
|
|
31
37
|
@IsInt()
|
|
32
38
|
@ApiProperty()
|
|
33
39
|
moduleId: number;
|
|
40
|
+
|
|
34
41
|
@IsString()
|
|
35
42
|
@IsOptional()
|
|
36
43
|
@ApiProperty()
|
|
@@ -12,34 +12,42 @@ export class CreateMenuItemMetadataDto {
|
|
|
12
12
|
@IsString()
|
|
13
13
|
@ApiProperty()
|
|
14
14
|
name: string;
|
|
15
|
+
|
|
15
16
|
@IsNotEmpty()
|
|
16
17
|
@IsString()
|
|
17
18
|
@ApiProperty()
|
|
18
19
|
displayName: string;
|
|
20
|
+
|
|
19
21
|
@IsOptional()
|
|
20
22
|
@IsInt()
|
|
21
23
|
@ApiProperty()
|
|
22
24
|
moduleId: number;
|
|
25
|
+
|
|
23
26
|
@IsString()
|
|
24
27
|
@IsOptional()
|
|
25
28
|
@ApiProperty()
|
|
26
29
|
moduleUserKey: string;
|
|
30
|
+
|
|
27
31
|
@IsOptional()
|
|
28
32
|
@IsInt()
|
|
29
33
|
@ApiProperty()
|
|
30
34
|
parentMenuItemId: number;
|
|
35
|
+
|
|
31
36
|
@IsString()
|
|
32
37
|
@IsOptional()
|
|
33
38
|
@ApiProperty()
|
|
34
39
|
parentMenuItemUserKey: string;
|
|
40
|
+
|
|
35
41
|
@IsOptional()
|
|
36
42
|
@IsInt()
|
|
37
43
|
@ApiProperty()
|
|
38
44
|
actionId: number;
|
|
45
|
+
|
|
39
46
|
@IsString()
|
|
40
47
|
@IsOptional()
|
|
41
48
|
@ApiProperty()
|
|
42
49
|
actionUserKey: string;
|
|
50
|
+
|
|
43
51
|
@Transform(arrayTransformer)
|
|
44
52
|
@IsOptional()
|
|
45
53
|
@ApiProperty()
|
|
@@ -47,14 +55,17 @@ export class CreateMenuItemMetadataDto {
|
|
|
47
55
|
@ValidateNested({ each: true })
|
|
48
56
|
@Type(() => UpdateRoleMetadataDto)
|
|
49
57
|
roles: UpdateRoleMetadataDto[];
|
|
58
|
+
|
|
50
59
|
@IsOptional()
|
|
51
60
|
@IsArray()
|
|
52
61
|
@ApiProperty()
|
|
53
62
|
rolesIds: number[];
|
|
63
|
+
|
|
54
64
|
@IsString()
|
|
55
65
|
@IsOptional()
|
|
56
66
|
@ApiProperty()
|
|
57
67
|
rolesCommand: string;
|
|
68
|
+
|
|
58
69
|
@IsOptional()
|
|
59
70
|
@IsNumber()
|
|
60
71
|
@ApiProperty()
|
|
@@ -69,4 +80,4 @@ export class CreateMenuItemMetadataDto {
|
|
|
69
80
|
|
|
70
81
|
export const MENU_ROLE_JOIN_TABLE_NAME = "ss_menu_item_metadata_roles_ss_role_metadata"; // <-- your actual join table
|
|
71
82
|
export const MENU_ROLE_JOIN_TABLE_NAME_MENU_COL = "ss_menu_item_metadata_id"; // <-- actual column name in the join table
|
|
72
|
-
export const MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL = "ss_role_metadata_id"; // <-- actual column name in the join table
|
|
83
|
+
export const MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL = "ss_role_metadata_id"; // <-- actual column name in the join table
|
|
@@ -15,44 +15,53 @@ export class CreateRoleMetadataDto {
|
|
|
15
15
|
@IsString()
|
|
16
16
|
@ApiProperty()
|
|
17
17
|
name: string;
|
|
18
|
+
|
|
18
19
|
@IsOptional()
|
|
19
20
|
@ApiProperty()
|
|
20
21
|
@IsArray()
|
|
21
22
|
@ValidateNested({ each: true })
|
|
22
23
|
@Type(() => UpdatePermissionMetadataDto)
|
|
23
24
|
permissions: UpdatePermissionMetadataDto[];
|
|
25
|
+
|
|
24
26
|
@IsOptional()
|
|
25
27
|
@IsArray()
|
|
26
28
|
@ApiProperty()
|
|
27
29
|
permissionsIds: number[];
|
|
30
|
+
|
|
28
31
|
@IsString()
|
|
29
32
|
@IsOptional()
|
|
30
33
|
@ApiProperty()
|
|
31
34
|
permissionsCommand: string;
|
|
35
|
+
|
|
32
36
|
@IsOptional()
|
|
33
37
|
@ApiProperty()
|
|
34
38
|
@IsArray()
|
|
35
39
|
@ValidateNested({ each: true })
|
|
36
40
|
@Type(() => UpdateUserDto)
|
|
37
41
|
users: UpdateUserDto[];
|
|
42
|
+
|
|
38
43
|
@IsOptional()
|
|
39
44
|
@IsArray()
|
|
40
45
|
@ApiProperty()
|
|
41
46
|
usersIds: number[];
|
|
47
|
+
|
|
42
48
|
@IsString()
|
|
43
49
|
@IsOptional()
|
|
44
50
|
@ApiProperty()
|
|
45
51
|
usersCommand: string;
|
|
52
|
+
|
|
46
53
|
@IsOptional()
|
|
47
54
|
@ApiProperty()
|
|
48
55
|
@IsArray()
|
|
49
56
|
@ValidateNested({ each: true })
|
|
50
57
|
@Type(() => UpdateMenuItemMetadataDto)
|
|
51
58
|
menuItems: UpdateMenuItemMetadataDto[];
|
|
59
|
+
|
|
52
60
|
@IsOptional()
|
|
53
61
|
@IsArray()
|
|
54
62
|
@ApiProperty()
|
|
55
63
|
menuItemsIds: number[];
|
|
64
|
+
|
|
56
65
|
@IsString()
|
|
57
66
|
@IsOptional()
|
|
58
67
|
@ApiProperty()
|
|
@@ -7,58 +7,72 @@ export class CreateScheduledJobDto {
|
|
|
7
7
|
@IsString()
|
|
8
8
|
@ApiProperty()
|
|
9
9
|
scheduleName: string;
|
|
10
|
+
|
|
10
11
|
@IsNotEmpty()
|
|
11
12
|
@IsBoolean()
|
|
12
13
|
@ApiProperty()
|
|
13
14
|
isActive: boolean = false;
|
|
15
|
+
|
|
14
16
|
@IsNotEmpty()
|
|
15
17
|
@IsString()
|
|
16
18
|
@ApiProperty()
|
|
17
19
|
frequency: string;
|
|
20
|
+
|
|
18
21
|
@IsOptional()
|
|
19
22
|
@IsDate()
|
|
20
23
|
@ApiProperty()
|
|
21
24
|
startTime: Date;
|
|
25
|
+
|
|
22
26
|
@IsOptional()
|
|
23
27
|
@IsDate()
|
|
24
28
|
@ApiProperty()
|
|
25
29
|
endTime: Date;
|
|
30
|
+
|
|
26
31
|
@IsOptional()
|
|
27
32
|
@IsDate()
|
|
28
33
|
@ApiProperty()
|
|
29
34
|
startDate: Date;
|
|
35
|
+
|
|
30
36
|
@IsOptional()
|
|
31
37
|
@IsDate()
|
|
32
38
|
@ApiProperty()
|
|
33
39
|
endDate: Date;
|
|
40
|
+
|
|
34
41
|
@IsOptional()
|
|
35
42
|
@IsInt()
|
|
36
43
|
@ApiProperty()
|
|
37
44
|
dayOfMonth: number;
|
|
45
|
+
|
|
38
46
|
@IsOptional()
|
|
39
47
|
@IsDate()
|
|
40
48
|
@ApiProperty()
|
|
41
49
|
lastRunAt: Date;
|
|
50
|
+
|
|
42
51
|
@IsOptional()
|
|
43
52
|
@IsDate()
|
|
44
53
|
@ApiProperty()
|
|
45
54
|
nextRunAt: Date;
|
|
55
|
+
|
|
46
56
|
@IsOptional()
|
|
47
57
|
@IsString()
|
|
48
58
|
@ApiProperty()
|
|
49
59
|
dayOfWeek: string;
|
|
60
|
+
|
|
50
61
|
@IsNotEmpty()
|
|
51
62
|
@IsString()
|
|
52
63
|
@ApiProperty()
|
|
53
64
|
job: string;
|
|
65
|
+
|
|
54
66
|
@IsOptional()
|
|
55
67
|
@IsString()
|
|
56
68
|
@ApiProperty()
|
|
57
69
|
cronExpression: string;
|
|
70
|
+
|
|
58
71
|
@IsOptional()
|
|
59
72
|
@IsInt()
|
|
60
73
|
@ApiProperty()
|
|
61
74
|
moduleId: number;
|
|
75
|
+
|
|
62
76
|
@IsString()
|
|
63
77
|
@IsOptional()
|
|
64
78
|
@ApiProperty()
|
|
@@ -7,26 +7,32 @@ export class CreateSecurityRuleDto {
|
|
|
7
7
|
@IsString()
|
|
8
8
|
@ApiProperty()
|
|
9
9
|
name: string;
|
|
10
|
+
|
|
10
11
|
@IsNotEmpty()
|
|
11
12
|
@IsString()
|
|
12
13
|
@ApiProperty()
|
|
13
14
|
description: string;
|
|
15
|
+
|
|
14
16
|
@IsOptional()
|
|
15
17
|
@IsInt()
|
|
16
18
|
@ApiProperty()
|
|
17
19
|
roleId: number;
|
|
20
|
+
|
|
18
21
|
@IsString()
|
|
19
22
|
@IsOptional()
|
|
20
23
|
@ApiProperty()
|
|
21
24
|
roleUserKey: string;
|
|
25
|
+
|
|
22
26
|
@IsOptional()
|
|
23
27
|
@IsInt()
|
|
24
28
|
@ApiProperty()
|
|
25
29
|
modelMetadataId: number;
|
|
30
|
+
|
|
26
31
|
@IsString()
|
|
27
32
|
@IsOptional()
|
|
28
33
|
@ApiProperty()
|
|
29
34
|
modelMetadataUserKey: string;
|
|
35
|
+
|
|
30
36
|
@IsNotEmpty()
|
|
31
37
|
@IsJSON()
|
|
32
38
|
@ApiProperty()
|
|
@@ -7,26 +7,32 @@ export class CreateSmsTemplateDto {
|
|
|
7
7
|
@IsString()
|
|
8
8
|
@ApiProperty()
|
|
9
9
|
name: string;
|
|
10
|
+
|
|
10
11
|
@IsNotEmpty()
|
|
11
12
|
@IsString()
|
|
12
13
|
@ApiProperty()
|
|
13
14
|
displayName: string;
|
|
15
|
+
|
|
14
16
|
@IsOptional()
|
|
15
17
|
@IsString()
|
|
16
18
|
@ApiProperty()
|
|
17
19
|
body: string;
|
|
20
|
+
|
|
18
21
|
@IsOptional()
|
|
19
22
|
@IsString()
|
|
20
23
|
@ApiProperty()
|
|
21
24
|
smsProviderTemplateId: string;
|
|
25
|
+
|
|
22
26
|
@IsOptional()
|
|
23
27
|
@IsString()
|
|
24
28
|
@ApiProperty()
|
|
25
29
|
description: string;
|
|
30
|
+
|
|
26
31
|
@IsOptional()
|
|
27
32
|
@IsBoolean()
|
|
28
33
|
@ApiProperty()
|
|
29
34
|
active: boolean = true;
|
|
35
|
+
|
|
30
36
|
@IsOptional()
|
|
31
37
|
@IsString()
|
|
32
38
|
@ApiProperty()
|
|
@@ -11,48 +11,59 @@ export class CreateViewMetadataDto {
|
|
|
11
11
|
@IsString()
|
|
12
12
|
@ApiProperty()
|
|
13
13
|
name: string;
|
|
14
|
+
|
|
14
15
|
@IsNotEmpty()
|
|
15
16
|
@IsString()
|
|
16
17
|
@ApiProperty()
|
|
17
18
|
displayName: string;
|
|
19
|
+
|
|
18
20
|
@IsNotEmpty()
|
|
19
21
|
@IsString()
|
|
20
22
|
@ApiProperty()
|
|
21
23
|
type: string;
|
|
24
|
+
|
|
22
25
|
@IsNotEmpty()
|
|
23
26
|
@IsJSON()
|
|
24
27
|
@ApiProperty()
|
|
25
28
|
context: any = "{}";
|
|
29
|
+
|
|
26
30
|
@IsNotEmpty()
|
|
27
31
|
@IsJSON()
|
|
28
32
|
@ApiProperty()
|
|
29
33
|
layout: any;
|
|
34
|
+
|
|
30
35
|
@IsOptional()
|
|
31
36
|
@IsInt()
|
|
32
37
|
@ApiProperty()
|
|
33
38
|
moduleId: number;
|
|
39
|
+
|
|
34
40
|
@IsString()
|
|
35
41
|
@IsOptional()
|
|
36
42
|
@ApiProperty()
|
|
37
43
|
moduleUserKey: string;
|
|
44
|
+
|
|
38
45
|
@IsOptional()
|
|
39
46
|
@IsInt()
|
|
40
47
|
@ApiProperty()
|
|
41
48
|
modelId: number;
|
|
49
|
+
|
|
42
50
|
@IsString()
|
|
43
51
|
@IsOptional()
|
|
44
52
|
@ApiProperty()
|
|
45
53
|
modelUserKey: string;
|
|
54
|
+
|
|
46
55
|
@IsOptional()
|
|
47
56
|
@ApiProperty()
|
|
48
57
|
@IsArray()
|
|
49
58
|
@ValidateNested({ each: true })
|
|
50
59
|
@Type(() => UpdateUserViewMetadataDto)
|
|
51
60
|
userViewMetadata: UpdateUserViewMetadataDto[];
|
|
61
|
+
|
|
52
62
|
@IsOptional()
|
|
53
63
|
@IsArray()
|
|
54
64
|
@ApiProperty()
|
|
55
65
|
userViewMetadataIds: number[];
|
|
66
|
+
|
|
56
67
|
@IsString()
|
|
57
68
|
@IsOptional()
|
|
58
69
|
@ApiProperty()
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IsEnum, IsNotEmpty } from "class-validator";
|
|
1
|
+
import { IsEnum, IsNotEmpty, IsOptional } from "class-validator";
|
|
2
2
|
import { SignInType } from "./otp-confirm-otp.dto";
|
|
3
3
|
|
|
4
4
|
export class OTPSignInDto {
|
|
5
5
|
@IsEnum(SignInType)
|
|
6
|
-
@
|
|
7
|
-
type
|
|
6
|
+
@IsOptional()
|
|
7
|
+
type?: string;
|
|
8
8
|
|
|
9
9
|
@IsNotEmpty()
|
|
10
10
|
identifier: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IsEmail, IsEnum, IsJSON, IsNotEmpty, IsOptional } from 'class-validator';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { PasswordlessRegistrationValidateWhatSources } from "../constants";
|
|
4
4
|
|
|
5
5
|
export class OTPSignUpDto {
|
|
6
6
|
@IsNotEmpty()
|
|
@@ -15,8 +15,8 @@ export class OTPSignUpDto {
|
|
|
15
15
|
mobile: string;
|
|
16
16
|
|
|
17
17
|
@IsOptional()
|
|
18
|
-
@IsEnum(
|
|
19
|
-
validationSources:
|
|
18
|
+
@IsEnum(PasswordlessRegistrationValidateWhatSources, { each: true })
|
|
19
|
+
validationSources: PasswordlessRegistrationValidateWhatSources[] = [];
|
|
20
20
|
|
|
21
21
|
@IsOptional()
|
|
22
22
|
customPayload: any;
|