@solidxai/core 0.1.10-beta.2 → 0.1.10-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/refresh-model.command.d.ts +1 -7
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +4 -49
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/refresh-module.command.d.ts +0 -2
- package/dist/commands/refresh-module.command.d.ts.map +1 -1
- package/dist/commands/refresh-module.command.js +3 -16
- package/dist/commands/refresh-module.command.js.map +1 -1
- package/dist/commands/test-data.command.d.ts +2 -0
- package/dist/commands/test-data.command.d.ts.map +1 -1
- package/dist/commands/test-data.command.js +32 -6
- package/dist/commands/test-data.command.js.map +1 -1
- package/dist/controllers/action-metadata.controller.js +1 -1
- package/dist/controllers/action-metadata.controller.js.map +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +2 -0
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +17 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/facebook-authentication.controller.js +1 -1
- package/dist/controllers/facebook-authentication.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.js +1 -1
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/gupshup-webhook.controller.d.ts +11 -0
- package/dist/controllers/gupshup-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/gupshup-webhook.controller.js +87 -0
- package/dist/controllers/gupshup-webhook.controller.js.map +1 -0
- package/dist/controllers/mcp-audit-log.controller.d.ts +35 -0
- package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -0
- package/dist/controllers/mcp-audit-log.controller.js +147 -0
- package/dist/controllers/mcp-audit-log.controller.js.map +1 -0
- package/dist/controllers/menu-item-metadata.controller.js +1 -1
- package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts +16 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js +133 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js.map +1 -0
- package/dist/controllers/microsoft-authentication.controller.js +1 -1
- package/dist/controllers/microsoft-authentication.controller.js.map +1 -1
- package/dist/controllers/model-metadata.controller.d.ts +1 -1
- package/dist/controllers/model-metadata.controller.js +2 -2
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/module-metadata.controller.js +1 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/mq-message-queue.controller.js +1 -1
- package/dist/controllers/mq-message-queue.controller.js.map +1 -1
- package/dist/controllers/mq-message.controller.js +1 -1
- package/dist/controllers/mq-message.controller.js.map +1 -1
- package/dist/controllers/view-metadata.controller.js +1 -1
- package/dist/controllers/view-metadata.controller.js.map +1 -1
- package/dist/dtos/create-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/create-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/create-mcp-audit-log.dto.js +118 -0
- package/dist/dtos/create-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts +5 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.js +34 -0
- package/dist/dtos/update-chatter-note-message.dto.js.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.js +117 -0
- package/dist/dtos/update-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/update-user.dto.d.ts +1 -0
- package/dist/dtos/update-user.dto.d.ts.map +1 -1
- package/dist/dtos/update-user.dto.js +7 -1
- package/dist/dtos/update-user.dto.js.map +1 -1
- package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message-details.entity.js +0 -1
- package/dist/entities/chatter-message-details.entity.js.map +1 -1
- package/dist/entities/mcp-audit-log.entity.d.ts +19 -0
- package/dist/entities/mcp-audit-log.entity.d.ts.map +1 -0
- package/dist/entities/mcp-audit-log.entity.js +90 -0
- package/dist/entities/mcp-audit-log.entity.js.map +1 -0
- package/dist/entities/user.entity.js +1 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +13 -11
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +1 -0
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +8 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/command.service.d.ts +1 -0
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +1 -0
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +1 -2
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.js +3 -3
- package/dist/jobs/database/chatter-queue-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js +3 -3
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js.map +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts.map +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.js +3 -3
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.js.map +1 -1
- package/dist/listeners/user-registration.listener.d.ts +5 -2
- package/dist/listeners/user-registration.listener.d.ts.map +1 -1
- package/dist/listeners/user-registration.listener.js +37 -4
- package/dist/listeners/user-registration.listener.js.map +1 -1
- package/dist/repository/mcp-audit-log.repository.d.ts +12 -0
- package/dist/repository/mcp-audit-log.repository.d.ts.map +1 -0
- package/dist/repository/mcp-audit-log.repository.js +34 -0
- package/dist/repository/mcp-audit-log.repository.js.map +1 -0
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +9 -0
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +155 -18
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +381 -2
- package/dist/services/authentication.service.d.ts +6 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +145 -15
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +13 -4
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +117 -37
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/csv.service.js.map +1 -1
- package/dist/services/dashboard.service.js.map +1 -1
- package/dist/services/database/database-bootstrap.service.js.map +1 -1
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/fixtures.service.js.map +1 -1
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/mcp-audit-log.service.d.ts +12 -0
- package/dist/services/mcp-audit-log.service.d.ts.map +1 -0
- package/dist/services/mcp-audit-log.service.js +38 -0
- package/dist/services/mcp-audit-log.service.js.map +1 -0
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +11 -0
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +6 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +4 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +24 -24
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +4 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +19 -2
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/queues/database-publisher.service.js +3 -3
- package/dist/services/queues/database-publisher.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.js +3 -3
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/queues/redis-publisher.service.d.ts.map +1 -1
- package/dist/services/queues/redis-publisher.service.js +4 -1
- package/dist/services/queues/redis-publisher.service.js.map +1 -1
- package/dist/services/queues/redis-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +232 -8
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +119 -4
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user.service.js +1 -1
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +17 -2
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts +11 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js +127 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts +17 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js +209 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js.map +1 -0
- package/dist/solid-core.module.d.ts +2 -2
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +22 -6
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.d.ts.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/dist/subscribers/view-metadata.subscriber.js.map +1 -1
- package/dist/testing/core/testing-engine.js.map +1 -1
- package/dist/testing/reporter/console-reporter.d.ts +10 -0
- package/dist/testing/reporter/console-reporter.d.ts.map +1 -1
- package/dist/testing/reporter/console-reporter.js +21 -0
- package/dist/testing/reporter/console-reporter.js.map +1 -1
- package/dist/testing/reporter/reporter.types.d.ts +7 -0
- package/dist/testing/reporter/reporter.types.d.ts.map +1 -1
- package/dist/testing/reporter/reporter.types.js.map +1 -1
- package/dist/testing/reporter/webhook-reporter.js.map +1 -1
- package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
- package/dist/testing/runner/run-from-metadata.js +20 -1
- package/dist/testing/runner/run-from-metadata.js.map +1 -1
- package/dist/winston.logger.d.ts +5 -0
- package/dist/winston.logger.d.ts.map +1 -1
- package/dist/winston.logger.js +6 -4
- package/dist/winston.logger.js.map +1 -1
- package/dist-tests/api/authenticate.spec.js +119 -0
- package/dist-tests/api/authenticate.spec.js.map +1 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
- package/dist-tests/api/ping.spec.js +21 -0
- package/dist-tests/api/ping.spec.js.map +1 -0
- package/dist-tests/helpers/auth.js +41 -0
- package/dist-tests/helpers/auth.js.map +1 -0
- package/dist-tests/helpers/env.js +11 -0
- package/dist-tests/helpers/env.js.map +1 -0
- package/docs/grouping-enhancements.md +89 -0
- package/docs/java-spring/README.md +3 -0
- package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
- package/docs/seed-changes.md +65 -0
- package/docs/test-data-workflow.md +200 -0
- package/docs/type-declaration-import-issue.md +24 -0
- package/package.json +8 -8
- package/src/commands/refresh-model.command.ts +6 -51
- package/src/commands/refresh-module.command.ts +3 -16
- package/src/commands/test-data.command.ts +29 -6
- package/src/controllers/action-metadata.controller.ts +1 -1
- package/src/controllers/chatter-message.controller.ts +12 -0
- package/src/controllers/facebook-authentication.controller.ts +1 -1
- package/src/controllers/google-authentication.controller.ts +1 -1
- package/src/controllers/gupshup-webhook.controller.ts +91 -0
- package/src/controllers/mcp-audit-log.controller.ts +70 -0
- package/src/controllers/menu-item-metadata.controller.ts +1 -1
- package/src/controllers/meta-cloud-whatsapp-webhook.controller.ts +155 -0
- package/src/controllers/microsoft-authentication.controller.ts +1 -1
- package/src/controllers/model-metadata.controller.ts +1 -1
- package/src/controllers/module-metadata.controller.ts +1 -1
- package/src/controllers/mq-message-queue.controller.ts +1 -1
- package/src/controllers/mq-message.controller.ts +1 -1
- package/src/controllers/view-metadata.controller.ts +1 -1
- package/src/dtos/create-mcp-audit-log.dto.ts +84 -0
- package/src/dtos/update-chatter-note-message.dto.ts +14 -0
- package/src/dtos/update-mcp-audit-log.dto.ts +83 -0
- package/src/dtos/update-user.dto.ts +4 -0
- package/src/entities/chatter-message-details.entity.ts +1 -2
- package/src/entities/mcp-audit-log.entity.ts +55 -0
- package/src/entities/user.entity.ts +1 -1
- package/src/factories/whatsapp.factory.ts +33 -32
- package/src/helpers/bootstrap.helper.ts +16 -6
- package/src/helpers/command.service.ts +2 -0
- package/src/helpers/field-crud-managers/BigIntFieldCrudManager.ts +1 -1
- package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +1 -1
- package/src/helpers/field-crud-managers/field-quality-check-fixes.md +178 -0
- package/src/helpers/module-metadata-helper.service.ts +1 -1
- package/src/index.ts +6 -0
- package/src/interfaces.ts +1 -3
- package/src/jobs/database/chatter-queue-subscriber-database.service.ts +4 -2
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -1
- package/src/jobs/rabbitmq/chatter-queue-subscriber.service.ts +4 -2
- package/src/jobs/redis/chatter-queue-subscriber-redis.service.ts +10 -3
- package/src/listeners/user-registration.listener.ts +49 -6
- package/src/repository/mcp-audit-log.repository.ts +17 -0
- package/src/repository/security-rule.repository.ts +1 -1
- package/src/seeders/module-metadata-seeder.service.ts +4 -4
- package/src/seeders/module-test-data.service.ts +186 -17
- package/src/seeders/permission-metadata-seeder.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +381 -2
- package/src/services/authentication.service.ts +267 -44
- package/src/services/chatter-message.service.ts +140 -40
- package/src/services/crud.service.ts +1 -1
- package/src/services/csv.service.ts +1 -1
- package/src/services/dashboard.service.ts +1 -1
- package/src/services/database/database-bootstrap.service.ts +1 -1
- package/src/services/excel.service.ts +1 -1
- package/src/services/export-transaction.service.ts +2 -2
- package/src/services/field-metadata.service.ts +1 -1
- package/src/services/fixtures.service.ts +2 -2
- package/src/services/import-transaction.service.ts +2 -2
- package/src/services/list-of-values.service.ts +1 -1
- package/src/services/mcp-audit-log.service.ts +19 -0
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +12 -0
- package/src/services/mediaStorageProviders/file-storage-provider.ts +8 -1
- package/src/services/model-metadata.service.ts +36 -34
- package/src/services/module-metadata.service.ts +19 -7
- package/src/services/queues/database-publisher.service.ts +4 -4
- package/src/services/queues/database-subscriber.service.ts +1 -1
- package/src/services/queues/rabbitmq-publisher.service.ts +7 -7
- package/src/services/queues/rabbitmq-subscriber.service.ts +8 -8
- package/src/services/queues/redis-publisher.service.ts +7 -4
- package/src/services/queues/redis-subscriber.service.ts +4 -4
- package/src/services/role-metadata.service.ts +1 -1
- package/src/services/scheduled-jobs/scheduler.service.ts +5 -5
- package/src/services/settings/default-settings-provider.service.ts +119 -4
- package/src/services/sms/TwilioSMSService.ts +2 -2
- package/src/services/solid-introspect.service.ts +2 -2
- package/src/services/user-activity-history.service.ts +1 -1
- package/src/services/user.service.ts +1 -1
- package/src/services/view-metadata.service.ts +25 -8
- package/src/services/whatsapp/GupshupOtpWhatsappService.ts +174 -0
- package/src/services/whatsapp/MetaCloudWhatsappService.ts +253 -0
- package/src/solid-core.module.ts +213 -196
- package/src/subscribers/computed-entity-field.subscriber.ts +1 -1
- package/src/subscribers/security-rule.subscriber.ts +8 -8
- package/src/subscribers/view-metadata.subscriber.ts +1 -1
- package/src/testing/README.md +15 -0
- package/src/testing/core/testing-engine.ts +2 -2
- package/src/testing/reporter/console-reporter.ts +27 -0
- package/src/testing/reporter/reporter.types.ts +7 -0
- package/src/testing/reporter/webhook-reporter.ts +1 -1
- package/src/testing/runner/run-from-metadata.ts +19 -1
- package/src/winston.logger.ts +5 -7
- package/.claude/settings.local.json +0 -15
- package/src/services/1.js +0 -6
|
@@ -27,19 +27,19 @@ export class SecurityRuleSubscriber implements EntitySubscriberInterface<Securit
|
|
|
27
27
|
async afterInsert(event: InsertEvent<SecurityRule>) {
|
|
28
28
|
await this.saveSecurityRules(event);
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
async afterUpdate(event: UpdateEvent<SecurityRule>) {
|
|
32
32
|
await this.saveSecurityRules(event);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
async saveSecurityRules(event: UpdateEvent<SecurityRule
|
|
35
|
+
async saveSecurityRules(event: UpdateEvent<SecurityRule> | InsertEvent<SecurityRule>) {
|
|
36
36
|
const securityRule = event.entity as SecurityRule;
|
|
37
37
|
const modelMetadata = event.entity.modelMetadata;
|
|
38
38
|
if (!modelMetadata) {
|
|
39
39
|
this.logger.error(`Model metadata not found for security rule with id ${event.entity.id}`);
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
const modelMetadataRepo = this.dataSource.getRepository(ModelMetadata);
|
|
44
44
|
const populatedModelMetadata = await modelMetadataRepo.findOne({
|
|
45
45
|
where: {
|
|
@@ -58,7 +58,7 @@ export class SecurityRuleSubscriber implements EntitySubscriberInterface<Securit
|
|
|
58
58
|
const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(populatedModelMetadata.module.name);
|
|
59
59
|
try {
|
|
60
60
|
await fs.access(filePath);
|
|
61
|
-
} catch (error) {
|
|
61
|
+
} catch (error: any) {
|
|
62
62
|
// FIXME - Should we actually delete the security rule here, if the file is not found?
|
|
63
63
|
this.logger.error(`File not found at path: ${filePath}`);
|
|
64
64
|
return;
|
|
@@ -67,13 +67,13 @@ export class SecurityRuleSubscriber implements EntitySubscriberInterface<Securit
|
|
|
67
67
|
|
|
68
68
|
if (metaData.securityRules) {
|
|
69
69
|
const securityRuleIndex = metaData.securityRules?.findIndex((ruleFromFile: { name: string }) => ruleFromFile.name === securityRule.name);
|
|
70
|
-
const {id, roleId, modelMetadataId, ...requiredDto} = await this.securityRuleRepo.toDto(securityRule)
|
|
71
|
-
metaData.securityRules[securityRuleIndex] = {...requiredDto, securityRuleConfig: JSON.parse(securityRule.securityRuleConfig)}
|
|
70
|
+
const { id, roleId, modelMetadataId, ...requiredDto } = await this.securityRuleRepo.toDto(securityRule)
|
|
71
|
+
metaData.securityRules[securityRuleIndex] = { ...requiredDto, securityRuleConfig: JSON.parse(securityRule.securityRuleConfig) }
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
74
74
|
const securityRules = []
|
|
75
|
-
const {id, roleId, modelMetadataId, ...requiredDto} = await this.securityRuleRepo.toDto(securityRule)
|
|
76
|
-
securityRules.push({...requiredDto, securityRuleConfig: JSON.parse(securityRule.securityRuleConfig)})
|
|
75
|
+
const { id, roleId, modelMetadataId, ...requiredDto } = await this.securityRuleRepo.toDto(securityRule)
|
|
76
|
+
securityRules.push({ ...requiredDto, securityRuleConfig: JSON.parse(securityRule.securityRuleConfig) })
|
|
77
77
|
metaData.securityRules = securityRules
|
|
78
78
|
}
|
|
79
79
|
// Write the updated object back to the file
|
|
@@ -43,7 +43,7 @@ export class ViewMetadataSubsciber implements EntitySubscriberInterface<ViewMeta
|
|
|
43
43
|
const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(viewMetadata.model.module.name);
|
|
44
44
|
try {
|
|
45
45
|
await fs.access(filePath);
|
|
46
|
-
} catch (error) {
|
|
46
|
+
} catch (error: any) {
|
|
47
47
|
this.logger.error(`File not found at path: ${filePath}`);
|
|
48
48
|
return;
|
|
49
49
|
}
|
package/src/testing/README.md
CHANGED
|
@@ -356,6 +356,21 @@ await runFromMetadata({
|
|
|
356
356
|
});
|
|
357
357
|
```
|
|
358
358
|
|
|
359
|
+
## CLI Workflows
|
|
360
|
+
Full isolated-database workflow:
|
|
361
|
+
1. `npx @solidxai/solidctl@latest test data --setup`
|
|
362
|
+
2. `npx @solidxai/solidctl@latest seed`
|
|
363
|
+
3. `npx @solidxai/solidctl@latest test data --load`
|
|
364
|
+
4. `npx @solidxai/solidctl@latest test run --module <module-name>`
|
|
365
|
+
5. `npx @solidxai/solidctl@latest test data --teardown`
|
|
366
|
+
|
|
367
|
+
Lightweight existing-database workflow:
|
|
368
|
+
1. `npx @solidxai/solidctl@latest test data --load`
|
|
369
|
+
2. `npx @solidxai/solidctl@latest test run --module <module-name>`
|
|
370
|
+
3. `npx @solidxai/solidctl@latest test data --unlink`
|
|
371
|
+
|
|
372
|
+
`test data --unlink` deletes records declared in `testing.data` in reverse order using each model's `userKeyFieldUserKey` and the entry's `recUserKeyValue`. This assumes `testing.data` is authored in dependency order, with parent records appearing before dependent records.
|
|
373
|
+
|
|
359
374
|
## Add A New Step (SOP)
|
|
360
375
|
1. Create a new `*.step.ts` in the right domain folder.
|
|
361
376
|
2. Implement a `registerXSteps(registry)` function and `registry.register("op.name", handler)`.
|
|
@@ -57,7 +57,7 @@ export class TestingEngine {
|
|
|
57
57
|
} else {
|
|
58
58
|
await execute();
|
|
59
59
|
}
|
|
60
|
-
} catch (err) {
|
|
60
|
+
} catch (err: any) {
|
|
61
61
|
scenarioError = err;
|
|
62
62
|
} finally {
|
|
63
63
|
const durationMs = Date.now() - scenarioStart;
|
|
@@ -108,7 +108,7 @@ export class TestingEngine {
|
|
|
108
108
|
// console.log(`Step ${resolvedStep.name} attempting to saveAs ${resolvedStep.saveAs}`, JSON.stringify(result));
|
|
109
109
|
ctx.resources.set(resolvedStep.saveAs, result);
|
|
110
110
|
}
|
|
111
|
-
} catch (err) {
|
|
111
|
+
} catch (err: any) {
|
|
112
112
|
stepError = err;
|
|
113
113
|
throw err;
|
|
114
114
|
} finally {
|
|
@@ -146,6 +146,10 @@ function formatStepLabel(step: OpStep): string {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
export class ConsoleReporter implements Reporter {
|
|
149
|
+
private totalScenarios = 0;
|
|
150
|
+
private passedScenarios = 0;
|
|
151
|
+
private failedScenarios = 0;
|
|
152
|
+
|
|
149
153
|
onScenarioStart(scenario: { id: string; name?: string }): void {
|
|
150
154
|
const label = scenario.name ? `${scenario.id} (${scenario.name})` : scenario.id;
|
|
151
155
|
console.log(`\n▶ Scenario: ${label}`);
|
|
@@ -157,6 +161,12 @@ export class ConsoleReporter implements Reporter {
|
|
|
157
161
|
): void {
|
|
158
162
|
const label = scenario.name ? `${scenario.id} (${scenario.name})` : scenario.id;
|
|
159
163
|
const status = result.ok ? "✔" : "✖";
|
|
164
|
+
this.totalScenarios += 1;
|
|
165
|
+
if (result.ok) {
|
|
166
|
+
this.passedScenarios += 1;
|
|
167
|
+
} else {
|
|
168
|
+
this.failedScenarios += 1;
|
|
169
|
+
}
|
|
160
170
|
console.log(`${status} Scenario: ${label} (${result.durationMs}ms)`);
|
|
161
171
|
}
|
|
162
172
|
|
|
@@ -226,4 +236,21 @@ export class ConsoleReporter implements Reporter {
|
|
|
226
236
|
if (!dataText.length) return;
|
|
227
237
|
console.log(indentLines(dataText, `${STEP_INDENT}${INDENT}${INDENT}`));
|
|
228
238
|
}
|
|
239
|
+
|
|
240
|
+
onRunEnd(args: {
|
|
241
|
+
ok: boolean;
|
|
242
|
+
total: number;
|
|
243
|
+
passed: number;
|
|
244
|
+
failed: number;
|
|
245
|
+
durationMs: number;
|
|
246
|
+
}): void {
|
|
247
|
+
const durationSeconds = (args.durationMs / 1000).toFixed(2);
|
|
248
|
+
const finalStatus = args.ok ? "PASSED" : "FAILED";
|
|
249
|
+
|
|
250
|
+
console.log("\n════════ Test Run Summary ════════");
|
|
251
|
+
console.log(`Result: Test run ${finalStatus}`);
|
|
252
|
+
console.log(`Cases: total=${args.total}, passed=${args.passed}, failed=${args.failed}`);
|
|
253
|
+
console.log(`Duration: ${durationSeconds}s`);
|
|
254
|
+
console.log("══════════════════════════════════");
|
|
255
|
+
}
|
|
229
256
|
}
|
|
@@ -109,7 +109,7 @@ export class WebhookReporter extends ConsoleReporter {
|
|
|
109
109
|
if (!response.ok) {
|
|
110
110
|
console.warn(`[WebhookReporter] Webhook returned ${response.status}`);
|
|
111
111
|
}
|
|
112
|
-
} catch (err) {
|
|
112
|
+
} catch (err: any) {
|
|
113
113
|
console.warn(`[WebhookReporter] Failed to deliver test results: ${err}`);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -44,6 +44,7 @@ export type RunnerOptions = {
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
export async function runFromMetadata(opts: RunnerOptions): Promise<void> {
|
|
47
|
+
const startedAt = Date.now();
|
|
47
48
|
const registry = new StepRegistry();
|
|
48
49
|
registerApiSteps(registry);
|
|
49
50
|
registerUiSteps(registry);
|
|
@@ -71,15 +72,32 @@ export async function runFromMetadata(opts: RunnerOptions): Promise<void> {
|
|
|
71
72
|
const ui = new PlaywrightAdapter(opts.ui);
|
|
72
73
|
const ctxBase = { resources, reporter, api, ui, specRegistry, testData, options: opts.options };
|
|
73
74
|
const uiStarted = { value: false };
|
|
75
|
+
let passed = 0;
|
|
76
|
+
let failed = 0;
|
|
77
|
+
let runError: unknown;
|
|
74
78
|
|
|
75
79
|
try {
|
|
76
80
|
for (const scenario of scenarios) {
|
|
77
81
|
if (scenarioNeedsUi(scenario)) {
|
|
78
82
|
await ensureUiStarted(ctxBase, uiStarted);
|
|
79
83
|
}
|
|
80
|
-
|
|
84
|
+
try {
|
|
85
|
+
await engine.runScenario(scenario, ctxBase);
|
|
86
|
+
passed += 1;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
failed += 1;
|
|
89
|
+
runError = error;
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
81
92
|
}
|
|
82
93
|
} finally {
|
|
94
|
+
reporter.onRunEnd?.({
|
|
95
|
+
ok: !runError,
|
|
96
|
+
total: scenarios.length,
|
|
97
|
+
passed,
|
|
98
|
+
failed,
|
|
99
|
+
durationMs: Date.now() - startedAt,
|
|
100
|
+
});
|
|
83
101
|
if (uiStarted.value) {
|
|
84
102
|
await ui.stop();
|
|
85
103
|
}
|
package/src/winston.logger.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
|
|
|
6
6
|
import * as winston from 'winston';
|
|
7
7
|
import { Environment } from './decorators/disallow-in-production.decorator';
|
|
8
8
|
|
|
9
|
-
export const
|
|
10
|
-
level: process.env.LOG_LEVEL || (process.env.ENV === Environment.Production ? '
|
|
9
|
+
export const createWinstonLoggerConfig = () => ({
|
|
10
|
+
level: process.env.LOG_LEVEL || (process.env.ENV === Environment.Production ? 'warn' : 'info'),
|
|
11
11
|
format: winston.format.combine(
|
|
12
12
|
winston.format.timestamp(),
|
|
13
13
|
winston.format.errors({ stack: true }),
|
|
@@ -21,8 +21,6 @@ export const WinstonLoggerConfig = {
|
|
|
21
21
|
transports: [
|
|
22
22
|
new winston.transports.Console({
|
|
23
23
|
format: winston.format.combine(
|
|
24
|
-
// winston.format.colorize(),
|
|
25
|
-
// winston.format.timestamp(),
|
|
26
24
|
winston.format.printf(({ level, message, timestamp }) => {
|
|
27
25
|
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
|
|
28
26
|
}),
|
|
@@ -30,15 +28,15 @@ export const WinstonLoggerConfig = {
|
|
|
30
28
|
}),
|
|
31
29
|
new winston.transports.File({
|
|
32
30
|
filename: 'logs/application.log',
|
|
33
|
-
// format: winston.format.json(),
|
|
34
31
|
}),
|
|
35
32
|
new winston.transports.File({
|
|
36
33
|
filename: 'logs/error.log',
|
|
37
34
|
level: 'error',
|
|
38
|
-
// format: winston.format.json(),
|
|
39
35
|
}),
|
|
40
36
|
],
|
|
41
|
-
};
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export const WinstonLoggerConfig = createWinstonLoggerConfig();
|
|
42
40
|
|
|
43
41
|
export class WinstonTypeORMLogger implements TypeORMLogger {
|
|
44
42
|
constructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger) { }
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(node -e:*)",
|
|
5
|
-
"WebFetch(domain:docs.solidxai.com)",
|
|
6
|
-
"WebFetch(domain:github.com)",
|
|
7
|
-
"Read(//Users/oswald/projects/Solid_Starters/solidctl/**)",
|
|
8
|
-
"Read(//Users/oswald/projects/Solid_Starters/**)",
|
|
9
|
-
"Bash(find /Users/oswald/projects/Solid_Starters/solid-core-module -type d -name migration* -o -name *database*)"
|
|
10
|
-
],
|
|
11
|
-
"additionalDirectories": [
|
|
12
|
-
"/Users/oswald/projects/Solid_Starters/solidctl"
|
|
13
|
-
]
|
|
14
|
-
}
|
|
15
|
-
}
|
package/src/services/1.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
1. Do i need to create a storeStreams method for aws service too?
|
|
2
|
-
- Handle later
|
|
3
|
-
2. queues handling -> if queues is enabled by default, i.e triggerExport(exportTransactionEntity.id).
|
|
4
|
-
- startExport should either return the data or return the transaction id
|
|
5
|
-
3. How to handle scenarios wherein, nested related exist.(do i need to only get the userkey)
|
|
6
|
-
- show the userKey
|