@solidstarters/solid-core 1.2.204 → 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/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/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/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/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
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Readable } from 'stream';
|
|
2
|
+
|
|
3
|
+
export interface WriteOptions {
|
|
4
|
+
contentType?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface CopyOptions {
|
|
8
|
+
contentType?: string;
|
|
9
|
+
/** Whether to overwrite existing file (default: true) */
|
|
10
|
+
overwrite?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface UrlOptions {
|
|
14
|
+
/** Expiry time in seconds (relevant for S3 signed URLs) */
|
|
15
|
+
expiresIn?: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Unified interface for file operations.
|
|
20
|
+
* Implementations: DiskFileService, S3FileService
|
|
21
|
+
*/
|
|
22
|
+
export interface IFileService {
|
|
23
|
+
/**
|
|
24
|
+
* Read file contents as Buffer
|
|
25
|
+
* @param path - File path (disk) or key (S3)
|
|
26
|
+
*/
|
|
27
|
+
read(path: string): Promise<Buffer>;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Write data to a file
|
|
31
|
+
* @param path - File path (disk) or key (S3)
|
|
32
|
+
* @param data - Content to write
|
|
33
|
+
* @param options - Optional write options (e.g., contentType for S3)
|
|
34
|
+
*/
|
|
35
|
+
write(path: string, data: Buffer | string, options?: WriteOptions): Promise<void>;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Write a stream to a file
|
|
39
|
+
* @param path - File path (disk) or key (S3)
|
|
40
|
+
* @param stream - Readable stream
|
|
41
|
+
* @param options - Optional write options (e.g., contentType for S3)
|
|
42
|
+
*/
|
|
43
|
+
writeStream(path: string, stream: Readable, options?: WriteOptions): Promise<void>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Delete a file
|
|
47
|
+
* @param path - File path (disk) or key (S3)
|
|
48
|
+
*/
|
|
49
|
+
delete(path: string): Promise<void>;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Check if file exists
|
|
53
|
+
* @param path - File path (disk) or key (S3)
|
|
54
|
+
*/
|
|
55
|
+
exists(path: string): Promise<boolean>;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Copy a file from source to destination
|
|
59
|
+
* @param sourcePath - Source file path
|
|
60
|
+
* @param destinationPath - Destination file path
|
|
61
|
+
* @param options - Optional copy options
|
|
62
|
+
*/
|
|
63
|
+
copy(sourcePath: string, destinationPath: string, options?: CopyOptions): Promise<void>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Get an accessible URL for the file
|
|
67
|
+
* For S3: returns signed URL; For disk: returns the file path
|
|
68
|
+
* @param path - File path (disk) or key (S3)
|
|
69
|
+
* @param options - URL options (e.g., expiresIn for S3)
|
|
70
|
+
*/
|
|
71
|
+
getUrl(path: string, options?: UrlOptions): Promise<string>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const FILE_SERVICE = Symbol('FILE_SERVICE');
|
|
@@ -3,11 +3,11 @@ import * as fs from 'fs';
|
|
|
3
3
|
// import * as AWS from 'aws-sdk';
|
|
4
4
|
import { S3Client, PutObjectCommand, DeleteObjectCommand, ObjectCannedACL, GetObjectCommand } from '@aws-sdk/client-s3';
|
|
5
5
|
import { ConfigType } from '@nestjs/config';
|
|
6
|
-
import commonConfig, { AwsS3Config } from '../config/common.config';
|
|
7
6
|
import path from 'path';
|
|
8
7
|
import { Readable } from 'stream';
|
|
9
8
|
import { getSignedUrl as awsGetSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
10
9
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
10
|
+
import { AwsS3Config } from 'src/interfaces';
|
|
11
11
|
|
|
12
12
|
@Injectable()
|
|
13
13
|
export class FileService {
|
|
@@ -16,16 +16,19 @@ export class FileService {
|
|
|
16
16
|
private readonly logger = new Logger(FileService.name);
|
|
17
17
|
|
|
18
18
|
constructor(
|
|
19
|
-
@Inject(commonConfig.KEY)
|
|
20
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
21
19
|
|
|
22
20
|
) {
|
|
23
|
-
|
|
21
|
+
const awsS3Credentials = {
|
|
22
|
+
S3_AWS_ACCESS_KEY: process.env.S3_AWS_ACCESS_KEY,
|
|
23
|
+
S3_AWS_SECRET_KEY: process.env.S3_AWS_SECRET_KEY,
|
|
24
|
+
S3_AWS_REGION_NAME: process.env.S3_AWS_REGION_NAME
|
|
25
|
+
}
|
|
26
|
+
if (!this.isValidS3Config(awsS3Credentials)) { return }
|
|
24
27
|
this.s3Client = new S3Client({
|
|
25
|
-
region:
|
|
28
|
+
region: process.env.S3_AWS_REGION_NAME,
|
|
26
29
|
credentials: {
|
|
27
|
-
accessKeyId:
|
|
28
|
-
secretAccessKey:
|
|
30
|
+
accessKeyId: process.env.S3_AWS_ACCESS_KEY,
|
|
31
|
+
secretAccessKey: process.env.S3_AWS_SECRET_KEY,
|
|
29
32
|
},
|
|
30
33
|
});
|
|
31
34
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
2
3
|
|
|
3
4
|
import { r2rClient } from 'r2r-js';
|
|
5
|
+
import { SettingService } from '../setting.service';
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
|
|
@@ -8,17 +10,19 @@ import { r2rClient } from 'r2r-js';
|
|
|
8
10
|
export class R2RHelperService {
|
|
9
11
|
private readonly logger = new Logger(R2RHelperService.name);
|
|
10
12
|
|
|
11
|
-
constructor() { }
|
|
13
|
+
constructor(private readonly settingService: SettingService) { }
|
|
12
14
|
|
|
13
15
|
async getClient() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
const ragServerUrl = this.settingService.getConfigValue<SolidCoreSetting>('ragServerUrl');
|
|
17
|
+
this.logger.debug(`Attempting to create RAG client with url: ${ragServerUrl}`);
|
|
18
|
+
const client = new r2rClient(ragServerUrl);
|
|
16
19
|
|
|
20
|
+
const ragServerLogin = this.settingService.getConfigValue<SolidCoreSetting>('ragServerLogin');
|
|
17
21
|
// @ts-ignore
|
|
18
|
-
this.logger.debug(`Attempting to login to our RAG server with user ${
|
|
22
|
+
this.logger.debug(`Attempting to login to our RAG server with user ${ragServerLogin}`)
|
|
19
23
|
await client.users.login({
|
|
20
|
-
email:
|
|
21
|
-
password:
|
|
24
|
+
email: ragServerLogin,
|
|
25
|
+
password: this.settingService.getConfigValue<SolidCoreSetting>('ragServerPassword')
|
|
22
26
|
});
|
|
23
27
|
|
|
24
28
|
return client;
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InjectEntityManager
|
|
3
|
-
import {
|
|
4
|
-
import { EntityManager
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
3
|
+
import { ModuleRef } from "@nestjs/core";
|
|
4
|
+
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
6
|
import { CRUDService } from 'src/services/crud.service';
|
|
7
|
-
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
8
|
-
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
9
|
-
import { ConfigService } from '@nestjs/config';
|
|
10
|
-
import { FileService } from 'src/services/file.service';
|
|
11
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
12
7
|
|
|
13
8
|
|
|
14
9
|
import { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';
|
|
@@ -17,13 +12,6 @@ import { ImportTransactionErrorLogRepository } from 'src/repository/import-trans
|
|
|
17
12
|
@Injectable()
|
|
18
13
|
export class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{
|
|
19
14
|
constructor(
|
|
20
|
-
@Inject(forwardRef(() => ModelMetadataService))
|
|
21
|
-
readonly modelMetadataService: ModelMetadataService,
|
|
22
|
-
readonly moduleMetadataService: ModuleMetadataService,
|
|
23
|
-
readonly configService: ConfigService,
|
|
24
|
-
readonly fileService: FileService,
|
|
25
|
-
readonly discoveryService: DiscoveryService,
|
|
26
|
-
readonly crudHelperService: CrudHelperService,
|
|
27
15
|
@InjectEntityManager()
|
|
28
16
|
readonly entityManager: EntityManager,
|
|
29
17
|
// @InjectRepository(ImportTransactionErrorLog, 'default')
|
|
@@ -32,6 +20,6 @@ export class ImportTransactionErrorLogService extends CRUDService<ImportTransact
|
|
|
32
20
|
readonly moduleRef: ModuleRef
|
|
33
21
|
|
|
34
22
|
) {
|
|
35
|
-
super(
|
|
23
|
+
super(entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);
|
|
36
24
|
}
|
|
37
25
|
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { BadRequestException, ForbiddenException,
|
|
2
|
-
import {
|
|
1
|
+
import { BadRequestException, ForbiddenException, Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import { ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
-
import { ConfigService } from '@nestjs/config';
|
|
7
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
8
6
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
|
-
import { FileService } from 'src/services/file.service';
|
|
10
|
-
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
|
-
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
12
7
|
|
|
13
8
|
|
|
14
9
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
@@ -94,13 +89,6 @@ interface ImportRecordsResult {
|
|
|
94
89
|
@Injectable()
|
|
95
90
|
export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
96
91
|
constructor(
|
|
97
|
-
@Inject(forwardRef(() => ModelMetadataService))
|
|
98
|
-
readonly modelMetadataService: ModelMetadataService,
|
|
99
|
-
readonly moduleMetadataService: ModuleMetadataService,
|
|
100
|
-
readonly configService: ConfigService,
|
|
101
|
-
readonly fileService: FileService,
|
|
102
|
-
readonly discoveryService: DiscoveryService,
|
|
103
|
-
readonly crudHelperService: CrudHelperService,
|
|
104
92
|
@InjectEntityManager()
|
|
105
93
|
readonly entityManager: EntityManager,
|
|
106
94
|
// @InjectRepository(ImportTransaction, 'default')
|
|
@@ -114,7 +102,7 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
114
102
|
private readonly modelMetadataHelperService: ModelMetadataHelperService,
|
|
115
103
|
// readonly fieldMetadataService: FieldMetadataService,
|
|
116
104
|
) {
|
|
117
|
-
super(
|
|
105
|
+
super(entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
|
|
118
106
|
}
|
|
119
107
|
|
|
120
108
|
private readonly logger = new Logger(ImportTransactionService.name);
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
-
import { ConfigService } from '@nestjs/config';
|
|
7
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
8
6
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
|
-
import { FileService } from 'src/services/file.service';
|
|
10
|
-
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
|
-
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
12
7
|
|
|
13
8
|
|
|
14
9
|
import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
|
|
@@ -24,14 +19,6 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
|
|
|
24
19
|
// moduleMetadataHelperService: any;
|
|
25
20
|
// listOfValuesMapper: any;
|
|
26
21
|
constructor(
|
|
27
|
-
@Inject(forwardRef(() => ModelMetadataService))
|
|
28
|
-
readonly modelMetadataService: ModelMetadataService,
|
|
29
|
-
readonly moduleMetadataService: ModuleMetadataService,
|
|
30
|
-
readonly configService: ConfigService,
|
|
31
|
-
readonly fileService: FileService,
|
|
32
|
-
readonly discoveryService: DiscoveryService,
|
|
33
|
-
readonly crudHelperService: CrudHelperService,
|
|
34
|
-
|
|
35
22
|
@InjectEntityManager()
|
|
36
23
|
readonly entityManager: EntityManager,
|
|
37
24
|
// @InjectRepository(ListOfValues, 'default')
|
|
@@ -42,7 +29,7 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
|
|
|
42
29
|
readonly listOfValuesMapper: ListOfValuesMapper,
|
|
43
30
|
|
|
44
31
|
) {
|
|
45
|
-
super(
|
|
32
|
+
super(entityManager, repo, 'listOfValues', 'solid-core', moduleRef);
|
|
46
33
|
}
|
|
47
34
|
async findOneByValueAndType(lovValue: string, lovType: string) {
|
|
48
35
|
return await this.repo.findOne({
|
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
+
import { ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
-
import { ConfigService } from '@nestjs/config';
|
|
7
6
|
import { Locale } from 'src/entities/locale.entity';
|
|
8
7
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
9
8
|
import { LocaleRepository } from 'src/repository/locale.repository';
|
|
10
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
11
9
|
import { CRUDService } from 'src/services/crud.service';
|
|
12
|
-
import { FileService } from 'src/services/file.service';
|
|
13
|
-
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
14
|
-
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
15
10
|
import { RequestContextService } from './request-context.service';
|
|
16
11
|
@Injectable()
|
|
17
12
|
export class LocaleService extends CRUDService<Locale> implements OnApplicationBootstrap{
|
|
18
13
|
constructor(
|
|
19
|
-
@Inject(forwardRef(() => ModelMetadataService))
|
|
20
|
-
readonly modelMetadataService: ModelMetadataService,
|
|
21
|
-
readonly moduleMetadataService: ModuleMetadataService,
|
|
22
|
-
readonly configService: ConfigService,
|
|
23
|
-
readonly fileService: FileService,
|
|
24
|
-
readonly discoveryService: DiscoveryService,
|
|
25
|
-
readonly crudHelperService: CrudHelperService,
|
|
26
14
|
@InjectEntityManager()
|
|
27
15
|
readonly entityManager: EntityManager,
|
|
28
16
|
// @InjectRepository(Locale, 'default')
|
|
@@ -36,7 +24,7 @@ export class LocaleService extends CRUDService<Locale> implements OnApplicationB
|
|
|
36
24
|
readonly requestContextService: RequestContextService,
|
|
37
25
|
readonly solidRegistry: SolidRegistry,
|
|
38
26
|
) {
|
|
39
|
-
super(
|
|
27
|
+
super(entityManager, repo, 'locale', 'solid-core', moduleRef);
|
|
40
28
|
}
|
|
41
29
|
private readonly logger = new Logger(LocaleService.name)
|
|
42
30
|
onApplicationBootstrap() {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { ConfigType } from '@nestjs/config';
|
|
3
3
|
import Handlebars from "handlebars";
|
|
4
|
-
import commonConfig from 'src/config/common.config';
|
|
5
4
|
import { EmailAttachment } from 'src/entities/email-attachment.entity';
|
|
6
5
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
7
6
|
import { EmailTemplateService } from '../email-template.service';
|
|
@@ -10,6 +9,8 @@ import { FileService } from '../file.service';
|
|
|
10
9
|
import { IMail, MailAttachment, MailAttachmentWrapper } from "../../interfaces";
|
|
11
10
|
import { PublisherFactory } from '../queues/publisher-factory.service';
|
|
12
11
|
import { MailProvider } from 'src/decorators/mail-provider.decorator';
|
|
12
|
+
import { SettingService } from '../setting.service';
|
|
13
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
13
14
|
|
|
14
15
|
const ElasticEmail = require('@elasticemail/elasticemail-client');
|
|
15
16
|
|
|
@@ -20,17 +21,16 @@ export class ElasticEmailService implements IMail {
|
|
|
20
21
|
private readonly emailsApi;
|
|
21
22
|
|
|
22
23
|
constructor(
|
|
23
|
-
@Inject(commonConfig.KEY)
|
|
24
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
25
24
|
// private readonly emailPublisher: ApiEmailQueuePublisher,
|
|
26
25
|
private readonly publisherFactory: PublisherFactory<any>,
|
|
27
26
|
private readonly emailTemplateService: EmailTemplateService,
|
|
28
27
|
private readonly pdfService: PdfService,
|
|
29
28
|
private readonly fileService: FileService,
|
|
29
|
+
private readonly settingService: SettingService
|
|
30
30
|
) {
|
|
31
31
|
const client = ElasticEmail.ApiClient.instance;
|
|
32
32
|
const apikey = client.authentications['apikey'];
|
|
33
|
-
apikey.apiKey =
|
|
33
|
+
apikey.apiKey = process.env.COMMON_API_EMAIL_KEY;
|
|
34
34
|
this.emailsApi = new ElasticEmail.EmailsApi();
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -64,7 +64,7 @@ export class ElasticEmailService implements IMail {
|
|
|
64
64
|
async sendEmail(to: string, subject: string, body: string, shouldQueueEmails = false, parentEntity = null, parentEntityId = null, wrapperAttachments: MailAttachmentWrapper[] = []): Promise<void> {
|
|
65
65
|
const message = {
|
|
66
66
|
payload: {
|
|
67
|
-
from: this.
|
|
67
|
+
from: this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom"),
|
|
68
68
|
to: to,
|
|
69
69
|
subject: subject,
|
|
70
70
|
body: body,
|
|
@@ -79,7 +79,7 @@ export class ElasticEmailService implements IMail {
|
|
|
79
79
|
this.sendEmailAsynchronously(message);
|
|
80
80
|
}
|
|
81
81
|
// If developer has not, however system config mandates that we send using queue, still we send.
|
|
82
|
-
else if (shouldQueueEmails == false && this.
|
|
82
|
+
else if (shouldQueueEmails == false && this.settingService.getConfigValue<SolidCoreSetting>("shouldQueueEmails") === true) {
|
|
83
83
|
this.sendEmailAsynchronously(message);
|
|
84
84
|
}
|
|
85
85
|
// Else we send synch
|
|
@@ -88,7 +88,7 @@ export class ElasticEmailService implements IMail {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
sendEmailAsynchronously(message: QueueMessage<any>) {
|
|
92
92
|
const { to, subject, body } = message.payload;
|
|
93
93
|
// this.notificationPublisherService.publish(message);
|
|
94
94
|
// this.emailPublisher.publish(message);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { ConfigType } from '@nestjs/config';
|
|
3
3
|
import Handlebars from "handlebars";
|
|
4
|
-
import commonConfig from 'src/config/common.config';
|
|
5
4
|
import { MailProvider } from 'src/decorators/mail-provider.decorator';
|
|
6
5
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
7
6
|
import { IMail, MailAttachment, MailAttachmentWrapper } from "../../interfaces";
|
|
8
7
|
import { EmailTemplateService } from '../email-template.service';
|
|
9
8
|
import { PublisherFactory } from '../queues/publisher-factory.service';
|
|
9
|
+
import { SettingService } from '../setting.service';
|
|
10
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
10
11
|
|
|
11
12
|
const nodemailer = require("nodemailer");
|
|
12
13
|
|
|
@@ -17,20 +18,27 @@ export class SMTPEMailService implements IMail {
|
|
|
17
18
|
private readonly transporter: any;
|
|
18
19
|
|
|
19
20
|
constructor(
|
|
20
|
-
@Inject(commonConfig.KEY)
|
|
21
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
22
21
|
// private readonly emailPublisher: EmailQueuePublisher,
|
|
23
22
|
// private readonly emailDbPublisher: EmailQueueDbPublisher,
|
|
24
23
|
private readonly publisherFactory: PublisherFactory<any>,
|
|
25
24
|
private readonly emailTemplateService: EmailTemplateService,
|
|
25
|
+
private readonly settingService: SettingService
|
|
26
|
+
|
|
26
27
|
) {
|
|
28
|
+
|
|
29
|
+
const host = process.env.COMMON_SMTP_EMAIL_SMTP_HOST;
|
|
30
|
+
const port = +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587);
|
|
31
|
+
const username = process.env.COMMON_SMTP_EMAIL_USERNAME;
|
|
32
|
+
const password = process.env.COMMON_SMTP_EMAIL_PASSWORD;
|
|
33
|
+
const from = process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM;
|
|
34
|
+
|
|
27
35
|
this.transporter = nodemailer.createTransport({
|
|
28
|
-
host:
|
|
29
|
-
port:
|
|
30
|
-
secure:
|
|
36
|
+
host: host,
|
|
37
|
+
port: port,
|
|
38
|
+
secure: port === 465,
|
|
31
39
|
auth: {
|
|
32
|
-
user:
|
|
33
|
-
pass:
|
|
40
|
+
user: username,
|
|
41
|
+
pass: password
|
|
34
42
|
}
|
|
35
43
|
});
|
|
36
44
|
}
|
|
@@ -81,7 +89,7 @@ export class SMTPEMailService implements IMail {
|
|
|
81
89
|
) {
|
|
82
90
|
const message = {
|
|
83
91
|
payload: {
|
|
84
|
-
from: from || this.
|
|
92
|
+
from: from || this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom"),
|
|
85
93
|
to: to,
|
|
86
94
|
subject: subject,
|
|
87
95
|
body: body,
|
|
@@ -98,7 +106,7 @@ export class SMTPEMailService implements IMail {
|
|
|
98
106
|
return this.sendEmailAsynchronously(message);
|
|
99
107
|
}
|
|
100
108
|
// If developer has not, however system config mandates that we send using queue, still we send.
|
|
101
|
-
else if (shouldQueueEmails == false && this.
|
|
109
|
+
else if (shouldQueueEmails == false && this.settingService.getConfigValue<SolidCoreSetting>("shouldQueueEmails") === true) {
|
|
102
110
|
return this.sendEmailAsynchronously(message);
|
|
103
111
|
}
|
|
104
112
|
// Else we send synchronously
|
|
@@ -117,7 +125,7 @@ export class SMTPEMailService implements IMail {
|
|
|
117
125
|
let from;
|
|
118
126
|
const { to, subject, body, attachments = [], cc, bcc } = message.payload;
|
|
119
127
|
|
|
120
|
-
const envFrom = this.
|
|
128
|
+
const envFrom = this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom");
|
|
121
129
|
if (envFrom) {
|
|
122
130
|
from = envFrom;
|
|
123
131
|
}
|
|
@@ -16,6 +16,10 @@ export class MediaStorageProviderMetadataService {
|
|
|
16
16
|
private readonly crudHelperService: CrudHelperService
|
|
17
17
|
) { }
|
|
18
18
|
|
|
19
|
+
async find(basicFilterDto: BasicFilterDto) {
|
|
20
|
+
return this.findMany(basicFilterDto);
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
async findMany(basicFilterDto: BasicFilterDto) {
|
|
20
24
|
const alias = 'mediaStorageProviderMetadata';
|
|
21
25
|
// Extract the required keys from the input query
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager, In } from 'typeorm';
|
|
5
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
5
6
|
|
|
6
7
|
import { ConfigService } from '@nestjs/config';
|
|
7
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
8
8
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
9
|
import { FileService } from 'src/services/file.service';
|
|
10
|
-
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
|
-
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
12
10
|
|
|
13
11
|
|
|
14
12
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
@@ -25,13 +23,8 @@ import { getMediaStorageProvider } from "./mediaStorageProviders";
|
|
|
25
23
|
@Injectable()
|
|
26
24
|
export class MediaService extends CRUDService<Media> {
|
|
27
25
|
constructor(
|
|
28
|
-
@Inject(forwardRef(() => ModelMetadataService))
|
|
29
|
-
readonly modelMetadataService: ModelMetadataService,
|
|
30
|
-
readonly moduleMetadataService: ModuleMetadataService,
|
|
31
26
|
readonly configService: ConfigService,
|
|
32
27
|
readonly fileService: FileService,
|
|
33
|
-
readonly discoveryService: DiscoveryService,
|
|
34
|
-
readonly crudHelperService: CrudHelperService,
|
|
35
28
|
@InjectEntityManager()
|
|
36
29
|
readonly entityManager: EntityManager,
|
|
37
30
|
// @InjectRepository(Media, 'default')
|
|
@@ -49,15 +42,16 @@ export class MediaService extends CRUDService<Media> {
|
|
|
49
42
|
private readonly fieldMetadataRepo: FieldMetadataRepository,
|
|
50
43
|
readonly moduleRef: ModuleRef,
|
|
51
44
|
) {
|
|
52
|
-
super(
|
|
45
|
+
super(entityManager, repo, 'media', 'solid-core', moduleRef);
|
|
53
46
|
}
|
|
54
47
|
|
|
55
48
|
async find(basicFilterDto: BasicFilterDto, solidRequestContext: any = {}) {
|
|
56
49
|
const data = await super.find(basicFilterDto, solidRequestContext);
|
|
57
50
|
if (data.records) {
|
|
58
|
-
|
|
51
|
+
|
|
52
|
+
for (const media of data.records) {
|
|
59
53
|
if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
|
|
60
|
-
media.relativeUri = `${
|
|
54
|
+
media.relativeUri = `${this.settingService.getConfigValue<SolidCoreSetting>("baseUrl")}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
|
|
61
55
|
} else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
|
|
62
56
|
media.relativeUri = this.getAwsS3FullFilePath(
|
|
63
57
|
media.relativeUri,
|
|
@@ -65,19 +59,42 @@ export class MediaService extends CRUDService<Media> {
|
|
|
65
59
|
media.mediaStorageProviderMetadata.region
|
|
66
60
|
);
|
|
67
61
|
}
|
|
68
|
-
}
|
|
62
|
+
}
|
|
63
|
+
// data.records.forEach((media: Media) => {
|
|
64
|
+
// if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
|
|
65
|
+
// media.relativeUri = `${process.env.BASE_URL}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
|
|
66
|
+
// } else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
|
|
67
|
+
// media.relativeUri = this.getAwsS3FullFilePath(
|
|
68
|
+
// media.relativeUri,
|
|
69
|
+
// media.mediaStorageProviderMetadata.bucketName,
|
|
70
|
+
// media.mediaStorageProviderMetadata.region
|
|
71
|
+
// );
|
|
72
|
+
// }
|
|
73
|
+
// });
|
|
69
74
|
}
|
|
70
75
|
if (data.groupRecords) {
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
|
|
77
|
+
for (const group of data.groupRecords) {
|
|
78
|
+
for (const media of group.groupData.records) {
|
|
73
79
|
if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
|
|
74
|
-
media.relativeUri = `${
|
|
80
|
+
media.relativeUri = `${this.settingService.getConfigValue<SolidCoreSetting>("baseUrl")}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
|
|
75
81
|
}
|
|
76
82
|
else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
|
|
77
83
|
media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
|
|
78
84
|
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// data.groupRecords.forEach((group) => {
|
|
89
|
+
// group.groupData.records.forEach((media) => {
|
|
90
|
+
// if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
|
|
91
|
+
// media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
|
|
92
|
+
// }
|
|
93
|
+
// else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
|
|
94
|
+
// media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
|
|
95
|
+
// }
|
|
96
|
+
// });
|
|
97
|
+
// });
|
|
81
98
|
}
|
|
82
99
|
return data
|
|
83
100
|
}
|
|
@@ -111,7 +128,7 @@ export class MediaService extends CRUDService<Media> {
|
|
|
111
128
|
|
|
112
129
|
switch (createDto.mediaStorageProviderMetadata.type) {
|
|
113
130
|
case MediaStorageProviderType.Filesystem:
|
|
114
|
-
const fileStoragePath = this.getFileSysytemFullFilePath(this.getFileName(file));
|
|
131
|
+
const fileStoragePath = await this.getFileSysytemFullFilePath(this.getFileName(file));
|
|
115
132
|
await this.fileService.copyFile(file.path, fileStoragePath);
|
|
116
133
|
createDto['relativeUri'] = this.getFileName(file);
|
|
117
134
|
break;
|
|
@@ -171,11 +188,11 @@ export class MediaService extends CRUDService<Media> {
|
|
|
171
188
|
}
|
|
172
189
|
//TODO: Move this to a app builder config
|
|
173
190
|
|
|
174
|
-
private getFileSysytemFullFilePath(fileName: string): string {
|
|
175
|
-
|
|
191
|
+
private async getFileSysytemFullFilePath(fileName: string): Promise<string> {
|
|
192
|
+
const fileStorageDir = this.settingService.getConfigValue<SolidCoreSetting>("fileStorageDir");
|
|
193
|
+
return `${fileStorageDir}/${fileName}`;
|
|
176
194
|
}
|
|
177
195
|
|
|
178
|
-
|
|
179
196
|
private getAwsS3FullFilePath(awsMediaurl: string, bucketName: string, regionName: string): string {
|
|
180
197
|
// https://lunarismedia.s3.ap-south-1.amazonaws.com/LUNARIS_CP_REGISTRATION_CREATIVE.jpg
|
|
181
198
|
return `https://${bucketName}.s3.${regionName}.amazonaws.com/${awsMediaurl}`;
|
|
@@ -9,7 +9,6 @@ import { MediaStorageProvider } from "src/interfaces";
|
|
|
9
9
|
import { FileService } from "src/services/file.service";
|
|
10
10
|
import { Readable } from "stream";
|
|
11
11
|
import { MediaRepository } from "src/repository/media.repository";
|
|
12
|
-
import commonConfig from "src/config/common.config";
|
|
13
12
|
|
|
14
13
|
@Injectable()
|
|
15
14
|
export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
|
|
@@ -21,8 +20,6 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
21
20
|
private readonly configService: ConfigService,
|
|
22
21
|
readonly fileService: FileService,
|
|
23
22
|
readonly mediaRepository: MediaRepository,
|
|
24
|
-
@Inject(commonConfig.KEY)
|
|
25
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
26
23
|
) { }
|
|
27
24
|
|
|
28
25
|
storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {
|