@solidxai/core 0.1.13-beta.2 → 0.1.13-beta.21
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 +10107 -0
- package/CLAUDE.md +5 -6
- package/README.md +19 -0
- package/dist/commands/run-tests.command.d.ts +9 -1
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +69 -6
- 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/config/cache.options.d.ts.map +1 -1
- package/dist/config/cache.options.js +2 -2
- package/dist/config/cache.options.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/error-messages.d.ts +7 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +7 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/media-file-types.d.ts +12 -0
- package/dist/constants/media-file-types.d.ts.map +1 -1
- package/dist/constants/media-file-types.js +66 -1
- package/dist/constants/media-file-types.js.map +1 -1
- package/dist/constants/success-messages.d.ts +3 -0
- package/dist/constants/success-messages.d.ts.map +1 -1
- package/dist/constants/success-messages.js +3 -0
- package/dist/constants/success-messages.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/authentication.controller.d.ts +1 -1
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +4 -3
- package/dist/controllers/authentication.controller.js.map +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/field-metadata.controller.d.ts +2 -2
- 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/mpin-authentication.controller.d.ts +44 -0
- package/dist/controllers/mpin-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/mpin-authentication.controller.js +102 -0
- package/dist/controllers/mpin-authentication.controller.js.map +1 -0
- 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 +1 -1
- package/dist/controllers/workflow-definition.controller.js +1 -1
- package/dist/controllers/workflow-execution-artifact.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution-artifact.controller.js +1 -1
- package/dist/controllers/workflow-execution-log.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution-log.controller.js +1 -1
- package/dist/controllers/workflow-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution.controller.js +1 -1
- package/dist/controllers/workflow-secret.controller.d.ts +1 -1
- package/dist/controllers/workflow-secret.controller.js +1 -1
- package/dist/controllers/workflow-step-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-step-execution.controller.js +1 -1
- package/dist/controllers/workflow-trigger-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-trigger-execution.controller.js +1 -1
- 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/change-mpin.dto.d.ts +6 -0
- package/dist/dtos/change-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/change-mpin.dto.js +39 -0
- package/dist/dtos/change-mpin.dto.js.map +1 -0
- package/dist/dtos/create-field-metadata.dto.d.ts +3 -6
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +15 -10
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-sequence.dto.js +1 -1
- package/dist/dtos/create-model-sequence.dto.js.map +1 -1
- package/dist/dtos/mpin-login.dto.d.ts +5 -0
- package/dist/dtos/mpin-login.dto.d.ts.map +1 -0
- package/dist/dtos/mpin-login.dto.js +33 -0
- package/dist/dtos/mpin-login.dto.js.map +1 -0
- package/dist/dtos/setup-mpin.dto.d.ts +7 -0
- package/dist/dtos/setup-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/setup-mpin.dto.js +47 -0
- package/dist/dtos/setup-mpin.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/field-metadata.entity.d.ts +1 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +5 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.js +3 -3
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/user-device-credential.entity.d.ts +18 -0
- package/dist/entities/user-device-credential.entity.d.ts.map +1 -0
- package/dist/entities/user-device-credential.entity.js +91 -0
- package/dist/entities/user-device-credential.entity.js.map +1 -0
- 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-execution-artifact.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-artifact.entity.js +4 -3
- package/dist/entities/workflow-execution-artifact.entity.js.map +1 -1
- package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-log.entity.js +4 -3
- package/dist/entities/workflow-execution-log.entity.js.map +1 -1
- package/dist/entities/workflow-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution.entity.js +3 -2
- package/dist/entities/workflow-execution.entity.js.map +1 -1
- package/dist/entities/workflow-secret.entity.d.ts.map +1 -1
- package/dist/entities/workflow-secret.entity.js +3 -2
- package/dist/entities/workflow-secret.entity.js.map +1 -1
- package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-step-execution.entity.js +3 -2
- package/dist/entities/workflow-step-execution.entity.js.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.js +7 -6
- package/dist/entities/workflow-trigger-execution.entity.js.map +1 -1
- 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/filters/http-exception.filter.d.ts.map +1 -1
- package/dist/filters/http-exception.filter.js +5 -1
- package/dist/filters/http-exception.filter.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +5 -2
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +7 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +7 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +66 -32
- 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 +19 -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/security.helper.d.ts +5 -1
- package/dist/helpers/security.helper.d.ts.map +1 -1
- package/dist/helpers/security.helper.js +15 -4
- package/dist/helpers/security.helper.js.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.js +45 -0
- package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.js +1 -1
- package/dist/helpers/solid-microservice-adapter.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 +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/active-user-data.interface.d.ts +1 -0
- package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
- package/dist/interfaces/active-user-data.interface.js.map +1 -1
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/repository/user-device-credential.repository.d.ts +12 -0
- package/dist/repository/user-device-credential.repository.d.ts.map +1 -0
- package/dist/repository/user-device-credential.repository.js +34 -0
- package/dist/repository/user-device-credential.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +51 -30
- 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 +290 -78
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js +1 -1
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +9 -5
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +102 -23
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +16 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +100 -16
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +6 -4
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +32 -48
- 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 +94 -68
- 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 +53 -0
- package/dist/services/draft-publish-helper.service.d.ts.map +1 -0
- package/dist/services/draft-publish-helper.service.js +402 -0
- package/dist/services/draft-publish-helper.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts +2 -2
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +4 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- 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-storage.utils.d.ts +1 -0
- package/dist/services/media-storage.utils.d.ts.map +1 -1
- package/dist/services/media-storage.utils.js +12 -1
- package/dist/services/media-storage.utils.js.map +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 +45 -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/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +9 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mpin.service.d.ts +67 -0
- package/dist/services/mpin.service.d.ts.map +1 -0
- package/dist/services/mpin.service.js +282 -0
- package/dist/services/mpin.service.js.map +1 -0
- 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/refresh-token-ids-storage.service.d.ts +25 -6
- package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.js +80 -42
- package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +6 -1
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +248 -12
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +143 -6
- 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 +2 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/for-each.node.js +114 -5
- package/dist/services/workflow/nodes/for-each.node.js.map +1 -1
- package/dist/services/workflow/nodes/if.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/if.node.js +7 -0
- package/dist/services/workflow/nodes/if.node.js.map +1 -1
- package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/log-write.node.js +2 -0
- package/dist/services/workflow/nodes/log-write.node.js.map +1 -1
- 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.map +1 -1
- package/dist/services/workflow/nodes/parallel.node.js +7 -0
- package/dist/services/workflow/nodes/parallel.node.js.map +1 -1
- package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/sequential.node.js +7 -0
- package/dist/services/workflow/nodes/sequential.node.js.map +1 -1
- package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/switch.node.js +7 -0
- package/dist/services/workflow/nodes/switch.node.js.map +1 -1
- package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-definition-validator.service.js +5 -2
- package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -1
- package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-expression.service.js +5 -0
- package/dist/services/workflow/workflow-expression.service.js.map +1 -1
- package/dist/services/workflow/workflow-node-registry.service.d.ts +2 -1
- package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-node-registry.service.js +7 -0
- package/dist/services/workflow/workflow-node-registry.service.js.map +1 -1
- package/dist/services/workflow/workflow-runtime.service.d.ts +8 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-runtime.service.js +197 -32
- package/dist/services/workflow/workflow-runtime.service.js.map +1 -1
- package/dist/services/workflow-definition.service.d.ts +1 -1
- package/dist/solid-core.module.d.ts +1 -3
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +28 -40
- 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/reporter/console-reporter.d.ts +3 -0
- package/dist/testing/reporter/console-reporter.d.ts.map +1 -1
- package/dist/testing/reporter/console-reporter.js +2 -0
- package/dist/testing/reporter/console-reporter.js.map +1 -1
- package/dist/testing/reporter/progress-reporter.d.ts +64 -0
- package/dist/testing/reporter/progress-reporter.d.ts.map +1 -0
- package/dist/testing/reporter/progress-reporter.js +224 -0
- package/dist/testing/reporter/progress-reporter.js.map +1 -0
- package/dist/testing/reporter/reporter.types.d.ts +3 -0
- package/dist/testing/reporter/reporter.types.d.ts.map +1 -1
- package/dist/testing/reporter/reporter.types.js.map +1 -1
- package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
- package/dist/testing/runner/run-from-metadata.js +1 -0
- package/dist/testing/runner/run-from-metadata.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/theme/theme-registry.d.ts +14 -0
- package/dist/theme/theme-registry.d.ts.map +1 -0
- package/dist/theme/theme-registry.js +147 -0
- package/dist/theme/theme-registry.js.map +1 -0
- package/dist/types/workflow-dsl.types.d.ts +14 -0
- package/dist/types/workflow-dsl.types.d.ts.map +1 -1
- package/dist/types/workflow-dsl.types.js.map +1 -1
- package/package.json +2 -2
- package/src/commands/run-tests.command.ts +64 -4
- package/src/commands/seed.command.ts +19 -0
- package/src/config/cache.options.ts +9 -1
- package/src/constants/chatter-message.constants.ts +12 -0
- package/src/constants/draft-publish-fields.ts +5 -0
- package/src/constants/error-messages.ts +14 -0
- package/src/constants/media-file-types.ts +128 -0
- package/src/constants/success-messages.ts +5 -0
- package/src/constants/user.constants.ts +13 -0
- package/src/controllers/authentication.controller.ts +5 -2
- 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/mpin-authentication.controller.ts +67 -0
- package/src/dtos/basic-filters.dto.ts +0 -4
- package/src/dtos/change-mpin.dto.ts +18 -0
- package/src/dtos/create-field-metadata.dto.ts +17 -9
- package/src/dtos/create-model-sequence.dto.ts +1 -1
- package/src/dtos/mpin-login.dto.ts +24 -0
- package/src/dtos/setup-mpin.dto.ts +51 -0
- package/src/entities/common.entity.ts +24 -0
- package/src/entities/dashboard-user-layout.entity.ts +2 -2
- package/src/entities/field-metadata.entity.ts +3 -0
- package/src/entities/saved-filters.entity.ts +3 -3
- package/src/entities/user-device-credential.entity.ts +130 -0
- package/src/entities/user.entity.ts +53 -36
- package/src/entities/view-metadata.entity.ts +2 -2
- package/src/entities/workflow-execution-artifact.entity.ts +4 -3
- package/src/entities/workflow-execution-log.entity.ts +4 -3
- package/src/entities/workflow-execution.entity.ts +3 -2
- package/src/entities/workflow-secret.entity.ts +3 -2
- package/src/entities/workflow-step-execution.entity.ts +3 -2
- package/src/entities/workflow-trigger-execution.entity.ts +7 -6
- package/src/factories/mail.factory.ts +7 -1
- package/src/filters/http-exception.filter.ts +11 -1
- package/src/helpers/bootstrap.helper.ts +43 -6
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +90 -37
- package/src/helpers/file-download.helper.ts +45 -0
- package/src/helpers/model-metadata-helper.service.ts +32 -1
- package/src/helpers/security.helper.ts +35 -8
- package/src/helpers/solid-core-error-codes-provider.service.ts +53 -0
- package/src/helpers/solid-microservice-adapter.service.ts +6 -1
- package/src/helpers/solid-registry.ts +1 -1
- package/src/helpers/typeorm-db-helper.ts +12 -1
- package/src/index.ts +10 -0
- package/src/interfaces/active-user-data.interface.ts +9 -0
- package/src/interfaces.ts +1 -0
- package/src/repository/user-device-credential.repository.ts +17 -0
- package/src/seeders/module-metadata-seeder.service.ts +61 -39
- package/src/seeders/module-test-data.service.ts +6 -0
- package/src/seeders/seed-data/solid-core-metadata.json +290 -78
- package/src/services/api-key.service.ts +13 -1
- package/src/services/authentication.service.ts +203 -41
- package/src/services/chatter-message.service.ts +180 -19
- package/src/services/crud-helper.service.ts +35 -50
- package/src/services/crud.service.ts +132 -105
- package/src/services/datasource-introspection.service.ts +5 -0
- package/src/services/draft-publish-helper.service.ts +581 -0
- package/src/services/field-metadata.service.ts +5 -2
- package/src/services/internationalisation-helper.service.ts +148 -0
- package/src/services/media-storage.utils.ts +26 -1
- package/src/services/media.service.ts +68 -36
- package/src/services/metadata-validation.service.ts +39 -0
- package/src/services/model-metadata.service.ts +4 -1
- package/src/services/module-metadata.service.ts +10 -1
- package/src/services/mpin.service.ts +447 -0
- package/src/services/object.utils.ts +10 -0
- package/src/services/refresh-token-ids-storage.service.ts +229 -90
- package/src/services/setting.service.ts +8 -1
- package/src/services/settings/default-settings-provider.service.ts +154 -6
- 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 +140 -6
- package/src/services/workflow/nodes/if.node.ts +7 -0
- package/src/services/workflow/nodes/log-write.node.ts +2 -0
- package/src/services/workflow/nodes/loop-until.node.ts +343 -0
- package/src/services/workflow/nodes/parallel.node.ts +7 -0
- package/src/services/workflow/nodes/sequential.node.ts +7 -0
- package/src/services/workflow/nodes/switch.node.ts +7 -0
- package/src/services/workflow/workflow-definition-validator.service.ts +5 -2
- package/src/services/workflow/workflow-expression.service.ts +5 -0
- package/src/services/workflow/workflow-node-registry.service.ts +11 -0
- package/src/services/workflow/workflow-runtime.service.ts +274 -39
- package/src/solid-core.module.ts +46 -15
- package/src/testing/README.md +75 -3
- package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
- package/src/testing/adapters/ui/ui.types.ts +2 -0
- package/src/testing/reporter/console-reporter.ts +4 -0
- package/src/testing/reporter/progress-reporter.ts +251 -0
- package/src/testing/reporter/reporter.types.ts +3 -0
- package/src/testing/runner/run-from-metadata.ts +1 -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/theme/theme-registry.ts +181 -0
- package/src/types/workflow-dsl.types.ts +43 -0
|
@@ -10,9 +10,13 @@ import { FieldMetadataRepository } from '../repository/field-metadata.repository
|
|
|
10
10
|
import { MediaRepository } from '../repository/media.repository';
|
|
11
11
|
import { ModelMetadataRepository } from '../repository/model-metadata.repository';
|
|
12
12
|
import { CRUDService } from '../services/crud.service';
|
|
13
|
+
import { BasicFilterDto } from '../dtos/basic-filters.dto';
|
|
13
14
|
import { ChatterMessage } from '../entities/chatter-message.entity';
|
|
14
15
|
import { RequestContextService } from './request-context.service';
|
|
15
16
|
import { PublisherFactory } from './queues/publisher-factory.service';
|
|
17
|
+
export interface PostChatterMessageOptions {
|
|
18
|
+
createdAt?: Date;
|
|
19
|
+
}
|
|
16
20
|
export declare class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
17
21
|
readonly entityManager: EntityManager;
|
|
18
22
|
readonly repo: ChatterMessageRepository;
|
|
@@ -31,14 +35,25 @@ export declare class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
31
35
|
private resolveMessageUserId;
|
|
32
36
|
private resolveMessageUser;
|
|
33
37
|
private stampMessageAuditFields;
|
|
38
|
+
private trimMessageUser;
|
|
39
|
+
private trimMessageUsers;
|
|
40
|
+
find(basicFilterDto: BasicFilterDto, solidRequestContext?: any): Promise<any>;
|
|
41
|
+
findOne(id: number, query?: any, solidRequestContext?: any): Promise<ChatterMessage>;
|
|
34
42
|
private isEditableCustomNoteMessage;
|
|
35
43
|
private parseAttachmentIds;
|
|
36
44
|
private parseMessageBodyMentions;
|
|
37
45
|
private renderMentionTokens;
|
|
46
|
+
private validateChatterMediaFiles;
|
|
47
|
+
private validateChatterAttachmentsForFields;
|
|
38
48
|
private publishChatterMentionNotifications;
|
|
49
|
+
getMentionableUsers(search?: string, limit?: number): Promise<Array<{
|
|
50
|
+
id: number;
|
|
51
|
+
username: string;
|
|
52
|
+
fullName: string;
|
|
53
|
+
}>>;
|
|
39
54
|
markCompleted(id: number): Promise<ChatterMessage>;
|
|
40
55
|
updateCustomNoteMessage(id: number, updateDto: UpdateChatterNoteMessageDto, files?: Express.Multer.File[]): Promise<ChatterMessage>;
|
|
41
|
-
postMessage(postDto: PostChatterMessageDto, files?: Express.Multer.File[]): Promise<ChatterMessage>;
|
|
56
|
+
postMessage(postDto: PostChatterMessageDto, files?: Express.Multer.File[], options?: PostChatterMessageOptions): Promise<ChatterMessage>;
|
|
42
57
|
postAuditMessageOnInsert(entity: any, modelName: string, messageQueue?: boolean, userId?: number | null): Promise<void>;
|
|
43
58
|
postAuditMessageOnUpdate(entity: any, modelName: string, databaseEntity: any, updatedColumns?: any[], messageQueue?: boolean, userId?: number | null): Promise<void>;
|
|
44
59
|
postAuditMessageOnDelete(modelName: string, databaseEntity: any, messageQueue?: boolean, userId?: number | null): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatter-message.service.d.ts","sourceRoot":"","sources":["../../src/services/chatter-message.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAY,aAAa,EAAsB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"chatter-message.service.d.ts","sourceRoot":"","sources":["../../src/services/chatter-message.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,9 @@ const typeorm_1 = require("@nestjs/typeorm");
|
|
|
21
21
|
const typeorm_2 = require("typeorm");
|
|
22
22
|
const strings_1 = require("@angular-devkit/core/src/utils/strings");
|
|
23
23
|
const chatter_message_constants_1 = require("../constants/chatter-message.constants");
|
|
24
|
+
const media_file_types_1 = require("../constants/media-file-types");
|
|
24
25
|
const error_messages_1 = require("../constants/error-messages");
|
|
26
|
+
const MediaFieldCrudManager_1 = require("../helpers/field-crud-managers/MediaFieldCrudManager");
|
|
25
27
|
const model_metadata_helper_service_1 = require("../helpers/model-metadata-helper.service");
|
|
26
28
|
const string_helper_1 = require("../helpers/string.helper");
|
|
27
29
|
const chatter_message_details_repository_1 = require("../repository/chatter-message-details.repository");
|
|
@@ -32,6 +34,7 @@ const model_metadata_repository_1 = require("../repository/model-metadata.reposi
|
|
|
32
34
|
const crud_service_1 = require("./crud.service");
|
|
33
35
|
const chatter_message_details_entity_1 = require("../entities/chatter-message-details.entity");
|
|
34
36
|
const chatter_message_entity_1 = require("../entities/chatter-message.entity");
|
|
37
|
+
const user_entity_1 = require("../entities/user.entity");
|
|
35
38
|
const mediaStorageProviders_1 = require("./mediaStorageProviders");
|
|
36
39
|
const request_context_service_1 = require("./request-context.service");
|
|
37
40
|
const common_2 = require("@nestjs/common");
|
|
@@ -85,6 +88,26 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
85
88
|
chatterMessage.createdBy = resolvedUserId;
|
|
86
89
|
chatterMessage.updatedBy = resolvedUserId;
|
|
87
90
|
}
|
|
91
|
+
trimMessageUser(message) {
|
|
92
|
+
if (message?.user) {
|
|
93
|
+
message.user = this.toUserSummary(message.user);
|
|
94
|
+
}
|
|
95
|
+
return message;
|
|
96
|
+
}
|
|
97
|
+
trimMessageUsers(messages) {
|
|
98
|
+
messages?.forEach(message => this.trimMessageUser(message));
|
|
99
|
+
}
|
|
100
|
+
async find(basicFilterDto, solidRequestContext = {}) {
|
|
101
|
+
const result = await super.find(basicFilterDto, solidRequestContext);
|
|
102
|
+
this.trimMessageUsers(result?.records);
|
|
103
|
+
for (const groupRecord of result?.groupRecords ?? []) {
|
|
104
|
+
this.trimMessageUsers(groupRecord?.groupData?.records);
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
async findOne(id, query = {}, solidRequestContext = {}) {
|
|
109
|
+
return this.trimMessageUser(await super.findOne(id, query, solidRequestContext));
|
|
110
|
+
}
|
|
88
111
|
isEditableCustomNoteMessage(message) {
|
|
89
112
|
if (message.messageType !== chatter_message_constants_1.CHATTER_MESSAGE_TYPE.CUSTOM) {
|
|
90
113
|
return false;
|
|
@@ -118,6 +141,31 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
118
141
|
return nextMessage.replace(new RegExp(`\\{\\{\\s*${index}\\s*\\}\\}`, 'g'), `@${username}`);
|
|
119
142
|
}, messageBody || '');
|
|
120
143
|
}
|
|
144
|
+
validateChatterMediaFiles(files = []) {
|
|
145
|
+
if (Array.isArray(files) && files.some(file => (0, media_file_types_1.isDangerousMediaFile)(file))) {
|
|
146
|
+
throw new common_1.BadRequestException('Dangerous file types are not allowed in chatter attachments.');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
validateChatterAttachmentsForFields(files, mediaFields, isUpdate) {
|
|
150
|
+
for (const mediaField of mediaFields) {
|
|
151
|
+
const media = files.filter(multerFile => multerFile.fieldname === mediaField.name);
|
|
152
|
+
if (media.length === 0)
|
|
153
|
+
continue;
|
|
154
|
+
const validator = new MediaFieldCrudManager_1.MediaFieldCrudManager({
|
|
155
|
+
type: mediaField.type,
|
|
156
|
+
required: mediaField.required,
|
|
157
|
+
fieldName: mediaField.name,
|
|
158
|
+
mediaMaxSizeKb: mediaField.mediaMaxSizeKb,
|
|
159
|
+
mediaTypes: mediaField.mediaTypes,
|
|
160
|
+
mediaAllowedExtensions: mediaField.mediaAllowedExtensions,
|
|
161
|
+
isUpdate,
|
|
162
|
+
});
|
|
163
|
+
const validationErrors = validator.validate({}, media);
|
|
164
|
+
if (validationErrors.length > 0) {
|
|
165
|
+
throw new common_1.BadRequestException(validationErrors.map(error => error.error).join(', '));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
121
169
|
async publishChatterMentionNotifications(message, model) {
|
|
122
170
|
if (message.messageType !== chatter_message_constants_1.CHATTER_MESSAGE_TYPE.CUSTOM || message.messageSubType !== chatter_message_constants_1.CHATTER_MESSAGE_SUBTYPE.NOTE) {
|
|
123
171
|
return;
|
|
@@ -166,6 +214,23 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
166
214
|
this._logger.error(`Failed to publish chatter mention notification email job: ${error.message}`, error.stack);
|
|
167
215
|
}
|
|
168
216
|
}
|
|
217
|
+
async getMentionableUsers(search, limit = 8) {
|
|
218
|
+
const normalizedLimit = Number.isInteger(limit) && limit > 0 && limit <= 50 ? limit : 8;
|
|
219
|
+
const userRepository = this.entityManager.getRepository(user_entity_1.User);
|
|
220
|
+
const qb = userRepository
|
|
221
|
+
.createQueryBuilder('user')
|
|
222
|
+
.select(['user.id', 'user.username', 'user.fullName'])
|
|
223
|
+
.where('user.active = :active', { active: true });
|
|
224
|
+
const trimmedSearch = (search ?? '').trim();
|
|
225
|
+
if (trimmedSearch) {
|
|
226
|
+
qb.andWhere('(LOWER(user.username) LIKE :search OR LOWER(user.fullName) LIKE :search)', {
|
|
227
|
+
search: `%${trimmedSearch.toLowerCase()}%`,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
qb.orderBy('user.username', 'ASC').take(normalizedLimit);
|
|
231
|
+
const users = await qb.getMany();
|
|
232
|
+
return users.map(user => ({ id: user.id, username: user.username, fullName: user.fullName }));
|
|
233
|
+
}
|
|
169
234
|
async markCompleted(id) {
|
|
170
235
|
const activeUser = this.requestContextService.getActiveUser();
|
|
171
236
|
if (!activeUser) {
|
|
@@ -206,6 +271,22 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
206
271
|
if (hasMessageBody && trimmedMessageBody.length === 0) {
|
|
207
272
|
throw new common_1.BadRequestException('Message body cannot be empty.');
|
|
208
273
|
}
|
|
274
|
+
this.validateChatterMediaFiles(files);
|
|
275
|
+
let chatterModel = null;
|
|
276
|
+
let mediaFields = [];
|
|
277
|
+
if (removeAttachmentIds.length > 0 || hasNewFiles) {
|
|
278
|
+
chatterModel = await this.modelMetadataService.findOneBySingularName('chatterMessage', {
|
|
279
|
+
fields: {
|
|
280
|
+
model: true,
|
|
281
|
+
mediaStorageProvider: true,
|
|
282
|
+
},
|
|
283
|
+
module: true,
|
|
284
|
+
});
|
|
285
|
+
mediaFields = chatterModel.fields.filter(field => field.type === 'mediaSingle' || field.type === 'mediaMultiple');
|
|
286
|
+
if (hasNewFiles) {
|
|
287
|
+
this.validateChatterAttachmentsForFields(files, mediaFields, true);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
209
290
|
if (hasMessageBody) {
|
|
210
291
|
message.messageBody = trimmedMessageBody;
|
|
211
292
|
}
|
|
@@ -220,21 +301,13 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
220
301
|
message.updatedAt = new Date();
|
|
221
302
|
const savedMessage = await this.repo.save(message);
|
|
222
303
|
if (removeAttachmentIds.length > 0 || hasNewFiles) {
|
|
223
|
-
const model = await this.modelMetadataService.findOneBySingularName('chatterMessage', {
|
|
224
|
-
fields: {
|
|
225
|
-
model: true,
|
|
226
|
-
mediaStorageProvider: true,
|
|
227
|
-
},
|
|
228
|
-
module: true,
|
|
229
|
-
});
|
|
230
|
-
const mediaFields = model.fields.filter(field => field.type === 'mediaSingle' || field.type === 'mediaMultiple');
|
|
231
304
|
const attachmentFieldIds = mediaFields.map(field => field.id);
|
|
232
305
|
if (removeAttachmentIds.length > 0 && attachmentFieldIds.length > 0) {
|
|
233
306
|
const mediaToRemove = await this.mediaRepository.find({
|
|
234
307
|
where: {
|
|
235
308
|
id: (0, typeorm_2.In)(removeAttachmentIds),
|
|
236
309
|
entityId: savedMessage.id,
|
|
237
|
-
modelMetadata: { id:
|
|
310
|
+
modelMetadata: { id: chatterModel.id },
|
|
238
311
|
fieldMetadata: { id: (0, typeorm_2.In)(attachmentFieldIds) },
|
|
239
312
|
},
|
|
240
313
|
relations: {
|
|
@@ -262,11 +335,12 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
262
335
|
}
|
|
263
336
|
}
|
|
264
337
|
await this.publishChatterMentionNotifications(savedMessage, model);
|
|
265
|
-
return savedMessage;
|
|
338
|
+
return this.trimMessageUser(savedMessage);
|
|
266
339
|
}
|
|
267
|
-
async postMessage(postDto, files = []) {
|
|
340
|
+
async postMessage(postDto, files = [], options = {}) {
|
|
268
341
|
const coModelName = (0, string_helper_1.lowerFirst)(postDto.coModelName);
|
|
269
342
|
await this.assertRecordAccess(coModelName, postDto.coModelEntityId);
|
|
343
|
+
this.validateChatterMediaFiles(files);
|
|
270
344
|
const chatterMessage = new chatter_message_entity_1.ChatterMessage();
|
|
271
345
|
chatterMessage.messageType = chatter_message_constants_1.CHATTER_MESSAGE_TYPE.CUSTOM;
|
|
272
346
|
chatterMessage.messageSubType = postDto.messageSubType || chatter_message_constants_1.CHATTER_MESSAGE_SUBTYPE.CUSTOM;
|
|
@@ -276,22 +350,29 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
276
350
|
chatterMessage.coModelEntityId = postDto.coModelEntityId;
|
|
277
351
|
chatterMessage.coModelName = coModelName;
|
|
278
352
|
chatterMessage.modelUserKey = postDto.modelUserKey ?? null;
|
|
353
|
+
if (options.createdAt) {
|
|
354
|
+
chatterMessage.createdAt = options.createdAt;
|
|
355
|
+
}
|
|
279
356
|
const model = await this.modelMetadataRepo.findOne({
|
|
280
357
|
where: { singularName: coModelName },
|
|
281
358
|
relations: { userKeyField: true, module: true }
|
|
282
359
|
});
|
|
283
360
|
chatterMessage.modelDisplayName = model?.displayName ?? null;
|
|
284
361
|
this.stampMessageAuditFields(chatterMessage);
|
|
285
|
-
|
|
362
|
+
let mediaFields = [];
|
|
286
363
|
if (files && files.length > 0) {
|
|
287
|
-
const
|
|
364
|
+
const chatterModel = await this.modelMetadataService.findOneBySingularName('chatterMessage', {
|
|
288
365
|
fields: {
|
|
289
366
|
model: true,
|
|
290
367
|
mediaStorageProvider: true,
|
|
291
368
|
},
|
|
292
369
|
module: true,
|
|
293
370
|
});
|
|
294
|
-
|
|
371
|
+
mediaFields = chatterModel.fields.filter(field => field.type === 'mediaSingle' || field.type === 'mediaMultiple');
|
|
372
|
+
this.validateChatterAttachmentsForFields(files, mediaFields, false);
|
|
373
|
+
}
|
|
374
|
+
const savedMessage = await this.repo.save(chatterMessage);
|
|
375
|
+
if (files && files.length > 0) {
|
|
295
376
|
for (const mediaField of mediaFields) {
|
|
296
377
|
const media = files.filter(multerFile => multerFile.fieldname === mediaField.name);
|
|
297
378
|
if (media.length > 0) {
|
|
@@ -734,14 +815,16 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
734
815
|
qb.andWhere(new typeorm_2.Brackets(qb => {
|
|
735
816
|
qb.where(orConditions.join(' OR '), parameters);
|
|
736
817
|
}));
|
|
737
|
-
const relations = ['chatterMessageDetails'
|
|
818
|
+
const relations = ['chatterMessageDetails'];
|
|
738
819
|
if (populate && populate.length > 0) {
|
|
739
820
|
const normalizedPopulate = this.crudHelperService.normalize(populate);
|
|
740
|
-
relations.push(...normalizedPopulate.filter(rel => !relations.includes(rel)));
|
|
821
|
+
relations.push(...normalizedPopulate.filter(rel => rel !== 'user' && !relations.includes(rel)));
|
|
741
822
|
}
|
|
742
823
|
relations.forEach(relation => {
|
|
743
824
|
qb.leftJoinAndSelect(`entity.${relation}`, relation);
|
|
744
825
|
});
|
|
826
|
+
qb.leftJoin('entity.user', 'user');
|
|
827
|
+
qb.addSelect(chatter_message_constants_1.CHATTER_MESSAGE_USER_FIELDS.map(field => `user.${field}`));
|
|
745
828
|
if (filters) {
|
|
746
829
|
qb.andWhere(new typeorm_2.Brackets(whereQb => {
|
|
747
830
|
this.crudHelperService.applyFilters(whereQb, filters, 'entity', qb);
|
|
@@ -751,6 +834,7 @@ let ChatterMessageService = ChatterMessageService_1 = class ChatterMessageServic
|
|
|
751
834
|
qb.skip(offset).take(limit);
|
|
752
835
|
const [entities, count] = await qb.getManyAndCount();
|
|
753
836
|
this.logHeapUsed('getChatterMessages-entitiesLoaded');
|
|
837
|
+
this.trimMessageUsers(entities);
|
|
754
838
|
const DATE_FIELD_TYPES = ['date', 'datetime', 'time'];
|
|
755
839
|
for (const entity of entities) {
|
|
756
840
|
for (const detail of entity.chatterMessageDetails ?? []) {
|