@solidxai/core 0.1.10-beta.9 → 0.1.11-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +415 -0
- package/MICROSOFT_ACTIVE_DIRECTORY_OAUTH_FLOW.md +616 -0
- package/ai-interaction-cleanup.sql +53 -0
- package/dist/commands/info.command.d.ts.map +1 -1
- package/dist/commands/info.command.js +0 -2
- package/dist/commands/info.command.js.map +1 -1
- package/dist/commands/refresh-model.command.d.ts +1 -7
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +4 -49
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/refresh-module.command.d.ts +0 -2
- package/dist/commands/refresh-module.command.d.ts.map +1 -1
- package/dist/commands/refresh-module.command.js +3 -16
- package/dist/commands/refresh-module.command.js.map +1 -1
- package/dist/commands/test-data.command.d.ts +2 -0
- package/dist/commands/test-data.command.d.ts.map +1 -1
- package/dist/commands/test-data.command.js +32 -6
- package/dist/commands/test-data.command.js.map +1 -1
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/controllers/action-metadata.controller.d.ts +1 -20
- package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/agent-event.controller.d.ts +1 -20
- package/dist/controllers/agent-event.controller.d.ts.map +1 -1
- package/dist/controllers/agent-session.controller.d.ts +1 -20
- package/dist/controllers/agent-session.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message-details.controller.d.ts +1 -20
- package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +3 -20
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +17 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/dashboard-user-layout.controller.d.ts +24 -0
- package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
- package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
- package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
- package/dist/controllers/dashboard.controller.d.ts +12 -42
- package/dist/controllers/dashboard.controller.d.ts.map +1 -1
- package/dist/controllers/dashboard.controller.js +71 -141
- package/dist/controllers/dashboard.controller.js.map +1 -1
- package/dist/controllers/datasource-introspection.controller.d.ts +234 -0
- package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-introspection.controller.js +98 -0
- package/dist/controllers/datasource-introspection.controller.js.map +1 -0
- package/dist/controllers/datasource-management.controller.d.ts +18 -0
- package/dist/controllers/datasource-management.controller.d.ts.map +1 -0
- package/dist/controllers/datasource-management.controller.js +55 -0
- package/dist/controllers/datasource-management.controller.js.map +1 -0
- package/dist/controllers/email-template.controller.d.ts +1 -20
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.d.ts +1 -20
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-transaction.controller.d.ts +1 -20
- package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/gupshup-webhook.controller.d.ts +11 -0
- package/dist/controllers/gupshup-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/gupshup-webhook.controller.js +87 -0
- package/dist/controllers/gupshup-webhook.controller.js.map +1 -0
- package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -20
- package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +1 -20
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/list-of-values.controller.d.ts +1 -20
- package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
- package/dist/controllers/locale.controller.d.ts +1 -20
- package/dist/controllers/locale.controller.d.ts.map +1 -1
- package/dist/controllers/mcp-audit-log.controller.d.ts +16 -0
- package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -0
- package/dist/controllers/{dashboard-question.controller.js → mcp-audit-log.controller.js} +44 -91
- package/dist/controllers/mcp-audit-log.controller.js.map +1 -0
- package/dist/controllers/media.controller.d.ts +1 -20
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.d.ts +1 -20
- package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts +16 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts.map +1 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js +133 -0
- package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js.map +1 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts +28 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.js +122 -0
- package/dist/controllers/microsoft-active-directory-authentication.controller.js.map +1 -0
- package/dist/controllers/model-metadata.controller.d.ts +11 -31
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +4 -4
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +1 -20
- package/dist/controllers/model-sequence.controller.d.ts.map +1 -1
- package/dist/controllers/module-metadata-explorer.controller.d.ts +171 -0
- package/dist/controllers/module-metadata-explorer.controller.d.ts.map +1 -0
- package/dist/controllers/module-metadata-explorer.controller.js +143 -0
- package/dist/controllers/module-metadata-explorer.controller.js.map +1 -0
- package/dist/controllers/module-metadata.controller.d.ts +5 -0
- package/dist/controllers/module-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/module-metadata.controller.js +13 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/module-package.controller.d.ts +622 -0
- package/dist/controllers/module-package.controller.d.ts.map +1 -0
- package/dist/controllers/module-package.controller.js +150 -0
- package/dist/controllers/module-package.controller.js.map +1 -0
- package/dist/controllers/mq-message-queue.controller.d.ts +1 -20
- package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
- package/dist/controllers/mq-message.controller.d.ts +1 -20
- package/dist/controllers/mq-message.controller.d.ts.map +1 -1
- package/dist/controllers/permission-metadata.controller.d.ts +1 -20
- package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -20
- package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/saved-filters.controller.d.ts +1 -20
- package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +1 -20
- package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
- package/dist/controllers/security-rule.controller.d.ts +1 -20
- package/dist/controllers/security-rule.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.d.ts +1 -5
- package/dist/controllers/service.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.js +6 -11
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.d.ts +1 -20
- package/dist/controllers/sms-template.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.d.ts +1 -6
- package/dist/controllers/test.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.js +2 -20
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/controllers/user-activity-history.controller.d.ts +1 -20
- package/dist/controllers/user-activity-history.controller.d.ts.map +1 -1
- package/dist/controllers/user-view-metadata.controller.d.ts +1 -20
- package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/user.controller.d.ts +1 -20
- package/dist/controllers/user.controller.d.ts.map +1 -1
- package/dist/controllers/view-metadata.controller.d.ts +1 -20
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
- package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
- package/dist/dtos/confirm-module-package-import.dto.d.ts +4 -0
- package/dist/dtos/confirm-module-package-import.dto.d.ts.map +1 -0
- package/dist/dtos/confirm-module-package-import.dto.js +34 -0
- package/dist/dtos/confirm-module-package-import.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
- package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
- package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
- package/dist/dtos/create-datasource-management.dto.d.ts +25 -0
- package/dist/dtos/create-datasource-management.dto.d.ts.map +1 -0
- package/dist/dtos/create-datasource-management.dto.js +169 -0
- package/dist/dtos/create-datasource-management.dto.js.map +1 -0
- package/dist/dtos/create-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/create-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/create-mcp-audit-log.dto.js +118 -0
- package/dist/dtos/create-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts +2 -2
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +6 -11
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-permission-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-permission-metadata.dto.js +2 -0
- package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +13 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
- package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
- package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
- package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
- package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
- package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
- package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
- package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts +45 -0
- package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js +233 -0
- package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -0
- package/dist/dtos/import-instructions.dto.d.ts +2 -0
- package/dist/dtos/import-instructions.dto.d.ts.map +1 -1
- package/dist/dtos/import-instructions.dto.js +15 -1
- package/dist/dtos/import-instructions.dto.js.map +1 -1
- package/dist/dtos/metadata-explorer-references-query.dto.d.ts +10 -0
- package/dist/dtos/metadata-explorer-references-query.dto.d.ts.map +1 -0
- package/dist/dtos/metadata-explorer-references-query.dto.js +69 -0
- package/dist/dtos/metadata-explorer-references-query.dto.js.map +1 -0
- package/dist/dtos/metadata-explorer-search-query.dto.d.ts +8 -0
- package/dist/dtos/metadata-explorer-search-query.dto.d.ts.map +1 -0
- package/dist/dtos/metadata-explorer-search-query.dto.js +55 -0
- package/dist/dtos/metadata-explorer-search-query.dto.js.map +1 -0
- package/dist/dtos/metadata-explorer-write.dto.d.ts +4 -0
- package/dist/dtos/metadata-explorer-write.dto.d.ts.map +1 -0
- package/dist/dtos/{invoke-ai-prompt.dto.js → metadata-explorer-write.dto.js} +12 -12
- package/dist/dtos/metadata-explorer-write.dto.js.map +1 -0
- package/dist/dtos/run-module-package-build.dto.d.ts +5 -0
- package/dist/dtos/run-module-package-build.dto.d.ts.map +1 -0
- package/dist/dtos/run-module-package-build.dto.js +38 -0
- package/dist/dtos/run-module-package-build.dto.js.map +1 -0
- package/dist/dtos/run-module-package-seed.dto.d.ts +4 -0
- package/dist/dtos/run-module-package-seed.dto.d.ts.map +1 -0
- package/dist/dtos/run-module-package-seed.dto.js +34 -0
- package/dist/dtos/run-module-package-seed.dto.js.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts +5 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -0
- package/dist/dtos/update-chatter-note-message.dto.js +34 -0
- package/dist/dtos/update-chatter-note-message.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
- package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
- package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
- package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts +19 -0
- package/dist/dtos/update-mcp-audit-log.dto.d.ts.map +1 -0
- package/dist/dtos/update-mcp-audit-log.dto.js +117 -0
- package/dist/dtos/update-mcp-audit-log.dto.js.map +1 -0
- package/dist/dtos/update-permission-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-permission-metadata.dto.js +3 -1
- package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/update-role-metadata.dto.d.ts +2 -0
- package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-role-metadata.dto.js +13 -1
- package/dist/dtos/update-role-metadata.dto.js.map +1 -1
- package/dist/entities/action-metadata.entity.d.ts.map +1 -1
- package/dist/entities/action-metadata.entity.js +1 -0
- package/dist/entities/action-metadata.entity.js.map +1 -1
- package/dist/entities/agent-event.entity.d.ts.map +1 -1
- package/dist/entities/agent-event.entity.js +1 -0
- package/dist/entities/agent-event.entity.js.map +1 -1
- package/dist/entities/agent-session.entity.d.ts.map +1 -1
- package/dist/entities/agent-session.entity.js +1 -0
- package/dist/entities/agent-session.entity.js.map +1 -1
- package/dist/entities/chatter-message.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message.entity.js +2 -0
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
- package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
- package/dist/entities/dashboard-user-layout.entity.js +52 -0
- package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
- package/dist/entities/email-template.entity.d.ts.map +1 -1
- package/dist/entities/email-template.entity.js +1 -0
- package/dist/entities/email-template.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +4 -0
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.d.ts +2 -2
- package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.js +6 -6
- package/dist/entities/legacy-common-with-id.entity.js.map +1 -1
- package/dist/entities/legacy-common.entity.d.ts +1 -1
- package/dist/entities/legacy-common.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common.entity.js +14 -14
- package/dist/entities/legacy-common.entity.js.map +1 -1
- package/dist/entities/list-of-values.entity.d.ts.map +1 -1
- package/dist/entities/list-of-values.entity.js +4 -0
- package/dist/entities/list-of-values.entity.js.map +1 -1
- package/dist/entities/locale.entity.d.ts.map +1 -1
- package/dist/entities/locale.entity.js +1 -0
- package/dist/entities/locale.entity.js.map +1 -1
- package/dist/entities/mcp-audit-log.entity.d.ts +19 -0
- package/dist/entities/mcp-audit-log.entity.d.ts.map +1 -0
- package/dist/entities/mcp-audit-log.entity.js +90 -0
- package/dist/entities/mcp-audit-log.entity.js.map +1 -0
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +1 -0
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +2 -0
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +2 -2
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +8 -8
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/module-metadata.entity.d.ts.map +1 -1
- package/dist/entities/module-metadata.entity.js +2 -0
- package/dist/entities/module-metadata.entity.js.map +1 -1
- package/dist/entities/permission-metadata.entity.d.ts.map +1 -1
- package/dist/entities/permission-metadata.entity.js.map +1 -1
- package/dist/entities/role-metadata.entity.d.ts +2 -0
- package/dist/entities/role-metadata.entity.d.ts.map +1 -1
- package/dist/entities/role-metadata.entity.js +10 -2
- package/dist/entities/role-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.d.ts.map +1 -1
- package/dist/entities/saved-filters.entity.js +3 -0
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
- package/dist/entities/scheduled-job.entity.js +2 -0
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.d.ts.map +1 -1
- package/dist/entities/security-rule.entity.js +1 -0
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/entities/sms-template.entity.d.ts.map +1 -1
- package/dist/entities/sms-template.entity.js +2 -0
- package/dist/entities/sms-template.entity.js.map +1 -1
- package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
- package/dist/entities/user-activity-history.entity.js +1 -0
- package/dist/entities/user-activity-history.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +3 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +15 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.d.ts.map +1 -1
- package/dist/entities/view-metadata.entity.js +2 -0
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/enums/legacy-table-type.enum.d.ts +6 -0
- package/dist/enums/legacy-table-type.enum.d.ts.map +1 -0
- package/dist/enums/legacy-table-type.enum.js +10 -0
- package/dist/enums/legacy-table-type.enum.js.map +1 -0
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +13 -11
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +1 -0
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +6 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/command.service.d.ts +1 -0
- package/dist/helpers/command.service.d.ts.map +1 -1
- package/dist/helpers/command.service.js +2 -1
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts +34 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts.map +1 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.js +43 -0
- package/dist/helpers/microsoft-active-directory-oauth.helper.js.map +1 -0
- package/dist/helpers/model-metadata-helper.service.d.ts +2 -1
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +4 -3
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +2 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +23 -10
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +6 -6
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +5 -9
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +13 -28
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/typeorm-migration-helpers.d.ts +12 -0
- package/dist/helpers/typeorm-migration-helpers.d.ts.map +1 -0
- package/dist/helpers/typeorm-migration-helpers.js +119 -0
- package/dist/helpers/typeorm-migration-helpers.js.map +1 -0
- package/dist/helpers/user-helper.d.ts.map +1 -1
- package/dist/helpers/user-helper.js +4 -0
- package/dist/helpers/user-helper.js.map +1 -1
- package/dist/index.d.ts +42 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -10
- package/dist/index.js.map +1 -1
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts +26 -0
- package/dist/interfaces/datasource-introspection-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js +3 -0
- package/dist/interfaces/datasource-introspection-provider.interface.js.map +1 -0
- package/dist/interfaces.d.ts +23 -21
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/listeners/user-registration.listener.d.ts +5 -2
- package/dist/listeners/user-registration.listener.d.ts.map +1 -1
- package/dist/listeners/user-registration.listener.js +37 -4
- package/dist/listeners/user-registration.listener.js.map +1 -1
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts +14 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts.map +1 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js +67 -0
- package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js.map +1 -0
- package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
- package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
- package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
- package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
- package/dist/repository/{ai-interaction.repository.d.ts → mcp-audit-log.repository.d.ts} +3 -3
- package/dist/repository/mcp-audit-log.repository.d.ts.map +1 -0
- package/dist/repository/{ai-interaction.repository.js → mcp-audit-log.repository.js} +8 -8
- package/dist/repository/mcp-audit-log.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +2 -6
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +58 -98
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +2 -0
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +62 -1
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +5010 -4284
- package/dist/seeders/system-fields-seeder.service.js +1 -1
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +18 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +209 -15
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +7 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +94 -2
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +18 -0
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +76 -2
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +1 -21
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +23 -87
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
- package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
- package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
- package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +20 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +201 -0
- package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
- package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
- package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
- package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
- package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
- package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
- package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
- package/dist/services/dashboard-runtime.service.d.ts +31 -0
- package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
- package/dist/services/dashboard-runtime.service.js +408 -0
- package/dist/services/dashboard-runtime.service.js.map +1 -0
- package/dist/services/dashboard-user-layout.service.d.ts +12 -0
- package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
- package/dist/services/{dashboard-question-sql-dataset-config.service.js → dashboard-user-layout.service.js} +10 -10
- package/dist/services/dashboard-user-layout.service.js.map +1 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js +181 -0
- package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js +90 -0
- package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts +11 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js +156 -0
- package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js.map +1 -0
- package/dist/services/datasource-introspection.service.d.ts +288 -0
- package/dist/services/datasource-introspection.service.d.ts.map +1 -0
- package/dist/services/datasource-introspection.service.js +1278 -0
- package/dist/services/datasource-introspection.service.js.map +1 -0
- package/dist/services/datasource-management.service.d.ts +60 -0
- package/dist/services/datasource-management.service.d.ts.map +1 -0
- package/dist/services/datasource-management.service.js +461 -0
- package/dist/services/datasource-management.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +19 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +6 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/mcp-audit-log.service.d.ts +12 -0
- package/dist/services/mcp-audit-log.service.d.ts.map +1 -0
- package/dist/services/{dashboard-variable.service.js → mcp-audit-log.service.js} +9 -10
- package/dist/services/mcp-audit-log.service.js.map +1 -0
- package/dist/services/media.service.d.ts +1 -20
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +51 -11
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +11 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +20 -34
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +311 -50
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata-explorer.service.d.ts +161 -0
- package/dist/services/module-metadata-explorer.service.d.ts.map +1 -0
- package/dist/services/module-metadata-explorer.service.js +485 -0
- package/dist/services/module-metadata-explorer.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts +11 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +140 -4
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/module-package.service.d.ts +266 -0
- package/dist/services/module-package.service.d.ts.map +1 -0
- package/dist/services/module-package.service.js +980 -0
- package/dist/services/module-package.service.js.map +1 -0
- package/dist/services/role-metadata.service.d.ts +1 -0
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +13 -0
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +58 -0
- package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +59 -0
- package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +32 -8
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +292 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +164 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +1 -2
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +12 -24
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.d.ts +1 -1
- package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +47 -1
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts +11 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js +127 -0
- package/dist/services/whatsapp/GupshupOtpWhatsappService.js.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts +17 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts.map +1 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js +209 -0
- package/dist/services/whatsapp/MetaCloudWhatsappService.js.map +1 -0
- package/dist/solid-core.module.d.ts +2 -2
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +95 -103
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.js +1 -3
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js +1 -1
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts +1 -0
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +3 -0
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/dist/testing/steps/ui/index.d.ts.map +1 -1
- package/dist/testing/steps/ui/index.js +2 -0
- package/dist/testing/steps/ui/index.js.map +1 -1
- package/dist/testing/steps/ui/manual.step.d.ts +3 -0
- package/dist/testing/steps/ui/manual.step.d.ts.map +1 -0
- package/dist/testing/steps/ui/manual.step.js +56 -0
- package/dist/testing/steps/ui/manual.step.js.map +1 -0
- package/dist/winston.logger.d.ts +5 -0
- package/dist/winston.logger.d.ts.map +1 -1
- package/dist/winston.logger.js +6 -4
- package/dist/winston.logger.js.map +1 -1
- package/package.json +5 -8
- package/src/commands/info.command.ts +0 -2
- package/src/commands/refresh-model.command.ts +6 -51
- package/src/commands/refresh-module.command.ts +3 -16
- package/src/commands/test-data.command.ts +29 -6
- package/src/constants/error-messages.ts +2 -1
- package/src/controllers/chatter-message.controller.ts +12 -0
- package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
- package/src/controllers/dashboard.controller.ts +70 -89
- package/src/controllers/datasource-introspection.controller.ts +58 -0
- package/src/controllers/datasource-management.controller.ts +24 -0
- package/src/controllers/gupshup-webhook.controller.ts +91 -0
- package/src/controllers/mcp-audit-log.controller.ts +70 -0
- package/src/controllers/meta-cloud-whatsapp-webhook.controller.ts +155 -0
- package/src/controllers/microsoft-active-directory-authentication.controller.ts +104 -0
- package/src/controllers/model-metadata.controller.ts +1 -1
- package/src/controllers/module-metadata-explorer.controller.ts +83 -0
- package/src/controllers/module-metadata.controller.ts +7 -1
- package/src/controllers/module-package.controller.ts +102 -0
- package/src/controllers/service.controller.ts +4 -7
- package/src/controllers/test.controller.ts +0 -9
- package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
- package/src/dtos/confirm-module-package-import.dto.ts +12 -0
- package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
- package/src/dtos/create-datasource-management.dto.ts +139 -0
- package/src/dtos/create-mcp-audit-log.dto.ts +84 -0
- package/src/dtos/create-model-metadata.dto.ts +5 -9
- package/src/dtos/create-permission-metadata.dto.ts +3 -0
- package/src/dtos/create-role-metadata.dto.ts +11 -1
- package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
- package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
- package/src/dtos/datasource-introspection-mapping.dto.ts +182 -0
- package/src/dtos/import-instructions.dto.ts +11 -1
- package/src/dtos/metadata-explorer-references-query.dto.ts +39 -0
- package/src/dtos/metadata-explorer-search-query.dto.ts +28 -0
- package/src/dtos/metadata-explorer-write.dto.ts +11 -0
- package/src/dtos/run-module-package-build.dto.ts +14 -0
- package/src/dtos/run-module-package-seed.dto.ts +12 -0
- package/src/dtos/update-chatter-note-message.dto.ts +14 -0
- package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
- package/src/dtos/update-mcp-audit-log.dto.ts +83 -0
- package/src/dtos/update-permission-metadata.dto.ts +4 -1
- package/src/dtos/update-role-metadata.dto.ts +21 -1
- package/src/entities/action-metadata.entity.ts +1 -0
- package/src/entities/agent-event.entity.ts +1 -0
- package/src/entities/agent-session.entity.ts +1 -0
- package/src/entities/chatter-message.entity.ts +2 -0
- package/src/entities/dashboard-user-layout.entity.ts +27 -0
- package/src/entities/email-template.entity.ts +1 -0
- package/src/entities/field-metadata.entity.ts +4 -1
- package/src/entities/legacy-common-with-id.entity.ts +2 -2
- package/src/entities/legacy-common.entity.ts +1 -1
- package/src/entities/list-of-values.entity.ts +5 -1
- package/src/entities/locale.entity.ts +1 -0
- package/src/entities/mcp-audit-log.entity.ts +55 -0
- package/src/entities/media.entity.ts +1 -0
- package/src/entities/menu-item-metadata.entity.ts +2 -0
- package/src/entities/model-metadata.entity.ts +6 -5
- package/src/entities/module-metadata.entity.ts +2 -0
- package/src/entities/permission-metadata.entity.ts +2 -2
- package/src/entities/role-metadata.entity.ts +11 -3
- package/src/entities/saved-filters.entity.ts +3 -0
- package/src/entities/scheduled-job.entity.ts +2 -0
- package/src/entities/security-rule.entity.ts +1 -0
- package/src/entities/sms-template.entity.ts +2 -0
- package/src/entities/user-activity-history.entity.ts +1 -0
- package/src/entities/user.entity.ts +15 -1
- package/src/entities/view-metadata.entity.ts +2 -0
- package/src/enums/legacy-table-type.enum.ts +5 -0
- package/src/factories/whatsapp.factory.ts +33 -32
- package/src/helpers/bootstrap.helper.ts +13 -6
- package/src/helpers/command.service.ts +3 -1
- package/src/helpers/field-crud-managers/field-quality-check-fixes.md +208 -0
- package/src/helpers/microsoft-active-directory-oauth.helper.ts +83 -0
- package/src/helpers/model-metadata-helper.service.ts +4 -3
- package/src/helpers/module-metadata-helper.service.ts +33 -20
- package/src/helpers/module.helper.ts +12 -9
- package/src/helpers/solid-registry.ts +15 -36
- package/src/helpers/typeorm-migration-helpers.ts +163 -0
- package/src/helpers/user-helper.ts +5 -1
- package/src/index.ts +42 -10
- package/src/interfaces/datasource-introspection-provider.interface.ts +28 -0
- package/src/interfaces.ts +32 -29
- package/src/listeners/user-registration.listener.ts +49 -6
- package/src/passport-strategies/microsoft-active-directory-oauth.strategy.ts +63 -0
- package/src/repositories/dashboard-user-layout.repository.ts +19 -0
- package/src/repository/mcp-audit-log.repository.ts +17 -0
- package/src/seeders/module-metadata-seeder.service.ts +63 -105
- package/src/seeders/module-test-data.service.ts +80 -3
- package/src/seeders/seed-data/solid-core-metadata.json +5011 -4285
- package/src/seeders/system-fields-seeder.service.ts +1 -1
- package/src/services/authentication.service.ts +360 -47
- package/src/services/chatter-message.service.ts +112 -2
- package/src/services/crud-helper.service.ts +86 -2
- package/src/services/crud.service.ts +26 -119
- package/src/services/dashboard-providers/README.md +603 -0
- package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
- package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +63 -0
- package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +84 -0
- package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +247 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +161 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
- package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
- package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
- package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
- package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
- package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
- package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
- package/src/services/dashboard-runtime.service.ts +488 -0
- package/src/services/dashboard-user-layout.service.ts +20 -0
- package/src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts +185 -0
- package/src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts +95 -0
- package/src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts +160 -0
- package/src/services/datasource-introspection.service.ts +1536 -0
- package/src/services/datasource-management.service.ts +566 -0
- package/src/services/field-metadata.service.ts +21 -1
- package/src/services/import-transaction.service.ts +11 -1
- package/src/services/mcp-audit-log.service.ts +19 -0
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +60 -13
- package/src/services/mediaStorageProviders/file-storage-provider.ts +13 -2
- package/src/services/model-metadata.service.ts +362 -122
- package/src/services/module-metadata-explorer.service.ts +670 -0
- package/src/services/module-metadata.service.ts +148 -10
- package/src/services/module-package.service.ts +1171 -0
- package/src/services/role-metadata.service.ts +14 -0
- package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +50 -0
- package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +49 -0
- package/src/services/setting.service.ts +43 -12
- package/src/services/settings/default-settings-provider.service.ts +167 -0
- package/src/services/solid-introspect.service.ts +19 -34
- package/src/services/solid-ts-morph.service.ts +2 -2
- package/src/services/user.service.ts +62 -1
- package/src/services/whatsapp/GupshupOtpWhatsappService.ts +174 -0
- package/src/services/whatsapp/MetaCloudWhatsappService.ts +253 -0
- package/src/solid-core.module.ts +267 -282
- package/src/subscribers/model-metadata.subscriber.ts +1 -3
- package/src/subscribers/scheduled-job.subscriber.ts +1 -1
- package/src/subscribers/security-rule.subscriber.ts +1 -1
- package/src/testing/README.md +55 -2
- package/src/testing/adapters/ui/playwright-adapter.ts +4 -0
- package/src/testing/steps/ui/index.ts +2 -0
- package/src/testing/steps/ui/manual.step.ts +80 -0
- package/src/winston.logger.ts +5 -7
- package/dist/commands/ingest.command.d.ts +0 -16
- package/dist/commands/ingest.command.d.ts.map +0 -1
- package/dist/commands/ingest.command.js +0 -50
- package/dist/commands/ingest.command.js.map +0 -1
- package/dist/controllers/ai-interaction.controller.d.ts +0 -48
- package/dist/controllers/ai-interaction.controller.d.ts.map +0 -1
- package/dist/controllers/ai-interaction.controller.js +0 -218
- package/dist/controllers/ai-interaction.controller.js.map +0 -1
- package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
- package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-layout.controller.js +0 -204
- package/dist/controllers/dashboard-layout.controller.js.map +0 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
- package/dist/controllers/dashboard-question.controller.d.ts +0 -45
- package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-question.controller.js.map +0 -1
- package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
- package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
- package/dist/controllers/dashboard-variable.controller.js.map +0 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
- package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
- package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
- package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
- package/dist/dtos/create-ai-interaction.dto.d.ts +0 -23
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +0 -1
- package/dist/dtos/create-ai-interaction.dto.js +0 -149
- package/dist/dtos/create-ai-interaction.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
- package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-layout.dto.js +0 -53
- package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
- package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-question.dto.js +0 -105
- package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
- package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
- package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard-variable.dto.js +0 -103
- package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
- package/dist/dtos/create-dashboard.dto.d.ts +0 -17
- package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
- package/dist/dtos/create-dashboard.dto.js +0 -102
- package/dist/dtos/create-dashboard.dto.js.map +0 -1
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
- package/dist/dtos/invoke-ai-prompt.dto.d.ts +0 -5
- package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +0 -1
- package/dist/dtos/invoke-ai-prompt.dto.js.map +0 -1
- package/dist/dtos/update-ai-interaction.dto.d.ts +0 -24
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +0 -1
- package/dist/dtos/update-ai-interaction.dto.js +0 -150
- package/dist/dtos/update-ai-interaction.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
- package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
- package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-question.dto.js +0 -112
- package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
- package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
- package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard-variable.dto.js +0 -101
- package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
- package/dist/dtos/update-dashboard.dto.d.ts +0 -18
- package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
- package/dist/dtos/update-dashboard.dto.js +0 -108
- package/dist/dtos/update-dashboard.dto.js.map +0 -1
- package/dist/entities/ai-interaction.entity.d.ts +0 -24
- package/dist/entities/ai-interaction.entity.d.ts.map +0 -1
- package/dist/entities/ai-interaction.entity.js +0 -116
- package/dist/entities/ai-interaction.entity.js.map +0 -1
- package/dist/entities/dashboard-layout.entity.d.ts +0 -9
- package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-layout.entity.js +0 -41
- package/dist/entities/dashboard-layout.entity.js.map +0 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
- package/dist/entities/dashboard-question.entity.d.ts +0 -17
- package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-question.entity.js +0 -77
- package/dist/entities/dashboard-question.entity.js.map +0 -1
- package/dist/entities/dashboard-variable.entity.d.ts +0 -16
- package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
- package/dist/entities/dashboard-variable.entity.js +0 -79
- package/dist/entities/dashboard-variable.entity.js.map +0 -1
- package/dist/entities/dashboard.entity.d.ts +0 -16
- package/dist/entities/dashboard.entity.d.ts.map +0 -1
- package/dist/entities/dashboard.entity.js +0 -64
- package/dist/entities/dashboard.entity.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +0 -11
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +0 -39
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +0 -8
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-queue-options.js +0 -10
- package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +0 -27
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +0 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +0 -245
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +0 -11
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js +0 -39
- package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts +0 -8
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js +0 -10
- package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +0 -18
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js +0 -103
- package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +0 -11
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +0 -39
- package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +0 -8
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +0 -10
- package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +0 -18
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +0 -1
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +0 -103
- package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +0 -1
- package/dist/mappers/dashboard-mapper.d.ts +0 -6
- package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
- package/dist/mappers/dashboard-mapper.js +0 -62
- package/dist/mappers/dashboard-mapper.js.map +0 -1
- package/dist/repository/ai-interaction.repository.d.ts.map +0 -1
- package/dist/repository/ai-interaction.repository.js.map +0 -1
- package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-layout.repository.js +0 -34
- package/dist/repository/dashboard-layout.repository.js.map +0 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
- package/dist/repository/dashboard-question.repository.d.ts +0 -12
- package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-question.repository.js +0 -34
- package/dist/repository/dashboard-question.repository.js.map +0 -1
- package/dist/repository/dashboard-variable.repository.d.ts +0 -12
- package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
- package/dist/repository/dashboard-variable.repository.js +0 -34
- package/dist/repository/dashboard-variable.repository.js.map +0 -1
- package/dist/repository/dashboard.repository.d.ts +0 -13
- package/dist/repository/dashboard.repository.d.ts.map +0 -1
- package/dist/repository/dashboard.repository.js +0 -104
- package/dist/repository/dashboard.repository.js.map +0 -1
- package/dist/services/ai-interaction.service.d.ts +0 -23
- package/dist/services/ai-interaction.service.d.ts.map +0 -1
- package/dist/services/ai-interaction.service.js +0 -217
- package/dist/services/ai-interaction.service.js.map +0 -1
- package/dist/services/dashboard-layout.service.d.ts +0 -20
- package/dist/services/dashboard-layout.service.d.ts.map +0 -1
- package/dist/services/dashboard-layout.service.js +0 -120
- package/dist/services/dashboard-layout.service.js.map +0 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
- package/dist/services/dashboard-question.service.d.ts +0 -23
- package/dist/services/dashboard-question.service.d.ts.map +0 -1
- package/dist/services/dashboard-question.service.js +0 -135
- package/dist/services/dashboard-question.service.js.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
- package/dist/services/dashboard-variable.service.d.ts +0 -13
- package/dist/services/dashboard-variable.service.d.ts.map +0 -1
- package/dist/services/dashboard-variable.service.js.map +0 -1
- package/dist/services/dashboard.service.d.ts +0 -29
- package/dist/services/dashboard.service.d.ts.map +0 -1
- package/dist/services/dashboard.service.js +0 -171
- package/dist/services/dashboard.service.js.map +0 -1
- package/dist/services/database/database-bootstrap.service.d.ts +0 -12
- package/dist/services/database/database-bootstrap.service.d.ts.map +0 -1
- package/dist/services/database/database-bootstrap.service.js +0 -115
- package/dist/services/database/database-bootstrap.service.js.map +0 -1
- package/dist/services/genai/ingest-metadata.service.d.ts +0 -38
- package/dist/services/genai/ingest-metadata.service.d.ts.map +0 -1
- package/dist/services/genai/ingest-metadata.service.js +0 -542
- package/dist/services/genai/ingest-metadata.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +0 -9
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +0 -39
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
- package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
- package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/r2r-helper.service.d.ts +0 -9
- package/dist/services/genai/r2r-helper.service.d.ts.map +0 -1
- package/dist/services/genai/r2r-helper.service.js +0 -40
- package/dist/services/genai/r2r-helper.service.js.map +0 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
- package/dist/services/question-data-providers/helpers.d.ts +0 -7
- package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
- package/dist/services/question-data-providers/helpers.js +0 -25
- package/dist/services/question-data-providers/helpers.js.map +0 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
- package/dist/services/sql-expression-resolver.service.d.ts +0 -12
- package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
- package/dist/services/sql-expression-resolver.service.js +0 -121
- package/dist/services/sql-expression-resolver.service.js.map +0 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-question.subscriber.js +0 -72
- package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
- package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
- package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
- package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
- package/dist/subscribers/dashboard.subscriber.js +0 -71
- package/dist/subscribers/dashboard.subscriber.js.map +0 -1
- package/sql/default/mariadb/proc_CleanupModelMetadata.sql +0 -153
- package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +0 -56
- package/sql/default/mssql/proc_CleanupModuleMetadata.sql +0 -78
- package/sql/default/mysql/proc_CleanupModelMetadata.sql +0 -153
- package/sql/default/mysql/proc_CleanupModuleMetadata.sql +0 -56
- package/sql/default/postgres/proc_CleanupModelMetadata.sql +0 -148
- package/sql/default/postgres/proc_CleanupModuleMetadata.sql +0 -50
- package/sql/default/postgres/scratchpad.sql.txt +0 -12
- package/src/commands/ingest.command.ts +0 -36
- package/src/controllers/ai-interaction.controller.ts +0 -112
- package/src/controllers/dashboard-layout.controller.ts +0 -106
- package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
- package/src/controllers/dashboard-question.controller.ts +0 -104
- package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
- package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
- package/src/dtos/create-ai-interaction.dto.ts +0 -89
- package/src/dtos/create-dashboard-layout.dto.ts +0 -31
- package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
- package/src/dtos/create-dashboard-question.dto.ts +0 -62
- package/src/dtos/create-dashboard-variable.dto.ts +0 -60
- package/src/dtos/create-dashboard.dto.ts +0 -61
- package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
- package/src/dtos/invoke-ai-prompt.dto.ts +0 -10
- package/src/dtos/update-ai-interaction.dto.ts +0 -93
- package/src/dtos/update-dashboard-layout.dto.ts +0 -30
- package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
- package/src/dtos/update-dashboard-question.dto.ts +0 -67
- package/src/dtos/update-dashboard-variable.dto.ts +0 -58
- package/src/dtos/update-dashboard.dto.ts +0 -65
- package/src/entities/ai-interaction.entity.ts +0 -71
- package/src/entities/dashboard-layout.entity.ts +0 -18
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
- package/src/entities/dashboard-question.entity.ts +0 -46
- package/src/entities/dashboard-variable.entity.ts +0 -44
- package/src/entities/dashboard.entity.ts +0 -36
- package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +0 -22
- package/src/jobs/database/trigger-mcp-client-queue-options.ts +0 -9
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +0 -311
- package/src/jobs/rabbitmq/trigger-mcp-client-publisher.service.ts +0 -22
- package/src/jobs/rabbitmq/trigger-mcp-client-queue-options.ts +0 -9
- package/src/jobs/rabbitmq/trigger-mcp-client-subscriber.service.ts +0 -104
- package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +0 -23
- package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +0 -9
- package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +0 -98
- package/src/mappers/dashboard-mapper.ts +0 -53
- package/src/repository/ai-interaction.repository.ts +0 -17
- package/src/repository/dashboard-layout.repository.ts +0 -17
- package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
- package/src/repository/dashboard-question.repository.ts +0 -17
- package/src/repository/dashboard-variable.repository.ts +0 -17
- package/src/repository/dashboard.repository.ts +0 -101
- package/src/services/ai-interaction.service.ts +0 -239
- package/src/services/dashboard-layout.service.ts +0 -111
- package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
- package/src/services/dashboard-question.service.ts +0 -150
- package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
- package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
- package/src/services/dashboard-variable.service.ts +0 -27
- package/src/services/dashboard.service.ts +0 -148
- package/src/services/database/database-bootstrap.service.ts +0 -91
- package/src/services/genai/ingest-metadata.service.ts +0 -798
- package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +0 -33
- package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
- package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
- package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
- package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
- package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
- package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
- package/src/services/genai/r2r-helper.service.ts +0 -37
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
- package/src/services/question-data-providers/helpers.ts +0 -30
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
- package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
- package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
- package/src/services/sql-expression-resolver.service.ts +0 -140
- package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
- package/src/subscribers/dashboard-question.subscriber.ts +0 -62
- package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
- package/src/subscribers/dashboard.subscriber.ts +0 -62
package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MssqlDatasourceIntrospectionProviderService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let MssqlDatasourceIntrospectionProviderService = class MssqlDatasourceIntrospectionProviderService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.type = "mssql";
|
|
14
|
+
}
|
|
15
|
+
supports(type) {
|
|
16
|
+
return type?.toLowerCase() === this.type;
|
|
17
|
+
}
|
|
18
|
+
async listTables(dataSource) {
|
|
19
|
+
const rows = await dataSource.query(`
|
|
20
|
+
SELECT
|
|
21
|
+
TABLE_SCHEMA AS tableSchema,
|
|
22
|
+
TABLE_NAME AS tableName
|
|
23
|
+
FROM INFORMATION_SCHEMA.TABLES
|
|
24
|
+
WHERE TABLE_TYPE = 'BASE TABLE'
|
|
25
|
+
AND TABLE_SCHEMA NOT IN ('sys', 'INFORMATION_SCHEMA')
|
|
26
|
+
ORDER BY TABLE_SCHEMA, TABLE_NAME
|
|
27
|
+
`);
|
|
28
|
+
return rows.map((row) => ({
|
|
29
|
+
tableSchema: row.tableSchema ?? null,
|
|
30
|
+
tableName: row.tableName,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
async listColumns(dataSource) {
|
|
34
|
+
const rows = await dataSource.query(`
|
|
35
|
+
SELECT
|
|
36
|
+
schema_name(t.schema_id) AS tableSchema,
|
|
37
|
+
t.name AS tableName,
|
|
38
|
+
c.name AS columnName,
|
|
39
|
+
ty.name AS dataType,
|
|
40
|
+
c.is_identity AS isAutoGenerated,
|
|
41
|
+
CASE WHEN c.is_nullable = 1 THEN 'YES' ELSE 'NO' END AS isNullable,
|
|
42
|
+
dc.definition AS defaultValue,
|
|
43
|
+
CASE
|
|
44
|
+
WHEN ty.name IN ('nchar', 'nvarchar') AND c.max_length > 0 THEN c.max_length / 2
|
|
45
|
+
ELSE c.max_length
|
|
46
|
+
END AS characterMaximumLength,
|
|
47
|
+
c.precision AS numericPrecision,
|
|
48
|
+
c.scale AS numericScale,
|
|
49
|
+
c.column_id AS ordinalPosition
|
|
50
|
+
FROM sys.tables t
|
|
51
|
+
INNER JOIN sys.columns c ON c.object_id = t.object_id
|
|
52
|
+
INNER JOIN sys.types ty ON ty.user_type_id = c.user_type_id
|
|
53
|
+
LEFT JOIN sys.default_constraints dc ON dc.object_id = c.default_object_id
|
|
54
|
+
WHERE schema_name(t.schema_id) NOT IN ('sys', 'INFORMATION_SCHEMA')
|
|
55
|
+
ORDER BY schema_name(t.schema_id), t.name, c.column_id
|
|
56
|
+
`);
|
|
57
|
+
return rows.map((row) => ({
|
|
58
|
+
tableSchema: row.tableSchema ?? null,
|
|
59
|
+
tableName: row.tableName,
|
|
60
|
+
columnName: row.columnName,
|
|
61
|
+
dataType: row.dataType,
|
|
62
|
+
isAutoGenerated: Boolean(row.isAutoGenerated),
|
|
63
|
+
isNullable: String(row.isNullable).toUpperCase() === "YES",
|
|
64
|
+
defaultValue: row.defaultValue ?? null,
|
|
65
|
+
characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),
|
|
66
|
+
numericPrecision: this.toNumberOrNull(row.numericPrecision),
|
|
67
|
+
numericScale: this.toNumberOrNull(row.numericScale),
|
|
68
|
+
ordinalPosition: this.toNumberOrNull(row.ordinalPosition),
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
async getTableDefinition(dataSource, table) {
|
|
72
|
+
const rows = await dataSource.query(`
|
|
73
|
+
DECLARE @schemaName NVARCHAR(128) = @0;
|
|
74
|
+
DECLARE @tableName NVARCHAR(128) = @1;
|
|
75
|
+
|
|
76
|
+
WITH target_table AS (
|
|
77
|
+
SELECT t.object_id, s.name AS schema_name, t.name AS table_name
|
|
78
|
+
FROM sys.tables t
|
|
79
|
+
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
|
|
80
|
+
WHERE t.name = @tableName
|
|
81
|
+
AND (@schemaName IS NULL OR s.name = @schemaName)
|
|
82
|
+
),
|
|
83
|
+
column_lines AS (
|
|
84
|
+
SELECT
|
|
85
|
+
c.column_id,
|
|
86
|
+
' [' + c.name + '] '
|
|
87
|
+
+ UPPER(ty.name)
|
|
88
|
+
+ CASE
|
|
89
|
+
WHEN ty.name IN ('varchar', 'char', 'varbinary', 'binary') THEN
|
|
90
|
+
'(' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length AS VARCHAR(16)) END + ')'
|
|
91
|
+
WHEN ty.name IN ('nvarchar', 'nchar') THEN
|
|
92
|
+
'(' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length / 2 AS VARCHAR(16)) END + ')'
|
|
93
|
+
WHEN ty.name IN ('decimal', 'numeric') THEN
|
|
94
|
+
'(' + CAST(c.precision AS VARCHAR(16)) + ',' + CAST(c.scale AS VARCHAR(16)) + ')'
|
|
95
|
+
WHEN ty.name IN ('datetime2', 'datetimeoffset', 'time') THEN
|
|
96
|
+
'(' + CAST(c.scale AS VARCHAR(16)) + ')'
|
|
97
|
+
ELSE
|
|
98
|
+
''
|
|
99
|
+
END
|
|
100
|
+
+ CASE
|
|
101
|
+
WHEN ic.object_id IS NOT NULL THEN
|
|
102
|
+
' IDENTITY(' + CAST(CONVERT(BIGINT, ic.seed_value) AS VARCHAR(32)) + ',' + CAST(CONVERT(BIGINT, ic.increment_value) AS VARCHAR(32)) + ')'
|
|
103
|
+
ELSE
|
|
104
|
+
''
|
|
105
|
+
END
|
|
106
|
+
+ CASE
|
|
107
|
+
WHEN dc.definition IS NOT NULL THEN ' DEFAULT ' + dc.definition
|
|
108
|
+
ELSE ''
|
|
109
|
+
END
|
|
110
|
+
+ CASE
|
|
111
|
+
WHEN c.is_nullable = 1 THEN ' NULL'
|
|
112
|
+
ELSE ' NOT NULL'
|
|
113
|
+
END AS line
|
|
114
|
+
FROM target_table tt
|
|
115
|
+
INNER JOIN sys.columns c ON c.object_id = tt.object_id
|
|
116
|
+
INNER JOIN sys.types ty ON ty.user_type_id = c.user_type_id
|
|
117
|
+
LEFT JOIN sys.identity_columns ic
|
|
118
|
+
ON ic.object_id = c.object_id
|
|
119
|
+
AND ic.column_id = c.column_id
|
|
120
|
+
LEFT JOIN sys.default_constraints dc ON dc.object_id = c.default_object_id
|
|
121
|
+
),
|
|
122
|
+
constraint_lines AS (
|
|
123
|
+
SELECT
|
|
124
|
+
kc.name AS constraint_name,
|
|
125
|
+
' CONSTRAINT [' + kc.name + '] PRIMARY KEY ('
|
|
126
|
+
+ STUFF((
|
|
127
|
+
SELECT ', [' + c.name + ']'
|
|
128
|
+
FROM sys.index_columns ic
|
|
129
|
+
INNER JOIN sys.columns c
|
|
130
|
+
ON c.object_id = ic.object_id
|
|
131
|
+
AND c.column_id = ic.column_id
|
|
132
|
+
WHERE ic.object_id = kc.parent_object_id
|
|
133
|
+
AND ic.index_id = kc.unique_index_id
|
|
134
|
+
ORDER BY ic.key_ordinal
|
|
135
|
+
FOR XML PATH(''), TYPE
|
|
136
|
+
).value('.', 'NVARCHAR(MAX)'), 1, 2, '')
|
|
137
|
+
+ ')' AS line
|
|
138
|
+
FROM target_table tt
|
|
139
|
+
INNER JOIN sys.key_constraints kc ON kc.parent_object_id = tt.object_id
|
|
140
|
+
WHERE kc.type = 'PK'
|
|
141
|
+
)
|
|
142
|
+
SELECT
|
|
143
|
+
'CREATE TABLE [' + tt.schema_name + '].[' + tt.table_name + '] (' + CHAR(10)
|
|
144
|
+
+ ISNULL((
|
|
145
|
+
SELECT STUFF((
|
|
146
|
+
SELECT ',' + CHAR(10) + cl.line
|
|
147
|
+
FROM column_lines cl
|
|
148
|
+
ORDER BY cl.column_id
|
|
149
|
+
FOR XML PATH(''), TYPE
|
|
150
|
+
).value('.', 'NVARCHAR(MAX)'), 1, 2, '')
|
|
151
|
+
), '')
|
|
152
|
+
+ ISNULL((
|
|
153
|
+
SELECT CASE
|
|
154
|
+
WHEN EXISTS (SELECT 1 FROM constraint_lines)
|
|
155
|
+
THEN ',' + CHAR(10) + STUFF((
|
|
156
|
+
SELECT ',' + CHAR(10) + cn.line
|
|
157
|
+
FROM constraint_lines cn
|
|
158
|
+
ORDER BY cn.constraint_name
|
|
159
|
+
FOR XML PATH(''), TYPE
|
|
160
|
+
).value('.', 'NVARCHAR(MAX)'), 1, 2, '')
|
|
161
|
+
ELSE ''
|
|
162
|
+
END
|
|
163
|
+
), '')
|
|
164
|
+
+ CHAR(10) + ');' AS ddl
|
|
165
|
+
FROM target_table tt
|
|
166
|
+
`, [table.tableSchema, table.tableName]);
|
|
167
|
+
return rows?.[0]?.ddl ?? null;
|
|
168
|
+
}
|
|
169
|
+
toNumberOrNull(value) {
|
|
170
|
+
if (value === null || value === undefined || value === "") {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
const parsed = Number(value);
|
|
174
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
exports.MssqlDatasourceIntrospectionProviderService = MssqlDatasourceIntrospectionProviderService;
|
|
178
|
+
exports.MssqlDatasourceIntrospectionProviderService = MssqlDatasourceIntrospectionProviderService = __decorate([
|
|
179
|
+
(0, common_1.Injectable)()
|
|
180
|
+
], MssqlDatasourceIntrospectionProviderService);
|
|
181
|
+
//# sourceMappingURL=mssql-datasource-introspection-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mssql-datasource-introspection-provider.service.js","sourceRoot":"","sources":["../../../src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AASrC,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IAAjD;QACM,SAAI,GAAG,OAAO,CAAC;IA8K5B,CAAC;IA5KG,QAAQ,CAAC,IAAY;QACjB,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAsB;QACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;SAQnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAsB;QACpC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;SAsBnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;YAC1D,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACtC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACvE,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC3D,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;YACnD,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;SAC5D,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAsB,EAAE,KAAsC;QACnF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8FC,EACD,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CACvC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC;IAClC,CAAC;IAEO,cAAc,CAAC,KAAc;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;CACJ,CAAA;AA/KY,kGAA2C;sDAA3C,2CAA2C;IADvD,IAAA,mBAAU,GAAE;GACA,2CAA2C,CA+KvD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DataSource } from \"typeorm\";\nimport {\n DatasourceIntrospectionColumn,\n DatasourceIntrospectionProvider,\n DatasourceIntrospectionTableRef,\n} from \"src/interfaces/datasource-introspection-provider.interface\";\n\n@Injectable()\nexport class MssqlDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {\n readonly type = \"mssql\";\n\n supports(type: string) {\n return type?.toLowerCase() === this.type;\n }\n\n async listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]> {\n const rows = await dataSource.query(`\n SELECT\n TABLE_SCHEMA AS tableSchema,\n TABLE_NAME AS tableName\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_TYPE = 'BASE TABLE'\n AND TABLE_SCHEMA NOT IN ('sys', 'INFORMATION_SCHEMA')\n ORDER BY TABLE_SCHEMA, TABLE_NAME\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n }));\n }\n\n async listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]> {\n const rows = await dataSource.query(`\n SELECT\n schema_name(t.schema_id) AS tableSchema,\n t.name AS tableName,\n c.name AS columnName,\n ty.name AS dataType,\n c.is_identity AS isAutoGenerated,\n CASE WHEN c.is_nullable = 1 THEN 'YES' ELSE 'NO' END AS isNullable,\n dc.definition AS defaultValue,\n CASE\n WHEN ty.name IN ('nchar', 'nvarchar') AND c.max_length > 0 THEN c.max_length / 2\n ELSE c.max_length\n END AS characterMaximumLength,\n c.precision AS numericPrecision,\n c.scale AS numericScale,\n c.column_id AS ordinalPosition\n FROM sys.tables t\n INNER JOIN sys.columns c ON c.object_id = t.object_id\n INNER JOIN sys.types ty ON ty.user_type_id = c.user_type_id\n LEFT JOIN sys.default_constraints dc ON dc.object_id = c.default_object_id\n WHERE schema_name(t.schema_id) NOT IN ('sys', 'INFORMATION_SCHEMA')\n ORDER BY schema_name(t.schema_id), t.name, c.column_id\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n columnName: row.columnName,\n dataType: row.dataType,\n isAutoGenerated: Boolean(row.isAutoGenerated),\n isNullable: String(row.isNullable).toUpperCase() === \"YES\",\n defaultValue: row.defaultValue ?? null,\n characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),\n numericPrecision: this.toNumberOrNull(row.numericPrecision),\n numericScale: this.toNumberOrNull(row.numericScale),\n ordinalPosition: this.toNumberOrNull(row.ordinalPosition),\n }));\n }\n\n async getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null> {\n const rows = await dataSource.query(\n `\n DECLARE @schemaName NVARCHAR(128) = @0;\n DECLARE @tableName NVARCHAR(128) = @1;\n\n WITH target_table AS (\n SELECT t.object_id, s.name AS schema_name, t.name AS table_name\n FROM sys.tables t\n INNER JOIN sys.schemas s ON s.schema_id = t.schema_id\n WHERE t.name = @tableName\n AND (@schemaName IS NULL OR s.name = @schemaName)\n ),\n column_lines AS (\n SELECT\n c.column_id,\n ' [' + c.name + '] '\n + UPPER(ty.name)\n + CASE\n WHEN ty.name IN ('varchar', 'char', 'varbinary', 'binary') THEN\n '(' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length AS VARCHAR(16)) END + ')'\n WHEN ty.name IN ('nvarchar', 'nchar') THEN\n '(' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length / 2 AS VARCHAR(16)) END + ')'\n WHEN ty.name IN ('decimal', 'numeric') THEN\n '(' + CAST(c.precision AS VARCHAR(16)) + ',' + CAST(c.scale AS VARCHAR(16)) + ')'\n WHEN ty.name IN ('datetime2', 'datetimeoffset', 'time') THEN\n '(' + CAST(c.scale AS VARCHAR(16)) + ')'\n ELSE\n ''\n END\n + CASE\n WHEN ic.object_id IS NOT NULL THEN\n ' IDENTITY(' + CAST(CONVERT(BIGINT, ic.seed_value) AS VARCHAR(32)) + ',' + CAST(CONVERT(BIGINT, ic.increment_value) AS VARCHAR(32)) + ')'\n ELSE\n ''\n END\n + CASE\n WHEN dc.definition IS NOT NULL THEN ' DEFAULT ' + dc.definition\n ELSE ''\n END\n + CASE\n WHEN c.is_nullable = 1 THEN ' NULL'\n ELSE ' NOT NULL'\n END AS line\n FROM target_table tt\n INNER JOIN sys.columns c ON c.object_id = tt.object_id\n INNER JOIN sys.types ty ON ty.user_type_id = c.user_type_id\n LEFT JOIN sys.identity_columns ic\n ON ic.object_id = c.object_id\n AND ic.column_id = c.column_id\n LEFT JOIN sys.default_constraints dc ON dc.object_id = c.default_object_id\n ),\n constraint_lines AS (\n SELECT\n kc.name AS constraint_name,\n ' CONSTRAINT [' + kc.name + '] PRIMARY KEY ('\n + STUFF((\n SELECT ', [' + c.name + ']'\n FROM sys.index_columns ic\n INNER JOIN sys.columns c\n ON c.object_id = ic.object_id\n AND c.column_id = ic.column_id\n WHERE ic.object_id = kc.parent_object_id\n AND ic.index_id = kc.unique_index_id\n ORDER BY ic.key_ordinal\n FOR XML PATH(''), TYPE\n ).value('.', 'NVARCHAR(MAX)'), 1, 2, '')\n + ')' AS line\n FROM target_table tt\n INNER JOIN sys.key_constraints kc ON kc.parent_object_id = tt.object_id\n WHERE kc.type = 'PK'\n )\n SELECT\n 'CREATE TABLE [' + tt.schema_name + '].[' + tt.table_name + '] (' + CHAR(10)\n + ISNULL((\n SELECT STUFF((\n SELECT ',' + CHAR(10) + cl.line\n FROM column_lines cl\n ORDER BY cl.column_id\n FOR XML PATH(''), TYPE\n ).value('.', 'NVARCHAR(MAX)'), 1, 2, '')\n ), '')\n + ISNULL((\n SELECT CASE\n WHEN EXISTS (SELECT 1 FROM constraint_lines)\n THEN ',' + CHAR(10) + STUFF((\n SELECT ',' + CHAR(10) + cn.line\n FROM constraint_lines cn\n ORDER BY cn.constraint_name\n FOR XML PATH(''), TYPE\n ).value('.', 'NVARCHAR(MAX)'), 1, 2, '')\n ELSE ''\n END\n ), '')\n + CHAR(10) + ');' AS ddl\n FROM target_table tt\n `,\n [table.tableSchema, table.tableName],\n );\n\n return rows?.[0]?.ddl ?? null;\n }\n\n private toNumberOrNull(value: unknown) {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n}\n"]}
|
package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataSource } from "typeorm";
|
|
2
|
+
import { DatasourceIntrospectionColumn, DatasourceIntrospectionProvider, DatasourceIntrospectionTableRef } from "../../interfaces/datasource-introspection-provider.interface";
|
|
3
|
+
export declare class MysqlDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {
|
|
4
|
+
readonly type = "mysql";
|
|
5
|
+
supports(type: string): boolean;
|
|
6
|
+
listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]>;
|
|
7
|
+
listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]>;
|
|
8
|
+
getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null>;
|
|
9
|
+
private toNumberOrNull;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=mysql-datasource-introspection-provider.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql-datasource-introspection-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACH,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAClC,MAAM,4DAA4D,CAAC;AAEpE,qBACa,2CAA4C,YAAW,+BAA+B;IAC/F,QAAQ,CAAC,IAAI,WAAW;IAExB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIf,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAiB9E,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAkC7E,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBhH,OAAO,CAAC,cAAc;CAQzB"}
|
package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MysqlDatasourceIntrospectionProviderService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let MysqlDatasourceIntrospectionProviderService = class MysqlDatasourceIntrospectionProviderService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.type = "mysql";
|
|
14
|
+
}
|
|
15
|
+
supports(type) {
|
|
16
|
+
return type?.toLowerCase() === this.type;
|
|
17
|
+
}
|
|
18
|
+
async listTables(dataSource) {
|
|
19
|
+
const rows = await dataSource.query(`
|
|
20
|
+
SELECT
|
|
21
|
+
TABLE_SCHEMA AS tableSchema,
|
|
22
|
+
TABLE_NAME AS tableName
|
|
23
|
+
FROM INFORMATION_SCHEMA.TABLES
|
|
24
|
+
WHERE TABLE_TYPE = 'BASE TABLE'
|
|
25
|
+
AND TABLE_SCHEMA = DATABASE()
|
|
26
|
+
ORDER BY TABLE_SCHEMA, TABLE_NAME
|
|
27
|
+
`);
|
|
28
|
+
return rows.map((row) => ({
|
|
29
|
+
tableSchema: row.tableSchema ?? null,
|
|
30
|
+
tableName: row.tableName,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
async listColumns(dataSource) {
|
|
34
|
+
const rows = await dataSource.query(`
|
|
35
|
+
SELECT
|
|
36
|
+
TABLE_SCHEMA AS tableSchema,
|
|
37
|
+
TABLE_NAME AS tableName,
|
|
38
|
+
COLUMN_NAME AS columnName,
|
|
39
|
+
DATA_TYPE AS dataType,
|
|
40
|
+
EXTRA AS extra,
|
|
41
|
+
IS_NULLABLE AS isNullable,
|
|
42
|
+
COLUMN_DEFAULT AS defaultValue,
|
|
43
|
+
CHARACTER_MAXIMUM_LENGTH AS characterMaximumLength,
|
|
44
|
+
NUMERIC_PRECISION AS numericPrecision,
|
|
45
|
+
NUMERIC_SCALE AS numericScale,
|
|
46
|
+
ORDINAL_POSITION AS ordinalPosition
|
|
47
|
+
FROM INFORMATION_SCHEMA.COLUMNS
|
|
48
|
+
WHERE TABLE_SCHEMA = DATABASE()
|
|
49
|
+
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
|
|
50
|
+
`);
|
|
51
|
+
return rows.map((row) => ({
|
|
52
|
+
tableSchema: row.tableSchema ?? null,
|
|
53
|
+
tableName: row.tableName,
|
|
54
|
+
columnName: row.columnName,
|
|
55
|
+
dataType: row.dataType,
|
|
56
|
+
isAutoGenerated: String(row.extra ?? "").toLowerCase().includes("auto_increment"),
|
|
57
|
+
isNullable: String(row.isNullable).toUpperCase() === "YES",
|
|
58
|
+
defaultValue: row.defaultValue ?? null,
|
|
59
|
+
characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),
|
|
60
|
+
numericPrecision: this.toNumberOrNull(row.numericPrecision),
|
|
61
|
+
numericScale: this.toNumberOrNull(row.numericScale),
|
|
62
|
+
ordinalPosition: this.toNumberOrNull(row.ordinalPosition),
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
async getTableDefinition(dataSource, table) {
|
|
66
|
+
const schemaName = table.tableSchema ?? dataSource.options.database;
|
|
67
|
+
const rows = await dataSource.query(`SHOW CREATE TABLE \`${schemaName}\`.\`${table.tableName}\``);
|
|
68
|
+
const firstRow = rows?.[0];
|
|
69
|
+
if (!firstRow || typeof firstRow !== "object") {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const ddlKey = Object.keys(firstRow).find((key) => key.toLowerCase().startsWith("create table"));
|
|
73
|
+
if (!ddlKey) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return String(firstRow[ddlKey] ?? "").trim() || null;
|
|
77
|
+
}
|
|
78
|
+
toNumberOrNull(value) {
|
|
79
|
+
if (value === null || value === undefined || value === "") {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const parsed = Number(value);
|
|
83
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
exports.MysqlDatasourceIntrospectionProviderService = MysqlDatasourceIntrospectionProviderService;
|
|
87
|
+
exports.MysqlDatasourceIntrospectionProviderService = MysqlDatasourceIntrospectionProviderService = __decorate([
|
|
88
|
+
(0, common_1.Injectable)()
|
|
89
|
+
], MysqlDatasourceIntrospectionProviderService);
|
|
90
|
+
//# sourceMappingURL=mysql-datasource-introspection-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql-datasource-introspection-provider.service.js","sourceRoot":"","sources":["../../../src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AASrC,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IAAjD;QACM,SAAI,GAAG,OAAO,CAAC;IAoF5B,CAAC;IAlFG,QAAQ,CAAC,IAAY;QACjB,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAsB;QACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;SAQnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAsB;QACpC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;SAgBnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjF,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;YAC1D,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACtC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACvE,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC3D,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;YACnD,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;SAC5D,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAsB,EAAE,KAAsC;QACnF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAC/B,uBAAuB,UAAU,QAAQ,KAAK,CAAC,SAAS,IAAI,CAC/D,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACzD,CAAC;IAEO,cAAc,CAAC,KAAc;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;CACJ,CAAA;AArFY,kGAA2C;sDAA3C,2CAA2C;IADvD,IAAA,mBAAU,GAAE;GACA,2CAA2C,CAqFvD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DataSource } from \"typeorm\";\nimport {\n DatasourceIntrospectionColumn,\n DatasourceIntrospectionProvider,\n DatasourceIntrospectionTableRef,\n} from \"src/interfaces/datasource-introspection-provider.interface\";\n\n@Injectable()\nexport class MysqlDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {\n readonly type = \"mysql\";\n\n supports(type: string) {\n return type?.toLowerCase() === this.type;\n }\n\n async listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]> {\n const rows = await dataSource.query(`\n SELECT\n TABLE_SCHEMA AS tableSchema,\n TABLE_NAME AS tableName\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_TYPE = 'BASE TABLE'\n AND TABLE_SCHEMA = DATABASE()\n ORDER BY TABLE_SCHEMA, TABLE_NAME\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n }));\n }\n\n async listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]> {\n const rows = await dataSource.query(`\n SELECT\n TABLE_SCHEMA AS tableSchema,\n TABLE_NAME AS tableName,\n COLUMN_NAME AS columnName,\n DATA_TYPE AS dataType,\n EXTRA AS extra,\n IS_NULLABLE AS isNullable,\n COLUMN_DEFAULT AS defaultValue,\n CHARACTER_MAXIMUM_LENGTH AS characterMaximumLength,\n NUMERIC_PRECISION AS numericPrecision,\n NUMERIC_SCALE AS numericScale,\n ORDINAL_POSITION AS ordinalPosition\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE TABLE_SCHEMA = DATABASE()\n ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n columnName: row.columnName,\n dataType: row.dataType,\n isAutoGenerated: String(row.extra ?? \"\").toLowerCase().includes(\"auto_increment\"),\n isNullable: String(row.isNullable).toUpperCase() === \"YES\",\n defaultValue: row.defaultValue ?? null,\n characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),\n numericPrecision: this.toNumberOrNull(row.numericPrecision),\n numericScale: this.toNumberOrNull(row.numericScale),\n ordinalPosition: this.toNumberOrNull(row.ordinalPosition),\n }));\n }\n\n async getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null> {\n const schemaName = table.tableSchema ?? dataSource.options.database;\n const rows = await dataSource.query(\n `SHOW CREATE TABLE \\`${schemaName}\\`.\\`${table.tableName}\\``,\n );\n\n const firstRow = rows?.[0];\n if (!firstRow || typeof firstRow !== \"object\") {\n return null;\n }\n\n const ddlKey = Object.keys(firstRow).find((key) => key.toLowerCase().startsWith(\"create table\"));\n if (!ddlKey) {\n return null;\n }\n\n return String(firstRow[ddlKey] ?? \"\").trim() || null;\n }\n\n private toNumberOrNull(value: unknown) {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataSource } from "typeorm";
|
|
2
|
+
import { DatasourceIntrospectionColumn, DatasourceIntrospectionProvider, DatasourceIntrospectionTableRef } from "../../interfaces/datasource-introspection-provider.interface";
|
|
3
|
+
export declare class PostgresDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {
|
|
4
|
+
readonly type = "postgres";
|
|
5
|
+
supports(type: string): boolean;
|
|
6
|
+
listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]>;
|
|
7
|
+
listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]>;
|
|
8
|
+
getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null>;
|
|
9
|
+
private toNumberOrNull;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=postgres-datasource-introspection-provider.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-datasource-introspection-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACH,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAClC,MAAM,4DAA4D,CAAC;AAEpE,qBACa,8CAA+C,YAAW,+BAA+B;IAClG,QAAQ,CAAC,IAAI,cAAc;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIf,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAiB9E,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAsC7E,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgFhH,OAAO,CAAC,cAAc;CAQzB"}
|
package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PostgresDatasourceIntrospectionProviderService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let PostgresDatasourceIntrospectionProviderService = class PostgresDatasourceIntrospectionProviderService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.type = "postgres";
|
|
14
|
+
}
|
|
15
|
+
supports(type) {
|
|
16
|
+
return type?.toLowerCase() === this.type;
|
|
17
|
+
}
|
|
18
|
+
async listTables(dataSource) {
|
|
19
|
+
const rows = await dataSource.query(`
|
|
20
|
+
SELECT
|
|
21
|
+
TABLE_SCHEMA AS "tableSchema",
|
|
22
|
+
TABLE_NAME AS "tableName"
|
|
23
|
+
FROM INFORMATION_SCHEMA.TABLES
|
|
24
|
+
WHERE TABLE_TYPE = 'BASE TABLE'
|
|
25
|
+
AND TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')
|
|
26
|
+
ORDER BY TABLE_SCHEMA, TABLE_NAME
|
|
27
|
+
`);
|
|
28
|
+
return rows.map((row) => ({
|
|
29
|
+
tableSchema: row.tableSchema ?? null,
|
|
30
|
+
tableName: row.tableName,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
async listColumns(dataSource) {
|
|
34
|
+
const rows = await dataSource.query(`
|
|
35
|
+
SELECT
|
|
36
|
+
TABLE_SCHEMA AS "tableSchema",
|
|
37
|
+
TABLE_NAME AS "tableName",
|
|
38
|
+
COLUMN_NAME AS "columnName",
|
|
39
|
+
DATA_TYPE AS "dataType",
|
|
40
|
+
CASE
|
|
41
|
+
WHEN is_identity = 'YES' THEN true
|
|
42
|
+
WHEN COLUMN_DEFAULT LIKE 'nextval(%' THEN true
|
|
43
|
+
ELSE false
|
|
44
|
+
END AS "isAutoGenerated",
|
|
45
|
+
IS_NULLABLE AS "isNullable",
|
|
46
|
+
COLUMN_DEFAULT AS "defaultValue",
|
|
47
|
+
CHARACTER_MAXIMUM_LENGTH AS "characterMaximumLength",
|
|
48
|
+
NUMERIC_PRECISION AS "numericPrecision",
|
|
49
|
+
NUMERIC_SCALE AS "numericScale",
|
|
50
|
+
ORDINAL_POSITION AS "ordinalPosition"
|
|
51
|
+
FROM INFORMATION_SCHEMA.COLUMNS
|
|
52
|
+
WHERE TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')
|
|
53
|
+
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
|
|
54
|
+
`);
|
|
55
|
+
return rows.map((row) => ({
|
|
56
|
+
tableSchema: row.tableSchema ?? null,
|
|
57
|
+
tableName: row.tableName,
|
|
58
|
+
columnName: row.columnName,
|
|
59
|
+
dataType: row.dataType,
|
|
60
|
+
isAutoGenerated: Boolean(row.isAutoGenerated),
|
|
61
|
+
isNullable: String(row.isNullable).toUpperCase() === "YES",
|
|
62
|
+
defaultValue: row.defaultValue ?? null,
|
|
63
|
+
characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),
|
|
64
|
+
numericPrecision: this.toNumberOrNull(row.numericPrecision),
|
|
65
|
+
numericScale: this.toNumberOrNull(row.numericScale),
|
|
66
|
+
ordinalPosition: this.toNumberOrNull(row.ordinalPosition),
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
async getTableDefinition(dataSource, table) {
|
|
70
|
+
const rows = await dataSource.query(`
|
|
71
|
+
WITH target_table AS (
|
|
72
|
+
SELECT c.oid, n.nspname AS schema_name, c.relname AS table_name
|
|
73
|
+
FROM pg_class c
|
|
74
|
+
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
75
|
+
WHERE c.relkind = 'r'
|
|
76
|
+
AND c.relname = $1
|
|
77
|
+
AND ($2::text IS NULL OR n.nspname = $2)
|
|
78
|
+
LIMIT 1
|
|
79
|
+
),
|
|
80
|
+
column_lines AS (
|
|
81
|
+
SELECT
|
|
82
|
+
a.attnum,
|
|
83
|
+
format(
|
|
84
|
+
' %I %s%s%s%s',
|
|
85
|
+
a.attname,
|
|
86
|
+
format_type(a.atttypid, a.atttypmod),
|
|
87
|
+
CASE
|
|
88
|
+
WHEN a.attidentity = 'a' THEN ' GENERATED ALWAYS AS IDENTITY'
|
|
89
|
+
WHEN a.attidentity = 'd' THEN ' GENERATED BY DEFAULT AS IDENTITY'
|
|
90
|
+
ELSE ''
|
|
91
|
+
END,
|
|
92
|
+
CASE
|
|
93
|
+
WHEN ad.adbin IS NOT NULL THEN ' DEFAULT ' || pg_get_expr(ad.adbin, ad.adrelid)
|
|
94
|
+
ELSE ''
|
|
95
|
+
END,
|
|
96
|
+
CASE
|
|
97
|
+
WHEN a.attnotnull THEN ' NOT NULL'
|
|
98
|
+
ELSE ''
|
|
99
|
+
END
|
|
100
|
+
) AS line
|
|
101
|
+
FROM target_table tt
|
|
102
|
+
INNER JOIN pg_attribute a ON a.attrelid = tt.oid
|
|
103
|
+
LEFT JOIN pg_attrdef ad
|
|
104
|
+
ON ad.adrelid = a.attrelid
|
|
105
|
+
AND ad.adnum = a.attnum
|
|
106
|
+
WHERE a.attnum > 0
|
|
107
|
+
AND NOT a.attisdropped
|
|
108
|
+
),
|
|
109
|
+
constraint_lines AS (
|
|
110
|
+
SELECT
|
|
111
|
+
c.conname,
|
|
112
|
+
format(' CONSTRAINT %I %s', c.conname, pg_get_constraintdef(c.oid, true)) AS line
|
|
113
|
+
FROM target_table tt
|
|
114
|
+
INNER JOIN pg_constraint c ON c.conrelid = tt.oid
|
|
115
|
+
WHERE c.contype IN ('p', 'u', 'f', 'c')
|
|
116
|
+
)
|
|
117
|
+
SELECT format(
|
|
118
|
+
'CREATE TABLE %I.%I (\n%s%s\n);',
|
|
119
|
+
tt.schema_name,
|
|
120
|
+
tt.table_name,
|
|
121
|
+
COALESCE(
|
|
122
|
+
(
|
|
123
|
+
SELECT string_agg(line, ',\n' ORDER BY attnum)
|
|
124
|
+
FROM column_lines
|
|
125
|
+
),
|
|
126
|
+
''
|
|
127
|
+
),
|
|
128
|
+
COALESCE(
|
|
129
|
+
(
|
|
130
|
+
SELECT CASE
|
|
131
|
+
WHEN EXISTS (SELECT 1 FROM constraint_lines)
|
|
132
|
+
THEN ',\n' || string_agg(line, ',\n' ORDER BY conname)
|
|
133
|
+
ELSE ''
|
|
134
|
+
END
|
|
135
|
+
FROM constraint_lines
|
|
136
|
+
),
|
|
137
|
+
''
|
|
138
|
+
)
|
|
139
|
+
) AS ddl
|
|
140
|
+
FROM target_table tt
|
|
141
|
+
`, [table.tableName, table.tableSchema]);
|
|
142
|
+
return rows?.[0]?.ddl ?? null;
|
|
143
|
+
}
|
|
144
|
+
toNumberOrNull(value) {
|
|
145
|
+
if (value === null || value === undefined || value === "") {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const parsed = Number(value);
|
|
149
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
exports.PostgresDatasourceIntrospectionProviderService = PostgresDatasourceIntrospectionProviderService;
|
|
153
|
+
exports.PostgresDatasourceIntrospectionProviderService = PostgresDatasourceIntrospectionProviderService = __decorate([
|
|
154
|
+
(0, common_1.Injectable)()
|
|
155
|
+
], PostgresDatasourceIntrospectionProviderService);
|
|
156
|
+
//# sourceMappingURL=postgres-datasource-introspection-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-datasource-introspection-provider.service.js","sourceRoot":"","sources":["../../../src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AASrC,IAAM,8CAA8C,GAApD,MAAM,8CAA8C;IAApD;QACM,SAAI,GAAG,UAAU,CAAC;IAqJ/B,CAAC;IAnJG,QAAQ,CAAC,IAAY;QACjB,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAsB;QACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;SAQnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAsB;QACpC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;SAoBnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;YAC1D,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACtC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACvE,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC3D,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;YACnD,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;SAC5D,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAsB,EAAE,KAAsC;QACnF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuEC,EACD,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CACvC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC;IAClC,CAAC;IAEO,cAAc,CAAC,KAAc;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;CACJ,CAAA;AAtJY,wGAA8C;yDAA9C,8CAA8C;IAD1D,IAAA,mBAAU,GAAE;GACA,8CAA8C,CAsJ1D","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DataSource } from \"typeorm\";\nimport {\n DatasourceIntrospectionColumn,\n DatasourceIntrospectionProvider,\n DatasourceIntrospectionTableRef,\n} from \"src/interfaces/datasource-introspection-provider.interface\";\n\n@Injectable()\nexport class PostgresDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {\n readonly type = \"postgres\";\n\n supports(type: string) {\n return type?.toLowerCase() === this.type;\n }\n\n async listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]> {\n const rows = await dataSource.query(`\n SELECT\n TABLE_SCHEMA AS \"tableSchema\",\n TABLE_NAME AS \"tableName\"\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_TYPE = 'BASE TABLE'\n AND TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')\n ORDER BY TABLE_SCHEMA, TABLE_NAME\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n }));\n }\n\n async listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]> {\n const rows = await dataSource.query(`\n SELECT\n TABLE_SCHEMA AS \"tableSchema\",\n TABLE_NAME AS \"tableName\",\n COLUMN_NAME AS \"columnName\",\n DATA_TYPE AS \"dataType\",\n CASE\n WHEN is_identity = 'YES' THEN true\n WHEN COLUMN_DEFAULT LIKE 'nextval(%' THEN true\n ELSE false\n END AS \"isAutoGenerated\",\n IS_NULLABLE AS \"isNullable\",\n COLUMN_DEFAULT AS \"defaultValue\",\n CHARACTER_MAXIMUM_LENGTH AS \"characterMaximumLength\",\n NUMERIC_PRECISION AS \"numericPrecision\",\n NUMERIC_SCALE AS \"numericScale\",\n ORDINAL_POSITION AS \"ordinalPosition\"\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')\n ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION\n `);\n\n return rows.map((row: any) => ({\n tableSchema: row.tableSchema ?? null,\n tableName: row.tableName,\n columnName: row.columnName,\n dataType: row.dataType,\n isAutoGenerated: Boolean(row.isAutoGenerated),\n isNullable: String(row.isNullable).toUpperCase() === \"YES\",\n defaultValue: row.defaultValue ?? null,\n characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),\n numericPrecision: this.toNumberOrNull(row.numericPrecision),\n numericScale: this.toNumberOrNull(row.numericScale),\n ordinalPosition: this.toNumberOrNull(row.ordinalPosition),\n }));\n }\n\n async getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null> {\n const rows = await dataSource.query(\n `\n WITH target_table AS (\n SELECT c.oid, n.nspname AS schema_name, c.relname AS table_name\n FROM pg_class c\n INNER JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relkind = 'r'\n AND c.relname = $1\n AND ($2::text IS NULL OR n.nspname = $2)\n LIMIT 1\n ),\n column_lines AS (\n SELECT\n a.attnum,\n format(\n ' %I %s%s%s%s',\n a.attname,\n format_type(a.atttypid, a.atttypmod),\n CASE\n WHEN a.attidentity = 'a' THEN ' GENERATED ALWAYS AS IDENTITY'\n WHEN a.attidentity = 'd' THEN ' GENERATED BY DEFAULT AS IDENTITY'\n ELSE ''\n END,\n CASE\n WHEN ad.adbin IS NOT NULL THEN ' DEFAULT ' || pg_get_expr(ad.adbin, ad.adrelid)\n ELSE ''\n END,\n CASE\n WHEN a.attnotnull THEN ' NOT NULL'\n ELSE ''\n END\n ) AS line\n FROM target_table tt\n INNER JOIN pg_attribute a ON a.attrelid = tt.oid\n LEFT JOIN pg_attrdef ad\n ON ad.adrelid = a.attrelid\n AND ad.adnum = a.attnum\n WHERE a.attnum > 0\n AND NOT a.attisdropped\n ),\n constraint_lines AS (\n SELECT\n c.conname,\n format(' CONSTRAINT %I %s', c.conname, pg_get_constraintdef(c.oid, true)) AS line\n FROM target_table tt\n INNER JOIN pg_constraint c ON c.conrelid = tt.oid\n WHERE c.contype IN ('p', 'u', 'f', 'c')\n )\n SELECT format(\n 'CREATE TABLE %I.%I (\\n%s%s\\n);',\n tt.schema_name,\n tt.table_name,\n COALESCE(\n (\n SELECT string_agg(line, ',\\n' ORDER BY attnum)\n FROM column_lines\n ),\n ''\n ),\n COALESCE(\n (\n SELECT CASE\n WHEN EXISTS (SELECT 1 FROM constraint_lines)\n THEN ',\\n' || string_agg(line, ',\\n' ORDER BY conname)\n ELSE ''\n END\n FROM constraint_lines\n ),\n ''\n )\n ) AS ddl\n FROM target_table tt\n `,\n [table.tableName, table.tableSchema],\n );\n\n return rows?.[0]?.ddl ?? null;\n }\n\n private toNumberOrNull(value: unknown) {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n}\n"]}
|