@solidxai/core 0.1.13-beta.0 → 0.1.13-beta.11
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 +4343 -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/dashboard-user-layout.entity.js +2 -2
- package/dist/entities/dashboard-user-layout.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/view-metadata.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 +114 -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 +96 -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 +125 -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 +67 -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 +139 -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 +128 -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/helpers/typeorm-db-helper.d.ts.map +1 -1
- package/dist/helpers/typeorm-db-helper.js +9 -0
- package/dist/helpers/typeorm-db-helper.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/dist-tests/api/authenticate.spec.js +119 -0
- package/dist-tests/api/authenticate.spec.js.map +1 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
- package/dist-tests/api/ping.spec.js +21 -0
- package/dist-tests/api/ping.spec.js.map +1 -0
- package/dist-tests/helpers/auth.js +41 -0
- package/dist-tests/helpers/auth.js.map +1 -0
- package/dist-tests/helpers/env.js +11 -0
- package/dist-tests/helpers/env.js.map +1 -0
- package/docs/agent-builder/notebook-lm-prompt-for-agent-builder.md +136 -0
- package/docs/agent-builder/team-ready-note-agent-builder.md +305 -0
- package/docs/agent-hub-grooming.md +301 -0
- package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
- package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
- package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
- package/docs/datasource-introspection-ddl-analysis.md +326 -0
- package/docs/datasource-introspection-implementation-plan.md +306 -0
- package/docs/grouping-enhancements.md +89 -0
- package/docs/java-spring/README.md +3 -0
- package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
- package/docs/module-package-import-handoff.md +691 -0
- package/docs/seed-changes.md +65 -0
- package/docs/test-data-workflow.md +200 -0
- package/docs/type-declaration-import-issue.md +24 -0
- package/docs/workflow/business-automation-example-notes.md +309 -0
- package/docs/workflow/control-flow-node-addition-sop.md +324 -0
- package/docs/workflow/data-engineering-pipeline-example-notes.md +330 -0
- package/docs/workflow/foreach-example-notes.md +187 -0
- package/docs/workflow/hello-world-example-notes.md +271 -0
- package/docs/workflow/kestra-concepts-plugins-blueprints.md +315 -0
- package/docs/workflow/loop-until-example-notes.md +198 -0
- package/docs/workflow/microservices-and-apis-example-notes.md +264 -0
- package/docs/workflow/samples.md +25 -0
- package/docs/workflow/what-is-kestra.md +79 -0
- package/docs/workflow/workflow-core-module-handoff-summary.md +191 -0
- package/docs/workflow/workflow-module-brd.md +185 -0
- package/docs/workflow/workflow-module-domain-model.md +252 -0
- package/docs/workflow/workflow-module-metadata-dsl.md +302 -0
- package/docs/workflow/workflow-module-technical-spec.md +293 -0
- package/docs/workflow/workflow-node-type-contracts.md +635 -0
- package/docs/workflow/workflow-node-ui-metadata-contract.md +1262 -0
- package/docs/workflow/workflow-solidx-model-field-spec.md +284 -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/dashboard-user-layout.entity.ts +2 -2
- package/src/entities/user.entity.ts +53 -36
- package/src/entities/view-metadata.entity.ts +2 -2
- package/src/entities/workflow-definition.entity.ts +43 -0
- package/src/entities/workflow-execution-artifact.entity.ts +73 -0
- package/src/entities/workflow-execution-log.entity.ts +59 -0
- package/src/entities/workflow-execution.entity.ts +83 -0
- package/src/entities/workflow-secret.entity.ts +34 -0
- package/src/entities/workflow-step-execution.entity.ts +89 -0
- package/src/entities/workflow-trigger-execution.entity.ts +83 -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/helpers/typeorm-db-helper.ts +12 -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
- package/.claude/settings.local.json +0 -16
- package/CLAUDE.md +0 -26
- package/src/services/1.js +0 -6
|
@@ -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
|
+
}
|