@solidxai/core 0.1.13-beta.0 → 0.1.13-beta.10
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/CHANGELOG.md +3786 -0
- package/dist/commands/run-tests.command.d.ts +7 -1
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +49 -3
- package/dist/commands/run-tests.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts +2 -0
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +21 -0
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/constants/chatter-message.constants.d.ts +1 -0
- package/dist/constants/chatter-message.constants.d.ts.map +1 -1
- package/dist/constants/chatter-message.constants.js +3 -1
- package/dist/constants/chatter-message.constants.js.map +1 -1
- package/dist/constants/draft-publish-fields.d.ts +2 -0
- package/dist/constants/draft-publish-fields.d.ts.map +1 -0
- package/dist/constants/draft-publish-fields.js +5 -0
- package/dist/constants/draft-publish-fields.js.map +1 -0
- package/dist/constants/media-file-types.d.ts +9 -0
- package/dist/constants/media-file-types.d.ts.map +1 -1
- package/dist/constants/media-file-types.js +27 -1
- package/dist/constants/media-file-types.js.map +1 -1
- package/dist/constants/user.constants.d.ts +2 -0
- package/dist/constants/user.constants.d.ts.map +1 -0
- package/dist/constants/user.constants.js +5 -0
- package/dist/constants/user.constants.js.map +1 -0
- package/dist/controllers/action-metadata.controller.d.ts +1 -1
- package/dist/controllers/action-metadata.controller.js +1 -1
- package/dist/controllers/agent-event.controller.d.ts +1 -1
- package/dist/controllers/agent-event.controller.js +1 -1
- package/dist/controllers/agent-session.controller.d.ts +1 -1
- package/dist/controllers/agent-session.controller.js +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +5 -0
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +14 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -1
- package/dist/controllers/dashboard-user-layout.controller.js +1 -1
- package/dist/controllers/email-template.controller.d.ts +1 -1
- package/dist/controllers/email-template.controller.js +1 -1
- package/dist/controllers/export-template.controller.d.ts +1 -1
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.js +6 -4
- package/dist/controllers/export-template.controller.js.map +1 -1
- package/dist/controllers/export-transaction.controller.d.ts +1 -1
- package/dist/controllers/export-transaction.controller.js +1 -1
- package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -1
- package/dist/controllers/import-transaction-error-log.controller.js +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +1 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +7 -7
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/list-of-values.controller.d.ts +1 -1
- package/dist/controllers/list-of-values.controller.js +1 -1
- package/dist/controllers/locale.controller.d.ts +1 -1
- package/dist/controllers/locale.controller.js +1 -1
- package/dist/controllers/mcp-audit-log.controller.d.ts +1 -1
- package/dist/controllers/mcp-audit-log.controller.js +1 -1
- package/dist/controllers/media.controller.d.ts +2 -2
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +13 -8
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.d.ts +1 -1
- package/dist/controllers/menu-item-metadata.controller.js +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +1 -1
- package/dist/controllers/model-sequence.controller.js +1 -1
- package/dist/controllers/module-package.controller.d.ts.map +1 -1
- package/dist/controllers/module-package.controller.js +2 -3
- package/dist/controllers/module-package.controller.js.map +1 -1
- package/dist/controllers/mq-message-queue.controller.d.ts +1 -1
- package/dist/controllers/mq-message-queue.controller.js +1 -1
- package/dist/controllers/mq-message.controller.d.ts +1 -1
- package/dist/controllers/mq-message.controller.js +1 -1
- package/dist/controllers/permission-metadata.controller.d.ts +1 -1
- package/dist/controllers/permission-metadata.controller.js +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -1
- package/dist/controllers/role-metadata.controller.js +1 -1
- package/dist/controllers/saved-filters.controller.d.ts +1 -1
- package/dist/controllers/saved-filters.controller.js +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +1 -1
- package/dist/controllers/scheduled-job.controller.js +1 -1
- package/dist/controllers/security-rule.controller.d.ts +1 -1
- package/dist/controllers/security-rule.controller.js +1 -1
- package/dist/controllers/sms-template.controller.d.ts +1 -1
- package/dist/controllers/sms-template.controller.js +1 -1
- package/dist/controllers/user-activity-history.controller.d.ts +1 -1
- package/dist/controllers/user-activity-history.controller.js +1 -1
- package/dist/controllers/user-view-metadata.controller.d.ts +1 -1
- package/dist/controllers/user-view-metadata.controller.js +1 -1
- package/dist/controllers/user.controller.d.ts +2 -2
- package/dist/controllers/user.controller.js +2 -2
- package/dist/controllers/view-metadata.controller.d.ts +2 -2
- package/dist/controllers/view-metadata.controller.js +1 -1
- package/dist/controllers/workflow-definition.controller.d.ts +38 -0
- package/dist/controllers/workflow-definition.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-definition.controller.js +272 -0
- package/dist/controllers/workflow-definition.controller.js.map +1 -0
- package/dist/controllers/workflow-execution-artifact.controller.d.ts +24 -0
- package/dist/controllers/workflow-execution-artifact.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution-artifact.controller.js +179 -0
- package/dist/controllers/workflow-execution-artifact.controller.js.map +1 -0
- package/dist/controllers/workflow-execution-log.controller.d.ts +24 -0
- package/dist/controllers/workflow-execution-log.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution-log.controller.js +179 -0
- package/dist/controllers/workflow-execution-log.controller.js.map +1 -0
- package/dist/controllers/workflow-execution.controller.d.ts +29 -0
- package/dist/controllers/workflow-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution.controller.js +227 -0
- package/dist/controllers/workflow-execution.controller.js.map +1 -0
- package/dist/controllers/workflow-secret.controller.d.ts +24 -0
- package/dist/controllers/workflow-secret.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-secret.controller.js +179 -0
- package/dist/controllers/workflow-secret.controller.js.map +1 -0
- package/dist/controllers/workflow-step-execution.controller.d.ts +24 -0
- package/dist/controllers/workflow-step-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-step-execution.controller.js +179 -0
- package/dist/controllers/workflow-step-execution.controller.js.map +1 -0
- package/dist/controllers/workflow-trigger-execution.controller.d.ts +24 -0
- package/dist/controllers/workflow-trigger-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-trigger-execution.controller.js +179 -0
- package/dist/controllers/workflow-trigger-execution.controller.js.map +1 -0
- package/dist/decorators/workflow-node-provider.decorator.d.ts +4 -0
- package/dist/decorators/workflow-node-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/workflow-node-provider.decorator.js +13 -0
- package/dist/decorators/workflow-node-provider.decorator.js.map +1 -0
- package/dist/dtos/basic-filters.dto.d.ts +0 -1
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +1 -6
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/create-workflow-definition.dto.d.ts +14 -0
- package/dist/dtos/create-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-definition.dto.js +92 -0
- package/dist/dtos/create-workflow-definition.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.d.ts +22 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.js +139 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution-log.dto.d.ts +18 -0
- package/dist/dtos/create-workflow-execution-log.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution-log.dto.js +116 -0
- package/dist/dtos/create-workflow-execution-log.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution.dto.d.ts +33 -0
- package/dist/dtos/create-workflow-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution.dto.js +186 -0
- package/dist/dtos/create-workflow-execution.dto.js.map +1 -0
- package/dist/dtos/create-workflow-secret.dto.d.ts +11 -0
- package/dist/dtos/create-workflow-secret.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-secret.dto.js +74 -0
- package/dist/dtos/create-workflow-secret.dto.js.map +1 -0
- package/dist/dtos/create-workflow-step-execution.dto.d.ts +27 -0
- package/dist/dtos/create-workflow-step-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-step-execution.dto.js +171 -0
- package/dist/dtos/create-workflow-step-execution.dto.js.map +1 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.d.ts +25 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.js +158 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.js.map +1 -0
- package/dist/dtos/execute-workflow.dto.d.ts +7 -0
- package/dist/dtos/execute-workflow.dto.d.ts.map +1 -0
- package/dist/dtos/execute-workflow.dto.js +11 -0
- package/dist/dtos/execute-workflow.dto.js.map +1 -0
- package/dist/dtos/update-workflow-definition.dto.d.ts +15 -0
- package/dist/dtos/update-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-definition.dto.js +97 -0
- package/dist/dtos/update-workflow-definition.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.d.ts +23 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.js +143 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution-log.dto.d.ts +19 -0
- package/dist/dtos/update-workflow-execution-log.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution-log.dto.js +121 -0
- package/dist/dtos/update-workflow-execution-log.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution.dto.d.ts +34 -0
- package/dist/dtos/update-workflow-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution.dto.js +190 -0
- package/dist/dtos/update-workflow-execution.dto.js.map +1 -0
- package/dist/dtos/update-workflow-secret.dto.d.ts +12 -0
- package/dist/dtos/update-workflow-secret.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-secret.dto.js +80 -0
- package/dist/dtos/update-workflow-secret.dto.js.map +1 -0
- package/dist/dtos/update-workflow-step-execution.dto.d.ts +28 -0
- package/dist/dtos/update-workflow-step-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-step-execution.dto.js +175 -0
- package/dist/dtos/update-workflow-step-execution.dto.js.map +1 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.d.ts +26 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.js +163 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.js.map +1 -0
- package/dist/dtos/validate-workflow-definition.dto.d.ts +4 -0
- package/dist/dtos/validate-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/validate-workflow-definition.dto.js +11 -0
- package/dist/dtos/validate-workflow-definition.dto.js.map +1 -0
- package/dist/entities/common.entity.d.ts +4 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +25 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +36 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/workflow-definition.entity.d.ts +15 -0
- package/dist/entities/workflow-definition.entity.d.ts.map +1 -0
- package/dist/entities/workflow-definition.entity.js +77 -0
- package/dist/entities/workflow-definition.entity.js.map +1 -0
- package/dist/entities/workflow-execution-artifact.entity.d.ts +23 -0
- package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution-artifact.entity.js +113 -0
- package/dist/entities/workflow-execution-artifact.entity.js.map +1 -0
- package/dist/entities/workflow-execution-log.entity.d.ts +19 -0
- package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution-log.entity.js +95 -0
- package/dist/entities/workflow-execution-log.entity.js.map +1 -0
- package/dist/entities/workflow-execution.entity.d.ts +28 -0
- package/dist/entities/workflow-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution.entity.js +124 -0
- package/dist/entities/workflow-execution.entity.js.map +1 -0
- package/dist/entities/workflow-secret.entity.d.ts +12 -0
- package/dist/entities/workflow-secret.entity.d.ts.map +1 -0
- package/dist/entities/workflow-secret.entity.js +66 -0
- package/dist/entities/workflow-secret.entity.js.map +1 -0
- package/dist/entities/workflow-step-execution.entity.d.ts +28 -0
- package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-step-execution.entity.js +138 -0
- package/dist/entities/workflow-step-execution.entity.js.map +1 -0
- package/dist/entities/workflow-trigger-execution.entity.d.ts +26 -0
- package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-trigger-execution.entity.js +127 -0
- package/dist/entities/workflow-trigger-execution.entity.js.map +1 -0
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js +4 -0
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts.map +1 -1
- package/dist/factories/sms.factory.js +4 -1
- package/dist/factories/sms.factory.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +1 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +18 -11
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/file-download.helper.d.ts +9 -0
- package/dist/helpers/file-download.helper.d.ts.map +1 -0
- package/dist/helpers/file-download.helper.js +14 -0
- package/dist/helpers/file-download.helper.js.map +1 -0
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +30 -1
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.js +1 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/workflow-node-handler.interface.d.ts +5 -0
- package/dist/interfaces/workflow-node-handler.interface.d.ts.map +1 -0
- package/dist/interfaces/workflow-node-handler.interface.js +3 -0
- package/dist/interfaces/workflow-node-handler.interface.js.map +1 -0
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts +12 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.js +39 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.js +10 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.js.map +1 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts +19 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.js +55 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts +12 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js +39 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts +8 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.js +10 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts +17 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js +52 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts +12 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.js +39 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts +8 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.js +10 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts +17 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js +52 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js.map +1 -0
- package/dist/repository/workflow-definition.repository.d.ts +12 -0
- package/dist/repository/workflow-definition.repository.d.ts.map +1 -0
- package/dist/repository/workflow-definition.repository.js +39 -0
- package/dist/repository/workflow-definition.repository.js.map +1 -0
- package/dist/repository/workflow-execution-artifact.repository.d.ts +12 -0
- package/dist/repository/workflow-execution-artifact.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution-artifact.repository.js +39 -0
- package/dist/repository/workflow-execution-artifact.repository.js.map +1 -0
- package/dist/repository/workflow-execution-log.repository.d.ts +12 -0
- package/dist/repository/workflow-execution-log.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution-log.repository.js +39 -0
- package/dist/repository/workflow-execution-log.repository.js.map +1 -0
- package/dist/repository/workflow-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution.repository.js +39 -0
- package/dist/repository/workflow-execution.repository.js.map +1 -0
- package/dist/repository/workflow-secret.repository.d.ts +12 -0
- package/dist/repository/workflow-secret.repository.d.ts.map +1 -0
- package/dist/repository/workflow-secret.repository.js +39 -0
- package/dist/repository/workflow-secret.repository.js.map +1 -0
- package/dist/repository/workflow-step-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-step-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-step-execution.repository.js +39 -0
- package/dist/repository/workflow-step-execution.repository.js.map +1 -0
- package/dist/repository/workflow-trigger-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-trigger-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-trigger-execution.repository.js +39 -0
- package/dist/repository/workflow-trigger-execution.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +6 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +185 -27
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +3 -1
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +8 -2
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +11494 -5570
- package/dist/services/authentication.service.d.ts +4 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +52 -4
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +11 -0
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +52 -3
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +5 -2
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +30 -32
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +13 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +92 -67
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/datasource-introspection.service.d.ts.map +1 -1
- package/dist/services/datasource-introspection.service.js.map +1 -1
- package/dist/services/draft-publish-helper.service.d.ts +52 -0
- package/dist/services/draft-publish-helper.service.d.ts.map +1 -0
- package/dist/services/draft-publish-helper.service.js +368 -0
- package/dist/services/draft-publish-helper.service.js.map +1 -0
- package/dist/services/internationalisation-helper.service.d.ts +19 -0
- package/dist/services/internationalisation-helper.service.d.ts.map +1 -0
- package/dist/services/internationalisation-helper.service.js +107 -0
- package/dist/services/internationalisation-helper.service.js.map +1 -0
- package/dist/services/locale.service.d.ts +1 -1
- package/dist/services/media.service.d.ts +3 -2
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +44 -29
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/metadata-validation.service.d.ts +7 -0
- package/dist/services/metadata-validation.service.d.ts.map +1 -0
- package/dist/services/metadata-validation.service.js +42 -0
- package/dist/services/metadata-validation.service.js.map +1 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +2 -1
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/object.utils.d.ts +2 -0
- package/dist/services/object.utils.d.ts.map +1 -0
- package/dist/services/object.utils.js +11 -0
- package/dist/services/object.utils.js.map +1 -0
- package/dist/services/settings/default-settings-provider.service.d.ts +46 -6
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +29 -3
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -2
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +9 -3
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +1 -2
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +3 -55
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/workflow/nodes/execution-fail.node.d.ts +6 -0
- package/dist/services/workflow/nodes/execution-fail.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/execution-fail.node.js +81 -0
- package/dist/services/workflow/nodes/execution-fail.node.js.map +1 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts +8 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/for-each.node.js +204 -0
- package/dist/services/workflow/nodes/for-each.node.js.map +1 -0
- package/dist/services/workflow/nodes/http-request.node.d.ts +13 -0
- package/dist/services/workflow/nodes/http-request.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/http-request.node.js +549 -0
- package/dist/services/workflow/nodes/http-request.node.js.map +1 -0
- package/dist/services/workflow/nodes/if.node.d.ts +6 -0
- package/dist/services/workflow/nodes/if.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/if.node.js +100 -0
- package/dist/services/workflow/nodes/if.node.js.map +1 -0
- package/dist/services/workflow/nodes/log-write.node.d.ts +6 -0
- package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/log-write.node.js +231 -0
- package/dist/services/workflow/nodes/log-write.node.js.map +1 -0
- package/dist/services/workflow/nodes/loop-until.node.d.ts +12 -0
- package/dist/services/workflow/nodes/loop-until.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/loop-until.node.js +281 -0
- package/dist/services/workflow/nodes/loop-until.node.js.map +1 -0
- package/dist/services/workflow/nodes/parallel.node.d.ts +6 -0
- package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/parallel.node.js +83 -0
- package/dist/services/workflow/nodes/parallel.node.js.map +1 -0
- package/dist/services/workflow/nodes/runtime-python.node.d.ts +13 -0
- package/dist/services/workflow/nodes/runtime-python.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/runtime-python.node.js +522 -0
- package/dist/services/workflow/nodes/runtime-python.node.js.map +1 -0
- package/dist/services/workflow/nodes/sequential.node.d.ts +6 -0
- package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/sequential.node.js +68 -0
- package/dist/services/workflow/nodes/sequential.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.d.ts +25 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.js +143 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts +48 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.js +475 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-login.node.d.ts +6 -0
- package/dist/services/workflow/nodes/solidx-login.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-login.node.js +208 -0
- package/dist/services/workflow/nodes/solidx-login.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.d.ts +11 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.js +437 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts +10 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.js +347 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.js.map +1 -0
- package/dist/services/workflow/nodes/switch.node.d.ts +7 -0
- package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/switch.node.js +120 -0
- package/dist/services/workflow/nodes/switch.node.js.map +1 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts +19 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.js +187 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.js.map +1 -0
- package/dist/services/workflow/workflow-definition-validator.service.d.ts +13 -0
- package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-definition-validator.service.js +166 -0
- package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -0
- package/dist/services/workflow/workflow-execution-writer.service.d.ts +26 -0
- package/dist/services/workflow/workflow-execution-writer.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-execution-writer.service.js +191 -0
- package/dist/services/workflow/workflow-execution-writer.service.js.map +1 -0
- package/dist/services/workflow/workflow-expression.service.d.ts +14 -0
- package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-expression.service.js +157 -0
- package/dist/services/workflow/workflow-expression.service.js.map +1 -0
- package/dist/services/workflow/workflow-invocation.service.d.ts +11 -0
- package/dist/services/workflow/workflow-invocation.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-invocation.service.js +37 -0
- package/dist/services/workflow/workflow-invocation.service.js.map +1 -0
- package/dist/services/workflow/workflow-node-registry.service.d.ts +19 -0
- package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-node-registry.service.js +117 -0
- package/dist/services/workflow/workflow-node-registry.service.js.map +1 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts +61 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-runtime.service.js +706 -0
- package/dist/services/workflow/workflow-runtime.service.js.map +1 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts +10 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts.map +1 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.js +37 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.js.map +1 -0
- package/dist/services/workflow-definition.service.d.ts +52 -0
- package/dist/services/workflow-definition.service.d.ts.map +1 -0
- package/dist/services/workflow-definition.service.js +251 -0
- package/dist/services/workflow-definition.service.js.map +1 -0
- package/dist/services/workflow-execution-artifact.service.d.ts +12 -0
- package/dist/services/workflow-execution-artifact.service.d.ts.map +1 -0
- package/dist/services/workflow-execution-artifact.service.js +38 -0
- package/dist/services/workflow-execution-artifact.service.js.map +1 -0
- package/dist/services/workflow-execution-log.service.d.ts +12 -0
- package/dist/services/workflow-execution-log.service.d.ts.map +1 -0
- package/dist/services/workflow-execution-log.service.js +38 -0
- package/dist/services/workflow-execution-log.service.js.map +1 -0
- package/dist/services/workflow-execution.service.d.ts +12 -0
- package/dist/services/workflow-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-execution.service.js +38 -0
- package/dist/services/workflow-execution.service.js.map +1 -0
- package/dist/services/workflow-secret.service.d.ts +25 -0
- package/dist/services/workflow-secret.service.d.ts.map +1 -0
- package/dist/services/workflow-secret.service.js +152 -0
- package/dist/services/workflow-secret.service.js.map +1 -0
- package/dist/services/workflow-step-execution.service.d.ts +12 -0
- package/dist/services/workflow-step-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-step-execution.service.js +38 -0
- package/dist/services/workflow-step-execution.service.js.map +1 -0
- package/dist/services/workflow-trigger-execution.service.d.ts +12 -0
- package/dist/services/workflow-trigger-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-trigger-execution.service.js +38 -0
- package/dist/services/workflow-trigger-execution.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +131 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts +5 -0
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +17 -1
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/dist/testing/adapters/ui/ui.types.d.ts +2 -0
- package/dist/testing/adapters/ui/ui.types.d.ts.map +1 -1
- package/dist/testing/adapters/ui/ui.types.js.map +1 -1
- package/dist/testing/steps/ui/actions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/actions.step.js +6 -2
- package/dist/testing/steps/ui/actions.step.js.map +1 -1
- package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/assertions.step.js +11 -3
- package/dist/testing/steps/ui/assertions.step.js.map +1 -1
- package/dist/testing/steps/ui/form.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/form.step.js +9 -3
- package/dist/testing/steps/ui/form.step.js.map +1 -1
- package/dist/testing/steps/ui/manual.step.js +1 -1
- package/dist/testing/steps/ui/manual.step.js.map +1 -1
- package/dist/testing/steps/ui/navigation.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/navigation.step.js +3 -1
- package/dist/testing/steps/ui/navigation.step.js.map +1 -1
- package/dist/transformers/empty-string-to-null-transformer.d.ts +4 -0
- package/dist/transformers/empty-string-to-null-transformer.d.ts.map +1 -0
- package/dist/transformers/empty-string-to-null-transformer.js +12 -0
- package/dist/transformers/empty-string-to-null-transformer.js.map +1 -0
- package/dist/types/workflow-dsl.types.d.ts +291 -0
- package/dist/types/workflow-dsl.types.d.ts.map +1 -0
- package/dist/types/workflow-dsl.types.js +3 -0
- package/dist/types/workflow-dsl.types.js.map +1 -0
- package/dist/types/workflow-execution-queue.types.d.ts +4 -0
- package/dist/types/workflow-execution-queue.types.d.ts.map +1 -0
- package/dist/types/workflow-execution-queue.types.js +3 -0
- package/dist/types/workflow-execution-queue.types.js.map +1 -0
- package/package.json +3 -2
- package/src/commands/run-tests.command.ts +47 -1
- package/src/commands/seed.command.ts +19 -0
- package/src/constants/chatter-message.constants.ts +12 -0
- package/src/constants/draft-publish-fields.ts +5 -0
- package/src/constants/media-file-types.ts +50 -0
- package/src/constants/user.constants.ts +13 -0
- package/src/controllers/chatter-message.controller.ts +8 -0
- package/src/controllers/export-template.controller.ts +5 -3
- package/src/controllers/import-transaction.controller.ts +6 -6
- package/src/controllers/media.controller.ts +17 -6
- package/src/controllers/module-package.controller.ts +2 -3
- package/src/controllers/workflow-definition.controller.ts +141 -0
- package/src/controllers/workflow-execution-artifact.controller.ts +93 -0
- package/src/controllers/workflow-execution-log.controller.ts +93 -0
- package/src/controllers/workflow-execution.controller.ts +126 -0
- package/src/controllers/workflow-secret.controller.ts +90 -0
- package/src/controllers/workflow-step-execution.controller.ts +93 -0
- package/src/controllers/workflow-trigger-execution.controller.ts +93 -0
- package/src/decorators/workflow-node-provider.decorator.ts +14 -0
- package/src/dtos/basic-filters.dto.ts +0 -4
- package/src/dtos/create-workflow-definition.dto.ts +60 -0
- package/src/dtos/create-workflow-execution-artifact.dto.ts +99 -0
- package/src/dtos/create-workflow-execution-log.dto.ts +80 -0
- package/src/dtos/create-workflow-execution.dto.ts +137 -0
- package/src/dtos/create-workflow-secret.dto.ts +44 -0
- package/src/dtos/create-workflow-step-execution.dto.ts +123 -0
- package/src/dtos/create-workflow-trigger-execution.dto.ts +114 -0
- package/src/dtos/execute-workflow.dto.ts +6 -0
- package/src/dtos/update-workflow-definition.dto.ts +67 -0
- package/src/dtos/update-workflow-execution-artifact.dto.ts +105 -0
- package/src/dtos/update-workflow-execution-log.dto.ts +87 -0
- package/src/dtos/update-workflow-execution.dto.ts +144 -0
- package/src/dtos/update-workflow-secret.dto.ts +53 -0
- package/src/dtos/update-workflow-step-execution.dto.ts +132 -0
- package/src/dtos/update-workflow-trigger-execution.dto.ts +122 -0
- package/src/dtos/validate-workflow-definition.dto.ts +3 -0
- package/src/entities/common.entity.ts +24 -0
- package/src/entities/user.entity.ts +53 -36
- package/src/entities/workflow-definition.entity.ts +43 -0
- package/src/entities/workflow-execution-artifact.entity.ts +72 -0
- package/src/entities/workflow-execution-log.entity.ts +58 -0
- package/src/entities/workflow-execution.entity.ts +82 -0
- package/src/entities/workflow-secret.entity.ts +33 -0
- package/src/entities/workflow-step-execution.entity.ts +88 -0
- package/src/entities/workflow-trigger-execution.entity.ts +82 -0
- package/src/factories/mail.factory.ts +7 -1
- package/src/factories/sms.factory.ts +4 -1
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +26 -12
- package/src/helpers/file-download.helper.ts +31 -0
- package/src/helpers/model-metadata-helper.service.ts +32 -1
- package/src/helpers/solid-registry.ts +1 -1
- package/src/index.ts +58 -0
- package/src/interfaces/workflow-node-handler.interface.ts +10 -0
- package/src/interfaces.ts +1 -0
- package/src/jobs/database/workflow-execution-publisher-database.service.ts +24 -0
- package/src/jobs/database/workflow-execution-queue-options-database.ts +9 -0
- package/src/jobs/database/workflow-execution-subscriber-database.service.ts +44 -0
- package/src/jobs/rabbitmq/workflow-execution-publisher.service.ts +24 -0
- package/src/jobs/rabbitmq/workflow-execution-queue-options.ts +9 -0
- package/src/jobs/rabbitmq/workflow-execution-subscriber.service.ts +42 -0
- package/src/jobs/redis/workflow-execution-publisher-redis.service.ts +24 -0
- package/src/jobs/redis/workflow-execution-queue-options-redis.ts +9 -0
- package/src/jobs/redis/workflow-execution-subscriber-redis.service.ts +42 -0
- package/src/repository/workflow-definition.repository.ts +19 -0
- package/src/repository/workflow-execution-artifact.repository.ts +19 -0
- package/src/repository/workflow-execution-log.repository.ts +19 -0
- package/src/repository/workflow-execution.repository.ts +19 -0
- package/src/repository/workflow-secret.repository.ts +19 -0
- package/src/repository/workflow-step-execution.repository.ts +19 -0
- package/src/repository/workflow-trigger-execution.repository.ts +19 -0
- package/src/seeders/module-metadata-seeder.service.ts +216 -40
- package/src/seeders/module-test-data.service.ts +6 -0
- package/src/seeders/seed-data/solid-core-metadata.json +11494 -5570
- package/src/services/authentication.service.ts +76 -5
- package/src/services/chatter-message.service.ts +102 -4
- package/src/services/crud-helper.service.ts +16 -34
- package/src/services/crud.service.ts +129 -104
- package/src/services/datasource-introspection.service.ts +5 -0
- package/src/services/draft-publish-helper.service.ts +529 -0
- package/src/services/internationalisation-helper.service.ts +148 -0
- package/src/services/media.service.ts +67 -36
- package/src/services/metadata-validation.service.ts +39 -0
- package/src/services/model-metadata.service.ts +4 -1
- package/src/services/object.utils.ts +10 -0
- package/src/services/settings/default-settings-provider.service.ts +35 -3
- package/src/services/user.service.ts +18 -3
- package/src/services/view-metadata.service.ts +5 -145
- package/src/services/workflow/nodes/execution-fail.node.ts +82 -0
- package/src/services/workflow/nodes/for-each.node.ts +231 -0
- package/src/services/workflow/nodes/http-request.node.ts +624 -0
- package/src/services/workflow/nodes/if.node.ts +100 -0
- package/src/services/workflow/nodes/log-write.node.ts +234 -0
- package/src/services/workflow/nodes/loop-until.node.ts +343 -0
- package/src/services/workflow/nodes/parallel.node.ts +88 -0
- package/src/services/workflow/nodes/runtime-python.node.ts +571 -0
- package/src/services/workflow/nodes/sequential.node.ts +65 -0
- package/src/services/workflow/nodes/solidx-api.helpers.ts +205 -0
- package/src/services/workflow/nodes/solidx-crud.nodes.ts +511 -0
- package/src/services/workflow/nodes/solidx-login.node.ts +222 -0
- package/src/services/workflow/nodes/solidx-send-email.node.ts +489 -0
- package/src/services/workflow/nodes/solidx-send-sms.node.ts +377 -0
- package/src/services/workflow/nodes/switch.node.ts +132 -0
- package/src/services/workflow/workflow-definition-metadata-sync.service.ts +196 -0
- package/src/services/workflow/workflow-definition-validator.service.ts +226 -0
- package/src/services/workflow/workflow-execution-writer.service.ts +244 -0
- package/src/services/workflow/workflow-expression.service.ts +180 -0
- package/src/services/workflow/workflow-invocation.service.ts +39 -0
- package/src/services/workflow/workflow-node-registry.service.ts +152 -0
- package/src/services/workflow/workflow-runtime.service.ts +934 -0
- package/src/services/workflow/workflow-scheduled-trigger.job.ts +33 -0
- package/src/services/workflow-definition.service.ts +293 -0
- package/src/services/workflow-execution-artifact.service.ts +20 -0
- package/src/services/workflow-execution-log.service.ts +20 -0
- package/src/services/workflow-execution.service.ts +20 -0
- package/src/services/workflow-secret.service.ts +161 -0
- package/src/services/workflow-step-execution.service.ts +20 -0
- package/src/services/workflow-trigger-execution.service.ts +20 -0
- package/src/solid-core.module.ts +144 -3
- package/src/testing/README.md +73 -2
- package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
- package/src/testing/adapters/ui/ui.types.ts +2 -0
- package/src/testing/steps/ui/actions.step.ts +8 -4
- package/src/testing/steps/ui/assertions.step.ts +18 -5
- package/src/testing/steps/ui/form.step.ts +16 -6
- package/src/testing/steps/ui/manual.step.ts +1 -1
- package/src/testing/steps/ui/navigation.step.ts +4 -2
- package/src/transformers/empty-string-to-null-transformer.ts +11 -0
- package/src/types/workflow-dsl.types.ts +1030 -0
- package/src/types/workflow-execution-queue.types.ts +3 -0
|
@@ -20,7 +20,7 @@ import { SUCCESS_MESSAGES } from "src/constants/success-messages";
|
|
|
20
20
|
import { CreateUserDto } from "src/dtos/create-user.dto";
|
|
21
21
|
import { MailFactory } from "src/factories/mail.factory";
|
|
22
22
|
import { UserRepository } from "src/repository/user.repository";
|
|
23
|
-
import { DataSource, DeepPartial, Repository } from "typeorm";
|
|
23
|
+
import { DataSource, DeepPartial, FindOptionsWhere, Repository } from "typeorm";
|
|
24
24
|
import { v4 as uuidv4 } from "uuid";
|
|
25
25
|
import {
|
|
26
26
|
ForgotPasswordSendVerificationTokenOn,
|
|
@@ -49,6 +49,7 @@ import { SsoCodeStorageService } from "./sso-code-storage.service";
|
|
|
49
49
|
import { RoleMetadataService } from "./role-metadata.service";
|
|
50
50
|
import { SettingService } from "./setting.service";
|
|
51
51
|
import { UserActivityHistoryService } from "./user-activity-history.service";
|
|
52
|
+
import { MetadataValidationService } from "./metadata-validation.service";
|
|
52
53
|
import { UserService } from "./user.service";
|
|
53
54
|
import { SmsFactory } from "src/factories/sms.factory";
|
|
54
55
|
import { WhatsAppFactory } from "src/factories/whatsapp.factory";
|
|
@@ -88,6 +89,7 @@ export class AuthenticationService {
|
|
|
88
89
|
private readonly roleMetadataService: RoleMetadataService,
|
|
89
90
|
private readonly userActivityHistoryService: UserActivityHistoryService,
|
|
90
91
|
private readonly ssoCodeStorage: SsoCodeStorageService,
|
|
92
|
+
private readonly metadataValidationService: MetadataValidationService,
|
|
91
93
|
|
|
92
94
|
@InjectDataSource()
|
|
93
95
|
private readonly dataSource: DataSource,
|
|
@@ -225,6 +227,9 @@ export class AuthenticationService {
|
|
|
225
227
|
preferEntityApiKeyFlag: boolean = false,
|
|
226
228
|
): Promise<T> {
|
|
227
229
|
try {
|
|
230
|
+
await this.assertUniqueSignupIdentifiers(signUpDto, repo);
|
|
231
|
+
await this.metadataValidationService.validateCreateDto("user", signUpDto);
|
|
232
|
+
|
|
228
233
|
const onForcePasswordChange =
|
|
229
234
|
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
230
235
|
"forceChangePasswordOnFirstLogin",
|
|
@@ -276,6 +281,59 @@ export class AuthenticationService {
|
|
|
276
281
|
}
|
|
277
282
|
}
|
|
278
283
|
|
|
284
|
+
private async assertUniqueSignupIdentifiers<T extends User>(
|
|
285
|
+
signUpDto: SignUpDto,
|
|
286
|
+
repo: Repository<T>,
|
|
287
|
+
): Promise<void> {
|
|
288
|
+
const username = signUpDto.username?.trim();
|
|
289
|
+
const email = signUpDto.email?.trim();
|
|
290
|
+
const mobile = signUpDto.mobile?.trim();
|
|
291
|
+
|
|
292
|
+
const where: FindOptionsWhere<T>[] = [];
|
|
293
|
+
|
|
294
|
+
if (username) {
|
|
295
|
+
where.push({ username } as FindOptionsWhere<T>);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (email) {
|
|
299
|
+
where.push({ email } as FindOptionsWhere<T>);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if (mobile) {
|
|
303
|
+
where.push({ mobile } as FindOptionsWhere<T>);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (where.length === 0) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const existingUser = await repo.findOne({ where });
|
|
311
|
+
|
|
312
|
+
if (!existingUser) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
if (email && existingUser.email === email) {
|
|
317
|
+
throw new ConflictException(
|
|
318
|
+
`A user with email address "${email}" already exists.`,
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (mobile && existingUser.mobile === mobile) {
|
|
323
|
+
throw new ConflictException(
|
|
324
|
+
`A user with mobile number "${mobile}" already exists.`,
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (username && existingUser.username === username) {
|
|
329
|
+
throw new ConflictException(
|
|
330
|
+
`A user with username "${username}" already exists.`,
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
throw new ConflictException(ERROR_MESSAGES.USER_ALREADY_EXISTS);
|
|
335
|
+
}
|
|
336
|
+
|
|
279
337
|
private async handlePasswordlessSignupOtp<T extends User>(
|
|
280
338
|
user: T,
|
|
281
339
|
signUpDto: SignUpDto,
|
|
@@ -400,11 +458,23 @@ export class AuthenticationService {
|
|
|
400
458
|
// if forcePasswordChange is true, then we trigger an email to the user to change the password, this needs to be done using a queue.
|
|
401
459
|
// Create a new method like notifyUserOnForcePasswordChange, create a new email template we can call it on-force-password-change this template to include the random password
|
|
402
460
|
if (user.forcePasswordChange && autoGeneratedPwd) {
|
|
403
|
-
|
|
461
|
+
try {
|
|
462
|
+
await this.notifyUserOnForcePasswordChange(user, autoGeneratedPwd);
|
|
463
|
+
} catch (error: any) {
|
|
464
|
+
this.logger.error(
|
|
465
|
+
`Failed to send force-password-change email for user ${user.id}: ${error?.message ?? error}`,
|
|
466
|
+
);
|
|
467
|
+
}
|
|
404
468
|
}
|
|
405
469
|
|
|
406
470
|
// Send welcome notifications (email/SMS) if enabled.
|
|
407
|
-
|
|
471
|
+
try {
|
|
472
|
+
await this.notifyUserOnSignup(user);
|
|
473
|
+
} catch (error: any) {
|
|
474
|
+
this.logger.error(
|
|
475
|
+
`Failed to send signup notifications for user ${user.id}: ${error?.message ?? error}`,
|
|
476
|
+
);
|
|
477
|
+
}
|
|
408
478
|
}
|
|
409
479
|
|
|
410
480
|
generatePassword(length: number = 8): string {
|
|
@@ -1578,7 +1648,7 @@ export class AuthenticationService {
|
|
|
1578
1648
|
// Assuming all users do not have mobile as mandatory.
|
|
1579
1649
|
if (
|
|
1580
1650
|
forgotPasswordSendVerificationTokenOn ==
|
|
1581
|
-
|
|
1651
|
+
ForgotPasswordSendVerificationTokenOn.MOBILE &&
|
|
1582
1652
|
user.mobile
|
|
1583
1653
|
) {
|
|
1584
1654
|
const smsService = this.smsFactory.getSmsService();
|
|
@@ -1702,7 +1772,7 @@ export class AuthenticationService {
|
|
|
1702
1772
|
// Assuming all users do not have mobile as mandatory.
|
|
1703
1773
|
if (
|
|
1704
1774
|
forgotPasswordSendVerificationTokenOn ==
|
|
1705
|
-
|
|
1775
|
+
ForgotPasswordSendVerificationTokenOn.MOBILE &&
|
|
1706
1776
|
user.mobile
|
|
1707
1777
|
) {
|
|
1708
1778
|
const smsService = this.smsFactory.getSmsService();
|
|
@@ -2342,6 +2412,7 @@ function parseUniqueConstraintError(detail: string): string {
|
|
|
2342
2412
|
const fieldMap: Record<string, string> = {
|
|
2343
2413
|
username: "username",
|
|
2344
2414
|
email: "email address",
|
|
2415
|
+
mobile: "mobile number",
|
|
2345
2416
|
full_name_user_key: "full name",
|
|
2346
2417
|
};
|
|
2347
2418
|
const friendlyField = fieldMap[field] || field;
|
|
@@ -5,7 +5,8 @@ import { InjectEntityManager } from '@nestjs/typeorm';
|
|
|
5
5
|
import { Brackets, EntityManager, EntityMetadata, In } from 'typeorm';
|
|
6
6
|
|
|
7
7
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
8
|
-
import { CHATTER_MESSAGE_STATUS, CHATTER_MESSAGE_SUBTYPE, CHATTER_MESSAGE_TYPE } from 'src/constants/chatter-message.constants';
|
|
8
|
+
import { CHATTER_MESSAGE_STATUS, CHATTER_MESSAGE_SUBTYPE, CHATTER_MESSAGE_TYPE, CHATTER_MESSAGE_USER_FIELDS } from 'src/constants/chatter-message.constants';
|
|
9
|
+
import { isDangerousMediaFile } from 'src/constants/media-file-types';
|
|
9
10
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
10
11
|
import { PostChatterMessageDto } from 'src/dtos/post-chatter-message.dto';
|
|
11
12
|
import { UpdateChatterNoteMessageDto } from 'src/dtos/update-chatter-note-message.dto';
|
|
@@ -18,9 +19,11 @@ import { FieldMetadataRepository } from 'src/repository/field-metadata.repositor
|
|
|
18
19
|
import { MediaRepository } from 'src/repository/media.repository';
|
|
19
20
|
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
20
21
|
import { CRUDService } from 'src/services/crud.service';
|
|
22
|
+
import { BasicFilterDto } from '../dtos/basic-filters.dto';
|
|
21
23
|
import { MediaStorageProviderType } from '../dtos/create-media-storage-provider-metadata.dto';
|
|
22
24
|
import { ChatterMessageDetails } from '../entities/chatter-message-details.entity';
|
|
23
25
|
import { ChatterMessage } from '../entities/chatter-message.entity';
|
|
26
|
+
import { User } from '../entities/user.entity';
|
|
24
27
|
import { getMediaStorageProvider } from './mediaStorageProviders';
|
|
25
28
|
import { RequestContextService } from './request-context.service';
|
|
26
29
|
import { Logger } from '@nestjs/common';
|
|
@@ -101,6 +104,44 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
101
104
|
chatterMessage.updatedBy = resolvedUserId;
|
|
102
105
|
}
|
|
103
106
|
|
|
107
|
+
/**
|
|
108
|
+
* Reduce a message's hydrated `user` relation to CHATTER_MESSAGE_USER_FIELDS.
|
|
109
|
+
*
|
|
110
|
+
* `getChatterMessages` restricts the columns in the query itself, which is preferable.
|
|
111
|
+
* The generic CRUD paths below build their query from find-options and hand `populate`
|
|
112
|
+
* straight to TypeORM, so they are trimmed after the fact instead. (`createdBy` /
|
|
113
|
+
* `updatedBy` need nothing here - CRUDService.handlePopulateUserIdFields already selects
|
|
114
|
+
* only USER_SUMMARY_FIELDS when a caller populates them.)
|
|
115
|
+
*/
|
|
116
|
+
private trimMessageUser<M extends ChatterMessage>(message: M): M {
|
|
117
|
+
if (message?.user) {
|
|
118
|
+
message.user = this.toUserSummary(message.user) as User;
|
|
119
|
+
}
|
|
120
|
+
return message;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private trimMessageUsers(messages: ChatterMessage[] | undefined) {
|
|
124
|
+
messages?.forEach(message => this.trimMessageUser(message));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* `GET /chatter-message?populate[]=user` would otherwise be a way around the column
|
|
129
|
+
* allowlist applied by getChatterMessages.
|
|
130
|
+
*/
|
|
131
|
+
async find(basicFilterDto: BasicFilterDto, solidRequestContext: any = {}): Promise<any> {
|
|
132
|
+
const result = await super.find(basicFilterDto, solidRequestContext);
|
|
133
|
+
this.trimMessageUsers(result?.records);
|
|
134
|
+
// A grouped find (populateGroup) nests its entities one level deeper.
|
|
135
|
+
for (const groupRecord of result?.groupRecords ?? []) {
|
|
136
|
+
this.trimMessageUsers(groupRecord?.groupData?.records);
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async findOne(id: number, query: any = {}, solidRequestContext: any = {}) {
|
|
142
|
+
return this.trimMessageUser(await super.findOne(id, query, solidRequestContext));
|
|
143
|
+
}
|
|
144
|
+
|
|
104
145
|
private isEditableCustomNoteMessage(message: ChatterMessage): boolean {
|
|
105
146
|
if (message.messageType !== CHATTER_MESSAGE_TYPE.CUSTOM) {
|
|
106
147
|
return false;
|
|
@@ -134,6 +175,17 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
134
175
|
}, messageBody || '');
|
|
135
176
|
}
|
|
136
177
|
|
|
178
|
+
/**
|
|
179
|
+
* Chatter attachments bypass MediaFieldCrudManager - they go straight to
|
|
180
|
+
* storageProvider.store() - so the shared predicate is applied here directly. The rules
|
|
181
|
+
* themselves live in media-file-types so upload paths can't drift apart.
|
|
182
|
+
*/
|
|
183
|
+
private validateChatterMediaFiles(files: Express.Multer.File[] = []) {
|
|
184
|
+
if (Array.isArray(files) && files.some(file => isDangerousMediaFile(file))) {
|
|
185
|
+
throw new BadRequestException('Dangerous file types are not allowed in chatter attachments.');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
137
189
|
private async publishChatterMentionNotifications(message: ChatterMessage, model: any) {
|
|
138
190
|
if (message.messageType !== CHATTER_MESSAGE_TYPE.CUSTOM || message.messageSubType !== CHATTER_MESSAGE_SUBTYPE.NOTE) {
|
|
139
191
|
return;
|
|
@@ -188,6 +240,31 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
188
240
|
}
|
|
189
241
|
}
|
|
190
242
|
|
|
243
|
+
// Deliberately bypasses UserRepository's security-rule filtering: the mention picker
|
|
244
|
+
// needs id/username/fullName for any active user regardless of the caller's row-level
|
|
245
|
+
// access to the User model, same as the getChatterMessages one-to-many lookup below.
|
|
246
|
+
async getMentionableUsers(search?: string, limit: number = 8): Promise<Array<{ id: number; username: string; fullName: string }>> {
|
|
247
|
+
const normalizedLimit = Number.isInteger(limit) && limit > 0 && limit <= 50 ? limit : 8;
|
|
248
|
+
const userRepository = this.entityManager.getRepository(User);
|
|
249
|
+
|
|
250
|
+
const qb = userRepository
|
|
251
|
+
.createQueryBuilder('user')
|
|
252
|
+
.select(['user.id', 'user.username', 'user.fullName'])
|
|
253
|
+
.where('user.active = :active', { active: true });
|
|
254
|
+
|
|
255
|
+
const trimmedSearch = (search ?? '').trim();
|
|
256
|
+
if (trimmedSearch) {
|
|
257
|
+
qb.andWhere('(LOWER(user.username) LIKE :search OR LOWER(user.fullName) LIKE :search)', {
|
|
258
|
+
search: `%${trimmedSearch.toLowerCase()}%`,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
qb.orderBy('user.username', 'ASC').take(normalizedLimit);
|
|
263
|
+
|
|
264
|
+
const users = await qb.getMany();
|
|
265
|
+
return users.map(user => ({ id: user.id, username: user.username, fullName: user.fullName }));
|
|
266
|
+
}
|
|
267
|
+
|
|
191
268
|
async markCompleted(id: number) {
|
|
192
269
|
const activeUser = this.requestContextService.getActiveUser();
|
|
193
270
|
if (!activeUser) {
|
|
@@ -240,6 +317,8 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
240
317
|
throw new BadRequestException('Message body cannot be empty.');
|
|
241
318
|
}
|
|
242
319
|
|
|
320
|
+
this.validateChatterMediaFiles(files);
|
|
321
|
+
|
|
243
322
|
if (hasMessageBody) {
|
|
244
323
|
message.messageBody = trimmedMessageBody;
|
|
245
324
|
}
|
|
@@ -306,13 +385,16 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
306
385
|
|
|
307
386
|
await this.publishChatterMentionNotifications(savedMessage, model);
|
|
308
387
|
|
|
309
|
-
return
|
|
388
|
+
// The `user` relation was loaded for the ownership check above; don't return all of it.
|
|
389
|
+
return this.trimMessageUser(savedMessage);
|
|
310
390
|
}
|
|
311
391
|
|
|
312
392
|
async postMessage(postDto: PostChatterMessageDto, files: Express.Multer.File[] = []) {
|
|
313
393
|
const coModelName = lowerFirst(postDto.coModelName);
|
|
314
394
|
await this.assertRecordAccess(coModelName, postDto.coModelEntityId);
|
|
315
395
|
|
|
396
|
+
this.validateChatterMediaFiles(files);
|
|
397
|
+
|
|
316
398
|
const chatterMessage = new ChatterMessage();
|
|
317
399
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.CUSTOM;
|
|
318
400
|
chatterMessage.messageSubType = postDto.messageSubType || CHATTER_MESSAGE_SUBTYPE.CUSTOM;
|
|
@@ -891,16 +973,25 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
891
973
|
qb.where(orConditions.join(' OR '), parameters);
|
|
892
974
|
}));
|
|
893
975
|
|
|
894
|
-
const relations = ['chatterMessageDetails'
|
|
976
|
+
const relations = ['chatterMessageDetails'];
|
|
895
977
|
if (populate && populate.length > 0) {
|
|
896
978
|
const normalizedPopulate = this.crudHelperService.normalize(populate);
|
|
897
|
-
|
|
979
|
+
// SECURITY: 'user' is joined below with an explicit column allowlist. A client-supplied
|
|
980
|
+
// populate[]=user must not be able to turn it back into a full-entity join (the chatter
|
|
981
|
+
// panel does send exactly that).
|
|
982
|
+
relations.push(...normalizedPopulate.filter(rel => rel !== 'user' && !relations.includes(rel)));
|
|
898
983
|
}
|
|
899
984
|
|
|
900
985
|
relations.forEach(relation => {
|
|
901
986
|
qb.leftJoinAndSelect(`entity.${relation}`, relation);
|
|
902
987
|
});
|
|
903
988
|
|
|
989
|
+
// Only the author's id and display name leave this endpoint - see CHATTER_MESSAGE_USER_FIELDS.
|
|
990
|
+
// This join must stay before applyFilters below: it lets filters[user][fullName] reuse this
|
|
991
|
+
// alias instead of adding a second join of its own.
|
|
992
|
+
qb.leftJoin('entity.user', 'user');
|
|
993
|
+
qb.addSelect(CHATTER_MESSAGE_USER_FIELDS.map(field => `user.${field}`));
|
|
994
|
+
|
|
904
995
|
if (filters) {
|
|
905
996
|
qb.andWhere(new Brackets(whereQb => {
|
|
906
997
|
this.crudHelperService.applyFilters(whereQb, filters, 'entity', qb);
|
|
@@ -914,6 +1005,13 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
914
1005
|
const [entities, count] = await qb.getManyAndCount();
|
|
915
1006
|
this.logHeapUsed('getChatterMessages-entitiesLoaded');
|
|
916
1007
|
|
|
1008
|
+
// The join above only selects the allowlisted columns, but TypeORM still hydrates the
|
|
1009
|
+
// author with `new User()`, which leaves every initialiser-backed property (active,
|
|
1010
|
+
// forcePasswordChange, ...) sitting on the instance holding its default rather than a
|
|
1011
|
+
// value read from the database. Replace it with a plain object of exactly the
|
|
1012
|
+
// allowlisted keys so the response cannot report fabricated defaults as data.
|
|
1013
|
+
this.trimMessageUsers(entities);
|
|
1014
|
+
|
|
917
1015
|
// Convert date strings in message details to ISO format for consistent handling on the frontend
|
|
918
1016
|
const DATE_FIELD_TYPES = ['date', 'datetime', 'time'];
|
|
919
1017
|
for (const entity of entities) {
|
|
@@ -3,9 +3,12 @@ import { BasicFilterDto } from "../dtos/basic-filters.dto";
|
|
|
3
3
|
import { classify } from '../helpers/string.helper';
|
|
4
4
|
import { ActiveUserData } from "src/interfaces/active-user-data.interface";
|
|
5
5
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
6
|
-
import { BadRequestException, Logger } from "@nestjs/common";
|
|
6
|
+
import { BadRequestException, Injectable, Logger } from "@nestjs/common";
|
|
7
7
|
import { ERROR_MESSAGES } from "src/constants/error-messages";
|
|
8
8
|
import { buildCastToText } from "src/helpers/typeorm-db-helper";
|
|
9
|
+
import { DraftPublishHelperService } from "./draft-publish-helper.service";
|
|
10
|
+
import { InternationalisationHelperService } from "./internationalisation-helper.service";
|
|
11
|
+
import { normalizeObjectKeys } from "./object.utils";
|
|
9
12
|
|
|
10
13
|
export enum FilterCombinator {
|
|
11
14
|
AND = '$and',
|
|
@@ -36,10 +39,14 @@ export interface ResolvedFieldPath {
|
|
|
36
39
|
leafIsRelation: boolean;
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
@Injectable()
|
|
39
43
|
export class CrudHelperService {
|
|
44
|
+
private readonly logger = new Logger(CrudHelperService.name);
|
|
45
|
+
|
|
40
46
|
constructor(
|
|
47
|
+
private readonly draftPublishHelperService: DraftPublishHelperService,
|
|
48
|
+
private readonly internationalisationHelperService: InternationalisationHelperService,
|
|
41
49
|
) { }
|
|
42
|
-
private readonly logger = new Logger(CrudHelperService.name);
|
|
43
50
|
|
|
44
51
|
/**
|
|
45
52
|
* Resolve a user-supplied dotted path (e.g. "customer.name") against real TypeORM metadata.
|
|
@@ -163,7 +170,7 @@ export class CrudHelperService {
|
|
|
163
170
|
}
|
|
164
171
|
|
|
165
172
|
applyFilters(qb: WhereExpressionBuilder, filters: any, alias: string = 'entity', selectQb: SelectQueryBuilder<any>) {
|
|
166
|
-
const normalizedFilters =
|
|
173
|
+
const normalizedFilters = normalizeObjectKeys(filters);
|
|
167
174
|
if (normalizedFilters.$and) {
|
|
168
175
|
normalizedFilters.$and.forEach((andFilter: any) => {
|
|
169
176
|
qb.andWhere(
|
|
@@ -182,7 +189,7 @@ export class CrudHelperService {
|
|
|
182
189
|
// For individual conditions
|
|
183
190
|
Object.keys(normalizedFilters).forEach(key => {
|
|
184
191
|
const primaryFilterObj = normalizedFilters[key];
|
|
185
|
-
const normalizedPrimaryFilterObj =
|
|
192
|
+
const normalizedPrimaryFilterObj = normalizeObjectKeys(primaryFilterObj);
|
|
186
193
|
|
|
187
194
|
const [rawField, funcAlias] = key.split(':');
|
|
188
195
|
|
|
@@ -312,17 +319,6 @@ export class CrudHelperService {
|
|
|
312
319
|
}
|
|
313
320
|
}
|
|
314
321
|
|
|
315
|
-
// Normalize the primary operator object by removing the surrounding brackets in the keys e.g [$eq] => $eq
|
|
316
|
-
private normalizeObjectKeys(obj: any): any {
|
|
317
|
-
return Object.keys(obj).reduce((acc, key) => {
|
|
318
|
-
// Transform the key by removing surrounding brackets
|
|
319
|
-
const newKey = key.replace(/^\[(.*)\]$/, '$1');
|
|
320
|
-
// Assign the value to the transformed key in the accumulator object
|
|
321
|
-
acc[newKey] = obj[key];
|
|
322
|
-
return acc;
|
|
323
|
-
}, {});
|
|
324
|
-
}
|
|
325
|
-
|
|
326
322
|
normalize(value: string | string[]): string[] {
|
|
327
323
|
if (!value) return []; // if the value is nullish, then return an empty array
|
|
328
324
|
return Array.isArray(value) ? value : [value]; // if the value is an array, return it as is, otherwise return it as an array
|
|
@@ -359,7 +355,7 @@ export class CrudHelperService {
|
|
|
359
355
|
applySorting: boolean = true
|
|
360
356
|
): SelectQueryBuilder<any> { // TODO : Check how to pass a type to SelectQueryBuilder instead of any
|
|
361
357
|
let { limit, offset, showSoftDeleted, filters } = basicFilterDto;
|
|
362
|
-
const { fields, sort, populate = [], populateMedia = [], locale
|
|
358
|
+
const { fields, sort, populate = [], populateMedia = [], locale } = basicFilterDto;
|
|
363
359
|
|
|
364
360
|
// Normalize the fields, sort, groupBy and populate options i.e (since they can be either a string or an array of strings, when coming from the request)
|
|
365
361
|
const normalizedFields = this.normalize(fields);
|
|
@@ -390,28 +386,14 @@ export class CrudHelperService {
|
|
|
390
386
|
}
|
|
391
387
|
}
|
|
392
388
|
|
|
393
|
-
let finalLocale = locale
|
|
394
389
|
if (internationalisation) {
|
|
395
|
-
// If locale is not provided in the filter dto, then assume it is the default locale to be used.
|
|
396
|
-
|
|
397
|
-
//Get default locale from registry
|
|
398
|
-
const solidRegistry = moduleRef.get(SolidRegistry, { strict: false });
|
|
399
|
-
const defaultLocale = solidRegistry.getDefaultLocale();
|
|
400
|
-
if(defaultLocale){
|
|
401
|
-
finalLocale = defaultLocale.locale;
|
|
402
|
-
}else{
|
|
403
|
-
finalLocale = 'en';
|
|
404
|
-
}
|
|
405
|
-
}
|
|
390
|
+
// If locale is not provided in the filter dto, then assume it is the default locale to be used.
|
|
391
|
+
const finalLocale = locale || this.internationalisationHelperService.resolveDefaultLocaleName(moduleRef.get(SolidRegistry, { strict: false }));
|
|
406
392
|
qb.andWhere(`${entityAlias}.localeName = :locale`, { locale: finalLocale });
|
|
407
393
|
}
|
|
408
394
|
|
|
409
|
-
if (draftPublishWorkflow
|
|
410
|
-
|
|
411
|
-
qb.andWhere(`${entityAlias}.publishedAt IS NOT NULL`);
|
|
412
|
-
} else if (basicFilterDto.status === 'draft') {
|
|
413
|
-
qb.andWhere(`${entityAlias}.publishedAt IS NULL`);
|
|
414
|
-
}
|
|
395
|
+
if (draftPublishWorkflow) {
|
|
396
|
+
this.draftPublishHelperService.applyDraftPublishFilterDefaults(qb, filters, entityAlias);
|
|
415
397
|
}
|
|
416
398
|
// Depending upon the select option, apply the select clause
|
|
417
399
|
if (normalizedFields && normalizedFields.length) {
|