@solidxai/core 0.1.9-beta.5 → 0.1.9-beta.7
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/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +4 -1
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +5 -5
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +2 -2
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +5 -5
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +3 -3
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/string.helper.d.ts +1 -0
- package/dist/helpers/string.helper.d.ts.map +1 -1
- package/dist/helpers/string.helper.js +4 -1
- package/dist/helpers/string.helper.js.map +1 -1
- package/dist/interfaces/mq.d.ts +1 -1
- package/dist/interfaces/mq.d.ts.map +1 -1
- package/dist/interfaces/mq.js.map +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.js +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/msg91-whatsapp-subscriber-database.service.d.ts +1 -1
- package/dist/jobs/database/msg91-whatsapp-subscriber-database.service.js +1 -1
- package/dist/jobs/database/msg91-whatsapp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/three60-whatsapp-subscriber-database.service.d.ts +1 -1
- package/dist/jobs/database/three60-whatsapp-subscriber-database.service.js +1 -1
- package/dist/jobs/database/three60-whatsapp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/rabbitmq/api-email-subscriber.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/api-email-subscriber.service.js +1 -1
- package/dist/jobs/rabbitmq/api-email-subscriber.service.js.map +1 -1
- package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.js +1 -1
- package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.js.map +1 -1
- package/dist/jobs/rabbitmq/test-queue-subscriber.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/test-queue-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/rabbitmq/test-queue-subscriber.service.js +6 -3
- package/dist/jobs/rabbitmq/test-queue-subscriber.service.js.map +1 -1
- package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.js +1 -1
- package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.js.map +1 -1
- package/dist/jobs/redis/api-email-subscriber-redis.service.d.ts +1 -1
- package/dist/jobs/redis/api-email-subscriber-redis.service.js +1 -1
- package/dist/jobs/redis/api-email-subscriber-redis.service.js.map +1 -1
- package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.d.ts +1 -1
- package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.js +1 -1
- package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.js.map +1 -1
- package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.d.ts +1 -1
- package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.js +1 -1
- package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.js.map +1 -1
- package/dist/repository/chatter-message-details.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message-details.repository.js +7 -6
- package/dist/repository/chatter-message-details.repository.js.map +1 -1
- package/dist/repository/chatter-message.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message.repository.js +4 -4
- package/dist/repository/chatter-message.repository.js.map +1 -1
- package/dist/repository/solid-base.repository.js +2 -2
- package/dist/repository/solid-base.repository.js.map +1 -1
- package/dist/seeders/module-test-data.service.js +4 -4
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +7 -3
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +7 -7
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +2 -2
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +9 -9
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +4 -3
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +7 -7
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/fixtures.service.js +2 -2
- package/dist/services/fixtures.service.js.map +1 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +1 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +2 -2
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +2 -2
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.js +2 -2
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +11 -10
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +2 -2
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.d.ts +1 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
- package/dist/services/queues/publisher-factory.service.js +2 -2
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +3 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/queues/redis-subscriber.service.d.ts +1 -1
- package/dist/services/queues/redis-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/redis-subscriber.service.js.map +1 -1
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js +3 -3
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js.map +1 -1
- package/dist/services/solid-introspect.service.js +2 -2
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +2 -2
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +6 -6
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/winston.logger.js +1 -1
- package/dist/winston.logger.js.map +1 -1
- package/package.json +1 -2
- package/src/helpers/bootstrap.helper.ts +5 -2
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +1 -1
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +1 -2
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +1 -1
- package/src/helpers/module-metadata-helper.service.ts +3 -3
- package/src/helpers/string.helper.ts +3 -0
- package/src/interfaces/mq.ts +2 -2
- package/src/jobs/database/api-email-subscriber-database.service.ts +1 -1
- package/src/jobs/database/msg91-whatsapp-subscriber-database.service.ts +1 -1
- package/src/jobs/database/three60-whatsapp-subscriber-database.service.ts +1 -1
- package/src/jobs/rabbitmq/api-email-subscriber.service.ts +1 -1
- package/src/jobs/rabbitmq/msg91-whatsapp-subscriber.service.ts +1 -1
- package/src/jobs/rabbitmq/test-queue-subscriber.service.ts +6 -7
- package/src/jobs/rabbitmq/three60-whatsapp-subscriber.service.ts +1 -1
- package/src/jobs/redis/api-email-subscriber-redis.service.ts +1 -1
- package/src/jobs/redis/msg91-whatsapp-subscriber-redis.service.ts +1 -1
- package/src/jobs/redis/three60-whatsapp-subscriber-redis.service.ts +1 -1
- package/src/repository/chatter-message-details.repository.ts +4 -3
- package/src/repository/chatter-message.repository.ts +4 -4
- package/src/repository/solid-base.repository.ts +2 -2
- package/src/seeders/module-test-data.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +7 -3
- package/src/services/chatter-message.service.ts +1 -3
- package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +1 -2
- package/src/services/crud-helper.service.ts +1 -4
- package/src/services/export-transaction.service.ts +3 -4
- package/src/services/field-metadata.service.ts +1 -4
- package/src/services/fixtures.service.ts +1 -1
- package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +1 -2
- package/src/services/import-transaction.service.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +2 -2
- package/src/services/model-metadata.service.ts +10 -12
- package/src/services/module-metadata.service.ts +1 -2
- package/src/services/queues/database-subscriber.service.ts +1 -1
- package/src/services/queues/publisher-factory.service.ts +1 -2
- package/src/services/queues/rabbitmq-subscriber.service.ts +13 -11
- package/src/services/queues/redis-subscriber.service.ts +2 -2
- package/src/services/selection-providers/pseudo-foreign-key-selection-provider.service.ts +1 -1
- package/src/services/solid-introspect.service.ts +1 -1
- package/src/services/view-metadata.service.ts +1 -5
- package/src/subscribers/computed-entity-field.subscriber.ts +6 -6
- package/src/winston.logger.ts +1 -1
|
@@ -9,7 +9,7 @@ import { MenuItemMetadata } from '../entities/menu-item-metadata.entity';
|
|
|
9
9
|
import { UpdateMenuItemMetadataDto } from '../dtos/update-menu-item-metadata.dto';
|
|
10
10
|
import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
|
|
11
11
|
import { ModuleMetadata } from '../entities/module-metadata.entity';
|
|
12
|
-
import {
|
|
12
|
+
import { kebabCase } from 'lodash';
|
|
13
13
|
import { MenuItemMetadataRepository } from 'src/repository/menu-item-metadata.repository';
|
|
14
14
|
import { SavedFiltersRepository } from 'src/repository/saved-filters.repository';
|
|
15
15
|
|
|
@@ -191,7 +191,7 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
|
|
|
191
191
|
// TODO: Here we are assuming that we will always take the user to collection view of a model.
|
|
192
192
|
// We can make provision to take them other views also in the future.
|
|
193
193
|
// path = `/admin/core/${rootItem.module.name}/${rootItem.action.model.singularName}/${rootItem.action.view.name}`;
|
|
194
|
-
path = `/admin/core/${rootItem.module.name}/${
|
|
194
|
+
path = `/admin/core/${rootItem.module.name}/${kebabCase(rootItem.action?.model?.singularName ?? 'unknown')}/${rootItem.action?.view?.type ?? 'list'}?menuItemId=${menuItemId}&menuItemName=${menuItemName}&actionId=${actionId}&actionName=${actionName}${savedFilterId ? `&savedQuery=${savedFilterId}` : ''}`;
|
|
195
195
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
@@ -7,7 +7,8 @@ import { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';
|
|
|
7
7
|
import { ModelMetadata } from '../entities/model-metadata.entity';
|
|
8
8
|
import { ModuleMetadata } from '../entities/module-metadata.entity';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { kebabCase } from 'lodash';
|
|
11
|
+
import { classify } from '../helpers/string.helper';
|
|
11
12
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
12
13
|
import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
|
|
13
14
|
import { SolidFieldType } from 'src/dtos/create-field-metadata.dto';
|
|
@@ -586,32 +587,32 @@ export class ModelMetadataService {
|
|
|
586
587
|
|
|
587
588
|
const filesToDelete = [];
|
|
588
589
|
// <singularName>.entity.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
589
|
-
const entityFilePath = `${modulePath}/entities/${
|
|
590
|
+
const entityFilePath = `${modulePath}/entities/${kebabCase(modelEntity.singularName)}.entity.ts`;
|
|
590
591
|
filesToDelete.push(entityFilePath);
|
|
591
592
|
this.logger.log(`About to delete entity file path: ${entityFilePath}`);
|
|
592
593
|
|
|
593
594
|
// <singularName>.create.dto.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
594
|
-
const createDtoFilePath = `${modulePath}/dtos/create-${
|
|
595
|
+
const createDtoFilePath = `${modulePath}/dtos/create-${kebabCase(modelEntity.singularName)}.dto.ts`;
|
|
595
596
|
filesToDelete.push(createDtoFilePath);
|
|
596
597
|
this.logger.log(`About to delete create DTO file path: ${createDtoFilePath}`);
|
|
597
598
|
|
|
598
599
|
// <singularName>.update.dto.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
599
|
-
const updateDtoFilePath = `${modulePath}/dtos/update-${
|
|
600
|
+
const updateDtoFilePath = `${modulePath}/dtos/update-${kebabCase(modelEntity.singularName)}.dto.ts`;
|
|
600
601
|
filesToDelete.push(updateDtoFilePath);
|
|
601
602
|
this.logger.log(`About to delete update DTO file path: ${updateDtoFilePath}`);
|
|
602
603
|
|
|
603
604
|
// <singularName>.repository.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
604
|
-
const repositoryFilePath = `${modulePath}/repositories/${
|
|
605
|
+
const repositoryFilePath = `${modulePath}/repositories/${kebabCase(modelEntity.singularName)}.repository.ts`;
|
|
605
606
|
filesToDelete.push(repositoryFilePath);
|
|
606
607
|
this.logger.log(`About to delete repository file path: ${repositoryFilePath}`);
|
|
607
608
|
|
|
608
609
|
// <singularName>.service.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
609
|
-
const serviceFilePath = `${modulePath}/services/${
|
|
610
|
+
const serviceFilePath = `${modulePath}/services/${kebabCase(modelEntity.singularName)}.service.ts`;
|
|
610
611
|
filesToDelete.push(serviceFilePath);
|
|
611
612
|
this.logger.log(`About to delete service file path: ${serviceFilePath}`);
|
|
612
613
|
|
|
613
614
|
// <singularName>.controller.ts | The TypeORM model that needs to be deleted. | Automatic
|
|
614
|
-
const controllerFilePath = `${modulePath}/controllers/${
|
|
615
|
+
const controllerFilePath = `${modulePath}/controllers/${kebabCase(modelEntity.singularName)}.controller.ts`;
|
|
615
616
|
filesToDelete.push(controllerFilePath);
|
|
616
617
|
this.logger.log(`About to delete controller file path: ${controllerFilePath}`);
|
|
617
618
|
|
|
@@ -713,11 +714,11 @@ export class ModelMetadataService {
|
|
|
713
714
|
|
|
714
715
|
// <moduleName>.module.ts | Remove all references and imports of the deleted model files. | Automatic
|
|
715
716
|
if (modulePath) {
|
|
716
|
-
const moduleFilePath = path.resolve(modulePath, `${
|
|
717
|
+
const moduleFilePath = path.resolve(modulePath, `${kebabCase(modelEntity.module?.name)}.module.ts`);
|
|
717
718
|
this.logger.log(`Removing model '${modelEntity.singularName}' references from module file: ${moduleFilePath}`);
|
|
718
719
|
try {
|
|
719
720
|
this.solidTsMorphService.begin();
|
|
720
|
-
const modelPathSegment = `/${
|
|
721
|
+
const modelPathSegment = `/${kebabCase(modelEntity.singularName)}.`;
|
|
721
722
|
const { removedIdentifiers } = this.solidTsMorphService.removeImports(
|
|
722
723
|
moduleFilePath,
|
|
723
724
|
spec => spec.includes(modelPathSegment)
|
|
@@ -930,7 +931,6 @@ export class ModelMetadataService {
|
|
|
930
931
|
}
|
|
931
932
|
};
|
|
932
933
|
|
|
933
|
-
|
|
934
934
|
const modelFormView = {
|
|
935
935
|
name: formViewName,
|
|
936
936
|
displayName: `${model.displayName}`,
|
|
@@ -1415,7 +1415,6 @@ export class ModelMetadataService {
|
|
|
1415
1415
|
const currentOffset = (meta.currentPage - 1) * meta.perPage;
|
|
1416
1416
|
const currentIndexGlobal = currentOffset + index + 1;
|
|
1417
1417
|
|
|
1418
|
-
|
|
1419
1418
|
let prev: { record: any; offset: number; limit: number } | null = null;
|
|
1420
1419
|
let next: { record: any; offset: number; limit: number } | null = null;
|
|
1421
1420
|
|
|
@@ -1517,5 +1516,4 @@ export class ModelMetadataService {
|
|
|
1517
1516
|
};
|
|
1518
1517
|
}
|
|
1519
1518
|
|
|
1520
|
-
|
|
1521
1519
|
}
|
|
@@ -6,7 +6,7 @@ import { DataSource, EntityManager, SelectQueryBuilder } from 'typeorm';
|
|
|
6
6
|
import { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';
|
|
7
7
|
import { ModuleMetadata } from '../entities/module-metadata.entity';
|
|
8
8
|
|
|
9
|
-
import { classify } from '
|
|
9
|
+
import { classify } from '../helpers/string.helper';
|
|
10
10
|
import { ConfigService } from '@nestjs/config';
|
|
11
11
|
import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
|
|
12
12
|
import * as path from 'path'; // To handle file paths
|
|
@@ -278,7 +278,6 @@ export class ModuleMetadataService {
|
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
-
|
|
282
281
|
metaData.moduleMetadata.name = module?.name;
|
|
283
282
|
metaData.moduleMetadata.displayName = module?.displayName;
|
|
284
283
|
metaData.moduleMetadata.description = module?.description;
|
|
@@ -34,7 +34,7 @@ export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
34
34
|
return this._loggerInstance;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
abstract subscribe(message: QueueMessage<T>)
|
|
37
|
+
abstract subscribe(message: QueueMessage<T>): Promise<any>;
|
|
38
38
|
|
|
39
39
|
abstract options(): QueuesModuleOptions;
|
|
40
40
|
|
|
@@ -2,10 +2,9 @@ import { forwardRef, Inject, Logger } from '@nestjs/common';
|
|
|
2
2
|
import { Injectable } from '@nestjs/common';
|
|
3
3
|
|
|
4
4
|
import { QueueMessage, QueuePublisher } from 'src/interfaces/mq';
|
|
5
|
-
import { classify } from '
|
|
5
|
+
import { classify } from '../../helpers/string.helper';
|
|
6
6
|
import { SolidIntrospectService } from '../solid-introspect.service';
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
@Injectable()
|
|
10
9
|
export class PublisherFactory<T> {
|
|
11
10
|
private readonly logger = new Logger(PublisherFactory.name);
|
|
@@ -52,7 +52,7 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
52
52
|
return this._loggerInstance;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
abstract subscribe(message: QueueMessage<T>)
|
|
55
|
+
abstract subscribe(message: QueueMessage<T>): Promise<any>;
|
|
56
56
|
|
|
57
57
|
abstract options(): QueuesModuleOptions;
|
|
58
58
|
|
|
@@ -458,16 +458,18 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
458
458
|
// Main subscriber work promise.
|
|
459
459
|
// If timeout has already fired, suppress rethrow to avoid unhandled rejection noise
|
|
460
460
|
// (the timeout error is already the authoritative failure we track).
|
|
461
|
-
const subscribePromise =
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
(
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
461
|
+
const subscribePromise = Promise.resolve()
|
|
462
|
+
.then(() => this.subscribe(message))
|
|
463
|
+
.catch((error) => {
|
|
464
|
+
if (timedOut) {
|
|
465
|
+
this.logger.error(
|
|
466
|
+
`Subscriber promise rejected after timeout for queue ${queueName} and messageId ${messageId}: ${(error as Error)?.message || String(error)}`,
|
|
467
|
+
(error as Error)?.stack,
|
|
468
|
+
);
|
|
469
|
+
return undefined;
|
|
470
|
+
}
|
|
471
|
+
throw error;
|
|
472
|
+
});
|
|
471
473
|
|
|
472
474
|
// Timeout promise rejects after timeoutMs with an explicit domain-specific error.
|
|
473
475
|
const timeoutPromise = new Promise<never>((_, reject) => {
|
|
@@ -23,7 +23,7 @@ export abstract class RedisSubscriber<T> implements OnModuleInit, OnModuleDestro
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
abstract subscribe(message: QueueMessage<T>):
|
|
26
|
+
abstract subscribe(message: QueueMessage<T>): Promise<any>;
|
|
27
27
|
|
|
28
28
|
abstract options(): QueuesModuleOptions;
|
|
29
29
|
|
|
@@ -205,4 +205,4 @@ export abstract class RedisSubscriber<T> implements OnModuleInit, OnModuleDestro
|
|
|
205
205
|
this.logger.error(err.message, err.stack);
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
|
-
}
|
|
208
|
+
}
|
|
@@ -4,7 +4,7 @@ import { BadRequestException, Injectable } from "@nestjs/common";
|
|
|
4
4
|
import { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
|
|
5
5
|
import { BasicFilterDto } from "src/dtos/basic-filters.dto";
|
|
6
6
|
import { SolidIntrospectService } from "../solid-introspect.service";
|
|
7
|
-
import { classify } from
|
|
7
|
+
import { classify } from '../../helpers/string.helper';
|
|
8
8
|
import { CRUDService } from "../crud.service";
|
|
9
9
|
|
|
10
10
|
interface PseudoForeignKeySelectionProviderContext extends ISelectionProviderContext {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { classify } from '
|
|
1
|
+
import { classify } from '../helpers/string.helper';
|
|
2
2
|
import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
|
|
3
3
|
import { DiscoveryService, MetadataScanner, ModuleRef, Reflector } from '@nestjs/core';
|
|
4
4
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
@@ -4,8 +4,7 @@ import { InjectEntityManager } from '@nestjs/typeorm';
|
|
|
4
4
|
import { CRUDService } from 'src/services/crud.service';
|
|
5
5
|
import { EntityManager } from 'typeorm';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
7
|
+
import { classify } from '../helpers/string.helper';
|
|
9
8
|
import { Locale } from 'src/entities/locale.entity';
|
|
10
9
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
11
10
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
@@ -111,7 +110,6 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
111
110
|
async getLayout(query, activeUser) {
|
|
112
111
|
let { modelName, moduleName, viewType, id, populate, menuItemId, menuItemName, actionId, actionName } = query;
|
|
113
112
|
|
|
114
|
-
|
|
115
113
|
// 1. Fetch the action based on actionId.
|
|
116
114
|
const solidRequestContext = {
|
|
117
115
|
activeUser: activeUser
|
|
@@ -156,7 +154,6 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
156
154
|
}));
|
|
157
155
|
}
|
|
158
156
|
|
|
159
|
-
|
|
160
157
|
const viewId = action?.view?.id
|
|
161
158
|
// 3. Fetch the view based on module, model & view name.
|
|
162
159
|
const entity = await this.repo.findOne({
|
|
@@ -203,7 +200,6 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
203
200
|
entity.layout = JSON.parse(entity.layout);
|
|
204
201
|
}
|
|
205
202
|
|
|
206
|
-
|
|
207
203
|
// 6. We are resolving the create & edit actions if specified in the layout.
|
|
208
204
|
if (entity?.layout?.attrs?.createAction) {
|
|
209
205
|
const actionName: string = entity.layout.attrs.createAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { camelCase } from 'lodash';
|
|
2
2
|
import { Delete } from "@aws-sdk/client-s3";
|
|
3
3
|
import { forwardRef, Inject, Injectable, InternalServerErrorException, Logger, Scope } from "@nestjs/common";
|
|
4
4
|
import { model } from "mongoose";
|
|
@@ -35,33 +35,33 @@ export class ComputedEntityFieldSubscriber implements EntitySubscriberInterface
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
async beforeInsert(event: InsertEvent<any>): Promise<any> {
|
|
38
|
-
const modelName =
|
|
38
|
+
const modelName = camelCase(event.metadata?.name ?? event.entity?.constructor?.name ?? '');
|
|
39
39
|
const eventContext = this.sanitizeEventContext(event, 'beforeInsert');
|
|
40
40
|
await this.handleComputedFieldEvaluation(event.entity, ComputedFieldTriggerOperation.beforeInsert, modelName, eventContext);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
async beforeUpdate(event: UpdateEvent<any>): Promise<any> {
|
|
44
|
-
const modelName =
|
|
44
|
+
const modelName = camelCase(event.metadata?.name ?? event.entity?.constructor?.name ?? '');
|
|
45
45
|
const eventContext = this.sanitizeEventContext(event, 'beforeUpdate');
|
|
46
46
|
// await this.handleComputedFieldEvaluation(event.databaseEntity, ComputedFieldTriggerOperation.beforeUpdate, modelName, eventContext);
|
|
47
47
|
await this.handleComputedFieldEvaluation(event.entity, ComputedFieldTriggerOperation.beforeUpdate, modelName, eventContext);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
afterInsert(event: InsertEvent<any>) {
|
|
51
|
-
const modelName =
|
|
51
|
+
const modelName = camelCase(event.metadata?.name ?? event.entity?.constructor?.name ?? '');
|
|
52
52
|
const eventContext = this.sanitizeEventContext(event, 'afterInsert');
|
|
53
53
|
this.handleComputedFieldEvaluationJob(event.entity, ComputedFieldTriggerOperation.afterInsert, modelName, eventContext);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
afterUpdate(event: UpdateEvent<any>) {
|
|
57
|
-
const modelName =
|
|
57
|
+
const modelName = camelCase(event.metadata?.name ?? event.entity?.constructor?.name ?? event.databaseEntity?.constructor?.name ?? '');
|
|
58
58
|
const eventContext = this.sanitizeEventContext(event, 'afterUpdate');
|
|
59
59
|
// this.handleComputedFieldEvaluationJob(event.databaseEntity, ComputedFieldTriggerOperation.afterUpdate, modelName, eventContext);
|
|
60
60
|
this.handleComputedFieldEvaluationJob(event.entity, ComputedFieldTriggerOperation.afterUpdate, modelName, eventContext);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
afterRemove(event: RemoveEvent<any>) {
|
|
64
|
-
const modelName =
|
|
64
|
+
const modelName = camelCase(event.metadata?.name ?? event.entity?.constructor?.name ?? event.databaseEntity?.constructor?.name ?? '');
|
|
65
65
|
const eventContext = this.sanitizeEventContext(event, 'afterRemove');
|
|
66
66
|
this.handleComputedFieldEvaluationJob(event.databaseEntity, ComputedFieldTriggerOperation.afterRemove, modelName, eventContext);
|
|
67
67
|
}
|
package/src/winston.logger.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as winston from 'winston';
|
|
|
7
7
|
import { Environment } from './decorators/disallow-in-production.decorator';
|
|
8
8
|
|
|
9
9
|
export const WinstonLoggerConfig = {
|
|
10
|
-
level: process.env.LOG_LEVEL || (process.env.ENV === Environment.Production ? '
|
|
10
|
+
level: process.env.LOG_LEVEL || (process.env.ENV === Environment.Production ? 'info' : 'debug'),
|
|
11
11
|
format: winston.format.combine(
|
|
12
12
|
winston.format.timestamp(),
|
|
13
13
|
winston.format.errors({ stack: true }),
|