@solidxai/core 0.1.10-beta.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +15 -0
- 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/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-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/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/dtos/update-user.dto.d.ts +1 -0
- package/dist/dtos/update-user.dto.d.ts.map +1 -1
- package/dist/dtos/update-user.dto.js +7 -1
- package/dist/dtos/update-user.dto.js.map +1 -1
- package/dist/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 +16 -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 +37 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -10
- package/dist/index.js.map +1 -1
- 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 +5009 -4283
- 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 +208 -14
- 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 +17 -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 +130 -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/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 -32
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +271 -42
- 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/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 +59 -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 +60 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
- 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/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 +79 -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/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-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/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/dtos/update-user.dto.ts +4 -0
- 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 +16 -2
- 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 +37 -10
- 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 +5010 -4284
- package/src/seeders/system-fields-seeder.service.ts +1 -1
- package/src/services/1.js +6 -0
- package/src/services/authentication.service.ts +359 -46
- 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 +58 -0
- package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
- package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -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/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 +318 -115
- 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/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
- package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
- package/src/services/settings/default-settings-provider.service.ts +167 -0
- package/src/services/solid-introspect.service.ts +19 -34
- 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 +251 -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/dist-tests/api/authenticate.spec.js +0 -119
- package/dist-tests/api/authenticate.spec.js.map +0 -1
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
- package/dist-tests/api/ping.spec.js +0 -21
- package/dist-tests/api/ping.spec.js.map +0 -1
- package/dist-tests/helpers/auth.js +0 -41
- package/dist-tests/helpers/auth.js.map +0 -1
- package/dist-tests/helpers/env.js +0 -11
- package/dist-tests/helpers/env.js.map +0 -1
- package/docs/grouping-enhancements.md +0 -89
- package/docs/java-spring/README.md +0 -3
- package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
- package/docs/seed-changes.md +0 -65
- package/docs/test-data-workflow.md +0 -200
- package/docs/type-declaration-import-issue.md +0 -24
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-package.service.js","sourceRoot":"","sources":["../../src/services/module-package.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BadRequestException,\n Injectable,\n Logger,\n NotFoundException,\n} from '@nestjs/common';\nimport { createHash } from 'crypto';\nimport archiver from 'archiver';\nimport { createWriteStream } from 'fs';\nimport { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';\nimport { ConfirmModulePackageImportDto } from 'src/dtos/confirm-module-package-import.dto';\nimport { RunModulePackageBuildDto } from 'src/dtos/run-module-package-build.dto';\nimport { RunModulePackageSeedDto } from 'src/dtos/run-module-package-seed.dto';\nimport { CommandService } from 'src/helpers/command.service';\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { v4 as uuidv4 } from 'uuid';\n\ntype ModulePackageManifest = {\n schemaVersion: string;\n packageType: string;\n exportedAt?: string;\n generatedBy?: {\n name: string;\n version?: string;\n };\n module: {\n name: string;\n displayName?: string;\n description?: string;\n };\n contents: {\n metadataPath: string;\n apiModulePath: string;\n uiModulePath: string;\n };\n compatibility?: Record<string, unknown>;\n postImport?: Record<string, unknown>;\n checksums?: Record<string, string>;\n};\n\ntype ValidationPayload = {\n valid: boolean;\n errors: string[];\n warnings: string[];\n};\n\ntype PreviewPayload = {\n module: {\n name: string;\n displayName?: string;\n description?: string;\n };\n manifest: ModulePackageManifest;\n contentsSummary: {\n totalEntries: number;\n solidApiEntries: number;\n solidUiEntries: number;\n };\n requiredPaths: {\n metadataPath: string;\n apiModulePath: string;\n uiModulePath: string;\n };\n conflicts: string[];\n fileTree: string[];\n nextActions: string[];\n};\n\ntype ParsedArchive = {\n entries: string[];\n archiveRootPrefix: string | null;\n manifest: ModulePackageManifest;\n metadataDocument: any;\n validation: ValidationPayload;\n preview: PreviewPayload;\n};\n\ntype ModulePackageStatusFile = {\n transactionKey: string;\n status: string;\n currentStep: string;\n moduleName: string | null;\n moduleDisplayName: string | null;\n archiveFileName: string | null;\n archiveFilePath: string | null;\n extractDirPath: string | null;\n archiveRootPrefix: string | null;\n manifest: ModulePackageManifest | null;\n metadataDocument: any;\n preview: PreviewPayload | null;\n validation: ValidationPayload | null;\n conflicts: string[];\n outputs: {\n import: string | null;\n build: string | null;\n seed: string | null;\n };\n errorMessage: string | null;\n createdAt: string;\n updatedAt: string;\n};\n\ntype ModulePackageExportFile = {\n fileName: string;\n filePath: string;\n mimeType: string;\n};\n\ntype ModulePackageRuntimeCleanupResult = {\n runtimeRoot: string;\n removedImportTransactions: number;\n removedExportTransactions: number;\n removedImportLooseEntries: number;\n removedExportLooseEntries: number;\n clearedActiveTransactionPointer: boolean;\n clearedAt: string;\n};\n\ntype ModulePackageActiveTransactionFile = {\n transactionKey: string;\n updatedAt: string;\n};\n\nenum ModulePackageStatus {\n uploaded = 'uploaded',\n validated = 'validated',\n awaiting_confirmation = 'awaiting_confirmation',\n import_running = 'import_running',\n awaiting_restart = 'awaiting_restart',\n build_running = 'build_running',\n build_failed = 'build_failed',\n build_succeeded = 'build_succeeded',\n seed_running = 'seed_running',\n seed_failed = 'seed_failed',\n completed = 'completed',\n failed = 'failed',\n}\n\n@Injectable()\nexport class ModulePackageService {\n private readonly logger = new Logger(ModulePackageService.name);\n private static readonly SUPPORTED_SCHEMA_VERSION = '1.0';\n private static readonly SUPPORTED_PACKAGE_TYPE = 'solidx-module';\n\n constructor(\n private readonly commandService: CommandService,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) { }\n\n @DisallowInProduction()\n async validateUpload(file: Express.Multer.File) {\n if (!file) {\n throw new BadRequestException('A .sldx archive file is required.');\n }\n\n await this.cleanupModulePackageTransactions();\n\n const transactionKey = uuidv4();\n const workingDir = await this.createWorkingDir(transactionKey);\n const archiveFileName = file.originalname || path.basename(file.path);\n const archiveFilePath = path.join(workingDir, archiveFileName);\n const extractDirPath = path.join(workingDir, 'extract');\n\n await fs.mkdir(extractDirPath, { recursive: true });\n await fs.rename(file.path, archiveFilePath);\n\n const parsed = await this.parseArchive(archiveFilePath);\n await this.extractArchive(archiveFilePath, extractDirPath);\n\n const transaction: ModulePackageStatusFile = {\n transactionKey,\n status: parsed.validation.valid ? ModulePackageStatus.awaiting_confirmation : ModulePackageStatus.failed,\n currentStep: 'preview',\n moduleName: parsed.manifest.module.name,\n moduleDisplayName: parsed.manifest.module.displayName ?? null,\n archiveFileName,\n archiveFilePath,\n extractDirPath,\n archiveRootPrefix: parsed.archiveRootPrefix,\n manifest: parsed.manifest,\n metadataDocument: parsed.metadataDocument,\n preview: parsed.preview,\n validation: parsed.validation,\n conflicts: parsed.preview.conflicts,\n outputs: {\n import: null,\n build: null,\n seed: null,\n },\n errorMessage: parsed.validation.valid ? null : parsed.validation.errors.join('\\n'),\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n };\n\n await this.writeStatusFile(transactionKey, transaction);\n return this.toStatusResponse(transaction);\n }\n\n async getStatus(transactionKey: string) {\n const transaction = await this.loadTransaction(transactionKey);\n return this.toStatusResponse(transaction);\n }\n\n @DisallowInProduction()\n async getLatestResumableImport() {\n await this.cleanupModulePackageTransactions();\n const transaction = await this.resolveLatestResumableTransaction();\n return transaction ? this.toStatusResponse(transaction) : null;\n }\n\n @DisallowInProduction()\n async dismissImport(transactionKey: string) {\n const transaction = await this.loadTransaction(transactionKey);\n await this.clearActiveTransactionIfMatches(transaction.transactionKey);\n return this.toStatusResponse(transaction);\n }\n\n @DisallowInProduction()\n async clearPackageRuntime(): Promise<ModulePackageRuntimeCleanupResult> {\n const runtimeRoot = this.getModulePackageRuntimeRoot();\n const importsRoot = this.getModulePackageImportsRoot();\n const exportsRoot = this.getModulePackageExportsRoot();\n const snapshot = await this.collectRuntimeCleanupSnapshot();\n\n await fs.rm(runtimeRoot, { recursive: true, force: true });\n await fs.mkdir(importsRoot, { recursive: true });\n await fs.mkdir(exportsRoot, { recursive: true });\n\n return {\n runtimeRoot,\n ...snapshot,\n clearedAt: new Date().toISOString(),\n };\n }\n\n @DisallowInProduction()\n async exportModulePackage(moduleNameInput: string): Promise<ModulePackageExportFile> {\n const moduleName = (moduleNameInput ?? '').trim();\n if (!moduleName) {\n throw new BadRequestException('A module name is required to export a module package.');\n }\n\n const solidApiModulePath = this.getSolidApiModuleTargetPath(moduleName);\n const solidUiModulePath = this.getSolidUiModuleTargetPath(moduleName);\n const metadataFilePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n\n await this.assertPathExists(solidApiModulePath, 'solid-api module path');\n await this.assertPathExists(solidUiModulePath, 'solid-ui module path');\n await this.assertPathExists(metadataFilePath, 'module metadata file');\n\n const metadataDocument = this.parseMetadataDocument(\n await fs.readFile(metadataFilePath, 'utf-8'),\n [],\n );\n\n const transactionKey = uuidv4();\n const exportRoot = path.join(this.getModulePackageExportsRoot(), transactionKey);\n const stagingDir = path.join(exportRoot, 'staging');\n const archiveFileName = `${moduleName}.sldx`;\n const archiveFilePath = path.join(exportRoot, archiveFileName);\n\n await fs.mkdir(path.join(stagingDir, 'solid-api', 'src'), { recursive: true });\n await fs.mkdir(path.join(stagingDir, 'solid-ui', 'src'), { recursive: true });\n\n await fs.cp(solidApiModulePath, path.join(stagingDir, 'solid-api', 'src', moduleName), { recursive: true });\n await fs.cp(solidUiModulePath, path.join(stagingDir, 'solid-ui', 'src', moduleName), { recursive: true });\n\n const manifest = await this.buildExportManifest(moduleName, metadataDocument, stagingDir);\n await fs.writeFile(\n path.join(stagingDir, 'manifest.json'),\n JSON.stringify(manifest, null, 2),\n 'utf-8',\n );\n\n await this.createArchiveFromDirectory(stagingDir, archiveFilePath);\n\n return {\n fileName: archiveFileName,\n filePath: archiveFilePath,\n mimeType: 'application/zip',\n };\n }\n\n @DisallowInProduction()\n async confirmImport(transactionKey: string, dto: ConfirmModulePackageImportDto = {}) {\n const transaction = await this.loadTransaction(transactionKey);\n const preview = transaction.preview;\n const validation = transaction.validation;\n\n if (!preview || !validation) {\n throw new BadRequestException('The module package transaction is missing preview or validation data.');\n }\n\n if (!validation.valid) {\n throw new BadRequestException({\n message: 'The uploaded module package is invalid and cannot be imported.',\n validation,\n });\n }\n\n const overwriteExisting = dto.overwriteExisting ?? false;\n if (preview.conflicts.length > 0 && !overwriteExisting) {\n throw new BadRequestException({\n message: 'Conflicts were detected. Re-submit with overwriteExisting=true to continue.',\n conflicts: preview.conflicts,\n });\n }\n\n transaction.status = ModulePackageStatus.import_running;\n transaction.currentStep = 'import';\n transaction.errorMessage = null;\n await this.writeStatusFile(transactionKey, transaction);\n\n try {\n const moduleName = preview.module.name;\n const solidApiTarget = this.getSolidApiModuleTargetPath(moduleName);\n const solidUiTarget = this.getSolidUiModuleTargetPath(moduleName);\n const extractRoot = transaction.archiveRootPrefix\n ? path.join(transaction.extractDirPath as string, transaction.archiveRootPrefix.replace(/\\/$/, ''))\n : transaction.extractDirPath as string;\n const solidApiSource = path.join(extractRoot, 'solid-api', 'src', moduleName);\n const solidUiSource = path.join(extractRoot, 'solid-ui', 'src', moduleName);\n\n await this.assertPathExists(solidApiSource, 'solid-api module source');\n await this.assertPathExists(solidUiSource, 'solid-ui module source');\n\n if (overwriteExisting) {\n await fs.rm(solidApiTarget, { recursive: true, force: true });\n await fs.rm(solidUiTarget, { recursive: true, force: true });\n }\n\n await fs.mkdir(path.dirname(solidApiTarget), { recursive: true });\n await fs.mkdir(path.dirname(solidUiTarget), { recursive: true });\n\n await fs.cp(solidApiSource, solidApiTarget, { recursive: true, force: overwriteExisting });\n await fs.cp(solidUiSource, solidUiTarget, { recursive: true, force: overwriteExisting });\n\n if (transaction.extractDirPath) {\n await fs.rm(transaction.extractDirPath, { recursive: true, force: true });\n transaction.extractDirPath = null;\n }\n\n transaction.status = ModulePackageStatus.awaiting_restart;\n transaction.currentStep = 'restart';\n transaction.outputs.import = [\n `Placed solid-api module at ${solidApiTarget}`,\n `Placed solid-ui module at ${solidUiTarget}`,\n `Metadata file placed at ${preview.requiredPaths.metadataPath}`,\n ].join('\\n');\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n\n return this.toStatusResponse(transaction);\n } catch (error: any) {\n transaction.status = ModulePackageStatus.failed;\n transaction.currentStep = 'import';\n transaction.errorMessage = error.message ?? 'Failed to import the module package.';\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n throw error;\n }\n }\n\n @DisallowInProduction()\n async runBuild(transactionKey: string, dto: RunModulePackageBuildDto = {}) {\n const transaction = await this.loadTransaction(transactionKey);\n transaction.status = ModulePackageStatus.build_running;\n transaction.currentStep = 'build';\n transaction.errorMessage = null;\n await this.writeStatusFile(transactionKey, transaction);\n\n try {\n const buildSolidApi = dto.buildSolidApi ?? true;\n const buildSolidUi = dto.buildSolidUi ?? true;\n const outputs: string[] = [];\n const failedTargets: string[] = [];\n const projectRoot = this.getProjectRoot();\n\n if (buildSolidApi) {\n try {\n const output = await this.commandService.executeCommandWithArgs({\n command: 'npx',\n args: ['-y', '@solidxai/solidctl@latest', 'build'],\n cwd: projectRoot,\n });\n outputs.push(`solidctl build [success]\\n${output}`.trim());\n } catch (error: any) {\n failedTargets.push('solidctl build');\n outputs.push(`solidctl build [failed]\\n${error?.message ?? 'Build failed.'}`.trim());\n }\n }\n\n if (buildSolidUi) {\n try {\n const output = await this.commandService.executeCommandWithArgs({\n command: 'npx',\n args: ['-y', '@solidxai/solidctl@latest', 'build', '--ui-only'],\n cwd: projectRoot,\n });\n outputs.push(`solidctl build --ui-only [success]\\n${output}`.trim());\n } catch (error: any) {\n failedTargets.push('solidctl build --ui-only');\n outputs.push(`solidctl build --ui-only [failed]\\n${error?.message ?? 'Build failed.'}`.trim());\n }\n }\n\n transaction.status = failedTargets.length > 0\n ? ModulePackageStatus.build_failed\n : ModulePackageStatus.build_succeeded;\n transaction.currentStep = 'build';\n transaction.outputs.build = outputs.join('\\n\\n');\n transaction.errorMessage = failedTargets.length > 0\n ? `Build completed with errors in: ${failedTargets.join(', ')}`\n : null;\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n\n return this.toStatusResponse(transaction);\n } catch (error: any) {\n transaction.status = ModulePackageStatus.build_failed;\n transaction.currentStep = 'build';\n transaction.errorMessage = error.message ?? 'Build failed.';\n transaction.outputs.build = error.message ?? '';\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n throw error;\n }\n }\n\n @DisallowInProduction()\n async runSeed(transactionKey: string, dto: RunModulePackageSeedDto = {}) {\n const transaction = await this.loadTransaction(transactionKey);\n const moduleName = transaction.moduleName;\n\n if (!moduleName) {\n throw new BadRequestException('Unable to seed because the transaction is missing moduleName.');\n }\n\n transaction.status = ModulePackageStatus.seed_running;\n transaction.currentStep = 'seed';\n transaction.errorMessage = null;\n await this.writeStatusFile(transactionKey, transaction);\n\n try {\n const output = await this.commandService.executeCommandWithArgs({\n command: 'npx',\n args: ['-y', '@solidxai/solidctl@latest', 'seed', '--modules-to-seed', moduleName],\n cwd: this.getProjectRoot(),\n });\n transaction.status = ModulePackageStatus.completed;\n transaction.currentStep = 'done';\n transaction.outputs.seed = [\n `solidctl seed --modules-to-seed ${moduleName} [success]`,\n output,\n ].filter(Boolean).join('\\n');\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n\n return this.toStatusResponse(transaction);\n } catch (error: any) {\n transaction.status = ModulePackageStatus.seed_failed;\n transaction.currentStep = 'seed';\n transaction.errorMessage = error.message ?? 'Seed failed.';\n transaction.outputs.seed = error.message ?? '';\n await this.writeStatusFile(transactionKey, transaction);\n await this.syncActiveTransactionPointer(transaction);\n return this.toStatusResponse(transaction);\n }\n }\n\n private async parseArchive(archiveFilePath: string): Promise<ParsedArchive> {\n const entries = await this.listArchiveEntries(archiveFilePath);\n const archiveRootPrefix = this.detectArchiveRootPrefix(entries);\n const normalizedEntries = this.normalizeArchiveEntries(entries, archiveRootPrefix);\n const validationErrors: string[] = [];\n const validationWarnings: string[] = [];\n\n if (path.extname(archiveFilePath).toLowerCase() !== '.sldx') {\n validationErrors.push('Only .sldx archives are supported.');\n }\n\n const unsafeEntries = normalizedEntries.filter((entry) => this.isUnsafeArchivePath(entry));\n if (unsafeEntries.length > 0) {\n validationErrors.push(`Archive contains unsafe paths: ${unsafeEntries.join(', ')}`);\n }\n\n if (!normalizedEntries.includes('manifest.json')) {\n validationErrors.push('Archive is missing manifest.json at the root.');\n }\n\n const manifestArchivePath = this.toArchiveEntryPath(archiveRootPrefix, 'manifest.json');\n const manifestText = normalizedEntries.includes('manifest.json')\n ? await this.readArchiveEntry(archiveFilePath, manifestArchivePath)\n : '';\n const manifest = this.parseManifest(manifestText, validationErrors);\n\n if (!manifest) {\n return {\n entries: normalizedEntries,\n archiveRootPrefix,\n manifest: this.getFallbackManifest(),\n metadataDocument: null,\n validation: {\n valid: false,\n errors: validationErrors,\n warnings: validationWarnings,\n },\n preview: {\n module: { name: '', displayName: '' },\n manifest: this.getFallbackManifest(),\n contentsSummary: {\n totalEntries: normalizedEntries.length,\n solidApiEntries: normalizedEntries.filter((entry) => entry.startsWith('solid-api/')).length,\n solidUiEntries: normalizedEntries.filter((entry) => entry.startsWith('solid-ui/')).length,\n },\n requiredPaths: {\n metadataPath: '',\n apiModulePath: '',\n uiModulePath: '',\n },\n conflicts: [],\n fileTree: normalizedEntries,\n nextActions: ['Fix archive structure and upload again.'],\n },\n };\n }\n\n if (manifest.packageType !== ModulePackageService.SUPPORTED_PACKAGE_TYPE) {\n validationErrors.push(`manifest.json packageType must be \"${ModulePackageService.SUPPORTED_PACKAGE_TYPE}\".`);\n }\n if (manifest.schemaVersion !== ModulePackageService.SUPPORTED_SCHEMA_VERSION) {\n validationErrors.push(`manifest.json schemaVersion must be \"${ModulePackageService.SUPPORTED_SCHEMA_VERSION}\".`);\n }\n if (!manifest.module?.name) {\n validationErrors.push('manifest.json module.name is required.');\n }\n\n const moduleName = manifest.module?.name ?? '';\n const expectedPaths = this.buildExpectedPaths(moduleName);\n\n if (manifest.contents?.metadataPath !== expectedPaths.metadataPath) {\n validationErrors.push(`manifest.json contents.metadataPath must be \"${expectedPaths.metadataPath}\".`);\n }\n if (manifest.contents?.apiModulePath !== expectedPaths.apiModulePath) {\n validationErrors.push(`manifest.json contents.apiModulePath must be \"${expectedPaths.apiModulePath}\".`);\n }\n if (manifest.contents?.uiModulePath !== expectedPaths.uiModulePath) {\n validationErrors.push(`manifest.json contents.uiModulePath must be \"${expectedPaths.uiModulePath}\".`);\n }\n\n if (!normalizedEntries.includes(expectedPaths.metadataPath)) {\n validationErrors.push(`Archive is missing ${expectedPaths.metadataPath}.`);\n }\n if (!normalizedEntries.includes(expectedPaths.apiModulePath)) {\n validationErrors.push(`Archive is missing ${expectedPaths.apiModulePath}.`);\n }\n if (!normalizedEntries.includes(expectedPaths.uiModulePath)) {\n validationErrors.push(`Archive is missing ${expectedPaths.uiModulePath}.`);\n }\n\n const metadataDocument = normalizedEntries.includes(expectedPaths.metadataPath)\n ? this.parseMetadataDocument(\n await this.readArchiveEntry(archiveFilePath, this.toArchiveEntryPath(archiveRootPrefix, expectedPaths.metadataPath)),\n validationErrors,\n )\n : null;\n\n const metadataModuleName = metadataDocument?.moduleMetadata?.name;\n if (metadataModuleName && metadataModuleName !== moduleName) {\n validationErrors.push(`Metadata module name \"${metadataModuleName}\" does not match manifest module name \"${moduleName}\".`);\n }\n\n if (!manifest.checksums || Object.keys(manifest.checksums).length === 0) {\n validationWarnings.push('manifest.json does not include checksums. Checksums are recommended.');\n }\n\n const conflicts = await this.detectConflicts(moduleName);\n if (conflicts.length > 0) {\n validationWarnings.push('The target module already exists locally and will require overwrite confirmation.');\n }\n\n const validation: ValidationPayload = {\n valid: validationErrors.length === 0,\n errors: validationErrors,\n warnings: validationWarnings,\n };\n\n const preview: PreviewPayload = {\n module: manifest.module,\n manifest,\n contentsSummary: {\n totalEntries: normalizedEntries.length,\n solidApiEntries: normalizedEntries.filter((entry) => entry.startsWith('solid-api/')).length,\n solidUiEntries: normalizedEntries.filter((entry) => entry.startsWith('solid-ui/')).length,\n },\n requiredPaths: expectedPaths,\n conflicts,\n fileTree: normalizedEntries,\n nextActions: [\n 'Review archive preview.',\n 'Confirm import to place files locally.',\n 'Wait for service restart, then run build and seed.',\n ],\n };\n\n return {\n entries: normalizedEntries,\n archiveRootPrefix,\n manifest,\n metadataDocument,\n validation,\n preview,\n };\n }\n\n private parseManifest(manifestText: string, validationErrors: string[]): ModulePackageManifest | null {\n if (!manifestText) {\n return null;\n }\n\n try {\n return JSON.parse(manifestText) as ModulePackageManifest;\n } catch (error) {\n validationErrors.push('manifest.json is not valid JSON.');\n return null;\n }\n }\n\n private parseMetadataDocument(documentText: string, validationErrors: string[]) {\n try {\n return JSON.parse(documentText);\n } catch (error) {\n validationErrors.push('Module metadata JSON is not valid JSON.');\n return null;\n }\n }\n\n private async listArchiveEntries(archiveFilePath: string): Promise<string[]> {\n const output = await this.commandService.executeCommandWithArgs({\n command: 'unzip',\n args: ['-Z1', archiveFilePath],\n });\n\n return output\n .split(/\\r?\\n/)\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n\n private async readArchiveEntry(archiveFilePath: string, entryPath: string): Promise<string> {\n return this.commandService.executeCommandWithArgs({\n command: 'unzip',\n args: ['-p', archiveFilePath, entryPath],\n });\n }\n\n private async extractArchive(archiveFilePath: string, extractDirPath: string) {\n await this.commandService.executeCommandWithArgs({\n command: 'unzip',\n args: ['-o', archiveFilePath, '-d', extractDirPath],\n });\n }\n\n private async detectConflicts(moduleName: string): Promise<string[]> {\n const conflicts: string[] = [];\n const solidApiTarget = this.getSolidApiModuleTargetPath(moduleName);\n const solidUiTarget = this.getSolidUiModuleTargetPath(moduleName);\n const metadataFilePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n\n if (await this.pathExists(solidApiTarget)) {\n conflicts.push(`solid-api module already exists at ${solidApiTarget}`);\n }\n if (await this.pathExists(solidUiTarget)) {\n conflicts.push(`solid-ui module already exists at ${solidUiTarget}`);\n }\n if (await this.pathExists(metadataFilePath)) {\n conflicts.push(`module metadata already exists at ${metadataFilePath}`);\n }\n\n return conflicts;\n }\n\n private buildExpectedPaths(moduleName: string) {\n return {\n metadataPath: `solid-api/src/${moduleName}/metadata/${moduleName}-metadata.json`,\n apiModulePath: `solid-api/src/${moduleName}/${moduleName}.module.ts`,\n uiModulePath: `solid-ui/src/${moduleName}/${moduleName}.ui-module.ts`,\n };\n }\n\n private detectArchiveRootPrefix(entries: string[]): string | null {\n const normalized = entries\n .map((entry) => entry.trim())\n .filter(Boolean)\n .filter((entry) => !this.isMacOsMetadataEntry(entry));\n\n if (normalized.length === 0) {\n return null;\n }\n\n const topLevelSegments = normalized\n .map((entry) => entry.split('/')[0])\n .filter(Boolean);\n\n const uniqueTopLevelSegments = Array.from(new Set(topLevelSegments));\n if (uniqueTopLevelSegments.length !== 1) {\n return null;\n }\n\n const onlySegment = uniqueTopLevelSegments[0];\n const hasNestedEntries = normalized.some((entry) => entry.startsWith(`${onlySegment}/`));\n return hasNestedEntries ? `${onlySegment}/` : null;\n }\n\n private normalizeArchiveEntries(entries: string[], archiveRootPrefix: string | null) {\n const filteredEntries = entries.filter((entry) => !this.isMacOsMetadataEntry(entry));\n\n if (!archiveRootPrefix) {\n return filteredEntries;\n }\n\n return filteredEntries\n .map((entry) => entry.startsWith(archiveRootPrefix) ? entry.slice(archiveRootPrefix.length) : entry)\n .filter(Boolean);\n }\n\n private toArchiveEntryPath(archiveRootPrefix: string | null, normalizedEntryPath: string) {\n return archiveRootPrefix ? `${archiveRootPrefix}${normalizedEntryPath}` : normalizedEntryPath;\n }\n\n private isUnsafeArchivePath(entry: string) {\n return entry.startsWith('/') || entry.includes('..') || /^[A-Za-z]:/.test(entry);\n }\n\n private isMacOsMetadataEntry(entry: string) {\n const normalizedEntry = entry.trim();\n if (!normalizedEntry) {\n return false;\n }\n\n const segments = normalizedEntry.split('/').filter(Boolean);\n return segments.some((segment) => segment === '__MACOSX' || segment.startsWith('._'));\n }\n\n private getFallbackManifest(): ModulePackageManifest {\n return {\n schemaVersion: ModulePackageService.SUPPORTED_SCHEMA_VERSION,\n packageType: ModulePackageService.SUPPORTED_PACKAGE_TYPE,\n module: { name: '', displayName: '' },\n contents: {\n metadataPath: '',\n apiModulePath: '',\n uiModulePath: '',\n },\n };\n }\n\n private async loadTransaction(transactionKey: string) {\n this.assertSafeTransactionKey(transactionKey);\n const statusFilePath = this.getStatusFilePath(transactionKey);\n\n if (!(await this.pathExists(statusFilePath))) {\n throw new NotFoundException(`Module package transaction ${transactionKey} was not found.`);\n }\n\n return JSON.parse(await fs.readFile(statusFilePath, 'utf-8')) as ModulePackageStatusFile;\n }\n\n private isResumableStatus(status: string | null | undefined) {\n return [\n ModulePackageStatus.import_running,\n ModulePackageStatus.awaiting_restart,\n ModulePackageStatus.build_running,\n ModulePackageStatus.build_failed,\n ModulePackageStatus.build_succeeded,\n ModulePackageStatus.seed_running,\n ModulePackageStatus.seed_failed,\n ].includes(status as ModulePackageStatus);\n }\n\n private async createWorkingDir(transactionKey: string) {\n const baseDir = path.join(\n this.getModulePackageImportsRoot(),\n transactionKey,\n );\n\n await fs.mkdir(baseDir, { recursive: true });\n return baseDir;\n }\n\n private getSolidApiRoot() {\n return process.cwd();\n }\n\n private getProjectRoot() {\n return path.resolve(this.getSolidApiRoot(), '..');\n }\n\n private getSolidUiRoot() {\n return path.join(this.getProjectRoot(), 'solid-ui');\n }\n\n private getModulePackageImportsRoot() {\n return path.join(\n this.getModulePackageRuntimeRoot(),\n 'module-package-imports',\n );\n }\n\n private getModulePackageExportsRoot() {\n return path.join(\n this.getModulePackageRuntimeRoot(),\n 'module-package-exports',\n );\n }\n\n private getModulePackageRuntimeRoot() {\n const configuredRuntimeRoot = process.env.SOLIDX_MODULE_PACKAGE_RUNTIME_DIR?.trim();\n\n if (configuredRuntimeRoot) {\n return path.resolve(configuredRuntimeRoot);\n }\n\n return path.join(\n this.getProjectRoot(),\n '.solidx-runtime',\n );\n }\n\n private getSolidApiModuleTargetPath(moduleName: string) {\n return path.join(this.getSolidApiRoot(), 'src', moduleName);\n }\n\n private getSolidUiModuleTargetPath(moduleName: string) {\n return path.join(this.getSolidUiRoot(), 'src', moduleName);\n }\n\n private async pathExists(targetPath: string) {\n try {\n await fs.access(targetPath);\n return true;\n } catch (error) {\n return false;\n }\n }\n\n private async assertPathExists(targetPath: string, label: string) {\n if (!(await this.pathExists(targetPath))) {\n throw new BadRequestException(`Expected ${label} at ${targetPath}, but it was not found in the extracted archive.`);\n }\n }\n\n private async readDirSafe(targetPath: string) {\n try {\n return await fs.readdir(targetPath, { withFileTypes: true });\n } catch (error) {\n return [];\n }\n }\n\n private assertSafeTransactionKey(transactionKey: string) {\n if (!/^[a-zA-Z0-9-]+$/.test(transactionKey)) {\n throw new BadRequestException('Invalid module package transaction key.');\n }\n }\n\n private getStatusFilePath(transactionKey: string) {\n this.assertSafeTransactionKey(transactionKey);\n return path.join(this.getModulePackageImportsRoot(), transactionKey, 'status.json');\n }\n\n private getActiveTransactionFilePath() {\n return path.join(this.getModulePackageImportsRoot(), 'active-transaction.json');\n }\n\n private async writeStatusFile(transactionKey: string, payload: ModulePackageStatusFile) {\n payload.updatedAt = new Date().toISOString();\n const statusFilePath = this.getStatusFilePath(transactionKey);\n await fs.mkdir(path.dirname(statusFilePath), { recursive: true });\n await fs.writeFile(statusFilePath, JSON.stringify(payload, null, 2));\n }\n\n private async markActiveTransaction(transactionKey: string) {\n const activeTransactionFilePath = this.getActiveTransactionFilePath();\n await fs.mkdir(path.dirname(activeTransactionFilePath), { recursive: true });\n const payload: ModulePackageActiveTransactionFile = {\n transactionKey,\n updatedAt: new Date().toISOString(),\n };\n await fs.writeFile(activeTransactionFilePath, JSON.stringify(payload, null, 2));\n }\n\n private async clearActiveTransactionIfMatches(transactionKey: string) {\n const activeTransaction = await this.loadActiveTransactionPointer();\n if (!activeTransaction || activeTransaction.transactionKey !== transactionKey) {\n return;\n }\n\n await fs.rm(this.getActiveTransactionFilePath(), { force: true });\n }\n\n private async loadActiveTransactionPointer(): Promise<ModulePackageActiveTransactionFile | null> {\n try {\n return JSON.parse(await fs.readFile(this.getActiveTransactionFilePath(), 'utf-8')) as ModulePackageActiveTransactionFile;\n } catch (error) {\n return null;\n }\n }\n\n private async syncActiveTransactionPointer(transaction: ModulePackageStatusFile) {\n if (this.isResumableStatus(transaction.status)) {\n await this.markActiveTransaction(transaction.transactionKey);\n return;\n }\n\n await this.clearActiveTransactionIfMatches(transaction.transactionKey);\n }\n\n private async collectRuntimeCleanupSnapshot() {\n const importEntries = await this.readDirSafe(this.getModulePackageImportsRoot());\n const exportEntries = await this.readDirSafe(this.getModulePackageExportsRoot());\n\n const importTransactionEntries = importEntries.filter(\n (entry) => entry.isDirectory() && /^[a-zA-Z0-9-]+$/.test(entry.name),\n );\n const exportTransactionEntries = exportEntries.filter(\n (entry) => entry.isDirectory() && /^[a-zA-Z0-9-]+$/.test(entry.name),\n );\n\n const importLooseEntries = importEntries.filter(\n (entry) => !(entry.isDirectory() && /^[a-zA-Z0-9-]+$/.test(entry.name)),\n );\n const exportLooseEntries = exportEntries.filter(\n (entry) => !(entry.isDirectory() && /^[a-zA-Z0-9-]+$/.test(entry.name)),\n );\n\n return {\n removedImportTransactions: importTransactionEntries.length,\n removedExportTransactions: exportTransactionEntries.length,\n removedImportLooseEntries: importLooseEntries.length,\n removedExportLooseEntries: exportLooseEntries.length,\n clearedActiveTransactionPointer: importEntries.some((entry) => entry.name === 'active-transaction.json'),\n };\n }\n\n private getCompletedTransactionRetentionMs() {\n const retentionDays = Number(process.env.SOLIDX_MODULE_PACKAGE_RETENTION_DAYS ?? 7);\n const safeDays = Number.isFinite(retentionDays) && retentionDays > 0 ? retentionDays : 7;\n return safeDays * 24 * 60 * 60 * 1000;\n }\n\n private getPendingTransactionRetentionMs() {\n const retentionHours = Number(process.env.SOLIDX_MODULE_PACKAGE_PENDING_RETENTION_HOURS ?? 24);\n const safeHours = Number.isFinite(retentionHours) && retentionHours > 0 ? retentionHours : 24;\n return safeHours * 60 * 60 * 1000;\n }\n\n private async cleanupModulePackageTransactions() {\n const importsRoot = this.getModulePackageImportsRoot();\n const activePointer = await this.loadActiveTransactionPointer();\n const now = Date.now();\n\n try {\n await fs.mkdir(importsRoot, { recursive: true });\n const entries = await fs.readdir(importsRoot, { withFileTypes: true });\n\n for (const entry of entries) {\n if (!entry.isDirectory()) {\n continue;\n }\n\n const transactionKey = entry.name;\n if (!/^[a-zA-Z0-9-]+$/.test(transactionKey)) {\n continue;\n }\n\n const statusFilePath = this.getStatusFilePath(transactionKey);\n let transaction: ModulePackageStatusFile | null = null;\n\n try {\n transaction = JSON.parse(await fs.readFile(statusFilePath, 'utf-8')) as ModulePackageStatusFile;\n } catch (error) {\n continue;\n }\n\n const updatedAtMs = transaction.updatedAt ? new Date(transaction.updatedAt).getTime() : 0;\n const ageMs = updatedAtMs > 0 ? now - updatedAtMs : Number.MAX_SAFE_INTEGER;\n const isResumable = this.isResumableStatus(transaction.status);\n const maxAgeMs = isResumable\n ? this.getPendingTransactionRetentionMs()\n : this.getCompletedTransactionRetentionMs();\n const shouldDelete = ageMs > maxAgeMs;\n\n if (!shouldDelete) {\n continue;\n }\n\n await fs.rm(path.join(importsRoot, transactionKey), { recursive: true, force: true });\n\n if (activePointer?.transactionKey === transactionKey) {\n await fs.rm(this.getActiveTransactionFilePath(), { force: true });\n }\n }\n } catch (error) {\n this.logger.warn(`Failed to clean up module package transactions: ${String(error)}`);\n }\n }\n\n private async resolveLatestResumableTransaction(): Promise<ModulePackageStatusFile | null> {\n const activePointer = await this.loadActiveTransactionPointer();\n if (activePointer?.transactionKey) {\n try {\n const activeTransaction = await this.loadTransaction(activePointer.transactionKey);\n if (this.isResumableStatus(activeTransaction.status)) {\n return activeTransaction;\n }\n\n await this.clearActiveTransactionIfMatches(activePointer.transactionKey);\n } catch (error) {\n await this.clearActiveTransactionIfMatches(activePointer.transactionKey);\n }\n }\n\n const importsRoot = this.getModulePackageImportsRoot();\n const candidates: ModulePackageStatusFile[] = [];\n\n try {\n const entries = await fs.readdir(importsRoot, { withFileTypes: true });\n\n for (const entry of entries) {\n if (!entry.isDirectory()) {\n continue;\n }\n\n const transactionKey = entry.name;\n if (!/^[a-zA-Z0-9-]+$/.test(transactionKey)) {\n continue;\n }\n\n try {\n const transaction = await this.loadTransaction(transactionKey);\n if (this.isResumableStatus(transaction.status)) {\n candidates.push(transaction);\n }\n } catch (error) {\n continue;\n }\n }\n } catch (error) {\n return null;\n }\n\n candidates.sort((left, right) => {\n const leftUpdatedAt = new Date(left.updatedAt ?? left.createdAt ?? 0).getTime();\n const rightUpdatedAt = new Date(right.updatedAt ?? right.createdAt ?? 0).getTime();\n return rightUpdatedAt - leftUpdatedAt;\n });\n\n const latest = candidates[0] ?? null;\n if (latest) {\n await this.markActiveTransaction(latest.transactionKey);\n }\n return latest;\n }\n\n private toStatusResponse(transaction: ModulePackageStatusFile) {\n return {\n transactionKey: transaction.transactionKey,\n status: transaction.status,\n currentStep: transaction.currentStep,\n moduleName: transaction.moduleName,\n moduleDisplayName: transaction.moduleDisplayName,\n archiveFileName: transaction.archiveFileName,\n manifest: transaction.manifest,\n preview: transaction.preview,\n validation: transaction.validation,\n conflicts: transaction.conflicts,\n outputs: transaction.outputs,\n errorMessage: transaction.errorMessage,\n createdAt: transaction.createdAt,\n updatedAt: transaction.updatedAt,\n };\n }\n\n private async buildExportManifest(moduleName: string, metadataDocument: any, stagingDir: string): Promise<ModulePackageManifest> {\n const expectedPaths = this.buildExpectedPaths(moduleName);\n const checksums = await this.computeDirectoryChecksums(stagingDir, ['manifest.json']);\n\n return {\n schemaVersion: ModulePackageService.SUPPORTED_SCHEMA_VERSION,\n packageType: ModulePackageService.SUPPORTED_PACKAGE_TYPE,\n exportedAt: new Date().toISOString(),\n generatedBy: {\n name: '@solidxai/core',\n },\n module: {\n name: moduleName,\n displayName: metadataDocument?.moduleMetadata?.displayName,\n description: metadataDocument?.moduleMetadata?.description,\n },\n contents: expectedPaths,\n postImport: {\n recommendedSteps: ['restart', 'build', 'seed'],\n },\n checksums,\n };\n }\n\n private async computeDirectoryChecksums(rootDir: string, excludedRelativePaths: string[] = []): Promise<Record<string, string>> {\n const excludedPaths = new Set(excludedRelativePaths.map((entry) => entry.replace(/\\\\/g, '/')));\n const filePaths = await this.collectFilePathsRecursively(rootDir);\n const checksums: Record<string, string> = {};\n\n for (const filePath of filePaths) {\n const relativePath = path.relative(rootDir, filePath).replace(/\\\\/g, '/');\n if (excludedPaths.has(relativePath)) {\n continue;\n }\n\n checksums[relativePath] = await this.computeSha256(filePath);\n }\n\n return checksums;\n }\n\n private async collectFilePathsRecursively(rootDir: string): Promise<string[]> {\n const entries = await fs.readdir(rootDir, { withFileTypes: true });\n const nestedPaths = await Promise.all(entries.map(async (entry) => {\n const entryPath = path.join(rootDir, entry.name);\n if (entry.isDirectory()) {\n return this.collectFilePathsRecursively(entryPath);\n }\n\n return [entryPath];\n }));\n\n return nestedPaths.flat();\n }\n\n private async createArchiveFromDirectory(sourceDir: string, archiveFilePath: string): Promise<void> {\n await fs.mkdir(path.dirname(archiveFilePath), { recursive: true });\n\n await new Promise<void>((resolve, reject) => {\n const output = createWriteStream(archiveFilePath);\n const archive = archiver('zip', {\n zlib: { level: 9 },\n });\n\n const rejectOnce = (error: Error) => {\n output.destroy();\n reject(error);\n };\n\n output.on('close', () => resolve());\n output.on('error', rejectOnce);\n archive.on('warning', rejectOnce);\n archive.on('error', rejectOnce);\n\n archive.pipe(output);\n archive.directory(sourceDir, false);\n void archive.finalize();\n });\n }\n\n private async computeSha256(filePath: string): Promise<string> {\n const fileBuffer = await fs.readFile(filePath);\n return createHash('sha256').update(fileBuffer).digest('hex');\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MqMessageRepository } from "../../repository/mq-message.repository";
|
|
2
|
+
import { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
|
|
3
|
+
export declare class MqDashboardMessageBrokerVariableOptionsProvider implements ISelectionProvider<ISelectionProviderContext> {
|
|
4
|
+
private readonly mqMessageRepository;
|
|
5
|
+
constructor(mqMessageRepository: MqMessageRepository);
|
|
6
|
+
name(): string;
|
|
7
|
+
help(): string;
|
|
8
|
+
value(optionValue: string): Promise<ISelectionProviderValues | null>;
|
|
9
|
+
values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=mq-dashboard-message-broker-variable-options-provider.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mq-dashboard-message-broker-variable-options-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,qBAEa,+CAAgD,YAAW,kBAAkB,CAAC,yBAAyB,CAAC;IAE7G,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAKpE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC;CAyB7G"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MqDashboardMessageBrokerVariableOptionsProvider = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const selection_provider_decorator_1 = require("../../decorators/selection-provider.decorator");
|
|
15
|
+
const mq_message_repository_1 = require("../../repository/mq-message.repository");
|
|
16
|
+
let MqDashboardMessageBrokerVariableOptionsProvider = class MqDashboardMessageBrokerVariableOptionsProvider {
|
|
17
|
+
constructor(mqMessageRepository) {
|
|
18
|
+
this.mqMessageRepository = mqMessageRepository;
|
|
19
|
+
}
|
|
20
|
+
name() {
|
|
21
|
+
return "MqDashboardMessageBrokerVariableOptionsProvider";
|
|
22
|
+
}
|
|
23
|
+
help() {
|
|
24
|
+
return "Dynamic options provider for dashboard messageBroker variable.";
|
|
25
|
+
}
|
|
26
|
+
async value(optionValue) {
|
|
27
|
+
if (!optionValue)
|
|
28
|
+
return null;
|
|
29
|
+
return { label: optionValue, value: optionValue };
|
|
30
|
+
}
|
|
31
|
+
async values(query, ctxt) {
|
|
32
|
+
const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
|
|
33
|
+
const limit = Math.min(Math.max(ctxt?.limit ?? 25, 1), 200);
|
|
34
|
+
const offset = Math.max(ctxt?.offset ?? 0, 0);
|
|
35
|
+
qb.select("DISTINCT mqMessage.messageBroker", "value")
|
|
36
|
+
.where("mqMessage.messageBroker IS NOT NULL");
|
|
37
|
+
if (query) {
|
|
38
|
+
qb.andWhere("mqMessage.messageBroker ILIKE :query", { query: `%${query}%` });
|
|
39
|
+
}
|
|
40
|
+
const rows = await qb
|
|
41
|
+
.orderBy("value", "ASC")
|
|
42
|
+
.take(limit)
|
|
43
|
+
.skip(offset)
|
|
44
|
+
.getRawMany();
|
|
45
|
+
return rows
|
|
46
|
+
.filter((r) => !!r?.value)
|
|
47
|
+
.map((r) => ({
|
|
48
|
+
label: r.value,
|
|
49
|
+
value: r.value,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.MqDashboardMessageBrokerVariableOptionsProvider = MqDashboardMessageBrokerVariableOptionsProvider;
|
|
54
|
+
exports.MqDashboardMessageBrokerVariableOptionsProvider = MqDashboardMessageBrokerVariableOptionsProvider = __decorate([
|
|
55
|
+
(0, selection_provider_decorator_1.SelectionProvider)(),
|
|
56
|
+
(0, common_1.Injectable)(),
|
|
57
|
+
__metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
|
|
58
|
+
], MqDashboardMessageBrokerVariableOptionsProvider);
|
|
59
|
+
//# sourceMappingURL=mq-dashboard-message-broker-variable-options-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mq-dashboard-message-broker-variable-options-provider.service.js","sourceRoot":"","sources":["../../../src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gGAAgF;AAChF,kFAA2E;AAKpE,IAAM,+CAA+C,GAArD,MAAM,+CAA+C;IACxD,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,iDAAiD,CAAC;IAC7D,CAAC;IAED,IAAI;QACA,OAAO,gEAAgE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB;QAC3B,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAA+B;QACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9C,EAAE,CAAC,MAAM,CAAC,kCAAkC,EAAE,OAAO,CAAC;aACjD,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAElD,IAAI,KAAK,EAAE,CAAC;YACR,EAAE,CAAC,QAAQ,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE;aAChB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,MAAM,CAAC;aACZ,UAAU,EAAqB,CAAC;QAErC,OAAO,IAAI;aACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACZ,CAAC;CACJ,CAAA;AA3CY,0GAA+C;0DAA/C,+CAA+C;IAF3D,IAAA,gDAAiB,GAAE;IACnB,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,+CAA+C,CA2C3D","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SelectionProvider } from \"src/decorators/selection-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from \"src/interfaces\";\n\n@SelectionProvider()\n@Injectable()\nexport class MqDashboardMessageBrokerVariableOptionsProvider implements ISelectionProvider<ISelectionProviderContext> {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardMessageBrokerVariableOptionsProvider\";\n }\n\n help(): string {\n return \"Dynamic options provider for dashboard messageBroker variable.\";\n }\n\n async value(optionValue: string): Promise<ISelectionProviderValues | null> {\n if (!optionValue) return null;\n return { label: optionValue, value: optionValue };\n }\n\n async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n const limit = Math.min(Math.max(ctxt?.limit ?? 25, 1), 200);\n const offset = Math.max(ctxt?.offset ?? 0, 0);\n\n qb.select(\"DISTINCT mqMessage.messageBroker\", \"value\")\n .where(\"mqMessage.messageBroker IS NOT NULL\");\n\n if (query) {\n qb.andWhere(\"mqMessage.messageBroker ILIKE :query\", { query: `%${query}%` });\n }\n\n const rows = await qb\n .orderBy(\"value\", \"ASC\")\n .take(limit)\n .skip(offset)\n .getRawMany<{ value: string }>();\n\n return rows\n .filter((r) => !!r?.value)\n .map((r) => ({\n label: r.value,\n value: r.value,\n }));\n }\n}\n\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MqMessageQueueRepository } from "../../repository/mq-message-queue.repository";
|
|
2
|
+
import { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
|
|
3
|
+
export declare class MqDashboardQueueNameVariableOptionsProvider implements ISelectionProvider<ISelectionProviderContext> {
|
|
4
|
+
private readonly mqMessageQueueRepository;
|
|
5
|
+
constructor(mqMessageQueueRepository: MqMessageQueueRepository);
|
|
6
|
+
name(): string;
|
|
7
|
+
help(): string;
|
|
8
|
+
value(optionValue: string): Promise<ISelectionProviderValues | null>;
|
|
9
|
+
values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=mq-dashboard-queue-name-variable-options-provider.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mq-dashboard-queue-name-variable-options-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,qBAEa,2CAA4C,YAAW,kBAAkB,CAAC,yBAAyB,CAAC;IAEzG,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAGvE,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IASpE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC;CAoB7G"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MqDashboardQueueNameVariableOptionsProvider = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const selection_provider_decorator_1 = require("../../decorators/selection-provider.decorator");
|
|
15
|
+
const mq_message_queue_repository_1 = require("../../repository/mq-message-queue.repository");
|
|
16
|
+
let MqDashboardQueueNameVariableOptionsProvider = class MqDashboardQueueNameVariableOptionsProvider {
|
|
17
|
+
constructor(mqMessageQueueRepository) {
|
|
18
|
+
this.mqMessageQueueRepository = mqMessageQueueRepository;
|
|
19
|
+
}
|
|
20
|
+
name() {
|
|
21
|
+
return "MqDashboardQueueNameVariableOptionsProvider";
|
|
22
|
+
}
|
|
23
|
+
help() {
|
|
24
|
+
return "Dynamic options provider for dashboard queueName variable.";
|
|
25
|
+
}
|
|
26
|
+
async value(optionValue) {
|
|
27
|
+
if (!optionValue)
|
|
28
|
+
return null;
|
|
29
|
+
const queue = await this.mqMessageQueueRepository.findOne({
|
|
30
|
+
where: { name: optionValue },
|
|
31
|
+
});
|
|
32
|
+
if (!queue?.name)
|
|
33
|
+
return null;
|
|
34
|
+
return { label: queue.name, value: queue.name };
|
|
35
|
+
}
|
|
36
|
+
async values(query, ctxt) {
|
|
37
|
+
const qb = await this.mqMessageQueueRepository.createSecurityRuleAwareQueryBuilder("mqMessageQueue");
|
|
38
|
+
const limit = Math.min(Math.max(ctxt?.limit ?? 25, 1), 200);
|
|
39
|
+
const offset = Math.max(ctxt?.offset ?? 0, 0);
|
|
40
|
+
if (query) {
|
|
41
|
+
qb.andWhere("mqMessageQueue.name ILIKE :query", { query: `%${query}%` });
|
|
42
|
+
}
|
|
43
|
+
const records = await qb
|
|
44
|
+
.select(["mqMessageQueue.name"])
|
|
45
|
+
.orderBy("mqMessageQueue.name", "ASC")
|
|
46
|
+
.take(limit)
|
|
47
|
+
.skip(offset)
|
|
48
|
+
.getMany();
|
|
49
|
+
return records
|
|
50
|
+
.filter((r) => !!r?.name)
|
|
51
|
+
.map((r) => ({ label: r.name, value: r.name }));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.MqDashboardQueueNameVariableOptionsProvider = MqDashboardQueueNameVariableOptionsProvider;
|
|
55
|
+
exports.MqDashboardQueueNameVariableOptionsProvider = MqDashboardQueueNameVariableOptionsProvider = __decorate([
|
|
56
|
+
(0, selection_provider_decorator_1.SelectionProvider)(),
|
|
57
|
+
(0, common_1.Injectable)(),
|
|
58
|
+
__metadata("design:paramtypes", [mq_message_queue_repository_1.MqMessageQueueRepository])
|
|
59
|
+
], MqDashboardQueueNameVariableOptionsProvider);
|
|
60
|
+
//# sourceMappingURL=mq-dashboard-queue-name-variable-options-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mq-dashboard-queue-name-variable-options-provider.service.js","sourceRoot":"","sources":["../../../src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gGAAgF;AAChF,8FAAsF;AAK/E,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IACpD,YACqB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACnE,CAAC;IAEL,IAAI;QACA,OAAO,6CAA6C,CAAC;IACzD,CAAC;IAED,IAAI;QACA,OAAO,4DAA4D,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB;QAC3B,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAA+B;QACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,CAAC,gBAAgB,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9C,IAAI,KAAK,EAAE,CAAC;YACR,EAAE,CAAC,QAAQ,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;aAC/B,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC;aACrC,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,MAAM,CAAC;aACZ,OAAO,EAAE,CAAC;QAEf,OAAO,OAAO;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ,CAAA;AA1CY,kGAA2C;sDAA3C,2CAA2C;IAFvD,IAAA,gDAAiB,GAAE;IACnB,IAAA,mBAAU,GAAE;qCAGsC,sDAAwB;GAF9D,2CAA2C,CA0CvD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SelectionProvider } from \"src/decorators/selection-provider.decorator\";\nimport { MqMessageQueueRepository } from \"src/repository/mq-message-queue.repository\";\nimport { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from \"src/interfaces\";\n\n@SelectionProvider()\n@Injectable()\nexport class MqDashboardQueueNameVariableOptionsProvider implements ISelectionProvider<ISelectionProviderContext> {\n constructor(\n private readonly mqMessageQueueRepository: MqMessageQueueRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardQueueNameVariableOptionsProvider\";\n }\n\n help(): string {\n return \"Dynamic options provider for dashboard queueName variable.\";\n }\n\n async value(optionValue: string): Promise<ISelectionProviderValues | null> {\n if (!optionValue) return null;\n const queue = await this.mqMessageQueueRepository.findOne({\n where: { name: optionValue },\n });\n if (!queue?.name) return null;\n return { label: queue.name, value: queue.name };\n }\n\n async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {\n const qb = await this.mqMessageQueueRepository.createSecurityRuleAwareQueryBuilder(\"mqMessageQueue\");\n const limit = Math.min(Math.max(ctxt?.limit ?? 25, 1), 200);\n const offset = Math.max(ctxt?.offset ?? 0, 0);\n\n if (query) {\n qb.andWhere(\"mqMessageQueue.name ILIKE :query\", { query: `%${query}%` });\n }\n\n const records = await qb\n .select([\"mqMessageQueue.name\"])\n .orderBy(\"mqMessageQueue.name\", \"ASC\")\n .take(limit)\n .skip(offset)\n .getMany();\n\n return records\n .filter((r) => !!r?.name)\n .map((r) => ({ label: r.name, value: r.name }));\n }\n}\n\n"]}
|