@solidstarters/solid-core 1.2.204 → 1.2.207
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/info.command.d.ts +19 -0
- package/dist/commands/info.command.d.ts.map +1 -0
- package/dist/commands/info.command.js +98 -0
- package/dist/commands/info.command.js.map +1 -0
- package/dist/commands/mcp.command.d.ts.map +1 -1
- package/dist/commands/mcp.command.js +2 -10
- package/dist/commands/mcp.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +3 -12
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/controllers/email-template.controller.d.ts +3 -1
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/email-template.controller.js +7 -4
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.d.ts +4 -5
- package/dist/controllers/google-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/google-authentication.controller.js +21 -14
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.d.ts +10 -0
- package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/setting.controller.d.ts +2 -34
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +4 -130
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/controllers/test.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/decorators/settings-provider.decorator.d.ts +3 -0
- package/dist/decorators/settings-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/settings-provider.decorator.js +8 -0
- package/dist/decorators/settings-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-password.decorator.js +3 -3
- package/dist/decorators/solid-password.decorator.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +3 -4
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +4 -51
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.d.ts +1 -0
- package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.js +7 -1
- package/dist/dtos/create-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/create-setting.dto.d.ts +3 -0
- package/dist/dtos/create-setting.dto.d.ts.map +1 -1
- package/dist/dtos/create-setting.dto.js +20 -2
- package/dist/dtos/create-setting.dto.js.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.d.ts +1 -0
- package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.js +7 -1
- package/dist/dtos/update-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/update-setting.dto.d.ts +3 -0
- package/dist/dtos/update-setting.dto.d.ts.map +1 -1
- package/dist/dtos/update-setting.dto.js +19 -1
- package/dist/dtos/update-setting.dto.js.map +1 -1
- package/dist/entities/scheduled-job.entity.d.ts +1 -0
- package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
- package/dist/entities/scheduled-job.entity.js +5 -1
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/setting.entity.d.ts +3 -0
- package/dist/entities/setting.entity.d.ts.map +1 -1
- package/dist/entities/setting.entity.js +13 -1
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/factories/mail.factory.d.ts +3 -4
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js +6 -12
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts +3 -4
- package/dist/factories/sms.factory.d.ts.map +1 -1
- package/dist/factories/sms.factory.js +6 -12
- package/dist/factories/sms.factory.js.map +1 -1
- package/dist/factories/whatsapp.factory.d.ts +3 -4
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +6 -12
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/guards/access-token.guard.d.ts +3 -4
- package/dist/guards/access-token.guard.d.ts.map +1 -1
- package/dist/guards/access-token.guard.js +14 -9
- package/dist/guards/access-token.guard.js.map +1 -1
- package/dist/helpers/command.service.d.ts +5 -1
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +26 -11
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/cors.helper.d.ts +1 -2
- package/dist/helpers/cors.helper.d.ts.map +1 -1
- package/dist/helpers/cors.helper.js +2 -2
- package/dist/helpers/cors.helper.js.map +1 -1
- package/dist/helpers/error-mapper.service.d.ts.map +1 -1
- package/dist/helpers/error-mapper.service.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +2 -2
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/google-oauth.helper.d.ts +7 -3
- package/dist/helpers/google-oauth.helper.d.ts.map +1 -1
- package/dist/helpers/google-oauth.helper.js +1 -2
- package/dist/helpers/google-oauth.helper.js.map +1 -1
- package/dist/helpers/module.helper.js +0 -2
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/schematic.service.d.ts +3 -2
- package/dist/helpers/schematic.service.d.ts.map +1 -1
- package/dist/helpers/schematic.service.js +32 -27
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +8 -3
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +32 -9
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +8 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.d.ts +1 -4
- package/dist/passport-strategies/google-oauth.strategy.d.ts.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.js +12 -12
- package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +1 -0
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/seeders/email-template-seeder.service.d.ts +3 -4
- package/dist/seeders/email-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/email-template-seeder.service.js +7 -12
- package/dist/seeders/email-template-seeder.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -5
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +24 -24
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +119 -5
- package/dist/seeders/sms-template-seeder.service.d.ts +3 -4
- package/dist/seeders/sms-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/sms-template-seeder.service.js +7 -12
- package/dist/seeders/sms-template-seeder.service.js.map +1 -1
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +3 -0
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts +2 -13
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +4 -22
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts +2 -13
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +6 -24
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +14 -10
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +158 -116
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/bcrypt.service.d.ts +3 -5
- package/dist/services/bcrypt.service.d.ts.map +1 -1
- package/dist/services/bcrypt.service.js +10 -14
- package/dist/services/bcrypt.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts +2 -13
- package/dist/services/chatter-message-details.service.d.ts.map +1 -1
- package/dist/services/chatter-message-details.service.js +4 -22
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +2 -13
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +5 -23
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +12 -12
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +25 -17
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -13
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js +4 -21
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
- package/dist/services/dashboard-question.service.d.ts +2 -13
- package/dist/services/dashboard-question.service.d.ts.map +1 -1
- package/dist/services/dashboard-question.service.js +4 -21
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +2 -13
- package/dist/services/dashboard-variable.service.d.ts.map +1 -1
- package/dist/services/dashboard-variable.service.js +4 -21
- package/dist/services/dashboard-variable.service.js.map +1 -1
- package/dist/services/dashboard.service.d.ts +2 -13
- package/dist/services/dashboard.service.d.ts.map +1 -1
- package/dist/services/dashboard.service.js +4 -21
- package/dist/services/dashboard.service.js.map +1 -1
- package/dist/services/email-template.service.d.ts +2 -13
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +4 -22
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/export-template.service.d.ts +2 -13
- package/dist/services/export-template.service.d.ts.map +1 -1
- package/dist/services/export-template.service.js +4 -21
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts +2 -13
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +4 -21
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +11 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +3 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts +1 -4
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +12 -13
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/genai/r2r-helper.service.d.ts +3 -1
- package/dist/services/genai/r2r-helper.service.d.ts.map +1 -1
- package/dist/services/genai/r2r-helper.service.js +11 -7
- package/dist/services/genai/r2r-helper.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +2 -13
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +4 -22
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +2 -13
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +4 -22
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +2 -13
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +4 -22
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +2 -13
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +4 -22
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/elastic-email.service.d.ts +4 -5
- package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
- package/dist/services/mail/elastic-email.service.js +10 -13
- package/dist/services/mail/elastic-email.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +3 -4
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +19 -17
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +11 -0
- package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js +3 -0
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts +2 -9
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +17 -28
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +2 -4
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -11
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +16 -12
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/index.js +1 -1
- package/dist/services/mediaStorageProviders/index.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +2 -13
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -22
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +11 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +3 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/model-sequence.service.d.ts +2 -13
- package/dist/services/model-sequence.service.d.ts.map +1 -1
- package/dist/services/model-sequence.service.js +4 -21
- package/dist/services/model-sequence.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +14 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +13 -6
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +2 -13
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +4 -22
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +2 -13
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +4 -22
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +2 -13
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +4 -22
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +2 -13
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +4 -23
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.d.ts +2 -13
- package/dist/services/saved-filters.service.d.ts.map +1 -1
- package/dist/services/saved-filters.service.js +4 -21
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +2 -13
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +4 -22
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +1 -0
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +29 -0
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts +2 -13
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +5 -23
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +23 -30
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +147 -196
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
- package/dist/services/settings/default-settings-provider.service.js +139 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -0
- package/dist/services/short-url/tiny-url.service.d.ts +3 -4
- package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
- package/dist/services/short-url/tiny-url.service.js +10 -13
- package/dist/services/short-url/tiny-url.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +3 -3
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +2 -3
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +7 -13
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +2 -3
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +7 -13
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +3 -4
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
- package/dist/services/sms/TwilioSMSService.js +13 -16
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +2 -13
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +4 -22
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +4 -1
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +33 -47
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/textract.service.d.ts +1 -4
- package/dist/services/textract.service.d.ts.map +1 -1
- package/dist/services/textract.service.js +14 -18
- package/dist/services/textract.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +2 -13
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +4 -22
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +2 -13
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +4 -22
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -15
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +7 -28
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +2 -13
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +5 -23
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
- package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
- package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
- package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +9 -47
- package/dist/solid-core.module.js.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
- package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/type-declaration-import-issue.md +24 -0
- package/package.json +2 -1
- package/src/commands/info.command.ts +101 -0
- package/src/commands/mcp.command.ts +3 -17
- package/src/commands/seed.command.ts +5 -17
- package/src/controllers/email-template.controller.ts +9 -4
- package/src/controllers/google-authentication.controller.ts +19 -12
- package/src/controllers/setting.controller.ts +6 -81
- package/src/controllers/test.controller.ts +0 -18
- package/src/decorators/settings-provider.decorator.ts +7 -0
- package/src/decorators/solid-password.decorator.ts +43 -43
- package/src/dtos/create-role-metadata.dto.ts +4 -81
- package/src/dtos/create-scheduled-job.dto.ts +4 -0
- package/src/dtos/create-setting.dto.ts +14 -1
- package/src/dtos/update-scheduled-job.dto.ts +4 -0
- package/src/dtos/update-setting.dto.ts +14 -0
- package/src/entities/scheduled-job.entity.ts +2 -0
- package/src/entities/setting.entity.ts +15 -1
- package/src/factories/mail.factory.ts +4 -4
- package/src/factories/sms.factory.ts +9 -7
- package/src/factories/whatsapp.factory.ts +4 -4
- package/src/guards/access-token.guard.ts +12 -5
- package/src/helpers/command.service.ts +44 -12
- package/src/helpers/cors.helper.ts +3 -3
- package/src/helpers/error-mapper.service.ts +0 -1
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +2 -2
- package/src/helpers/google-oauth.helper.ts +11 -7
- package/src/helpers/module.helper.ts +2 -2
- package/src/helpers/schematic.service.ts +41 -35
- package/src/helpers/solid-registry.ts +45 -16
- package/src/index.ts +2 -4
- package/src/interfaces.ts +29 -0
- package/src/passport-strategies/google-oauth.strategy.ts +11 -8
- package/src/repository/scheduled-job.repository.ts +1 -0
- package/src/seeders/email-template-seeder.service.ts +6 -4
- package/src/seeders/module-metadata-seeder.service.ts +41 -29
- package/src/seeders/seed-data/solid-core-metadata.json +120 -6
- package/src/seeders/sms-template-seeder.service.ts +6 -4
- package/src/seeders/system-fields-seeder.service.ts +3 -0
- package/src/services/action-metadata.service.ts +4 -16
- package/src/services/ai-interaction.service.ts +6 -17
- package/src/services/authentication.service.ts +175 -113
- package/src/services/bcrypt.service.ts +9 -9
- package/src/services/chatter-message-details.service.ts +5 -17
- package/src/services/chatter-message.service.ts +2 -14
- package/src/services/crud.service.ts +36 -28
- package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
- package/src/services/dashboard-question.service.ts +4 -17
- package/src/services/dashboard-variable.service.ts +4 -16
- package/src/services/dashboard.service.ts +2 -13
- package/src/services/email-template.service.ts +3 -15
- package/src/services/export-template.service.ts +4 -18
- package/src/services/export-transaction.service.ts +4 -19
- package/src/services/field-metadata.service.ts +5 -1
- package/src/services/file.service.ts +14 -12
- package/src/services/genai/r2r-helper.service.ts +10 -6
- package/src/services/import-transaction-error-log.service.ts +5 -17
- package/src/services/import-transaction.service.ts +3 -15
- package/src/services/list-of-values.service.ts +3 -16
- package/src/services/locale.service.ts +3 -15
- package/src/services/mail/elastic-email.service.ts +7 -7
- package/src/services/mail/smtp-email.service.ts +19 -11
- package/src/services/media-storage-provider-metadata.service.ts +4 -0
- package/src/services/media.service.ts +39 -22
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
- package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
- package/src/services/mediaStorageProviders/index.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +5 -17
- package/src/services/model-metadata.service.ts +4 -0
- package/src/services/model-sequence.service.ts +4 -15
- package/src/services/module-metadata.service.ts +13 -4
- package/src/services/mq-message-queue.service.ts +5 -17
- package/src/services/mq-message.service.ts +5 -17
- package/src/services/permission-metadata.service.ts +4 -16
- package/src/services/role-metadata.service.ts +3 -16
- package/src/services/saved-filters.service.ts +2 -13
- package/src/services/scheduled-job.service.ts +3 -15
- package/src/services/scheduled-jobs/scheduler.service.ts +40 -3
- package/src/services/security-rule.service.ts +4 -16
- package/src/services/setting.service.ts +223 -212
- package/src/services/settings/default-settings-provider.service.ts +157 -0
- package/src/services/short-url/tiny-url.service.ts +9 -7
- package/src/services/sms/Msg91BaseSMSService.ts +6 -4
- package/src/services/sms/Msg91OTPService.ts +7 -7
- package/src/services/sms/Msg91SMSService.ts +7 -6
- package/src/services/sms/TwilioSMSService.ts +18 -19
- package/src/services/sms-template.service.ts +3 -15
- package/src/services/solid-introspect.service.ts +45 -66
- package/src/services/textract.service.ts +13 -10
- package/src/services/user-activity-history.service.ts +5 -17
- package/src/services/user-view-metadata.service.ts +5 -17
- package/src/services/user.service.ts +7 -22
- package/src/services/view-metadata.service.ts +3 -15
- package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
- package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
- package/src/solid-core.module.ts +17 -49
- package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
- package/# Password field.md +0 -8
- package/dist/config/app-builder.config.d.ts +0 -11
- package/dist/config/app-builder.config.d.ts.map +0 -1
- package/dist/config/app-builder.config.js +0 -13
- package/dist/config/app-builder.config.js.map +0 -1
- package/dist/config/common.config.d.ts +0 -96
- package/dist/config/common.config.d.ts.map +0 -1
- package/dist/config/common.config.js +0 -51
- package/dist/config/common.config.js.map +0 -1
- package/dist/config/iam.config.d.ts +0 -56
- package/dist/config/iam.config.d.ts.map +0 -1
- package/dist/config/iam.config.js +0 -35
- package/dist/config/iam.config.js.map +0 -1
- package/dist/config/jwt.config.d.ts +0 -14
- package/dist/config/jwt.config.d.ts.map +0 -1
- package/dist/config/jwt.config.js +0 -15
- package/dist/config/jwt.config.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
- package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
- package/sql-server-changes.txt +0 -88
- package/src/config/app-builder.config.ts +0 -12
- package/src/config/common.config.ts +0 -55
- package/src/config/iam.config.ts +0 -32
- package/src/config/jwt.config.ts +0 -13
- package/src/services/export_issues.txt +0 -10
- package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
- package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
- package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
- package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
- package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
- package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
- package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
- package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
- package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
- package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
- package/src/services/groupBy.json +0 -92
- package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
|
@@ -6,6 +6,10 @@ import { UpdateUserDto } from 'src/dtos/update-user.dto';
|
|
|
6
6
|
import { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';
|
|
7
7
|
import { ApiProperty } from '@nestjs/swagger';
|
|
8
8
|
|
|
9
|
+
export const ADMIN_ROLE_NAME = 'Admin';
|
|
10
|
+
export const INTERNAL_ROLE_NAME = 'Internal User';
|
|
11
|
+
export const PUBLIC_ROLE_NAME = 'Public';
|
|
12
|
+
|
|
9
13
|
export class CreateRoleMetadataDto {
|
|
10
14
|
@IsNotEmpty()
|
|
11
15
|
@IsString()
|
|
@@ -54,84 +58,3 @@ export class CreateRoleMetadataDto {
|
|
|
54
58
|
@ApiProperty()
|
|
55
59
|
menuItemsCommand: string;
|
|
56
60
|
}
|
|
57
|
-
|
|
58
|
-
export const ADMIN_ROLE_NAME = 'Admin';
|
|
59
|
-
|
|
60
|
-
export const INTERNAL_ROLE_NAME = 'Internal User';
|
|
61
|
-
|
|
62
|
-
export const PUBLIC_ROLE_NAME = 'Public';
|
|
63
|
-
|
|
64
|
-
export const INTERNAL_ROLE_PERMISSIONS = [
|
|
65
|
-
// User permissions
|
|
66
|
-
'UserController.findMany', //Why do we need this?
|
|
67
|
-
'UserController.checkIfPermissionExists',
|
|
68
|
-
'UserController.findOne',
|
|
69
|
-
|
|
70
|
-
// Menu permissions
|
|
71
|
-
'MenuItemMetadataController.findMany',
|
|
72
|
-
'MenuItemMetadataController.findUserMenus',
|
|
73
|
-
'MenuItemMetadataController.findOne',
|
|
74
|
-
|
|
75
|
-
// View metadata permissions
|
|
76
|
-
'ViewMetadataController.getLayout',
|
|
77
|
-
'ViewMetadataController.findMany',
|
|
78
|
-
'ViewMetadataController.findOne',
|
|
79
|
-
|
|
80
|
-
// Action metadata permissions
|
|
81
|
-
'ActionMetadataController.findMany',
|
|
82
|
-
'ActionMetadataController.findOne',
|
|
83
|
-
|
|
84
|
-
// User View metadata permissions
|
|
85
|
-
'UserViewMetadataController.upsert',
|
|
86
|
-
'UserViewMetadataController.findMany',
|
|
87
|
-
'UserViewMetadataController.findOne',
|
|
88
|
-
|
|
89
|
-
// IAM permissions
|
|
90
|
-
'AuthenticationController.changePassword',
|
|
91
|
-
'AuthenticationController.logout',
|
|
92
|
-
'AuthenticationController.me',
|
|
93
|
-
|
|
94
|
-
// Field Metadata permissions
|
|
95
|
-
'ModelMetadataController.navigation',
|
|
96
|
-
|
|
97
|
-
// Field Metadata permissions
|
|
98
|
-
'FieldMetadataController.getSelectionDynamicValues',
|
|
99
|
-
'FieldMetadataController.getSelectionDynamicValue',
|
|
100
|
-
'FieldMetadataController.findFieldDefaultMetaData',
|
|
101
|
-
|
|
102
|
-
// Saved Filters permissions
|
|
103
|
-
'SavedFiltersController.delete',
|
|
104
|
-
'SavedFiltersController.deleteMany',
|
|
105
|
-
'SavedFiltersController.findOne',
|
|
106
|
-
'SavedFiltersController.findMany',
|
|
107
|
-
'SavedFiltersController.recover',
|
|
108
|
-
'SavedFiltersController.recoverMany',
|
|
109
|
-
'SavedFiltersController.partialUpdate',
|
|
110
|
-
'SavedFiltersController.update',
|
|
111
|
-
'SavedFiltersController.insertMany',
|
|
112
|
-
'SavedFiltersController.create',
|
|
113
|
-
|
|
114
|
-
// Other permissions can be added here as required.
|
|
115
|
-
// Chatter permissions
|
|
116
|
-
'ChatterMessageController.create',
|
|
117
|
-
'ChatterMessageController.getChatterMessages',
|
|
118
|
-
'ChatterMessageController.postMessage',
|
|
119
|
-
'ChatterMessageController.findMany',
|
|
120
|
-
|
|
121
|
-
// Import
|
|
122
|
-
'ImportTransactionController.getImportTemplate',
|
|
123
|
-
'ImportTransactionController.getImportInstructions',
|
|
124
|
-
'ImportTransactionController.getImportMappingInfo',
|
|
125
|
-
'ImportTransactionController.startImportSync',
|
|
126
|
-
'ImportTransactionController.startImportAsync',
|
|
127
|
-
'ImportTransactionController.exportFailedImportedImports',
|
|
128
|
-
|
|
129
|
-
// Export permissions
|
|
130
|
-
'ExportTemplateController.startExportSync',
|
|
131
|
-
'ExportTemplateController.startExportAsync',
|
|
132
|
-
|
|
133
|
-
// List of values
|
|
134
|
-
'ListOfValuesController.findMany',
|
|
135
|
-
'ListOfValuesController.findOne',
|
|
136
|
-
// Media // [Not required], since media is always populated as part of a model
|
|
137
|
-
]
|
|
@@ -16,11 +16,24 @@ export class CreateSettingDto {
|
|
|
16
16
|
@ApiProperty()
|
|
17
17
|
type: string;
|
|
18
18
|
@IsOptional()
|
|
19
|
+
@IsString()
|
|
20
|
+
@ApiProperty()
|
|
21
|
+
level: string;
|
|
22
|
+
@IsOptional()
|
|
19
23
|
@IsInt()
|
|
20
24
|
@ApiProperty({ description: "This is the user id field" })
|
|
21
25
|
userId: number;
|
|
22
26
|
@IsString()
|
|
23
27
|
@IsOptional()
|
|
24
|
-
@ApiProperty({ description: "This is the user
|
|
28
|
+
@ApiProperty({ description: "This is the user userkey field" })
|
|
25
29
|
userUserKey: string;
|
|
30
|
+
|
|
31
|
+
@IsOptional()
|
|
32
|
+
@IsInt()
|
|
33
|
+
@ApiProperty({ description: "This is the moduleMetadata id field" })
|
|
34
|
+
moduleMetadataId: number;
|
|
35
|
+
@IsString()
|
|
36
|
+
@IsOptional()
|
|
37
|
+
@ApiProperty({ description: "This is the moduleMetadata userkey field" })
|
|
38
|
+
moduleMetadataUserKey: string;
|
|
26
39
|
}
|
|
@@ -18,6 +18,10 @@ export class UpdateSettingDto {
|
|
|
18
18
|
@ApiProperty()
|
|
19
19
|
type: string;
|
|
20
20
|
@IsOptional()
|
|
21
|
+
@IsString()
|
|
22
|
+
@ApiProperty()
|
|
23
|
+
level: string;
|
|
24
|
+
@IsOptional()
|
|
21
25
|
@IsInt()
|
|
22
26
|
@ApiProperty({ description: "This is the user id field" })
|
|
23
27
|
userId: number;
|
|
@@ -25,4 +29,14 @@ export class UpdateSettingDto {
|
|
|
25
29
|
@IsOptional()
|
|
26
30
|
@ApiProperty({ description: "This is the user id field" })
|
|
27
31
|
userUserKey: string;
|
|
32
|
+
|
|
33
|
+
@IsOptional()
|
|
34
|
+
@IsInt()
|
|
35
|
+
@ApiProperty({ description: "This is the moduleMetadata id field" })
|
|
36
|
+
moduleMetadataId: number;
|
|
37
|
+
@IsString()
|
|
38
|
+
@IsOptional()
|
|
39
|
+
@ApiProperty({ description: "This is the moduleMetadata userkey field" })
|
|
40
|
+
moduleMetadataUserKey: string;
|
|
41
|
+
|
|
28
42
|
}
|
|
@@ -29,6 +29,8 @@ export class ScheduledJob extends CommonEntity {
|
|
|
29
29
|
dayOfWeek: string;
|
|
30
30
|
@Column({ type: "varchar" })
|
|
31
31
|
job: string;
|
|
32
|
+
@Column({ type: "varchar", nullable: true })
|
|
33
|
+
cronExpression: string;
|
|
32
34
|
@Index()
|
|
33
35
|
@ManyToOne(() => ModuleMetadata, { nullable: false })
|
|
34
36
|
@JoinColumn({ referencedColumnName: 'id' })
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { CommonEntity } from 'src/entities/common.entity'
|
|
2
2
|
import { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
3
3
|
import { User } from 'src/entities/user.entity'
|
|
4
|
+
import { ModuleMetadata } from './module-metadata.entity';
|
|
4
5
|
|
|
5
6
|
@Entity("ss_setting")
|
|
6
7
|
export class Setting extends CommonEntity {
|
|
8
|
+
|
|
7
9
|
@Index({ unique: true })
|
|
8
10
|
@Column({ type: "varchar", nullable: false })
|
|
9
11
|
key: string;
|
|
12
|
+
|
|
10
13
|
@Column({ type: "varchar", nullable: true })
|
|
11
14
|
value: string;
|
|
15
|
+
|
|
12
16
|
@Column({ name: "type", type: "varchar", nullable: true })
|
|
13
17
|
type: string;
|
|
18
|
+
|
|
19
|
+
@Column({ name: "level", type: "varchar", nullable: true })
|
|
20
|
+
level: string;
|
|
21
|
+
|
|
22
|
+
@Index()
|
|
14
23
|
@ManyToOne(() => User, { nullable: true })
|
|
15
24
|
@JoinColumn()
|
|
16
25
|
user: User;
|
|
17
|
-
|
|
26
|
+
|
|
27
|
+
@Index()
|
|
28
|
+
@ManyToOne(() => ModuleMetadata, { nullable: true })
|
|
29
|
+
@JoinColumn()
|
|
30
|
+
moduleMetadata: ModuleMetadata;
|
|
31
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from "@nestjs/common";
|
|
2
2
|
import { ConfigType } from "@nestjs/config";
|
|
3
3
|
import { ModuleRef } from "@nestjs/core";
|
|
4
|
-
import commonConfig from "src/config/common.config";
|
|
5
4
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
6
5
|
import { IMail } from "src/interfaces";
|
|
6
|
+
import { SettingService } from "src/services/setting.service";
|
|
7
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
7
8
|
|
|
8
9
|
function norm(s?: string) {
|
|
9
10
|
return s?.trim().toLowerCase();
|
|
@@ -16,12 +17,11 @@ export class MailFactory {
|
|
|
16
17
|
constructor(
|
|
17
18
|
private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service
|
|
18
19
|
private readonly solidRegistry: SolidRegistry,
|
|
19
|
-
|
|
20
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
20
|
+
private readonly settingService: SettingService,
|
|
21
21
|
) { }
|
|
22
22
|
|
|
23
23
|
getMailService(): IMail {
|
|
24
|
-
const mailServiceName = this.
|
|
24
|
+
const mailServiceName = this.settingService.getConfigValue<SolidCoreSetting>("emailProvider") ?? "SMTPEMailService";
|
|
25
25
|
const mailProviders = this.solidRegistry.getMailProviders();
|
|
26
26
|
// Return the instance which matches the mailServiceName
|
|
27
27
|
if (!mailProviders.length) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ConfigType } from "@nestjs/config";
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
3
2
|
import { ModuleRef } from "@nestjs/core";
|
|
4
|
-
import commonConfig from "src/config/common.config";
|
|
5
3
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
6
4
|
import { ISMS } from "src/interfaces";
|
|
5
|
+
import { SettingService } from "src/services/setting.service";
|
|
6
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
7
7
|
|
|
8
8
|
function norm(s?: string) {
|
|
9
9
|
return s?.trim().toLowerCase();
|
|
@@ -17,13 +17,15 @@ export class SmsFactory {
|
|
|
17
17
|
constructor(
|
|
18
18
|
private readonly moduleRef: ModuleRef,
|
|
19
19
|
private readonly solidRegistry: SolidRegistry,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
private readonly settingService: SettingService,
|
|
21
|
+
// @Inject(commonConfig.KEY)
|
|
22
|
+
// private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
22
23
|
) { }
|
|
23
24
|
|
|
24
25
|
getSmsService(name: string = null): ISMS {
|
|
25
26
|
// This is the default provider
|
|
26
|
-
const smsServiceName = name || this.commonConfiguration.smsProvider;
|
|
27
|
+
// const smsServiceName = name || this.commonConfiguration.smsProvider;
|
|
28
|
+
const smsServiceName = this.settingService.getConfigValue<SolidCoreSetting>('smsProvider');
|
|
27
29
|
if (!smsServiceName) {
|
|
28
30
|
throw new Error("Unable to resolve sms provider")
|
|
29
31
|
}
|
|
@@ -40,4 +42,4 @@ export class SmsFactory {
|
|
|
40
42
|
return smsServiceProvider.instance as ISMS;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
}
|
|
45
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from "@nestjs/common";
|
|
2
2
|
import { ConfigType } from "@nestjs/config";
|
|
3
3
|
import { ModuleRef } from "@nestjs/core";
|
|
4
|
-
import commonConfig from "src/config/common.config";
|
|
5
4
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
6
5
|
import { IWhatsAppTransport } from "src/interfaces";
|
|
6
|
+
import { SettingService } from "src/services/setting.service";
|
|
7
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
7
8
|
|
|
8
9
|
function norm(s?: string) {
|
|
9
10
|
return s?.trim().toLowerCase();
|
|
@@ -16,13 +17,12 @@ export class WhatsAppFactory {
|
|
|
16
17
|
constructor(
|
|
17
18
|
private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service
|
|
18
19
|
private readonly solidRegistry: SolidRegistry,
|
|
19
|
-
|
|
20
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
20
|
+
private readonly settingService: SettingService,
|
|
21
21
|
) { }
|
|
22
22
|
|
|
23
23
|
getWhatsappService(name: string = null): IWhatsAppTransport {
|
|
24
24
|
// This is the default provider
|
|
25
|
-
const whatsappServiceName = name || this.
|
|
25
|
+
const whatsappServiceName = name || this.settingService.getConfigValue<SolidCoreSetting>("whatsappProvider");
|
|
26
26
|
if (!whatsappServiceName) {
|
|
27
27
|
throw new Error("Unable to resolve whatsapp provider")
|
|
28
28
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
1
2
|
import {
|
|
2
3
|
CanActivate,
|
|
3
4
|
ExecutionContext,
|
|
@@ -5,22 +6,20 @@ import {
|
|
|
5
6
|
Injectable,
|
|
6
7
|
UnauthorizedException,
|
|
7
8
|
} from '@nestjs/common';
|
|
8
|
-
import { ConfigType } from '@nestjs/config';
|
|
9
9
|
import { JwtService } from '@nestjs/jwt';
|
|
10
10
|
import { Request } from 'express';
|
|
11
11
|
import { ActiveUserData } from '../interfaces/active-user-data.interface';
|
|
12
|
-
import { jwtConfig } from 'src/config/jwt.config';
|
|
13
12
|
import { REQUEST_USER_KEY } from "../constants";
|
|
14
13
|
import { PermissionMetadataService } from '../services/permission-metadata.service';
|
|
15
14
|
import { ClsService } from 'nestjs-cls';
|
|
15
|
+
import { SettingService } from '../services/setting.service';
|
|
16
16
|
|
|
17
17
|
@Injectable()
|
|
18
18
|
export class AccessTokenGuard implements CanActivate {
|
|
19
19
|
constructor(
|
|
20
20
|
private readonly jwtService: JwtService,
|
|
21
|
-
@Inject(jwtConfig.KEY)
|
|
22
|
-
private readonly jwtConfiguration: ConfigType<typeof jwtConfig>,
|
|
23
21
|
private readonly permissionsService: PermissionMetadataService,
|
|
22
|
+
private readonly settingService: SettingService,
|
|
24
23
|
private readonly cls: ClsService
|
|
25
24
|
) { }
|
|
26
25
|
|
|
@@ -32,9 +31,17 @@ export class AccessTokenGuard implements CanActivate {
|
|
|
32
31
|
throw new UnauthorizedException();
|
|
33
32
|
}
|
|
34
33
|
try {
|
|
34
|
+
|
|
35
|
+
const jwtConfiguration = {
|
|
36
|
+
secret: this.settingService.getConfigValue<SolidCoreSetting>("secret"),
|
|
37
|
+
audience: this.settingService.getConfigValue<SolidCoreSetting>("audience"),
|
|
38
|
+
issuer: this.settingService.getConfigValue<SolidCoreSetting>("issuer"),
|
|
39
|
+
accessTokenTtl: this.settingService.getConfigValue<SolidCoreSetting>("accessTokenTtl"),
|
|
40
|
+
refreshTokenTtl: this.settingService.getConfigValue<SolidCoreSetting>("refreshTokenTtl")
|
|
41
|
+
}
|
|
35
42
|
const payload: ActiveUserData = await this.jwtService.verifyAsync(
|
|
36
43
|
token,
|
|
37
|
-
|
|
44
|
+
jwtConfiguration
|
|
38
45
|
);
|
|
39
46
|
|
|
40
47
|
// Load permissions given the user.
|
|
@@ -1,22 +1,54 @@
|
|
|
1
1
|
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
|
|
4
|
+
export type CommandWithArgs = {
|
|
5
|
+
command: string;
|
|
6
|
+
args: string[];
|
|
7
|
+
};
|
|
3
8
|
|
|
4
9
|
@Injectable()
|
|
5
10
|
export class CommandService {
|
|
6
11
|
private readonly logger = new Logger(CommandService.name);
|
|
7
12
|
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Execute a command with arguments array (cross-platform compatible)
|
|
15
|
+
*/
|
|
16
|
+
async executeCommandWithArgs(commandWithArgs: CommandWithArgs): Promise<string> {
|
|
17
|
+
const { command, args } = commandWithArgs;
|
|
18
|
+
this.logger.debug(`Executing command: ${command} ${args.join(' ')}`);
|
|
19
|
+
|
|
10
20
|
return new Promise<string>((resolve, reject) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
const isWindows = process.platform === 'win32';
|
|
22
|
+
|
|
23
|
+
// On Windows, we need to use cmd /c for commands that might be .cmd files (like npm scripts)
|
|
24
|
+
const spawnCommand = isWindows ? command : command;
|
|
25
|
+
const spawnArgs = args;
|
|
26
|
+
|
|
27
|
+
const child = spawn(spawnCommand, spawnArgs, {
|
|
28
|
+
shell: isWindows, // Use shell on Windows to handle .cmd files
|
|
29
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
let stdout = '';
|
|
33
|
+
let stderr = '';
|
|
34
|
+
|
|
35
|
+
child.stdout.on('data', (data) => {
|
|
36
|
+
stdout += data.toString();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
child.stderr.on('data', (data) => {
|
|
40
|
+
stderr += data.toString();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
child.on('error', (error) => {
|
|
44
|
+
this.logger.error(`Error executing command: ${command}`, error);
|
|
45
|
+
reject(error);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
child.on('close', (code) => {
|
|
49
|
+
if (code !== 0) {
|
|
50
|
+
this.logger.error(`Command failed with code ${code}: ${command}`, stderr);
|
|
51
|
+
reject(new Error(stderr || `Command failed with exit code ${code}`));
|
|
20
52
|
return;
|
|
21
53
|
}
|
|
22
54
|
resolve(stdout);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CorsOptions } from 'cors';
|
|
2
|
-
import { ConfigService } from '@nestjs/config';
|
|
3
2
|
|
|
4
3
|
/** Build CorsOptions from env; supports wildcards like https://*.example.com */
|
|
5
|
-
export function buildDefaultCorsOptions(
|
|
6
|
-
const rawOrigins =
|
|
4
|
+
export function buildDefaultCorsOptions(): CorsOptions {
|
|
5
|
+
const rawOrigins = process.env.SECURITY_CORS_ORIGINS ?? '*';
|
|
6
|
+
|
|
7
7
|
const allowed = rawOrigins.split(',').map(s => s.trim()).filter(Boolean);
|
|
8
8
|
|
|
9
9
|
const escapeRx = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
@@ -68,7 +68,6 @@ export class ErrorMapperService {
|
|
|
68
68
|
for (const p of providers) {
|
|
69
69
|
try {
|
|
70
70
|
const rules = p.rules() ?? [];
|
|
71
|
-
// Optional: namespace collision check can be added here if desired
|
|
72
71
|
all.push(...rules);
|
|
73
72
|
} catch (e) {
|
|
74
73
|
this.logger.warn(`ErrorCodeProvider.rules() failed for ${p.name?.()}: ${e}`);
|
|
@@ -77,13 +77,13 @@ export class ManyToOneRelationFieldCrudManager implements FieldCrudManager {
|
|
|
77
77
|
if (isNotEmpty(fieldId)) {
|
|
78
78
|
dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ id: fieldId });
|
|
79
79
|
if (this.options.required && isEmpty(dto[this.options.fieldName])) {
|
|
80
|
-
throw new Error(`
|
|
80
|
+
throw new Error(`Field ${this.options.fieldName} resolution failed. Record with id: ${fieldId} not found in ${this.options.relationCoModelSingularName}`);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
84
|
dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ [this.options.relationCoModelUserKeyFieldName]: fieldUserKeyValue });
|
|
85
85
|
if (this.options.required && isEmpty(dto[this.options.fieldName])) {
|
|
86
|
-
throw new Error(`
|
|
86
|
+
throw new Error(`Field ${this.options.fieldName} resolution failed. Record with userKey: ${this.options.relationCoModelUserKeyFieldName}: ${fieldUserKeyValue} not found in ${this.options.relationCoModelSingularName}`);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { ConfigType } from "@nestjs/config";
|
|
2
|
-
import { iamConfig } from "src/config/iam.config";
|
|
3
1
|
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export type GoogleAuthConfiguration = {
|
|
3
|
+
clientID: String,
|
|
4
|
+
clientSecret: String,
|
|
5
|
+
callbackURL: String,
|
|
6
|
+
redirectURL: String
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isGoogleOAuthConfigured(googleOauthConfig: GoogleAuthConfiguration): boolean {
|
|
10
|
+
|
|
11
|
+
return !!googleOauthConfig.clientID
|
|
8
12
|
&& !!googleOauthConfig.clientSecret && !!googleOauthConfig.callbackURL && !!googleOauthConfig.redirectURL;
|
|
9
|
-
|
|
13
|
+
}
|
|
@@ -32,7 +32,7 @@ export const getDynamicModuleNames = (): string[] => {
|
|
|
32
32
|
.map(dirent => dirent.name);
|
|
33
33
|
|
|
34
34
|
// logger.debug(`Enabled dynamic modules:`, enabledModules);
|
|
35
|
-
console.log(`Dynamic Modules Are:`, enabledModules);
|
|
35
|
+
// console.log(`Dynamic Modules Are:`, enabledModules);
|
|
36
36
|
|
|
37
37
|
return enabledModules;
|
|
38
38
|
}
|
|
@@ -67,7 +67,7 @@ export const getDynamicModuleNamesBasedOnMetadata = (): string[] => {
|
|
|
67
67
|
.map(dirent => dirent.name);
|
|
68
68
|
|
|
69
69
|
// logger.debug(`Enabled dynamic modules basis src:`, enabledModules);
|
|
70
|
-
console.log(`Src Based Dynamic Modules Are:`, enabledModules);
|
|
70
|
+
// console.log(`Src Based Dynamic Modules Are:`, enabledModules);
|
|
71
71
|
return enabledModules;
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { snakeCase } from "lodash";
|
|
3
3
|
import { FieldMetadata } from 'src/entities/field-metadata.entity';
|
|
4
|
-
import { CommandService } from './command.service';
|
|
4
|
+
import { CommandService, CommandWithArgs } from './command.service';
|
|
5
5
|
import { SolidRegistry } from './solid-registry';
|
|
6
6
|
|
|
7
7
|
export const ADD_MODULE_COMMAND = 'add-module';
|
|
@@ -17,7 +17,7 @@ type ModelAndFieldGenerationOptions = {
|
|
|
17
17
|
table?: string;
|
|
18
18
|
dataSource: string;
|
|
19
19
|
modelEnableSoftDelete?: boolean;
|
|
20
|
-
parentModel?: string;
|
|
20
|
+
parentModel?: string;
|
|
21
21
|
parentModule?: string;
|
|
22
22
|
draftPublishWorkflowEnabled?: boolean;
|
|
23
23
|
isLegacyTable?: boolean;
|
|
@@ -33,6 +33,8 @@ export const REFRESH_MODEL_COMMAND = 'refresh-model';
|
|
|
33
33
|
export class SchematicService {
|
|
34
34
|
private readonly logger = new Logger(SchematicService.name);
|
|
35
35
|
private readonly SCHEMATIC_PROJECT = '@solidstarters/solid-code-builder';
|
|
36
|
+
private readonly SCHEMATICS_COMMAND = 'schematics';
|
|
37
|
+
|
|
36
38
|
constructor(private readonly commandService: CommandService, private readonly solidRegistry: SolidRegistry) { }
|
|
37
39
|
|
|
38
40
|
async executeSchematicCommand(
|
|
@@ -40,91 +42,95 @@ export class SchematicService {
|
|
|
40
42
|
options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
|
|
41
43
|
debug = false,
|
|
42
44
|
): Promise<string> {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
);
|
|
45
|
+
const commandWithArgs = this.generateSchematicCommand(command, options, debug);
|
|
46
|
+
return await this.commandService.executeCommandWithArgs(commandWithArgs);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
private generateSchematicCommand(
|
|
49
50
|
command: string,
|
|
50
51
|
options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
|
|
51
52
|
debug: boolean,
|
|
52
|
-
):
|
|
53
|
-
const
|
|
53
|
+
): CommandWithArgs {
|
|
54
|
+
const schematicName = `${this.SCHEMATIC_PROJECT}:${command}`;
|
|
55
|
+
const baseArgs = [schematicName, `--debug=${debug}`];
|
|
56
|
+
|
|
54
57
|
if (
|
|
55
58
|
command === REMOVE_FIELDS_COMMAND ||
|
|
56
59
|
command === REFRESH_MODEL_COMMAND
|
|
57
60
|
) {
|
|
58
|
-
const {fields, ...modelSpecificOptions} = options as ModelAndFieldGenerationOptions;
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
this.logger.debug('schematicCommand',
|
|
63
|
-
return
|
|
61
|
+
const { fields, ...modelSpecificOptions } = options as ModelAndFieldGenerationOptions;
|
|
62
|
+
const modelArgs = this.buildModelGenerationArgs(modelSpecificOptions);
|
|
63
|
+
const fieldArgs = this.buildFieldGenerationArgs(fields);
|
|
64
|
+
const args = [...baseArgs, ...modelArgs, ...fieldArgs];
|
|
65
|
+
this.logger.debug('schematicCommand args', args);
|
|
66
|
+
return { command: this.SCHEMATICS_COMMAND, args };
|
|
64
67
|
} else if (command === ADD_MODULE_COMMAND) {
|
|
65
68
|
const moduleOptions = options as GenerateModuleOptions;
|
|
66
|
-
const
|
|
67
|
-
this.logger.debug('schematicCommand',
|
|
68
|
-
return
|
|
69
|
+
const args = [...baseArgs, `--module=${moduleOptions.module}`];
|
|
70
|
+
this.logger.debug('schematicCommand args', args);
|
|
71
|
+
return { command: this.SCHEMATICS_COMMAND, args };
|
|
69
72
|
} else {
|
|
70
73
|
throw new Error('Schematic command not supported.');
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
|
|
74
|
-
private
|
|
77
|
+
private buildFieldGenerationArgs(fields: FieldMetadata[]): string[] {
|
|
75
78
|
return fields
|
|
76
79
|
.filter((field) => {
|
|
77
80
|
return !this.solidRegistry.getCommonEntityKeys().map(key => key.toString()).includes(field.name);
|
|
78
81
|
})
|
|
79
82
|
.map((field) => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
// Using argument array eliminates the need for shell-specific quoting
|
|
84
|
+
return `--fields=${JSON.stringify(field)}`;
|
|
85
|
+
});
|
|
83
86
|
}
|
|
84
87
|
|
|
85
|
-
private
|
|
86
|
-
|
|
88
|
+
private buildModelGenerationArgs(modelSpecificOptions: ModelGenerationOptions): string[] {
|
|
89
|
+
const args: string[] = [
|
|
90
|
+
`--module=${modelSpecificOptions.module}`,
|
|
91
|
+
`--model=${modelSpecificOptions.model}`,
|
|
92
|
+
];
|
|
87
93
|
|
|
88
|
-
// Make below options code generate i.e if option exists then add to command with proper casing
|
|
89
94
|
if (modelSpecificOptions.moduleDisplayName) {
|
|
90
|
-
|
|
95
|
+
args.push(`--module-display-name=${snakeCase(modelSpecificOptions.moduleDisplayName)}`);
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
if (modelSpecificOptions.table) {
|
|
94
|
-
|
|
99
|
+
args.push(`--table=${modelSpecificOptions.table}`);
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
if (modelSpecificOptions.dataSource) {
|
|
98
|
-
|
|
103
|
+
args.push(`--data-source=${modelSpecificOptions.dataSource}`);
|
|
99
104
|
}
|
|
100
105
|
|
|
101
106
|
if (modelSpecificOptions.modelEnableSoftDelete) {
|
|
102
|
-
|
|
107
|
+
args.push(`--model-enable-soft-delete=${modelSpecificOptions.modelEnableSoftDelete}`);
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
if (modelSpecificOptions.parentModel) {
|
|
106
|
-
|
|
111
|
+
args.push(`--parent-model=${modelSpecificOptions.parentModel}`);
|
|
107
112
|
}
|
|
113
|
+
|
|
108
114
|
if (modelSpecificOptions.parentModule) {
|
|
109
|
-
|
|
115
|
+
args.push(`--parent-module=${modelSpecificOptions.parentModule}`);
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
if (modelSpecificOptions.draftPublishWorkflowEnabled) {
|
|
113
|
-
|
|
119
|
+
args.push(`--draft-publish-workflow-enabled=${modelSpecificOptions.draftPublishWorkflowEnabled}`);
|
|
114
120
|
}
|
|
115
121
|
|
|
116
122
|
if (modelSpecificOptions.isLegacyTable) {
|
|
117
|
-
|
|
123
|
+
args.push(`--is-legacy-table=${modelSpecificOptions.isLegacyTable}`);
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
if (modelSpecificOptions.isLegacyTableWithId) {
|
|
121
|
-
|
|
127
|
+
args.push(`--is-legacy-table-with-id=${modelSpecificOptions.isLegacyTableWithId}`);
|
|
122
128
|
}
|
|
123
129
|
|
|
124
130
|
if (modelSpecificOptions.dataSourceType) {
|
|
125
|
-
|
|
131
|
+
args.push(`--data-source-type=${modelSpecificOptions.dataSourceType}`);
|
|
126
132
|
}
|
|
127
|
-
|
|
128
|
-
return
|
|
133
|
+
|
|
134
|
+
return args;
|
|
129
135
|
}
|
|
130
136
|
}
|