@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
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
|
|
2
2
|
import { ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
|
-
import { EntityManager, In } from 'typeorm';
|
|
4
|
+
import { EntityManager, In, Not } from 'typeorm';
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import { Readable } from 'stream';
|
|
7
7
|
|
|
8
8
|
import { ConfigService } from '@nestjs/config';
|
|
9
9
|
import { CRUDService } from 'src/services/crud.service';
|
|
10
10
|
import { DiskFileService, S3FileService } from 'src/services/file';
|
|
11
|
+
import { classify } from 'src/helpers/string.helper';
|
|
11
12
|
import { MediaDownloadUrlService } from 'src/services/media-download-url.service';
|
|
12
13
|
|
|
13
14
|
|
|
@@ -16,11 +17,12 @@ import { BasicFilterDto } from 'src/dtos/basic-filters.dto';
|
|
|
16
17
|
import { MediaStorageProviderType } from 'src/dtos/create-media-storage-provider-metadata.dto';
|
|
17
18
|
import { Media } from 'src/entities/media.entity';
|
|
18
19
|
import { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';
|
|
20
|
+
import { MediaFieldCrudManager, SolidMediaType } from 'src/helpers/field-crud-managers/MediaFieldCrudManager';
|
|
19
21
|
import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
|
|
20
22
|
import { MediaStorageProviderMetadataRepository } from 'src/repository/media-storage-provider-metadata.repository';
|
|
21
23
|
import { MediaRepository } from 'src/repository/media.repository';
|
|
22
24
|
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
23
|
-
import { buildDiskMediaPath,
|
|
25
|
+
import { buildDiskMediaPath, getEffectiveS3Region, resolveMediaIsPublic, } from 'src/services/media-storage.utils';
|
|
24
26
|
import { getMediaStorageProvider } from "./mediaStorageProviders";
|
|
25
27
|
|
|
26
28
|
@Injectable()
|
|
@@ -103,40 +105,25 @@ export class MediaService extends CRUDService<Media> {
|
|
|
103
105
|
throw new NotFoundException('Media storage provider metadata not found');
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
for (let i = 0; i < files.length; i++) {
|
|
108
|
-
const file = files[i];
|
|
109
|
-
const storageProvider = createDto.mediaStorageProviderMetadata as MediaStorageProviderMetadata;
|
|
110
|
-
const fileName = buildStoredMediaFileName(file);
|
|
108
|
+
createDto['fieldMetadata'].mediaStorageProvider = createDto['mediaStorageProviderMetadata'];
|
|
111
109
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
await this.s3FileService.write(`${bucketName}:${fileName}`, fileData, { contentType: file.mimetype, region });
|
|
110
|
+
const validator = new MediaFieldCrudManager({
|
|
111
|
+
type: createDto['fieldMetadata']?.type as SolidMediaType,
|
|
112
|
+
required: true,
|
|
113
|
+
fieldName: 'files',
|
|
114
|
+
mediaMaxSizeKb: createDto['fieldMetadata']?.mediaMaxSizeKb,
|
|
115
|
+
mediaTypes: createDto['fieldMetadata']?.mediaTypes || [],
|
|
116
|
+
isUpdate: false,
|
|
117
|
+
});
|
|
118
|
+
const validationErrors = validator.validate(createDto, files);
|
|
119
|
+
if (validationErrors.length > 0) {
|
|
120
|
+
throw new BadRequestException(validationErrors.map(error => error.error).join(', '));
|
|
121
|
+
}
|
|
125
122
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
default:
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
// Delete temp file from disk
|
|
132
|
-
await this.diskFileService.delete(file.path);
|
|
123
|
+
const storageProviderType = createDto['mediaStorageProviderMetadata'].type as MediaStorageProviderType;
|
|
124
|
+
const storageProvider = await getMediaStorageProvider(this.moduleRef, storageProviderType);
|
|
133
125
|
|
|
134
|
-
|
|
135
|
-
const media = this.repo.create(createDto as Partial<Media>) as Media;
|
|
136
|
-
const savedMedia = await this.repo.save(media);
|
|
137
|
-
savedMedias.push(savedMedia)
|
|
138
|
-
}
|
|
139
|
-
return savedMedias
|
|
126
|
+
return storageProvider.store(files, { id: Number(createDto['entityId']) }, createDto['fieldMetadata']);
|
|
140
127
|
}
|
|
141
128
|
|
|
142
129
|
async remove(id: number) {
|
|
@@ -190,9 +177,13 @@ export class MediaService extends CRUDService<Media> {
|
|
|
190
177
|
async delete(id: number, solidRequestContext: any = {}) {
|
|
191
178
|
const media = await this.repo.findOne({
|
|
192
179
|
where: { id },
|
|
193
|
-
relations: ['mediaStorageProviderMetadata'],
|
|
180
|
+
relations: ['mediaStorageProviderMetadata', 'modelMetadata'],
|
|
194
181
|
});
|
|
195
182
|
|
|
183
|
+
if (media) {
|
|
184
|
+
await this.assertMediaDeletable([media]);
|
|
185
|
+
}
|
|
186
|
+
|
|
196
187
|
const result = await super.delete(id, solidRequestContext);
|
|
197
188
|
|
|
198
189
|
if (media) {
|
|
@@ -207,9 +198,11 @@ export class MediaService extends CRUDService<Media> {
|
|
|
207
198
|
where: {
|
|
208
199
|
id: In(ids),
|
|
209
200
|
},
|
|
210
|
-
relations: ['mediaStorageProviderMetadata'],
|
|
201
|
+
relations: ['mediaStorageProviderMetadata', 'modelMetadata'],
|
|
211
202
|
});
|
|
212
203
|
|
|
204
|
+
await this.assertMediaDeletable(mediaRecords);
|
|
205
|
+
|
|
213
206
|
const result = await super.deleteMany(ids, solidRequestContext);
|
|
214
207
|
|
|
215
208
|
for (const media of mediaRecords) {
|
|
@@ -219,6 +212,33 @@ export class MediaService extends CRUDService<Media> {
|
|
|
219
212
|
return result;
|
|
220
213
|
}
|
|
221
214
|
|
|
215
|
+
/**
|
|
216
|
+
* Media belonging to a published draft/publish-enabled record must survive edits made to
|
|
217
|
+
* later drafts (see DraftPublishHelperService.cloneMediaForVersion) - deleting it directly
|
|
218
|
+
* would strip the published version's media out from under it. Mirrors the equivalent
|
|
219
|
+
* entity-level guard in DraftPublishHelperService.assertDraftPublishDeleteAllowed.
|
|
220
|
+
*/
|
|
221
|
+
private async assertMediaDeletable(mediaRecords: Media[]): Promise<void> {
|
|
222
|
+
const blockedIds: number[] = [];
|
|
223
|
+
|
|
224
|
+
for (const media of mediaRecords) {
|
|
225
|
+
if (!media.modelMetadata?.draftPublishWorkflow) continue;
|
|
226
|
+
|
|
227
|
+
const entityRepository = this.entityManager.getRepository(classify(media.modelMetadata.singularName));
|
|
228
|
+
const owningEntity = await entityRepository.findOne({ where: { id: media.entityId } as any });
|
|
229
|
+
|
|
230
|
+
if (owningEntity && (owningEntity as any).isPublished === true) {
|
|
231
|
+
blockedIds.push(media.id);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (blockedIds.length > 0) {
|
|
236
|
+
throw new BadRequestException(
|
|
237
|
+
'Media belonging to a published record cannot be deleted. Edit the record to create a draft first'
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
222
242
|
private async decorateMediaRecords(medias: Media[]): Promise<void> {
|
|
223
243
|
for (const media of medias) {
|
|
224
244
|
await this.decorateMediaRecord(media);
|
|
@@ -258,6 +278,17 @@ export class MediaService extends CRUDService<Media> {
|
|
|
258
278
|
}
|
|
259
279
|
|
|
260
280
|
try {
|
|
281
|
+
// Draft/publish versioning may clone a Media row that reuses the same
|
|
282
|
+
// relativeUri (see DraftPublishHelperService.cloneMediaForVersion) instead of
|
|
283
|
+
// duplicating the underlying file. Skip the physical delete if another row
|
|
284
|
+
// still references it.
|
|
285
|
+
const stillReferenced = await this.repo.exists({
|
|
286
|
+
where: { relativeUri: media.relativeUri, id: Not(media.id) },
|
|
287
|
+
});
|
|
288
|
+
if (stillReferenced) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
|
|
261
292
|
const mediaStorageProvider = await this.resolveMediaStorageProvider(media);
|
|
262
293
|
if (!mediaStorageProvider) {
|
|
263
294
|
return;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BadRequestException, Injectable } from "@nestjs/common";
|
|
2
|
+
import { isNotEmpty, matches } from "class-validator";
|
|
3
|
+
import { ModelMetadataService } from "./model-metadata.service";
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class MetadataValidationService {
|
|
7
|
+
constructor(
|
|
8
|
+
private readonly modelMetadataService: ModelMetadataService,
|
|
9
|
+
) {}
|
|
10
|
+
|
|
11
|
+
async validateCreateDto(
|
|
12
|
+
modelName: string,
|
|
13
|
+
dto: object,
|
|
14
|
+
): Promise<void> {
|
|
15
|
+
const model = await this.modelMetadataService.findOneBySingularName(
|
|
16
|
+
modelName,
|
|
17
|
+
{ fields: true },
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
for (const field of model.fields ?? []) {
|
|
21
|
+
const value = (dto as Record<string, unknown>)[field.name];
|
|
22
|
+
|
|
23
|
+
if (!isNotEmpty(value) || typeof value !== "string") {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!isNotEmpty(field.regexPattern)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (!matches(value, new RegExp(field.regexPattern))) {
|
|
32
|
+
throw new BadRequestException(
|
|
33
|
+
field.regexPatternNotMatchingErrorMsg ||
|
|
34
|
+
`Validation errors in ${field.name} is invalid i.e Field regex pattern is invalid`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1729,7 +1729,10 @@ export class ModelMetadataService {
|
|
|
1729
1729
|
// --------------------
|
|
1730
1730
|
// Find record index in page
|
|
1731
1731
|
// --------------------
|
|
1732
|
-
const index = records.findIndex(r =>
|
|
1732
|
+
const index = records.findIndex(r =>
|
|
1733
|
+
String(r.id) === String(recordId) ||
|
|
1734
|
+
(r.initialEntityVersionId && String(r.initialEntityVersionId) === String(recordId))
|
|
1735
|
+
);
|
|
1733
1736
|
|
|
1734
1737
|
if (index === -1) {
|
|
1735
1738
|
throw new BadRequestException(`Record not found in current page`);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Some filter/sort DTOs arrive with bracket-wrapped keys (e.g. "[isPublished]") from
|
|
2
|
+
// query-string parsing. Both CrudHelperService and DraftPublishHelperService need to
|
|
3
|
+
// strip that wrapping before reading keys, so it lives here as a shared utility.
|
|
4
|
+
export function normalizeObjectKeys(obj: any): any {
|
|
5
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
6
|
+
const newKey = key.replace(/^\[(.*)\]$/, '$1');
|
|
7
|
+
acc[newKey] = obj[key];
|
|
8
|
+
return acc;
|
|
9
|
+
}, {});
|
|
10
|
+
}
|
|
@@ -10,6 +10,13 @@ import {
|
|
|
10
10
|
export const DEFAULT_MEDIA_UPLOAD_DIR = "media-uploads";
|
|
11
11
|
export const DEFAULT_MEDIA_FILE_STORAGE_DIR = "media-files-storage";
|
|
12
12
|
|
|
13
|
+
// Seeded setting values are written once and never overwritten, so an unparseable
|
|
14
|
+
// env var would persist. Fall back whenever it is missing or not a positive number.
|
|
15
|
+
const timeoutFromEnv = (value: string | undefined, fallback: number): number => {
|
|
16
|
+
const parsed = Number(value);
|
|
17
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
18
|
+
};
|
|
19
|
+
|
|
13
20
|
// 1.
|
|
14
21
|
const getSolidCoreSettings = (isProd: boolean) =>
|
|
15
22
|
[
|
|
@@ -125,10 +132,10 @@ const getSolidCoreSettings = (isProd: boolean) =>
|
|
|
125
132
|
},
|
|
126
133
|
{
|
|
127
134
|
moduleName: "solid-core",
|
|
128
|
-
key: "
|
|
135
|
+
key: "recordClickAction",
|
|
129
136
|
value: "edit",
|
|
130
137
|
level: SettingLevel.SystemAdminEditable,
|
|
131
|
-
label: "
|
|
138
|
+
label: "Record Click Action",
|
|
132
139
|
group: "app-settings",
|
|
133
140
|
sortOrder: 45,
|
|
134
141
|
controlType: "selectionStatic",
|
|
@@ -136,7 +143,7 @@ const getSolidCoreSettings = (isProd: boolean) =>
|
|
|
136
143
|
{ label: "Edit", value: "edit" },
|
|
137
144
|
{ label: "View", value: "view" },
|
|
138
145
|
],
|
|
139
|
-
helpText: "Decides whether clicking a
|
|
146
|
+
helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.",
|
|
140
147
|
},
|
|
141
148
|
{
|
|
142
149
|
moduleName: "solid-core",
|
|
@@ -1474,6 +1481,31 @@ const getSolidCoreSettings = (isProd: boolean) =>
|
|
|
1474
1481
|
value: process.env.COMMON_META_WHATSAPP_APP_SECRET,
|
|
1475
1482
|
level: SettingLevel.SystemEnv,
|
|
1476
1483
|
},
|
|
1484
|
+
{
|
|
1485
|
+
moduleName: "solid-core",
|
|
1486
|
+
key: "uiTestDefaultTimeoutMs",
|
|
1487
|
+
value: timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000),
|
|
1488
|
+
level: SettingLevel.SystemAdminEditable,
|
|
1489
|
+
label: "UI Test Default Timeout (ms)",
|
|
1490
|
+
group: "testing-settings",
|
|
1491
|
+
sortOrder: 10,
|
|
1492
|
+
controlType: "numeric",
|
|
1493
|
+
helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.",
|
|
1494
|
+
},
|
|
1495
|
+
{
|
|
1496
|
+
moduleName: "solid-core",
|
|
1497
|
+
key: "uiTestNavigationTimeoutMs",
|
|
1498
|
+
value: timeoutFromEnv(
|
|
1499
|
+
process.env.COMMON_UI_TEST_NAVIGATION_TIMEOUT_MS,
|
|
1500
|
+
timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000),
|
|
1501
|
+
),
|
|
1502
|
+
level: SettingLevel.SystemAdminEditable,
|
|
1503
|
+
label: "UI Test Navigation Timeout (ms)",
|
|
1504
|
+
group: "testing-settings",
|
|
1505
|
+
sortOrder: 20,
|
|
1506
|
+
controlType: "numeric",
|
|
1507
|
+
helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.",
|
|
1508
|
+
},
|
|
1477
1509
|
] as const satisfies SettingDefinition[];
|
|
1478
1510
|
|
|
1479
1511
|
// 2.
|
|
@@ -156,10 +156,25 @@ export class UserService extends CRUDService<User> {
|
|
|
156
156
|
if (!user) {
|
|
157
157
|
throw new Error(ERROR_MESSAGES.USER_NOT_FOUND);
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
|
|
160
|
+
const { roles, ...userUpdateDto } = updateDto || {};
|
|
161
|
+
const savedUser = await this.update(
|
|
162
|
+
id,
|
|
163
|
+
userUpdateDto,
|
|
164
|
+
files,
|
|
165
|
+
true,
|
|
166
|
+
solidRequestContext,
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
if (roles != null) {
|
|
170
|
+
await this.addRolesToUser(savedUser.username, roles);
|
|
171
|
+
return this.repo.findOne({
|
|
172
|
+
where: { id: savedUser.id },
|
|
173
|
+
relations: { roles: true },
|
|
174
|
+
});
|
|
161
175
|
}
|
|
162
|
-
|
|
176
|
+
|
|
177
|
+
return savedUser;
|
|
163
178
|
}
|
|
164
179
|
|
|
165
180
|
async addRoleToUser(username: string, roleName: string): Promise<User> {
|
|
@@ -4,8 +4,6 @@ import { InjectEntityManager } from '@nestjs/typeorm';
|
|
|
4
4
|
import { CRUDService } from 'src/services/crud.service';
|
|
5
5
|
import { EntityManager } from 'typeorm';
|
|
6
6
|
|
|
7
|
-
import { classify } from '../helpers/string.helper';
|
|
8
|
-
import { Locale } from 'src/entities/locale.entity';
|
|
9
7
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
10
8
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
11
9
|
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
@@ -197,64 +195,6 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
197
195
|
return this.getDefaultWorkflowFieldData(workflowField, workflowFieldName, fieldsMap);
|
|
198
196
|
}
|
|
199
197
|
|
|
200
|
-
//for locales
|
|
201
|
-
private async getEntityRecordsInAllLocales(
|
|
202
|
-
modelName: string,
|
|
203
|
-
id: string,
|
|
204
|
-
defaultEntityLocaleIdFromQuery?: string
|
|
205
|
-
): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {
|
|
206
|
-
const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
|
|
207
|
-
// const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
|
|
208
|
-
const currentEntityRepository = this.entityManager.getRepository(classify(modelName));
|
|
209
|
-
|
|
210
|
-
// Case 1: Creating a new record with no defaultEntityLocaleId to clone
|
|
211
|
-
if (id === 'new' && !defaultEntityLocaleIdFromQuery) {
|
|
212
|
-
this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);
|
|
213
|
-
return { records: [], defaultEntityLocaleId: null };
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId
|
|
217
|
-
if (id === 'new' && defaultEntityLocaleIdFromQuery) {
|
|
218
|
-
this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);
|
|
219
|
-
|
|
220
|
-
const records = await currentEntityRepository.find({
|
|
221
|
-
where: [
|
|
222
|
-
{ defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },
|
|
223
|
-
{ id: defaultEntityLocaleIdFromQuery }
|
|
224
|
-
]
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
this.logger.debug(`Found ${records.length} cloned records for new entity.`);
|
|
228
|
-
return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Case 3: Editing an existing entity
|
|
232
|
-
const entityRecord = await currentEntityRepository.findOne({ where: { id } });
|
|
233
|
-
|
|
234
|
-
if (!entityRecord) {
|
|
235
|
-
this.logger.warn(`No entity found for id ${id}`);
|
|
236
|
-
return { records: [], defaultEntityLocaleId: null };
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
const defaultEntityLocaleId = entityRecord.defaultEntityLocaleId || entityRecord.id;
|
|
240
|
-
if (entityRecord.defaultEntityLocaleId) {
|
|
241
|
-
this.logger.debug(`Editing translated locale record. Translation root id: ${defaultEntityLocaleId}`);
|
|
242
|
-
} else {
|
|
243
|
-
this.logger.debug(`Editing translation root record with id ${defaultEntityLocaleId}`);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
const records = await currentEntityRepository.find({
|
|
247
|
-
where: [
|
|
248
|
-
{ defaultEntityLocaleId: defaultEntityLocaleId },
|
|
249
|
-
{ id: defaultEntityLocaleId }
|
|
250
|
-
]
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);
|
|
254
|
-
|
|
255
|
-
return { records, defaultEntityLocaleId };
|
|
256
|
-
}
|
|
257
|
-
|
|
258
198
|
// START: Custom Service Methods
|
|
259
199
|
async getLayout(query, activeUser) {
|
|
260
200
|
let { modelName, moduleName, viewType, id, populate, menuItemId, menuItemName, actionId, actionName } = query;
|
|
@@ -432,92 +372,12 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
432
372
|
* ]
|
|
433
373
|
*/
|
|
434
374
|
|
|
435
|
-
|
|
436
|
-
// if (entity.model.internationalisation) {
|
|
437
|
-
// const allLocales = await this.entityManager.getRepository(Locale).find({});
|
|
438
|
-
|
|
439
|
-
// if (id === 'new') {
|
|
440
|
-
// allLocales.forEach(locale => {
|
|
441
|
-
// applicableLocales.push({
|
|
442
|
-
// locale: locale.locale,
|
|
443
|
-
// displayName: locale.displayName,
|
|
444
|
-
// isDefault: locale.isDefault ? 'yes' : 'no',
|
|
445
|
-
// defaultEntityLocaleId: null,
|
|
446
|
-
// entityId: null
|
|
447
|
-
// });
|
|
448
|
-
// });
|
|
449
|
-
// }
|
|
450
|
-
// else {
|
|
451
|
-
// const defaultLocale = allLocales.find(locale => locale.isDefault);
|
|
452
|
-
// this.logger.debug(`Default locale is: ${defaultLocale.locale}`);
|
|
453
|
-
|
|
454
|
-
// // Get hold of the repository for the current model
|
|
455
|
-
// const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
|
|
456
|
-
// const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
|
|
457
|
-
// const currentEntityRepository = this.entityManager.getRepository(currentEntityTarget);
|
|
458
|
-
|
|
459
|
-
// // We are in edit mode, the id that is being edited could be a record tagged with the default locale or it could be tagged with a non-default locale.
|
|
460
|
-
// const entityRecord = await currentEntityRepository.findOne({
|
|
461
|
-
// where: {
|
|
462
|
-
// id: id,
|
|
463
|
-
// }
|
|
464
|
-
// });
|
|
465
|
-
// if(entityRecord){
|
|
466
|
-
// // Resolve the default entity locale id....
|
|
467
|
-
// let defaultEntityLocaleId = null;
|
|
468
|
-
// if (entityRecord.localeName === defaultLocale.locale) {
|
|
469
|
-
// defaultEntityLocaleId = entityRecord.id;
|
|
470
|
-
// this.logger.debug(`You are editing a record tagged with the default locale: ${entityRecord.localeName}.`);
|
|
471
|
-
// }
|
|
472
|
-
// else {
|
|
473
|
-
// defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;
|
|
474
|
-
// this.logger.debug(`You are editing a record tagged with the non-default locale: ${entityRecord.localeName}. `);
|
|
475
|
-
// }
|
|
476
|
-
// this.logger.debug(`Identified default Entity Locale Id: ${defaultEntityLocaleId}`);
|
|
477
|
-
|
|
478
|
-
// // Now we query for all records in the same model matching the defaultEntityLocaleId
|
|
479
|
-
// // Get all records mathcing the defaultEntityLocaleId or where the id is same as the defaultEntityLocaleId
|
|
480
|
-
// const entityRecordsInAllLocales = await currentEntityRepository.find({
|
|
481
|
-
// where: [
|
|
482
|
-
// { defaultEntityLocaleId: defaultEntityLocaleId },
|
|
483
|
-
// { id: defaultEntityLocaleId }
|
|
484
|
-
// ],
|
|
485
|
-
// });
|
|
486
|
-
// this.logger.debug(`Found ${entityRecordsInAllLocales.length} records in all locales for the defaultEntityLocaleId: ${defaultEntityLocaleId}`);
|
|
487
|
-
|
|
488
|
-
// // Loop over all locales and populate the applicableLocales array
|
|
489
|
-
// for (const locale of allLocales) {
|
|
490
|
-
// // Find the record in the entityRecordsInAllLocales that matches the current locale
|
|
491
|
-
// const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);
|
|
492
|
-
|
|
493
|
-
// applicableLocales.push({
|
|
494
|
-
// locale: locale.locale,
|
|
495
|
-
// displayName: locale.displayName,
|
|
496
|
-
// isDefault: locale.isDefault ? 'yes' : 'no',
|
|
497
|
-
// defaultEntityLocaleId: defaultEntityLocaleId,
|
|
498
|
-
// entityId: (matchingRecord ? matchingRecord.id : null)
|
|
499
|
-
// });
|
|
500
|
-
// }
|
|
501
|
-
// }else{
|
|
502
|
-
// this.logger.warn(`No record found for id: ${id} in model: ${modelName}. Cannot determine applicable locales.`);
|
|
503
|
-
// }
|
|
504
|
-
// }
|
|
505
|
-
// }
|
|
375
|
+
let applicableLocales: any[] = [];
|
|
506
376
|
if (entity.model.internationalisation) {
|
|
507
|
-
const
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
for (const locale of allLocales) {
|
|
512
|
-
const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);
|
|
513
|
-
applicableLocales.push({
|
|
514
|
-
locale: locale.locale,
|
|
515
|
-
displayName: locale.displayName,
|
|
516
|
-
isDefault: locale.isDefault ? 'yes' : 'no',
|
|
517
|
-
defaultEntityLocaleId: defaultEntityLocaleId,
|
|
518
|
-
entityId: matchingRecord ? matchingRecord.id : null
|
|
519
|
-
});
|
|
520
|
-
}
|
|
377
|
+
const draftPublishEnabled = entity.model.draftPublishWorkflow === true;
|
|
378
|
+
applicableLocales = await this.internationalisationHelperService.buildApplicableLocales(
|
|
379
|
+
this.entityManager, modelName, id, query?.defaultEntityLocaleId, draftPublishEnabled,
|
|
380
|
+
);
|
|
521
381
|
}
|
|
522
382
|
|
|
523
383
|
const r = {
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BadRequestException } from '@nestjs/common';
|
|
2
|
+
import { WorkflowNodeProvider } from '../../../decorators/workflow-node-provider.decorator';
|
|
3
|
+
import { WorkflowNodeHandler } from '../../../interfaces/workflow-node-handler.interface';
|
|
4
|
+
import {
|
|
5
|
+
WorkflowNodeExecutionContext,
|
|
6
|
+
WorkflowNodeHandlerResult,
|
|
7
|
+
} from '../../../types/workflow-dsl.types';
|
|
8
|
+
|
|
9
|
+
@WorkflowNodeProvider({
|
|
10
|
+
type: 'execution.fail',
|
|
11
|
+
kind: 'task',
|
|
12
|
+
version: '1.0.0',
|
|
13
|
+
category: 'core',
|
|
14
|
+
subcategory: 'execution',
|
|
15
|
+
label: 'Fail Execution',
|
|
16
|
+
description: 'Fails intentionally with a configured message.',
|
|
17
|
+
tags: ['failure', 'error', 'testing'],
|
|
18
|
+
aliases: ['fail'],
|
|
19
|
+
configSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
message: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
default: 'Execution failed intentionally.',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
authoring: {
|
|
29
|
+
defaultConfiguration: {
|
|
30
|
+
message: 'Execution failed intentionally.',
|
|
31
|
+
},
|
|
32
|
+
configurationFields: [
|
|
33
|
+
{
|
|
34
|
+
key: 'message',
|
|
35
|
+
label: 'Message',
|
|
36
|
+
description: 'Failure message. Expressions are allowed.',
|
|
37
|
+
valueType: 'string',
|
|
38
|
+
expressionAllowed: true,
|
|
39
|
+
group: 'General',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
supportsExpressions: true,
|
|
43
|
+
supportsDisableToggle: true,
|
|
44
|
+
supportsName: true,
|
|
45
|
+
supportsDescription: true,
|
|
46
|
+
searchableText: ['fail', 'failure', 'error', 'testing'],
|
|
47
|
+
},
|
|
48
|
+
runtime: {
|
|
49
|
+
emitsLogs: false,
|
|
50
|
+
emitsArtifacts: false,
|
|
51
|
+
deterministicOutputs: true,
|
|
52
|
+
executionMode: 'task',
|
|
53
|
+
successStatuses: [],
|
|
54
|
+
},
|
|
55
|
+
documentation: {
|
|
56
|
+
summary:
|
|
57
|
+
'Use this node in reference workflows and tests to intentionally exercise failure paths and error handlers.',
|
|
58
|
+
},
|
|
59
|
+
ui: {
|
|
60
|
+
icon: 'si-x-circle',
|
|
61
|
+
iconColor: '#dc2626',
|
|
62
|
+
iconBackgroundColor: '#fee2e2',
|
|
63
|
+
iconBorderColor: '#fecaca',
|
|
64
|
+
modalSize: 'lg',
|
|
65
|
+
layoutHints: {
|
|
66
|
+
groupOrder: ['General'],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
})
|
|
70
|
+
export class ExecutionFailNode implements WorkflowNodeHandler {
|
|
71
|
+
async execute(
|
|
72
|
+
context: WorkflowNodeExecutionContext,
|
|
73
|
+
): Promise<WorkflowNodeHandlerResult> {
|
|
74
|
+
const configuration = context.expression.interpolate(
|
|
75
|
+
context.node.configuration ?? {},
|
|
76
|
+
context,
|
|
77
|
+
);
|
|
78
|
+
throw new BadRequestException(
|
|
79
|
+
configuration.message ?? 'Execution failed intentionally.',
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
}
|