@solidstarters/solid-core 1.2.193 → 1.2.201
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/fixtures/fixtures-setup.command.d.ts +15 -0
- package/dist/commands/fixtures/fixtures-setup.command.d.ts.map +1 -0
- package/dist/commands/fixtures/fixtures-setup.command.js +58 -0
- package/dist/commands/fixtures/fixtures-setup.command.js.map +1 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.d.ts +16 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.d.ts.map +1 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.js +59 -0
- package/dist/commands/fixtures/fixtures-tear-down.command.js.map +1 -0
- package/dist/commands/mcp.command.d.ts +20 -0
- package/dist/commands/mcp.command.d.ts.map +1 -0
- package/dist/commands/mcp.command.js +208 -0
- package/dist/commands/mcp.command.js.map +1 -0
- package/dist/commands/refresh-model.command.d.ts +8 -5
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +36 -0
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/remove-fields.command.js +1 -1
- package/dist/commands/remove-fields.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts +2 -0
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +28 -1
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +4 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/controllers/authentication.controller.js +1 -1
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/email-template.controller.js +1 -1
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/field-metadata.controller.d.ts +136 -4
- package/dist/controllers/field-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/field-metadata.controller.js +14 -1
- package/dist/controllers/field-metadata.controller.js.map +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.js +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
- package/dist/controllers/model-metadata.controller.js +1 -1
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +43 -0
- package/dist/controllers/model-sequence.controller.d.ts.map +1 -0
- package/dist/controllers/model-sequence.controller.js +179 -0
- package/dist/controllers/model-sequence.controller.js.map +1 -0
- package/dist/controllers/module-metadata.controller.js +1 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/otp-authentication.controller.js.map +1 -1
- package/dist/controllers/service.controller.js +1 -1
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/controllers/setting.controller.d.ts +1 -0
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +15 -0
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.js +1 -1
- package/dist/controllers/sms-template.controller.js.map +1 -1
- package/dist/controllers/test-queue.controller.js +1 -1
- package/dist/controllers/test-queue.controller.js.map +1 -1
- package/dist/controllers/test.controller.js +1 -1
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/dtos/basic-filters.dto.d.ts +3 -1
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +8 -2
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/basic-group-filters.dto.d.ts +6 -0
- package/dist/dtos/basic-group-filters.dto.d.ts.map +1 -0
- package/dist/dtos/basic-group-filters.dto.js +46 -0
- package/dist/dtos/basic-group-filters.dto.js.map +1 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts +2 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-ai-interaction.dto.js +14 -1
- package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/create-field-metadata.dto.d.ts +22 -5
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +34 -8
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-import-transaction.dto.d.ts +0 -1
- package/dist/dtos/create-import-transaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-import-transaction.dto.js +1 -7
- package/dist/dtos/create-import-transaction.dto.js.map +1 -1
- package/dist/dtos/create-model-metadata.dto.d.ts +2 -0
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +13 -1
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts +14 -0
- package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -0
- package/dist/dtos/create-model-sequence.dto.js +90 -0
- package/dist/dtos/create-model-sequence.dto.js.map +1 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +6 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/get-mcp-url.dto.d.ts +5 -0
- package/dist/dtos/get-mcp-url.dto.d.ts.map +1 -0
- package/dist/dtos/get-mcp-url.dto.js +31 -0
- package/dist/dtos/get-mcp-url.dto.js.map +1 -0
- package/dist/dtos/resolve-s3-url.dto.d.ts +10 -0
- package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -0
- package/dist/dtos/resolve-s3-url.dto.js +49 -0
- package/dist/dtos/resolve-s3-url.dto.js.map +1 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts +2 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.js +13 -1
- package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/update-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-field-metadata.dto.js.map +1 -1
- package/dist/dtos/update-import-transaction.dto.d.ts +0 -1
- package/dist/dtos/update-import-transaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-import-transaction.dto.js +1 -7
- package/dist/dtos/update-import-transaction.dto.js.map +1 -1
- package/dist/dtos/update-model-sequence.dto.d.ts +15 -0
- package/dist/dtos/update-model-sequence.dto.d.ts.map +1 -0
- package/dist/dtos/update-model-sequence.dto.js +94 -0
- package/dist/dtos/update-model-sequence.dto.js.map +1 -0
- package/dist/entities/action-metadata.entity.js +4 -4
- package/dist/entities/action-metadata.entity.js.map +1 -1
- package/dist/entities/ai-interaction.entity.d.ts +2 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
- package/dist/entities/ai-interaction.entity.js +15 -6
- package/dist/entities/ai-interaction.entity.js.map +1 -1
- package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message-details.entity.js +1 -1
- package/dist/entities/chatter-message-details.entity.js.map +1 -1
- package/dist/entities/chatter-message.entity.js +1 -1
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/common.entity.d.ts +2 -3
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +10 -11
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +2 -2
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
- package/dist/entities/dashboard-question.entity.js +3 -3
- package/dist/entities/dashboard-question.entity.js.map +1 -1
- package/dist/entities/dashboard-variable.entity.js +3 -3
- package/dist/entities/dashboard-variable.entity.js.map +1 -1
- package/dist/entities/dashboard.entity.js +1 -1
- package/dist/entities/dashboard.entity.js.map +1 -1
- package/dist/entities/email-template.entity.d.ts.map +1 -1
- package/dist/entities/email-template.entity.js +4 -3
- package/dist/entities/email-template.entity.js.map +1 -1
- package/dist/entities/export-template.entity.js +2 -2
- package/dist/entities/export-template.entity.js.map +1 -1
- package/dist/entities/export-transaction.entity.js +2 -2
- package/dist/entities/export-transaction.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +1 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +8 -4
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/import-transaction-error-log.entity.js +1 -1
- package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
- package/dist/entities/import-transaction.entity.d.ts +0 -1
- package/dist/entities/import-transaction.entity.d.ts.map +1 -1
- package/dist/entities/import-transaction.entity.js +2 -7
- package/dist/entities/import-transaction.entity.js.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.d.ts +5 -0
- package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -0
- package/dist/entities/legacy-common-with-id.entity.js +32 -0
- package/dist/entities/legacy-common-with-id.entity.js.map +1 -0
- package/dist/entities/legacy-common.entity.d.ts +13 -0
- package/dist/entities/legacy-common.entity.d.ts.map +1 -0
- package/dist/entities/legacy-common.entity.js +68 -0
- package/dist/entities/legacy-common.entity.js.map +1 -0
- package/dist/entities/list-of-values.entity.js +2 -2
- package/dist/entities/list-of-values.entity.js.map +1 -1
- package/dist/entities/locale.entity.js +1 -1
- package/dist/entities/locale.entity.js.map +1 -1
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +3 -3
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +4 -4
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +2 -0
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +11 -3
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/model-sequence.entity.d.ts +15 -0
- package/dist/entities/model-sequence.entity.d.ts.map +1 -0
- package/dist/entities/model-sequence.entity.js +67 -0
- package/dist/entities/model-sequence.entity.js.map +1 -0
- package/dist/entities/mq-message-queue.entity.js +1 -1
- package/dist/entities/mq-message-queue.entity.js.map +1 -1
- package/dist/entities/mq-message.entity.d.ts +3 -3
- package/dist/entities/mq-message.entity.d.ts.map +1 -1
- package/dist/entities/mq-message.entity.js +10 -10
- package/dist/entities/mq-message.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.js +4 -4
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/scheduled-job.entity.js +4 -4
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.js +2 -2
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/entities/setting.entity.js +2 -2
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/entities/sms-template.entity.js +2 -2
- 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 -1
- package/dist/entities/user-activity-history.entity.js.map +1 -1
- package/dist/entities/user-view-metadata.entity.js +2 -2
- package/dist/entities/user-view-metadata.entity.js.map +1 -1
- package/dist/entities/user.entity.js +13 -15
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.js +3 -3
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/helpers/date.helper.d.ts +1 -1
- package/dist/helpers/date.helper.d.ts.map +1 -1
- package/dist/helpers/date.helper.js +24 -2
- package/dist/helpers/date.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js +13 -2
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +4 -9
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +7 -8
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +0 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +4 -9
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +4 -1
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +52 -30
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +1 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -0
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.d.ts +1 -0
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +26 -2
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/schematic.service.d.ts +9 -3
- package/dist/helpers/schematic.service.d.ts.map +1 -1
- package/dist/helpers/schematic.service.js +49 -32
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +14 -2
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +10 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/typeorm-db-helper.d.ts +3 -0
- package/dist/helpers/typeorm-db-helper.d.ts.map +1 -0
- package/dist/helpers/typeorm-db-helper.js +24 -0
- package/dist/helpers/typeorm-db-helper.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +3 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts +1 -0
- package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/computed-field-evaluation-subscriber.service.js +16 -4
- package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +6 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/repository/media.repository.d.ts.map +1 -1
- package/dist/repository/media.repository.js +4 -0
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/repository/model-sequence.repository.d.ts +14 -0
- package/dist/repository/model-sequence.repository.d.ts.map +1 -0
- package/dist/repository/model-sequence.repository.js +103 -0
- package/dist/repository/model-sequence.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +8 -13
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +103 -43
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +553 -652
- package/dist/seeders/system-fields-seeder.service.d.ts +1 -0
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +12 -3
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +1 -0
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +2 -1
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +22 -14
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts.map +1 -1
- package/dist/services/chatter-message-details.service.js +1 -0
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +7 -3
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +10 -6
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +15 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +72 -0
- package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -0
- package/dist/services/crud-helper.service.d.ts +31 -6
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +285 -50
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +7 -2
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +135 -26
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/database/database-bootstrap.service.d.ts +12 -0
- package/dist/services/database/database-bootstrap.service.d.ts.map +1 -0
- package/dist/services/database/database-bootstrap.service.js +115 -0
- package/dist/services/database/database-bootstrap.service.js.map +1 -0
- package/dist/services/email-template.service.d.ts +7 -7
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +8 -7
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/excel.service.d.ts +10 -0
- package/dist/services/excel.service.d.ts.map +1 -1
- package/dist/services/excel.service.js +100 -0
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +146 -6
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +218 -58
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts +1 -0
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +9 -0
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/fixtures.service.d.ts +13 -0
- package/dist/services/fixtures.service.d.ts.map +1 -0
- package/dist/services/fixtures.service.js +95 -0
- package/dist/services/fixtures.service.js.map +1 -0
- package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
- package/dist/services/genai/ingest-metadata.service.js +1 -1
- package/dist/services/genai/ingest-metadata.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +1 -0
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +7 -1
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +2 -2
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +2 -1
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +1 -0
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.js +0 -1
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media.service.d.ts +3 -3
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +6 -4
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +17 -6
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +0 -13
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +3 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +35 -11
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +16 -45
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/model-sequence.service.d.ts +23 -0
- package/dist/services/model-sequence.service.d.ts.map +1 -0
- package/dist/services/model-sequence.service.js +55 -0
- package/dist/services/model-sequence.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts +1 -0
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +35 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +3 -4
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +5 -5
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +6 -5
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +2 -1
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
- package/dist/services/queues/publisher-factory.service.js +4 -0
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +2 -2
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +1 -0
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +6 -6
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +8 -8
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +4 -0
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +1 -0
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.d.ts.map +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.js +4 -0
- package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
- package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.d.ts +2 -2
- package/dist/services/selection-providers/list-of-values-selection-providers.service.d.ts.map +1 -0
- package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.js +3 -3
- package/dist/services/selection-providers/list-of-values-selection-providers.service.js.map +1 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts +20 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js +87 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts +7 -5
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +28 -5
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +7 -7
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +8 -7
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +10 -3
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +66 -12
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.js +2 -2
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +1 -0
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +3 -2
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +1 -0
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +3 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +33 -5
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core-cli-db.module.d.ts.map +1 -1
- package/dist/solid-core-cli-db.module.js +5 -2
- package/dist/solid-core-cli-db.module.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +23 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +3 -2
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +8 -10
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +7 -4
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +60 -21
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts +4 -2
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.js +10 -8
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js +0 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.js +3 -2
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts +3 -2
- package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts.map +1 -1
- package/dist/subscribers/soft-delete-aware-event.subscriber.js +6 -11
- package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts +5 -0
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -0
- package/dist/transformers/typeorm/local-date-time-transformer.js +26 -0
- package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/grouping-enhancements.md +89 -0
- package/package.json +1 -1
- package/sql/default/mssql/proc_CleanupModelMetadata.sql +175 -0
- package/sql/default/mssql/proc_CleanupModuleMetadata.sql +78 -0
- package/sql/default/mssql/scratchpad.sql.txt +10 -0
- package/sql/default/postgres/proc_CleanupModelMetadata.sql +148 -0
- package/sql/default/postgres/proc_CleanupModuleMetadata.sql +50 -0
- package/sql/default/postgres/scratchpad.sql.txt +12 -0
- package/sql-server-changes.txt +88 -0
- package/src/commands/fixtures/fixtures-setup.command.ts +44 -0
- package/src/commands/fixtures/fixtures-tear-down.command.ts +45 -0
- package/src/commands/mcp.command.ts +215 -0
- package/src/commands/refresh-model.command.ts +39 -5
- package/src/commands/remove-fields.command.ts +1 -1
- package/src/commands/seed.command.ts +34 -15
- package/src/constants/error-messages.ts +7 -1
- package/src/controllers/authentication.controller.ts +1 -1
- package/src/controllers/email-template.controller.ts +1 -1
- package/src/controllers/field-metadata.controller.ts +7 -1
- package/src/controllers/media-storage-provider-metadata.controller.ts +1 -1
- package/src/controllers/model-metadata.controller.ts +1 -1
- package/src/controllers/model-sequence.controller.ts +93 -0
- package/src/controllers/module-metadata.controller.ts +1 -1
- package/src/controllers/otp-authentication.controller.ts +1 -1
- package/src/controllers/service.controller.ts +1 -1
- package/src/controllers/setting.controller.ts +33 -21
- package/src/controllers/sms-template.controller.ts +1 -1
- package/src/controllers/test-queue.controller.ts +1 -1
- package/src/controllers/test.controller.ts +1 -1
- package/src/dtos/basic-filters.dto.ts +6 -1
- package/src/dtos/basic-group-filters.dto.ts +23 -0
- package/src/dtos/create-ai-interaction.dto.ts +16 -9
- package/src/dtos/create-field-metadata.dto.ts +43 -13
- package/src/dtos/create-import-transaction.dto.ts +0 -4
- package/src/dtos/create-model-metadata.dto.ts +10 -0
- package/src/dtos/create-model-sequence.dto.ts +51 -0
- package/src/dtos/create-role-metadata.dto.ts +23 -4
- package/src/dtos/get-mcp-url.dto.ts +13 -0
- package/src/dtos/resolve-s3-url.dto.ts +31 -0
- package/src/dtos/update-ai-interaction.dto.ts +16 -9
- package/src/dtos/update-field-metadata.dto.ts +1 -2
- package/src/dtos/update-import-transaction.dto.ts +0 -4
- package/src/dtos/update-model-sequence.dto.ts +53 -0
- package/src/entities/action-metadata.entity.ts +4 -4
- package/src/entities/ai-interaction.entity.ts +16 -12
- package/src/entities/chatter-message-details.entity.ts +18 -18
- package/src/entities/chatter-message.entity.ts +2 -2
- package/src/entities/common.entity.ts +20 -11
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +2 -2
- package/src/entities/dashboard-question.entity.ts +3 -3
- package/src/entities/dashboard-variable.entity.ts +3 -3
- package/src/entities/dashboard.entity.ts +1 -1
- package/src/entities/email-template.entity.ts +4 -3
- package/src/entities/export-template.entity.ts +2 -2
- package/src/entities/export-transaction.entity.ts +2 -2
- package/src/entities/field-metadata.entity.ts +6 -3
- package/src/entities/import-transaction-error-log.entity.ts +2 -2
- package/src/entities/import-transaction.entity.ts +2 -5
- package/src/entities/legacy-common-with-id.entity.ts +11 -0
- package/src/entities/legacy-common.entity.ts +58 -0
- package/src/entities/list-of-values.entity.ts +2 -2
- package/src/entities/locale.entity.ts +1 -1
- package/src/entities/media.entity.ts +25 -25
- package/src/entities/menu-item-metadata.entity.ts +4 -4
- package/src/entities/model-metadata.entity.ts +9 -2
- package/src/entities/model-sequence.entity.ts +32 -0
- package/src/entities/mq-message-queue.entity.ts +1 -1
- package/src/entities/mq-message.entity.ts +34 -34
- package/src/entities/saved-filters.entity.ts +5 -5
- package/src/entities/scheduled-job.entity.ts +4 -4
- package/src/entities/security-rule.entity.ts +2 -2
- package/src/entities/setting.entity.ts +2 -2
- package/src/entities/sms-template.entity.ts +2 -2
- package/src/entities/user-activity-history.entity.ts +14 -14
- package/src/entities/user-view-metadata.entity.ts +2 -2
- package/src/entities/user.entity.ts +15 -15
- package/src/entities/view-metadata.entity.ts +3 -3
- package/src/helpers/date.helper.ts +31 -10
- package/src/helpers/field-crud-managers/BigIntFieldCrudManager.ts +18 -5
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +9 -9
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +16 -8
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +9 -9
- package/src/helpers/model-metadata-helper.service.ts +67 -34
- package/src/helpers/module-metadata-helper.service.ts +18 -1
- package/src/helpers/module.helper.ts +37 -1
- package/src/helpers/schematic.service.ts +72 -46
- package/src/helpers/solid-registry.ts +28 -2
- package/src/helpers/typeorm-db-helper.ts +26 -0
- package/src/index.ts +7 -2
- package/src/interfaces.ts +3 -0
- package/src/jobs/computed-field-evaluation-subscriber.service.ts +15 -4
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +17 -21
- package/src/repository/media.repository.ts +3 -2
- package/src/repository/model-sequence.repository.ts +97 -0
- package/src/seeders/module-metadata-seeder.service.ts +176 -58
- package/src/seeders/seed-data/solid-core-metadata.json +555 -654
- package/src/seeders/system-fields-seeder.service.ts +39 -36
- package/src/services/action-metadata.service.ts +3 -2
- package/src/services/ai-interaction.service.ts +3 -2
- package/src/services/authentication.service.ts +46 -14
- package/src/services/chatter-message-details.service.ts +2 -1
- package/src/services/chatter-message.service.ts +10 -4
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +17 -12
- package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +86 -0
- package/src/services/crud-helper.service.ts +319 -53
- package/src/services/crud.service.ts +233 -34
- package/src/services/database/database-bootstrap.service.ts +91 -0
- package/src/services/email-template.service.ts +11 -13
- package/src/services/excel.service.ts +146 -3
- package/src/services/field-metadata.service.ts +322 -70
- package/src/services/file.service.ts +9 -0
- package/src/services/fixtures.service.ts +108 -0
- package/src/services/genai/ingest-metadata.service.ts +4 -3
- package/src/services/import-transaction-error-log.service.ts +2 -1
- package/src/services/import-transaction.service.ts +8 -4
- package/src/services/list-of-values.service.ts +4 -4
- package/src/services/locale.service.ts +2 -1
- package/src/services/mail/smtp-email.service.ts +1 -1
- package/src/services/media.service.ts +10 -11
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +22 -7
- package/src/services/mediaStorageProviders/file-storage-provider.ts +18 -13
- package/src/services/menu-item-metadata.service.ts +87 -52
- package/src/services/model-metadata.service.ts +68 -47
- package/src/services/model-sequence.service.ts +33 -0
- package/src/services/module-metadata.service.ts +49 -2
- package/src/services/mq-message.service.ts +16 -15
- package/src/services/permission-metadata.service.ts +8 -9
- package/src/services/queues/database-subscriber.service.ts +3 -1
- package/src/services/queues/publisher-factory.service.ts +2 -1
- package/src/services/queues/rabbitmq-subscriber.service.ts +4 -2
- package/src/services/role-metadata.service.ts +1 -0
- package/src/services/scheduled-job.service.ts +9 -9
- package/src/services/scheduled-jobs/scheduler.service.ts +5 -0
- package/src/services/security-rule.service.ts +1 -0
- package/src/services/selection-providers/list-of-models-selection-provider.service.ts +5 -2
- package/src/{providers → services/selection-providers}/list-of-values-selection-providers.service.ts +2 -2
- package/src/services/selection-providers/pseudo-foreign-key-selection-provider.service.ts +94 -0
- package/src/services/setting.service.ts +46 -16
- package/src/services/sms-template.service.ts +11 -13
- package/src/services/solid-introspect.service.ts +97 -10
- package/src/services/solid-ts-morph.service.ts +2 -2
- package/src/services/user-activity-history.service.ts +3 -2
- package/src/services/user-view-metadata.service.ts +4 -3
- package/src/services/user.service.ts +2 -1
- package/src/services/view-metadata.service.ts +52 -21
- package/src/solid-core-cli-db.module.ts +5 -4
- package/src/solid-core.module.ts +23 -1
- package/src/subscribers/audit.subscriber.ts +14 -9
- package/src/subscribers/computed-entity-field.subscriber.ts +71 -22
- package/src/subscribers/created-by-updated-by.subscriber.ts +14 -8
- package/src/subscribers/field-metadata.subscriber.ts +1 -1
- package/src/subscribers/model-metadata.subscriber.ts +4 -2
- package/src/subscribers/soft-delete-aware-event.subscriber.ts +12 -6
- package/src/transformers/typeorm/local-date-time-transformer.ts +30 -0
- package/dist/providers/list-of-values-selection-providers.service.d.ts.map +0 -1
- package/dist/providers/list-of-values-selection-providers.service.js.map +0 -1
- package/src/commands/ingest-rag-chunking-strategy-for.md +0 -224
- package/src/entities/user.entity.ts.bkp +0 -144
- package/src/services/docker exec -it mssql //" +0 -8
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Return the system fields metadata for a model
|
|
2
2
|
|
|
3
|
-
import { Injectable, Logger } from "@nestjs/common";
|
|
3
|
+
import { forwardRef, Inject, Injectable, Logger } from "@nestjs/common";
|
|
4
|
+
import { _ } from "lodash";
|
|
5
|
+
import { LEGACY_TABLE_FIELDS_PREFIX } from "src/entities/legacy-common.entity";
|
|
4
6
|
import { ModelMetadataRepository } from "src/repository/model-metadata.repository";
|
|
5
7
|
import { SolidRegistry } from "./solid-registry";
|
|
6
8
|
|
|
@@ -8,104 +10,135 @@ import { SolidRegistry } from "./solid-registry";
|
|
|
8
10
|
export class ModelMetadataHelperService {
|
|
9
11
|
private readonly logger = new Logger(ModelMetadataHelperService.name);
|
|
10
12
|
|
|
11
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
private readonly registry: SolidRegistry,
|
|
12
15
|
// @InjectRepository(ModelMetadata)
|
|
13
16
|
// private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
17
|
+
@Inject(forwardRef(() => ModelMetadataRepository))
|
|
14
18
|
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
15
19
|
) {
|
|
16
20
|
}
|
|
17
21
|
|
|
18
|
-
getSystemFieldsMetadata(): any[] {
|
|
19
|
-
|
|
22
|
+
getSystemFieldsMetadata(isLegacyTable: boolean=false, isLegacyTableWithId: boolean=false): any[] {
|
|
23
|
+
let systemFieldsMetadata: any[];
|
|
24
|
+
if (isLegacyTableWithId) {
|
|
25
|
+
systemFieldsMetadata = this.getSystemFieldsMetadataMappingForLegacyTable(true);
|
|
26
|
+
}
|
|
27
|
+
else if (isLegacyTable) {
|
|
28
|
+
systemFieldsMetadata = this.getSystemFieldsMetadataMappingForLegacyTable(false);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
systemFieldsMetadata = this.getSystemFieldsMetadataMapping();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
this.checkWithRegistry(systemFieldsMetadata);
|
|
35
|
+
|
|
36
|
+
return systemFieldsMetadata;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// TODO: Do an additional check and add a warning if the common entity keys and system field metadata keys don't match exactly
|
|
40
|
+
// Ideally this should be reflection based code
|
|
41
|
+
private checkWithRegistry(systemFieldsMetadata: ({ name: string; displayName: string; type: string; ormType: string; isSystem: boolean; relationType?: undefined; relationCoModelSingularName?: undefined; relationCreateInverse?: undefined; relationCascade?: undefined; relationModelModuleName?: undefined; } | { name: string; displayName: string; type: string; isSystem: boolean; ormType?: undefined; relationType?: undefined; relationCoModelSingularName?: undefined; relationCreateInverse?: undefined; relationCascade?: undefined; relationModelModuleName?: undefined; } | { name: string; displayName: string; type: string; ormType: string; isSystem: boolean; relationType: string; relationCoModelSingularName: string; relationCreateInverse: boolean; relationCascade: string; relationModelModuleName: string; })[]) {
|
|
42
|
+
const commonEntityKeys = this.registry.getCommonEntityKeys();
|
|
43
|
+
const systemFieldNames = systemFieldsMetadata.map(field => field.name);
|
|
44
|
+
const missingKeys = commonEntityKeys.filter(key => !systemFieldNames.includes(key));
|
|
45
|
+
if (missingKeys.length > 0) {
|
|
46
|
+
this.logger.warn(`Missing system fields metadata for common entity keys: ${missingKeys.join(', ')}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private getSystemFieldsMetadataMapping() {
|
|
51
|
+
return [
|
|
20
52
|
{
|
|
21
53
|
name: "id",
|
|
22
54
|
displayName: "Id",
|
|
23
55
|
type: "int",
|
|
24
|
-
ormType: "bigint",
|
|
25
56
|
isSystem: true,
|
|
26
57
|
},
|
|
27
58
|
{
|
|
28
59
|
name: "createdAt",
|
|
29
60
|
displayName: "Created At",
|
|
30
61
|
type: "datetime",
|
|
31
|
-
ormType: "timestamp",
|
|
32
62
|
isSystem: true,
|
|
33
63
|
},
|
|
34
64
|
{
|
|
35
65
|
name: "updatedAt",
|
|
36
66
|
displayName: "Updated At",
|
|
37
67
|
type: "datetime",
|
|
38
|
-
ormType: "timestamp",
|
|
39
68
|
isSystem: true,
|
|
40
69
|
},
|
|
41
70
|
{
|
|
42
71
|
name: "deletedAt",
|
|
43
72
|
displayName: "Deleted At",
|
|
44
73
|
type: "datetime",
|
|
45
|
-
ormType: "timestamp",
|
|
46
74
|
isSystem: true,
|
|
47
75
|
},
|
|
48
76
|
{
|
|
49
77
|
name: "deletedTracker",
|
|
50
78
|
displayName: "Deleted Tracker",
|
|
51
79
|
type: "shortText",
|
|
52
|
-
ormType: "varchar",
|
|
53
80
|
isSystem: true,
|
|
54
81
|
},
|
|
55
82
|
{
|
|
56
83
|
name: "publishedAt",
|
|
57
84
|
displayName: "Published At",
|
|
58
85
|
type: "datetime",
|
|
59
|
-
ormType: "timestamp",
|
|
60
86
|
isSystem: true,
|
|
87
|
+
enableAuditTracking:true
|
|
61
88
|
},
|
|
62
89
|
{
|
|
63
90
|
name: "localeName",
|
|
64
91
|
displayName: "Locale",
|
|
65
92
|
type: "shortText",
|
|
66
|
-
ormType: "varchar",
|
|
67
93
|
isSystem: true,
|
|
68
94
|
},
|
|
69
95
|
{
|
|
70
96
|
name: "defaultEntityLocaleId",
|
|
71
97
|
displayName: "Default Entity Locale Id",
|
|
72
98
|
type: "int",
|
|
73
|
-
ormType: "integer",
|
|
74
99
|
isSystem: true,
|
|
75
100
|
},
|
|
76
101
|
{
|
|
77
102
|
name: "createdBy",
|
|
78
103
|
displayName: "Created By",
|
|
79
|
-
type: "
|
|
80
|
-
ormType: "integer",
|
|
104
|
+
type: "int",
|
|
81
105
|
isSystem: true,
|
|
82
|
-
|
|
83
|
-
relationCoModelSingularName: "user",
|
|
84
|
-
relationCreateInverse: false,
|
|
85
|
-
relationCascade: "restrict",
|
|
86
|
-
relationModelModuleName: "solid-core"
|
|
106
|
+
columnName: "created_by_id",
|
|
87
107
|
},
|
|
88
108
|
{
|
|
89
109
|
name: "updatedBy",
|
|
90
110
|
displayName: "Updated By",
|
|
91
|
-
type: "
|
|
92
|
-
ormType: "integer",
|
|
111
|
+
type: "int",
|
|
93
112
|
isSystem: true,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
relationModelModuleName: "solid-core"
|
|
99
|
-
},
|
|
100
|
-
]
|
|
113
|
+
columnName: "updated_by_id",
|
|
114
|
+
}
|
|
115
|
+
];
|
|
116
|
+
}
|
|
101
117
|
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
private getSystemFieldsMetadataMappingForLegacyTable(withId: boolean=true) {
|
|
119
|
+
const systemFieldsMetadata = this.getSystemFieldsMetadataMapping();
|
|
120
|
+
if (!withId) {
|
|
121
|
+
// Remove the id field metadata
|
|
122
|
+
const index = systemFieldsMetadata.findIndex(field => field.name === 'id');
|
|
123
|
+
if (index !== -1) {
|
|
124
|
+
systemFieldsMetadata.splice(index, 1);
|
|
125
|
+
}
|
|
108
126
|
}
|
|
127
|
+
|
|
128
|
+
// For legacy table, system fields, remove the ormType atribute from the metadata
|
|
129
|
+
// systemFieldsMetadata.forEach(field => {
|
|
130
|
+
// delete field.ormType;
|
|
131
|
+
// });
|
|
132
|
+
|
|
133
|
+
// Except for createdBy and updatedBy fields, for which we need to keep the columnName as created_by_id and updated_by_id respectively,
|
|
134
|
+
// we need to add a columnName attribute with legacy prefix concatenated with the kebab cased field name of the system field
|
|
135
|
+
systemFieldsMetadata.forEach(field => {
|
|
136
|
+
if (field.name === 'createdBy' || field.name === 'updatedBy') {
|
|
137
|
+
field['columnName'] = `${LEGACY_TABLE_FIELDS_PREFIX}_${_.snakeCase(field.name)}_id`;
|
|
138
|
+
} else {
|
|
139
|
+
field['columnName'] = `${LEGACY_TABLE_FIELDS_PREFIX}_${_.snakeCase(field.name)}`;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
109
142
|
return systemFieldsMetadata;
|
|
110
143
|
}
|
|
111
144
|
|
|
@@ -57,4 +57,21 @@ export class ModuleMetadataHelperService {
|
|
|
57
57
|
}
|
|
58
58
|
return filePath;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
async getModuleMetadataFolderPath(moduleName: string): Promise<string> {
|
|
61
|
+
if (!moduleName) {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const dashModuleName = dasherize(moduleName);
|
|
66
|
+
|
|
67
|
+
const folderPath = path.resolve(
|
|
68
|
+
process.cwd(),
|
|
69
|
+
'module-metadata',
|
|
70
|
+
dashModuleName,
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const exists = await this.fileService.pathExists(folderPath);
|
|
74
|
+
return exists ? folderPath : '';
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
1
2
|
import * as fs from 'fs'; // Use the Promise-based version of fs for async/await
|
|
2
3
|
import * as path from 'path'; // To handle file paths
|
|
3
4
|
|
|
5
|
+
const logger = new Logger('module.helper');
|
|
4
6
|
|
|
5
7
|
export const getDynamicModuleNames = (): string[] => {
|
|
6
8
|
const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];
|
|
@@ -21,6 +23,7 @@ export const getDynamicModuleNames = (): string[] => {
|
|
|
21
23
|
|
|
22
24
|
if (!isValidDirectory) return false;
|
|
23
25
|
|
|
26
|
+
// return true
|
|
24
27
|
const fullPath = path.join(srcPath, dirent.name);
|
|
25
28
|
const files = fs.readdirSync(fullPath);
|
|
26
29
|
// skip if empty directory
|
|
@@ -28,7 +31,40 @@ export const getDynamicModuleNames = (): string[] => {
|
|
|
28
31
|
})
|
|
29
32
|
.map(dirent => dirent.name);
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
// logger.debug(`Enabled dynamic modules:`, enabledModules);
|
|
35
|
+
return enabledModules;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const getDynamicModuleNamesBasedOnMetadata = (): string[] => {
|
|
39
|
+
const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];
|
|
40
|
+
|
|
41
|
+
// Find a path that is ../${srcPath}/module-metadata save it in a variable.
|
|
42
|
+
// const srcPath = path.join(process.cwd(), 'src');
|
|
43
|
+
const moduleMetadataPath = path.join(process.cwd(), 'module-metadata');
|
|
44
|
+
const coreModuleNames = getCoreModuleNames();
|
|
45
|
+
const allExcludedModules = [...new Set([...coreModuleNames, ...dynamicModulesToExclude])];
|
|
46
|
+
|
|
47
|
+
// if module-metadata path does not exist, return empty array
|
|
48
|
+
if (!fs.existsSync(moduleMetadataPath)) {
|
|
49
|
+
logger.warn(`Module metadata path does not exist: ${moduleMetadataPath}`);
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const moduleMetadataDirectories = fs.readdirSync(moduleMetadataPath, { withFileTypes: true });
|
|
54
|
+
const enabledModules = moduleMetadataDirectories
|
|
55
|
+
.filter(dirent => {
|
|
56
|
+
const isValidDirectory = dirent.isDirectory() && !allExcludedModules.includes(dirent.name);
|
|
57
|
+
|
|
58
|
+
if (!isValidDirectory) return false;
|
|
59
|
+
|
|
60
|
+
const fullPath = path.join(moduleMetadataPath, dirent.name, `${dirent.name}-metadata.json`);
|
|
61
|
+
|
|
62
|
+
const stats = fs.statSync(fullPath, { throwIfNoEntry: false });
|
|
63
|
+
return !!stats && stats.isFile();
|
|
64
|
+
})
|
|
65
|
+
.map(dirent => dirent.name);
|
|
66
|
+
|
|
67
|
+
// logger.debug(`Enabled dynamic modules basis src:`, enabledModules);
|
|
32
68
|
return enabledModules;
|
|
33
69
|
}
|
|
34
70
|
|
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
-
import { CommandService } from './command.service';
|
|
3
2
|
import { snakeCase } from "lodash";
|
|
4
|
-
import {
|
|
3
|
+
import { FieldMetadata } from 'src/entities/field-metadata.entity';
|
|
4
|
+
import { CommandService } from './command.service';
|
|
5
5
|
import { SolidRegistry } from './solid-registry';
|
|
6
6
|
|
|
7
7
|
export const ADD_MODULE_COMMAND = 'add-module';
|
|
8
8
|
export type GenerateModuleOptions = {
|
|
9
9
|
module: string;
|
|
10
10
|
};
|
|
11
|
-
type
|
|
11
|
+
type ModelGenerationOptions = Omit<ModelAndFieldGenerationOptions, 'fields'>;
|
|
12
|
+
|
|
13
|
+
type ModelAndFieldGenerationOptions = {
|
|
12
14
|
module: string;
|
|
13
15
|
model: string;
|
|
14
16
|
moduleDisplayName: string;
|
|
15
17
|
table?: string;
|
|
16
18
|
dataSource: string;
|
|
17
|
-
fields: any[]; //FIXME This type can be improved
|
|
18
19
|
modelEnableSoftDelete?: boolean;
|
|
19
20
|
parentModel?: string;
|
|
20
21
|
parentModule?: string;
|
|
21
22
|
draftPublishWorkflowEnabled?: boolean;
|
|
23
|
+
isLegacyTable?: boolean;
|
|
24
|
+
isLegacyTableWithId?: boolean;
|
|
25
|
+
dataSourceType?: string;
|
|
26
|
+
fields: FieldMetadata[]; //FIXME This type can be improved
|
|
22
27
|
};
|
|
23
28
|
export const REMOVE_FIELDS_COMMAND = 'remove-fields';
|
|
24
29
|
export const REFRESH_MODEL_COMMAND = 'refresh-model';
|
|
@@ -32,7 +37,7 @@ export class SchematicService {
|
|
|
32
37
|
|
|
33
38
|
async executeSchematicCommand(
|
|
34
39
|
command: string,
|
|
35
|
-
options: GenerateModuleOptions |
|
|
40
|
+
options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
|
|
36
41
|
debug = false,
|
|
37
42
|
): Promise<string> {
|
|
38
43
|
return await this.commandService.executeCommand(
|
|
@@ -42,7 +47,7 @@ export class SchematicService {
|
|
|
42
47
|
|
|
43
48
|
private generateSchematicCommand(
|
|
44
49
|
command: string,
|
|
45
|
-
options: GenerateModuleOptions |
|
|
50
|
+
options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
|
|
46
51
|
debug: boolean,
|
|
47
52
|
): string {
|
|
48
53
|
const baseCommand = `schematics ${this.SCHEMATIC_PROJECT}:${command} --debug=${debug}`;
|
|
@@ -50,55 +55,76 @@ export class SchematicService {
|
|
|
50
55
|
command === REMOVE_FIELDS_COMMAND ||
|
|
51
56
|
command === REFRESH_MODEL_COMMAND
|
|
52
57
|
) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
modelCommand += ` --module-display-name=${snakeCase(fieldOptions.moduleDisplayName)}`;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (fieldOptions.table) {
|
|
60
|
-
modelCommand += ` --table=${fieldOptions.table}`;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (fieldOptions.dataSource) {
|
|
64
|
-
modelCommand += ` --data-source=${fieldOptions.dataSource}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (fieldOptions.modelEnableSoftDelete) {
|
|
68
|
-
modelCommand += ` --model-enable-soft-delete=${fieldOptions.modelEnableSoftDelete}`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (fieldOptions.parentModel) {
|
|
72
|
-
modelCommand += ` --parent-model=${fieldOptions.parentModel}`;
|
|
73
|
-
}
|
|
74
|
-
if (fieldOptions.parentModule) {
|
|
75
|
-
modelCommand += ` --parent-module=${fieldOptions.parentModule}`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (fieldOptions.draftPublishWorkflowEnabled) {
|
|
79
|
-
modelCommand += ` --draft-publish-workflow-enabled=${fieldOptions.draftPublishWorkflowEnabled}`;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
let fieldCommand = fieldOptions.fields
|
|
83
|
-
.filter((field) => {
|
|
84
|
-
return !this.solidRegistry.getCommonEntityKeys().includes(field.name);
|
|
85
|
-
})
|
|
86
|
-
.map((field) => {
|
|
87
|
-
return `--fields='${JSON.stringify(field).replace(/'/g, "\\'")}'`;
|
|
88
|
-
})
|
|
89
|
-
.join(' ');
|
|
58
|
+
const {fields, ...modelSpecificOptions} = options as ModelAndFieldGenerationOptions;
|
|
59
|
+
const modelCommand = this.buildModelGenerationCommand(baseCommand, modelSpecificOptions);
|
|
60
|
+
const fieldCommand = this.buildFieldGenerationCommand(fields);
|
|
90
61
|
const schematicCommand = modelCommand + ' ' + fieldCommand;
|
|
91
|
-
|
|
62
|
+
this.logger.debug('schematicCommand', schematicCommand);
|
|
92
63
|
return schematicCommand;
|
|
93
64
|
} else if (command === ADD_MODULE_COMMAND) {
|
|
94
65
|
const moduleOptions = options as GenerateModuleOptions;
|
|
95
|
-
// console.log('moduleOptions', moduleOptions);
|
|
96
66
|
const schematicCommand = ` ${baseCommand} --module=${moduleOptions.module}`;
|
|
97
|
-
// console.log('schematicCommand', schematicCommand);
|
|
98
67
|
this.logger.debug('schematicCommand', schematicCommand);
|
|
99
68
|
return schematicCommand;
|
|
100
69
|
} else {
|
|
101
70
|
throw new Error('Schematic command not supported.');
|
|
102
71
|
}
|
|
103
72
|
}
|
|
73
|
+
|
|
74
|
+
private buildFieldGenerationCommand(fields: FieldMetadata[]) {
|
|
75
|
+
return fields
|
|
76
|
+
.filter((field) => {
|
|
77
|
+
return !this.solidRegistry.getCommonEntityKeys().map(key => key.toString()).includes(field.name);
|
|
78
|
+
})
|
|
79
|
+
.map((field) => {
|
|
80
|
+
return `--fields='${JSON.stringify(field).replace(/'/g, "\\'")}'`;
|
|
81
|
+
})
|
|
82
|
+
.join(' ');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private buildModelGenerationCommand(baseCommand: string, modelSpecificOptions: ModelGenerationOptions): string {
|
|
86
|
+
let modelCommand = `${baseCommand} --module=${modelSpecificOptions.module} --model=${modelSpecificOptions.model}`;
|
|
87
|
+
|
|
88
|
+
// Make below options code generate i.e if option exists then add to command with proper casing
|
|
89
|
+
if (modelSpecificOptions.moduleDisplayName) {
|
|
90
|
+
modelCommand += ` --module-display-name=${snakeCase(modelSpecificOptions.moduleDisplayName)}`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (modelSpecificOptions.table) {
|
|
94
|
+
modelCommand += ` --table=${modelSpecificOptions.table}`;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (modelSpecificOptions.dataSource) {
|
|
98
|
+
modelCommand += ` --data-source=${modelSpecificOptions.dataSource}`;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (modelSpecificOptions.modelEnableSoftDelete) {
|
|
102
|
+
modelCommand += ` --model-enable-soft-delete=${modelSpecificOptions.modelEnableSoftDelete}`;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (modelSpecificOptions.parentModel) {
|
|
106
|
+
modelCommand += ` --parent-model=${modelSpecificOptions.parentModel}`;
|
|
107
|
+
}
|
|
108
|
+
if (modelSpecificOptions.parentModule) {
|
|
109
|
+
modelCommand += ` --parent-module=${modelSpecificOptions.parentModule}`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (modelSpecificOptions.draftPublishWorkflowEnabled) {
|
|
113
|
+
modelCommand += ` --draft-publish-workflow-enabled=${modelSpecificOptions.draftPublishWorkflowEnabled}`;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (modelSpecificOptions.isLegacyTable) {
|
|
117
|
+
modelCommand += ` --is-legacy-table=${modelSpecificOptions.isLegacyTable}`;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (modelSpecificOptions.isLegacyTableWithId) {
|
|
121
|
+
modelCommand += ` --is-legacy-table-with-id=${modelSpecificOptions.isLegacyTableWithId}`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (modelSpecificOptions.dataSourceType) {
|
|
125
|
+
modelCommand += ` --data-source-type=${modelSpecificOptions.dataSourceType}`;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return modelCommand;
|
|
129
|
+
}
|
|
104
130
|
}
|
|
@@ -5,7 +5,11 @@ import { CommonEntity } from 'src/entities/common.entity';
|
|
|
5
5
|
import { Locale } from 'src/entities/locale.entity';
|
|
6
6
|
import { SecurityRule } from 'src/entities/security-rule.entity';
|
|
7
7
|
import { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';
|
|
8
|
-
import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext } from "../interfaces";
|
|
8
|
+
import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
|
|
9
|
+
import { DatasourceType } from 'src/dtos/create-model-metadata.dto';
|
|
10
|
+
import { ObjectLiteral } from 'typeorm';
|
|
11
|
+
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
|
|
12
|
+
import { RelationMetadata } from 'typeorm/metadata/RelationMetadata';
|
|
9
13
|
|
|
10
14
|
type ControllerMetadata = {
|
|
11
15
|
name: string;
|
|
@@ -38,6 +42,16 @@ export enum RESERVED_SOLID_KEYWORDS {
|
|
|
38
42
|
locale = "locale"
|
|
39
43
|
}
|
|
40
44
|
|
|
45
|
+
export interface TypeOrmEventContext {
|
|
46
|
+
eventType?: string;
|
|
47
|
+
entity?: ObjectLiteral | undefined;
|
|
48
|
+
databaseEntity?: any;
|
|
49
|
+
entityId?: any;
|
|
50
|
+
metadataName?: string;
|
|
51
|
+
updatedColumns?: string[];
|
|
52
|
+
updatedRelations?: string[];
|
|
53
|
+
}
|
|
54
|
+
|
|
41
55
|
export interface ComputedFieldMetadata<TContext = any> {
|
|
42
56
|
moduleName: string; // Name of the module where the computed field is defined
|
|
43
57
|
modelName: string; // Name of the model where the computed field is defined
|
|
@@ -48,6 +62,7 @@ export interface ComputedFieldMetadata<TContext = any> {
|
|
|
48
62
|
computedFieldValueProviderName: string; // Name of the provider that computes the field value
|
|
49
63
|
// Example: '{"contextKey": "contextValue"}'
|
|
50
64
|
computedFieldValueProviderCtxt: TContext; // Context for the computed field value
|
|
65
|
+
eventContext: TypeOrmEventContext;
|
|
51
66
|
}
|
|
52
67
|
|
|
53
68
|
@Injectable()
|
|
@@ -247,6 +262,17 @@ export class SolidRegistry {
|
|
|
247
262
|
return Array.from(this.solidDatabaseModules);
|
|
248
263
|
}
|
|
249
264
|
|
|
265
|
+
getDefaultSolidDatabaseModule(): ISolidDatabaseModule {
|
|
266
|
+
const solidDatabaseModulesAsArray = Array.from(this.solidDatabaseModules);
|
|
267
|
+
for (let i = 0; i < solidDatabaseModulesAsArray.length; i++) {
|
|
268
|
+
const solidDatabaseModule = solidDatabaseModulesAsArray[i];
|
|
269
|
+
const solidDatabaseModuleInstance: ISolidDatabaseModule = solidDatabaseModule.instance;
|
|
270
|
+
if (solidDatabaseModuleInstance.name() === 'default') {
|
|
271
|
+
return solidDatabaseModuleInstance;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
250
276
|
getModules(): Array<InstanceWrapper> {
|
|
251
277
|
return Array.from(this.modules);
|
|
252
278
|
}
|
|
@@ -288,7 +314,7 @@ export class SolidRegistry {
|
|
|
288
314
|
});
|
|
289
315
|
}
|
|
290
316
|
|
|
291
|
-
getCommonEntityKeys(): (keyof CommonEntity)[] {
|
|
317
|
+
getCommonEntityKeys(): (keyof CommonEntity | 'createdBy' | 'updatedBy')[] {
|
|
292
318
|
return ['id', 'createdAt', 'updatedAt', 'deletedAt', 'createdBy', 'updatedBy', 'deletedTracker', 'localeName', 'defaultEntityLocaleId', 'publishedAt'];
|
|
293
319
|
// return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];
|
|
294
320
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ColumnOptions } from "typeorm";
|
|
2
|
+
import { DatasourceType } from "src/dtos/create-model-metadata.dto";
|
|
3
|
+
|
|
4
|
+
const LONG_TEXT_MAP: Record<DatasourceType, ColumnOptions> = {
|
|
5
|
+
[DatasourceType.postgres]: { type: "text" },
|
|
6
|
+
[DatasourceType.mssql]: { type: "nvarchar", length: "max" },
|
|
7
|
+
[DatasourceType.mysql]: { type: "longtext" },
|
|
8
|
+
[DatasourceType.mariadb]: { type: "longtext" },
|
|
9
|
+
[DatasourceType.oracle]: { type: "clob" },
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const solidCoreDbType: DatasourceType =
|
|
13
|
+
Object.values(DatasourceType).includes(process.env.SOLID_CORE_DB_TYPE as DatasourceType)
|
|
14
|
+
? (process.env.SOLID_CORE_DB_TYPE as DatasourceType)
|
|
15
|
+
: DatasourceType.postgres;
|
|
16
|
+
|
|
17
|
+
export function getColumnType(solidType: string): ColumnOptions {
|
|
18
|
+
switch (solidType) {
|
|
19
|
+
case "longText":
|
|
20
|
+
case "richText":
|
|
21
|
+
return LONG_TEXT_MAP[solidCoreDbType];
|
|
22
|
+
|
|
23
|
+
default:
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -26,6 +26,7 @@ export * from './decorators/mail-provider.decorator'
|
|
|
26
26
|
export * from './decorators/security-rule-config-provider.decorator'
|
|
27
27
|
|
|
28
28
|
export * from './dtos/post-chatter-message.dto'
|
|
29
|
+
export * from './dtos/security-rule-config.dto'
|
|
29
30
|
export * from './dtos/basic-filters.dto'
|
|
30
31
|
export * from './dtos/solid-request-context.dto'
|
|
31
32
|
export * from './dtos/change-password.dto'
|
|
@@ -99,6 +100,8 @@ export * from './dtos/update-user-activity-history.dto'
|
|
|
99
100
|
|
|
100
101
|
export * from './entities/action-metadata.entity'
|
|
101
102
|
export * from './entities/common.entity'
|
|
103
|
+
export * from './entities/legacy-common.entity'
|
|
104
|
+
export * from './entities/legacy-common-with-id.entity'
|
|
102
105
|
export * from './entities/email-attachment.entity'
|
|
103
106
|
export * from './entities/email-template.entity'
|
|
104
107
|
export * from './entities/field-metadata.entity'
|
|
@@ -134,6 +137,7 @@ export * from './entities/dashboard-variable.entity'
|
|
|
134
137
|
export * from './entities/dashboard-question.entity'
|
|
135
138
|
export * from './entities/dashboard-question-sql-dataset-config.entity'
|
|
136
139
|
export * from './entities/ai-interaction.entity'
|
|
140
|
+
export * from './entities/model-sequence.entity'
|
|
137
141
|
|
|
138
142
|
export * from './enums/auth-type.enum'
|
|
139
143
|
export * from './decorators/disallow-in-production.decorator'
|
|
@@ -205,7 +209,7 @@ export * from './listeners/user-registration.listener'
|
|
|
205
209
|
export * from './passport-strategies/google-oauth.strategy'
|
|
206
210
|
export * from './passport-strategies/local.strategy'
|
|
207
211
|
|
|
208
|
-
export * from './providers/list-of-values-selection-providers.service'
|
|
212
|
+
export * from './services/selection-providers/list-of-values-selection-providers.service'
|
|
209
213
|
|
|
210
214
|
// seed-data
|
|
211
215
|
export * from './seeders/email-template-seeder.service'
|
|
@@ -296,6 +300,8 @@ export * from './subscribers/audit.subscriber'
|
|
|
296
300
|
export * from './transformers/array-transformer'
|
|
297
301
|
export * from './transformers/boolean-transformer'
|
|
298
302
|
export * from './transformers/integer-transformer'
|
|
303
|
+
export { default as datetimeTransformer } from './transformers/datetime-transformer'
|
|
304
|
+
export * from './transformers/typeorm/local-date-time-transformer'
|
|
299
305
|
|
|
300
306
|
export * from './validators/is-parsable-int'
|
|
301
307
|
|
|
@@ -304,6 +310,5 @@ export * from './interfaces'
|
|
|
304
310
|
export * from './solid-core.module'
|
|
305
311
|
|
|
306
312
|
export * from './winston.logger'
|
|
307
|
-
export { default as datetimeTransformer } from './transformers/datetime-transformer'
|
|
308
313
|
|
|
309
314
|
export { ERROR_MESSAGES } from './constants/error-messages'
|
package/src/interfaces.ts
CHANGED
|
@@ -64,7 +64,10 @@ export interface CodeGenerationOptions {
|
|
|
64
64
|
modelId?: number;
|
|
65
65
|
modelUserKey?: string;
|
|
66
66
|
fieldIdsForRemoval?: number[];
|
|
67
|
+
fieldNamesForRemoval?: string[];
|
|
67
68
|
dryRun?: boolean;
|
|
69
|
+
fieldIdsForRefresh?: number[];
|
|
70
|
+
fieldNamesForRefresh?: string[];
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
export interface TriggerMcpClientOptions {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable } from "@nestjs/common";
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
2
2
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
3
3
|
import { IEntityPostComputeFieldProvider, QueuesModuleOptions } from "src/interfaces";
|
|
4
4
|
import { QueueMessage } from "src/interfaces/mq";
|
|
@@ -11,6 +11,7 @@ import computedFieldEvaluationQueueOptions from "./computed-field-evaluation-que
|
|
|
11
11
|
|
|
12
12
|
@Injectable()
|
|
13
13
|
export class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscriber<ComputedFieldEvaluationPayload> {
|
|
14
|
+
private readonly _logger = new Logger(ComputedFieldEvaluationSubscriberRabbitmq.name);
|
|
14
15
|
constructor(
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
16
17
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -30,9 +31,19 @@ export class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscribe
|
|
|
30
31
|
// It will then call the corresponding provider computeAndSave method to perform the evaluation
|
|
31
32
|
async subscribe(message: QueueMessage<ComputedFieldEvaluationPayload>) {
|
|
32
33
|
const { databaseEntity, ...computedFieldMetadata } = message.payload;
|
|
33
|
-
const
|
|
34
|
+
const { computedFieldValueProviderName } = computedFieldMetadata;
|
|
35
|
+
const provider = this.solidRegistry.getComputedFieldProvider(computedFieldValueProviderName);
|
|
34
36
|
// Get the instance of the provider and assert it is of type IEntityComputedFieldProvider
|
|
35
37
|
const providerInstance = provider.instance as IEntityPostComputeFieldProvider<any, any>; // IEntityComputedFieldProvider
|
|
36
|
-
|
|
38
|
+
if (typeof providerInstance.postComputeAndSaveValue !== 'function') {
|
|
39
|
+
this._logger.warn(`Provider "${computedFieldValueProviderName}" does not implement postComputeAndSaveValue; skipping post-compute.`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
await providerInstance.postComputeAndSaveValue(databaseEntity, {
|
|
43
|
+
...computedFieldMetadata,
|
|
44
|
+
computedFieldValueProviderCtxt: {
|
|
45
|
+
...(computedFieldMetadata.computedFieldValueProviderCtxt || {}),
|
|
46
|
+
},
|
|
47
|
+
}); //FIXME There should some way to check/assert if the provider actually has a postComputeAndSaveValue
|
|
37
48
|
}
|
|
38
|
-
}
|
|
49
|
+
}
|