@solidxai/core 0.1.9-beta.1 → 0.1.9-beta.2
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/dist/commands/fixtures/fixtures-setup.command.d.ts +1 -1
- package/dist/commands/fixtures/fixtures-tear-down.command.d.ts +1 -1
- package/dist/commands/info.command.d.ts +3 -3
- package/dist/commands/ingest.command.d.ts +2 -2
- package/dist/commands/mcp.command.d.ts +1 -1
- package/dist/commands/refresh-model.command.d.ts +1 -1
- package/dist/commands/remove-fields.command.d.ts +1 -1
- package/dist/commands/run-tests.command.d.ts +1 -1
- package/dist/commands/seed.command.d.ts +1 -1
- package/dist/commands/test-data.command.d.ts +1 -1
- package/dist/controllers/action-metadata.controller.d.ts +1 -1
- package/dist/controllers/agent-event.controller.d.ts +3 -3
- package/dist/controllers/agent-session.controller.d.ts +3 -3
- package/dist/controllers/ai-interaction.controller.d.ts +1 -1
- package/dist/controllers/dashboard-layout.controller.d.ts +3 -3
- package/dist/controllers/dashboard-question.controller.d.ts +1 -1
- package/dist/controllers/dashboard.controller.d.ts +1 -1
- package/dist/controllers/export-template.controller.d.ts +2 -2
- package/dist/controllers/field-metadata.controller.d.ts +1 -1
- package/dist/controllers/google-authentication.controller.d.ts +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +1 -1
- package/dist/controllers/locale.controller.d.ts +3 -3
- package/dist/controllers/media.controller.d.ts +3 -3
- package/dist/controllers/menu-item-metadata.controller.d.ts +2 -2
- package/dist/controllers/model-metadata.controller.d.ts +1 -1
- package/dist/controllers/mq-message-queue.controller.d.ts +1 -1
- package/dist/controllers/mq-message.controller.d.ts +1 -1
- package/dist/controllers/permission-metadata.controller.d.ts +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +3 -3
- package/dist/controllers/service.controller.d.ts +4 -4
- package/dist/controllers/setting.controller.d.ts +1 -1
- package/dist/controllers/test-queue.controller.d.ts +1 -1
- package/dist/controllers/test.controller.d.ts +2 -2
- package/dist/controllers/user-view-metadata.controller.d.ts +2 -2
- package/dist/controllers/user.controller.d.ts +2 -2
- package/dist/controllers/view-metadata.controller.d.ts +2 -2
- package/dist/decorators/extension-user-creation-provider.decorator.d.ts +3 -0
- package/dist/decorators/extension-user-creation-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/extension-user-creation-provider.decorator.js +7 -0
- package/dist/decorators/extension-user-creation-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts +1 -1
- package/dist/dtos/create-dashboard-question.dto.d.ts +1 -1
- package/dist/dtos/create-dashboard.dto.d.ts +2 -2
- package/dist/dtos/create-import-transaction.dto.d.ts +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.d.ts +1 -1
- package/dist/dtos/create-mq-message-queue.dto.d.ts +1 -1
- package/dist/dtos/create-permission-metadata.dto.d.ts +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +3 -3
- package/dist/dtos/create-user.dto.d.ts +3 -2
- package/dist/dtos/create-user.dto.d.ts.map +1 -1
- package/dist/dtos/create-user.dto.js +8 -1
- package/dist/dtos/create-user.dto.js.map +1 -1
- package/dist/dtos/create-view-metadata.dto.d.ts +1 -1
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +1 -1
- package/dist/dtos/fetch-roles.dto.d.ts +1 -1
- package/dist/dtos/selection-dynamic-query.dto.d.ts +1 -1
- package/dist/dtos/solid-request-context.dto.d.ts +1 -1
- package/dist/dtos/sort-filter.dto.d.ts +1 -1
- package/dist/dtos/update-dashboard-question.dto.d.ts +1 -1
- package/dist/dtos/update-dashboard.dto.d.ts +2 -2
- package/dist/dtos/update-import-transaction.dto.d.ts +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.d.ts +1 -1
- package/dist/dtos/update-mq-message-queue.dto.d.ts +1 -1
- package/dist/dtos/update-permission-metadata.dto.d.ts +1 -1
- package/dist/dtos/update-role-metadata.dto.d.ts +3 -3
- package/dist/dtos/update-user.dto.d.ts +3 -2
- package/dist/dtos/update-user.dto.d.ts.map +1 -1
- package/dist/dtos/update-user.dto.js +7 -1
- package/dist/dtos/update-user.dto.js.map +1 -1
- package/dist/dtos/update-view-metadata.dto.d.ts +1 -1
- package/dist/entities/action-metadata.entity.d.ts +4 -4
- package/dist/entities/agent-event.entity.d.ts +1 -1
- package/dist/entities/agent-session.entity.d.ts +1 -1
- package/dist/entities/ai-interaction.entity.d.ts +2 -2
- package/dist/entities/chatter-message-details.entity.d.ts +2 -2
- package/dist/entities/chatter-message.entity.d.ts +2 -2
- package/dist/entities/dashboard-layout.entity.d.ts +2 -2
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +2 -2
- package/dist/entities/dashboard-question.entity.d.ts +3 -3
- package/dist/entities/dashboard-variable.entity.d.ts +2 -2
- package/dist/entities/dashboard.entity.d.ts +4 -4
- package/dist/entities/email-template.entity.d.ts +1 -1
- package/dist/entities/export-template.entity.d.ts +2 -2
- package/dist/entities/export-transaction.entity.d.ts +2 -2
- package/dist/entities/field-metadata.entity.d.ts +2 -2
- package/dist/entities/import-transaction-error-log.entity.d.ts +2 -2
- package/dist/entities/import-transaction.entity.d.ts +3 -3
- package/dist/entities/list-of-values.entity.d.ts +2 -2
- package/dist/entities/locale.entity.d.ts +1 -1
- package/dist/entities/media-storage-provider-metadata.entity.d.ts +1 -1
- package/dist/entities/media.entity.d.ts +4 -4
- package/dist/entities/menu-item-metadata.entity.d.ts +4 -4
- package/dist/entities/model-metadata.entity.d.ts +1 -1
- package/dist/entities/model-sequence.entity.d.ts +4 -4
- package/dist/entities/module-metadata.entity.d.ts +1 -1
- package/dist/entities/mq-message-queue.entity.d.ts +2 -2
- package/dist/entities/mq-message.entity.d.ts +2 -2
- package/dist/entities/permission-metadata.entity.d.ts +2 -2
- package/dist/entities/role-metadata.entity.d.ts +4 -4
- package/dist/entities/saved-filters.entity.d.ts +4 -4
- package/dist/entities/scheduled-job.entity.d.ts +1 -1
- package/dist/entities/security-rule.entity.d.ts +3 -3
- package/dist/entities/setting.entity.d.ts +2 -2
- package/dist/entities/sms-template.entity.d.ts +1 -1
- package/dist/entities/user-activity-history.entity.d.ts +2 -2
- package/dist/entities/user-api-key.entity.d.ts +1 -1
- package/dist/entities/user-view-metadata.entity.d.ts +3 -3
- package/dist/entities/user.entity.d.ts +4 -4
- package/dist/entities/view-metadata.entity.d.ts +4 -4
- package/dist/factories/mail.factory.d.ts +3 -3
- package/dist/factories/sms.factory.d.ts +3 -3
- package/dist/factories/whatsapp.factory.d.ts +3 -3
- package/dist/filters/http-exception.filter.d.ts +1 -1
- package/dist/guards/api-key.guard.d.ts +1 -1
- package/dist/helpers/error-mapper.service.d.ts +2 -2
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/BooleanFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/ComputedFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/DateFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/DecimalFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/EmailFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/IntFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/JsonFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/NoOpsFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/RichTextFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/SelectionStaticFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/UUIDFieldCrudManager.d.ts +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts +1 -1
- package/dist/helpers/solid-registry.d.ts +11 -5
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +15 -2
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +11 -3
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/api-email-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/api-email-queue-options-database.d.ts +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts +1 -1
- package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts +4 -4
- package/dist/jobs/database/computed-field-evaluation-publisher-database.service.d.ts +5 -5
- package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.d.ts +8 -8
- package/dist/jobs/database/generate-code-publisher-database.service.d.ts +1 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts +4 -4
- package/dist/jobs/database/msg91-sms-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/msg91-sms-queue-database-options.d.ts +1 -1
- package/dist/jobs/database/msg91-sms-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/msg91-whatsapp-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/msg91-whatsapp-queue-options-database.d.ts +1 -1
- package/dist/jobs/database/msg91-whatsapp-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/otp-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/otp-queue-options-database.d.ts +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/smtp-email-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/smtp-email-queue-options-database.d.ts +1 -1
- package/dist/jobs/database/smtp-email-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/test-queue-publisher-database.service.d.ts +1 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts +3 -3
- package/dist/jobs/database/three60-whatsapp-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/three60-whatsapp-queue-options-database.d.ts +1 -1
- package/dist/jobs/database/three60-whatsapp-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +8 -8
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -2
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/twilio-sms-publisher-database.service.d.ts +4 -4
- package/dist/jobs/database/twilio-sms-queue-database-options.d.ts +1 -1
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +7 -7
- package/dist/jobs/rabbitmq/api-email-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/api-email-subscriber.service.d.ts +4 -4
- package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/computed-field-evaluation-publisher.service.d.ts +5 -5
- package/dist/jobs/rabbitmq/computed-field-evaluation-subscriber.service.d.ts +8 -8
- package/dist/jobs/rabbitmq/generate-code-publisher.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/generate-code-subscriber.service.d.ts +7 -7
- package/dist/jobs/rabbitmq/msg91-otp-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/msg91-otp-subscriber.service.d.ts +5 -5
- package/dist/jobs/rabbitmq/msg91-sms-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/msg91-sms-subscriber.service.d.ts +5 -5
- package/dist/jobs/rabbitmq/msg91-whatsapp-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.d.ts +4 -4
- package/dist/jobs/rabbitmq/smtp-email-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/smtp-email-subscriber.service.d.ts +4 -4
- package/dist/jobs/rabbitmq/test-queue-publisher.service.d.ts +1 -1
- package/dist/jobs/rabbitmq/test-queue-subscriber.service.d.ts +2 -2
- package/dist/jobs/rabbitmq/three60-whatsapp-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.d.ts +5 -5
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +6 -6
- package/dist/jobs/rabbitmq/twilio-sms-publisher.service.d.ts +3 -3
- package/dist/jobs/rabbitmq/twilio-sms-subscriber.service.d.ts +6 -6
- package/dist/jobs/redis/api-email-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/api-email-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/chatter-queue-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/computed-field-evaluation-publisher-redis.service.d.ts +2 -2
- package/dist/jobs/redis/computed-field-evaluation-subscriber-redis.service.d.ts +4 -4
- package/dist/jobs/redis/generate-code-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/generate-code-subscriber-redis.service.d.ts +3 -3
- package/dist/jobs/redis/msg91-otp-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/msg91-otp-subscriber-redis.service.d.ts +3 -3
- package/dist/jobs/redis/msg91-sms-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/msg91-sms-subscriber-redis.service.d.ts +3 -3
- package/dist/jobs/redis/msg91-whatsapp-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/smtp-email-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/smtp-email-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/test-queue-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/test-queue-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/three60-whatsapp-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +2 -2
- package/dist/jobs/redis/twilio-sms-publisher-redis.service.d.ts +1 -1
- package/dist/jobs/redis/twilio-sms-subscriber-redis.service.d.ts +3 -3
- package/dist/mappers/dashboard-mapper.d.ts +1 -1
- package/dist/mappers/list-of-values-mapper.d.ts +1 -1
- package/dist/repository/action-metadata.repository.d.ts +2 -2
- package/dist/repository/agent-event.repository.d.ts +2 -2
- package/dist/repository/agent-session.repository.d.ts +2 -2
- package/dist/repository/ai-interaction.repository.d.ts +2 -2
- package/dist/repository/chatter-message-details.repository.d.ts +2 -2
- package/dist/repository/chatter-message.repository.d.ts +2 -2
- package/dist/repository/dashboard-layout.repository.d.ts +2 -2
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +2 -2
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +1 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js +2 -2
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +1 -1
- package/dist/repository/dashboard-question.repository.d.ts +2 -2
- package/dist/repository/dashboard-question.repository.d.ts.map +1 -1
- package/dist/repository/dashboard-question.repository.js +2 -2
- package/dist/repository/dashboard-question.repository.js.map +1 -1
- package/dist/repository/dashboard-variable.repository.d.ts +2 -2
- package/dist/repository/dashboard-variable.repository.d.ts.map +1 -1
- package/dist/repository/dashboard-variable.repository.js +2 -2
- package/dist/repository/dashboard-variable.repository.js.map +1 -1
- package/dist/repository/dashboard.repository.d.ts +2 -2
- package/dist/repository/email-template.repository.d.ts +2 -2
- package/dist/repository/email-template.repository.d.ts.map +1 -1
- package/dist/repository/email-template.repository.js +2 -2
- package/dist/repository/email-template.repository.js.map +1 -1
- package/dist/repository/export-template.repository.d.ts +2 -2
- package/dist/repository/export-template.repository.d.ts.map +1 -1
- package/dist/repository/export-template.repository.js +2 -2
- package/dist/repository/export-template.repository.js.map +1 -1
- package/dist/repository/export-transaction.repository.d.ts +2 -2
- package/dist/repository/export-transaction.repository.d.ts.map +1 -1
- package/dist/repository/export-transaction.repository.js +2 -2
- package/dist/repository/export-transaction.repository.js.map +1 -1
- package/dist/repository/field-metadata.repository.d.ts +1 -1
- package/dist/repository/import-transaction-error-log.repository.d.ts +2 -2
- package/dist/repository/import-transaction-error-log.repository.d.ts.map +1 -1
- package/dist/repository/import-transaction-error-log.repository.js +2 -2
- package/dist/repository/import-transaction-error-log.repository.js.map +1 -1
- package/dist/repository/import-transaction.repository.d.ts +2 -2
- package/dist/repository/import-transaction.repository.d.ts.map +1 -1
- package/dist/repository/import-transaction.repository.js +2 -2
- package/dist/repository/import-transaction.repository.js.map +1 -1
- package/dist/repository/list-of-values.repository.d.ts +2 -2
- package/dist/repository/list-of-values.repository.d.ts.map +1 -1
- package/dist/repository/list-of-values.repository.js +2 -2
- package/dist/repository/list-of-values.repository.js.map +1 -1
- package/dist/repository/locale.repository.d.ts +2 -2
- package/dist/repository/locale.repository.d.ts.map +1 -1
- package/dist/repository/locale.repository.js +2 -2
- package/dist/repository/locale.repository.js.map +1 -1
- package/dist/repository/media-storage-provider-metadata.repository.d.ts +1 -1
- package/dist/repository/media.repository.d.ts +2 -2
- package/dist/repository/menu-item-metadata.repository.d.ts +2 -2
- package/dist/repository/menu-item-metadata.repository.d.ts.map +1 -1
- package/dist/repository/menu-item-metadata.repository.js +2 -2
- package/dist/repository/menu-item-metadata.repository.js.map +1 -1
- package/dist/repository/model-metadata.repository.d.ts +1 -1
- package/dist/repository/model-metadata.repository.d.ts.map +1 -1
- package/dist/repository/model-metadata.repository.js +2 -2
- package/dist/repository/model-metadata.repository.js.map +1 -1
- package/dist/repository/model-sequence.repository.d.ts +3 -3
- package/dist/repository/module-metadata.repository.d.ts +1 -1
- package/dist/repository/module-metadata.repository.d.ts.map +1 -1
- package/dist/repository/module-metadata.repository.js +2 -2
- package/dist/repository/module-metadata.repository.js.map +1 -1
- package/dist/repository/mq-message-queue.repository.d.ts +2 -2
- package/dist/repository/mq-message-queue.repository.d.ts.map +1 -1
- package/dist/repository/mq-message-queue.repository.js +2 -2
- package/dist/repository/mq-message-queue.repository.js.map +1 -1
- package/dist/repository/mq-message.repository.d.ts +2 -2
- package/dist/repository/mq-message.repository.d.ts.map +1 -1
- package/dist/repository/mq-message.repository.js +2 -2
- package/dist/repository/mq-message.repository.js.map +1 -1
- package/dist/repository/permission-metadata.repository.d.ts +2 -2
- package/dist/repository/permission-metadata.repository.d.ts.map +1 -1
- package/dist/repository/permission-metadata.repository.js +2 -2
- package/dist/repository/permission-metadata.repository.js.map +1 -1
- package/dist/repository/role-metadata.repository.d.ts +2 -2
- package/dist/repository/role-metadata.repository.d.ts.map +1 -1
- package/dist/repository/role-metadata.repository.js +2 -2
- package/dist/repository/role-metadata.repository.js.map +1 -1
- package/dist/repository/saved-filters.repository.d.ts +2 -2
- package/dist/repository/scheduled-job.repository.d.ts +3 -3
- package/dist/repository/security-rule.repository.d.ts +7 -7
- package/dist/repository/setting.repository.d.ts +2 -2
- package/dist/repository/setting.repository.d.ts.map +1 -1
- package/dist/repository/setting.repository.js +2 -2
- package/dist/repository/setting.repository.js.map +1 -1
- package/dist/repository/sms-template.repository.d.ts +2 -2
- package/dist/repository/sms-template.repository.d.ts.map +1 -1
- package/dist/repository/sms-template.repository.js +2 -2
- package/dist/repository/sms-template.repository.js.map +1 -1
- package/dist/repository/solid-base.repository.d.ts +2 -2
- package/dist/repository/user-activity-history.repository.d.ts +2 -2
- package/dist/repository/user-activity-history.repository.d.ts.map +1 -1
- package/dist/repository/user-activity-history.repository.js +2 -2
- package/dist/repository/user-activity-history.repository.js.map +1 -1
- package/dist/repository/user-api-key.repository.d.ts +2 -2
- package/dist/repository/user-view-metadata.repository.d.ts +2 -2
- package/dist/repository/user-view-metadata.repository.d.ts.map +1 -1
- package/dist/repository/user-view-metadata.repository.js +2 -2
- package/dist/repository/user-view-metadata.repository.js.map +1 -1
- package/dist/repository/user.repository.d.ts +2 -2
- package/dist/repository/view-metadata.repository.d.ts +2 -2
- package/dist/seeders/module-metadata-seeder.service.d.ts +17 -14
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +65 -38
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +1 -1
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +1 -8
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts +2 -2
- package/dist/seeders/seed-data/solid-core-metadata.json +7 -1
- package/dist/seeders/system-fields-seeder.service.d.ts +3 -3
- package/dist/services/action-metadata.service.d.ts +2 -2
- package/dist/services/agent-event.service.d.ts +2 -2
- package/dist/services/agent-session.service.d.ts +2 -2
- package/dist/services/ai-interaction.service.d.ts +4 -4
- package/dist/services/api-key.service.d.ts +6 -6
- package/dist/services/authentication.service.d.ts +10 -6
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +25 -21
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts +2 -2
- package/dist/services/chatter-message.service.d.ts +7 -7
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts +3 -3
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +3 -3
- package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.d.ts +2 -2
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +3 -3
- package/dist/services/computed-fields/entity/uuid-externalid-entity-computed-field-provider.service.d.ts +2 -2
- package/dist/services/crud-helper.service.d.ts +1 -1
- package/dist/services/crud.service.d.ts +4 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +52 -3
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-layout.service.d.ts +4 -4
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -2
- package/dist/services/dashboard-question.service.d.ts +3 -3
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +2 -2
- package/dist/services/dashboard.service.d.ts +7 -7
- package/dist/services/email-template.service.d.ts +1 -1
- package/dist/services/export-template.service.d.ts +5 -5
- package/dist/services/export-transaction.service.d.ts +7 -7
- package/dist/services/field-metadata.service.d.ts +5 -5
- package/dist/services/fixtures.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +2 -2
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +1 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +2 -2
- package/dist/services/import-transaction.service.d.ts +6 -6
- package/dist/services/list-of-values.service.d.ts +4 -4
- package/dist/services/locale.service.d.ts +4 -4
- package/dist/services/mail/elastic-email.service.d.ts +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +1 -1
- package/dist/services/media.service.d.ts +8 -8
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +5 -5
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +5 -5
- package/dist/services/menu-item-metadata.service.d.ts +4 -4
- package/dist/services/model-metadata.service.d.ts +4 -4
- package/dist/services/model-sequence.service.d.ts +1 -1
- package/dist/services/module-metadata.service.d.ts +4 -4
- package/dist/services/mq-message-queue.service.d.ts +2 -2
- package/dist/services/mq-message.service.d.ts +2 -2
- package/dist/services/permission-metadata.service.d.ts +2 -2
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/helpers.d.ts +1 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -2
- package/dist/services/queues/publisher-factory.service.d.ts +1 -1
- package/dist/services/request-context.service.d.ts +2 -2
- package/dist/services/role-metadata.service.d.ts +3 -3
- package/dist/services/saved-filters.service.d.ts +2 -2
- package/dist/services/scheduled-job.service.d.ts +3 -3
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +1 -1
- package/dist/services/scheduled-jobs/scheduler.interface.d.ts +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +3 -3
- package/dist/services/security-rule.service.d.ts +3 -3
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +3 -3
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +1 -1
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.d.ts +1 -1
- package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts +1 -1
- package/dist/services/setting.service.d.ts +5 -5
- package/dist/services/settings/default-settings-provider.service.d.ts +1 -1
- package/dist/services/short-url/tiny-url.service.d.ts +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +1 -1
- package/dist/services/sms-template.service.d.ts +1 -1
- package/dist/services/solid-introspect.service.d.ts +9 -8
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +11 -0
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +3 -3
- package/dist/services/user-view-metadata.service.d.ts +4 -4
- package/dist/services/user.service.d.ts +3 -3
- package/dist/services/view-metadata.service.d.ts +4 -4
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +4 -4
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +2 -2
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts +1 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +3 -3
- package/dist/subscribers/dashboard-question.subscriber.d.ts +3 -3
- package/dist/subscribers/dashboard-variable.subscriber.d.ts +3 -3
- package/dist/subscribers/dashboard.subscriber.d.ts +3 -3
- package/dist/subscribers/list-of-values.subscriber.d.ts +3 -3
- package/dist/subscribers/model-metadata.subscriber.d.ts +1 -1
- package/dist/subscribers/scheduled-job.subscriber.d.ts +3 -3
- package/dist/subscribers/security-rule.subscriber.d.ts +3 -3
- package/dist/subscribers/view-metadata.subscriber.d.ts +2 -2
- package/dist/testing/contracts/testing-metadata.types.d.ts +1 -0
- package/dist/testing/contracts/testing-metadata.types.d.ts.map +1 -1
- package/dist/testing/contracts/testing-metadata.types.js.map +1 -1
- package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/assertions.step.js +8 -0
- 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 +49 -0
- package/dist/testing/steps/ui/form.step.js.map +1 -1
- package/package.json +7 -6
- package/src/decorators/extension-user-creation-provider.decorator.ts +5 -0
- package/src/dtos/create-user.dto.ts +4 -0
- package/src/dtos/update-user.dto.ts +4 -0
- package/src/helpers/solid-registry.ts +19 -1
- package/src/index.ts +1 -0
- package/src/interfaces.ts +9 -0
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -1
- package/src/repository/dashboard-question-sql-dataset-config.repository.ts +1 -1
- package/src/repository/dashboard-question.repository.ts +1 -1
- package/src/repository/dashboard-variable.repository.ts +1 -1
- package/src/repository/email-template.repository.ts +1 -1
- package/src/repository/export-template.repository.ts +2 -1
- package/src/repository/export-transaction.repository.ts +1 -1
- package/src/repository/import-transaction-error-log.repository.ts +1 -1
- package/src/repository/import-transaction.repository.ts +1 -1
- package/src/repository/list-of-values.repository.ts +1 -1
- package/src/repository/locale.repository.ts +1 -1
- package/src/repository/menu-item-metadata.repository.ts +1 -1
- package/src/repository/model-metadata.repository.ts +1 -1
- package/src/repository/module-metadata.repository.ts +1 -1
- package/src/repository/mq-message-queue.repository.ts +2 -1
- package/src/repository/mq-message.repository.ts +1 -1
- package/src/repository/permission-metadata.repository.ts +1 -1
- package/src/repository/role-metadata.repository.ts +1 -1
- package/src/repository/setting.repository.ts +1 -1
- package/src/repository/sms-template.repository.ts +1 -1
- package/src/repository/user-activity-history.repository.ts +1 -1
- package/src/repository/user-view-metadata.repository.ts +1 -1
- package/src/seeders/module-metadata-seeder.service.ts +50 -25
- package/src/seeders/module-test-data.service.ts +1 -8
- package/src/seeders/seed-data/solid-core-metadata.json +7 -1
- package/src/services/authentication.service.ts +28 -31
- package/src/services/crud.service.ts +22 -2
- package/src/services/dashboard-question.service.ts +1 -1
- package/src/services/security-rule.service.ts +1 -1
- package/src/services/solid-introspect.service.ts +13 -0
- package/src/testing/contracts/testing-metadata.types.ts +1 -0
- package/src/testing/steps/ui/assertions.step.ts +9 -0
- package/src/testing/steps/ui/form.step.ts +19 -0
- package/tsconfig.json +3 -0
|
@@ -31,7 +31,13 @@ import { ViewMetadataService } from '../services/view-metadata.service';
|
|
|
31
31
|
import solidCoreMetadata from './seed-data/solid-core-metadata.json';
|
|
32
32
|
import { SystemFieldsSeederService } from './system-fields-seeder.service';
|
|
33
33
|
// import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
|
|
34
|
-
import { ActionMetadata
|
|
34
|
+
import { ActionMetadata } from '../entities/action-metadata.entity';
|
|
35
|
+
import { MenuItemMetadata } from '../entities/menu-item-metadata.entity';
|
|
36
|
+
import { ModuleMetadata } from '../entities/module-metadata.entity';
|
|
37
|
+
import { RoleMetadata } from '../entities/role-metadata.entity';
|
|
38
|
+
import { MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL } from '../dtos/create-menu-item-metadata.dto';
|
|
39
|
+
import { DEFAULT_SA_PASSWORD } from '../dtos/create-user.dto';
|
|
40
|
+
import { SignUpDto } from '../dtos/sign-up.dto';
|
|
35
41
|
import { ADMIN_ROLE_NAME, CreateRoleMetadataDto } from 'src/dtos/create-role-metadata.dto';
|
|
36
42
|
import { CreateSavedFiltersDto } from 'src/dtos/create-saved-filters.dto';
|
|
37
43
|
import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
|
|
@@ -151,6 +157,11 @@ export class ModuleMetadataSeederService {
|
|
|
151
157
|
const moduleModelFieldCounts = await this.seedModuleModelFields(moduleMetadata);
|
|
152
158
|
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
|
|
153
159
|
|
|
160
|
+
currentStep = 'seedPermissions';
|
|
161
|
+
this.logger.log(`Seeding Permissions`);
|
|
162
|
+
const permissionCounts = await this.seedPermissions(overallMetadata);
|
|
163
|
+
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Permissions', permissionCounts)}`);
|
|
164
|
+
|
|
154
165
|
currentStep = 'seedRoles';
|
|
155
166
|
this.logger.log(`Seeding Roles`);
|
|
156
167
|
const roleCounts = await this.seedRoles(overallMetadata);
|
|
@@ -282,6 +293,7 @@ export class ModuleMetadataSeederService {
|
|
|
282
293
|
this.logger.debug(`About to add all permissions to the Admin role`);
|
|
283
294
|
await this.roleService.addAllPermissionsToRole(ADMIN_ROLE_NAME);
|
|
284
295
|
|
|
296
|
+
// The below code is commented out for now as we are including permissions for these roles from the seeder json for the Internal and Public role.
|
|
285
297
|
// 2. Give permissions to the Internal / Public role.
|
|
286
298
|
// this.logger.debug(`About to add all permissions to the Internal role`);
|
|
287
299
|
// await this.roleService.addPermissionToRole(INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS);
|
|
@@ -379,6 +391,14 @@ export class ModuleMetadataSeederService {
|
|
|
379
391
|
return { pruned: 0, upserted: overallMetadata.roles?.length ?? 0 };
|
|
380
392
|
}
|
|
381
393
|
|
|
394
|
+
private async seedPermissions(overallMetadata: any): Promise<{ pruned: number; upserted: number }> {
|
|
395
|
+
this.logger.debug(`[Start] Processing permissions`);
|
|
396
|
+
const permissions = overallMetadata.permissions ?? [];
|
|
397
|
+
await this.handleSeedPermissions(permissions);
|
|
398
|
+
this.logger.debug(`[End] Processing permissions`);
|
|
399
|
+
return { pruned: 0, upserted: permissions?.length ?? 0 };
|
|
400
|
+
}
|
|
401
|
+
|
|
382
402
|
// OK
|
|
383
403
|
private get seedDataFiles(): any[] {
|
|
384
404
|
const typedSolidCoreMetadata = structuredClone(solidCoreMetadata);
|
|
@@ -401,7 +421,7 @@ export class ModuleMetadataSeederService {
|
|
|
401
421
|
// OK
|
|
402
422
|
private async seedGlobalMetadata() {
|
|
403
423
|
this.logger.log(`Seeding Permissions`);
|
|
404
|
-
await this.
|
|
424
|
+
await this.seedControllerPermissions();
|
|
405
425
|
|
|
406
426
|
// this.logger.log(`Seeding Default Media Storage Providers`);
|
|
407
427
|
// await this.seedDefaultMediaStorageProviders();
|
|
@@ -422,7 +442,7 @@ export class ModuleMetadataSeederService {
|
|
|
422
442
|
}
|
|
423
443
|
|
|
424
444
|
// OK
|
|
425
|
-
private async
|
|
445
|
+
private async seedControllerPermissions() {
|
|
426
446
|
|
|
427
447
|
const controllers = this.solidRegistry.getControllers();
|
|
428
448
|
const permissionNames: string[] = [];
|
|
@@ -440,28 +460,7 @@ export class ModuleMetadataSeederService {
|
|
|
440
460
|
const permissionName = `${controller.name}.${methodName}`;
|
|
441
461
|
permissionNames.push(permissionName);
|
|
442
462
|
|
|
443
|
-
|
|
444
|
-
where: {
|
|
445
|
-
name: permissionName
|
|
446
|
-
}
|
|
447
|
-
});
|
|
448
|
-
|
|
449
|
-
// if (existingPermission) {
|
|
450
|
-
// this.logger.log(`Permission ${permissionName} already exists.`);
|
|
451
|
-
// }
|
|
452
|
-
// else { }
|
|
453
|
-
|
|
454
|
-
if (!existingPermission) {
|
|
455
|
-
|
|
456
|
-
this.logger.log(`Permission ${permissionName} does not exist, creating new.`);
|
|
457
|
-
|
|
458
|
-
const newPermission = this.permissionRepo.create({
|
|
459
|
-
name: permissionName
|
|
460
|
-
});
|
|
461
|
-
await this.permissionRepo.save(newPermission);
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
463
|
+
await this.createPermissionIfNotExists(permissionName);
|
|
465
464
|
}
|
|
466
465
|
|
|
467
466
|
} catch (error) {
|
|
@@ -474,6 +473,32 @@ export class ModuleMetadataSeederService {
|
|
|
474
473
|
}
|
|
475
474
|
}
|
|
476
475
|
|
|
476
|
+
private async createPermissionIfNotExists(permissionName: string): Promise<void> {
|
|
477
|
+
const existingPermission = await this.permissionRepo.findOne({
|
|
478
|
+
where: {
|
|
479
|
+
name: permissionName
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
if (!existingPermission) {
|
|
484
|
+
this.logger.log(`Permission ${permissionName} does not exist, creating new.`);
|
|
485
|
+
|
|
486
|
+
const newPermission = this.permissionRepo.create({
|
|
487
|
+
name: permissionName
|
|
488
|
+
});
|
|
489
|
+
await this.permissionRepo.save(newPermission);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
private async handleSeedPermissions(permissions: any[]): Promise<void> {
|
|
494
|
+
for (const permission of permissions) {
|
|
495
|
+
const permissionName = typeof permission === 'string' ? permission : permission?.name;
|
|
496
|
+
if (permissionName) {
|
|
497
|
+
await this.createPermissionIfNotExists(permissionName);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
477
502
|
// OK
|
|
478
503
|
// private async seedDefaultMediaStorageProviders() {
|
|
479
504
|
// await this.mediaStorageProviderSeederService.seed();
|
|
@@ -391,14 +391,7 @@ export class ModuleTestDataService {
|
|
|
391
391
|
continue;
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
-
await authService.signUp({
|
|
395
|
-
username: user.username,
|
|
396
|
-
email: user.email,
|
|
397
|
-
password: user.password,
|
|
398
|
-
fullName: user.fullName,
|
|
399
|
-
mobile: user.mobile,
|
|
400
|
-
roles: user.roles,
|
|
401
|
-
});
|
|
394
|
+
await authService.signUp({ ...user });
|
|
402
395
|
this.logger.log(`Created test user "${user.username}"${user.roles?.length ? ` with roles [${user.roles.join(', ')}]` : ''}`);
|
|
403
396
|
}
|
|
404
397
|
}
|
|
@@ -5905,6 +5905,10 @@
|
|
|
5905
5905
|
}
|
|
5906
5906
|
]
|
|
5907
5907
|
},
|
|
5908
|
+
"permissions": [
|
|
5909
|
+
"mcp:invoke",
|
|
5910
|
+
"agent:invoke"
|
|
5911
|
+
],
|
|
5908
5912
|
"roles": [
|
|
5909
5913
|
{
|
|
5910
5914
|
"name": "Admin"
|
|
@@ -5961,7 +5965,9 @@
|
|
|
5961
5965
|
"AgentSessionController.findMany",
|
|
5962
5966
|
"AgentSessionController.findOne",
|
|
5963
5967
|
"AgentEventController.findMany",
|
|
5964
|
-
"AgentEventController.findOne"
|
|
5968
|
+
"AgentEventController.findOne",
|
|
5969
|
+
"mcp:invoke",
|
|
5970
|
+
"agent:invoke"
|
|
5965
5971
|
]
|
|
5966
5972
|
},
|
|
5967
5973
|
{
|
|
@@ -47,6 +47,7 @@ import { SettingService } from './setting.service';
|
|
|
47
47
|
import { UserActivityHistoryService } from './user-activity-history.service';
|
|
48
48
|
import { UserService } from './user.service';
|
|
49
49
|
import { SmsFactory } from 'src/factories/sms.factory';
|
|
50
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
50
51
|
|
|
51
52
|
enum LoginProvider {
|
|
52
53
|
LOCAL = 'local',
|
|
@@ -83,6 +84,7 @@ export class AuthenticationService {
|
|
|
83
84
|
|
|
84
85
|
@InjectDataSource()
|
|
85
86
|
private readonly dataSource: DataSource,
|
|
87
|
+
private readonly solidRegistry: SolidRegistry,
|
|
86
88
|
) {
|
|
87
89
|
// this.mailService = this.mailServiceFactory.getMailService();
|
|
88
90
|
}
|
|
@@ -142,62 +144,57 @@ export class AuthenticationService {
|
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
146
|
|
|
145
|
-
|
|
146
|
-
// If public registrations are disabled and no activeUser is present when invoking signUp then we throw an exception.
|
|
147
|
-
// if (!(this.settingService.getConfigValue<SolidCoreSetting>('allowPublicRegistration')) && !activeUser) {
|
|
148
|
-
// throw new BadRequestException(ERROR_MESSAGES.PUBLIC_REGISTRATION_DISABLED);
|
|
149
|
-
// }
|
|
147
|
+
private static readonly SIGNUP_DTO_KEYS = new Set(['username', 'email', 'password', 'fullName', 'mobile', 'roles', 'forcePasswordChange']);
|
|
150
148
|
|
|
149
|
+
async signUp(signUpDto: SignUpDto & Record<string, any>, activeUser: ActiveUserData = null): Promise<User> {
|
|
150
|
+
const hasExtensionFields = Object.keys(signUpDto).some(k => !AuthenticationService.SIGNUP_DTO_KEYS.has(k));
|
|
151
|
+
if (hasExtensionFields) {
|
|
152
|
+
const provider = this.solidRegistry.getExtensionUserCreationProvider();
|
|
153
|
+
if (!provider) {
|
|
154
|
+
throw new InternalServerErrorException(
|
|
155
|
+
'No ExtensionUserCreationProvider registered. Register one to handle extension user creation.',
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
const entity = await provider.buildExtensionEntity(signUpDto);
|
|
159
|
+
const effectiveDto = { ...signUpDto, roles: provider.roles(signUpDto) };
|
|
160
|
+
return this.performSignUp(effectiveDto, entity, provider.repo as Repository<User>);
|
|
161
|
+
}
|
|
162
|
+
return this.performSignUp(signUpDto, new User(), this.userRepository);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
private async performSignUp<T extends User>(signUpDto: SignUpDto, entity: T, repo: Repository<T>): Promise<T> {
|
|
151
166
|
try {
|
|
152
167
|
const onForcePasswordChange = this.settingService.getConfigValue<SolidCoreSetting>('forceChangePasswordOnFirstLogin');
|
|
153
168
|
const activateUserOnRegistration = this.settingService.getConfigValue<SolidCoreSetting>('activateUserOnRegistration');
|
|
154
169
|
const defaultRole = this.settingService.getConfigValue<SolidCoreSetting>('defaultRole');
|
|
155
170
|
|
|
156
|
-
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(
|
|
171
|
+
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup<T>(entity, signUpDto, activateUserOnRegistration, onForcePasswordChange);
|
|
157
172
|
const privateDto = signUpDto as { isAllowedToGenerateApiKeys?: boolean };
|
|
158
173
|
if (privateDto.isAllowedToGenerateApiKeys !== undefined) {
|
|
159
174
|
user.isAllowedToGenerateApiKeys = privateDto.isAllowedToGenerateApiKeys;
|
|
160
175
|
}
|
|
161
|
-
const savedUser = await
|
|
162
|
-
// Also assign a default role to the newly created user.
|
|
176
|
+
const savedUser = await repo.save(user);
|
|
163
177
|
const userRoles = signUpDto.roles ?? [];
|
|
164
|
-
if (signUpDto.username !== 'sa' && defaultRole) {
|
|
178
|
+
if ((signUpDto.roles?.length ?? 0) === 0 && signUpDto.username !== 'sa' && defaultRole) {
|
|
165
179
|
userRoles.push(defaultRole);
|
|
166
180
|
}
|
|
167
181
|
await this.handlePostSignup(savedUser, userRoles, pwd, autoGeneratedPwd);
|
|
168
182
|
|
|
169
|
-
// TODO: make provision to trigger a welcome email also.
|
|
170
|
-
|
|
171
183
|
return savedUser;
|
|
172
184
|
} catch (err) {
|
|
173
185
|
const pgUniqueViolationErrorCode = '23505';
|
|
174
186
|
if (err.code === pgUniqueViolationErrorCode) {
|
|
175
|
-
throw new ConflictException(ERROR_MESSAGES.
|
|
187
|
+
throw new ConflictException(parseUniqueConstraintError(err.detail || ERROR_MESSAGES.UNIQUE_CONSTRAINT_VIOLATION));
|
|
176
188
|
}
|
|
177
189
|
throw err;
|
|
178
190
|
}
|
|
179
191
|
}
|
|
180
192
|
|
|
193
|
+
/** @deprecated Use IExtensionUserCreationProvider instead. Kept for backward compatibility. */
|
|
181
194
|
async signupForExtensionUser<T extends User, U extends CreateUserDto>(signUpDto: SignUpDto, extensionUserDto: U, extensionUserRepo: Repository<T>): Promise<T> {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
//@ts-ignore
|
|
186
|
-
const extensionUser = extensionUserRepo.merge(extensionUserRepo.create() as T, extensionUserDto);
|
|
187
|
-
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup<T>(extensionUser, signUpDto, extensionUserDto.active ?? true, onForcePasswordChange);
|
|
188
|
-
const savedUser = await extensionUserRepo.save(user);
|
|
189
|
-
|
|
190
|
-
await this.handlePostSignup(savedUser, signUpDto.roles, pwd, autoGeneratedPwd);
|
|
191
|
-
|
|
192
|
-
return savedUser;
|
|
193
|
-
}
|
|
194
|
-
catch (err) {
|
|
195
|
-
const pgUniqueViolationErrorCode = '23505';
|
|
196
|
-
if (err.code === pgUniqueViolationErrorCode) {
|
|
197
|
-
throw new ConflictException(parseUniqueConstraintError(err.detail || ERROR_MESSAGES.UNIQUE_CONSTRAINT_VIOLATION));
|
|
198
|
-
}
|
|
199
|
-
throw err;
|
|
200
|
-
}
|
|
195
|
+
// @ts-ignore
|
|
196
|
+
const entity = extensionUserRepo.merge(extensionUserRepo.create() as T, extensionUserDto);
|
|
197
|
+
return this.performSignUp(signUpDto, entity, extensionUserRepo);
|
|
201
198
|
}
|
|
202
199
|
|
|
203
200
|
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { BadRequestException, NotFoundException } from "@nestjs/common";
|
|
1
|
+
import { BadRequestException, InternalServerErrorException, NotFoundException } from "@nestjs/common";
|
|
2
2
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { isArray } from "class-validator";
|
|
4
|
-
import { CommonEntity
|
|
4
|
+
import { CommonEntity } from "../entities/common.entity";
|
|
5
|
+
import { User } from "../entities/user.entity";
|
|
6
|
+
import { SolidBaseRepository } from "../repository/solid-base.repository";
|
|
7
|
+
import { SettingService } from "./setting.service";
|
|
5
8
|
import { ERROR_MESSAGES } from "src/constants/error-messages";
|
|
6
9
|
import { SUCCESS_MESSAGES } from "src/constants/success-messages";
|
|
7
10
|
import { EntityManager, FindOptionsWhere, In, IsNull, Not, QueryFailedError, SelectQueryBuilder } from "typeorm";
|
|
@@ -34,6 +37,7 @@ import { UUIDFieldCrudManager } from "../helpers/field-crud-managers/UUIDFieldCr
|
|
|
34
37
|
import { FieldCrudManager, MediaWithFullUrl } from "../interfaces";
|
|
35
38
|
import { CrudHelperService, FilterCombinator, UserIdFields } from "./crud-helper.service";
|
|
36
39
|
import { HashingService } from "./hashing.service";
|
|
40
|
+
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
37
41
|
import { getMediaStorageProvider } from "./mediaStorageProviders";
|
|
38
42
|
import { ModelMetadataService } from "./model-metadata.service";
|
|
39
43
|
import { RequestContextService } from "./request-context.service";
|
|
@@ -72,7 +76,23 @@ export class CRUDService<T extends CommonEntity> { // Add two generic value i.e
|
|
|
72
76
|
return this._settingService ??= this.moduleRef.get(SettingService, { strict: false });
|
|
73
77
|
}
|
|
74
78
|
|
|
79
|
+
private async tryCreateAsExtensionUser(createDto: any): Promise<T | null> {
|
|
80
|
+
if (this.repo.metadata?.parentEntityMetadata?.target !== User) return null;
|
|
81
|
+
const registry = this.moduleRef.get(SolidRegistry, { strict: false });
|
|
82
|
+
if (!registry?.getExtensionUserCreationProvider()) {
|
|
83
|
+
throw new InternalServerErrorException(
|
|
84
|
+
`No ExtensionUserCreationProvider registered. Register one to create ${this.repo.metadata.name} entities.`,
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
const { AuthenticationService } = await import('./authentication.service');
|
|
88
|
+
const authService = this.moduleRef.get(AuthenticationService, { strict: false });
|
|
89
|
+
return authService.signUp(createDto) as unknown as T;
|
|
90
|
+
}
|
|
91
|
+
|
|
75
92
|
async create(createDto: any, files: Express.Multer.File[] = [], solidRequestContext: any = {}): Promise<T> {
|
|
93
|
+
const asExtensionUser = await this.tryCreateAsExtensionUser(createDto);
|
|
94
|
+
if (asExtensionUser !== null) return asExtensionUser;
|
|
95
|
+
|
|
76
96
|
// This class will be extended by the generated service class i.e PersonService
|
|
77
97
|
// The data required to identify the model and module name will be passed from the generate CrudService subclass
|
|
78
98
|
//TODO: Algorithm to create the entity
|
|
@@ -11,7 +11,7 @@ import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
|
11
11
|
import { DashboardQuestion } from '../entities/dashboard-question.entity';
|
|
12
12
|
import { SqlExpression, SqlExpressionOperator } from './question-data-providers/chartjs-sql-data-provider.service';
|
|
13
13
|
import { DashboardQuestionRepository } from 'src/repository/dashboard-question.repository';
|
|
14
|
-
import { QuestionSqlDataProviderContext } from '
|
|
14
|
+
import { QuestionSqlDataProviderContext } from '../interfaces';
|
|
15
15
|
|
|
16
16
|
enum SOURCE_TYPE {
|
|
17
17
|
SQL = 'sql',
|
|
@@ -8,7 +8,7 @@ import { CRUDService } from 'src/services/crud.service';
|
|
|
8
8
|
|
|
9
9
|
import { SecurityRule } from '../entities/security-rule.entity';
|
|
10
10
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
11
|
-
import { SecurityRuleRepository } from '
|
|
11
|
+
import { SecurityRuleRepository } from '../repository/security-rule.repository';
|
|
12
12
|
|
|
13
13
|
@Injectable()
|
|
14
14
|
export class SecurityRuleService extends CRUDService<SecurityRule> implements OnApplicationBootstrap {
|
|
@@ -13,6 +13,7 @@ import { IS_MAIL_PROVIDER } from 'src/decorators/mail-provider.decorator';
|
|
|
13
13
|
import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
|
|
14
14
|
import { IS_SECURITY_RULE_CONFIG_PROVIDER } from 'src/decorators/security-rule-config-provider.decorator';
|
|
15
15
|
import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorator';
|
|
16
|
+
import { IS_EXTENSION_USER_CREATION_PROVIDER } from 'src/decorators/extension-user-creation-provider.decorator';
|
|
16
17
|
import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
|
|
17
18
|
import { IS_WA_PROVIDER } from 'src/decorators/whatsapp-provider.decorator';
|
|
18
19
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
@@ -144,6 +145,12 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
144
145
|
this.solidRegistry.registerSecurityRuleConfigProvider(securityRuleConfigProvider);
|
|
145
146
|
});
|
|
146
147
|
|
|
148
|
+
// Register IExtensionUserCreationProvider implementation (at most one per project)
|
|
149
|
+
const extensionUserCreationProviders = this.discoveryService.getProviders().filter((provider) => this.isExtensionUserCreationProvider(provider));
|
|
150
|
+
extensionUserCreationProviders.forEach((provider) => {
|
|
151
|
+
this.solidRegistry.registerExtensionUserCreationProvider(provider);
|
|
152
|
+
});
|
|
153
|
+
|
|
147
154
|
// Register the core subscribers against all the configured database modules / datasources
|
|
148
155
|
await this.bootstrapCoreTypeOrmSubscribers(solidDatabaseModules);
|
|
149
156
|
await this.cacheAuditableModels();
|
|
@@ -287,6 +294,12 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
287
294
|
return !!isSelectionProvider;
|
|
288
295
|
}
|
|
289
296
|
|
|
297
|
+
private isExtensionUserCreationProvider(provider: InstanceWrapper): boolean {
|
|
298
|
+
const { instance } = provider;
|
|
299
|
+
if (!instance) return false;
|
|
300
|
+
return !!this.reflector.get<boolean>(IS_EXTENSION_USER_CREATION_PROVIDER, instance.constructor);
|
|
301
|
+
}
|
|
302
|
+
|
|
290
303
|
private isSettingsProvider(provider: InstanceWrapper) {
|
|
291
304
|
const { instance } = provider;
|
|
292
305
|
if (!instance) return false;
|
|
@@ -22,6 +22,15 @@ export function registerAssertionSteps(registry: StepRegistry): void {
|
|
|
22
22
|
await page.waitForSelector(input.selector, { state: "visible" });
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
+
registry.register("ui.expectHidden", async (ctx: TestContext, step: OpStep) => {
|
|
26
|
+
const page = requirePage(ctx, "ui.expectHidden");
|
|
27
|
+
const input = (step.with ?? {}) as VisibleInput;
|
|
28
|
+
if (!input.selector) {
|
|
29
|
+
throw new Error('Missing "selector" in step.with for op "ui.expectHidden"');
|
|
30
|
+
}
|
|
31
|
+
await page.waitForSelector(input.selector, { state: "hidden" });
|
|
32
|
+
});
|
|
33
|
+
|
|
25
34
|
registry.register("ui.expectText", async (ctx: TestContext, step: OpStep) => {
|
|
26
35
|
const page = requirePage(ctx, "ui.expectText");
|
|
27
36
|
const input = (step.with ?? {}) as ExpectTextInput;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
|
|
1
3
|
import type { TestContext } from "../../contracts/runtime-context.types";
|
|
2
4
|
import type { OpStep } from "../../contracts/testing-metadata.types";
|
|
3
5
|
import { StepRegistry } from "../../core/step-registry";
|
|
4
6
|
|
|
5
7
|
type FillInput = { selector: string; value: string };
|
|
6
8
|
type SelectInput = { selector: string; value: string };
|
|
9
|
+
type UploadFileInput = { selector: string; filePath: string | string[] };
|
|
7
10
|
|
|
8
11
|
function requirePage(ctx: TestContext, op: string) {
|
|
9
12
|
if (!ctx.ui || !ctx.ui.page) {
|
|
@@ -36,4 +39,20 @@ export function registerFormSteps(registry: StepRegistry): void {
|
|
|
36
39
|
}
|
|
37
40
|
await page.selectOption(input.selector, String(input.value));
|
|
38
41
|
});
|
|
42
|
+
|
|
43
|
+
registry.register("ui.uploadFile", async (ctx: TestContext, step: OpStep) => {
|
|
44
|
+
const page = requirePage(ctx, "ui.uploadFile");
|
|
45
|
+
const input = (step.with ?? {}) as UploadFileInput;
|
|
46
|
+
if (!input.selector) {
|
|
47
|
+
throw new Error('Missing "selector" in step.with for op "ui.uploadFile"');
|
|
48
|
+
}
|
|
49
|
+
if (input.filePath === undefined || input.filePath === null) {
|
|
50
|
+
throw new Error('Missing "filePath" in step.with for op "ui.uploadFile"');
|
|
51
|
+
}
|
|
52
|
+
const cwd = process.cwd();
|
|
53
|
+
const resolved = Array.isArray(input.filePath)
|
|
54
|
+
? input.filePath.map((p) => path.resolve(cwd, String(p)))
|
|
55
|
+
: path.resolve(cwd, String(input.filePath));
|
|
56
|
+
await page.setInputFiles(input.selector, resolved);
|
|
57
|
+
});
|
|
39
58
|
}
|