@servicelabsco/nestjs-utility-services 1.1.14 → 1.1.16
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/dist/app.controller.js +7 -24
- package/dist/app.controller.js.map +1 -1
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/app.service.js +8 -23
- package/dist/app.service.js.map +1 -1
- package/dist/auth/controllers/auth.controller.js +54 -75
- package/dist/auth/controllers/auth.controller.js.map +1 -1
- package/dist/auth/controllers/social.controller.js +7 -20
- package/dist/auth/controllers/social.controller.js.map +1 -1
- package/dist/auth/controllers/user.controller.js +6 -17
- package/dist/auth/controllers/user.controller.js.map +1 -1
- package/dist/auth/es6.classes.d.ts +2 -1
- package/dist/auth/es6.classes.js +2 -1
- package/dist/auth/es6.classes.js.map +1 -1
- package/dist/auth/middlewares/basic.auth.middleware.js +14 -25
- package/dist/auth/middlewares/basic.auth.middleware.js.map +1 -1
- package/dist/auth/middlewares/index.d.ts +1 -0
- package/dist/auth/middlewares/index.js +1 -0
- package/dist/auth/middlewares/index.js.map +1 -1
- package/dist/auth/middlewares/internal.middleware.d.ts +10 -0
- package/dist/auth/middlewares/internal.middleware.js +48 -0
- package/dist/auth/middlewares/internal.middleware.js.map +1 -0
- package/dist/auth/middlewares/jwt.middleware.js +19 -32
- package/dist/auth/middlewares/jwt.middleware.js.map +1 -1
- package/dist/auth/services/auth.service.js +42 -63
- package/dist/auth/services/auth.service.js.map +1 -1
- package/dist/auth/services/device.token.service.js +34 -47
- package/dist/auth/services/device.token.service.js.map +1 -1
- package/dist/auth/services/refresh.token.service.js +17 -30
- package/dist/auth/services/refresh.token.service.js.map +1 -1
- package/dist/auth/services/social.service.js +20 -33
- package/dist/auth/services/social.service.js.map +1 -1
- package/dist/auth/services/user.service.js +29 -46
- package/dist/auth/services/user.service.js.map +1 -1
- package/dist/auth/strategies/fb.strategy.js +8 -19
- package/dist/auth/strategies/fb.strategy.js.map +1 -1
- package/dist/auth/strategies/google.strategy.js +8 -19
- package/dist/auth/strategies/google.strategy.js.map +1 -1
- package/dist/cli.js +12 -23
- package/dist/cli.js.map +1 -1
- package/dist/common/guards/login.guard.js +5 -20
- package/dist/common/guards/login.guard.js.map +1 -1
- package/dist/common/libraries/base.migration.utility.js +106 -145
- package/dist/common/libraries/base.migration.utility.js.map +1 -1
- package/dist/common/libraries/common.entity.js +42 -63
- package/dist/common/libraries/common.entity.js.map +1 -1
- package/dist/common/libraries/common.job.d.ts +2 -0
- package/dist/common/libraries/common.job.js +46 -46
- package/dist/common/libraries/common.job.js.map +1 -1
- package/dist/common/libraries/common.mapper.job.js +20 -35
- package/dist/common/libraries/common.mapper.job.js.map +1 -1
- package/dist/common/libraries/common.subscriber.js +4 -17
- package/dist/common/libraries/common.subscriber.js.map +1 -1
- package/dist/common/libraries/data.manager.js +85 -112
- package/dist/common/libraries/data.manager.js.map +1 -1
- package/dist/common/libraries/list.manager.js +62 -85
- package/dist/common/libraries/list.manager.js.map +1 -1
- package/dist/common/libraries/migration.utility.js +10 -31
- package/dist/common/libraries/migration.utility.js.map +1 -1
- package/dist/common/libraries/platform.utility.js +2 -13
- package/dist/common/libraries/platform.utility.js.map +1 -1
- package/dist/common/libraries/record.manager.js +106 -127
- package/dist/common/libraries/record.manager.js.map +1 -1
- package/dist/common/libraries/report.data.manager.js +66 -93
- package/dist/common/libraries/report.data.manager.js.map +1 -1
- package/dist/common/libraries/report.list.manager.js +69 -92
- package/dist/common/libraries/report.list.manager.js.map +1 -1
- package/dist/common/libraries/reverse.migration.utility.js +4 -23
- package/dist/common/libraries/reverse.migration.utility.js.map +1 -1
- package/dist/common/libraries/seeder.utility.js +51 -70
- package/dist/common/libraries/seeder.utility.js.map +1 -1
- package/dist/console.js +4 -13
- package/dist/console.js.map +1 -1
- package/dist/main.js +15 -26
- package/dist/main.js.map +1 -1
- package/dist/migrations/1599567001962-AddUserSequence.js +3 -16
- package/dist/migrations/1599567001962-AddUserSequence.js.map +1 -1
- package/dist/migrations/1607944291609-AddUniqueIndexDeviceToken.js +7 -20
- package/dist/migrations/1607944291609-AddUniqueIndexDeviceToken.js.map +1 -1
- package/dist/platformUtility/commands/entity.generator.command.js +81 -108
- package/dist/platformUtility/commands/entity.generator.command.js.map +1 -1
- package/dist/platformUtility/commands/maintenance.command.js +16 -35
- package/dist/platformUtility/commands/maintenance.command.js.map +1 -1
- package/dist/platformUtility/commands/sqs.worker.command.js +49 -72
- package/dist/platformUtility/commands/sqs.worker.command.js.map +1 -1
- package/dist/platformUtility/commands/sync.class.command.js +14 -25
- package/dist/platformUtility/commands/sync.class.command.js.map +1 -1
- package/dist/platformUtility/consumers/event.consumer.js +21 -42
- package/dist/platformUtility/consumers/event.consumer.js.map +1 -1
- package/dist/platformUtility/consumers/job.consumer.js +8 -19
- package/dist/platformUtility/consumers/job.consumer.js.map +1 -1
- package/dist/platformUtility/controllers/queue.controller.js +47 -76
- package/dist/platformUtility/controllers/queue.controller.js.map +1 -1
- package/dist/platformUtility/jobs/record.watcher.job.js +5 -18
- package/dist/platformUtility/jobs/record.watcher.job.js.map +1 -1
- package/dist/platformUtility/jobs/test.job.js +1 -12
- package/dist/platformUtility/jobs/test.job.js.map +1 -1
- package/dist/platformUtility/libraries/process.common.mail.js +27 -44
- package/dist/platformUtility/libraries/process.common.mail.js.map +1 -1
- package/dist/platformUtility/libraries/process.postmark.mail.js +22 -37
- package/dist/platformUtility/libraries/process.postmark.mail.js.map +1 -1
- package/dist/platformUtility/services/audit.service.js +50 -67
- package/dist/platformUtility/services/audit.service.js.map +1 -1
- package/dist/platformUtility/services/cache.service.js +21 -36
- package/dist/platformUtility/services/cache.service.js.map +1 -1
- package/dist/platformUtility/services/dynamo.service.js +16 -29
- package/dist/platformUtility/services/dynamo.service.js.map +1 -1
- package/dist/platformUtility/services/fcm.notification.service.js +42 -63
- package/dist/platformUtility/services/fcm.notification.service.js.map +1 -1
- package/dist/platformUtility/services/mail.service.js +8 -19
- package/dist/platformUtility/services/mail.service.js.map +1 -1
- package/dist/platformUtility/services/queue.service.js +105 -158
- package/dist/platformUtility/services/queue.service.js.map +1 -1
- package/dist/platformUtility/services/remote.request.service.js +8 -19
- package/dist/platformUtility/services/remote.request.service.js.map +1 -1
- package/dist/platformUtility/services/sql.service.js +17 -38
- package/dist/platformUtility/services/sql.service.js.map +1 -1
- package/dist/platformUtility/services/sqs.service.js +39 -56
- package/dist/platformUtility/services/sqs.service.js.map +1 -1
- package/dist/platformUtility/services/startup.service.js +8 -21
- package/dist/platformUtility/services/startup.service.js.map +1 -1
- package/dist/platformUtility/subscribers/base.subscriber.js +6 -19
- package/dist/platformUtility/subscribers/base.subscriber.js.map +1 -1
- package/dist/system/commands/db.scanner.command.js +182 -221
- package/dist/system/commands/db.scanner.command.js.map +1 -1
- package/dist/system/commands/event.queue.command.js +30 -47
- package/dist/system/commands/event.queue.command.js.map +1 -1
- package/dist/system/commands/jobs.scanner.command.js +7 -18
- package/dist/system/commands/jobs.scanner.command.js.map +1 -1
- package/dist/system/commands/model.scanner.command.js +15 -30
- package/dist/system/commands/model.scanner.command.js.map +1 -1
- package/dist/system/commands/report.scanner.command.js +9 -20
- package/dist/system/commands/report.scanner.command.js.map +1 -1
- package/dist/system/commands/service.scanner.command.js +7 -18
- package/dist/system/commands/service.scanner.command.js.map +1 -1
- package/dist/system/commands/sync.all.command.js +13 -24
- package/dist/system/commands/sync.all.command.js.map +1 -1
- package/dist/system/controllers/base.controller.js +62 -87
- package/dist/system/controllers/base.controller.js.map +1 -1
- package/dist/system/controllers/data.controller.js +10 -23
- package/dist/system/controllers/data.controller.js.map +1 -1
- package/dist/system/controllers/form.controller.js +9 -20
- package/dist/system/controllers/form.controller.js.map +1 -1
- package/dist/system/controllers/menu.controller.js +4 -17
- package/dist/system/controllers/menu.controller.js.map +1 -1
- package/dist/system/controllers/preference.controller.js +51 -74
- package/dist/system/controllers/preference.controller.js.map +1 -1
- package/dist/system/controllers/report.controller.js +29 -46
- package/dist/system/controllers/report.controller.js.map +1 -1
- package/dist/system/controllers/upload.controller.js +11 -26
- package/dist/system/controllers/upload.controller.js.map +1 -1
- package/dist/system/controllers/user.preference.controller.js +9 -22
- package/dist/system/controllers/user.preference.controller.js.map +1 -1
- package/dist/system/es6.classes.d.ts +1 -1
- package/dist/system/jobs/clean.scheduled.event.job.js +3 -14
- package/dist/system/jobs/clean.scheduled.event.job.js.map +1 -1
- package/dist/system/jobs/column.mapper.job.js +18 -33
- package/dist/system/jobs/column.mapper.job.js.map +1 -1
- package/dist/system/jobs/model.scanner.job.js +106 -133
- package/dist/system/jobs/model.scanner.job.js.map +1 -1
- package/dist/system/jobs/property.job.js +5 -16
- package/dist/system/jobs/property.job.js.map +1 -1
- package/dist/system/jobs/relationship.mapper.job.js +18 -33
- package/dist/system/jobs/relationship.mapper.job.js.map +1 -1
- package/dist/system/jobs/report.column.sync.job.js +71 -94
- package/dist/system/jobs/report.column.sync.job.js.map +1 -1
- package/dist/system/jobs/scheduled.event.job.js +15 -28
- package/dist/system/jobs/scheduled.event.job.js.map +1 -1
- package/dist/system/jobs/scheduled.events.job.js +11 -22
- package/dist/system/jobs/scheduled.events.job.js.map +1 -1
- package/dist/system/jobs/user.group.member.job.js +56 -79
- package/dist/system/jobs/user.group.member.job.js.map +1 -1
- package/dist/system/jobs/user.group.permission.job.js +24 -39
- package/dist/system/jobs/user.group.permission.job.js.map +1 -1
- package/dist/system/jobs/user.group.role.job.js +24 -39
- package/dist/system/jobs/user.group.role.job.js.map +1 -1
- package/dist/system/libraries/business.rule.filter.validator.js +20 -37
- package/dist/system/libraries/business.rule.filter.validator.js.map +1 -1
- package/dist/system/libraries/business.rule.query.evaluator.js +24 -39
- package/dist/system/libraries/business.rule.query.evaluator.js.map +1 -1
- package/dist/system/libraries/column.manager.js +42 -61
- package/dist/system/libraries/column.manager.js.map +1 -1
- package/dist/system/libraries/model.sync.js +64 -87
- package/dist/system/libraries/model.sync.js.map +1 -1
- package/dist/system/libraries/security.rule.evaluator.js +13 -26
- package/dist/system/libraries/security.rule.evaluator.js.map +1 -1
- package/dist/system/services/business.rule.service.js +23 -36
- package/dist/system/services/business.rule.service.js.map +1 -1
- package/dist/system/services/client.script.service.js +17 -28
- package/dist/system/services/client.script.service.js.map +1 -1
- package/dist/system/services/column.service.js +12 -23
- package/dist/system/services/column.service.js.map +1 -1
- package/dist/system/services/comment.service.js +2 -13
- package/dist/system/services/comment.service.js.map +1 -1
- package/dist/system/services/common.service.js +27 -44
- package/dist/system/services/common.service.js.map +1 -1
- package/dist/system/services/document.service.js +3 -14
- package/dist/system/services/document.service.js.map +1 -1
- package/dist/system/services/event.detail.service.js +10 -21
- package/dist/system/services/event.detail.service.js.map +1 -1
- package/dist/system/services/event.queue.service.js +21 -34
- package/dist/system/services/event.queue.service.js.map +1 -1
- package/dist/system/services/form.service.js +6 -17
- package/dist/system/services/form.service.js.map +1 -1
- package/dist/system/services/list.service.js +20 -35
- package/dist/system/services/list.service.js.map +1 -1
- package/dist/system/services/menu.service.js +50 -69
- package/dist/system/services/menu.service.js.map +1 -1
- package/dist/system/services/model.service.js +60 -81
- package/dist/system/services/model.service.js.map +1 -1
- package/dist/system/services/preference.service.js +32 -53
- package/dist/system/services/preference.service.js.map +1 -1
- package/dist/system/services/property.service.js +23 -36
- package/dist/system/services/property.service.js.map +1 -1
- package/dist/system/services/report.service.js +19 -32
- package/dist/system/services/report.service.js.map +1 -1
- package/dist/system/services/scheduled.event.service.js +69 -90
- package/dist/system/services/scheduled.event.service.js.map +1 -1
- package/dist/system/services/security.rule.service.js +23 -40
- package/dist/system/services/security.rule.service.js.map +1 -1
- package/dist/system/services/ui.action.service.js +13 -24
- package/dist/system/services/ui.action.service.js.map +1 -1
- package/dist/system/services/upload.service.js +33 -48
- package/dist/system/services/upload.service.js.map +1 -1
- package/dist/system/services/user.preference.service.js +38 -57
- package/dist/system/services/user.preference.service.js.map +1 -1
- package/dist/system/subscribers/column.subscriber.js +4 -17
- package/dist/system/subscribers/column.subscriber.js.map +1 -1
- package/dist/system/subscribers/property.subscriber.js +4 -17
- package/dist/system/subscribers/property.subscriber.js.map +1 -1
- package/dist/system/subscribers/relationship.subscriber.js +4 -17
- package/dist/system/subscribers/relationship.subscriber.js.map +1 -1
- package/dist/system/subscribers/scheduled.event.subscriber.js +6 -19
- package/dist/system/subscribers/scheduled.event.subscriber.js.map +1 -1
- package/dist/system/subscribers/user.group.member.subscriber.js +4 -17
- package/dist/system/subscribers/user.group.member.subscriber.js.map +1 -1
- package/dist/system/subscribers/user.group.permission.subscriber.js +4 -17
- package/dist/system/subscribers/user.group.permission.subscriber.js.map +1 -1
- package/dist/system/subscribers/user.group.role.subscriber.js +4 -17
- package/dist/system/subscribers/user.group.role.subscriber.js.map +1 -1
- package/dist/worker.js +6 -17
- package/dist/worker.js.map +1 -1
- package/package.json +2 -1
@@ -8,15 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
10
|
};
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
18
|
-
});
|
19
|
-
};
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
21
12
|
exports.StartupService = void 0;
|
22
13
|
const common_1 = require("@nestjs/common");
|
@@ -26,19 +17,15 @@ let StartupService = class StartupService {
|
|
26
17
|
constructor(queueService) {
|
27
18
|
this.queueService = queueService;
|
28
19
|
}
|
29
|
-
onModuleInit() {
|
30
|
-
|
31
|
-
yield this.checkForWorkerQueue();
|
32
|
-
});
|
20
|
+
async onModuleInit() {
|
21
|
+
await this.checkForWorkerQueue();
|
33
22
|
}
|
34
|
-
checkForWorkerQueue() {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
yield this.queueService.pause();
|
41
|
-
});
|
23
|
+
async checkForWorkerQueue() {
|
24
|
+
const worker = process.env.QUEUE_WORKER_ENABLE || config.get('queue.worker');
|
25
|
+
if (worker)
|
26
|
+
return;
|
27
|
+
global.console.log(`queue services are disabled for this instance`);
|
28
|
+
await this.queueService.pause();
|
42
29
|
}
|
43
30
|
};
|
44
31
|
StartupService = __decorate([
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"startup.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/startup.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"startup.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/startup.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0D;AAE1D,iCAAiC;AACjC,mDAA+C;AAGxC,IAAM,cAAc,GAApB,MAAM,cAAc;IACvB,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAO3D,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAOD,KAAK,CAAC,mBAAmB;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE7E,IAAI,MAAM;YAAE,OAAO;QAEnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;CACJ,CAAA;AAzBY,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEkC,4BAAY;GAD9C,cAAc,CAyB1B;AAzBY,wCAAc"}
|
@@ -8,15 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
10
|
};
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
18
|
-
});
|
19
|
-
};
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
21
12
|
exports.BaseSubscriber = void 0;
|
22
13
|
const typeorm_1 = require("typeorm");
|
@@ -41,17 +32,13 @@ let BaseSubscriber = class BaseSubscriber extends common_subscriber_1.CommonSubs
|
|
41
32
|
event.entity.updated_by = auth_1.Auth.id();
|
42
33
|
}
|
43
34
|
}
|
44
|
-
afterInsert(event) {
|
45
|
-
|
46
|
-
|
47
|
-
yield this.recordWatcherJob.dispatch(object);
|
48
|
-
});
|
35
|
+
async afterInsert(event) {
|
36
|
+
const object = this.getInsertEventData(event);
|
37
|
+
await this.recordWatcherJob.dispatch(object);
|
49
38
|
}
|
50
|
-
afterUpdate(event) {
|
51
|
-
|
52
|
-
|
53
|
-
yield this.recordWatcherJob.dispatch(object);
|
54
|
-
});
|
39
|
+
async afterUpdate(event) {
|
40
|
+
const object = this.getUpdateEventData(event);
|
41
|
+
await this.recordWatcherJob.dispatch(object);
|
55
42
|
}
|
56
43
|
beforeUpdate(event) {
|
57
44
|
if (!event.entity)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base.subscriber.js","sourceRoot":"","sources":["../../../src/platformUtility/subscribers/base.subscriber.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"base.subscriber.js","sourceRoot":"","sources":["../../../src/platformUtility/subscribers/base.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgF;AAChF,sDAAmD;AACnD,gFAA4E;AAC5E,gEAA4D;AAC5D,mEAA8D;AASvD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,oCAAqB;IAOrD,YAAY,UAAsB,EAAmB,gBAAkC;QACnF,KAAK,EAAE,CAAC;QADyC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAEnF,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAOD,YAAY,CAAC,KAAuB;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAE1B,MAAM,IAAI,GAAG,oBAAQ,CAAC,WAAW,EAAE,CAAC;QAEpC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAG/B,IAAI,WAAI,CAAC,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,WAAI,CAAC,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,WAAI,CAAC,EAAE,EAAE,CAAC;SACvC;IACL,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,KAAuB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,KAAuB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAOD,YAAY,CAAC,KAAuB;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAE1B,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,WAAI,CAAC,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,WAAI,CAAC,EAAE,EAAE,CAAC;SACvC;IACL,CAAC;CACJ,CAAA;AAnEY,cAAc;IAD1B,IAAA,yBAAe,GAAE;qCAQU,oBAAU,EAAqC,qCAAgB;GAP9E,cAAc,CAmE1B;AAnEY,wCAAc"}
|
@@ -8,15 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
10
|
};
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
18
|
-
});
|
19
|
-
};
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
21
12
|
exports.DbScannerCommand = void 0;
|
22
13
|
const common_1 = require("@nestjs/common");
|
@@ -39,234 +30,206 @@ let DbScannerCommand = class DbScannerCommand {
|
|
39
30
|
this.logger = new common_1.Logger('SqsWorker');
|
40
31
|
this.columnDefinitionMapping = {};
|
41
32
|
}
|
42
|
-
process() {
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
yield this.setModelsColumn(models);
|
49
|
-
});
|
33
|
+
async process() {
|
34
|
+
await this.queueService.pause();
|
35
|
+
await this.loadDBColumnMapping();
|
36
|
+
await this.setUserTable();
|
37
|
+
const models = await this.setAllTables();
|
38
|
+
await this.setModelsColumn(models);
|
50
39
|
}
|
51
|
-
setAllTables() {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
promises.push(this.setModel(table));
|
58
|
-
});
|
59
|
-
return Promise.all(promises).then((res) => {
|
60
|
-
return res;
|
61
|
-
});
|
40
|
+
async setAllTables() {
|
41
|
+
const sql = `SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'`;
|
42
|
+
const tables = await this.sqlService.sql(sql);
|
43
|
+
const promises = [];
|
44
|
+
tables.forEach((table) => {
|
45
|
+
promises.push(this.setModel(table));
|
62
46
|
});
|
63
|
-
|
64
|
-
|
65
|
-
return __awaiter(this, void 0, void 0, function* () {
|
66
|
-
const model = yield model_entity_1.ModelEntity.firstOrNew({ table_name: table.tablename });
|
67
|
-
if (model.id)
|
68
|
-
return model;
|
69
|
-
const hash = common_2.Hash.hashMD5(table.tablename);
|
70
|
-
const name = this.getEntityName(table.tablename);
|
71
|
-
const obj = {
|
72
|
-
name,
|
73
|
-
allowed_permissions: 'raed',
|
74
|
-
model_hash: hash,
|
75
|
-
route_name: `api/record/${hash}`,
|
76
|
-
attributes: { sync: { db: true } },
|
77
|
-
};
|
78
|
-
const record = (0, class_transformer_1.plainToClassFromExist)(model, obj);
|
79
|
-
yield record.save();
|
80
|
-
this.logger.log(`created db model : ${name}`);
|
81
|
-
return record;
|
47
|
+
return Promise.all(promises).then((res) => {
|
48
|
+
return res;
|
82
49
|
});
|
83
50
|
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
51
|
+
async setModel(table) {
|
52
|
+
const model = await model_entity_1.ModelEntity.firstOrNew({ table_name: table.tablename });
|
53
|
+
if (model.id)
|
54
|
+
return model;
|
55
|
+
const hash = common_2.Hash.hashMD5(table.tablename);
|
56
|
+
const name = this.getEntityName(table.tablename);
|
57
|
+
const obj = {
|
58
|
+
name,
|
59
|
+
allowed_permissions: 'raed',
|
60
|
+
model_hash: hash,
|
61
|
+
route_name: `api/record/${hash}`,
|
62
|
+
attributes: { sync: { db: true } },
|
63
|
+
};
|
64
|
+
const record = (0, class_transformer_1.plainToClassFromExist)(model, obj);
|
65
|
+
await record.save();
|
66
|
+
this.logger.log(`created db model : ${name}`);
|
67
|
+
return record;
|
68
|
+
}
|
69
|
+
async setModelsColumn(models) {
|
70
|
+
const promises = [];
|
71
|
+
models.forEach((model) => {
|
72
|
+
promises.push(this.setModelColumn(model));
|
73
|
+
});
|
74
|
+
return Promise.all(promises).then((res) => {
|
75
|
+
return res;
|
93
76
|
});
|
94
77
|
}
|
95
|
-
setModelColumn(model) {
|
96
|
-
|
97
|
-
|
98
|
-
const sql = `SELECT a.table_catalog, a.table_schema, a.table_name, a."column_name", a.ordinal_position, a.is_nullable, a.data_type, a.udt_name
|
78
|
+
async setModelColumn(model) {
|
79
|
+
this.logger.log(`processing db table ${model.table_name}`);
|
80
|
+
const sql = `SELECT a.table_catalog, a.table_schema, a.table_name, a."column_name", a.ordinal_position, a.is_nullable, a.data_type, a.udt_name
|
99
81
|
FROM INFORMATION_SCHEMA.COLUMNS a WHERE table_name = '${model.table_name}'`;
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
});
|
82
|
+
const columns = await this.sqlService.sql(sql);
|
83
|
+
const promises = [];
|
84
|
+
columns.forEach((column) => {
|
85
|
+
promises.push(this.setColumn(model, column));
|
86
|
+
});
|
87
|
+
return Promise.all(promises).then((res) => {
|
88
|
+
return res;
|
108
89
|
});
|
109
90
|
}
|
110
|
-
setColumn(model, data) {
|
91
|
+
async setColumn(model, data) {
|
111
92
|
var _a;
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
return record.save();
|
132
|
-
});
|
93
|
+
const column = await column_entity_1.ColumnEntity.firstOrNew({ source_type: SOURCEHASH.model, source_id: model.id, name: data.column_name });
|
94
|
+
column.ordinal_position = data.ordinal_position;
|
95
|
+
if (column.id)
|
96
|
+
return column.save();
|
97
|
+
const type = (_a = this.columnDefinitionMapping[data.udt_name]) !== null && _a !== void 0 ? _a : null;
|
98
|
+
if (!type)
|
99
|
+
global.console.log('data.udt_name', `${data.column_name} : ${data.udt_name}`);
|
100
|
+
const type_id = type || 1;
|
101
|
+
const obj = {
|
102
|
+
display_name: this.getColumnDisplayName(data.column_name),
|
103
|
+
visibility: true,
|
104
|
+
required: data.is_nullable,
|
105
|
+
nullable: data.is_nullable,
|
106
|
+
type_id,
|
107
|
+
is_custom_column: false,
|
108
|
+
attributes: { sync: { db: true } },
|
109
|
+
};
|
110
|
+
const record = (0, class_transformer_1.plainToClassFromExist)(column, obj);
|
111
|
+
return record.save();
|
133
112
|
}
|
134
|
-
setModelsRelationship(models) {
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
}
|
139
|
-
});
|
113
|
+
async setModelsRelationship(models) {
|
114
|
+
for (const model of models) {
|
115
|
+
await this.setModelRelationship(model);
|
116
|
+
}
|
140
117
|
}
|
141
|
-
setModelRelationship(model) {
|
142
|
-
|
143
|
-
const sql = `SELECT tc.table_schema, tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_schema AS foreign_table_schema,
|
118
|
+
async setModelRelationship(model) {
|
119
|
+
const sql = `SELECT tc.table_schema, tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_schema AS foreign_table_schema,
|
144
120
|
ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name
|
145
121
|
FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name AND ccu.table_schema = tc.table_schema
|
146
122
|
WHERE tc.constraint_type = 'FOREIGN KEY' and tc."table_name" = '${model.table_name}'`;
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
});
|
123
|
+
const keys = await this.sqlService.sql(sql);
|
124
|
+
for (const key of keys) {
|
125
|
+
await this.setRelationship(model, key);
|
126
|
+
}
|
152
127
|
}
|
153
|
-
setRelationship(model, data) {
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
128
|
+
async setRelationship(model, data) {
|
129
|
+
const foreignModel = await model_entity_1.ModelEntity.findOne({ where: { table_name: data.foreign_table_name } });
|
130
|
+
const sourceColumn = await this.getColumn(model, data.column_name);
|
131
|
+
if (!sourceColumn)
|
132
|
+
return;
|
133
|
+
let foreignColumn;
|
134
|
+
if (data.foreign_column_name === 'id')
|
135
|
+
foreignColumn = null;
|
136
|
+
else
|
137
|
+
foreignColumn = await this.getColumn(foreignModel, data.foreign_column_name);
|
138
|
+
const forwardRelationship = await relationship_entity_1.RelationshipEntity.firstOrNew({
|
139
|
+
source_type: SOURCEHASH.model,
|
140
|
+
source_id: model.id,
|
141
|
+
source_column_id: sourceColumn.id,
|
142
|
+
});
|
143
|
+
let reverseRelationship = await relationship_entity_1.RelationshipEntity.firstOrNew({
|
144
|
+
source_type: SOURCEHASH.model,
|
145
|
+
source_id: foreignModel.id,
|
146
|
+
alias_column_id: sourceColumn.id,
|
147
|
+
});
|
148
|
+
if (!(reverseRelationship === null || reverseRelationship === void 0 ? void 0 : reverseRelationship.id)) {
|
149
|
+
reverseRelationship = await relationship_entity_1.RelationshipEntity.firstOrNew({
|
170
150
|
source_type: SOURCEHASH.model,
|
171
151
|
source_id: foreignModel.id,
|
172
|
-
alias_column_id:
|
152
|
+
alias_column_id: (0, typeorm_1.IsNull)(),
|
173
153
|
});
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
global.console.log('data', data);
|
194
|
-
global.console.log('failed reverse relationship', reverseRelationship);
|
195
|
-
}
|
196
|
-
sourceColumn.type_id = 6;
|
197
|
-
sourceColumn.reference_model_id = model.id;
|
198
|
-
yield sourceColumn.save();
|
199
|
-
});
|
154
|
+
reverseRelationship.alias_column_id = (reverseRelationship === null || reverseRelationship === void 0 ? void 0 : reverseRelationship.id) ? reverseRelationship.alias_column_id : null;
|
155
|
+
}
|
156
|
+
try {
|
157
|
+
await this.createForwardRelationship(forwardRelationship, foreignModel, foreignColumn, data);
|
158
|
+
}
|
159
|
+
catch (error) {
|
160
|
+
global.console.log('data', data);
|
161
|
+
global.console.log('failed forward relationship', forwardRelationship);
|
162
|
+
}
|
163
|
+
try {
|
164
|
+
await this.createReverseRelationship(reverseRelationship, model, foreignColumn);
|
165
|
+
}
|
166
|
+
catch (error) {
|
167
|
+
global.console.log('data', data);
|
168
|
+
global.console.log('failed reverse relationship', reverseRelationship);
|
169
|
+
}
|
170
|
+
sourceColumn.type_id = 6;
|
171
|
+
sourceColumn.reference_model_id = model.id;
|
172
|
+
await sourceColumn.save();
|
200
173
|
}
|
201
|
-
createForwardRelationship(relationship, foreignModel, foreignColumn, data) {
|
174
|
+
async createForwardRelationship(relationship, foreignModel, foreignColumn, data) {
|
202
175
|
var _a;
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
return relationship.save();
|
213
|
-
});
|
176
|
+
if (relationship.id)
|
177
|
+
return relationship;
|
178
|
+
relationship.name = this.getRelationshipName(data.column_name);
|
179
|
+
relationship.display_name = relationship.name;
|
180
|
+
relationship.reference_type_id = 21;
|
181
|
+
relationship.alias_column_id = (_a = foreignColumn === null || foreignColumn === void 0 ? void 0 : foreignColumn.id) !== null && _a !== void 0 ? _a : null;
|
182
|
+
relationship.reference_model_id = foreignModel.id;
|
183
|
+
relationship.attributes = { sync: { db: true } };
|
184
|
+
return relationship.save();
|
214
185
|
}
|
215
|
-
createReverseRelationship(relationship, model, sourceColumn) {
|
186
|
+
async createReverseRelationship(relationship, model, sourceColumn) {
|
216
187
|
var _a;
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
yield relationship.save();
|
227
|
-
});
|
188
|
+
if (relationship.id)
|
189
|
+
return relationship;
|
190
|
+
relationship.name = `${model.name.replace('Entity', '').toLowerCase()}s`;
|
191
|
+
relationship.display_name = relationship.name;
|
192
|
+
relationship.reference_type_id = 22;
|
193
|
+
relationship.source_column_id = (_a = sourceColumn === null || sourceColumn === void 0 ? void 0 : sourceColumn.id) !== null && _a !== void 0 ? _a : null;
|
194
|
+
relationship.reference_model_id = model.id;
|
195
|
+
relationship.attributes = { sync: { db: true } };
|
196
|
+
await relationship.save();
|
228
197
|
}
|
229
|
-
getColumn(model, columnName) {
|
230
|
-
return
|
231
|
-
return column_entity_1.ColumnEntity.findOne({ where: { source_type: SOURCEHASH.model, source_id: model.id, name: columnName } });
|
232
|
-
});
|
198
|
+
async getColumn(model, columnName) {
|
199
|
+
return column_entity_1.ColumnEntity.findOne({ where: { source_type: SOURCEHASH.model, source_id: model.id, name: columnName } });
|
233
200
|
}
|
234
|
-
setUserTable() {
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
yield record.save();
|
250
|
-
});
|
201
|
+
async setUserTable() {
|
202
|
+
const model = await model_entity_1.ModelEntity.firstOrNew({ table_name: 'sys_users' });
|
203
|
+
if (model.id)
|
204
|
+
return model;
|
205
|
+
const obj = {
|
206
|
+
name: 'UserEntity',
|
207
|
+
description: 'this would hold all users of the system',
|
208
|
+
allowed_permissions: 'raed',
|
209
|
+
model_hash: 'ee4cdbfefe411a0f75b7c5daddf210ba',
|
210
|
+
route_name: 'api/record/user',
|
211
|
+
display_column: 'email',
|
212
|
+
route_identifier: 'user',
|
213
|
+
};
|
214
|
+
const record = (0, class_transformer_1.plainToClassFromExist)(model, obj);
|
215
|
+
await record.save();
|
251
216
|
}
|
252
|
-
setCreatorModel() {
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
yield record.save();
|
269
|
-
});
|
217
|
+
async setCreatorModel() {
|
218
|
+
const model = await model_entity_1.ModelEntity.firstOrNew({ name: 'CreatorEntity' });
|
219
|
+
if (model.id)
|
220
|
+
return model;
|
221
|
+
const obj = {
|
222
|
+
name: 'CreatorEntity',
|
223
|
+
table_name: 'sys_users',
|
224
|
+
description: 'this would hold all users of the system',
|
225
|
+
allowed_permissions: 'raed',
|
226
|
+
model_hash: '4a3c55afec159ad19c6e4f8fe5f4fae7',
|
227
|
+
route_name: null,
|
228
|
+
display_column: 'email',
|
229
|
+
route_identifier: null,
|
230
|
+
};
|
231
|
+
const record = (0, class_transformer_1.plainToClassFromExist)(model, obj);
|
232
|
+
await record.save();
|
270
233
|
}
|
271
234
|
getEntityName(tableName) {
|
272
235
|
const splits = tableName.split('_');
|
@@ -279,16 +242,14 @@ let DbScannerCommand = class DbScannerCommand {
|
|
279
242
|
});
|
280
243
|
return str.substring(0, str.length - 1) + 'Entity';
|
281
244
|
}
|
282
|
-
loadDBColumnMapping() {
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
this.columnDefinitionMapping[split] = type.id;
|
291
|
-
});
|
245
|
+
async loadDBColumnMapping() {
|
246
|
+
const types = await column_definition_entity_1.ColumnDefinitionEntity.find();
|
247
|
+
types.forEach((type) => {
|
248
|
+
if (!type.supported_identifiers)
|
249
|
+
return;
|
250
|
+
const splits = type.supported_identifiers.split(',');
|
251
|
+
splits.forEach((split) => {
|
252
|
+
this.columnDefinitionMapping[split] = type.id;
|
292
253
|
});
|
293
254
|
});
|
294
255
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"db.scanner.command.js","sourceRoot":"","sources":["../../../src/system/commands/db.scanner.command.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"db.scanner.command.js","sourceRoot":"","sources":["../../../src/system/commands/db.scanner.command.ts"],"names":[],"mappings":"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"}
|