@solidstarters/solid-core 1.2.204 → 1.2.207
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/info.command.d.ts +19 -0
- package/dist/commands/info.command.d.ts.map +1 -0
- package/dist/commands/info.command.js +98 -0
- package/dist/commands/info.command.js.map +1 -0
- package/dist/commands/mcp.command.d.ts.map +1 -1
- package/dist/commands/mcp.command.js +2 -10
- package/dist/commands/mcp.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +3 -12
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/controllers/email-template.controller.d.ts +3 -1
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/email-template.controller.js +7 -4
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.d.ts +4 -5
- package/dist/controllers/google-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/google-authentication.controller.js +21 -14
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.d.ts +10 -0
- package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/setting.controller.d.ts +2 -34
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +4 -130
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/controllers/test.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/decorators/settings-provider.decorator.d.ts +3 -0
- package/dist/decorators/settings-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/settings-provider.decorator.js +8 -0
- package/dist/decorators/settings-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-password.decorator.js +3 -3
- package/dist/decorators/solid-password.decorator.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +3 -4
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +4 -51
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.d.ts +1 -0
- package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.js +7 -1
- package/dist/dtos/create-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/create-setting.dto.d.ts +3 -0
- package/dist/dtos/create-setting.dto.d.ts.map +1 -1
- package/dist/dtos/create-setting.dto.js +20 -2
- package/dist/dtos/create-setting.dto.js.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.d.ts +1 -0
- package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.js +7 -1
- package/dist/dtos/update-scheduled-job.dto.js.map +1 -1
- package/dist/dtos/update-setting.dto.d.ts +3 -0
- package/dist/dtos/update-setting.dto.d.ts.map +1 -1
- package/dist/dtos/update-setting.dto.js +19 -1
- package/dist/dtos/update-setting.dto.js.map +1 -1
- package/dist/entities/scheduled-job.entity.d.ts +1 -0
- package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
- package/dist/entities/scheduled-job.entity.js +5 -1
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/setting.entity.d.ts +3 -0
- package/dist/entities/setting.entity.d.ts.map +1 -1
- package/dist/entities/setting.entity.js +13 -1
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/factories/mail.factory.d.ts +3 -4
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js +6 -12
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts +3 -4
- package/dist/factories/sms.factory.d.ts.map +1 -1
- package/dist/factories/sms.factory.js +6 -12
- package/dist/factories/sms.factory.js.map +1 -1
- package/dist/factories/whatsapp.factory.d.ts +3 -4
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +6 -12
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/guards/access-token.guard.d.ts +3 -4
- package/dist/guards/access-token.guard.d.ts.map +1 -1
- package/dist/guards/access-token.guard.js +14 -9
- package/dist/guards/access-token.guard.js.map +1 -1
- package/dist/helpers/command.service.d.ts +5 -1
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +26 -11
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/cors.helper.d.ts +1 -2
- package/dist/helpers/cors.helper.d.ts.map +1 -1
- package/dist/helpers/cors.helper.js +2 -2
- package/dist/helpers/cors.helper.js.map +1 -1
- package/dist/helpers/error-mapper.service.d.ts.map +1 -1
- package/dist/helpers/error-mapper.service.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +2 -2
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/google-oauth.helper.d.ts +7 -3
- package/dist/helpers/google-oauth.helper.d.ts.map +1 -1
- package/dist/helpers/google-oauth.helper.js +1 -2
- package/dist/helpers/google-oauth.helper.js.map +1 -1
- package/dist/helpers/module.helper.js +0 -2
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/schematic.service.d.ts +3 -2
- package/dist/helpers/schematic.service.d.ts.map +1 -1
- package/dist/helpers/schematic.service.js +32 -27
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +8 -3
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +32 -9
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +8 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.d.ts +1 -4
- package/dist/passport-strategies/google-oauth.strategy.d.ts.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.js +12 -12
- package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +1 -0
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/seeders/email-template-seeder.service.d.ts +3 -4
- package/dist/seeders/email-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/email-template-seeder.service.js +7 -12
- package/dist/seeders/email-template-seeder.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -5
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +24 -24
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +119 -5
- package/dist/seeders/sms-template-seeder.service.d.ts +3 -4
- package/dist/seeders/sms-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/sms-template-seeder.service.js +7 -12
- package/dist/seeders/sms-template-seeder.service.js.map +1 -1
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +3 -0
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts +2 -13
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +4 -22
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts +2 -13
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +6 -24
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +14 -10
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +158 -116
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/bcrypt.service.d.ts +3 -5
- package/dist/services/bcrypt.service.d.ts.map +1 -1
- package/dist/services/bcrypt.service.js +10 -14
- package/dist/services/bcrypt.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts +2 -13
- package/dist/services/chatter-message-details.service.d.ts.map +1 -1
- package/dist/services/chatter-message-details.service.js +4 -22
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +2 -13
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +5 -23
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +12 -12
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +25 -17
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -13
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js +4 -21
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
- package/dist/services/dashboard-question.service.d.ts +2 -13
- package/dist/services/dashboard-question.service.d.ts.map +1 -1
- package/dist/services/dashboard-question.service.js +4 -21
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +2 -13
- package/dist/services/dashboard-variable.service.d.ts.map +1 -1
- package/dist/services/dashboard-variable.service.js +4 -21
- package/dist/services/dashboard-variable.service.js.map +1 -1
- package/dist/services/dashboard.service.d.ts +2 -13
- package/dist/services/dashboard.service.d.ts.map +1 -1
- package/dist/services/dashboard.service.js +4 -21
- package/dist/services/dashboard.service.js.map +1 -1
- package/dist/services/email-template.service.d.ts +2 -13
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +4 -22
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/export-template.service.d.ts +2 -13
- package/dist/services/export-template.service.d.ts.map +1 -1
- package/dist/services/export-template.service.js +4 -21
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts +2 -13
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +4 -21
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +11 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +3 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts +1 -4
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +12 -13
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/genai/r2r-helper.service.d.ts +3 -1
- package/dist/services/genai/r2r-helper.service.d.ts.map +1 -1
- package/dist/services/genai/r2r-helper.service.js +11 -7
- package/dist/services/genai/r2r-helper.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +2 -13
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +4 -22
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +2 -13
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +4 -22
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +2 -13
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +4 -22
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +2 -13
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +4 -22
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/elastic-email.service.d.ts +4 -5
- package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
- package/dist/services/mail/elastic-email.service.js +10 -13
- package/dist/services/mail/elastic-email.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +3 -4
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +19 -17
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +11 -0
- package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js +3 -0
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts +2 -9
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +17 -28
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +2 -4
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -11
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +16 -12
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/index.js +1 -1
- package/dist/services/mediaStorageProviders/index.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +2 -13
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -22
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +11 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +3 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/model-sequence.service.d.ts +2 -13
- package/dist/services/model-sequence.service.d.ts.map +1 -1
- package/dist/services/model-sequence.service.js +4 -21
- package/dist/services/model-sequence.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +14 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +13 -6
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +2 -13
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +4 -22
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +2 -13
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +4 -22
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +2 -13
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +4 -22
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +2 -13
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +4 -23
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.d.ts +2 -13
- package/dist/services/saved-filters.service.d.ts.map +1 -1
- package/dist/services/saved-filters.service.js +4 -21
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +2 -13
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +4 -22
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +1 -0
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +29 -0
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts +2 -13
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +5 -23
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +23 -30
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +147 -196
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
- package/dist/services/settings/default-settings-provider.service.js +139 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -0
- package/dist/services/short-url/tiny-url.service.d.ts +3 -4
- package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
- package/dist/services/short-url/tiny-url.service.js +10 -13
- package/dist/services/short-url/tiny-url.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +3 -3
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +2 -3
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +7 -13
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +2 -3
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +7 -13
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +3 -4
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
- package/dist/services/sms/TwilioSMSService.js +13 -16
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +2 -13
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +4 -22
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +4 -1
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +33 -47
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/textract.service.d.ts +1 -4
- package/dist/services/textract.service.d.ts.map +1 -1
- package/dist/services/textract.service.js +14 -18
- package/dist/services/textract.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +2 -13
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +4 -22
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +2 -13
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +4 -22
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -15
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +7 -28
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +2 -13
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +5 -23
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
- package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
- package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
- package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +9 -47
- package/dist/solid-core.module.js.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
- package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/type-declaration-import-issue.md +24 -0
- package/package.json +2 -1
- package/src/commands/info.command.ts +101 -0
- package/src/commands/mcp.command.ts +3 -17
- package/src/commands/seed.command.ts +5 -17
- package/src/controllers/email-template.controller.ts +9 -4
- package/src/controllers/google-authentication.controller.ts +19 -12
- package/src/controllers/setting.controller.ts +6 -81
- package/src/controllers/test.controller.ts +0 -18
- package/src/decorators/settings-provider.decorator.ts +7 -0
- package/src/decorators/solid-password.decorator.ts +43 -43
- package/src/dtos/create-role-metadata.dto.ts +4 -81
- package/src/dtos/create-scheduled-job.dto.ts +4 -0
- package/src/dtos/create-setting.dto.ts +14 -1
- package/src/dtos/update-scheduled-job.dto.ts +4 -0
- package/src/dtos/update-setting.dto.ts +14 -0
- package/src/entities/scheduled-job.entity.ts +2 -0
- package/src/entities/setting.entity.ts +15 -1
- package/src/factories/mail.factory.ts +4 -4
- package/src/factories/sms.factory.ts +9 -7
- package/src/factories/whatsapp.factory.ts +4 -4
- package/src/guards/access-token.guard.ts +12 -5
- package/src/helpers/command.service.ts +44 -12
- package/src/helpers/cors.helper.ts +3 -3
- package/src/helpers/error-mapper.service.ts +0 -1
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +2 -2
- package/src/helpers/google-oauth.helper.ts +11 -7
- package/src/helpers/module.helper.ts +2 -2
- package/src/helpers/schematic.service.ts +41 -35
- package/src/helpers/solid-registry.ts +45 -16
- package/src/index.ts +2 -4
- package/src/interfaces.ts +29 -0
- package/src/passport-strategies/google-oauth.strategy.ts +11 -8
- package/src/repository/scheduled-job.repository.ts +1 -0
- package/src/seeders/email-template-seeder.service.ts +6 -4
- package/src/seeders/module-metadata-seeder.service.ts +41 -29
- package/src/seeders/seed-data/solid-core-metadata.json +120 -6
- package/src/seeders/sms-template-seeder.service.ts +6 -4
- package/src/seeders/system-fields-seeder.service.ts +3 -0
- package/src/services/action-metadata.service.ts +4 -16
- package/src/services/ai-interaction.service.ts +6 -17
- package/src/services/authentication.service.ts +175 -113
- package/src/services/bcrypt.service.ts +9 -9
- package/src/services/chatter-message-details.service.ts +5 -17
- package/src/services/chatter-message.service.ts +2 -14
- package/src/services/crud.service.ts +36 -28
- package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
- package/src/services/dashboard-question.service.ts +4 -17
- package/src/services/dashboard-variable.service.ts +4 -16
- package/src/services/dashboard.service.ts +2 -13
- package/src/services/email-template.service.ts +3 -15
- package/src/services/export-template.service.ts +4 -18
- package/src/services/export-transaction.service.ts +4 -19
- package/src/services/field-metadata.service.ts +5 -1
- package/src/services/file.service.ts +14 -12
- package/src/services/genai/r2r-helper.service.ts +10 -6
- package/src/services/import-transaction-error-log.service.ts +5 -17
- package/src/services/import-transaction.service.ts +3 -15
- package/src/services/list-of-values.service.ts +3 -16
- package/src/services/locale.service.ts +3 -15
- package/src/services/mail/elastic-email.service.ts +7 -7
- package/src/services/mail/smtp-email.service.ts +19 -11
- package/src/services/media-storage-provider-metadata.service.ts +4 -0
- package/src/services/media.service.ts +39 -22
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
- package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
- package/src/services/mediaStorageProviders/index.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +5 -17
- package/src/services/model-metadata.service.ts +4 -0
- package/src/services/model-sequence.service.ts +4 -15
- package/src/services/module-metadata.service.ts +13 -4
- package/src/services/mq-message-queue.service.ts +5 -17
- package/src/services/mq-message.service.ts +5 -17
- package/src/services/permission-metadata.service.ts +4 -16
- package/src/services/role-metadata.service.ts +3 -16
- package/src/services/saved-filters.service.ts +2 -13
- package/src/services/scheduled-job.service.ts +3 -15
- package/src/services/scheduled-jobs/scheduler.service.ts +40 -3
- package/src/services/security-rule.service.ts +4 -16
- package/src/services/setting.service.ts +223 -212
- package/src/services/settings/default-settings-provider.service.ts +157 -0
- package/src/services/short-url/tiny-url.service.ts +9 -7
- package/src/services/sms/Msg91BaseSMSService.ts +6 -4
- package/src/services/sms/Msg91OTPService.ts +7 -7
- package/src/services/sms/Msg91SMSService.ts +7 -6
- package/src/services/sms/TwilioSMSService.ts +18 -19
- package/src/services/sms-template.service.ts +3 -15
- package/src/services/solid-introspect.service.ts +45 -66
- package/src/services/textract.service.ts +13 -10
- package/src/services/user-activity-history.service.ts +5 -17
- package/src/services/user-view-metadata.service.ts +5 -17
- package/src/services/user.service.ts +7 -22
- package/src/services/view-metadata.service.ts +3 -15
- package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
- package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
- package/src/solid-core.module.ts +17 -49
- package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
- package/# Password field.md +0 -8
- package/dist/config/app-builder.config.d.ts +0 -11
- package/dist/config/app-builder.config.d.ts.map +0 -1
- package/dist/config/app-builder.config.js +0 -13
- package/dist/config/app-builder.config.js.map +0 -1
- package/dist/config/common.config.d.ts +0 -96
- package/dist/config/common.config.d.ts.map +0 -1
- package/dist/config/common.config.js +0 -51
- package/dist/config/common.config.js.map +0 -1
- package/dist/config/iam.config.d.ts +0 -56
- package/dist/config/iam.config.d.ts.map +0 -1
- package/dist/config/iam.config.js +0 -35
- package/dist/config/iam.config.js.map +0 -1
- package/dist/config/jwt.config.d.ts +0 -14
- package/dist/config/jwt.config.d.ts.map +0 -1
- package/dist/config/jwt.config.js +0 -15
- package/dist/config/jwt.config.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
- package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
- package/sql-server-changes.txt +0 -88
- package/src/config/app-builder.config.ts +0 -12
- package/src/config/common.config.ts +0 -55
- package/src/config/iam.config.ts +0 -32
- package/src/config/jwt.config.ts +0 -13
- package/src/services/export_issues.txt +0 -10
- package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
- package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
- package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
- package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
- package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
- package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
- package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
- package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
- package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
- package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
- package/src/services/groupBy.json +0 -92
- package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
// import * as AWS from 'aws-sdk';
|
|
4
|
-
import {
|
|
5
|
-
import { ConfigType } from '@nestjs/config';
|
|
6
|
-
import commonConfig, { AwsS3Config } from '../config/common.config';
|
|
7
|
-
import path from 'path';
|
|
8
|
-
import { Readable } from 'stream';
|
|
4
|
+
import { DeleteObjectCommand, GetObjectCommand, PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
|
|
9
5
|
import { getSignedUrl as awsGetSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
6
|
+
import path from 'path';
|
|
10
7
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
8
|
+
import { AwsS3Config } from 'src/interfaces';
|
|
9
|
+
import { Readable } from 'stream';
|
|
11
10
|
|
|
12
11
|
@Injectable()
|
|
13
12
|
export class FileService {
|
|
@@ -16,16 +15,19 @@ export class FileService {
|
|
|
16
15
|
private readonly logger = new Logger(FileService.name);
|
|
17
16
|
|
|
18
17
|
constructor(
|
|
19
|
-
@Inject(commonConfig.KEY)
|
|
20
|
-
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
21
18
|
|
|
22
19
|
) {
|
|
23
|
-
|
|
20
|
+
const awsS3Credentials = {
|
|
21
|
+
S3_AWS_ACCESS_KEY: process.env.S3_AWS_ACCESS_KEY,
|
|
22
|
+
S3_AWS_SECRET_KEY: process.env.S3_AWS_SECRET_KEY,
|
|
23
|
+
S3_AWS_REGION_NAME: process.env.S3_AWS_REGION_NAME
|
|
24
|
+
}
|
|
25
|
+
if (!this.isValidS3Config(awsS3Credentials)) { return }
|
|
24
26
|
this.s3Client = new S3Client({
|
|
25
|
-
region:
|
|
27
|
+
region: process.env.S3_AWS_REGION_NAME,
|
|
26
28
|
credentials: {
|
|
27
|
-
accessKeyId:
|
|
28
|
-
secretAccessKey:
|
|
29
|
+
accessKeyId: process.env.S3_AWS_ACCESS_KEY,
|
|
30
|
+
secretAccessKey: process.env.S3_AWS_SECRET_KEY,
|
|
29
31
|
},
|
|
30
32
|
});
|
|
31
33
|
}
|
|
@@ -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[]> {
|
|
@@ -7,6 +7,8 @@ import { MediaStorageProvider } from "src/interfaces";
|
|
|
7
7
|
import { MediaRepository } from "src/repository/media.repository";
|
|
8
8
|
import { FileService } from "src/services/file.service";
|
|
9
9
|
import { Readable } from "stream";
|
|
10
|
+
import { SettingService } from "../setting.service";
|
|
11
|
+
import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
|
|
10
12
|
|
|
11
13
|
@Injectable()
|
|
12
14
|
export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
@@ -17,7 +19,8 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
17
19
|
// private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,
|
|
18
20
|
private readonly configService: ConfigService,
|
|
19
21
|
readonly fileService: FileService,
|
|
20
|
-
readonly mediaRepository: MediaRepository
|
|
22
|
+
readonly mediaRepository: MediaRepository,
|
|
23
|
+
private readonly settingService: SettingService
|
|
21
24
|
|
|
22
25
|
) { }
|
|
23
26
|
|
|
@@ -28,9 +31,13 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
28
31
|
//@ts-ignore
|
|
29
32
|
const media = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
|
|
30
33
|
// Add the full URL to the media
|
|
31
|
-
media.forEach(m => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
// media.forEach(m => {
|
|
35
|
+
// });
|
|
36
|
+
for (const m of media) {
|
|
37
|
+
m['_full_url'] = `${this.settingService.getConfigValue<SolidCoreSetting>("baseUrl")}/${this.getFullFilePath(m.relativeUri)}`;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
34
41
|
return media;
|
|
35
42
|
}
|
|
36
43
|
|
|
@@ -41,14 +48,14 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
41
48
|
const result: Media[] = [];
|
|
42
49
|
for (const file of files) {
|
|
43
50
|
// Store the file in the configured file storage directory
|
|
44
|
-
const fileStoragePath = this.getFullFilePath(this.getFileName(file));
|
|
51
|
+
const fileStoragePath = await this.getFullFilePath(this.getFileName(file));
|
|
45
52
|
await this.fileService.copyFile(file.path, fileStoragePath);
|
|
46
53
|
await this.fileService.deleteFile(file.path);
|
|
47
54
|
|
|
48
55
|
// Create an entry in the media table
|
|
49
56
|
const mediaEntity = await this.mediaRepository.createMedia({
|
|
50
57
|
//@ts-ignore
|
|
51
|
-
entityId: entity.id,
|
|
58
|
+
entityId: entity.id,
|
|
52
59
|
modelMetadataId: mediaFieldMetadata.model.id,
|
|
53
60
|
relativeUri: this.getFileName(file),
|
|
54
61
|
mimeType: file.mimetype,
|
|
@@ -71,7 +78,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
71
78
|
for (const pair of streamPairs) {
|
|
72
79
|
const stream = pair[0];
|
|
73
80
|
const fileName = pair[1];
|
|
74
|
-
this.fileService.writeStreamToFile(stream, this.getFullFilePath(fileName));
|
|
81
|
+
this.fileService.writeStreamToFile(stream, await this.getFullFilePath(fileName));
|
|
75
82
|
const mediaEntity = await this.mediaRepository.createMedia({
|
|
76
83
|
//@ts-ignore
|
|
77
84
|
entityId: entity.id,
|
|
@@ -93,13 +100,18 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
93
100
|
const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
|
|
94
101
|
//@ts-ignore
|
|
95
102
|
this.mediaRepository.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
|
|
104
|
+
for (const media of existingMedia) {
|
|
105
|
+
this.fileService.deleteFile(await this.getFullFilePath(media.relativeUri));
|
|
106
|
+
}
|
|
107
|
+
// existingMedia.forEach(media => {
|
|
108
|
+
// });
|
|
99
109
|
}
|
|
100
110
|
|
|
101
|
-
private getFullFilePath(fileName: string): string {
|
|
102
|
-
|
|
111
|
+
private async getFullFilePath(fileName: string): Promise<string> {
|
|
112
|
+
const fileStorageDir = this.settingService.getConfigValue<SolidCoreSetting>("fileStorageDir")
|
|
113
|
+
return `${fileStorageDir}/${fileName}`;
|
|
114
|
+
// return `${this.configService.get('app-builder.fileStorageDir')}/${fileName}`;
|
|
103
115
|
}
|
|
104
116
|
|
|
105
117
|
private getFileName(file: Express.Multer.File): string {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ModuleRef } from "@nestjs/core";
|
|
2
|
-
import { MediaStorageProviderType } from "src/dtos/create-media-storage-provider-metadata.dto";
|
|
3
2
|
import { FileS3StorageProvider } from "./file-s3-storage-provider";
|
|
4
3
|
import { FileStorageProvider } from "./file-storage-provider";
|
|
4
|
+
import { MediaStorageProviderType } from "../../dtos/create-media-storage-provider-metadata.dto";
|
|
5
5
|
|
|
6
6
|
export async function getMediaStorageProvider<T>(
|
|
7
7
|
moduleRef: ModuleRef,
|