@solidxai/core 0.1.10-beta.9 → 0.1.11-beta.0
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 +415 -0
- package/MICROSOFT_ACTIVE_DIRECTORY_OAUTH_FLOW.md +616 -0
- package/ai-interaction-cleanup.sql +53 -0
- package/dist/commands/info.command.d.ts.map +1 -1
- package/dist/commands/info.command.js +0 -2
- package/dist/commands/info.command.js.map +1 -1
- package/dist/commands/refresh-model.command.d.ts +1 -7
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +4 -49
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/refresh-module.command.d.ts +0 -2
- package/dist/commands/refresh-module.command.d.ts.map +1 -1
- package/dist/commands/refresh-module.command.js +3 -16
- package/dist/commands/refresh-module.command.js.map +1 -1
- package/dist/commands/test-data.command.d.ts +2 -0
- package/dist/commands/test-data.command.d.ts.map +1 -1
- package/dist/commands/test-data.command.js +32 -6
- package/dist/commands/test-data.command.js.map +1 -1
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/controllers/action-metadata.controller.d.ts +1 -20
- package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/agent-event.controller.d.ts +1 -20
- package/dist/controllers/agent-event.controller.d.ts.map +1 -1
- package/dist/controllers/agent-session.controller.d.ts +1 -20
- package/dist/controllers/agent-session.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message-details.controller.d.ts +1 -20
- package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +3 -20
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +17 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/dashboard-user-layout.controller.d.ts +24 -0
- package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
- package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
- package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
- package/dist/controllers/dashboard.controller.d.ts +12 -42
- package/dist/controllers/dashboard.controller.d.ts.map +1 -1
- package/dist/controllers/dashboard.controller.js +71 -141
- package/dist/controllers/dashboard.controller.js.map +1 -1
- package/dist/controllers/datasource-introspection.controller.d.ts +234 -0
- package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-introspection.controller.js +98 -0
- package/dist/controllers/datasource-introspection.controller.js.map +1 -0
- package/dist/controllers/datasource-management.controller.d.ts +18 -0
- package/dist/controllers/datasource-management.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-management.controller.js +55 -0
- package/dist/controllers/datasource-management.controller.js.map +1 -0
- package/dist/controllers/email-template.controller.d.ts +1 -20
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.d.ts +1 -20
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-transaction.controller.d.ts +1 -20
- package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/gupshup-webhook.controller.d.ts +11 -0
- package/dist/controllers/gupshup-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/gupshup-webhook.controller.js +87 -0
- package/dist/controllers/gupshup-webhook.controller.js.map +1 -0
- package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -20
- package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +1 -20
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/list-of-values.controller.d.ts +1 -20
- package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
- package/dist/controllers/locale.controller.d.ts +1 -20
- package/dist/controllers/locale.controller.d.ts.map +1 -1
- package/dist/controllers/mcp-audit-log.controller.d.ts +16 -0
- package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -0
- package/dist/controllers/{dashboard-question.controller.js → mcp-audit-log.controller.js} +44 -91
- package/dist/controllers/mcp-audit-log.controller.js.map +1 -0
- package/dist/controllers/media.controller.d.ts +1 -20
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.d.ts +1 -20
- package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts +16 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js +133 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js.map +1 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts +28 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.js +122 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.js.map +1 -0
- package/dist/controllers/model-metadata.controller.d.ts +11 -31
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +4 -4
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +1 -20
- package/dist/controllers/model-sequence.controller.d.ts.map +1 -1
- package/dist/controllers/module-metadata-explorer.controller.d.ts +171 -0
- package/dist/controllers/module-metadata-explorer.controller.d.ts.map +1 -0
- package/dist/controllers/module-metadata-explorer.controller.js +143 -0
- package/dist/controllers/module-metadata-explorer.controller.js.map +1 -0
- package/dist/controllers/module-metadata.controller.d.ts +5 -0
- package/dist/controllers/module-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/module-metadata.controller.js +13 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/module-package.controller.d.ts +622 -0
- package/dist/controllers/module-package.controller.d.ts.map +1 -0
- package/dist/controllers/module-package.controller.js +150 -0
- package/dist/controllers/module-package.controller.js.map +1 -0
- package/dist/controllers/mq-message-queue.controller.d.ts +1 -20
- package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
- package/dist/controllers/mq-message.controller.d.ts +1 -20
- package/dist/controllers/mq-message.controller.d.ts.map +1 -1
- package/dist/controllers/permission-metadata.controller.d.ts +1 -20
- package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -20
- package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/saved-filters.controller.d.ts +1 -20
- package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +1 -20
- package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
- package/dist/controllers/security-rule.controller.d.ts +1 -20
- package/dist/controllers/security-rule.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.d.ts +1 -5
- package/dist/controllers/service.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.js +6 -11
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.d.ts +1 -20
- package/dist/controllers/sms-template.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.d.ts +1 -6
- package/dist/controllers/test.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.js +2 -20
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/controllers/user-activity-history.controller.d.ts +1 -20
- package/dist/controllers/user-activity-history.controller.d.ts.map +1 -1
- package/dist/controllers/user-view-metadata.controller.d.ts +1 -20
- package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/user.controller.d.ts +1 -20
- package/dist/controllers/user.controller.d.ts.map +1 -1
- package/dist/controllers/view-metadata.controller.d.ts +1 -20
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
- package/dist/dtos/confirm-module-package-import.dto.d.ts +4 -0
- package/dist/dtos/confirm-module-package-import.dto.d.ts.map +1 -0
- package/dist/dtos/confirm-module-package-import.dto.js +34 -0
- package/dist/dtos/confirm-module-package-import.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
- package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
- package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
- package/dist/dtos/create-datasource-management.dto.d.ts +25 -0
- package/dist/dtos/create-datasource-management.dto.d.ts.map +1 -0
- package/dist/dtos/create-datasource-management.dto.js +169 -0
- package/dist/dtos/create-datasource-management.dto.js.map +1 -0
- package/dist/dtos/create-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/create-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/create-mcp-audit-log.dto.js +118 -0
- package/dist/dtos/create-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts +2 -2
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +6 -11
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-permission-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-permission-metadata.dto.js +2 -0
- package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +13 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
- package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
- package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
- package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
- package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
- package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
- package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
- package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts +45 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js +233 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -0
- package/dist/dtos/import-instructions.dto.d.ts +2 -0
- package/dist/dtos/import-instructions.dto.d.ts.map +1 -1
- package/dist/dtos/import-instructions.dto.js +15 -1
- package/dist/dtos/import-instructions.dto.js.map +1 -1
- package/dist/dtos/metadata-explorer-references-query.dto.d.ts +10 -0
- package/dist/dtos/metadata-explorer-references-query.dto.d.ts.map +1 -0
- package/dist/dtos/metadata-explorer-references-query.dto.js +69 -0
- package/dist/dtos/metadata-explorer-references-query.dto.js.map +1 -0
- package/dist/dtos/metadata-explorer-search-query.dto.d.ts +8 -0
- package/dist/dtos/metadata-explorer-search-query.dto.d.ts.map +1 -0
- package/dist/dtos/metadata-explorer-search-query.dto.js +55 -0
- package/dist/dtos/metadata-explorer-search-query.dto.js.map +1 -0
- package/dist/dtos/metadata-explorer-write.dto.d.ts +4 -0
- package/dist/dtos/metadata-explorer-write.dto.d.ts.map +1 -0
- package/dist/dtos/{invoke-ai-prompt.dto.js → metadata-explorer-write.dto.js} +12 -12
- package/dist/dtos/metadata-explorer-write.dto.js.map +1 -0
- package/dist/dtos/run-module-package-build.dto.d.ts +5 -0
- package/dist/dtos/run-module-package-build.dto.d.ts.map +1 -0
- package/dist/dtos/run-module-package-build.dto.js +38 -0
- package/dist/dtos/run-module-package-build.dto.js.map +1 -0
- package/dist/dtos/run-module-package-seed.dto.d.ts +4 -0
- package/dist/dtos/run-module-package-seed.dto.d.ts.map +1 -0
- package/dist/dtos/run-module-package-seed.dto.js +34 -0
- package/dist/dtos/run-module-package-seed.dto.js.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts +5 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.js +34 -0
- package/dist/dtos/update-chatter-note-message.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
- package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
- package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
- package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.js +117 -0
- package/dist/dtos/update-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/update-permission-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-permission-metadata.dto.js +3 -1
- package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/update-role-metadata.dto.d.ts +2 -0
- package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-role-metadata.dto.js +13 -1
- package/dist/dtos/update-role-metadata.dto.js.map +1 -1
- package/dist/entities/action-metadata.entity.d.ts.map +1 -1
- package/dist/entities/action-metadata.entity.js +1 -0
- package/dist/entities/action-metadata.entity.js.map +1 -1
- package/dist/entities/agent-event.entity.d.ts.map +1 -1
- package/dist/entities/agent-event.entity.js +1 -0
- package/dist/entities/agent-event.entity.js.map +1 -1
- package/dist/entities/agent-session.entity.d.ts.map +1 -1
- package/dist/entities/agent-session.entity.js +1 -0
- package/dist/entities/agent-session.entity.js.map +1 -1
- package/dist/entities/chatter-message.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message.entity.js +2 -0
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
- package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
- package/dist/entities/dashboard-user-layout.entity.js +52 -0
- package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
- package/dist/entities/email-template.entity.d.ts.map +1 -1
- package/dist/entities/email-template.entity.js +1 -0
- package/dist/entities/email-template.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +4 -0
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.d.ts +2 -2
- package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.js +6 -6
- package/dist/entities/legacy-common-with-id.entity.js.map +1 -1
- package/dist/entities/legacy-common.entity.d.ts +1 -1
- package/dist/entities/legacy-common.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common.entity.js +14 -14
- package/dist/entities/legacy-common.entity.js.map +1 -1
- package/dist/entities/list-of-values.entity.d.ts.map +1 -1
- package/dist/entities/list-of-values.entity.js +4 -0
- package/dist/entities/list-of-values.entity.js.map +1 -1
- package/dist/entities/locale.entity.d.ts.map +1 -1
- package/dist/entities/locale.entity.js +1 -0
- package/dist/entities/locale.entity.js.map +1 -1
- package/dist/entities/mcp-audit-log.entity.d.ts +19 -0
- package/dist/entities/mcp-audit-log.entity.d.ts.map +1 -0
- package/dist/entities/mcp-audit-log.entity.js +90 -0
- package/dist/entities/mcp-audit-log.entity.js.map +1 -0
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +1 -0
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +2 -0
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +2 -2
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +8 -8
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/module-metadata.entity.d.ts.map +1 -1
- package/dist/entities/module-metadata.entity.js +2 -0
- package/dist/entities/module-metadata.entity.js.map +1 -1
- package/dist/entities/permission-metadata.entity.d.ts.map +1 -1
- package/dist/entities/permission-metadata.entity.js.map +1 -1
- package/dist/entities/role-metadata.entity.d.ts +2 -0
- package/dist/entities/role-metadata.entity.d.ts.map +1 -1
- package/dist/entities/role-metadata.entity.js +10 -2
- package/dist/entities/role-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.d.ts.map +1 -1
- package/dist/entities/saved-filters.entity.js +3 -0
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
- package/dist/entities/scheduled-job.entity.js +2 -0
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.d.ts.map +1 -1
- package/dist/entities/security-rule.entity.js +1 -0
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/entities/sms-template.entity.d.ts.map +1 -1
- package/dist/entities/sms-template.entity.js +2 -0
- package/dist/entities/sms-template.entity.js.map +1 -1
- package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
- package/dist/entities/user-activity-history.entity.js +1 -0
- package/dist/entities/user-activity-history.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +3 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +15 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.d.ts.map +1 -1
- package/dist/entities/view-metadata.entity.js +2 -0
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/enums/legacy-table-type.enum.d.ts +6 -0
- package/dist/enums/legacy-table-type.enum.d.ts.map +1 -0
- package/dist/enums/legacy-table-type.enum.js +10 -0
- package/dist/enums/legacy-table-type.enum.js.map +1 -0
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +13 -11
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +1 -0
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +6 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/command.service.d.ts +1 -0
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +2 -1
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts +34 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts.map +1 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.js +43 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.js.map +1 -0
- package/dist/helpers/model-metadata-helper.service.d.ts +2 -1
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +4 -3
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +2 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +23 -10
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +6 -6
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +5 -9
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +13 -28
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/typeorm-migration-helpers.d.ts +12 -0
- package/dist/helpers/typeorm-migration-helpers.d.ts.map +1 -0
- package/dist/helpers/typeorm-migration-helpers.js +119 -0
- package/dist/helpers/typeorm-migration-helpers.js.map +1 -0
- package/dist/helpers/user-helper.d.ts.map +1 -1
- package/dist/helpers/user-helper.js +4 -0
- package/dist/helpers/user-helper.js.map +1 -1
- package/dist/index.d.ts +42 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -10
- package/dist/index.js.map +1 -1
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts +26 -0
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js +3 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js.map +1 -0
- package/dist/interfaces.d.ts +23 -21
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/listeners/user-registration.listener.d.ts +5 -2
- package/dist/listeners/user-registration.listener.d.ts.map +1 -1
- package/dist/listeners/user-registration.listener.js +37 -4
- package/dist/listeners/user-registration.listener.js.map +1 -1
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts +14 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts.map +1 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js +67 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js.map +1 -0
- package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
- package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
- package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
- package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
- package/dist/repository/{ai-interaction.repository.d.ts → mcp-audit-log.repository.d.ts} +3 -3
- package/dist/repository/mcp-audit-log.repository.d.ts.map +1 -0
- package/dist/repository/{ai-interaction.repository.js → mcp-audit-log.repository.js} +8 -8
- package/dist/repository/mcp-audit-log.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +2 -6
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +58 -98
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +2 -0
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +62 -1
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +5010 -4284
- package/dist/seeders/system-fields-seeder.service.js +1 -1
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +18 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +209 -15
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +7 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +94 -2
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +18 -0
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +76 -2
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +1 -21
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +23 -87
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +20 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +201 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-runtime.service.d.ts +31 -0
- package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
- package/dist/services/dashboard-runtime.service.js +408 -0
- package/dist/services/dashboard-runtime.service.js.map +1 -0
- package/dist/services/dashboard-user-layout.service.d.ts +12 -0
- package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
- package/dist/services/{dashboard-question-sql-dataset-config.service.js → dashboard-user-layout.service.js} +10 -10
- package/dist/services/dashboard-user-layout.service.js.map +1 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js +181 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js +90 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js +156 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection.service.d.ts +288 -0
- package/dist/services/datasource-introspection.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection.service.js +1278 -0
- package/dist/services/datasource-introspection.service.js.map +1 -0
- package/dist/services/datasource-management.service.d.ts +60 -0
- package/dist/services/datasource-management.service.d.ts.map +1 -0
- package/dist/services/datasource-management.service.js +461 -0
- package/dist/services/datasource-management.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +19 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +6 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/mcp-audit-log.service.d.ts +12 -0
- package/dist/services/mcp-audit-log.service.d.ts.map +1 -0
- package/dist/services/{dashboard-variable.service.js → mcp-audit-log.service.js} +9 -10
- package/dist/services/mcp-audit-log.service.js.map +1 -0
- package/dist/services/media.service.d.ts +1 -20
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +51 -11
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +11 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +20 -34
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +311 -50
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata-explorer.service.d.ts +161 -0
- package/dist/services/module-metadata-explorer.service.d.ts.map +1 -0
- package/dist/services/module-metadata-explorer.service.js +485 -0
- package/dist/services/module-metadata-explorer.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts +11 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +140 -4
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/module-package.service.d.ts +266 -0
- package/dist/services/module-package.service.d.ts.map +1 -0
- package/dist/services/module-package.service.js +980 -0
- package/dist/services/module-package.service.js.map +1 -0
- package/dist/services/role-metadata.service.d.ts +1 -0
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +13 -0
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +58 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +59 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +32 -8
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +292 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +164 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +1 -2
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +12 -24
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.d.ts +1 -1
- package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +47 -1
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts +11 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js +127 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts +17 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js +209 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js.map +1 -0
- package/dist/solid-core.module.d.ts +2 -2
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +95 -103
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.js +1 -3
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js +1 -1
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts +1 -0
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +3 -0
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/dist/testing/steps/ui/index.d.ts.map +1 -1
- package/dist/testing/steps/ui/index.js +2 -0
- package/dist/testing/steps/ui/index.js.map +1 -1
- package/dist/testing/steps/ui/manual.step.d.ts +3 -0
- package/dist/testing/steps/ui/manual.step.d.ts.map +1 -0
- package/dist/testing/steps/ui/manual.step.js +56 -0
- package/dist/testing/steps/ui/manual.step.js.map +1 -0
- package/dist/winston.logger.d.ts +5 -0
- package/dist/winston.logger.d.ts.map +1 -1
- package/dist/winston.logger.js +6 -4
- package/dist/winston.logger.js.map +1 -1
- package/package.json +5 -8
- package/src/commands/info.command.ts +0 -2
- package/src/commands/refresh-model.command.ts +6 -51
- package/src/commands/refresh-module.command.ts +3 -16
- package/src/commands/test-data.command.ts +29 -6
- package/src/constants/error-messages.ts +2 -1
- package/src/controllers/chatter-message.controller.ts +12 -0
- package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
- package/src/controllers/dashboard.controller.ts +70 -89
- package/src/controllers/datasource-introspection.controller.ts +58 -0
- package/src/controllers/datasource-management.controller.ts +24 -0
- package/src/controllers/gupshup-webhook.controller.ts +91 -0
- package/src/controllers/mcp-audit-log.controller.ts +70 -0
- package/src/controllers/meta-cloud-whatsapp-webhook.controller.ts +155 -0
- package/src/controllers/microsoft-active-directory-authentication.controller.ts +104 -0
- package/src/controllers/model-metadata.controller.ts +1 -1
- package/src/controllers/module-metadata-explorer.controller.ts +83 -0
- package/src/controllers/module-metadata.controller.ts +7 -1
- package/src/controllers/module-package.controller.ts +102 -0
- package/src/controllers/service.controller.ts +4 -7
- package/src/controllers/test.controller.ts +0 -9
- package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
- package/src/dtos/confirm-module-package-import.dto.ts +12 -0
- package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
- package/src/dtos/create-datasource-management.dto.ts +139 -0
- package/src/dtos/create-mcp-audit-log.dto.ts +84 -0
- package/src/dtos/create-model-metadata.dto.ts +5 -9
- package/src/dtos/create-permission-metadata.dto.ts +3 -0
- package/src/dtos/create-role-metadata.dto.ts +11 -1
- package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
- package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
- package/src/dtos/datasource-introspection-mapping.dto.ts +182 -0
- package/src/dtos/import-instructions.dto.ts +11 -1
- package/src/dtos/metadata-explorer-references-query.dto.ts +39 -0
- package/src/dtos/metadata-explorer-search-query.dto.ts +28 -0
- package/src/dtos/metadata-explorer-write.dto.ts +11 -0
- package/src/dtos/run-module-package-build.dto.ts +14 -0
- package/src/dtos/run-module-package-seed.dto.ts +12 -0
- package/src/dtos/update-chatter-note-message.dto.ts +14 -0
- package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
- package/src/dtos/update-mcp-audit-log.dto.ts +83 -0
- package/src/dtos/update-permission-metadata.dto.ts +4 -1
- package/src/dtos/update-role-metadata.dto.ts +21 -1
- package/src/entities/action-metadata.entity.ts +1 -0
- package/src/entities/agent-event.entity.ts +1 -0
- package/src/entities/agent-session.entity.ts +1 -0
- package/src/entities/chatter-message.entity.ts +2 -0
- package/src/entities/dashboard-user-layout.entity.ts +27 -0
- package/src/entities/email-template.entity.ts +1 -0
- package/src/entities/field-metadata.entity.ts +4 -1
- package/src/entities/legacy-common-with-id.entity.ts +2 -2
- package/src/entities/legacy-common.entity.ts +1 -1
- package/src/entities/list-of-values.entity.ts +5 -1
- package/src/entities/locale.entity.ts +1 -0
- package/src/entities/mcp-audit-log.entity.ts +55 -0
- package/src/entities/media.entity.ts +1 -0
- package/src/entities/menu-item-metadata.entity.ts +2 -0
- package/src/entities/model-metadata.entity.ts +6 -5
- package/src/entities/module-metadata.entity.ts +2 -0
- package/src/entities/permission-metadata.entity.ts +2 -2
- package/src/entities/role-metadata.entity.ts +11 -3
- package/src/entities/saved-filters.entity.ts +3 -0
- package/src/entities/scheduled-job.entity.ts +2 -0
- package/src/entities/security-rule.entity.ts +1 -0
- package/src/entities/sms-template.entity.ts +2 -0
- package/src/entities/user-activity-history.entity.ts +1 -0
- package/src/entities/user.entity.ts +15 -1
- package/src/entities/view-metadata.entity.ts +2 -0
- package/src/enums/legacy-table-type.enum.ts +5 -0
- package/src/factories/whatsapp.factory.ts +33 -32
- package/src/helpers/bootstrap.helper.ts +13 -6
- package/src/helpers/command.service.ts +3 -1
- package/src/helpers/field-crud-managers/field-quality-check-fixes.md +208 -0
- package/src/helpers/microsoft-active-directory-oauth.helper.ts +83 -0
- package/src/helpers/model-metadata-helper.service.ts +4 -3
- package/src/helpers/module-metadata-helper.service.ts +33 -20
- package/src/helpers/module.helper.ts +12 -9
- package/src/helpers/solid-registry.ts +15 -36
- package/src/helpers/typeorm-migration-helpers.ts +163 -0
- package/src/helpers/user-helper.ts +5 -1
- package/src/index.ts +42 -10
- package/src/interfaces/datasource-introspection-provider.interface.ts +28 -0
- package/src/interfaces.ts +32 -29
- package/src/listeners/user-registration.listener.ts +49 -6
- package/src/passport-strategies/microsoft-active-directory-oauth.strategy.ts +63 -0
- package/src/repositories/dashboard-user-layout.repository.ts +19 -0
- package/src/repository/mcp-audit-log.repository.ts +17 -0
- package/src/seeders/module-metadata-seeder.service.ts +63 -105
- package/src/seeders/module-test-data.service.ts +80 -3
- package/src/seeders/seed-data/solid-core-metadata.json +5011 -4285
- package/src/seeders/system-fields-seeder.service.ts +1 -1
- package/src/services/authentication.service.ts +360 -47
- package/src/services/chatter-message.service.ts +112 -2
- package/src/services/crud-helper.service.ts +86 -2
- package/src/services/crud.service.ts +26 -119
- package/src/services/dashboard-providers/README.md +603 -0
- package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
- package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +63 -0
- package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +84 -0
- package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +247 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +161 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
- package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
- package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
- package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
- package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
- package/src/services/dashboard-runtime.service.ts +488 -0
- package/src/services/dashboard-user-layout.service.ts +20 -0
- package/src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts +185 -0
- package/src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts +95 -0
- package/src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts +160 -0
- package/src/services/datasource-introspection.service.ts +1536 -0
- package/src/services/datasource-management.service.ts +566 -0
- package/src/services/field-metadata.service.ts +21 -1
- package/src/services/import-transaction.service.ts +11 -1
- package/src/services/mcp-audit-log.service.ts +19 -0
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +60 -13
- package/src/services/mediaStorageProviders/file-storage-provider.ts +13 -2
- package/src/services/model-metadata.service.ts +362 -122
- package/src/services/module-metadata-explorer.service.ts +670 -0
- package/src/services/module-metadata.service.ts +148 -10
- package/src/services/module-package.service.ts +1171 -0
- package/src/services/role-metadata.service.ts +14 -0
- package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +50 -0
- package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +49 -0
- package/src/services/setting.service.ts +43 -12
- package/src/services/settings/default-settings-provider.service.ts +167 -0
- package/src/services/solid-introspect.service.ts +19 -34
- package/src/services/solid-ts-morph.service.ts +2 -2
- package/src/services/user.service.ts +62 -1
- package/src/services/whatsapp/GupshupOtpWhatsappService.ts +174 -0
- package/src/services/whatsapp/MetaCloudWhatsappService.ts +253 -0
- package/src/solid-core.module.ts +267 -282
- package/src/subscribers/model-metadata.subscriber.ts +1 -3
- package/src/subscribers/scheduled-job.subscriber.ts +1 -1
- package/src/subscribers/security-rule.subscriber.ts +1 -1
- package/src/testing/README.md +55 -2
- package/src/testing/adapters/ui/playwright-adapter.ts +4 -0
- package/src/testing/steps/ui/index.ts +2 -0
- package/src/testing/steps/ui/manual.step.ts +80 -0
- package/src/winston.logger.ts +5 -7
- package/dist/commands/ingest.command.d.ts +0 -16
- package/dist/commands/ingest.command.d.ts.map +0 -1
- package/dist/commands/ingest.command.js +0 -50
- package/dist/commands/ingest.command.js.map +0 -1
- package/dist/controllers/ai-interaction.controller.d.ts +0 -48
- package/dist/controllers/ai-interaction.controller.d.ts.map +0 -1
- package/dist/controllers/ai-interaction.controller.js +0 -218
- package/dist/controllers/ai-interaction.controller.js.map +0 -1
- package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
- package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-layout.controller.js +0 -204
- package/dist/controllers/dashboard-layout.controller.js.map +0 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
- package/dist/controllers/dashboard-question.controller.d.ts +0 -45
- package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-question.controller.js.map +0 -1
- package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
- package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-variable.controller.js.map +0 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
- package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
- package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
- package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
- package/dist/dtos/create-ai-interaction.dto.d.ts +0 -23
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +0 -1
- package/dist/dtos/create-ai-interaction.dto.js +0 -149
- package/dist/dtos/create-ai-interaction.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
- package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-layout.dto.js +0 -53
- package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
- package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-question.dto.js +0 -105
- package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
- package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-variable.dto.js +0 -103
- package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
- package/dist/dtos/create-dashboard.dto.d.ts +0 -17
- package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard.dto.js +0 -102
- package/dist/dtos/create-dashboard.dto.js.map +0 -1
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
- package/dist/dtos/invoke-ai-prompt.dto.d.ts +0 -5
- package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +0 -1
- package/dist/dtos/invoke-ai-prompt.dto.js.map +0 -1
- package/dist/dtos/update-ai-interaction.dto.d.ts +0 -24
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +0 -1
- package/dist/dtos/update-ai-interaction.dto.js +0 -150
- package/dist/dtos/update-ai-interaction.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
- package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
- package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-question.dto.js +0 -112
- package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
- package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-variable.dto.js +0 -101
- package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
- package/dist/dtos/update-dashboard.dto.d.ts +0 -18
- package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard.dto.js +0 -108
- package/dist/dtos/update-dashboard.dto.js.map +0 -1
- package/dist/entities/ai-interaction.entity.d.ts +0 -24
- package/dist/entities/ai-interaction.entity.d.ts.map +0 -1
- package/dist/entities/ai-interaction.entity.js +0 -116
- package/dist/entities/ai-interaction.entity.js.map +0 -1
- package/dist/entities/dashboard-layout.entity.d.ts +0 -9
- package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-layout.entity.js +0 -41
- package/dist/entities/dashboard-layout.entity.js.map +0 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
- package/dist/entities/dashboard-question.entity.d.ts +0 -17
- package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-question.entity.js +0 -77
- package/dist/entities/dashboard-question.entity.js.map +0 -1
- package/dist/entities/dashboard-variable.entity.d.ts +0 -16
- package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-variable.entity.js +0 -79
- package/dist/entities/dashboard-variable.entity.js.map +0 -1
- package/dist/entities/dashboard.entity.d.ts +0 -16
- package/dist/entities/dashboard.entity.d.ts.map +0 -1
- package/dist/entities/dashboard.entity.js +0 -64
- package/dist/entities/dashboard.entity.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +0 -11
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +0 -39
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +0 -8
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-queue-options.js +0 -10
- package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +0 -27
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +0 -245
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +0 -11
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js +0 -39
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts +0 -8
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js +0 -10
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +0 -18
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js +0 -103
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +0 -11
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +0 -39
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +0 -8
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +0 -10
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +0 -18
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +0 -103
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +0 -1
- package/dist/mappers/dashboard-mapper.d.ts +0 -6
- package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
- package/dist/mappers/dashboard-mapper.js +0 -62
- package/dist/mappers/dashboard-mapper.js.map +0 -1
- package/dist/repository/ai-interaction.repository.d.ts.map +0 -1
- package/dist/repository/ai-interaction.repository.js.map +0 -1
- package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-layout.repository.js +0 -34
- package/dist/repository/dashboard-layout.repository.js.map +0 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
- package/dist/repository/dashboard-question.repository.d.ts +0 -12
- package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-question.repository.js +0 -34
- package/dist/repository/dashboard-question.repository.js.map +0 -1
- package/dist/repository/dashboard-variable.repository.d.ts +0 -12
- package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-variable.repository.js +0 -34
- package/dist/repository/dashboard-variable.repository.js.map +0 -1
- package/dist/repository/dashboard.repository.d.ts +0 -13
- package/dist/repository/dashboard.repository.d.ts.map +0 -1
- package/dist/repository/dashboard.repository.js +0 -104
- package/dist/repository/dashboard.repository.js.map +0 -1
- package/dist/services/ai-interaction.service.d.ts +0 -23
- package/dist/services/ai-interaction.service.d.ts.map +0 -1
- package/dist/services/ai-interaction.service.js +0 -217
- package/dist/services/ai-interaction.service.js.map +0 -1
- package/dist/services/dashboard-layout.service.d.ts +0 -20
- package/dist/services/dashboard-layout.service.d.ts.map +0 -1
- package/dist/services/dashboard-layout.service.js +0 -120
- package/dist/services/dashboard-layout.service.js.map +0 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
- package/dist/services/dashboard-question.service.d.ts +0 -23
- package/dist/services/dashboard-question.service.d.ts.map +0 -1
- package/dist/services/dashboard-question.service.js +0 -135
- package/dist/services/dashboard-question.service.js.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
- package/dist/services/dashboard-variable.service.d.ts +0 -13
- package/dist/services/dashboard-variable.service.d.ts.map +0 -1
- package/dist/services/dashboard-variable.service.js.map +0 -1
- package/dist/services/dashboard.service.d.ts +0 -29
- package/dist/services/dashboard.service.d.ts.map +0 -1
- package/dist/services/dashboard.service.js +0 -171
- package/dist/services/dashboard.service.js.map +0 -1
- package/dist/services/database/database-bootstrap.service.d.ts +0 -12
- package/dist/services/database/database-bootstrap.service.d.ts.map +0 -1
- package/dist/services/database/database-bootstrap.service.js +0 -115
- package/dist/services/database/database-bootstrap.service.js.map +0 -1
- package/dist/services/genai/ingest-metadata.service.d.ts +0 -38
- package/dist/services/genai/ingest-metadata.service.d.ts.map +0 -1
- package/dist/services/genai/ingest-metadata.service.js +0 -542
- package/dist/services/genai/ingest-metadata.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +0 -9
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +0 -39
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/r2r-helper.service.d.ts +0 -9
- package/dist/services/genai/r2r-helper.service.d.ts.map +0 -1
- package/dist/services/genai/r2r-helper.service.js +0 -40
- package/dist/services/genai/r2r-helper.service.js.map +0 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
- package/dist/services/question-data-providers/helpers.d.ts +0 -7
- package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
- package/dist/services/question-data-providers/helpers.js +0 -25
- package/dist/services/question-data-providers/helpers.js.map +0 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
- package/dist/services/sql-expression-resolver.service.d.ts +0 -12
- package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
- package/dist/services/sql-expression-resolver.service.js +0 -121
- package/dist/services/sql-expression-resolver.service.js.map +0 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-question.subscriber.js +0 -72
- package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
- package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard.subscriber.js +0 -71
- package/dist/subscribers/dashboard.subscriber.js.map +0 -1
- package/sql/default/mariadb/proc_CleanupModelMetadata.sql +0 -153
- package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +0 -56
- package/sql/default/mssql/proc_CleanupModuleMetadata.sql +0 -78
- package/sql/default/mysql/proc_CleanupModelMetadata.sql +0 -153
- package/sql/default/mysql/proc_CleanupModuleMetadata.sql +0 -56
- package/sql/default/postgres/proc_CleanupModelMetadata.sql +0 -148
- package/sql/default/postgres/proc_CleanupModuleMetadata.sql +0 -50
- package/sql/default/postgres/scratchpad.sql.txt +0 -12
- package/src/commands/ingest.command.ts +0 -36
- package/src/controllers/ai-interaction.controller.ts +0 -112
- package/src/controllers/dashboard-layout.controller.ts +0 -106
- package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
- package/src/controllers/dashboard-question.controller.ts +0 -104
- package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
- package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
- package/src/dtos/create-ai-interaction.dto.ts +0 -89
- package/src/dtos/create-dashboard-layout.dto.ts +0 -31
- package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
- package/src/dtos/create-dashboard-question.dto.ts +0 -62
- package/src/dtos/create-dashboard-variable.dto.ts +0 -60
- package/src/dtos/create-dashboard.dto.ts +0 -61
- package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
- package/src/dtos/invoke-ai-prompt.dto.ts +0 -10
- package/src/dtos/update-ai-interaction.dto.ts +0 -93
- package/src/dtos/update-dashboard-layout.dto.ts +0 -30
- package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
- package/src/dtos/update-dashboard-question.dto.ts +0 -67
- package/src/dtos/update-dashboard-variable.dto.ts +0 -58
- package/src/dtos/update-dashboard.dto.ts +0 -65
- package/src/entities/ai-interaction.entity.ts +0 -71
- package/src/entities/dashboard-layout.entity.ts +0 -18
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
- package/src/entities/dashboard-question.entity.ts +0 -46
- package/src/entities/dashboard-variable.entity.ts +0 -44
- package/src/entities/dashboard.entity.ts +0 -36
- package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +0 -22
- package/src/jobs/database/trigger-mcp-client-queue-options.ts +0 -9
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +0 -311
- package/src/jobs/rabbitmq/trigger-mcp-client-publisher.service.ts +0 -22
- package/src/jobs/rabbitmq/trigger-mcp-client-queue-options.ts +0 -9
- package/src/jobs/rabbitmq/trigger-mcp-client-subscriber.service.ts +0 -104
- package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +0 -23
- package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +0 -9
- package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +0 -98
- package/src/mappers/dashboard-mapper.ts +0 -53
- package/src/repository/ai-interaction.repository.ts +0 -17
- package/src/repository/dashboard-layout.repository.ts +0 -17
- package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
- package/src/repository/dashboard-question.repository.ts +0 -17
- package/src/repository/dashboard-variable.repository.ts +0 -17
- package/src/repository/dashboard.repository.ts +0 -101
- package/src/services/ai-interaction.service.ts +0 -239
- package/src/services/dashboard-layout.service.ts +0 -111
- package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
- package/src/services/dashboard-question.service.ts +0 -150
- package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
- package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
- package/src/services/dashboard-variable.service.ts +0 -27
- package/src/services/dashboard.service.ts +0 -148
- package/src/services/database/database-bootstrap.service.ts +0 -91
- package/src/services/genai/ingest-metadata.service.ts +0 -798
- package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +0 -33
- package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
- package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
- package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
- package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
- package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
- package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
- package/src/services/genai/r2r-helper.service.ts +0 -37
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
- package/src/services/question-data-providers/helpers.ts +0 -30
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
- package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
- package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
- package/src/services/sql-expression-resolver.service.ts +0 -140
- package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
- package/src/subscribers/dashboard-question.subscriber.ts +0 -62
- package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
- package/src/subscribers/dashboard.subscriber.ts +0 -62
|
@@ -37,7 +37,7 @@ export class SystemFieldsSeederService {
|
|
|
37
37
|
private async seedMissingSystemFields(model: ModelMetadata) {
|
|
38
38
|
this.logger.debug(`Checking system fields for model: ${model.singularName}`);
|
|
39
39
|
const existingSystemFields = model.fields.filter(field => field.isSystem);
|
|
40
|
-
const systemFieldsMetadata = this.modelHelperService.getSystemFieldsMetadata(model.
|
|
40
|
+
const systemFieldsMetadata = this.modelHelperService.getSystemFieldsMetadata(model.legacyTableType);
|
|
41
41
|
this.logger.debug(`Model: ${model.singularName} has ${existingSystemFields.length} existing system fields.`);
|
|
42
42
|
// Find out which system fields are missing
|
|
43
43
|
const missingFields = systemFieldsMetadata.filter(
|
|
@@ -50,6 +50,7 @@ import { SettingService } from "./setting.service";
|
|
|
50
50
|
import { UserActivityHistoryService } from "./user-activity-history.service";
|
|
51
51
|
import { UserService } from "./user.service";
|
|
52
52
|
import { SmsFactory } from "src/factories/sms.factory";
|
|
53
|
+
import { WhatsAppFactory } from "src/factories/whatsapp.factory";
|
|
53
54
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
54
55
|
|
|
55
56
|
enum LoginProvider {
|
|
@@ -79,6 +80,7 @@ export class AuthenticationService {
|
|
|
79
80
|
private readonly mailServiceFactory: MailFactory,
|
|
80
81
|
// private readonly smsService: Msg91OTPService,
|
|
81
82
|
private readonly smsFactory: SmsFactory,
|
|
83
|
+
private readonly whatsAppFactory: WhatsAppFactory,
|
|
82
84
|
private readonly eventEmitter: EventEmitter2,
|
|
83
85
|
private readonly settingService: SettingService,
|
|
84
86
|
private readonly roleMetadataService: RoleMetadataService,
|
|
@@ -193,11 +195,22 @@ export class AuthenticationService {
|
|
|
193
195
|
return this.performSignUp(signUpDto, new User(), this.userRepository);
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
private async performSignUp<T extends User>(
|
|
198
|
+
private async performSignUp<T extends User>(
|
|
199
|
+
signUpDto: SignUpDto,
|
|
200
|
+
entity: T,
|
|
201
|
+
repo: Repository<T>,
|
|
202
|
+
): Promise<T> {
|
|
197
203
|
try {
|
|
198
|
-
const onForcePasswordChange =
|
|
199
|
-
|
|
200
|
-
|
|
204
|
+
const onForcePasswordChange =
|
|
205
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
206
|
+
"forceChangePasswordOnFirstLogin",
|
|
207
|
+
);
|
|
208
|
+
const activateUserOnRegistration =
|
|
209
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
210
|
+
"activateUserOnRegistration",
|
|
211
|
+
);
|
|
212
|
+
const defaultRole =
|
|
213
|
+
this.settingService.getConfigValue<SolidCoreSetting>("defaultRole");
|
|
201
214
|
|
|
202
215
|
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup<T>(
|
|
203
216
|
entity,
|
|
@@ -211,14 +224,19 @@ export class AuthenticationService {
|
|
|
211
224
|
}
|
|
212
225
|
const savedUser = await repo.save(user);
|
|
213
226
|
const userRoles = signUpDto.roles ?? [];
|
|
214
|
-
if (
|
|
227
|
+
if (
|
|
228
|
+
(signUpDto.roles?.length ?? 0) === 0 &&
|
|
229
|
+
signUpDto.username !== "sa" &&
|
|
230
|
+
defaultRole
|
|
231
|
+
) {
|
|
215
232
|
userRoles.push(defaultRole);
|
|
216
233
|
}
|
|
217
234
|
await this.handlePostSignup(savedUser, userRoles, pwd, autoGeneratedPwd);
|
|
235
|
+
await this.handlePasswordlessSignupOtp(savedUser, signUpDto, autoGeneratedPwd, repo);
|
|
236
|
+
this.triggerRegistrationEvent(savedUser);
|
|
218
237
|
|
|
219
238
|
return savedUser;
|
|
220
|
-
}
|
|
221
|
-
catch (err: any) {
|
|
239
|
+
} catch (err: any) {
|
|
222
240
|
const pgUniqueViolationErrorCode = "23505";
|
|
223
241
|
if (err.code === pgUniqueViolationErrorCode) {
|
|
224
242
|
throw new ConflictException(
|
|
@@ -231,6 +249,42 @@ export class AuthenticationService {
|
|
|
231
249
|
}
|
|
232
250
|
}
|
|
233
251
|
|
|
252
|
+
private async handlePasswordlessSignupOtp<T extends User>(
|
|
253
|
+
user: T,
|
|
254
|
+
signUpDto: SignUpDto,
|
|
255
|
+
autoGeneratedPwd: string,
|
|
256
|
+
repo: Repository<T>,
|
|
257
|
+
): Promise<void> {
|
|
258
|
+
const isPasswordProvided = !!signUpDto.password;
|
|
259
|
+
const isAutoGeneratedPassword = !!autoGeneratedPwd;
|
|
260
|
+
if (isPasswordProvided || isAutoGeneratedPassword) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
if (!user.mobile) {
|
|
265
|
+
this.logger.warn(
|
|
266
|
+
`Skipping passwordless signup OTP WhatsApp notification for user ${user.username}: mobile is missing.`,
|
|
267
|
+
);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const isPasswordlessRegistrationEnabled =
|
|
272
|
+
await this.isPasswordlessRegistrationEnabled();
|
|
273
|
+
if (!isPasswordlessRegistrationEnabled) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
await this.assignRegistrationOtp(
|
|
278
|
+
PasswordlessRegistrationValidateWhatSources.MOBILE,
|
|
279
|
+
user,
|
|
280
|
+
);
|
|
281
|
+
await repo.save(user);
|
|
282
|
+
await this.notifyUserOnOtpInitiateRegistration(
|
|
283
|
+
user,
|
|
284
|
+
PasswordlessRegistrationValidateWhatSources.MOBILE,
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
|
|
234
288
|
/** @deprecated Use IExtensionUserCreationProvider instead. Kept for backward compatibility. */
|
|
235
289
|
async signupForExtensionUser<T extends User>(
|
|
236
290
|
signUpDto: SignUpDto,
|
|
@@ -255,7 +309,7 @@ export class AuthenticationService {
|
|
|
255
309
|
if (signUpDto.roles && signUpDto.roles.length > 0) {
|
|
256
310
|
for (let i = 0; i < signUpDto.roles.length; i++) {
|
|
257
311
|
const roleName = signUpDto.roles[i];
|
|
258
|
-
await this.roleMetadataService.
|
|
312
|
+
await this.roleMetadataService.assertRoleExistsByName(roleName);
|
|
259
313
|
}
|
|
260
314
|
}
|
|
261
315
|
user.username = signUpDto.username;
|
|
@@ -602,7 +656,7 @@ export class AuthenticationService {
|
|
|
602
656
|
const companyLogo = await this.getCompanyLogo();
|
|
603
657
|
if (
|
|
604
658
|
registrationValidationSource ===
|
|
605
|
-
|
|
659
|
+
PasswordlessRegistrationValidateWhatSources.EMAIL
|
|
606
660
|
) {
|
|
607
661
|
const mailService = this.mailServiceFactory.getMailService();
|
|
608
662
|
mailService.sendEmailUsingTemplate(
|
|
@@ -632,25 +686,141 @@ export class AuthenticationService {
|
|
|
632
686
|
}
|
|
633
687
|
if (
|
|
634
688
|
registrationValidationSource ===
|
|
635
|
-
|
|
689
|
+
PasswordlessRegistrationValidateWhatSources.MOBILE
|
|
636
690
|
) {
|
|
637
|
-
const
|
|
638
|
-
|
|
691
|
+
const templateParams = {
|
|
692
|
+
solidAppName:
|
|
693
|
+
this.settingService.getConfigValue<SolidCoreSetting>("appTitle"),
|
|
694
|
+
otp: user.mobileVerificationTokenOnRegistration,
|
|
695
|
+
mobileVerificationTokenOnRegistration:
|
|
696
|
+
user.mobileVerificationTokenOnRegistration,
|
|
697
|
+
firstName: user.username,
|
|
698
|
+
fullName: user.fullName ? user.fullName : user.username,
|
|
699
|
+
companyLogoUrl: companyLogo,
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
const whatsappDestination = this.normalizeWhatsAppDestination(
|
|
639
703
|
user.mobile,
|
|
640
|
-
"otp-on-register",
|
|
641
|
-
{
|
|
642
|
-
solidAppName:
|
|
643
|
-
this.settingService.getConfigValue<SolidCoreSetting>("appTitle"),
|
|
644
|
-
otp: user.mobileVerificationTokenOnRegistration,
|
|
645
|
-
mobileVerificationTokenOnRegistration:
|
|
646
|
-
user.mobileVerificationTokenOnRegistration,
|
|
647
|
-
firstName: user.username,
|
|
648
|
-
fullName: user.fullName ? user.fullName : user.username,
|
|
649
|
-
companyLogoUrl: companyLogo,
|
|
650
|
-
},
|
|
651
|
-
this.settingService.getConfigValue<SolidCoreSetting>("shouldQueueSms"),
|
|
652
704
|
);
|
|
705
|
+
const gupshupTemplateAppName =
|
|
706
|
+
process.env.COMMON_GUPSHUP_APP_NAME || "Gupshup";
|
|
707
|
+
const whatsappTemplateId =
|
|
708
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
709
|
+
"otpWhatsappTemplateId",
|
|
710
|
+
) || "common_otp";
|
|
711
|
+
const whatsappIndependentEnabled =
|
|
712
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
713
|
+
"otpWhatsappIndependentEnabled",
|
|
714
|
+
) !== false;
|
|
715
|
+
|
|
716
|
+
let smsSent = false;
|
|
717
|
+
let whatsappSent = false;
|
|
718
|
+
let smsErrorMessage: string | undefined;
|
|
719
|
+
let whatsappErrorMessage: string | undefined;
|
|
720
|
+
|
|
721
|
+
this.logger.debug(
|
|
722
|
+
`OTP SMS send attempt: destination=${user.mobile}, whatsappDestination=${whatsappDestination}`,
|
|
723
|
+
);
|
|
724
|
+
|
|
725
|
+
try {
|
|
726
|
+
const smsService = this.smsFactory.getSmsService();
|
|
727
|
+
await smsService.sendSMSUsingTemplate(
|
|
728
|
+
user.mobile,
|
|
729
|
+
"otp-on-register",
|
|
730
|
+
templateParams,
|
|
731
|
+
false,
|
|
732
|
+
);
|
|
733
|
+
smsSent = true;
|
|
734
|
+
} catch (smsError: any) {
|
|
735
|
+
smsErrorMessage = smsError?.message;
|
|
736
|
+
this.logger.warn(
|
|
737
|
+
`OTP SMS failed: destination=${user.mobile}, message=${smsErrorMessage}`,
|
|
738
|
+
);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
if (whatsappIndependentEnabled) {
|
|
742
|
+
if (!whatsappDestination) {
|
|
743
|
+
whatsappErrorMessage = "Normalized WhatsApp destination is empty";
|
|
744
|
+
this.logger.error(
|
|
745
|
+
`Independent OTP WhatsApp skipped: destination=${user.mobile}, message=${whatsappErrorMessage}`,
|
|
746
|
+
);
|
|
747
|
+
} else {
|
|
748
|
+
this.logger.debug(
|
|
749
|
+
`Independent OTP WhatsApp send attempt: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}`,
|
|
750
|
+
);
|
|
751
|
+
try {
|
|
752
|
+
await this.sendOtpToWhatsappProvider(
|
|
753
|
+
whatsappDestination,
|
|
754
|
+
String(whatsappTemplateId),
|
|
755
|
+
String(gupshupTemplateAppName),
|
|
756
|
+
String(templateParams.otp || ""),
|
|
757
|
+
);
|
|
758
|
+
whatsappSent = true;
|
|
759
|
+
this.logger.log(
|
|
760
|
+
`Independent OTP WhatsApp success: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}`,
|
|
761
|
+
);
|
|
762
|
+
} catch (waError: any) {
|
|
763
|
+
whatsappErrorMessage = waError?.message;
|
|
764
|
+
this.logger.error(
|
|
765
|
+
`Independent OTP WhatsApp failed: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}, message=${whatsappErrorMessage}`,
|
|
766
|
+
);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
if (!smsSent && !whatsappSent) {
|
|
772
|
+
throw new Error(
|
|
773
|
+
`OTP delivery failed on both channels. smsError=${smsErrorMessage || "unknown"}, whatsappError=${whatsappErrorMessage || "disabled/unknown"}`,
|
|
774
|
+
);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
private normalizeWhatsAppDestination(rawMobile: string): string {
|
|
780
|
+
const raw = (rawMobile || "").trim();
|
|
781
|
+
let sanitized = raw.replace(/[^\d+]/g, "");
|
|
782
|
+
|
|
783
|
+
if (sanitized.startsWith("00")) {
|
|
784
|
+
sanitized = `+${sanitized.slice(2)}`;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
const defaultDialCode = String(
|
|
788
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
789
|
+
"otpDefaultCountryDialCode",
|
|
790
|
+
) || "",
|
|
791
|
+
).replace(/\D/g, "");
|
|
792
|
+
|
|
793
|
+
if (sanitized.startsWith("+")) {
|
|
794
|
+
const e164Digits = sanitized.slice(1).replace(/\D/g, "");
|
|
795
|
+
if (e164Digits.length >= 8 && e164Digits.length <= 15) {
|
|
796
|
+
return e164Digits;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
const digits = sanitized.replace(/\D/g, "");
|
|
801
|
+
|
|
802
|
+
if (digits.length >= 11 && digits.length <= 15) {
|
|
803
|
+
return digits;
|
|
653
804
|
}
|
|
805
|
+
|
|
806
|
+
if (digits.length === 10 && defaultDialCode) {
|
|
807
|
+
return `${defaultDialCode}${digits}`;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
return digits;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
private async sendOtpToWhatsappProvider(
|
|
814
|
+
destination: string,
|
|
815
|
+
templateId: string,
|
|
816
|
+
appName: string,
|
|
817
|
+
otp: string,
|
|
818
|
+
): Promise<void> {
|
|
819
|
+
const whatsappService = this.whatsAppFactory.getWhatsappService();
|
|
820
|
+
await whatsappService.sendWhatsAppMessage(destination, null, {
|
|
821
|
+
type: "text",
|
|
822
|
+
text: `${appName} OTP is ${otp}. It is valid for 10 mins.`,
|
|
823
|
+
});
|
|
654
824
|
}
|
|
655
825
|
|
|
656
826
|
async otpConfirmRegistration(confirmSignUpDto: OTPConfirmOTPDto) {
|
|
@@ -753,7 +923,7 @@ export class AuthenticationService {
|
|
|
753
923
|
this.resolvePasswordlessValidationSource();
|
|
754
924
|
if (
|
|
755
925
|
registrationValidationSource ===
|
|
756
|
-
|
|
926
|
+
PasswordlessRegistrationValidateWhatSources.EMAIL
|
|
757
927
|
) {
|
|
758
928
|
if (!user.emailVerifiedOnRegistrationAt) {
|
|
759
929
|
return false;
|
|
@@ -761,7 +931,7 @@ export class AuthenticationService {
|
|
|
761
931
|
}
|
|
762
932
|
if (
|
|
763
933
|
registrationValidationSource ===
|
|
764
|
-
|
|
934
|
+
PasswordlessRegistrationValidateWhatSources.MOBILE
|
|
765
935
|
) {
|
|
766
936
|
if (!user.mobileVerifiedOnRegistrationAt) {
|
|
767
937
|
return false;
|
|
@@ -876,7 +1046,7 @@ export class AuthenticationService {
|
|
|
876
1046
|
const dummyOtp = this.getDummyOtpForUser(user);
|
|
877
1047
|
if (!dummyOtp) {
|
|
878
1048
|
await this.assignLoginOtp(user, type);
|
|
879
|
-
this.notifyUserOnOtpInititateLogin(user, type);
|
|
1049
|
+
await this.notifyUserOnOtpInititateLogin(user, type);
|
|
880
1050
|
}
|
|
881
1051
|
return this.buildLoginOtpResponse(user, type);
|
|
882
1052
|
}
|
|
@@ -1001,21 +1171,88 @@ export class AuthenticationService {
|
|
|
1001
1171
|
);
|
|
1002
1172
|
}
|
|
1003
1173
|
if (loginType === PasswordlessLoginValidateWhatSources.MOBILE) {
|
|
1004
|
-
const
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1174
|
+
const templateParams = {
|
|
1175
|
+
solidAppName:
|
|
1176
|
+
this.settingService.getConfigValue<SolidCoreSetting>("appTitle"),
|
|
1177
|
+
otp: user.mobileVerificationTokenOnLogin,
|
|
1178
|
+
mobileVerificationTokenOnLogin: user.mobileVerificationTokenOnLogin,
|
|
1179
|
+
firstName: user.username,
|
|
1180
|
+
fullName: user.fullName ? user.fullName : user.username,
|
|
1181
|
+
companyLogoUrl: companyLogo,
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1184
|
+
const whatsappDestination = this.normalizeWhatsAppDestination(user.mobile);
|
|
1185
|
+
const gupshupTemplateAppName =
|
|
1186
|
+
process.env.COMMON_GUPSHUP_APP_NAME || "Gupshup";
|
|
1187
|
+
const whatsappTemplateId =
|
|
1188
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
1189
|
+
"otpWhatsappTemplateId",
|
|
1190
|
+
) || "common_otp";
|
|
1191
|
+
const whatsappIndependentEnabled =
|
|
1192
|
+
this.settingService.getConfigValue<SolidCoreSetting>(
|
|
1193
|
+
"otpWhatsappIndependentEnabled",
|
|
1194
|
+
) !== false;
|
|
1195
|
+
|
|
1196
|
+
let smsSent = false;
|
|
1197
|
+
let whatsappSent = false;
|
|
1198
|
+
let smsErrorMessage: string | undefined;
|
|
1199
|
+
let whatsappErrorMessage: string | undefined;
|
|
1200
|
+
|
|
1201
|
+
this.logger.debug(
|
|
1202
|
+
`OTP LOGIN SMS send attempt: destination=${user.mobile}, whatsappDestination=${whatsappDestination}`,
|
|
1018
1203
|
);
|
|
1204
|
+
|
|
1205
|
+
try {
|
|
1206
|
+
const smsService = this.smsFactory.getSmsService();
|
|
1207
|
+
await smsService.sendSMSUsingTemplate(
|
|
1208
|
+
user.mobile,
|
|
1209
|
+
"otp-on-login",
|
|
1210
|
+
templateParams,
|
|
1211
|
+
false,
|
|
1212
|
+
);
|
|
1213
|
+
smsSent = true;
|
|
1214
|
+
} catch (smsError: any) {
|
|
1215
|
+
smsErrorMessage = smsError?.message;
|
|
1216
|
+
this.logger.warn(
|
|
1217
|
+
`OTP LOGIN SMS failed: destination=${user.mobile}, message=${smsErrorMessage}`,
|
|
1218
|
+
);
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
if (whatsappIndependentEnabled) {
|
|
1222
|
+
if (!whatsappDestination) {
|
|
1223
|
+
whatsappErrorMessage = "Normalized WhatsApp destination is empty";
|
|
1224
|
+
this.logger.error(
|
|
1225
|
+
`OTP LOGIN WhatsApp skipped: destination=${user.mobile}, message=${whatsappErrorMessage}`,
|
|
1226
|
+
);
|
|
1227
|
+
} else {
|
|
1228
|
+
this.logger.debug(
|
|
1229
|
+
`OTP LOGIN WhatsApp send attempt: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}`,
|
|
1230
|
+
);
|
|
1231
|
+
try {
|
|
1232
|
+
await this.sendOtpToWhatsappProvider(
|
|
1233
|
+
whatsappDestination,
|
|
1234
|
+
String(whatsappTemplateId),
|
|
1235
|
+
String(gupshupTemplateAppName),
|
|
1236
|
+
String(templateParams.otp || ""),
|
|
1237
|
+
);
|
|
1238
|
+
whatsappSent = true;
|
|
1239
|
+
this.logger.log(
|
|
1240
|
+
`OTP LOGIN WhatsApp success: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}`,
|
|
1241
|
+
);
|
|
1242
|
+
} catch (waError: any) {
|
|
1243
|
+
whatsappErrorMessage = waError?.message;
|
|
1244
|
+
this.logger.error(
|
|
1245
|
+
`OTP LOGIN WhatsApp failed: destination=${user.mobile}, whatsappDestination=${whatsappDestination}, templateId=${whatsappTemplateId}, message=${whatsappErrorMessage}`,
|
|
1246
|
+
);
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
if (!smsSent && !whatsappSent) {
|
|
1252
|
+
throw new Error(
|
|
1253
|
+
`OTP LOGIN delivery failed on both channels. smsError=${smsErrorMessage || "unknown"}, whatsappError=${whatsappErrorMessage || "disabled/unknown"}`,
|
|
1254
|
+
);
|
|
1255
|
+
}
|
|
1019
1256
|
}
|
|
1020
1257
|
}
|
|
1021
1258
|
|
|
@@ -1294,7 +1531,7 @@ export class AuthenticationService {
|
|
|
1294
1531
|
// Assuming all users do not have mobile as mandatory.
|
|
1295
1532
|
if (
|
|
1296
1533
|
forgotPasswordSendVerificationTokenOn ==
|
|
1297
|
-
|
|
1534
|
+
ForgotPasswordSendVerificationTokenOn.MOBILE &&
|
|
1298
1535
|
user.mobile
|
|
1299
1536
|
) {
|
|
1300
1537
|
const smsService = this.smsFactory.getSmsService();
|
|
@@ -1323,12 +1560,10 @@ export class AuthenticationService {
|
|
|
1323
1560
|
const user = await this.resolveUserByVerificationToken(
|
|
1324
1561
|
confirmForgotPasswordDto.verificationToken,
|
|
1325
1562
|
);
|
|
1326
|
-
if (!user)
|
|
1327
|
-
throw new UnauthorizedException("Invalid verification token");
|
|
1563
|
+
if (!user) throw new UnauthorizedException("Invalid verification token");
|
|
1328
1564
|
if (user.lastLoginProvider !== "local")
|
|
1329
1565
|
throw new UnauthorizedException(ERROR_MESSAGES.INVALID_CREDENTIALS);
|
|
1330
|
-
if (!user.active)
|
|
1331
|
-
throw new UnauthorizedException("User is inactive");
|
|
1566
|
+
if (!user.active) throw new UnauthorizedException("User is inactive");
|
|
1332
1567
|
|
|
1333
1568
|
// 1) Atomically consume the token (only one request can succeed)
|
|
1334
1569
|
const { affected } = await m
|
|
@@ -1420,7 +1655,7 @@ export class AuthenticationService {
|
|
|
1420
1655
|
// Assuming all users do not have mobile as mandatory.
|
|
1421
1656
|
if (
|
|
1422
1657
|
forgotPasswordSendVerificationTokenOn ==
|
|
1423
|
-
|
|
1658
|
+
ForgotPasswordSendVerificationTokenOn.MOBILE &&
|
|
1424
1659
|
user.mobile
|
|
1425
1660
|
) {
|
|
1426
1661
|
const smsService = this.smsFactory.getSmsService();
|
|
@@ -1762,6 +1997,84 @@ export class AuthenticationService {
|
|
|
1762
1997
|
};
|
|
1763
1998
|
}
|
|
1764
1999
|
|
|
2000
|
+
async validateUserUsingMicrosoftActiveDirectory(user: User) {
|
|
2001
|
+
if (
|
|
2002
|
+
!user.microsoftActiveDirectoryAccessToken ||
|
|
2003
|
+
!user.microsoftActiveDirectoryId
|
|
2004
|
+
) {
|
|
2005
|
+
throw new UnauthorizedException(ERROR_MESSAGES.USER_NOT_FOUND);
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
try {
|
|
2009
|
+
const response = await this.httpService.axiosRef.get(
|
|
2010
|
+
`https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,userPrincipalName`,
|
|
2011
|
+
{
|
|
2012
|
+
headers: {
|
|
2013
|
+
Authorization: `Bearer ${user.microsoftActiveDirectoryAccessToken}`,
|
|
2014
|
+
},
|
|
2015
|
+
},
|
|
2016
|
+
);
|
|
2017
|
+
const userProfile = response.data;
|
|
2018
|
+
const profileEmail = (userProfile.mail || userProfile.userPrincipalName)
|
|
2019
|
+
?.trim()
|
|
2020
|
+
.toLowerCase();
|
|
2021
|
+
const userEmail = user.email?.trim().toLowerCase();
|
|
2022
|
+
|
|
2023
|
+
if (
|
|
2024
|
+
userProfile.id === user.microsoftActiveDirectoryId &&
|
|
2025
|
+
(!userEmail || profileEmail === userEmail)
|
|
2026
|
+
) {
|
|
2027
|
+
return userProfile;
|
|
2028
|
+
} else {
|
|
2029
|
+
throw new UnauthorizedException(ERROR_MESSAGES.INVALID_USER_PROFILE);
|
|
2030
|
+
}
|
|
2031
|
+
} catch (error: any) {
|
|
2032
|
+
if (error instanceof UnauthorizedException) {
|
|
2033
|
+
throw error;
|
|
2034
|
+
}
|
|
2035
|
+
|
|
2036
|
+
throw new UnauthorizedException(
|
|
2037
|
+
ERROR_MESSAGES.MICROSOFT_ACTIVE_DIRECTORY_OAUTH_PROFILE_FETCH_FAILED,
|
|
2038
|
+
);
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
async signInUsingMicrosoftActiveDirectory(accessCode: string) {
|
|
2043
|
+
const user = await this.userRepository.findOne({
|
|
2044
|
+
where: {
|
|
2045
|
+
accessCode: accessCode,
|
|
2046
|
+
},
|
|
2047
|
+
relations: {
|
|
2048
|
+
roles: true,
|
|
2049
|
+
},
|
|
2050
|
+
});
|
|
2051
|
+
|
|
2052
|
+
if (!user) {
|
|
2053
|
+
throw new UnauthorizedException(ERROR_MESSAGES.USER_NOT_FOUND);
|
|
2054
|
+
}
|
|
2055
|
+
this.checkAccountBlocked(user);
|
|
2056
|
+
|
|
2057
|
+
try {
|
|
2058
|
+
await this.validateUserUsingMicrosoftActiveDirectory(user);
|
|
2059
|
+
} catch (e) {
|
|
2060
|
+
await this.incrementFailedAttempts(user);
|
|
2061
|
+
throw e;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
await this.resetFailedAttempts(user);
|
|
2065
|
+
const tokens = await this.generateTokens(user);
|
|
2066
|
+
return {
|
|
2067
|
+
user: {
|
|
2068
|
+
email: user.email,
|
|
2069
|
+
mobile: user.mobile,
|
|
2070
|
+
username: user.username,
|
|
2071
|
+
id: user.id,
|
|
2072
|
+
roles: user.roles.map((role) => role.name),
|
|
2073
|
+
},
|
|
2074
|
+
...tokens,
|
|
2075
|
+
};
|
|
2076
|
+
}
|
|
2077
|
+
|
|
1765
2078
|
async signInUsingApple(accessCode: string) {
|
|
1766
2079
|
const user = await this.userRepository.findOne({
|
|
1767
2080
|
where: {
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { LocalDateTimeTransformer, serializeDate } from 'src/transformers/typeorm/local-date-time-transformer';
|
|
2
|
-
import { BadRequestException, forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
|
|
2
|
+
import { BadRequestException, ForbiddenException, forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
|
|
3
3
|
import { ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
5
|
-
import { Brackets, EntityManager, EntityMetadata } from 'typeorm';
|
|
5
|
+
import { Brackets, EntityManager, EntityMetadata, In } from 'typeorm';
|
|
6
6
|
|
|
7
7
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
8
8
|
import { CHATTER_MESSAGE_STATUS, CHATTER_MESSAGE_SUBTYPE, CHATTER_MESSAGE_TYPE } from 'src/constants/chatter-message.constants';
|
|
9
9
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
10
10
|
import { PostChatterMessageDto } from 'src/dtos/post-chatter-message.dto';
|
|
11
|
+
import { UpdateChatterNoteMessageDto } from 'src/dtos/update-chatter-note-message.dto';
|
|
11
12
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
12
13
|
import { lowerFirst } from 'src/helpers/string.helper';
|
|
13
14
|
import { ChatterMessageDetailsRepository } from 'src/repository/chatter-message-details.repository';
|
|
14
15
|
import { ChatterMessageRepository } from 'src/repository/chatter-message.repository';
|
|
15
16
|
import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
|
|
17
|
+
import { MediaRepository } from 'src/repository/media.repository';
|
|
16
18
|
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
17
19
|
import { CRUDService } from 'src/services/crud.service';
|
|
18
20
|
import { MediaStorageProviderType } from '../dtos/create-media-storage-provider-metadata.dto';
|
|
@@ -33,6 +35,7 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
33
35
|
readonly repo: ChatterMessageRepository,
|
|
34
36
|
// @InjectRepository(ChatterMessageDetailsRepository, 'default')
|
|
35
37
|
readonly chatterMessageDetailsRepo: ChatterMessageDetailsRepository,
|
|
38
|
+
readonly mediaRepository: MediaRepository,
|
|
36
39
|
// @InjectRepository(FieldMetadata, 'default')
|
|
37
40
|
// readonly fieldMetadataRepo: Repository<FieldMetadata>,
|
|
38
41
|
readonly fieldMetadataRepo: FieldMetadataRepository,
|
|
@@ -67,6 +70,21 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
67
70
|
chatterMessage.updatedBy = resolvedUserId;
|
|
68
71
|
}
|
|
69
72
|
|
|
73
|
+
private isEditableCustomNoteMessage(message: ChatterMessage): boolean {
|
|
74
|
+
if (message.messageType !== CHATTER_MESSAGE_TYPE.CUSTOM) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return [CHATTER_MESSAGE_SUBTYPE.CUSTOM, CHATTER_MESSAGE_SUBTYPE.NOTE].includes(message.messageSubType as any);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private parseAttachmentIds(value?: string): number[] {
|
|
81
|
+
if (!value || typeof value !== 'string') return [];
|
|
82
|
+
return value
|
|
83
|
+
.split(',')
|
|
84
|
+
.map(v => Number(v.trim()))
|
|
85
|
+
.filter(v => Number.isInteger(v) && v > 0);
|
|
86
|
+
}
|
|
87
|
+
|
|
70
88
|
async markCompleted(id: number) {
|
|
71
89
|
const activeUser = this.requestContextService.getActiveUser();
|
|
72
90
|
if (!activeUser) {
|
|
@@ -82,6 +100,98 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
82
100
|
return this.repo.save(message);
|
|
83
101
|
}
|
|
84
102
|
|
|
103
|
+
async updateCustomNoteMessage(id: number, updateDto: UpdateChatterNoteMessageDto, files: Express.Multer.File[] = []) {
|
|
104
|
+
const activeUser = this.requestContextService.getActiveUser();
|
|
105
|
+
if (!activeUser) {
|
|
106
|
+
throw new ForbiddenException(ERROR_MESSAGES.FORBIDDEN);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const message = await this.repo.findOne({ where: { id }, relations: { user: true } });
|
|
110
|
+
if (!message) {
|
|
111
|
+
throw new NotFoundException(`Entity [solid-core.chatterMessage] with id ${id} not found`);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (!this.isEditableCustomNoteMessage(message)) {
|
|
115
|
+
throw new BadRequestException('Only custom note messages can be edited.');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (!message.user?.id || message.user.id !== activeUser.sub) {
|
|
119
|
+
throw new ForbiddenException('You can only edit your own custom note messages.');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const removeAttachmentIds = this.parseAttachmentIds(updateDto?.removeAttachmentIds);
|
|
123
|
+
const hasMessageBody = typeof updateDto?.messageBody === 'string';
|
|
124
|
+
const trimmedMessageBody = (updateDto?.messageBody ?? '').trim();
|
|
125
|
+
const hasNewFiles = Array.isArray(files) && files.length > 0;
|
|
126
|
+
|
|
127
|
+
if (!hasMessageBody && removeAttachmentIds.length === 0 && !hasNewFiles) {
|
|
128
|
+
throw new BadRequestException('No note changes submitted.');
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (hasMessageBody && trimmedMessageBody.length === 0) {
|
|
132
|
+
throw new BadRequestException('Message body cannot be empty.');
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (hasMessageBody) {
|
|
136
|
+
message.messageBody = trimmedMessageBody;
|
|
137
|
+
}
|
|
138
|
+
message.updatedBy = activeUser.sub;
|
|
139
|
+
// Ensure updatedAt changes even for attachment-only edits.
|
|
140
|
+
message.updatedAt = new Date();
|
|
141
|
+
const savedMessage = await this.repo.save(message);
|
|
142
|
+
|
|
143
|
+
if (removeAttachmentIds.length > 0 || hasNewFiles) {
|
|
144
|
+
const model = await this.modelMetadataService.findOneBySingularName('chatterMessage', {
|
|
145
|
+
fields: {
|
|
146
|
+
model: true,
|
|
147
|
+
mediaStorageProvider: true,
|
|
148
|
+
},
|
|
149
|
+
module: true,
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
const mediaFields = model.fields.filter(field => field.type === 'mediaSingle' || field.type === 'mediaMultiple');
|
|
153
|
+
const attachmentFieldIds = mediaFields.map(field => field.id);
|
|
154
|
+
|
|
155
|
+
if (removeAttachmentIds.length > 0 && attachmentFieldIds.length > 0) {
|
|
156
|
+
const mediaToRemove = await this.mediaRepository.find({
|
|
157
|
+
where: {
|
|
158
|
+
id: In(removeAttachmentIds),
|
|
159
|
+
entityId: savedMessage.id,
|
|
160
|
+
modelMetadata: { id: model.id },
|
|
161
|
+
fieldMetadata: { id: In(attachmentFieldIds) },
|
|
162
|
+
},
|
|
163
|
+
relations: {
|
|
164
|
+
mediaStorageProviderMetadata: true,
|
|
165
|
+
fieldMetadata: true,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
for (const media of mediaToRemove) {
|
|
170
|
+
const storageType = media.mediaStorageProviderMetadata?.type as MediaStorageProviderType;
|
|
171
|
+
const storageProvider = await getMediaStorageProvider(this.moduleRef, storageType);
|
|
172
|
+
await storageProvider.deleteByMediaRecord(media);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (mediaToRemove.length > 0) {
|
|
176
|
+
await this.mediaRepository.remove(mediaToRemove);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
for (const mediaField of mediaFields) {
|
|
181
|
+
const storageProviderMetadata = mediaField.mediaStorageProvider;
|
|
182
|
+
const storageProviderType = storageProviderMetadata.type as MediaStorageProviderType;
|
|
183
|
+
const storageProvider = await getMediaStorageProvider(this.moduleRef, storageProviderType);
|
|
184
|
+
|
|
185
|
+
const media = files.filter(multerFile => multerFile.fieldname === mediaField.name);
|
|
186
|
+
if (media.length > 0) {
|
|
187
|
+
await storageProvider.store(media, savedMessage, mediaField);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return savedMessage;
|
|
193
|
+
}
|
|
194
|
+
|
|
85
195
|
async postMessage(postDto: PostChatterMessageDto, files: Express.Multer.File[] = []) {
|
|
86
196
|
const chatterMessage = new ChatterMessage();
|
|
87
197
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.CUSTOM;
|