@solidstarters/solid-core 1.2.200 → 1.2.202
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/fixtures/fixtures-setup.command.d.ts +15 -0
- package/dist/commands/fixtures/fixtures-setup.command.d.ts.map +1 -0
- package/dist/commands/fixtures/fixtures-setup.command.js +58 -0
- package/dist/commands/fixtures/fixtures-setup.command.js.map +1 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.d.ts +16 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.d.ts.map +1 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.js +59 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.js.map +1 -0
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +4 -0
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/config/cache.options.d.ts +1 -1
- package/dist/config/cache.options.d.ts.map +1 -1
- package/dist/config/cache.options.js +2 -2
- package/dist/config/cache.options.js.map +1 -1
- package/dist/config/iam.config.d.ts +4 -0
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +2 -0
- package/dist/config/iam.config.js.map +1 -1
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +4 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/controllers/model-metadata.controller.d.ts +25 -0
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +23 -0
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +43 -0
- package/dist/controllers/model-sequence.controller.d.ts.map +1 -0
- package/dist/controllers/model-sequence.controller.js +179 -0
- package/dist/controllers/model-sequence.controller.js.map +1 -0
- package/dist/controllers/setting.controller.d.ts +2 -2
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +36 -42
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/decorators/sms-provider.decorator.d.ts +3 -0
- package/dist/decorators/sms-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/sms-provider.decorator.js +11 -0
- package/dist/decorators/sms-provider.decorator.js.map +1 -0
- package/dist/dtos/basic-filters.dto.d.ts +3 -1
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +8 -2
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/basic-group-filters.dto.d.ts +6 -0
- package/dist/dtos/basic-group-filters.dto.d.ts.map +1 -0
- package/dist/dtos/basic-group-filters.dto.js +46 -0
- package/dist/dtos/basic-group-filters.dto.js.map +1 -0
- package/dist/dtos/create-field-metadata.dto.js +2 -2
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts +14 -0
- package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -0
- package/dist/dtos/create-model-sequence.dto.js +90 -0
- package/dist/dtos/create-model-sequence.dto.js.map +1 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +1 -0
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/get-mcp-url.dto.d.ts +5 -0
- package/dist/dtos/get-mcp-url.dto.d.ts.map +1 -0
- package/dist/dtos/get-mcp-url.dto.js +31 -0
- package/dist/dtos/get-mcp-url.dto.js.map +1 -0
- package/dist/dtos/navigation.dto.d.ts +6 -0
- package/dist/dtos/navigation.dto.d.ts.map +1 -0
- package/dist/dtos/navigation.dto.js +33 -0
- package/dist/dtos/navigation.dto.js.map +1 -0
- package/dist/dtos/resolve-s3-url.dto.d.ts +5 -5
- package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -1
- package/dist/dtos/resolve-s3-url.dto.js +7 -7
- package/dist/dtos/resolve-s3-url.dto.js.map +1 -1
- package/dist/dtos/sign-in.dto.js +3 -3
- package/dist/dtos/sign-in.dto.js.map +1 -1
- package/dist/dtos/update-model-sequence.dto.d.ts +15 -0
- package/dist/dtos/update-model-sequence.dto.d.ts.map +1 -0
- package/dist/dtos/update-model-sequence.dto.js +94 -0
- package/dist/dtos/update-model-sequence.dto.js.map +1 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +6 -4
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +2 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/legacy-common.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common.entity.js +6 -4
- package/dist/entities/legacy-common.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +5 -1
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/model-sequence.entity.d.ts +15 -0
- package/dist/entities/model-sequence.entity.d.ts.map +1 -0
- package/dist/entities/model-sequence.entity.js +67 -0
- package/dist/entities/model-sequence.entity.js.map +1 -0
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts +14 -0
- package/dist/factories/sms.factory.d.ts.map +1 -0
- package/dist/factories/sms.factory.js +53 -0
- package/dist/factories/sms.factory.js.map +1 -0
- package/dist/helpers/date.helper.d.ts.map +1 -1
- package/dist/helpers/date.helper.js +13 -4
- package/dist/helpers/date.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js +13 -2
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +4 -9
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +7 -8
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +4 -9
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +6 -2
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +1 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -0
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.d.ts +1 -0
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +29 -3
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +14 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +7 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts +1 -0
- package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/computed-field-evaluation-subscriber.service.js +16 -4
- package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +1 -1
- package/dist/jobs/database/{sms-publisher-database.service.d.ts → msg91-sms-publisher-database.service.d.ts} +2 -2
- package/dist/jobs/database/msg91-sms-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{sms-publisher-database.service.js → msg91-sms-publisher-database.service.js} +8 -8
- package/dist/jobs/database/msg91-sms-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/{sms-queue-database-options.d.ts → msg91-sms-queue-database-options.d.ts} +1 -1
- package/dist/jobs/database/msg91-sms-queue-database-options.d.ts.map +1 -0
- package/dist/jobs/database/{sms-queue-database-options.js → msg91-sms-queue-database-options.js} +1 -1
- package/dist/jobs/database/msg91-sms-queue-database-options.js.map +1 -0
- package/dist/jobs/database/{sms-subscriber-database.service.d.ts → msg91-sms-subscriber-database.service.d.ts} +5 -5
- package/dist/jobs/database/msg91-sms-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{sms-subscriber-database.service.js → msg91-sms-subscriber-database.service.js} +14 -12
- package/dist/jobs/database/msg91-sms-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +4 -4
- package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.js +6 -4
- package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +3 -3
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js +6 -4
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js.map +1 -1
- package/dist/jobs/{sms-publisher.service.d.ts → msg91-otp-publisher.service.d.ts} +2 -2
- package/dist/jobs/msg91-otp-publisher.service.d.ts.map +1 -0
- package/dist/jobs/{sms-publisher.service.js → msg91-otp-publisher.service.js} +8 -8
- package/dist/jobs/msg91-otp-publisher.service.js.map +1 -0
- package/dist/jobs/{sms-queue-options.d.ts → msg91-otp-queue-options.d.ts} +1 -1
- package/dist/jobs/msg91-otp-queue-options.d.ts.map +1 -0
- package/dist/jobs/{otp-queue-options.js → msg91-otp-queue-options.js} +1 -1
- package/dist/jobs/msg91-otp-queue-options.js.map +1 -0
- package/dist/jobs/{sms-subscriber.service.d.ts → msg91-otp-subscriber.service.d.ts} +6 -6
- package/dist/jobs/msg91-otp-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/{otp-subscriber.service.js → msg91-otp-subscriber.service.js} +14 -12
- package/dist/jobs/msg91-otp-subscriber.service.js.map +1 -0
- package/dist/jobs/{otp-publisher.service.d.ts → msg91-sms-publisher.service.d.ts} +2 -2
- package/dist/jobs/msg91-sms-publisher.service.d.ts.map +1 -0
- package/dist/jobs/{otp-publisher.service.js → msg91-sms-publisher.service.js} +8 -8
- package/dist/jobs/msg91-sms-publisher.service.js.map +1 -0
- package/dist/jobs/{otp-queue-options.d.ts → msg91-sms-queue-options.d.ts} +1 -1
- package/dist/jobs/msg91-sms-queue-options.d.ts.map +1 -0
- package/dist/jobs/{sms-queue-options.js → msg91-sms-queue-options.js} +1 -1
- package/dist/jobs/msg91-sms-queue-options.js.map +1 -0
- package/dist/jobs/{otp-subscriber.service.d.ts → msg91-sms-subscriber.service.d.ts} +7 -7
- package/dist/jobs/msg91-sms-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/{sms-subscriber.service.js → msg91-sms-subscriber.service.js} +14 -12
- package/dist/jobs/msg91-sms-subscriber.service.js.map +1 -0
- package/dist/jobs/twilio-sms-subscriber.service.d.ts +3 -3
- package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.js +6 -4
- package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
- package/dist/repository/media.repository.d.ts.map +1 -1
- package/dist/repository/media.repository.js +4 -0
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/repository/model-sequence.repository.d.ts +14 -0
- package/dist/repository/model-sequence.repository.d.ts.map +1 -0
- package/dist/repository/model-sequence.repository.js +103 -0
- package/dist/repository/model-sequence.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +7 -12
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +87 -27
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +373 -52
- package/dist/seeders/system-fields-seeder.service.d.ts +1 -0
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +11 -2
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/seeders/user-seeder.service.d.ts.map +1 -1
- package/dist/seeders/user-seeder.service.js +5 -4
- package/dist/seeders/user-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +1 -0
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +1 -0
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +6 -3
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +70 -27
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts.map +1 -1
- package/dist/services/chatter-message-details.service.js +1 -0
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +7 -3
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +7 -5
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +15 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +72 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -0
- package/dist/services/crud-helper.service.d.ts +23 -6
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +257 -45
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +4 -3
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +53 -24
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/database/database-bootstrap.service.d.ts +12 -0
- package/dist/services/database/database-bootstrap.service.d.ts.map +1 -0
- package/dist/services/database/database-bootstrap.service.js +115 -0
- package/dist/services/database/database-bootstrap.service.js.map +1 -0
- package/dist/services/email-template.service.d.ts +7 -7
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +8 -7
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/excel.service.d.ts +11 -0
- package/dist/services/excel.service.d.ts.map +1 -1
- package/dist/services/excel.service.js +104 -0
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +4 -1
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +35 -30
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts +1 -0
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +9 -0
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/fixtures.service.d.ts +13 -0
- package/dist/services/fixtures.service.d.ts.map +1 -0
- package/dist/services/fixtures.service.js +95 -0
- package/dist/services/fixtures.service.js.map +1 -0
- package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
- package/dist/services/genai/ingest-metadata.service.js +1 -1
- package/dist/services/genai/ingest-metadata.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +1 -0
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +7 -1
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +2 -2
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +2 -1
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +1 -0
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.js +0 -1
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media.service.d.ts +3 -3
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +6 -4
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +17 -6
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +0 -13
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -0
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +28 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +111 -44
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/model-sequence.service.d.ts +23 -0
- package/dist/services/model-sequence.service.d.ts.map +1 -0
- package/dist/services/model-sequence.service.js +55 -0
- package/dist/services/model-sequence.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts +1 -0
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +35 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +5 -5
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +6 -5
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +2 -1
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +2 -2
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +1 -0
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +6 -6
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +8 -8
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +4 -0
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +1 -0
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.d.ts.map +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.js +4 -0
- package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +7 -5
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +28 -48
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +6 -6
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +3 -1
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +3 -1
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
- package/dist/services/sms/TwilioSMSService.js +2 -0
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +7 -7
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +8 -7
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +5 -13
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +18 -22
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.js +2 -2
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +1 -0
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +3 -2
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +1 -0
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +3 -1
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core-cli-db.module.d.ts.map +1 -1
- package/dist/solid-core-cli-db.module.js +5 -2
- package/dist/solid-core-cli-db.module.js.map +1 -1
- package/dist/solid-core-cli.module.js +1 -1
- package/dist/solid-core-cli.module.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +40 -13
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +5 -1
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +4 -2
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +53 -12
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts +5 -0
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -0
- package/dist/transformers/typeorm/local-date-time-transformer.js +48 -0
- package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/grouping-enhancements.md +89 -0
- package/package.json +1 -1
- package/src/commands/fixtures/fixtures-setup.command.ts +44 -0
- package/src/commands/fixtures/fixtures-tear-down.command.ts +45 -0
- package/src/commands/refresh-model.command.ts +3 -1
- package/src/config/cache.options.ts +6 -3
- package/src/config/iam.config.ts +2 -1
- package/src/constants/error-messages.ts +7 -1
- package/src/controllers/model-metadata.controller.ts +21 -1
- package/src/controllers/model-sequence.controller.ts +93 -0
- package/src/controllers/setting.controller.ts +62 -54
- package/src/decorators/sms-provider.decorator.ts +7 -0
- package/src/dtos/basic-filters.dto.ts +6 -1
- package/src/dtos/basic-group-filters.dto.ts +23 -0
- package/src/dtos/create-field-metadata.dto.ts +1 -1
- package/src/dtos/create-model-sequence.dto.ts +51 -0
- package/src/dtos/create-role-metadata.dto.ts +16 -3
- package/src/dtos/get-mcp-url.dto.ts +13 -0
- package/src/dtos/navigation.dto.ts +14 -0
- package/src/dtos/resolve-s3-url.dto.ts +9 -11
- package/src/dtos/sign-in.dto.ts +3 -3
- package/src/dtos/update-model-sequence.dto.ts +53 -0
- package/src/entities/common.entity.ts +8 -8
- package/src/entities/field-metadata.entity.ts +1 -1
- package/src/entities/legacy-common.entity.ts +8 -6
- package/src/entities/model-metadata.entity.ts +1 -1
- package/src/entities/model-sequence.entity.ts +32 -0
- package/src/factories/mail.factory.ts +0 -1
- package/src/factories/sms.factory.ts +43 -0
- package/src/helpers/date.helper.ts +38 -9
- package/src/helpers/field-crud-managers/BigIntFieldCrudManager.ts +18 -5
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +9 -9
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +16 -8
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +9 -9
- package/src/helpers/model-metadata-helper.service.ts +6 -4
- package/src/helpers/module-metadata-helper.service.ts +18 -1
- package/src/helpers/module.helper.ts +40 -5
- package/src/helpers/solid-registry.ts +23 -0
- package/src/index.ts +12 -7
- package/src/jobs/computed-field-evaluation-subscriber.service.ts +15 -4
- package/src/jobs/database/{sms-publisher-database.service.ts → msg91-sms-publisher-database.service.ts} +2 -2
- package/src/jobs/database/{sms-subscriber-database.service.ts → msg91-sms-subscriber-database.service.ts} +9 -4
- package/src/jobs/database/otp-subscriber-database.service.ts +8 -2
- package/src/jobs/database/twilio-sms-subscriber-database.service.ts +5 -2
- package/src/jobs/{otp-publisher.service.ts → msg91-otp-publisher.service.ts} +2 -2
- package/src/jobs/{otp-subscriber.service.ts → msg91-otp-subscriber.service.ts} +10 -4
- package/src/jobs/{sms-publisher.service.ts → msg91-sms-publisher.service.ts} +2 -2
- package/src/jobs/{sms-subscriber.service.ts → msg91-sms-subscriber.service.ts} +9 -4
- package/src/jobs/twilio-sms-subscriber.service.ts +6 -2
- package/src/repository/media.repository.ts +3 -2
- package/src/repository/model-sequence.repository.ts +97 -0
- package/src/seeders/module-metadata-seeder.service.ts +133 -34
- package/src/seeders/seed-data/email-templates/email-on-signup.handlebars.html +155 -0
- package/src/seeders/seed-data/sms-templates/text-on-signup.handlebars.txt +10 -0
- package/src/seeders/seed-data/solid-core-metadata.json +374 -53
- package/src/seeders/system-fields-seeder.service.ts +6 -2
- package/src/seeders/user-seeder.service.ts +5 -4
- package/src/services/action-metadata.service.ts +3 -2
- package/src/services/ai-interaction.service.ts +2 -1
- package/src/services/authentication.service.ts +119 -24
- package/src/services/chatter-message-details.service.ts +2 -1
- package/src/services/chatter-message.service.ts +10 -4
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +9 -9
- package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +86 -0
- package/src/services/crud-helper.service.ts +287 -49
- package/src/services/crud.service.ts +95 -45
- package/src/services/database/database-bootstrap.service.ts +91 -0
- package/src/services/email-template.service.ts +11 -13
- package/src/services/excel.service.ts +152 -3
- package/src/services/field-metadata.service.ts +102 -55
- package/src/services/file.service.ts +9 -0
- package/src/services/fixtures.service.ts +108 -0
- package/src/services/genai/ingest-metadata.service.ts +4 -3
- package/src/services/import-transaction-error-log.service.ts +2 -1
- package/src/services/import-transaction.service.ts +8 -4
- package/src/services/list-of-values.service.ts +4 -4
- package/src/services/locale.service.ts +2 -1
- package/src/services/mail/smtp-email.service.ts +1 -1
- package/src/services/media.service.ts +10 -11
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +22 -7
- package/src/services/mediaStorageProviders/file-storage-provider.ts +18 -13
- package/src/services/menu-item-metadata.service.ts +6 -2
- package/src/services/model-metadata.service.ts +201 -44
- package/src/services/model-sequence.service.ts +33 -0
- package/src/services/module-metadata.service.ts +49 -2
- package/src/services/permission-metadata.service.ts +8 -9
- package/src/services/queues/database-subscriber.service.ts +3 -1
- package/src/services/queues/rabbitmq-subscriber.service.ts +4 -2
- package/src/services/role-metadata.service.ts +1 -0
- package/src/services/scheduled-job.service.ts +9 -9
- package/src/services/scheduled-jobs/scheduler.service.ts +5 -0
- package/src/services/security-rule.service.ts +1 -0
- package/src/services/selection-providers/list-of-models-selection-provider.service.ts +5 -2
- package/src/services/setting.service.ts +42 -55
- package/src/services/sms/Msg91BaseSMSService.ts +6 -6
- package/src/services/sms/Msg91OTPService.ts +3 -2
- package/src/services/sms/Msg91SMSService.ts +3 -1
- package/src/services/sms/TwilioSMSService.ts +3 -3
- package/src/services/sms-template.service.ts +11 -13
- package/src/services/solid-introspect.service.ts +28 -19
- package/src/services/solid-ts-morph.service.ts +2 -2
- package/src/services/user-activity-history.service.ts +3 -2
- package/src/services/user-view-metadata.service.ts +4 -3
- package/src/services/user.service.ts +2 -1
- package/src/services/view-metadata.service.ts +5 -4
- package/src/solid-core-cli-db.module.ts +5 -4
- package/src/solid-core-cli.module.ts +2 -2
- package/src/solid-core.module.ts +42 -13
- package/src/subscribers/audit.subscriber.ts +3 -2
- package/src/subscribers/computed-entity-field.subscriber.ts +60 -17
- package/src/subscribers/scheduled-job.subscriber.ts +9 -2
- package/src/transformers/typeorm/local-date-time-transformer.ts +55 -0
- package/dist/jobs/database/sms-publisher-database.service.d.ts.map +0 -1
- package/dist/jobs/database/sms-publisher-database.service.js.map +0 -1
- package/dist/jobs/database/sms-queue-database-options.d.ts.map +0 -1
- package/dist/jobs/database/sms-queue-database-options.js.map +0 -1
- package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +0 -1
- package/dist/jobs/database/sms-subscriber-database.service.js.map +0 -1
- package/dist/jobs/otp-publisher.service.d.ts.map +0 -1
- package/dist/jobs/otp-publisher.service.js.map +0 -1
- package/dist/jobs/otp-queue-options.d.ts.map +0 -1
- package/dist/jobs/otp-queue-options.js.map +0 -1
- package/dist/jobs/otp-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/otp-subscriber.service.js.map +0 -1
- package/dist/jobs/sms-publisher.service.d.ts.map +0 -1
- package/dist/jobs/sms-publisher.service.js.map +0 -1
- package/dist/jobs/sms-queue-options.d.ts.map +0 -1
- package/dist/jobs/sms-queue-options.js.map +0 -1
- package/dist/jobs/sms-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/sms-subscriber.service.js.map +0 -1
- /package/sql/{mssql → default/mssql}/proc_CleanupModelMetadata.sql +0 -0
- /package/sql/{mssql → default/mssql}/proc_CleanupModuleMetadata.sql +0 -0
- /package/sql/{mssql/scratchpad.sql → default/mssql/scratchpad.sql.txt} +0 -0
- /package/sql/{postgres → default/postgres}/proc_CleanupModelMetadata.sql +0 -0
- /package/sql/{postgres → default/postgres}/proc_CleanupModuleMetadata.sql +0 -0
- /package/sql/{postgres/scratchpad.sql → default/postgres/scratchpad.sql.txt} +0 -0
- /package/src/jobs/database/{sms-queue-database-options.ts → msg91-sms-queue-database-options.ts} +0 -0
- /package/src/jobs/{otp-queue-options.ts → msg91-otp-queue-options.ts} +0 -0
- /package/src/jobs/{sms-queue-options.ts → msg91-sms-queue-options.ts} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { classify } from "@angular-devkit/core/src/utils/strings";
|
|
2
|
+
import { BadRequestException } from "@nestjs/common";
|
|
2
3
|
import { isEmpty, isNotEmpty, isString } from "class-validator";
|
|
3
4
|
import { FieldCrudManager, ValidationError } from "src/interfaces";
|
|
4
5
|
import { IsParsableInt } from "src/validators/is-parsable-int";
|
|
@@ -64,16 +65,23 @@ export class ManyToOneRelationFieldCrudManager implements FieldCrudManager {
|
|
|
64
65
|
// Avoid transforming if both fieldId and fieldUserKey is empty
|
|
65
66
|
if ((isEmpty(fieldId)) && isEmpty(fieldUserKeyValue)) return dto;
|
|
66
67
|
|
|
68
|
+
if (!this.options.relationCoModelSingularName) {
|
|
69
|
+
throw new BadRequestException(`ManyToOneRelationFieldCrudManager: relationCoModelSingularName is not defined in the field: ${this.options.fieldName}`);
|
|
70
|
+
}
|
|
67
71
|
// // Load the related entity from the database, using the repository of the related entity
|
|
68
|
-
const entityTarget = this.getRelatedEntityTarget(classify(this.options.relationCoModelSingularName));
|
|
72
|
+
//const entityTarget = this.getRelatedEntityTarget(classify(this.options.relationCoModelSingularName));
|
|
73
|
+
const coModelEntityName = classify(this.options.relationCoModelSingularName);
|
|
74
|
+
|
|
75
|
+
//Load the related entity from the database, using the repository of the related entity
|
|
76
|
+
//const entityTarget = this.getRelatedEntityTarget(classify(this.options.relationCoModelSingularName));
|
|
69
77
|
if (isNotEmpty(fieldId)) {
|
|
70
|
-
dto[this.options.fieldName] = await this.options.entityManager.getRepository(
|
|
78
|
+
dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ id: fieldId });
|
|
71
79
|
if (this.options.required && isEmpty(dto[this.options.fieldName])) {
|
|
72
80
|
throw new Error(`ManyToOneRelationFieldCrudManager: Record with id: ${fieldId} not found in ${this.options.relationCoModelSingularName}`);
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
83
|
else {
|
|
76
|
-
dto[this.options.fieldName] = await this.options.entityManager.getRepository(
|
|
84
|
+
dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ [this.options.relationCoModelUserKeyFieldName]: fieldUserKeyValue });
|
|
77
85
|
if (this.options.required && isEmpty(dto[this.options.fieldName])) {
|
|
78
86
|
throw new Error(`ManyToOneRelationFieldCrudManager: Record with userKey: ${this.options.relationCoModelUserKeyFieldName}: ${fieldUserKeyValue} not found in ${this.options.relationCoModelSingularName}`);
|
|
79
87
|
}
|
|
@@ -88,10 +96,10 @@ export class ManyToOneRelationFieldCrudManager implements FieldCrudManager {
|
|
|
88
96
|
}
|
|
89
97
|
|
|
90
98
|
// Returns the entity target class from the entity name
|
|
91
|
-
private getRelatedEntityTarget(relatedEntityName: string): any {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
99
|
+
// private getRelatedEntityTarget(relatedEntityName: string): any {
|
|
100
|
+
// const entityMetadatas = this.options.entityManager.connection.entityMetadatas;
|
|
101
|
+
// const relatedEntityMetadata = entityMetadatas.find(em => em.name === relatedEntityName);
|
|
102
|
+
// return relatedEntityMetadata.target;
|
|
103
|
+
// }
|
|
96
104
|
|
|
97
105
|
}
|
|
@@ -75,11 +75,11 @@ export class OneToManyRelationFieldCrudManager implements FieldCrudManager {
|
|
|
75
75
|
|
|
76
76
|
async transformForCreate(dto: any): Promise<any> {
|
|
77
77
|
// const relatedFieldData: any[] = dto[this.fieldName()];
|
|
78
|
-
const
|
|
79
|
-
const currentEntityRepository = this.options.entityManager.getRepository(
|
|
78
|
+
const currentEntityName = classify(this.options.modelSingularName);
|
|
79
|
+
const currentEntityRepository = this.options.entityManager.getRepository(currentEntityName);
|
|
80
80
|
|
|
81
|
-
const
|
|
82
|
-
const relatedEntityRepository = this.options.entityManager.getRepository(
|
|
81
|
+
const relatedEntityName = classify(this.options.relationCoModelSingularName);
|
|
82
|
+
const relatedEntityRepository = this.options.entityManager.getRepository(relatedEntityName);
|
|
83
83
|
|
|
84
84
|
dto[this.valueFieldName] = await this.transformByCommand(dto, relatedEntityRepository, currentEntityRepository);
|
|
85
85
|
return dto;
|
|
@@ -197,9 +197,9 @@ export class OneToManyRelationFieldCrudManager implements FieldCrudManager {
|
|
|
197
197
|
|
|
198
198
|
// TODO: We have moved this to SolidRegistry service, refactor to use that service.
|
|
199
199
|
// Returns the entity target class from the entity name
|
|
200
|
-
private getEntityTarget(entityName: string): any { //TODO Can be refactored to use this function from crud helper service
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
200
|
+
// private getEntityTarget(entityName: string): any { //TODO Can be refactored to use this function from crud helper service
|
|
201
|
+
// const entityMetadatas = this.options.entityManager.connection.entityMetadatas;
|
|
202
|
+
// const entityMetadata = entityMetadatas.find(em => em.name === entityName);
|
|
203
|
+
// return entityMetadata.target;
|
|
204
|
+
// }
|
|
205
205
|
}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
// Return the system fields metadata for a model
|
|
2
2
|
|
|
3
|
-
import { Injectable, Logger } from "@nestjs/common";
|
|
3
|
+
import { forwardRef, Inject, Injectable, Logger } from "@nestjs/common";
|
|
4
|
+
import { _ } from "lodash";
|
|
5
|
+
import { LEGACY_TABLE_FIELDS_PREFIX } from "src/entities/legacy-common.entity";
|
|
4
6
|
import { ModelMetadataRepository } from "src/repository/model-metadata.repository";
|
|
5
7
|
import { SolidRegistry } from "./solid-registry";
|
|
6
|
-
import {_ } from "lodash";
|
|
7
|
-
import { LEGACY_TABLE_FIELDS_PREFIX } from "src/entities/legacy-common.entity";
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
10
|
export class ModelMetadataHelperService {
|
|
11
11
|
private readonly logger = new Logger(ModelMetadataHelperService.name);
|
|
12
12
|
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
private readonly registry: SolidRegistry,
|
|
14
15
|
// @InjectRepository(ModelMetadata)
|
|
15
16
|
// private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
17
|
+
@Inject(forwardRef(() => ModelMetadataRepository))
|
|
16
18
|
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
17
19
|
) {
|
|
18
20
|
}
|
|
@@ -57,4 +57,21 @@ export class ModuleMetadataHelperService {
|
|
|
57
57
|
}
|
|
58
58
|
return filePath;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
async getModuleMetadataFolderPath(moduleName: string): Promise<string> {
|
|
61
|
+
if (!moduleName) {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const dashModuleName = dasherize(moduleName);
|
|
66
|
+
|
|
67
|
+
const folderPath = path.resolve(
|
|
68
|
+
process.cwd(),
|
|
69
|
+
'module-metadata',
|
|
70
|
+
dashModuleName,
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const exists = await this.fileService.pathExists(folderPath);
|
|
74
|
+
return exists ? folderPath : '';
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
1
2
|
import * as fs from 'fs'; // Use the Promise-based version of fs for async/await
|
|
2
3
|
import * as path from 'path'; // To handle file paths
|
|
3
4
|
|
|
5
|
+
const logger = new Logger('module.helper');
|
|
4
6
|
|
|
5
7
|
export const getDynamicModuleNames = (): string[] => {
|
|
6
8
|
const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];
|
|
@@ -21,15 +23,48 @@ export const getDynamicModuleNames = (): string[] => {
|
|
|
21
23
|
|
|
22
24
|
if (!isValidDirectory) return false;
|
|
23
25
|
|
|
24
|
-
return true
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
// return true
|
|
27
|
+
const fullPath = path.join(srcPath, dirent.name);
|
|
28
|
+
const files = fs.readdirSync(fullPath);
|
|
27
29
|
// skip if empty directory
|
|
28
|
-
|
|
30
|
+
return files.length > 0;
|
|
29
31
|
})
|
|
30
32
|
.map(dirent => dirent.name);
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
// logger.debug(`Enabled dynamic modules:`, enabledModules);
|
|
35
|
+
return enabledModules;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const getDynamicModuleNamesBasedOnMetadata = (): string[] => {
|
|
39
|
+
const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];
|
|
40
|
+
|
|
41
|
+
// Find a path that is ../${srcPath}/module-metadata save it in a variable.
|
|
42
|
+
// const srcPath = path.join(process.cwd(), 'src');
|
|
43
|
+
const moduleMetadataPath = path.join(process.cwd(), 'module-metadata');
|
|
44
|
+
const coreModuleNames = getCoreModuleNames();
|
|
45
|
+
const allExcludedModules = [...new Set([...coreModuleNames, ...dynamicModulesToExclude])];
|
|
46
|
+
|
|
47
|
+
// if module-metadata path does not exist, return empty array
|
|
48
|
+
if (!fs.existsSync(moduleMetadataPath)) {
|
|
49
|
+
logger.warn(`Module metadata path does not exist: ${moduleMetadataPath}`);
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const moduleMetadataDirectories = fs.readdirSync(moduleMetadataPath, { withFileTypes: true });
|
|
54
|
+
const enabledModules = moduleMetadataDirectories
|
|
55
|
+
.filter(dirent => {
|
|
56
|
+
const isValidDirectory = dirent.isDirectory() && !allExcludedModules.includes(dirent.name);
|
|
57
|
+
|
|
58
|
+
if (!isValidDirectory) return false;
|
|
59
|
+
|
|
60
|
+
const fullPath = path.join(moduleMetadataPath, dirent.name, `${dirent.name}-metadata.json`);
|
|
61
|
+
|
|
62
|
+
const stats = fs.statSync(fullPath, { throwIfNoEntry: false });
|
|
63
|
+
return !!stats && stats.isFile();
|
|
64
|
+
})
|
|
65
|
+
.map(dirent => dirent.name);
|
|
66
|
+
|
|
67
|
+
// logger.debug(`Enabled dynamic modules basis src:`, enabledModules);
|
|
33
68
|
return enabledModules;
|
|
34
69
|
}
|
|
35
70
|
|
|
@@ -7,6 +7,9 @@ import { SecurityRule } from 'src/entities/security-rule.entity';
|
|
|
7
7
|
import { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';
|
|
8
8
|
import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
|
|
9
9
|
import { DatasourceType } from 'src/dtos/create-model-metadata.dto';
|
|
10
|
+
import { ObjectLiteral } from 'typeorm';
|
|
11
|
+
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
|
|
12
|
+
import { RelationMetadata } from 'typeorm/metadata/RelationMetadata';
|
|
10
13
|
|
|
11
14
|
type ControllerMetadata = {
|
|
12
15
|
name: string;
|
|
@@ -39,6 +42,16 @@ export enum RESERVED_SOLID_KEYWORDS {
|
|
|
39
42
|
locale = "locale"
|
|
40
43
|
}
|
|
41
44
|
|
|
45
|
+
export interface TypeOrmEventContext {
|
|
46
|
+
eventType?: string;
|
|
47
|
+
entity?: ObjectLiteral | undefined;
|
|
48
|
+
databaseEntity?: any;
|
|
49
|
+
entityId?: any;
|
|
50
|
+
metadataName?: string;
|
|
51
|
+
updatedColumns?: string[];
|
|
52
|
+
updatedRelations?: string[];
|
|
53
|
+
}
|
|
54
|
+
|
|
42
55
|
export interface ComputedFieldMetadata<TContext = any> {
|
|
43
56
|
moduleName: string; // Name of the module where the computed field is defined
|
|
44
57
|
modelName: string; // Name of the model where the computed field is defined
|
|
@@ -49,6 +62,7 @@ export interface ComputedFieldMetadata<TContext = any> {
|
|
|
49
62
|
computedFieldValueProviderName: string; // Name of the provider that computes the field value
|
|
50
63
|
// Example: '{"contextKey": "contextValue"}'
|
|
51
64
|
computedFieldValueProviderCtxt: TContext; // Context for the computed field value
|
|
65
|
+
eventContext: TypeOrmEventContext;
|
|
52
66
|
}
|
|
53
67
|
|
|
54
68
|
@Injectable()
|
|
@@ -67,6 +81,7 @@ export class SolidRegistry {
|
|
|
67
81
|
private dashboardQuestionDataProviders: Set<InstanceWrapper> = new Set();
|
|
68
82
|
private mailProviders: Set<InstanceWrapper> = new Set();
|
|
69
83
|
private whatsappProviders: Set<InstanceWrapper> = new Set();
|
|
84
|
+
private smsProviders: Set<InstanceWrapper> = new Set();
|
|
70
85
|
private securityRuleConfigProviders: Set<InstanceWrapper> = new Set();
|
|
71
86
|
private errorCodeProviders: Set<InstanceWrapper> = new Set();
|
|
72
87
|
|
|
@@ -78,6 +93,10 @@ export class SolidRegistry {
|
|
|
78
93
|
this.whatsappProviders.add(whatsappProvider);
|
|
79
94
|
}
|
|
80
95
|
|
|
96
|
+
registerSmsProvider(smsProvider: InstanceWrapper): void {
|
|
97
|
+
this.smsProviders.add(smsProvider);
|
|
98
|
+
}
|
|
99
|
+
|
|
81
100
|
registerSecurityRuleConfigProvider(securityRuleConfigProvider: InstanceWrapper): void {
|
|
82
101
|
this.securityRuleConfigProviders.add(securityRuleConfigProvider);
|
|
83
102
|
}
|
|
@@ -134,6 +153,10 @@ export class SolidRegistry {
|
|
|
134
153
|
return Array.from(this.whatsappProviders);
|
|
135
154
|
}
|
|
136
155
|
|
|
156
|
+
getSmsProviders(): Array<InstanceWrapper> {
|
|
157
|
+
return Array.from(this.smsProviders);
|
|
158
|
+
}
|
|
159
|
+
|
|
137
160
|
getSecurityRuleConfigProviders(): Array<InstanceWrapper> {
|
|
138
161
|
return Array.from(this.securityRuleConfigProviders);
|
|
139
162
|
}
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,7 @@ export * from './decorators/solid-database-module.decorator'
|
|
|
24
24
|
export * from './decorators/solid-service.decorator'
|
|
25
25
|
export * from './decorators/mail-provider.decorator'
|
|
26
26
|
export * from './decorators/security-rule-config-provider.decorator'
|
|
27
|
+
export * from './decorators/sms-provider.decorator'
|
|
27
28
|
|
|
28
29
|
export * from './dtos/post-chatter-message.dto'
|
|
29
30
|
export * from './dtos/security-rule-config.dto'
|
|
@@ -137,6 +138,7 @@ export * from './entities/dashboard-variable.entity'
|
|
|
137
138
|
export * from './entities/dashboard-question.entity'
|
|
138
139
|
export * from './entities/dashboard-question-sql-dataset-config.entity'
|
|
139
140
|
export * from './entities/ai-interaction.entity'
|
|
141
|
+
export * from './entities/model-sequence.entity'
|
|
140
142
|
|
|
141
143
|
export * from './enums/auth-type.enum'
|
|
142
144
|
export * from './decorators/disallow-in-production.decorator'
|
|
@@ -193,12 +195,12 @@ export * from './jobs/api-email-subscriber.service'
|
|
|
193
195
|
export { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/smtp-email-publisher.service' // alias for backward compatibility
|
|
194
196
|
export * from './jobs/smtp-email-queue-options'
|
|
195
197
|
export { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/smtp-email-subscriber.service' // alias for backward compatibility
|
|
196
|
-
export * from './jobs/otp-publisher.service'
|
|
197
|
-
export * from './jobs/otp-queue-options'
|
|
198
|
-
export * from './jobs/otp-subscriber.service'
|
|
199
|
-
export * from './jobs/sms-publisher.service'
|
|
200
|
-
export * from './jobs/sms-queue-options'
|
|
201
|
-
export * from './jobs/sms-subscriber.service'
|
|
198
|
+
export * from './jobs/msg91-otp-publisher.service'
|
|
199
|
+
export * from './jobs/msg91-otp-queue-options'
|
|
200
|
+
export * from './jobs/msg91-otp-subscriber.service'
|
|
201
|
+
export * from './jobs/msg91-sms-publisher.service'
|
|
202
|
+
export * from './jobs/msg91-sms-queue-options'
|
|
203
|
+
export * from './jobs/msg91-sms-subscriber.service'
|
|
202
204
|
export * from './jobs/msg91-whatsapp-publisher.service'
|
|
203
205
|
export * from './jobs/msg91-whatsapp-queue-options'
|
|
204
206
|
export * from './jobs/msg91-whatsapp-subscriber.service'
|
|
@@ -280,6 +282,8 @@ export * from './services/ai-interaction.service'
|
|
|
280
282
|
|
|
281
283
|
// Factories
|
|
282
284
|
export * from './factories/mail.factory'
|
|
285
|
+
export * from './factories/sms.factory'
|
|
286
|
+
export * from './factories/whatsapp.factory'
|
|
283
287
|
|
|
284
288
|
// Repositories
|
|
285
289
|
export * from './repository/solid-base.repository'
|
|
@@ -299,6 +303,8 @@ export * from './subscribers/audit.subscriber'
|
|
|
299
303
|
export * from './transformers/array-transformer'
|
|
300
304
|
export * from './transformers/boolean-transformer'
|
|
301
305
|
export * from './transformers/integer-transformer'
|
|
306
|
+
export { default as datetimeTransformer } from './transformers/datetime-transformer'
|
|
307
|
+
export * from './transformers/typeorm/local-date-time-transformer'
|
|
302
308
|
|
|
303
309
|
export * from './validators/is-parsable-int'
|
|
304
310
|
|
|
@@ -307,6 +313,5 @@ export * from './interfaces'
|
|
|
307
313
|
export * from './solid-core.module'
|
|
308
314
|
|
|
309
315
|
export * from './winston.logger'
|
|
310
|
-
export { default as datetimeTransformer } from './transformers/datetime-transformer'
|
|
311
316
|
|
|
312
317
|
export { ERROR_MESSAGES } from './constants/error-messages'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable } from "@nestjs/common";
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
2
2
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
3
3
|
import { IEntityPostComputeFieldProvider, QueuesModuleOptions } from "src/interfaces";
|
|
4
4
|
import { QueueMessage } from "src/interfaces/mq";
|
|
@@ -11,6 +11,7 @@ import computedFieldEvaluationQueueOptions from "./computed-field-evaluation-que
|
|
|
11
11
|
|
|
12
12
|
@Injectable()
|
|
13
13
|
export class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscriber<ComputedFieldEvaluationPayload> {
|
|
14
|
+
private readonly _logger = new Logger(ComputedFieldEvaluationSubscriberRabbitmq.name);
|
|
14
15
|
constructor(
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
16
17
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -30,9 +31,19 @@ export class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscribe
|
|
|
30
31
|
// It will then call the corresponding provider computeAndSave method to perform the evaluation
|
|
31
32
|
async subscribe(message: QueueMessage<ComputedFieldEvaluationPayload>) {
|
|
32
33
|
const { databaseEntity, ...computedFieldMetadata } = message.payload;
|
|
33
|
-
const
|
|
34
|
+
const { computedFieldValueProviderName } = computedFieldMetadata;
|
|
35
|
+
const provider = this.solidRegistry.getComputedFieldProvider(computedFieldValueProviderName);
|
|
34
36
|
// Get the instance of the provider and assert it is of type IEntityComputedFieldProvider
|
|
35
37
|
const providerInstance = provider.instance as IEntityPostComputeFieldProvider<any, any>; // IEntityComputedFieldProvider
|
|
36
|
-
|
|
38
|
+
if (typeof providerInstance.postComputeAndSaveValue !== 'function') {
|
|
39
|
+
this._logger.warn(`Provider "${computedFieldValueProviderName}" does not implement postComputeAndSaveValue; skipping post-compute.`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
await providerInstance.postComputeAndSaveValue(databaseEntity, {
|
|
43
|
+
...computedFieldMetadata,
|
|
44
|
+
computedFieldValueProviderCtxt: {
|
|
45
|
+
...(computedFieldMetadata.computedFieldValueProviderCtxt || {}),
|
|
46
|
+
},
|
|
47
|
+
}); //FIXME There should some way to check/assert if the provider actually has a postComputeAndSaveValue
|
|
37
48
|
}
|
|
38
|
-
}
|
|
49
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import smsQueueOptions from './sms-queue-database-options';
|
|
3
|
+
import smsQueueOptions from './msg91-sms-queue-database-options';
|
|
4
4
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
5
5
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
6
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
7
7
|
import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
10
|
+
export class Msg91SmsQueuePublisherDatabase extends DatabasePublisher<any> {
|
|
11
11
|
constructor(
|
|
12
12
|
protected readonly mqMessageService: MqMessageService,
|
|
13
13
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
|
-
import smsQueueOptions from './sms-queue-database-options';
|
|
4
|
+
import smsQueueOptions from './msg91-sms-queue-database-options';
|
|
5
5
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
6
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
7
7
|
import { Msg91SMSService } from 'src/services/sms/Msg91SMSService';
|
|
8
8
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
9
9
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
10
10
|
import { PollerService } from 'src/services/poller.service';
|
|
11
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
|
-
export class
|
|
14
|
+
export class Msg91SmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
14
15
|
constructor(
|
|
15
|
-
private readonly smsService: Msg91SMSService,
|
|
16
|
+
// private readonly smsService: Msg91SMSService,
|
|
17
|
+
private readonly smsFactory: SmsFactory,
|
|
16
18
|
readonly mqMessageService: MqMessageService,
|
|
17
19
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
20
|
readonly poller: PollerService,
|
|
@@ -27,6 +29,9 @@ export class SmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
subscribe(message: QueueMessage<any>) {
|
|
30
|
-
|
|
32
|
+
const smsService: Msg91SMSService = this.smsFactory.getSmsService(Msg91SMSService.name) as Msg91SMSService;
|
|
33
|
+
return smsService.sendSMSSynchronously(message);
|
|
34
|
+
|
|
35
|
+
// return this.smsService.sendSMSSynchronously(message);
|
|
31
36
|
}
|
|
32
37
|
}
|
|
@@ -8,11 +8,14 @@ import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.serv
|
|
|
8
8
|
import { Msg91OTPService } from 'src/services/sms/Msg91OTPService';
|
|
9
9
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
10
10
|
import { PollerService } from 'src/services/poller.service';
|
|
11
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
14
|
export class OTPQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
14
15
|
constructor(
|
|
15
|
-
private readonly otpService: Msg91OTPService,
|
|
16
|
+
// private readonly otpService: Msg91OTPService,
|
|
17
|
+
private readonly smsFactory: SmsFactory,
|
|
18
|
+
|
|
16
19
|
readonly mqMessageService: MqMessageService,
|
|
17
20
|
readonly poller: PollerService,
|
|
18
21
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -27,6 +30,9 @@ export class OTPQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
subscribe(message: QueueMessage<any>) {
|
|
30
|
-
this.
|
|
33
|
+
const otpService: Msg91OTPService = this.smsFactory.getSmsService(Msg91OTPService.name) as Msg91OTPService;
|
|
34
|
+
return otpService.sendSMSSynchronously(message);
|
|
35
|
+
|
|
36
|
+
// this.otpService.sendSMSSynchronously(message);
|
|
31
37
|
}
|
|
32
38
|
}
|
|
@@ -8,11 +8,13 @@ import { QueuesModuleOptions } from 'src/interfaces';
|
|
|
8
8
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
9
9
|
import { TwilioSMSService } from 'src/services/sms/TwilioSMSService';
|
|
10
10
|
import { PollerService } from 'src/services/poller.service';
|
|
11
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
14
|
export class TwilioSmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
14
15
|
constructor(
|
|
15
|
-
private readonly smsService: TwilioSMSService,
|
|
16
|
+
// private readonly smsService: TwilioSMSService,
|
|
17
|
+
private readonly smsFactory: SmsFactory,
|
|
16
18
|
readonly mqMessageService: MqMessageService,
|
|
17
19
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
20
|
readonly poller: PollerService,
|
|
@@ -27,6 +29,7 @@ export class TwilioSmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
subscribe(message: QueueMessage<any>) {
|
|
30
|
-
|
|
32
|
+
const smsService: TwilioSMSService = this.smsFactory.getSmsService(TwilioSMSService.name) as TwilioSMSService;
|
|
33
|
+
return smsService.sendSMSSynchronously(message);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
|
-
import otpQueueOptions from './otp-queue-options';
|
|
4
|
+
import otpQueueOptions from './msg91-otp-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
7
7
|
import { QueuesModuleOptions } from "../interfaces";
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
10
|
+
export class Msg91OTPQueuePublisher extends RabbitMqPublisher<any> {
|
|
11
11
|
constructor(
|
|
12
12
|
protected readonly mqMessageService: MqMessageService,
|
|
13
13
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -3,15 +3,18 @@ import { Injectable } from '@nestjs/common';
|
|
|
3
3
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
4
|
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
5
5
|
import { Msg91OTPService } from '../services/sms/Msg91OTPService';
|
|
6
|
-
import otpQueueOptions from './otp-queue-options';
|
|
6
|
+
import otpQueueOptions from './msg91-otp-queue-options';
|
|
7
7
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
8
8
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
9
9
|
import { QueuesModuleOptions } from "../interfaces";
|
|
10
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
|
-
export class
|
|
13
|
+
export class Msg91OTPQueueSubscriber extends RabbitMqSubscriber<any> {
|
|
13
14
|
constructor(
|
|
14
|
-
private readonly otpService: Msg91OTPService,
|
|
15
|
+
// private readonly otpService: Msg91OTPService,
|
|
16
|
+
private readonly smsFactory: SmsFactory,
|
|
17
|
+
|
|
15
18
|
readonly mqMessageService: MqMessageService,
|
|
16
19
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
17
20
|
) {
|
|
@@ -25,6 +28,9 @@ export class OTPQueueSubscriber extends RabbitMqSubscriber<any> {
|
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
subscribe(message: QueueMessage<any>) {
|
|
28
|
-
this.
|
|
31
|
+
const otpService: Msg91OTPService = this.smsFactory.getSmsService(Msg91OTPService.name) as Msg91OTPService;
|
|
32
|
+
return otpService.sendSMSSynchronously(message);
|
|
33
|
+
|
|
34
|
+
// this.otpService.sendSMSSynchronously(message);
|
|
29
35
|
}
|
|
30
36
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
|
-
import smsQueueOptions from './sms-queue-options';
|
|
4
|
+
import smsQueueOptions from './msg91-sms-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
7
7
|
import { QueuesModuleOptions } from "../interfaces";
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
10
|
+
export class Msg91SmsQueuePublisher extends RabbitMqPublisher<any> {
|
|
11
11
|
constructor(
|
|
12
12
|
protected readonly mqMessageService: MqMessageService,
|
|
13
13
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -2,16 +2,18 @@ import { Injectable } from '@nestjs/common';
|
|
|
2
2
|
|
|
3
3
|
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
4
4
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
5
|
-
import smsQueueOptions from './sms-queue-options';
|
|
5
|
+
import smsQueueOptions from './msg91-sms-queue-options';
|
|
6
6
|
import { Msg91SMSService } from '../services/sms/Msg91SMSService';
|
|
7
7
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
8
8
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
9
9
|
import { QueuesModuleOptions } from "../interfaces";
|
|
10
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
|
-
export class
|
|
13
|
+
export class Msg91SmsQueueSubscriber extends RabbitMqSubscriber<any> {
|
|
13
14
|
constructor(
|
|
14
|
-
private readonly smsService: Msg91SMSService,
|
|
15
|
+
// private readonly smsService: Msg91SMSService,
|
|
16
|
+
private readonly smsFactory: SmsFactory,
|
|
15
17
|
readonly mqMessageService: MqMessageService,
|
|
16
18
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
17
19
|
) {
|
|
@@ -25,6 +27,9 @@ export class SmsQueueSubscriber extends RabbitMqSubscriber<any> {
|
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
subscribe(message: QueueMessage<any>) {
|
|
28
|
-
|
|
30
|
+
const smsService: Msg91SMSService = this.smsFactory.getSmsService(Msg91SMSService.name) as Msg91SMSService;
|
|
31
|
+
return smsService.sendSMSSynchronously(message);
|
|
32
|
+
|
|
33
|
+
// return this.smsService.sendSMSSynchronously(message);
|
|
29
34
|
}
|
|
30
35
|
}
|
|
@@ -8,11 +8,13 @@ import { PollerService } from 'src/services/poller.service';
|
|
|
8
8
|
import { TwilioSMSService } from 'src/services/sms/TwilioSMSService';
|
|
9
9
|
import smsQueueOptions from './twilio-sms-queue-options';
|
|
10
10
|
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
11
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
14
|
export class TwilioSmsQueueSubscriberRabbitmq extends RabbitMqSubscriber<any> {
|
|
14
15
|
constructor(
|
|
15
|
-
private readonly smsService: TwilioSMSService,
|
|
16
|
+
// private readonly smsService: TwilioSMSService,
|
|
17
|
+
private readonly smsFactory: SmsFactory,
|
|
16
18
|
readonly mqMessageService: MqMessageService,
|
|
17
19
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
20
|
readonly poller: PollerService,
|
|
@@ -27,6 +29,8 @@ export class TwilioSmsQueueSubscriberRabbitmq extends RabbitMqSubscriber<any> {
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
subscribe(message: QueueMessage<any>) {
|
|
30
|
-
|
|
32
|
+
const smsService: TwilioSMSService = this.smsFactory.getSmsService(TwilioSMSService.name) as TwilioSMSService;
|
|
33
|
+
return smsService.sendSMSSynchronously(message);
|
|
34
|
+
// return this.smsService.sendSMSSynchronously(message);
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
1
|
+
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { Media } from 'src/entities/media.entity';
|
|
3
3
|
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
-
import { DataSource } from 'typeorm';
|
|
4
|
+
import { DataSource, In } from 'typeorm';
|
|
5
5
|
import { FieldMetadataRepository } from './field-metadata.repository';
|
|
6
6
|
import { MediaStorageProviderMetadataRepository } from './media-storage-provider-metadata.repository';
|
|
7
7
|
import { ModelMetadataRepository } from './model-metadata.repository';
|
|
@@ -21,6 +21,7 @@ export class MediaRepository extends SolidBaseRepository<Media> {
|
|
|
21
21
|
// @InjectRepository(MediaStorageProviderMetadata)
|
|
22
22
|
// private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,
|
|
23
23
|
private readonly fieldMetadataRepo: FieldMetadataRepository,
|
|
24
|
+
@Inject(forwardRef(() => ModelMetadataRepository))
|
|
24
25
|
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
25
26
|
private readonly mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository,
|
|
26
27
|
) {
|