@solidstarters/solid-core 1.2.203 → 1.2.206
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 +2 -11
- 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/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-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-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/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/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/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/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/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 +23 -23
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +98 -4
- 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/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 +159 -114
- 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/file-service.interface.d.ts +22 -0
- package/dist/services/file/file-service.interface.d.ts.map +1 -0
- package/dist/services/file/file-service.interface.js +5 -0
- package/dist/services/file/file-service.interface.js.map +1 -0
- 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 +11 -12
- 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/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/selection-providers/list-of-roles-selectionproviders.service.d.ts +15 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.d.ts.map +1 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js +59 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js.map +1 -0
- 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 +11 -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/package.json +1 -1
- package/src/commands/info.command.ts +101 -0
- package/src/commands/mcp.command.ts +3 -17
- package/src/commands/seed.command.ts +4 -16
- 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/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-setting.dto.ts +14 -1
- package/src/dtos/update-setting.dto.ts +14 -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/cors.helper.ts +3 -3
- package/src/helpers/error-mapper.service.ts +0 -1
- package/src/helpers/google-oauth.helper.ts +11 -7
- package/src/helpers/module.helper.ts +2 -2
- 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/seeders/email-template-seeder.service.ts +6 -4
- package/src/seeders/module-metadata-seeder.service.ts +40 -28
- package/src/seeders/seed-data/solid-core-metadata.json +99 -5
- package/src/seeders/sms-template-seeder.service.ts +6 -4
- package/src/services/action-metadata.service.ts +4 -16
- package/src/services/ai-interaction.service.ts +6 -17
- package/src/services/authentication.service.ts +173 -111
- 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/file-service.interface.ts +74 -0
- package/src/services/file.service.ts +10 -7
- 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/security-rule.service.ts +4 -16
- package/src/services/selection-providers/list-of-roles-selectionproviders.service.ts +69 -0
- 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 +19 -49
- package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
- 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/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
|
@@ -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
|
}
|
|
@@ -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,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}`);
|
|
@@ -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
|
|
|
@@ -5,11 +5,12 @@ import { CommonEntity } from 'src/entities/common.entity';
|
|
|
5
5
|
import { Locale } from 'src/entities/locale.entity';
|
|
6
6
|
import { SecurityRule } from 'src/entities/security-rule.entity';
|
|
7
7
|
import { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';
|
|
8
|
-
import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
|
|
8
|
+
import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule, ISettingsProvider, SettingDefinition } from "../interfaces";
|
|
9
9
|
import { DatasourceType } from 'src/dtos/create-model-metadata.dto';
|
|
10
10
|
import { ObjectLiteral } from 'typeorm';
|
|
11
11
|
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
|
|
12
12
|
import { RelationMetadata } from 'typeorm/metadata/RelationMetadata';
|
|
13
|
+
import { Setting } from 'src/entities/setting.entity';
|
|
13
14
|
|
|
14
15
|
type ControllerMetadata = {
|
|
15
16
|
name: string;
|
|
@@ -84,6 +85,7 @@ export class SolidRegistry {
|
|
|
84
85
|
private smsProviders: Set<InstanceWrapper> = new Set();
|
|
85
86
|
private securityRuleConfigProviders: Set<InstanceWrapper> = new Set();
|
|
86
87
|
private errorCodeProviders: Set<InstanceWrapper> = new Set();
|
|
88
|
+
private settingsProviders: Set<InstanceWrapper> = new Set();
|
|
87
89
|
|
|
88
90
|
registerErrorCodeProvider(errorCodeProvider: InstanceWrapper): void {
|
|
89
91
|
this.errorCodeProviders.add(errorCodeProvider);
|
|
@@ -145,6 +147,37 @@ export class SolidRegistry {
|
|
|
145
147
|
this.modules = new Set(modules);
|
|
146
148
|
}
|
|
147
149
|
|
|
150
|
+
registerSettingsProvider(provider: InstanceWrapper) {
|
|
151
|
+
this.settingsProviders.add(provider);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
registerSecurityRules(securityRules: SecurityRule[]) {
|
|
155
|
+
this.securityRules = securityRules;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
registerlocales(locales: Locale[]) {
|
|
159
|
+
this.locales = locales;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {
|
|
163
|
+
this.computedFieldMetadata = computedFieldMetadata;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
getSettingsProviders(): InstanceWrapper[] {
|
|
167
|
+
return Array.from(this.settingsProviders);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getSettingsProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {
|
|
171
|
+
const settingsProviders = this.getSettingsProviders();
|
|
172
|
+
|
|
173
|
+
for (let i = 0; i < settingsProviders.length; i++) {
|
|
174
|
+
const settingsProvider = settingsProviders[i];
|
|
175
|
+
if (settingsProvider.instance.name() === name) {
|
|
176
|
+
return settingsProvider.instance;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
148
181
|
getMailProviders(): Array<InstanceWrapper> {
|
|
149
182
|
return Array.from(this.mailProviders);
|
|
150
183
|
}
|
|
@@ -236,10 +269,8 @@ export class SolidRegistry {
|
|
|
236
269
|
return dasbhoardQuestionDataProvider.instance;
|
|
237
270
|
}
|
|
238
271
|
}
|
|
239
|
-
|
|
240
272
|
}
|
|
241
273
|
|
|
242
|
-
|
|
243
274
|
getComputedFieldProviders(): Array<InstanceWrapper> {
|
|
244
275
|
return Array.from(this.computedFieldProviders);
|
|
245
276
|
}
|
|
@@ -291,18 +322,6 @@ export class SolidRegistry {
|
|
|
291
322
|
return module
|
|
292
323
|
}
|
|
293
324
|
|
|
294
|
-
registerSecurityRules(securityRules: SecurityRule[]) {
|
|
295
|
-
this.securityRules = securityRules;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
registerlocales(locales: Locale[]) {
|
|
299
|
-
this.locales = locales;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {
|
|
303
|
-
this.computedFieldMetadata = computedFieldMetadata;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
325
|
getComputedFieldMetadata(): ComputedFieldMetadata[] {
|
|
307
326
|
return this.computedFieldMetadata;
|
|
308
327
|
}
|
|
@@ -328,4 +347,14 @@ export class SolidRegistry {
|
|
|
328
347
|
// return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];
|
|
329
348
|
}
|
|
330
349
|
|
|
331
|
-
|
|
350
|
+
|
|
351
|
+
getAllSettingsProviderInstance<T extends ISelectionProviderContext>(): ISelectionProvider<T> {
|
|
352
|
+
const settingsProviders = this.getSettingsProviders();
|
|
353
|
+
|
|
354
|
+
for (let i = 0; i < settingsProviders.length; i++) {
|
|
355
|
+
const settingsProvider = settingsProviders[i];
|
|
356
|
+
return settingsProvider.instance;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
package/src/index.ts
CHANGED
|
@@ -4,9 +4,6 @@ export * from './commands/refresh-module.command'
|
|
|
4
4
|
export * from './commands/remove-fields.command'
|
|
5
5
|
export * from './commands/seed.command'
|
|
6
6
|
|
|
7
|
-
export * from './config/app-builder.config'
|
|
8
|
-
export {default as commonConfig} from './config/common.config'
|
|
9
|
-
export * from './config/iam.config'
|
|
10
7
|
export * from './config/cache.options'
|
|
11
8
|
|
|
12
9
|
export * from './decorators/active-user.decorator'
|
|
@@ -25,6 +22,7 @@ export * from './decorators/solid-service.decorator'
|
|
|
25
22
|
export * from './decorators/mail-provider.decorator'
|
|
26
23
|
export * from './decorators/security-rule-config-provider.decorator'
|
|
27
24
|
export * from './decorators/sms-provider.decorator'
|
|
25
|
+
export * from './decorators/settings-provider.decorator'
|
|
28
26
|
|
|
29
27
|
export * from './dtos/post-chatter-message.dto'
|
|
30
28
|
export * from './dtos/security-rule-config.dto'
|
|
@@ -236,7 +234,6 @@ export * from './services/hashing.service'
|
|
|
236
234
|
export * from './services/list-of-values.service'
|
|
237
235
|
export * from './services/mail/elastic-email.service'
|
|
238
236
|
export * from './services/mail/smtp-email.service'
|
|
239
|
-
export * from './services/media-storage-provider-metadata-seeder.service'
|
|
240
237
|
export * from './services/media-storage-provider-metadata.service'
|
|
241
238
|
export * from './services/media.service'
|
|
242
239
|
export * from './services/mediaStorageProviders/file-s3-storage-provider'
|
|
@@ -267,6 +264,7 @@ export * from './services/user.service'
|
|
|
267
264
|
export * from './services/view-metadata.service'
|
|
268
265
|
export * from './services/whatsapp/Msg91WhatsappService' //rename
|
|
269
266
|
export * from './services/setting.service'
|
|
267
|
+
export * from './services/settings/default-settings-provider.service'
|
|
270
268
|
export * from './services/security-rule.service'
|
|
271
269
|
export * from './services/request-context.service'
|
|
272
270
|
export * from './services/chatter-message.service'
|
package/src/interfaces.ts
CHANGED
|
@@ -58,6 +58,25 @@ export interface ModuleMetadataConfiguration {
|
|
|
58
58
|
dashboards?: CreateDashboardDto[],
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
export enum SettingLevel {
|
|
62
|
+
SystemEnv = 'system-env',
|
|
63
|
+
SystemAdminReadonly = 'system-admin-readonly',
|
|
64
|
+
SystemAdminEditable = 'system-admin-editable',
|
|
65
|
+
InternalUser = "internal-user"
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface SettingDefinition<T = any> {
|
|
69
|
+
moduleName: string;
|
|
70
|
+
key: string;
|
|
71
|
+
value: T;
|
|
72
|
+
level: SettingLevel;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// solid-core/settings/settings-provider.interface.ts
|
|
76
|
+
export interface ISettingsProvider {
|
|
77
|
+
getSettings(): SettingDefinition[];
|
|
78
|
+
}
|
|
79
|
+
|
|
61
80
|
export interface CodeGenerationOptions {
|
|
62
81
|
moduleId?: number;
|
|
63
82
|
moduleUserKey?: string;
|
|
@@ -355,3 +374,13 @@ export interface McpComputedProviderResponse {
|
|
|
355
374
|
export interface ISecurityRuleConfigProvider {
|
|
356
375
|
securityRuleConfig(activeUser: ActiveUserData, securityRule: SecurityRule): Promise<SecurityRuleConfig>;
|
|
357
376
|
}
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
export interface AwsS3Config {
|
|
380
|
+
S3_AWS_ACCESS_KEY: string;
|
|
381
|
+
S3_AWS_SECRET_KEY: string;
|
|
382
|
+
S3_AWS_REGION_NAME: string;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// Prevents inference so callers must provide explicit type arguments; reusable for other APIs.
|
|
386
|
+
export type NoInfer<T> = [T][T extends any ? 0 : never];
|
|
@@ -2,9 +2,8 @@ import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
|
2
2
|
import { ConfigType } from '@nestjs/config';
|
|
3
3
|
import { AuthGuard, PassportStrategy } from '@nestjs/passport';
|
|
4
4
|
import { Strategy, VerifyCallback } from 'passport-google-oauth2';
|
|
5
|
-
import { isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
|
|
5
|
+
import { GoogleAuthConfiguration, isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
|
|
6
6
|
import { v4 as uuid } from 'uuid';
|
|
7
|
-
import { iamConfig } from '../config/iam.config';
|
|
8
7
|
import { UserService } from '../services/user.service';
|
|
9
8
|
|
|
10
9
|
const DUMMY_CLIENT_ID = 'DUMMY_CLIENT_ID';
|
|
@@ -19,19 +18,23 @@ export class GoogleOauthGuard extends AuthGuard('google') { }
|
|
|
19
18
|
export class GoogleOauthStrategy extends PassportStrategy(Strategy, 'google') {
|
|
20
19
|
private readonly logger = new Logger(GoogleOauthStrategy.name);
|
|
21
20
|
constructor(
|
|
22
|
-
@Inject(iamConfig.KEY) private iamConfiguration: ConfigType<typeof iamConfig>,
|
|
23
21
|
private readonly userService: UserService
|
|
24
22
|
) {
|
|
25
23
|
// TODO: Have added default dummy values for the configuration, since the configuration is not mandatory.
|
|
26
24
|
// Perhaps a cleaner way needs to be figured out
|
|
27
25
|
super({
|
|
28
|
-
clientID:
|
|
29
|
-
clientSecret:
|
|
30
|
-
callbackURL:
|
|
26
|
+
clientID: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID ?? DUMMY_CLIENT_ID,
|
|
27
|
+
clientSecret: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET ?? DUMMY_CLIENT_SECRET,
|
|
28
|
+
callbackURL: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL ?? DUMMY_CALLBACK_URL,
|
|
31
29
|
scope: ['profile', 'email'],
|
|
32
30
|
});
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
const googleOauth: GoogleAuthConfiguration = {
|
|
32
|
+
clientID: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,
|
|
33
|
+
clientSecret: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET,
|
|
34
|
+
callbackURL: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL,
|
|
35
|
+
redirectURL: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL,
|
|
36
|
+
}
|
|
37
|
+
if (!isGoogleOAuthConfigured(googleOauth)) {
|
|
35
38
|
this.logger.debug('Google OAuth strategy is not configured');
|
|
36
39
|
}
|
|
37
40
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
4
5
|
|
|
5
6
|
import { ConfigType } from '@nestjs/config';
|
|
6
7
|
import { EmailTemplateService } from '../services/email-template.service';
|
|
7
|
-
import commonConfig from '../config/common.config';
|
|
8
8
|
import { CreateEmailTemplateDto } from '../dtos/create-email-template.dto';
|
|
9
|
+
import { SettingService } from 'src/services/setting.service';
|
|
9
10
|
|
|
10
11
|
@Injectable()
|
|
11
12
|
export class EmailTemplateSeederService {
|
|
@@ -13,13 +14,14 @@ export class EmailTemplateSeederService {
|
|
|
13
14
|
|
|
14
15
|
constructor(
|
|
15
16
|
private readonly emailTemplateService: EmailTemplateService,
|
|
16
|
-
|
|
17
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
17
|
+
private readonly settingService: SettingService
|
|
18
18
|
) { }
|
|
19
19
|
|
|
20
20
|
async seed() {
|
|
21
21
|
// Read the module metadata from a file specified in the .env
|
|
22
|
-
const
|
|
22
|
+
const seedDataFileVariable = this.settingService.getConfigValue<SolidCoreSetting>("emailTemplateSeederFiles");
|
|
23
|
+
const seedDataFiles = seedDataFileVariable.split(',');
|
|
24
|
+
|
|
23
25
|
for (let i = 0; i < seedDataFiles.length; i++) {
|
|
24
26
|
const seedDataFile = seedDataFiles[i];
|
|
25
27
|
const fullPath = path.join(process.cwd(), seedDataFile);
|