@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,25 +1,28 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, ForbiddenException, forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager, Repository } from 'typeorm';
|
|
5
5
|
|
|
6
6
|
import { ConfigService, ConfigType } from '@nestjs/config';
|
|
7
|
+
import commonConfig from 'src/config/common.config';
|
|
8
|
+
import { iamConfig } from 'src/config/iam.config';
|
|
9
|
+
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
10
|
+
import { CreateSettingDto } from 'src/dtos/create-setting.dto';
|
|
11
|
+
import { GetMcpUrlDto } from 'src/dtos/get-mcp-url.dto';
|
|
12
|
+
import { User } from 'src/entities/user.entity';
|
|
13
|
+
import { SettingRepository } from 'src/repository/setting.repository';
|
|
7
14
|
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
8
15
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
16
|
import { FileService } from 'src/services/file.service';
|
|
10
17
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
18
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
12
|
-
import commonConfig from 'src/config/common.config';
|
|
13
|
-
import { iamConfig } from 'src/config/iam.config';
|
|
14
19
|
import { Setting } from '../entities/setting.entity';
|
|
15
20
|
import { RequestContextService } from './request-context.service';
|
|
16
|
-
import { User } from 'src/entities/user.entity';
|
|
17
|
-
import { CreateSettingDto } from 'src/dtos/create-setting.dto';
|
|
18
|
-
import { SettingRepository } from 'src/repository/setting.repository';
|
|
19
21
|
|
|
20
22
|
@Injectable()
|
|
21
23
|
export class SettingService extends CRUDService<Setting> {
|
|
22
24
|
constructor(
|
|
25
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
23
26
|
readonly modelMetadataService: ModelMetadataService,
|
|
24
27
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
25
28
|
readonly configService: ConfigService,
|
|
@@ -43,48 +46,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
async seedDefaultSettings(): Promise<void> {
|
|
46
|
-
const settingsSeederData =
|
|
47
|
-
allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
|
|
48
|
-
passwordBasedAuth: this.iamConfiguration.passwordBasedAuth,
|
|
49
|
-
passwordLessAuth: this.iamConfiguration.passwordLessAuth,
|
|
50
|
-
activateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
|
|
51
|
-
iamGoogleOAuthEnabled: false,
|
|
52
|
-
authPagesLayout: "center",
|
|
53
|
-
authPagesTheme: "light",
|
|
54
|
-
appLogo: null,
|
|
55
|
-
companylogo: null,
|
|
56
|
-
favicon: null,
|
|
57
|
-
appLogoPosition: "in_form_view",
|
|
58
|
-
showAuthContent: false,
|
|
59
|
-
appTitle: process.env.SOLID_APP_NAME || "Solid App",
|
|
60
|
-
appSubtitle: process.env.SOLID_APP_SUBTITLE || "Lorem Ipsum",
|
|
61
|
-
appDescription: process.env.SOLID_APP_DESCRIPTION || "lorem ipsum",
|
|
62
|
-
showLegalLinks: false,
|
|
63
|
-
appTnc: null,
|
|
64
|
-
appPrivacyPolicy: null,
|
|
65
|
-
defaultRole: this.iamConfiguration.defaultRole,
|
|
66
|
-
shouldQueueEmails: this.commonConfiguration.shouldQueueEmails,
|
|
67
|
-
shouldQueueSms: this.commonConfiguration.shouldQueueSms,
|
|
68
|
-
enableDarkMode: true,
|
|
69
|
-
copyright: null,
|
|
70
|
-
enableUsername: true,
|
|
71
|
-
enabledNotification: true,
|
|
72
|
-
contactSupportEmail: null,
|
|
73
|
-
contactSupportDisplayName: null,
|
|
74
|
-
contactSupportIcon: null,
|
|
75
|
-
authScreenRightBackgroundImage: null,
|
|
76
|
-
authScreenLeftBackgroundImage: null,
|
|
77
|
-
authScreenCenterBackgroundImage: null,
|
|
78
|
-
authenticationPasswordRegex: this.iamConfiguration.PASSWORD_REGEX,
|
|
79
|
-
authenticationPasswordRegexErrorMessage: this.iamConfiguration.PASSWORD_REGEX_ERROR_MESSAGE,
|
|
80
|
-
authenticationPasswordComplexityDescription: this.iamConfiguration.PASSWORD_COMPLEXITY_DESC,
|
|
81
|
-
solidXGenAiCodeBuilderConfig: JSON.stringify({
|
|
82
|
-
defaultProvider: "",
|
|
83
|
-
availableProviders: []
|
|
84
|
-
}),
|
|
85
|
-
showNameFieldsForRegistration: this.iamConfiguration.showNameFieldsForRegistration,
|
|
86
|
-
forceChangePasswordOnFirstLogin: this.iamConfiguration.forceChangePasswordOnFirstLogin
|
|
87
|
-
};
|
|
49
|
+
const settingsSeederData = this.getDefaultSettings();
|
|
88
50
|
|
|
89
51
|
const existingSettings = await this.repo.find();
|
|
90
52
|
const existingKeys = new Set(existingSettings.map(s => s.key));
|
|
@@ -163,6 +125,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
163
125
|
|
|
164
126
|
private getDefaultSettings(): Record<string, any> {
|
|
165
127
|
return {
|
|
128
|
+
passwordlessRegistrationValidateWhat: this.iamConfiguration.passwordlessRegistrationValidateWhat,
|
|
166
129
|
allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
|
|
167
130
|
passwordBasedAuth: this.iamConfiguration.passwordBasedAuth,
|
|
168
131
|
passwordLessAuth: this.iamConfiguration.passwordLessAuth,
|
|
@@ -173,11 +136,12 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
173
136
|
appLogo: null,
|
|
174
137
|
companylogo: null,
|
|
175
138
|
favicon: null,
|
|
176
|
-
|
|
139
|
+
// in_form_view | in_image_view
|
|
140
|
+
appLogoPosition: "in_form_view",
|
|
177
141
|
showAuthContent: false,
|
|
178
142
|
appTitle: process.env.SOLID_APP_NAME || "Solid App",
|
|
179
|
-
appSubtitle:
|
|
180
|
-
appDescription:
|
|
143
|
+
appSubtitle: process.env.SOLID_APP_SUBTITLE || "",
|
|
144
|
+
appDescription: process.env.SOLID_APP_DESCRIPTION || "",
|
|
181
145
|
showLegalLinks: false,
|
|
182
146
|
appTnc: null,
|
|
183
147
|
appPrivacyPolicy: null,
|
|
@@ -207,6 +171,10 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
207
171
|
};
|
|
208
172
|
}
|
|
209
173
|
|
|
174
|
+
// private async getSettingsFromRepo(): Promise<Setting[]> {
|
|
175
|
+
// const cachedSettings = await this.cacheManager.get('cached-system-settings');
|
|
176
|
+
// }
|
|
177
|
+
|
|
210
178
|
async getConfigValue(settingKey: string) {
|
|
211
179
|
try {
|
|
212
180
|
const settingsArray: Setting[] = await this.repo.find();
|
|
@@ -237,10 +205,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
237
205
|
}
|
|
238
206
|
}
|
|
239
207
|
|
|
240
|
-
async updateSettings(
|
|
241
|
-
settings: CreateSettingDto[] = [],
|
|
242
|
-
uploadedFiles: Array<Express.Multer.File> = []
|
|
243
|
-
): Promise<Setting[]> {
|
|
208
|
+
async updateSettings(settings: CreateSettingDto[] = [], uploadedFiles: Array<Express.Multer.File> = []): Promise<Setting[]> {
|
|
244
209
|
const activeUser = this.requestContextService.getActiveUser();
|
|
245
210
|
const userId = activeUser?.sub;
|
|
246
211
|
|
|
@@ -372,4 +337,26 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
372
337
|
return { system, user };
|
|
373
338
|
}
|
|
374
339
|
|
|
340
|
+
async getMcpUrl(getMcpUrlDto: GetMcpUrlDto, solidRequestContext: any = {}): Promise<any> {
|
|
341
|
+
|
|
342
|
+
const { showHeader, inListView } = getMcpUrlDto;
|
|
343
|
+
|
|
344
|
+
if (process.env.MCP_ENABLED === 'false') {
|
|
345
|
+
throw new ForbiddenException(ERROR_MESSAGES.FORBIDDEN);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
if (solidRequestContext.activeUser) {
|
|
349
|
+
const permissionNames = ["SettingController.getMcpUrl"];
|
|
350
|
+
const matchingPermssions = solidRequestContext.activeUser.permissions.filter((p: any) => permissionNames.includes(p));
|
|
351
|
+
const hasPermission = matchingPermssions.length > 0;
|
|
352
|
+
if (!hasPermission) {
|
|
353
|
+
throw new BadRequestException(ERROR_MESSAGES.FORBIDDEN);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
const apiKey = process.env.MCP_API_KEY;
|
|
357
|
+
const userId = solidRequestContext.activeUser.sub;
|
|
358
|
+
const mcpServerUrl = process.env.MCP_SERVER_URL;
|
|
359
|
+
return { mcpUrl: `${mcpServerUrl}/static/frontend.html?solidx-mcp-api-key=${apiKey}&solidx-user-id=${userId}&solidx-show-header=${showHeader}&solidx-in-list-view=${inListView}` };
|
|
360
|
+
}
|
|
361
|
+
|
|
375
362
|
}
|
|
@@ -22,8 +22,8 @@ export abstract class Msg91BaseSMSService implements ISMS {
|
|
|
22
22
|
|
|
23
23
|
async sendSMSUsingTemplate(to: string, templateName: string, templateParams: any, shouldQueueSms = false): Promise<any> {
|
|
24
24
|
// Load template and evaluate it.
|
|
25
|
-
const
|
|
26
|
-
if (!
|
|
25
|
+
const smsTemplate = await this.smsTemplateService.findOneByName(templateName);
|
|
26
|
+
if (!smsTemplate) {
|
|
27
27
|
throw new Error(`Invalid template name ${templateName}`);
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -33,12 +33,12 @@ export abstract class Msg91BaseSMSService implements ISMS {
|
|
|
33
33
|
|
|
34
34
|
// The below code is only for reference, msh91 maintains the SMS templates in their database, and we need to only specify the templateId.
|
|
35
35
|
// The below was designed assuming that there are certain sms gateways who do not work this way.
|
|
36
|
-
if (
|
|
37
|
-
const bodyTemplate = Handlebars.compile(
|
|
36
|
+
if (smsTemplate.body) {
|
|
37
|
+
const bodyTemplate = Handlebars.compile(smsTemplate.body);
|
|
38
38
|
body = bodyTemplate(templateParams);
|
|
39
39
|
}
|
|
40
|
-
if (
|
|
41
|
-
templateId =
|
|
40
|
+
if (smsTemplate.smsProviderTemplateId) {
|
|
41
|
+
templateId = smsTemplate.smsProviderTemplateId;
|
|
42
42
|
}
|
|
43
43
|
if (!body && !templateId) {
|
|
44
44
|
throw new Error(`Invalid template, neither body nor templateId specified on template with name ${templateName}`);
|
|
@@ -7,6 +7,7 @@ import { SmsTemplateService } from "../sms-template.service";
|
|
|
7
7
|
import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
|
|
8
8
|
import { ISMS } from "../../interfaces";
|
|
9
9
|
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
10
|
+
import { SmsProvider } from "src/decorators/sms-provider.decorator";
|
|
10
11
|
|
|
11
12
|
interface OtpParams {
|
|
12
13
|
otp: string,
|
|
@@ -16,16 +17,16 @@ interface OtpParams {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
@Injectable()
|
|
20
|
+
@SmsProvider()
|
|
19
21
|
export class Msg91OTPService extends Msg91BaseSMSService implements ISMS {
|
|
20
22
|
constructor(
|
|
21
23
|
@Inject(commonConfig.KEY)
|
|
22
24
|
commonConfiguration: ConfigType<typeof commonConfig>,
|
|
23
|
-
// smsPublisher: OTPQueuePublisher,
|
|
24
25
|
publisherFactory: PublisherFactory<any>,
|
|
25
26
|
smsTemplateService: SmsTemplateService,
|
|
26
27
|
private readonly httpService: HttpService,
|
|
27
28
|
) {
|
|
28
|
-
super(commonConfiguration, '
|
|
29
|
+
super(commonConfiguration, 'Msg91OTPQueuePublisher', publisherFactory, smsTemplateService);
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
async sendSMSSynchronously(message: QueueMessage<any>): Promise<any> {
|
|
@@ -7,8 +7,10 @@ import { SmsTemplateService } from "../sms-template.service";
|
|
|
7
7
|
import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
|
|
8
8
|
import { ISMS } from "../../interfaces";
|
|
9
9
|
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
10
|
+
import { SmsProvider } from "src/decorators/sms-provider.decorator";
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
13
|
+
@SmsProvider()
|
|
12
14
|
export class Msg91SMSService extends Msg91BaseSMSService implements ISMS {
|
|
13
15
|
constructor(
|
|
14
16
|
@Inject(commonConfig.KEY)
|
|
@@ -18,7 +20,7 @@ export class Msg91SMSService extends Msg91BaseSMSService implements ISMS {
|
|
|
18
20
|
smsTemplateService: SmsTemplateService,
|
|
19
21
|
private readonly httpService: HttpService,
|
|
20
22
|
) {
|
|
21
|
-
super(commonConfiguration, '
|
|
23
|
+
super(commonConfiguration, 'Msg91SmsQueuePublisher', publisherFactory, smsTemplateService)
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
async sendSMSSynchronously(message: QueueMessage<any>): Promise<any> {
|
|
@@ -7,9 +7,11 @@ import { ISMS } from "../../interfaces";
|
|
|
7
7
|
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
8
8
|
import twilio from 'twilio';
|
|
9
9
|
import { QueueMessage } from "src/interfaces/mq";
|
|
10
|
+
import { SmsProvider } from "src/decorators/sms-provider.decorator";
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
14
|
+
@SmsProvider()
|
|
13
15
|
export class TwilioSMSService implements ISMS {
|
|
14
16
|
private readonly logger = new Logger(TwilioSMSService.name);
|
|
15
17
|
|
|
@@ -18,9 +20,7 @@ export class TwilioSMSService implements ISMS {
|
|
|
18
20
|
private commonConfiguration: ConfigType<typeof commonConfig>,
|
|
19
21
|
private publisherFactory: PublisherFactory<any>,
|
|
20
22
|
private smsTemplateService: SmsTemplateService,
|
|
21
|
-
) {
|
|
22
|
-
// super(commonConfiguration, 'OTPQueuePublisher', publisherFactory, smsTemplateService);
|
|
23
|
-
}
|
|
23
|
+
) { }
|
|
24
24
|
|
|
25
25
|
async sendSMS(to: string, body: string, shouldQueueSms: boolean): Promise<any> {
|
|
26
26
|
const accountSid = this.commonConfiguration.twilio.accountSid;
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { ConfigService } from '@nestjs/config';
|
|
4
|
+
import { DiscoveryService, ModuleRef } from '@nestjs/core';
|
|
5
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
6
|
+
import { SmsTemplateRepository } from 'src/repository/sms-template.repository';
|
|
7
|
+
import { EntityManager } from 'typeorm';
|
|
6
8
|
import { SmsTemplate } from '../entities/sms-template.entity';
|
|
7
|
-
import {
|
|
8
|
-
import { UpdateSmsTemplateDto } from '../dtos/update-sms-template.dto';
|
|
9
|
+
import { CrudHelperService } from './crud-helper.service';
|
|
9
10
|
import { CRUDService } from './crud.service';
|
|
10
|
-
import { ModelMetadataService } from './model-metadata.service';
|
|
11
|
-
import { ModuleMetadataService } from './module-metadata.service';
|
|
12
|
-
import { MediaStorageProviderMetadataService } from './media-storage-provider-metadata.service';
|
|
13
|
-
import { ConfigService } from '@nestjs/config';
|
|
14
11
|
import { FileService } from './file.service';
|
|
12
|
+
import { MediaStorageProviderMetadataService } from './media-storage-provider-metadata.service';
|
|
15
13
|
import { MediaService } from './media.service';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { SmsTemplateRepository } from 'src/repository/sms-template.repository';
|
|
14
|
+
import { ModelMetadataService } from './model-metadata.service';
|
|
15
|
+
import { ModuleMetadataService } from './module-metadata.service';
|
|
19
16
|
|
|
20
17
|
@Injectable()
|
|
21
18
|
export class SmsTemplateService extends CRUDService<SmsTemplate>{
|
|
22
19
|
constructor(
|
|
20
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
23
21
|
readonly modelMetadataService: ModelMetadataService,
|
|
24
22
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
25
23
|
readonly mediaStorageProviderService: MediaStorageProviderMetadataService,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
2
|
-
import {
|
|
2
|
+
import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
|
|
3
3
|
import { DiscoveryService, MetadataScanner, ModuleRef, Reflector } from '@nestjs/core';
|
|
4
4
|
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
|
|
5
5
|
import { getDataSourceToken } from '@nestjs/typeorm';
|
|
@@ -14,16 +14,13 @@ import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorat
|
|
|
14
14
|
import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
|
|
15
15
|
import { IS_WA_PROVIDER } from 'src/decorators/whatsapp-provider.decorator';
|
|
16
16
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
17
|
-
import { DataSource } from 'typeorm';
|
|
18
|
-
import { CRUDService } from './crud.service';
|
|
19
|
-
import { RequestContextService } from './request-context.service';
|
|
20
|
-
import { CreatedByUpdatedBySubscriber } from 'src/subscribers/created-by-updated-by.subscriber';
|
|
21
17
|
import { AuditSubscriber } from 'src/subscribers/audit.subscriber';
|
|
22
|
-
import { ComputedEntityFieldSubscriber
|
|
18
|
+
import { ComputedEntityFieldSubscriber } from 'src/subscribers/computed-entity-field.subscriber';
|
|
19
|
+
import { CreatedByUpdatedBySubscriber } from 'src/subscribers/created-by-updated-by.subscriber';
|
|
23
20
|
import { SoftDeleteAwareEventSubscriber } from 'src/subscribers/soft-delete-aware-event.subscriber';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
21
|
+
import { DataSource } from 'typeorm';
|
|
22
|
+
import { CRUDService } from './crud.service';
|
|
23
|
+
import { IS_SMS_PROVIDER } from 'src/decorators/sms-provider.decorator';
|
|
27
24
|
|
|
28
25
|
export const coreSubscriberClasses = [
|
|
29
26
|
AuditSubscriber,
|
|
@@ -40,20 +37,11 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
40
37
|
private readonly metadataScanner: MetadataScanner,
|
|
41
38
|
private readonly solidRegistry: SolidRegistry,
|
|
42
39
|
private readonly moduleRef: ModuleRef,
|
|
43
|
-
private readonly requestContextService: RequestContextService,
|
|
44
|
-
// AuditSubscribe related dependencies
|
|
45
|
-
private readonly chatterMessageService: ChatterMessageService,
|
|
46
|
-
private readonly modelMetadataHelperService: ModelMetadataHelperService,
|
|
47
|
-
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
48
|
-
// ComputedEntityFieldSubscriber related dependencies
|
|
49
|
-
@Inject(forwardRef(() => PublisherFactory))
|
|
50
|
-
private readonly publisherFactory: PublisherFactory<any>,
|
|
51
|
-
|
|
52
40
|
) { }
|
|
53
41
|
|
|
54
42
|
private readonly logger = new Logger(SolidIntrospectService.name);
|
|
55
43
|
async onApplicationBootstrap() {
|
|
56
|
-
this.logger.
|
|
44
|
+
this.logger.debug('Introspecting the application for Solid metadata');
|
|
57
45
|
|
|
58
46
|
// Register all seeders
|
|
59
47
|
const seeders = this.discoveryService
|
|
@@ -166,6 +154,15 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
166
154
|
this.solidRegistry.registerWhatsappProvider(whatsappProvider);
|
|
167
155
|
});
|
|
168
156
|
|
|
157
|
+
// Register all IWhatsappTransport implementations
|
|
158
|
+
const smsProviders = this.discoveryService
|
|
159
|
+
.getProviders()
|
|
160
|
+
.filter((provider) => this.isSmsProvider(provider));
|
|
161
|
+
|
|
162
|
+
smsProviders.forEach((smsProvider) => {
|
|
163
|
+
this.solidRegistry.registerSmsProvider(smsProvider);
|
|
164
|
+
});
|
|
165
|
+
|
|
169
166
|
// Register all ISecurityRuleConfigProvider implementations
|
|
170
167
|
const securityRuleConfigProviders = this.discoveryService
|
|
171
168
|
.getProviders()
|
|
@@ -365,6 +362,18 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
365
362
|
return !!isWhatsappProvider;
|
|
366
363
|
}
|
|
367
364
|
|
|
365
|
+
private isSmsProvider(provider: InstanceWrapper) {
|
|
366
|
+
const { instance } = provider;
|
|
367
|
+
if (!instance) return false;
|
|
368
|
+
|
|
369
|
+
const isSmsProvider = this.reflector.get<boolean>(
|
|
370
|
+
IS_SMS_PROVIDER,
|
|
371
|
+
instance.constructor,
|
|
372
|
+
);
|
|
373
|
+
|
|
374
|
+
return !!isSmsProvider;
|
|
375
|
+
}
|
|
376
|
+
|
|
368
377
|
private isSecurityRuleConfigProvider(provider: InstanceWrapper) {
|
|
369
378
|
const { instance } = provider;
|
|
370
379
|
if (!instance) return false;
|
|
@@ -47,8 +47,8 @@ export class SolidTsMorphService {
|
|
|
47
47
|
},
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
this.logger.
|
|
51
|
-
Object.entries(this.workspaceMap).forEach(([k, v]) => this.logger.
|
|
50
|
+
this.logger.debug(`SolidTsMorphService repoRoot = ${this.repoRoot}`);
|
|
51
|
+
Object.entries(this.workspaceMap).forEach(([k, v]) => this.logger.debug(`workspace '${k}' => ${v}`));
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
// ---- repo-root discovery ----
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
1
|
+
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
|
-
import { EntityManager, Repository } from 'typeorm';
|
|
4
|
+
import { EntityManager, In, Repository } from 'typeorm';
|
|
5
5
|
|
|
6
6
|
import { CRUDService } from 'src/services/crud.service';
|
|
7
7
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
@@ -19,6 +19,7 @@ import { UserActivityHistoryRepository } from 'src/repository/user-activity-hist
|
|
|
19
19
|
@Injectable()
|
|
20
20
|
export class UserActivityHistoryService extends CRUDService<UserActivityHistory> {
|
|
21
21
|
constructor(
|
|
22
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
22
23
|
readonly modelMetadataService: ModelMetadataService,
|
|
23
24
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
24
25
|
readonly configService: ConfigService,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
1
|
+
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { EntityManager, Repository } from 'typeorm';
|
|
@@ -19,6 +19,7 @@ import { UserViewMetadataRepository } from 'src/repository/user-view-metadata.re
|
|
|
19
19
|
@Injectable()
|
|
20
20
|
export class UserViewMetadataService extends CRUDService<UserViewMetadata> {
|
|
21
21
|
constructor(
|
|
22
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
22
23
|
readonly modelMetadataService: ModelMetadataService,
|
|
23
24
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
24
25
|
readonly configService: ConfigService,
|
|
@@ -42,13 +43,13 @@ export class UserViewMetadataService extends CRUDService<UserViewMetadata> {
|
|
|
42
43
|
});
|
|
43
44
|
|
|
44
45
|
if (existing) {
|
|
45
|
-
existing.layout =
|
|
46
|
+
existing.layout = query.layout;
|
|
46
47
|
return await this.repo.save(existing);
|
|
47
48
|
} else {
|
|
48
49
|
const newEntry = this.repo.create({
|
|
49
50
|
user: { id: activeUser?.sub },
|
|
50
51
|
viewMetadata: { id: query.viewMetadataId },
|
|
51
|
-
layout:
|
|
52
|
+
layout: query.layout
|
|
52
53
|
});
|
|
53
54
|
return await this.repo.save(newEntry);
|
|
54
55
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BadRequestException, Inject, Injectable } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { ConfigService, ConfigType } from '@nestjs/config';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
@@ -22,6 +22,7 @@ import { RoleMetadataRepository } from 'src/repository/role-metadata.repository'
|
|
|
22
22
|
@Injectable()
|
|
23
23
|
export class UserService extends CRUDService<User> {
|
|
24
24
|
constructor(
|
|
25
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
25
26
|
readonly modelMetadataService: ModelMetadataService,
|
|
26
27
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
27
28
|
readonly configService: ConfigService,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { ConfigService } from '@nestjs/config';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
@@ -7,27 +7,27 @@ import { CRUDService } from 'src/services/crud.service';
|
|
|
7
7
|
import { FileService } from "src/services/file.service";
|
|
8
8
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
9
9
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
10
|
-
import { EntityManager } from 'typeorm';
|
|
10
|
+
import { EntityManager, In } from 'typeorm';
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
14
14
|
import { Locale } from 'src/entities/locale.entity';
|
|
15
15
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
16
16
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
17
|
-
import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
|
|
18
17
|
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
19
18
|
import { ViewMetadataRepository } from 'src/repository/view-metadata.repository';
|
|
20
19
|
import { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';
|
|
21
20
|
import { FieldMetadata } from '../entities/field-metadata.entity';
|
|
22
21
|
import { ViewMetadata } from '../entities/view-metadata.entity';
|
|
23
22
|
import { ActionMetadataService } from './action-metadata.service';
|
|
23
|
+
import { MenuItemMetadataService } from './menu-item-metadata.service';
|
|
24
24
|
import { SolidIntrospectService } from './solid-introspect.service';
|
|
25
25
|
import { UserViewMetadataService } from './user-view-metadata.service';
|
|
26
|
-
import { MenuItemMetadataService } from './menu-item-metadata.service';
|
|
27
26
|
|
|
28
27
|
@Injectable()
|
|
29
28
|
export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
30
29
|
constructor(
|
|
30
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
31
31
|
readonly modelMetadataService: ModelMetadataService,
|
|
32
32
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
33
33
|
readonly configService: ConfigService,
|
|
@@ -46,6 +46,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
46
46
|
// private readonly fieldMetadataRepo: Repository<FieldMetadata>,
|
|
47
47
|
// @InjectRepository(ModelMetadata)
|
|
48
48
|
// private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
49
|
+
@Inject(forwardRef(() => ModelMetadataRepository))
|
|
49
50
|
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
50
51
|
private readonly modelMetadataHelperService: ModelMetadataHelperService,
|
|
51
52
|
readonly moduleRef: ModuleRef
|
|
@@ -4,7 +4,8 @@ import { join } from 'path';
|
|
|
4
4
|
import { SnakeNamingStrategy } from 'typeorm-naming-strategies';
|
|
5
5
|
import { WinstonTypeORMLogger } from './winston.logger';
|
|
6
6
|
import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
|
|
7
|
-
|
|
7
|
+
import { parseBooleanEnv } from './helpers/environment.helper';
|
|
8
|
+
import { Logger } from 'winston';
|
|
8
9
|
@Module({
|
|
9
10
|
imports: [
|
|
10
11
|
TypeOrmModule.forRootAsync({
|
|
@@ -47,9 +48,9 @@ import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
|
|
|
47
48
|
// autoLoadEntities: true,
|
|
48
49
|
entities: entities,
|
|
49
50
|
// your entities will be synced with the database (recommended: disable in prod)
|
|
50
|
-
synchronize:
|
|
51
|
-
logging:
|
|
52
|
-
|
|
51
|
+
synchronize: parseBooleanEnv('DEFAULT_DATABASE_SYNCHRONIZE'),
|
|
52
|
+
logging: parseBooleanEnv('DEFAULT_DATABASE_LOGGING'),
|
|
53
|
+
logger: parseBooleanEnv('DEFAULT_DATABASE_LOGGING') ? new WinstonTypeORMLogger(logger) : undefined, // Pass in the custom WinstonLogger
|
|
53
54
|
namingStrategy: new SnakeNamingStrategy(),
|
|
54
55
|
// subscribers: subscribers
|
|
55
56
|
}
|
|
@@ -5,7 +5,7 @@ import { WinstonLoggerConfig } from './winston.logger';
|
|
|
5
5
|
import { WinstonModule } from 'nest-winston';
|
|
6
6
|
import { CacheModule } from '@nestjs/cache-manager';
|
|
7
7
|
import { EventEmitterModule } from '@nestjs/event-emitter';
|
|
8
|
-
import {
|
|
8
|
+
import { CacheManagerOptions } from './config/cache.options';
|
|
9
9
|
import { ConfigModule } from '@nestjs/config';
|
|
10
10
|
import Joi from '@hapi/joi';
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ import Joi from '@hapi/joi';
|
|
|
31
31
|
}),
|
|
32
32
|
|
|
33
33
|
SolidCoreCliDBModule,
|
|
34
|
-
CacheModule.registerAsync(
|
|
34
|
+
CacheModule.registerAsync(CacheManagerOptions),
|
|
35
35
|
EventEmitterModule.forRoot(),
|
|
36
36
|
SolidCoreModule, // Import main module without exposing forRoot()
|
|
37
37
|
],
|