@solidxai/core 0.1.12 → 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 +3 -3
- 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-field-data-provider.decorator.d.ts +3 -0
- package/dist/decorators/workflow-field-data-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/workflow-field-data-provider.decorator.js +11 -0
- package/dist/decorators/workflow-field-data-provider.decorator.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.d.ts +5 -1
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +18 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -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 +25 -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/security-rule.repository.d.ts +1 -0
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +28 -7
- package/dist/repository/security-rule.repository.js.map +1 -1
- 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 +53 -4
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +21 -3
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +129 -54
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +14 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +107 -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/solid-introspect.service.d.ts +1 -0
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +12 -0
- package/dist/services/solid-introspect.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 +6 -3
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +60 -63
- 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-field-data-provider.decorator.ts +7 -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 +22 -2
- package/src/index.ts +59 -0
- package/src/interfaces/workflow-node-handler.interface.ts +10 -0
- package/src/interfaces.ts +30 -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/security-rule.repository.ts +52 -10
- 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 +107 -5
- package/src/services/crud-helper.service.ts +236 -56
- package/src/services/crud.service.ts +159 -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/solid-introspect.service.ts +19 -0
- package/src/services/user.service.ts +18 -3
- package/src/services/view-metadata.service.ts +80 -154
- 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/src/solid-core.module.ts
CHANGED
|
@@ -38,6 +38,8 @@ import { MqDashboardQueueNameVariableOptionsProvider } from "./services/selectio
|
|
|
38
38
|
import { PseudoForeignKeySelectionProvider } from "./services/selection-providers/pseudo-foreign-key-selection-provider.service";
|
|
39
39
|
import { ModuleMetadataSeederService } from "./seeders/module-metadata-seeder.service";
|
|
40
40
|
import { ModuleTestDataService } from "./seeders/module-test-data.service";
|
|
41
|
+
import { DraftPublishHelperService } from "./services/draft-publish-helper.service";
|
|
42
|
+
import { InternationalisationHelperService } from "./services/internationalisation-helper.service";
|
|
41
43
|
import { CrudHelperService } from "./services/crud-helper.service";
|
|
42
44
|
import { DatasourceManagementService } from "./services/datasource-management.service";
|
|
43
45
|
import { DatasourceIntrospectionService } from "./services/datasource-introspection.service";
|
|
@@ -56,10 +58,10 @@ import { ModulePackageService } from "./services/module-package.service";
|
|
|
56
58
|
import { SolidIntrospectService } from "./services/solid-introspect.service";
|
|
57
59
|
// import { ListOfComputedFieldProvider } from './providers/list-of-computed-field-provider.service';
|
|
58
60
|
import { ServeStaticModule } from "@nestjs/serve-static";
|
|
59
|
-
import {
|
|
61
|
+
import { basename, join } from "path";
|
|
60
62
|
import { RefreshModelCommand } from "./commands/refresh-model.command";
|
|
61
63
|
import { MediaController } from "./controllers/media.controller";
|
|
62
|
-
import { INLINE_SAFE_EXTENSIONS } from "./constants/media-file-types";
|
|
64
|
+
import { getLowercaseFileExtension, INLINE_SAFE_EXTENSIONS } from "./constants/media-file-types";
|
|
63
65
|
|
|
64
66
|
import { RefreshModuleCommand } from "./commands/refresh-module.command";
|
|
65
67
|
import { ModelMetadataSubscriber } from "./subscribers/model-metadata.subscriber";
|
|
@@ -148,6 +150,8 @@ import { ComputedFieldEvaluationPublisherRedis } from "./jobs/redis/computed-fie
|
|
|
148
150
|
import { ComputedFieldEvaluationSubscriberRedis } from "./jobs/redis/computed-field-evaluation-subscriber-redis.service";
|
|
149
151
|
import { GenerateCodePublisherRedis } from "./jobs/redis/generate-code-publisher-redis.service";
|
|
150
152
|
import { GenerateCodeSubscriberRedis } from "./jobs/redis/generate-code-subscriber-redis.service";
|
|
153
|
+
import { WorkflowExecutionPublisherRedis } from "./jobs/redis/workflow-execution-publisher-redis.service";
|
|
154
|
+
import { WorkflowExecutionSubscriberRedis } from "./jobs/redis/workflow-execution-subscriber-redis.service";
|
|
151
155
|
import { Msg91OTPQueuePublisherRedis } from "./jobs/redis/msg91-otp-publisher-redis.service";
|
|
152
156
|
import { Msg91OTPQueueSubscriberRedis } from "./jobs/redis/msg91-otp-subscriber-redis.service";
|
|
153
157
|
import { Msg91SmsQueuePublisherRedis } from "./jobs/redis/msg91-sms-publisher-redis.service";
|
|
@@ -165,6 +169,7 @@ import { GoogleOauthStrategy } from "./passport-strategies/google-oauth.strategy
|
|
|
165
169
|
import { ApiKeyService } from "./services/api-key.service";
|
|
166
170
|
import { ActiveSessionStorageService } from "./services/active-session-storage.service";
|
|
167
171
|
import { AuthenticationService } from "./services/authentication.service";
|
|
172
|
+
import { MetadataValidationService } from "./services/metadata-validation.service";
|
|
168
173
|
import { BcryptService } from "./services/bcrypt.service";
|
|
169
174
|
import { UuidExternalIdEntityComputedFieldProvider } from "./services/computed-fields/entity/uuid-externalid-entity-computed-field-provider.service";
|
|
170
175
|
import { UuidExternalIdComputedFieldProvider } from "./services/computed-fields/uuid-external-id-computed-field-provider.service";
|
|
@@ -252,6 +257,8 @@ import { ComputedFieldEvaluationPublisherDatabase } from './jobs/database/comput
|
|
|
252
257
|
import { ComputedFieldEvaluationSubscriberDatabase } from './jobs/database/computed-field-evaluation-subscriber-database.service';
|
|
253
258
|
import { GenerateCodePublisherDatabase } from './jobs/database/generate-code-publisher-database.service';
|
|
254
259
|
import { GenerateCodeSubscriberDatabase } from './jobs/database/generate-code-subscriber-database.service';
|
|
260
|
+
import { WorkflowExecutionPublisherDatabase } from './jobs/database/workflow-execution-publisher-database.service';
|
|
261
|
+
import { WorkflowExecutionSubscriberDatabase } from './jobs/database/workflow-execution-subscriber-database.service';
|
|
255
262
|
import { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-database.service';
|
|
256
263
|
import { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';
|
|
257
264
|
import { Msg91SmsQueuePublisherDatabase } from './jobs/database/msg91-sms-publisher-database.service';
|
|
@@ -274,6 +281,8 @@ import { Three60WhatsappQueuePublisherDatabase } from "./jobs/database/three60-w
|
|
|
274
281
|
import { Three60WhatsappQueueSubscriberDatabase } from "./jobs/database/three60-whatsapp-subscriber-database.service";
|
|
275
282
|
import { GenerateCodePublisherRabbitmq } from "./jobs/rabbitmq/generate-code-publisher.service";
|
|
276
283
|
import { GenerateCodeSubscriberRabbitmq } from "./jobs/rabbitmq/generate-code-subscriber.service";
|
|
284
|
+
import { WorkflowExecutionPublisherRabbitmq } from "./jobs/rabbitmq/workflow-execution-publisher.service";
|
|
285
|
+
import { WorkflowExecutionSubscriberRabbitmq } from "./jobs/rabbitmq/workflow-execution-subscriber.service";
|
|
277
286
|
import { Three60WhatsappQueuePublisher } from "./jobs/rabbitmq/three60-whatsapp-publisher.service";
|
|
278
287
|
import { Three60WhatsappQueueSubscriber } from "./jobs/rabbitmq/three60-whatsapp-subscriber.service";
|
|
279
288
|
import { TwilioSmsQueuePublisherRabbitmq } from "./jobs/rabbitmq/twilio-sms-publisher.service";
|
|
@@ -399,6 +408,63 @@ import { DashboardUserLayoutRepository } from './repositories/dashboard-user-lay
|
|
|
399
408
|
import { MssqlDatasourceIntrospectionProviderService } from "./services/datasource-introspection/mssql-datasource-introspection-provider.service";
|
|
400
409
|
import { MysqlDatasourceIntrospectionProviderService } from "./services/datasource-introspection/mysql-datasource-introspection-provider.service";
|
|
401
410
|
import { PostgresDatasourceIntrospectionProviderService } from "./services/datasource-introspection/postgres-datasource-introspection-provider.service";
|
|
411
|
+
import { WorkflowDefinition } from './entities/workflow-definition.entity';
|
|
412
|
+
import { WorkflowExecution } from './entities/workflow-execution.entity';
|
|
413
|
+
import { WorkflowStepExecution } from './entities/workflow-step-execution.entity';
|
|
414
|
+
import { WorkflowExecutionLog } from './entities/workflow-execution-log.entity';
|
|
415
|
+
import { WorkflowExecutionArtifact } from './entities/workflow-execution-artifact.entity';
|
|
416
|
+
import { WorkflowTriggerExecution } from './entities/workflow-trigger-execution.entity';
|
|
417
|
+
import { WorkflowSecret } from './entities/workflow-secret.entity';
|
|
418
|
+
import { WorkflowDefinitionController } from './controllers/workflow-definition.controller';
|
|
419
|
+
import { WorkflowExecutionController } from './controllers/workflow-execution.controller';
|
|
420
|
+
import { WorkflowStepExecutionController } from './controllers/workflow-step-execution.controller';
|
|
421
|
+
import { WorkflowExecutionLogController } from './controllers/workflow-execution-log.controller';
|
|
422
|
+
import { WorkflowExecutionArtifactController } from './controllers/workflow-execution-artifact.controller';
|
|
423
|
+
import { WorkflowTriggerExecutionController } from './controllers/workflow-trigger-execution.controller';
|
|
424
|
+
import { WorkflowSecretController } from './controllers/workflow-secret.controller';
|
|
425
|
+
import { WorkflowDefinitionService } from './services/workflow-definition.service';
|
|
426
|
+
import { WorkflowDefinitionMetadataSyncService } from './services/workflow/workflow-definition-metadata-sync.service';
|
|
427
|
+
import { WorkflowExecutionService } from './services/workflow-execution.service';
|
|
428
|
+
import { WorkflowStepExecutionService } from './services/workflow-step-execution.service';
|
|
429
|
+
import { WorkflowExecutionLogService } from './services/workflow-execution-log.service';
|
|
430
|
+
import { WorkflowExecutionArtifactService } from './services/workflow-execution-artifact.service';
|
|
431
|
+
import { WorkflowTriggerExecutionService } from './services/workflow-trigger-execution.service';
|
|
432
|
+
import { WorkflowSecretService } from './services/workflow-secret.service';
|
|
433
|
+
import { WorkflowDefinitionRepository } from './repository/workflow-definition.repository';
|
|
434
|
+
import { WorkflowExecutionRepository } from './repository/workflow-execution.repository';
|
|
435
|
+
import { WorkflowStepExecutionRepository } from './repository/workflow-step-execution.repository';
|
|
436
|
+
import { WorkflowExecutionLogRepository } from './repository/workflow-execution-log.repository';
|
|
437
|
+
import { WorkflowExecutionArtifactRepository } from './repository/workflow-execution-artifact.repository';
|
|
438
|
+
import { WorkflowTriggerExecutionRepository } from './repository/workflow-trigger-execution.repository';
|
|
439
|
+
import { WorkflowSecretRepository } from './repository/workflow-secret.repository';
|
|
440
|
+
import { WorkflowDefinitionValidatorService } from './services/workflow/workflow-definition-validator.service';
|
|
441
|
+
import { WorkflowExecutionWriterService } from './services/workflow/workflow-execution-writer.service';
|
|
442
|
+
import { WorkflowExpressionService } from './services/workflow/workflow-expression.service';
|
|
443
|
+
import { WorkflowInvocationService } from './services/workflow/workflow-invocation.service';
|
|
444
|
+
import { WorkflowNodeRegistryService } from './services/workflow/workflow-node-registry.service';
|
|
445
|
+
import { WorkflowRuntimeService } from './services/workflow/workflow-runtime.service';
|
|
446
|
+
import { WorkflowScheduledTriggerJobService } from './services/workflow/workflow-scheduled-trigger.job';
|
|
447
|
+
import { ExecutionFailNode } from './services/workflow/nodes/execution-fail.node';
|
|
448
|
+
import { ForEachNode } from './services/workflow/nodes/for-each.node';
|
|
449
|
+
import { HttpRequestNode } from './services/workflow/nodes/http-request.node';
|
|
450
|
+
import { IfNode } from './services/workflow/nodes/if.node';
|
|
451
|
+
import { LogWriteNode } from './services/workflow/nodes/log-write.node';
|
|
452
|
+
import { LoopUntilNode } from './services/workflow/nodes/loop-until.node';
|
|
453
|
+
import { ParallelNode } from './services/workflow/nodes/parallel.node';
|
|
454
|
+
import { RuntimePythonNode } from './services/workflow/nodes/runtime-python.node';
|
|
455
|
+
import { SequentialNode } from './services/workflow/nodes/sequential.node';
|
|
456
|
+
import {
|
|
457
|
+
SolidXCreateNode,
|
|
458
|
+
SolidXDeleteNode,
|
|
459
|
+
SolidXGetNode,
|
|
460
|
+
SolidXListNode,
|
|
461
|
+
SolidXPatchNode,
|
|
462
|
+
SolidXUpdateNode,
|
|
463
|
+
} from './services/workflow/nodes/solidx-crud.nodes';
|
|
464
|
+
import { SolidXLoginNode } from './services/workflow/nodes/solidx-login.node';
|
|
465
|
+
import { SolidXSendEmailNode } from './services/workflow/nodes/solidx-send-email.node';
|
|
466
|
+
import { SolidXSendSmsNode } from './services/workflow/nodes/solidx-send-sms.node';
|
|
467
|
+
import { SwitchNode } from './services/workflow/nodes/switch.node';
|
|
402
468
|
|
|
403
469
|
@Global()
|
|
404
470
|
@Module({
|
|
@@ -439,6 +505,13 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
439
505
|
UserViewMetadata,
|
|
440
506
|
ViewMetadata,
|
|
441
507
|
ModelSequence,
|
|
508
|
+
WorkflowDefinition,
|
|
509
|
+
WorkflowExecution,
|
|
510
|
+
WorkflowStepExecution,
|
|
511
|
+
WorkflowExecutionLog,
|
|
512
|
+
WorkflowExecutionArtifact,
|
|
513
|
+
WorkflowTriggerExecution,
|
|
514
|
+
WorkflowSecret,
|
|
442
515
|
]),
|
|
443
516
|
|
|
444
517
|
CacheModule.registerAsync(CacheManagerOptions),
|
|
@@ -465,7 +538,11 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
465
538
|
// else (including svg, html, and any other uploaded file) is forced to download
|
|
466
539
|
// rather than be displayed/executed by the browser, regardless of what mimetype or
|
|
467
540
|
// extension it was uploaded with.
|
|
468
|
-
|
|
541
|
+
// basename first: getLowercaseFileExtension takes a file name, not a path, so a
|
|
542
|
+
// directory containing a dot must not be mistaken for the extension. An
|
|
543
|
+
// extensionless file yields undefined, which is not inline-safe - so it correctly
|
|
544
|
+
// falls through to the forced-download branch.
|
|
545
|
+
if (!INLINE_SAFE_EXTENSIONS.has(getLowercaseFileExtension(basename(path)) ?? '')) {
|
|
469
546
|
res.setHeader("Content-Type", "application/octet-stream");
|
|
470
547
|
res.setHeader("Content-Disposition", "attachment");
|
|
471
548
|
}
|
|
@@ -539,6 +616,13 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
539
616
|
ViewMetadataController,
|
|
540
617
|
ModelSequenceController,
|
|
541
618
|
DashboardUserLayoutController,
|
|
619
|
+
WorkflowDefinitionController,
|
|
620
|
+
WorkflowExecutionController,
|
|
621
|
+
WorkflowStepExecutionController,
|
|
622
|
+
WorkflowExecutionLogController,
|
|
623
|
+
WorkflowExecutionArtifactController,
|
|
624
|
+
WorkflowTriggerExecutionController,
|
|
625
|
+
WorkflowSecretController,
|
|
542
626
|
],
|
|
543
627
|
providers: [
|
|
544
628
|
{
|
|
@@ -567,6 +651,7 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
567
651
|
ModuleMetadataExplorerService,
|
|
568
652
|
ModuleMetadataHelperService,
|
|
569
653
|
ModulePackageService,
|
|
654
|
+
MetadataValidationService,
|
|
570
655
|
ModelMetadataService,
|
|
571
656
|
ModelMetadataHelperService,
|
|
572
657
|
FieldMetadataService,
|
|
@@ -579,6 +664,8 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
579
664
|
InfoService,
|
|
580
665
|
SolidIntrospectService,
|
|
581
666
|
DiscoveryService,
|
|
667
|
+
DraftPublishHelperService,
|
|
668
|
+
InternationalisationHelperService,
|
|
582
669
|
CrudHelperService,
|
|
583
670
|
CRUDService,
|
|
584
671
|
Reflector,
|
|
@@ -711,6 +798,8 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
711
798
|
ComputedFieldEvaluationSubscriberRedis,
|
|
712
799
|
GenerateCodePublisherRedis,
|
|
713
800
|
GenerateCodeSubscriberRedis,
|
|
801
|
+
WorkflowExecutionPublisherRedis,
|
|
802
|
+
WorkflowExecutionSubscriberRedis,
|
|
714
803
|
Msg91OTPQueuePublisherRedis,
|
|
715
804
|
Msg91OTPQueueSubscriberRedis,
|
|
716
805
|
Msg91SmsQueuePublisherRedis,
|
|
@@ -727,6 +816,10 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
727
816
|
GenerateCodeSubscriberDatabase,
|
|
728
817
|
GenerateCodePublisherRabbitmq,
|
|
729
818
|
GenerateCodeSubscriberRabbitmq,
|
|
819
|
+
WorkflowExecutionPublisherDatabase,
|
|
820
|
+
WorkflowExecutionSubscriberDatabase,
|
|
821
|
+
WorkflowExecutionPublisherRabbitmq,
|
|
822
|
+
WorkflowExecutionSubscriberRabbitmq,
|
|
730
823
|
Msg91OTPQueuePublisher,
|
|
731
824
|
MqMessageQueueService,
|
|
732
825
|
MqMessageService,
|
|
@@ -844,6 +937,47 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
844
937
|
ListOfRolesSelectionProvider,
|
|
845
938
|
DashboardUserLayoutService,
|
|
846
939
|
DashboardUserLayoutRepository,
|
|
940
|
+
WorkflowDefinitionService,
|
|
941
|
+
WorkflowDefinitionMetadataSyncService,
|
|
942
|
+
WorkflowDefinitionRepository,
|
|
943
|
+
WorkflowExecutionService,
|
|
944
|
+
WorkflowExecutionRepository,
|
|
945
|
+
WorkflowStepExecutionService,
|
|
946
|
+
WorkflowStepExecutionRepository,
|
|
947
|
+
WorkflowExecutionLogService,
|
|
948
|
+
WorkflowExecutionLogRepository,
|
|
949
|
+
WorkflowExecutionArtifactService,
|
|
950
|
+
WorkflowExecutionArtifactRepository,
|
|
951
|
+
WorkflowTriggerExecutionService,
|
|
952
|
+
WorkflowTriggerExecutionRepository,
|
|
953
|
+
WorkflowSecretService,
|
|
954
|
+
WorkflowSecretRepository,
|
|
955
|
+
WorkflowInvocationService,
|
|
956
|
+
WorkflowRuntimeService,
|
|
957
|
+
WorkflowExecutionWriterService,
|
|
958
|
+
WorkflowExpressionService,
|
|
959
|
+
WorkflowDefinitionValidatorService,
|
|
960
|
+
WorkflowNodeRegistryService,
|
|
961
|
+
WorkflowScheduledTriggerJobService,
|
|
962
|
+
ExecutionFailNode,
|
|
963
|
+
LogWriteNode,
|
|
964
|
+
HttpRequestNode,
|
|
965
|
+
IfNode,
|
|
966
|
+
ForEachNode,
|
|
967
|
+
LoopUntilNode,
|
|
968
|
+
ParallelNode,
|
|
969
|
+
RuntimePythonNode,
|
|
970
|
+
SequentialNode,
|
|
971
|
+
SwitchNode,
|
|
972
|
+
SolidXLoginNode,
|
|
973
|
+
SolidXListNode,
|
|
974
|
+
SolidXGetNode,
|
|
975
|
+
SolidXCreateNode,
|
|
976
|
+
SolidXUpdateNode,
|
|
977
|
+
SolidXPatchNode,
|
|
978
|
+
SolidXDeleteNode,
|
|
979
|
+
SolidXSendEmailNode,
|
|
980
|
+
SolidXSendSmsNode,
|
|
847
981
|
],
|
|
848
982
|
exports: [
|
|
849
983
|
AuthenticationService,
|
|
@@ -852,6 +986,8 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
852
986
|
ChatterMessageRepository,
|
|
853
987
|
ChatterMessageService,
|
|
854
988
|
ConfigModule,
|
|
989
|
+
DraftPublishHelperService,
|
|
990
|
+
InternationalisationHelperService,
|
|
855
991
|
CrudHelperService,
|
|
856
992
|
CRUDService,
|
|
857
993
|
CsvService,
|
|
@@ -874,6 +1010,7 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
874
1010
|
SmsFactory,
|
|
875
1011
|
MediaService,
|
|
876
1012
|
MediaStorageProviderMetadataService,
|
|
1013
|
+
MetadataValidationService,
|
|
877
1014
|
ModelMetadataHelperService,
|
|
878
1015
|
ModelMetadataService,
|
|
879
1016
|
ModuleMetadataService,
|
|
@@ -907,6 +1044,10 @@ import { PostgresDatasourceIntrospectionProviderService } from "./services/datas
|
|
|
907
1044
|
SolidMicroserviceAdapter,
|
|
908
1045
|
UserService,
|
|
909
1046
|
SettingService,
|
|
1047
|
+
WorkflowInvocationService,
|
|
1048
|
+
WorkflowRuntimeService,
|
|
1049
|
+
WorkflowNodeRegistryService,
|
|
1050
|
+
WorkflowExpressionService,
|
|
910
1051
|
],
|
|
911
1052
|
})
|
|
912
1053
|
export class SolidCoreModule implements NestModule {
|
package/src/testing/README.md
CHANGED
|
@@ -75,6 +75,57 @@ General step fields:
|
|
|
75
75
|
- `timeoutMs` (optional): per-step timeout override
|
|
76
76
|
- `spec` (optional): used by `test.spec` to identify the spec
|
|
77
77
|
|
|
78
|
+
## Timeouts
|
|
79
|
+
There are two independent timeout layers. They are easy to confuse, so note which one you want:
|
|
80
|
+
|
|
81
|
+
**1. Engine timeouts** — `scenario.timeoutMs` and the top-level `step.timeoutMs`.
|
|
82
|
+
These wrap execution in a `Promise.race` (`core/timeout.ts`). They are a hard upper bound
|
|
83
|
+
on wall-clock time and do **not** cancel the underlying browser call, so the failure message
|
|
84
|
+
only tells you the scenario or op that overran.
|
|
85
|
+
|
|
86
|
+
**2. UI (Playwright) timeouts** — the run-wide default plus per-step `with.timeoutMs`.
|
|
87
|
+
This is what governs how long `ui.expectVisible`, `ui.click`, `ui.fill` etc. wait for a
|
|
88
|
+
selector. Playwright cancels the operation itself, so the error names the selector and the
|
|
89
|
+
state it was waiting for. **If your UI steps are timing out, this is the knob to turn.**
|
|
90
|
+
|
|
91
|
+
Resolution order for UI steps: `with.timeoutMs` → `--ui-timeout-ms` → `UI_TIMEOUT_MS` →
|
|
92
|
+
`uiTestDefaultTimeoutMs` setting → `30000`.
|
|
93
|
+
`ui.goto` uses the navigation timeout instead: `with.timeoutMs` → `--ui-navigation-timeout-ms`
|
|
94
|
+
→ `UI_NAVIGATION_TIMEOUT_MS` → `uiTestNavigationTimeoutMs` setting → the resolved UI timeout.
|
|
95
|
+
|
|
96
|
+
Raise the default for a whole run:
|
|
97
|
+
```bash
|
|
98
|
+
solid test run --module <module-name> --ui-timeout-ms 60000
|
|
99
|
+
# or
|
|
100
|
+
UI_TIMEOUT_MS=60000 solid test run --module <module-name>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Or set the installation-wide default under **Settings → Testing Settings** in the admin UI
|
|
104
|
+
(`uiTestDefaultTimeoutMs` / `uiTestNavigationTimeoutMs`). Those rows are created by `solid seed`;
|
|
105
|
+
until then the built-in `30000` applies. Flags and env vars still win, so CI keeps per-run control.
|
|
106
|
+
|
|
107
|
+
The seeded value of those two settings can be provisioned from the environment with
|
|
108
|
+
`COMMON_UI_TEST_DEFAULT_TIMEOUT_MS` and `COMMON_UI_TEST_NAVIGATION_TIMEOUT_MS` (the latter falls
|
|
109
|
+
back to the former). Seeding is insert-only, so these apply on first seed only — afterwards the
|
|
110
|
+
stored value wins and the setting must be changed in the admin UI. Values that are missing,
|
|
111
|
+
non-numeric, or not positive fall back to `30000`.
|
|
112
|
+
|
|
113
|
+
Note these are distinct from the run-time `UI_TIMEOUT_MS` / `UI_NAVIGATION_TIMEOUT_MS` vars,
|
|
114
|
+
which override the setting on a per-run basis and are read every run.
|
|
115
|
+
|
|
116
|
+
Or bump only the one slow step, leaving the rest of the suite strict:
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"then": {
|
|
120
|
+
"op": "ui.expectVisible",
|
|
121
|
+
"with": { "selector": "#report-grid", "timeoutMs": 90000 }
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Caution: a scenario-level `timeoutMs` lower than the UI timeout will fire first and mask the
|
|
127
|
+
more useful Playwright error. Keep `defaults.timeoutMs` above your UI timeout.
|
|
128
|
+
|
|
78
129
|
## Interpolation
|
|
79
130
|
Available tokens:
|
|
80
131
|
- `${env:NAME}` (environment variables)
|
|
@@ -198,6 +249,7 @@ Description: Navigates the browser to a URL.
|
|
|
198
249
|
|
|
199
250
|
Options in `with`:
|
|
200
251
|
- `url` (required)
|
|
252
|
+
- `timeoutMs` (optional, overrides the run-wide UI navigation timeout)
|
|
201
253
|
|
|
202
254
|
### **Op: `ui.expectUrl`**
|
|
203
255
|
Description: Asserts the current page URL.
|
|
@@ -212,6 +264,7 @@ Description: Fills an input or editable element.
|
|
|
212
264
|
Options in `with`:
|
|
213
265
|
- `selector` (required)
|
|
214
266
|
- `value` (required)
|
|
267
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
215
268
|
|
|
216
269
|
### **Op: `ui.select`**
|
|
217
270
|
Description: Selects an option in a select element.
|
|
@@ -219,12 +272,14 @@ Description: Selects an option in a select element.
|
|
|
219
272
|
Options in `with`:
|
|
220
273
|
- `selector` (required)
|
|
221
274
|
- `value` (required)
|
|
275
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
222
276
|
|
|
223
277
|
### **Op: `ui.click`**
|
|
224
278
|
Description: Clicks an element located by selector.
|
|
225
279
|
|
|
226
280
|
Options in `with`:
|
|
227
281
|
- `selector` (required)
|
|
282
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
228
283
|
|
|
229
284
|
### **Op: `ui.press`**
|
|
230
285
|
Description: Presses a keyboard key on a focused element.
|
|
@@ -232,6 +287,7 @@ Description: Presses a keyboard key on a focused element.
|
|
|
232
287
|
Options in `with`:
|
|
233
288
|
- `selector` (required)
|
|
234
289
|
- `key` (required)
|
|
290
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
235
291
|
|
|
236
292
|
### **Op: `ui.waitForManual`**
|
|
237
293
|
Description: Pauses a headed Playwright run so a human can interact with the live browser, then resumes when Enter is pressed in the terminal.
|
|
@@ -242,7 +298,7 @@ Options in `with`:
|
|
|
242
298
|
- `waitForSelector` (optional, waits for a visible selector after resume)
|
|
243
299
|
- `waitForUrlEquals` (optional, waits until the current URL exactly matches)
|
|
244
300
|
- `waitForUrlContains` (optional, waits until the current URL contains a substring)
|
|
245
|
-
- `timeoutMs` (optional, timeout for post-resume waits)
|
|
301
|
+
- `timeoutMs` (optional, timeout for post-resume waits; defaults to the run-wide UI timeout)
|
|
246
302
|
- `bringToFront` (optional, defaults to `true`)
|
|
247
303
|
|
|
248
304
|
Notes:
|
|
@@ -269,6 +325,7 @@ Description: Waits for an element to be visible.
|
|
|
269
325
|
|
|
270
326
|
Options in `with`:
|
|
271
327
|
- `selector` (required)
|
|
328
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
272
329
|
|
|
273
330
|
### **Op: `ui.expectText`**
|
|
274
331
|
Description: Asserts the text content of an element.
|
|
@@ -277,6 +334,7 @@ Options in `with`:
|
|
|
277
334
|
- `selector` (required)
|
|
278
335
|
- `equals` (optional)
|
|
279
336
|
- `contains` (optional)
|
|
337
|
+
- `timeoutMs` (optional, overrides the run-wide UI timeout)
|
|
280
338
|
|
|
281
339
|
### **Op: `assert.equals`**
|
|
282
340
|
Description: Asserts strict equality between two values.
|
|
@@ -388,7 +446,12 @@ await runFromMetadata({
|
|
|
388
446
|
includeTags: ["smoke"],
|
|
389
447
|
defaults: { timeoutMs: 30_000, retries: 1 },
|
|
390
448
|
api: { baseUrl: "https://api.example.com" },
|
|
391
|
-
ui: {
|
|
449
|
+
ui: {
|
|
450
|
+
baseUrl: "https://app.example.com",
|
|
451
|
+
headless: true,
|
|
452
|
+
defaultTimeoutMs: 30_000,
|
|
453
|
+
navigationTimeoutMs: 45_000
|
|
454
|
+
}
|
|
392
455
|
});
|
|
393
456
|
```
|
|
394
457
|
|
|
@@ -409,6 +472,14 @@ Lightweight existing-database workflow:
|
|
|
409
472
|
|
|
410
473
|
For human-assisted OTP or third-party verification flows, use `ui.waitForManual` in a headed run so the browser remains interactive while the scenario is paused.
|
|
411
474
|
|
|
475
|
+
Common `test run` flags (all pass through solidctl unchanged):
|
|
476
|
+
- `--ui-base-url <url>` / `--api-base-url <url>`
|
|
477
|
+
- `--headless [true|false]`
|
|
478
|
+
- `--ui-timeout-ms <number>` — default wait for every UI step (see [Timeouts](#timeouts))
|
|
479
|
+
- `--ui-navigation-timeout-ms <number>` — default wait for `ui.goto`
|
|
480
|
+
- `--timeout-ms <number>` / `--retries <number>` — scenario-level guard and retry count
|
|
481
|
+
- `--scenario-ids <ids>` / `--include-tags <tags>` / `--skip-scenario-ids <ids>`
|
|
482
|
+
|
|
412
483
|
## Add A New Step (SOP)
|
|
413
484
|
1. Create a new `*.step.ts` in the right domain folder.
|
|
414
485
|
2. Implement a `registerXSteps(registry)` function and `registry.register("op.name", handler)`.
|
|
@@ -6,9 +6,13 @@ function isAbsoluteUrl(url: string): boolean {
|
|
|
6
6
|
return /^https?:\/\//i.test(url);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export const DEFAULT_UI_TIMEOUT_MS = 30_000;
|
|
10
|
+
|
|
9
11
|
export class PlaywrightAdapter {
|
|
10
12
|
private readonly baseUrl?: string;
|
|
11
13
|
private readonly headless: boolean;
|
|
14
|
+
private readonly defaultTimeoutMs: number;
|
|
15
|
+
private readonly navigationTimeoutMs: number;
|
|
12
16
|
private browser?: Browser;
|
|
13
17
|
private context?: BrowserContext;
|
|
14
18
|
public page?: Page;
|
|
@@ -16,16 +20,37 @@ export class PlaywrightAdapter {
|
|
|
16
20
|
constructor(opts?: PlaywrightAdapterOptions) {
|
|
17
21
|
this.baseUrl = opts?.baseUrl;
|
|
18
22
|
this.headless = opts?.headless ?? true;
|
|
23
|
+
this.defaultTimeoutMs = opts?.defaultTimeoutMs ?? DEFAULT_UI_TIMEOUT_MS;
|
|
24
|
+
this.navigationTimeoutMs =
|
|
25
|
+
opts?.navigationTimeoutMs ?? this.defaultTimeoutMs;
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
isHeadless(): boolean {
|
|
22
29
|
return this.headless;
|
|
23
30
|
}
|
|
24
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Resolves the timeout for a single Playwright call: an explicit per-step
|
|
34
|
+
* value wins, otherwise the run-wide default applies.
|
|
35
|
+
*/
|
|
36
|
+
resolveTimeout(stepTimeoutMs?: number): number {
|
|
37
|
+
return typeof stepTimeoutMs === 'number' && Number.isFinite(stepTimeoutMs)
|
|
38
|
+
? stepTimeoutMs
|
|
39
|
+
: this.defaultTimeoutMs;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
resolveNavigationTimeout(stepTimeoutMs?: number): number {
|
|
43
|
+
return typeof stepTimeoutMs === 'number' && Number.isFinite(stepTimeoutMs)
|
|
44
|
+
? stepTimeoutMs
|
|
45
|
+
: this.navigationTimeoutMs;
|
|
46
|
+
}
|
|
47
|
+
|
|
25
48
|
async start(): Promise<void> {
|
|
26
49
|
const { chromium } = await import('playwright');
|
|
27
50
|
this.browser = await chromium.launch({ headless: this.headless });
|
|
28
51
|
this.context = await this.browser.newContext();
|
|
52
|
+
this.context.setDefaultTimeout(this.defaultTimeoutMs);
|
|
53
|
+
this.context.setDefaultNavigationTimeout(this.navigationTimeoutMs);
|
|
29
54
|
this.page = await this.context.newPage();
|
|
30
55
|
}
|
|
31
56
|
|
|
@@ -2,8 +2,8 @@ import type { TestContext } from "../../contracts/runtime-context.types";
|
|
|
2
2
|
import type { OpStep } from "../../contracts/testing-metadata.types";
|
|
3
3
|
import { StepRegistry } from "../../core/step-registry";
|
|
4
4
|
|
|
5
|
-
type ClickInput = { selector: string };
|
|
6
|
-
type PressInput = { selector: string; key: string };
|
|
5
|
+
type ClickInput = { selector: string; timeoutMs?: number };
|
|
6
|
+
type PressInput = { selector: string; key: string; timeoutMs?: number };
|
|
7
7
|
|
|
8
8
|
function requirePage(ctx: TestContext, op: string) {
|
|
9
9
|
if (!ctx.ui || !ctx.ui.page) {
|
|
@@ -19,7 +19,9 @@ export function registerActionSteps(registry: StepRegistry): void {
|
|
|
19
19
|
if (!input.selector) {
|
|
20
20
|
throw new Error('Missing "selector" in step.with for op "ui.click"');
|
|
21
21
|
}
|
|
22
|
-
await page.click(input.selector
|
|
22
|
+
await page.click(input.selector, {
|
|
23
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
24
|
+
});
|
|
23
25
|
});
|
|
24
26
|
|
|
25
27
|
registry.register("ui.press", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -31,6 +33,8 @@ export function registerActionSteps(registry: StepRegistry): void {
|
|
|
31
33
|
if (!input.key) {
|
|
32
34
|
throw new Error('Missing "key" in step.with for op "ui.press"');
|
|
33
35
|
}
|
|
34
|
-
await page.press(input.selector, input.key
|
|
36
|
+
await page.press(input.selector, input.key, {
|
|
37
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
38
|
+
});
|
|
35
39
|
});
|
|
36
40
|
}
|
|
@@ -2,8 +2,13 @@ import type { TestContext } from "../../contracts/runtime-context.types";
|
|
|
2
2
|
import type { OpStep } from "../../contracts/testing-metadata.types";
|
|
3
3
|
import { StepRegistry } from "../../core/step-registry";
|
|
4
4
|
|
|
5
|
-
type VisibleInput = { selector: string };
|
|
6
|
-
type ExpectTextInput = {
|
|
5
|
+
type VisibleInput = { selector: string; timeoutMs?: number };
|
|
6
|
+
type ExpectTextInput = {
|
|
7
|
+
selector: string;
|
|
8
|
+
equals?: string;
|
|
9
|
+
contains?: string;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
};
|
|
7
12
|
|
|
8
13
|
function requirePage(ctx: TestContext, op: string) {
|
|
9
14
|
if (!ctx.ui || !ctx.ui.page) {
|
|
@@ -19,7 +24,10 @@ export function registerAssertionSteps(registry: StepRegistry): void {
|
|
|
19
24
|
if (!input.selector) {
|
|
20
25
|
throw new Error('Missing "selector" in step.with for op "ui.expectVisible"');
|
|
21
26
|
}
|
|
22
|
-
await page.waitForSelector(input.selector, {
|
|
27
|
+
await page.waitForSelector(input.selector, {
|
|
28
|
+
state: "visible",
|
|
29
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
30
|
+
});
|
|
23
31
|
});
|
|
24
32
|
|
|
25
33
|
registry.register("ui.expectHidden", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -28,7 +36,10 @@ export function registerAssertionSteps(registry: StepRegistry): void {
|
|
|
28
36
|
if (!input.selector) {
|
|
29
37
|
throw new Error('Missing "selector" in step.with for op "ui.expectHidden"');
|
|
30
38
|
}
|
|
31
|
-
await page.waitForSelector(input.selector, {
|
|
39
|
+
await page.waitForSelector(input.selector, {
|
|
40
|
+
state: "hidden",
|
|
41
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
42
|
+
});
|
|
32
43
|
});
|
|
33
44
|
|
|
34
45
|
registry.register("ui.expectText", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -38,7 +49,9 @@ export function registerAssertionSteps(registry: StepRegistry): void {
|
|
|
38
49
|
throw new Error('Missing "selector" in step.with for op "ui.expectText"');
|
|
39
50
|
}
|
|
40
51
|
|
|
41
|
-
const text = await page
|
|
52
|
+
const text = await page
|
|
53
|
+
.locator(input.selector)
|
|
54
|
+
.innerText({ timeout: ctx.ui?.resolveTimeout(input.timeoutMs) });
|
|
42
55
|
if (input.equals !== undefined) {
|
|
43
56
|
if (text !== input.equals) {
|
|
44
57
|
throw new Error(
|
|
@@ -4,9 +4,13 @@ import type { TestContext } from "../../contracts/runtime-context.types";
|
|
|
4
4
|
import type { OpStep } from "../../contracts/testing-metadata.types";
|
|
5
5
|
import { StepRegistry } from "../../core/step-registry";
|
|
6
6
|
|
|
7
|
-
type FillInput = { selector: string; value: string };
|
|
8
|
-
type SelectInput = { selector: string; value: string };
|
|
9
|
-
type UploadFileInput = {
|
|
7
|
+
type FillInput = { selector: string; value: string; timeoutMs?: number };
|
|
8
|
+
type SelectInput = { selector: string; value: string; timeoutMs?: number };
|
|
9
|
+
type UploadFileInput = {
|
|
10
|
+
selector: string;
|
|
11
|
+
filePath: string | string[];
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
};
|
|
10
14
|
|
|
11
15
|
function requirePage(ctx: TestContext, op: string) {
|
|
12
16
|
if (!ctx.ui || !ctx.ui.page) {
|
|
@@ -25,7 +29,9 @@ export function registerFormSteps(registry: StepRegistry): void {
|
|
|
25
29
|
if (input.value === undefined) {
|
|
26
30
|
throw new Error('Missing "value" in step.with for op "ui.fill"');
|
|
27
31
|
}
|
|
28
|
-
await page.fill(input.selector, String(input.value)
|
|
32
|
+
await page.fill(input.selector, String(input.value), {
|
|
33
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
34
|
+
});
|
|
29
35
|
});
|
|
30
36
|
|
|
31
37
|
registry.register("ui.select", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -37,7 +43,9 @@ export function registerFormSteps(registry: StepRegistry): void {
|
|
|
37
43
|
if (input.value === undefined) {
|
|
38
44
|
throw new Error('Missing "value" in step.with for op "ui.select"');
|
|
39
45
|
}
|
|
40
|
-
await page.selectOption(input.selector, String(input.value)
|
|
46
|
+
await page.selectOption(input.selector, String(input.value), {
|
|
47
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
48
|
+
});
|
|
41
49
|
});
|
|
42
50
|
|
|
43
51
|
registry.register("ui.uploadFile", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -53,6 +61,8 @@ export function registerFormSteps(registry: StepRegistry): void {
|
|
|
53
61
|
const resolved = Array.isArray(input.filePath)
|
|
54
62
|
? input.filePath.map((p) => path.resolve(cwd, String(p)))
|
|
55
63
|
: path.resolve(cwd, String(input.filePath));
|
|
56
|
-
await page.setInputFiles(input.selector, resolved
|
|
64
|
+
await page.setInputFiles(input.selector, resolved, {
|
|
65
|
+
timeout: ctx.ui?.resolveTimeout(input.timeoutMs),
|
|
66
|
+
});
|
|
57
67
|
});
|
|
58
68
|
}
|
|
@@ -28,7 +28,7 @@ export function registerManualSteps(registry: StepRegistry): void {
|
|
|
28
28
|
const inputConfig = (step.with ?? {}) as WaitForManualInput;
|
|
29
29
|
const message = inputConfig.message?.trim() || "Manual interaction required.";
|
|
30
30
|
const prompt = inputConfig.prompt?.trim() || "Press Enter to continue...";
|
|
31
|
-
const timeoutMs = inputConfig.timeoutMs;
|
|
31
|
+
const timeoutMs = ctx.ui?.resolveTimeout(inputConfig.timeoutMs);
|
|
32
32
|
const bringToFront = inputConfig.bringToFront ?? true;
|
|
33
33
|
|
|
34
34
|
if (ctx.ui?.isHeadless()) {
|
|
@@ -2,7 +2,7 @@ import type { TestContext } from "../../contracts/runtime-context.types";
|
|
|
2
2
|
import type { OpStep } from "../../contracts/testing-metadata.types";
|
|
3
3
|
import { StepRegistry } from "../../core/step-registry";
|
|
4
4
|
|
|
5
|
-
type GotoInput = { url: string };
|
|
5
|
+
type GotoInput = { url: string; timeoutMs?: number };
|
|
6
6
|
type ExpectUrlInput = { equals?: string; contains?: string };
|
|
7
7
|
|
|
8
8
|
function requirePage(ctx: TestContext, op: string) {
|
|
@@ -20,7 +20,9 @@ export function registerNavigationSteps(registry: StepRegistry): void {
|
|
|
20
20
|
throw new Error('Missing "url" in step.with for op "ui.goto"');
|
|
21
21
|
}
|
|
22
22
|
const url = ctx.ui?.resolveUrl(input.url) ?? input.url;
|
|
23
|
-
await page.goto(url
|
|
23
|
+
await page.goto(url, {
|
|
24
|
+
timeout: ctx.ui?.resolveNavigationTimeout(input.timeoutMs),
|
|
25
|
+
});
|
|
24
26
|
});
|
|
25
27
|
|
|
26
28
|
registry.register("ui.expectUrl", async (ctx: TestContext, step: OpStep) => {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TransformFnParams } from "class-transformer";
|
|
2
|
+
|
|
3
|
+
export const emptyStringToNullTransformer = ({ value }: TransformFnParams) => {
|
|
4
|
+
if (typeof value === "string" && value.trim() === "") {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default emptyStringToNullTransformer;
|