@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
|
@@ -53,8 +53,6 @@ exports.ModuleMetadataSeederService = void 0;
|
|
|
53
53
|
const common_1 = require("@nestjs/common");
|
|
54
54
|
const fs = __importStar(require("fs"));
|
|
55
55
|
const path = __importStar(require("path"));
|
|
56
|
-
const common_config_1 = __importDefault(require("../config/common.config"));
|
|
57
|
-
const iam_config_1 = require("../config/iam.config");
|
|
58
56
|
const dashboard_repository_1 = require("../repository/dashboard.repository");
|
|
59
57
|
const security_rule_repository_1 = require("../repository/security-rule.repository");
|
|
60
58
|
const authentication_service_1 = require("../services/authentication.service");
|
|
@@ -64,14 +62,12 @@ const setting_service_1 = require("../services/setting.service");
|
|
|
64
62
|
const sms_template_service_1 = require("../services/sms-template.service");
|
|
65
63
|
const user_service_1 = require("../services/user.service");
|
|
66
64
|
const typeorm_1 = require("typeorm");
|
|
67
|
-
const app_builder_config_1 = __importDefault(require("../config/app-builder.config"));
|
|
68
65
|
const module_helper_1 = require("../helpers/module.helper");
|
|
69
66
|
const solid_registry_1 = require("../helpers/solid-registry");
|
|
70
67
|
const action_metadata_service_1 = require("../services/action-metadata.service");
|
|
71
68
|
const field_metadata_service_1 = require("../services/field-metadata.service");
|
|
72
69
|
const media_storage_provider_metadata_seeder_service_1 = require("../services/media-storage-provider-metadata-seeder.service");
|
|
73
70
|
const media_storage_provider_metadata_service_1 = require("../services/media-storage-provider-metadata.service");
|
|
74
|
-
const menu_item_metadata_service_1 = require("../services/menu-item-metadata.service");
|
|
75
71
|
const model_metadata_service_1 = require("../services/model-metadata.service");
|
|
76
72
|
const module_metadata_service_1 = require("../services/module-metadata.service");
|
|
77
73
|
const role_metadata_service_1 = require("../services/role-metadata.service");
|
|
@@ -80,12 +76,13 @@ const solid_core_metadata_json_1 = __importDefault(require("./seed-data/solid-co
|
|
|
80
76
|
const system_fields_seeder_service_1 = require("./system-fields-seeder.service");
|
|
81
77
|
const src_1 = require("..");
|
|
82
78
|
const create_role_metadata_dto_1 = require("../dtos/create-role-metadata.dto");
|
|
83
|
-
const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
|
|
84
79
|
const permission_metadata_repository_1 = require("../repository/permission-metadata.repository");
|
|
85
|
-
const setting_repository_1 = require("../repository/setting.repository");
|
|
86
80
|
const saved_filters_repository_1 = require("../repository/saved-filters.repository");
|
|
81
|
+
const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
|
|
82
|
+
const setting_repository_1 = require("../repository/setting.repository");
|
|
83
|
+
const model_sequence_repository_1 = require("../repository/model-sequence.repository");
|
|
87
84
|
let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMetadataSeederService {
|
|
88
|
-
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService,
|
|
85
|
+
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, mediaStorageProviderSeederService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, dashboardRepo, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo) {
|
|
89
86
|
this.moduleMetadataService = moduleMetadataService;
|
|
90
87
|
this.modelMetadataService = modelMetadataService;
|
|
91
88
|
this.fieldMetadataService = fieldMetadataService;
|
|
@@ -94,7 +91,6 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
94
91
|
this.userService = userService;
|
|
95
92
|
this.authenticationService = authenticationService;
|
|
96
93
|
this.solidActionService = solidActionService;
|
|
97
|
-
this.solidMenuItemService = solidMenuItemService;
|
|
98
94
|
this.solidViewService = solidViewService;
|
|
99
95
|
this.mediaStorageProviderSeederService = mediaStorageProviderSeederService;
|
|
100
96
|
this.emailTemplateService = emailTemplateService;
|
|
@@ -102,9 +98,6 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
102
98
|
this.listOfValuesService = listOfValuesService;
|
|
103
99
|
this.permissionRepo = permissionRepo;
|
|
104
100
|
this.solidRegistry = solidRegistry;
|
|
105
|
-
this.appBuilderConfiguration = appBuilderConfiguration;
|
|
106
|
-
this.iamConfiguration = iamConfiguration;
|
|
107
|
-
this.commonConfiguration = commonConfiguration;
|
|
108
101
|
this.settingService = settingService;
|
|
109
102
|
this.settingsRepo = settingsRepo;
|
|
110
103
|
this.securityRuleRepo = securityRuleRepo;
|
|
@@ -113,14 +106,30 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
113
106
|
this.scheduledJobRepository = scheduledJobRepository;
|
|
114
107
|
this.savedFiltersRepo = savedFiltersRepo;
|
|
115
108
|
this.dataSource = dataSource;
|
|
109
|
+
this.modelSequenceRepo = modelSequenceRepo;
|
|
116
110
|
this.logger = new common_1.Logger(ModuleMetadataSeederService_1.name);
|
|
117
111
|
}
|
|
118
|
-
async seed() {
|
|
112
|
+
async seed(conf) {
|
|
119
113
|
await this.seedGlobalMetadata();
|
|
120
114
|
const seedDataFiles = this.seedDataFiles;
|
|
121
115
|
this.logger.debug(`Seed data files are: ${seedDataFiles}`);
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
let modulesToSeed = null;
|
|
117
|
+
if (conf && Array.isArray(conf.modulesToSeed)) {
|
|
118
|
+
modulesToSeed = conf.modulesToSeed;
|
|
119
|
+
this.logger.log(`Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.logger.log(`No modulesToSeed provided. Seeding ALL modules.`);
|
|
123
|
+
}
|
|
124
|
+
const filteredSeedDataFiles = modulesToSeed
|
|
125
|
+
? seedDataFiles.filter((file) => modulesToSeed.includes(file.moduleMetadata?.name))
|
|
126
|
+
: seedDataFiles;
|
|
127
|
+
if (filteredSeedDataFiles.length === 0) {
|
|
128
|
+
this.logger.warn(`No modules matched the provided modulesToSeed list.`);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
for (let i = 0; i < filteredSeedDataFiles.length; i++) {
|
|
132
|
+
const overallMetadata = filteredSeedDataFiles[i];
|
|
124
133
|
const moduleMetadata = overallMetadata.moduleMetadata;
|
|
125
134
|
this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
|
|
126
135
|
this.logger.log(`Seeding Module / Model / Fields`);
|
|
@@ -153,6 +162,8 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
153
162
|
await this.seedScheduledJobs(moduleMetadata, overallMetadata);
|
|
154
163
|
this.logger.log(`Seeding Saved Filters`);
|
|
155
164
|
await this.seedSavedFilters(moduleMetadata, overallMetadata);
|
|
165
|
+
this.logger.log(`Seeding Model Sequences`);
|
|
166
|
+
await this.seedModelSequences(overallMetadata);
|
|
156
167
|
this.logger.debug(`[End] module seed data: ${overallMetadata}`);
|
|
157
168
|
}
|
|
158
169
|
await this.setupDefaultRolesWithPermissions();
|
|
@@ -254,7 +265,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
254
265
|
get seedDataFiles() {
|
|
255
266
|
const typedSolidCoreMetadata = structuredClone(solid_core_metadata_json_1.default);
|
|
256
267
|
const seedDataFiles = [typedSolidCoreMetadata];
|
|
257
|
-
const enabledModules = (0, module_helper_1.
|
|
268
|
+
const enabledModules = (0, module_helper_1.getDynamicModuleNamesBasedOnMetadata)();
|
|
258
269
|
for (const enabledModule of enabledModules) {
|
|
259
270
|
const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;
|
|
260
271
|
const fullPath = path.join(process.cwd(), enabledModuleSeedFile);
|
|
@@ -272,6 +283,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
272
283
|
await this.seedDefaultMediaStorageProviders();
|
|
273
284
|
this.logger.log(`Seeding System Fields Metadata`);
|
|
274
285
|
await this.seedDefaultSystemFields();
|
|
286
|
+
this.logger.debug(`Global metadata seeding completed`);
|
|
275
287
|
}
|
|
276
288
|
async seedDefaultSystemFields() {
|
|
277
289
|
await this.systemFieldsSeederService.seed();
|
|
@@ -315,6 +327,12 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
315
327
|
}
|
|
316
328
|
this.logger.debug(`[End] Processing Media Storage Provider`);
|
|
317
329
|
}
|
|
330
|
+
async seedModelSequences(overallMetadata) {
|
|
331
|
+
this.logger.debug(`[Start] Processing model sequences`);
|
|
332
|
+
const modelSequences = overallMetadata.modelSequences;
|
|
333
|
+
await this.handleSeedModelSequences(modelSequences);
|
|
334
|
+
this.logger.debug(`[End] Processing model sequences`);
|
|
335
|
+
}
|
|
318
336
|
async handleSeedEmailTemplates(emailTemplates, moduleName) {
|
|
319
337
|
if (!emailTemplates) {
|
|
320
338
|
return;
|
|
@@ -322,11 +340,24 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
322
340
|
for (let i = 0; i < emailTemplates.length; i++) {
|
|
323
341
|
const emailTemplate = emailTemplates[i];
|
|
324
342
|
if (moduleName === 'solid-core') {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
343
|
+
let moduleRoot = null;
|
|
344
|
+
try {
|
|
345
|
+
moduleRoot = path.dirname(require.resolve('@solidstarters/solid-core/package.json'));
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
this.logger.debug('Could not resolve @solidstarters/solid-core from node_modules, assuming local execution');
|
|
349
|
+
}
|
|
350
|
+
const filePathInternal = 'src/seeders/seed-data/email-templates/';
|
|
351
|
+
let filePath;
|
|
352
|
+
if (moduleRoot) {
|
|
353
|
+
filePath = path.join(moduleRoot, filePathInternal, emailTemplate.body);
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
const localCoreRoot = process.cwd();
|
|
357
|
+
filePath = path.join(localCoreRoot, filePathInternal, emailTemplate.body);
|
|
358
|
+
}
|
|
328
359
|
if (fs.existsSync(filePath)) {
|
|
329
|
-
emailTemplate.body = fs.readFileSync(filePath, 'utf-8')
|
|
360
|
+
emailTemplate.body = fs.readFileSync(filePath, 'utf-8');
|
|
330
361
|
}
|
|
331
362
|
}
|
|
332
363
|
else {
|
|
@@ -347,11 +378,24 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
347
378
|
for (let i = 0; i < smsTemplates.length; i++) {
|
|
348
379
|
const smsTemplate = smsTemplates[i];
|
|
349
380
|
if (moduleName === 'solid-core') {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
381
|
+
let moduleRoot = null;
|
|
382
|
+
try {
|
|
383
|
+
moduleRoot = path.dirname(require.resolve('@solidstarters/solid-core/package.json'));
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
this.logger.debug('Could not resolve @solidstarters/solid-core from node_modules, assuming local execution');
|
|
387
|
+
}
|
|
388
|
+
const filePathInternal = 'src/seeders/seed-data/sms-templates/';
|
|
389
|
+
let filePath;
|
|
390
|
+
if (moduleRoot) {
|
|
391
|
+
filePath = path.join(moduleRoot, filePathInternal, smsTemplate.body);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
const localCoreRoot = process.cwd();
|
|
395
|
+
filePath = path.join(localCoreRoot, filePathInternal, smsTemplate.body);
|
|
396
|
+
}
|
|
353
397
|
if (fs.existsSync(filePath)) {
|
|
354
|
-
smsTemplate.body = fs.readFileSync(filePath, 'utf-8')
|
|
398
|
+
smsTemplate.body = fs.readFileSync(filePath, 'utf-8');
|
|
355
399
|
}
|
|
356
400
|
}
|
|
357
401
|
else {
|
|
@@ -375,20 +419,29 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
375
419
|
const actionRepo = trx.getRepository(src_1.ActionMetadata);
|
|
376
420
|
const moduleRepo = trx.getRepository(src_1.ModuleMetadata);
|
|
377
421
|
for (const m of menus) {
|
|
378
|
-
const
|
|
422
|
+
const action = m.actionUserKey
|
|
423
|
+
? await actionRepo.findOne({ where: { name: m.actionUserKey }, select: ["id"] })
|
|
424
|
+
: null;
|
|
425
|
+
const module = m.moduleUserKey
|
|
426
|
+
? await moduleRepo.findOne({ where: { name: m.moduleUserKey }, select: ["id"] })
|
|
427
|
+
: null;
|
|
428
|
+
const parentMenuItem = m.parentMenuItemUserKey
|
|
429
|
+
? await menuRepo.findOne({ where: { name: m.parentMenuItemUserKey }, select: ["id"] })
|
|
430
|
+
: null;
|
|
431
|
+
const existing = await menuRepo.findOne({
|
|
432
|
+
where: { name: m.name },
|
|
433
|
+
select: ["id"],
|
|
434
|
+
});
|
|
435
|
+
const base = {
|
|
379
436
|
name: m.name,
|
|
380
437
|
displayName: m.displayName,
|
|
381
|
-
action
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
? await menuRepo.findOne({ where: { name: m.parentMenuItemUserKey }, select: ["id"] })
|
|
389
|
-
: null,
|
|
390
|
-
});
|
|
391
|
-
await menuRepo.upsert(entity, ["name"]);
|
|
438
|
+
action,
|
|
439
|
+
module,
|
|
440
|
+
parentMenuItem,
|
|
441
|
+
sequenceNumber: m.sequenceNumber
|
|
442
|
+
};
|
|
443
|
+
const entity = menuRepo.create(existing ? { id: existing.id, ...base } : base);
|
|
444
|
+
await menuRepo.save(entity);
|
|
392
445
|
}
|
|
393
446
|
const seeded = await menuRepo.find({
|
|
394
447
|
where: { name: (0, typeorm_1.In)(menus.map((m) => m.name)) },
|
|
@@ -435,7 +488,6 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
435
488
|
.insert()
|
|
436
489
|
.into(src_1.MENU_ROLE_JOIN_TABLE_NAME)
|
|
437
490
|
.values(values)
|
|
438
|
-
.orIgnore()
|
|
439
491
|
.execute();
|
|
440
492
|
}
|
|
441
493
|
});
|
|
@@ -507,7 +559,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
507
559
|
fieldMetadata['mediaStorageProvider'] = await this.mediaStorageProviderMetadataService.findOneByUserKey(fieldMetadata.mediaStorageProviderUserKey);
|
|
508
560
|
}
|
|
509
561
|
const affectedField = await this.fieldMetadataService.upsert(fieldMetadata);
|
|
510
|
-
if (fieldMetadata.name === userKeyFieldName) {
|
|
562
|
+
if (fieldMetadata.name === userKeyFieldName || fieldMetadata.isUserKey) {
|
|
511
563
|
const { model, ...fieldData } = affectedField;
|
|
512
564
|
userKeyField = fieldData;
|
|
513
565
|
}
|
|
@@ -572,13 +624,20 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
572
624
|
await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });
|
|
573
625
|
}
|
|
574
626
|
}
|
|
627
|
+
async handleSeedModelSequences(modelSequencesDto) {
|
|
628
|
+
if (!modelSequencesDto || modelSequencesDto.length === 0) {
|
|
629
|
+
this.logger.debug(`No Model Sequences found to seed`);
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
632
|
+
for (const dto of modelSequencesDto) {
|
|
633
|
+
await this.modelSequenceRepo.upsertWithDto(dto);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
575
636
|
};
|
|
576
637
|
exports.ModuleMetadataSeederService = ModuleMetadataSeederService;
|
|
577
638
|
exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetadataSeederService_1 = __decorate([
|
|
578
639
|
(0, common_1.Injectable)(),
|
|
579
|
-
__param(
|
|
580
|
-
__param(17, (0, common_1.Inject)(iam_config_1.iamConfig.KEY)),
|
|
581
|
-
__param(18, (0, common_1.Inject)(common_config_1.default.KEY)),
|
|
640
|
+
__param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => model_metadata_service_1.ModelMetadataService))),
|
|
582
641
|
__metadata("design:paramtypes", [module_metadata_service_1.ModuleMetadataService,
|
|
583
642
|
model_metadata_service_1.ModelMetadataService,
|
|
584
643
|
field_metadata_service_1.FieldMetadataService,
|
|
@@ -587,20 +646,21 @@ exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetada
|
|
|
587
646
|
user_service_1.UserService,
|
|
588
647
|
authentication_service_1.AuthenticationService,
|
|
589
648
|
action_metadata_service_1.ActionMetadataService,
|
|
590
|
-
menu_item_metadata_service_1.MenuItemMetadataService,
|
|
591
649
|
view_metadata_service_1.ViewMetadataService,
|
|
592
650
|
media_storage_provider_metadata_seeder_service_1.MediaStorageProviderMetadataSeederService,
|
|
593
651
|
email_template_service_1.EmailTemplateService,
|
|
594
652
|
sms_template_service_1.SmsTemplateService,
|
|
595
653
|
list_of_values_service_1.ListOfValuesService,
|
|
596
654
|
permission_metadata_repository_1.PermissionMetadataRepository,
|
|
597
|
-
solid_registry_1.SolidRegistry,
|
|
655
|
+
solid_registry_1.SolidRegistry,
|
|
656
|
+
setting_service_1.SettingService,
|
|
598
657
|
setting_repository_1.SettingRepository,
|
|
599
658
|
security_rule_repository_1.SecurityRuleRepository,
|
|
600
659
|
system_fields_seeder_service_1.SystemFieldsSeederService,
|
|
601
660
|
dashboard_repository_1.DashboardRepository,
|
|
602
661
|
scheduled_job_repository_1.ScheduledJobRepository,
|
|
603
662
|
saved_filters_repository_1.SavedFiltersRepository,
|
|
604
|
-
typeorm_1.DataSource
|
|
663
|
+
typeorm_1.DataSource,
|
|
664
|
+
model_sequence_repository_1.ModelSequenceRepository])
|
|
605
665
|
], ModuleMetadataSeederService);
|
|
606
666
|
//# sourceMappingURL=module-metadata-seeder.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-metadata-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable, Logger } from '@nestjs/common';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nimport { ConfigType } from '@nestjs/config';\nimport { InjectRepository } from '@nestjs/typeorm';\nimport commonConfig from 'src/config/common.config';\nimport { iamConfig } from 'src/config/iam.config';\nimport { CreateDashboardDto } from 'src/dtos/create-dashboard.dto';\nimport { CreateEmailTemplateDto } from 'src/dtos/create-email-template.dto';\nimport { CreateListOfValuesDto } from 'src/dtos/create-list-of-values.dto';\nimport { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';\nimport { CreateSettingDto } from 'src/dtos/create-setting.dto';\nimport { CreateSmsTemplateDto } from 'src/dtos/create-sms-template.dto';\nimport { Setting } from 'src/entities/setting.entity';\nimport { DashboardRepository } from 'src/repository/dashboard.repository';\nimport { SecurityRuleRepository } from 'src/repository/security-rule.repository';\nimport { AuthenticationService } from 'src/services/authentication.service';\nimport { EmailTemplateService } from 'src/services/email-template.service';\nimport { ListOfValuesService } from 'src/services/list-of-values.service';\nimport { SettingService } from 'src/services/setting.service';\nimport { SmsTemplateService } from 'src/services/sms-template.service';\nimport { UserService } from 'src/services/user.service';\nimport { DataSource, In, Repository } from 'typeorm';\nimport appBuilderConfig from '../config/app-builder.config';\nimport { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';\nimport { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';\nimport { PermissionMetadata } from '../entities/permission-metadata.entity';\nimport { getDynamicModuleNames } from '../helpers/module.helper';\nimport { SolidRegistry } from '../helpers/solid-registry';\nimport { ActionMetadataService } from '../services/action-metadata.service';\nimport { FieldMetadataService } from '../services/field-metadata.service';\nimport { MediaStorageProviderMetadataSeederService } from '../services/media-storage-provider-metadata-seeder.service';\nimport { MediaStorageProviderMetadataService } from '../services/media-storage-provider-metadata.service';\nimport { MenuItemMetadataService } from '../services/menu-item-metadata.service';\nimport { ModelMetadataService } from '../services/model-metadata.service';\nimport { ModuleMetadataService } from '../services/module-metadata.service';\nimport { RoleMetadataService } from '../services/role-metadata.service';\nimport { ViewMetadataService } from '../services/view-metadata.service';\nimport solidCoreMetadata from './seed-data/solid-core-metadata.json';\nimport { SystemFieldsSeederService } from './system-fields-seeder.service';\n// import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';\nimport { ActionMetadata, MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL, MenuItemMetadata, ModuleMetadata, RoleMetadata } from 'src';\nimport { ADMIN_ROLE_NAME, INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS, PUBLIC_ROLE_NAME } from 'src/dtos/create-role-metadata.dto';\nimport { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';\nimport { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';\nimport { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';\nimport { SettingRepository } from 'src/repository/setting.repository';\nimport { CreateSavedFiltersDto } from 'src/dtos/create-saved-filters.dto';\nimport { SavedFiltersRepository } from 'src/repository/saved-filters.repository';\n\n\n@Injectable()\nexport class ModuleMetadataSeederService {\n private readonly logger = new Logger(ModuleMetadataSeederService.name);\n\n\n constructor(\n private readonly moduleMetadataService: ModuleMetadataService,\n private readonly modelMetadataService: ModelMetadataService,\n private readonly fieldMetadataService: FieldMetadataService,\n private readonly mediaStorageProviderMetadataService: MediaStorageProviderMetadataService,\n private readonly roleService: RoleMetadataService,\n private readonly userService: UserService,\n private readonly authenticationService: AuthenticationService,\n private readonly solidActionService: ActionMetadataService,\n private readonly solidMenuItemService: MenuItemMetadataService,\n private readonly solidViewService: ViewMetadataService,\n private readonly mediaStorageProviderSeederService: MediaStorageProviderMetadataSeederService,\n private readonly emailTemplateService: EmailTemplateService,\n private readonly smsTemplateService: SmsTemplateService,\n private readonly listOfValuesService: ListOfValuesService,\n // @InjectRepository(PermissionMetadata)\n // private readonly permissionRepo: Repository<PermissionMetadata>,\n private readonly permissionRepo: PermissionMetadataRepository,\n private readonly solidRegistry: SolidRegistry,\n @Inject(appBuilderConfig.KEY)\n private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,\n @Inject(iamConfig.KEY) private readonly iamConfiguration: ConfigType<typeof iamConfig>,\n @Inject(commonConfig.KEY)\n private readonly commonConfiguration: ConfigType<typeof commonConfig>,\n private readonly settingService: SettingService,\n // @InjectRepository(Setting, 'default')\n // readonly settingsRepo: Repository<Setting>,\n private readonly settingsRepo: SettingRepository,\n readonly securityRuleRepo: SecurityRuleRepository,\n readonly systemFieldsSeederService: SystemFieldsSeederService,\n readonly dashboardRepo: DashboardRepository,\n readonly scheduledJobRepository: ScheduledJobRepository,\n readonly savedFiltersRepo : SavedFiltersRepository,\n readonly dataSource: DataSource,\n ) { }\n\n async seed() {\n // Global seeding steps i.e across all modules\n await this.seedGlobalMetadata();\n\n // Module specific seeding steps.\n // Get all the module metadata files which needs to be seeded.\n const seedDataFiles = this.seedDataFiles;\n this.logger.debug(`Seed data files are: ${seedDataFiles}`);\n // let usersDetail;\n // For each module metadata file, we will process the seeding steps one by one.\n for (let i = 0; i < seedDataFiles.length; i++) {\n const overallMetadata = seedDataFiles[i];\n const moduleMetadata: CreateModuleMetadataDto = overallMetadata.moduleMetadata;\n this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);\n\n // Process module metadata first. \n this.logger.log(`Seeding Module / Model / Fields`);\n await this.seedModuleModelFields(moduleMetadata);\n\n // Media Storage provider templates\n this.logger.log(`Seeding Media Storage Providers`);\n await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);\n\n // Custom role handling\n this.logger.log(`Seeding Roles`);\n await this.seedRoles(overallMetadata);\n\n // Custom user handling\n this.logger.log(`Seeding Users`);\n await this.seedUsers(overallMetadata);\n\n // Application Module View handling \n this.logger.log(`Seeding Views`);\n await this.seedViews(overallMetadata);\n\n // Application Module Action handling\n this.logger.log(`Seeding Actions`);\n await this.seedActions(overallMetadata);\n\n // Application Module Menu handling \n this.logger.log(`Seeding Menus`);\n await this.seedMenus(overallMetadata);\n\n // Email templates \n this.logger.log(`Seeding Email Templates`);\n await this.seedEmailTemplates(overallMetadata, moduleMetadata.name);\n\n // Sms templates\n this.logger.log(`Seeding Sms Templates`);\n await this.seedSmsTemplates(overallMetadata, moduleMetadata.name);\n\n // Settings\n this.logger.log(`Seeding Default Settings`);\n await this.seedDefaultSettings();\n\n // Security rules\n this.logger.log(`Seeding Security Rules`);\n await this.seedSecurityRules(overallMetadata);\n\n // List Of Values\n this.logger.log(`Seeding List Of Values`);\n await this.seedListOfValues(moduleMetadata, overallMetadata);\n\n // Dashboards\n this.logger.log(`Seeding Dashboards`);\n await this.seedDashboards(moduleMetadata, overallMetadata);\n\n // Scheduled Jobs\n this.logger.log(`Seeding Scheduled Jobs`);\n await this.seedScheduledJobs(moduleMetadata, overallMetadata);\n\n // Saved Filters\n this.logger.log(`Seeding Saved Filters`);\n await this.seedSavedFilters(moduleMetadata, overallMetadata);\n \n this.logger.debug(`[End] module seed data: ${overallMetadata}`);\n }\n\n // Setup default roles with permissions.\n await this.setupDefaultRolesWithPermissions();\n\n this.logger.log(`All Seeders finished`);\n\n //FIXME: Handle displaying the created users credentials in a better way.\n // this.logger.log(`Newly created username is: ${usersDetail?.length > 0 ? usersDetail[0]?.username : ''} and password is ${usersDetail?.length > 0 ? usersDetail[0]?.password : ''}`);\n }\n\n private async seedScheduledJobs(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);\n const scheduledJobs: CreateScheduledJobDto[] = overallMetadata.scheduledJobs;\n if (scheduledJobs?.length > 0) {\n await this.handleSeedScheduledJobs(scheduledJobs);\n }\n this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);\n }\n\n private async seedSavedFilters(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing saved filters for ${moduleMetadata.name}`);\n const savedFilters: CreateSavedFiltersDto[] = overallMetadata.savedFilters;\n if (savedFilters?.length > 0) {\n await this.handleSeedSavedFilters(savedFilters);\n }\n this.logger.debug(`[End] Processing saved filters for ${moduleMetadata.name}`);\n } \n\n private async seedDashboards(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);\n const dashboards: CreateDashboardDto[] = overallMetadata.dashboards;\n await this.handleSeedDashboards(dashboards);\n this.logger.debug(`[End] Processing dashboards for ${moduleMetadata.name}`);\n }\n\n private async seedListOfValues(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing List Of Values for ${moduleMetadata.name}`);\n const listOfValues: CreateListOfValuesDto[] = overallMetadata.listOfValues;\n await this.handleSeedListOfValues(listOfValues);\n this.logger.debug(`[End] Processing List Of Values for ${moduleMetadata.name}`);\n }\n\n private async setupDefaultRolesWithPermissions() {\n this.logger.debug(`About to add all permissions to the Admin role`);\n await this.roleService.addAllPermissionsToRole(ADMIN_ROLE_NAME);\n // 2. Give permissions to the Internal / Public role.\n this.logger.debug(`About to add all permissions to the Internal role`);\n await this.roleService.addPermissionToRole(INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS);\n this.logger.debug(`About to add all permissions to the Public role`);\n await this.roleService.addPermissionToRole(PUBLIC_ROLE_NAME, ['SettingController.wrapSettings', 'AuthenticationController.logout']);\n }\n\n private async seedSecurityRules(overallMetadata: any) {\n this.logger.debug(`[Start] Processing security rules`);\n const securityRules: CreateSecurityRuleDto[] = overallMetadata.securityRules;\n await this.handleSeedSecurityRules(securityRules);\n this.logger.debug(`[End] Processing security rules`);\n }\n\n // Ok\n private async seedDefaultSettings() {\n this.logger.debug(`[Start] Processing settings`);\n await this.settingService.seedDefaultSettings();\n this.logger.debug(`[End] Processing settings`);\n }\n\n private async seedSmsTemplates(overallMetadata: any, moduleName: string) {\n this.logger.debug(`[Start] Processing sms templates`);\n const smsTemplates: CreateSmsTemplateDto[] = overallMetadata.smsTemplates;\n await this.handleSeedSmsTemplates(smsTemplates, moduleName);\n this.logger.debug(`[End] Processing sms templates`);\n }\n\n // OK\n private async seedEmailTemplates(overallMetadata: any, moduleName: string) {\n this.logger.debug(`[Start] Processing email templates`);\n const emailTemplates: CreateEmailTemplateDto[] = overallMetadata.emailTemplates;\n await this.handleSeedEmailTemplates(emailTemplates, moduleName);\n this.logger.debug(`[End] Processing email templates`);\n }\n\n // Ok\n private async seedMenus(overallMetadata: any) {\n this.logger.debug(`[Start] Processing menus`);\n const menus = overallMetadata.menus;\n await this.handleSeedMenus(menus);\n this.logger.debug(`[End] Processing menus`);\n }\n\n // Ok\n private async seedActions(overallMetadata: any) {\n this.logger.debug(`[Start] Processing actions`);\n const actions = overallMetadata.actions;\n await this.handleSeedActions(actions);\n this.logger.debug(`[End] Processing actions`);\n }\n\n // Ok\n private async seedViews(overallMetadata: any) {\n this.logger.debug(`[Start] Processing views`);\n const views = overallMetadata.views;\n await this.handleSeedViews(views);\n this.logger.debug(`[End] Processing views`);\n }\n\n // Ok\n private async seedUsers(overallMetadata: any) {\n this.logger.debug(`[Start] Processing users`);\n const users = overallMetadata.users;\n // usersDetail = users;\n await this.handleSeedUsers(users);\n this.logger.debug(`[End] Processing users`);\n }\n\n // OK\n private async seedRoles(overallMetadata: any) {\n this.logger.debug(`[Start] Processing roles`);\n // While creating roles we are only passing the role name to be used. \n await this.roleService.createRolesIfNotExists(overallMetadata.roles.map(role => { return { name: role.name }; }));\n // After roles are created, we iterate over all roles and attach permissions (if specified in the seeder json) to the respective role.\n // Every role configuration in the seeder json can optionally have a permissions attribute. \n for (const role of overallMetadata.roles) {\n if (role.permissions) {\n await this.roleService.addPermissionsToRole(role.name, role.permissions);\n }\n }\n this.logger.debug(`[End] Processing roles`);\n }\n\n // OK\n private get seedDataFiles(): any[] {\n const typedSolidCoreMetadata = structuredClone(solidCoreMetadata);\n const seedDataFiles = [typedSolidCoreMetadata];\n const enabledModules = getDynamicModuleNames();\n for (const enabledModule of enabledModules) {\n const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;\n const fullPath = path.join(process.cwd(), enabledModuleSeedFile);\n\n if (fs.existsSync(fullPath)) {\n const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));\n seedDataFiles.push(overallMetadata);\n }\n }\n\n return seedDataFiles;\n }\n\n // OK\n private async seedGlobalMetadata() {\n this.logger.log(`Seeding Permissions`);\n await this.seedPermissions();\n\n this.logger.log(`Seeding Default Media Storage Providers`);\n await this.seedDefaultMediaStorageProviders();\n\n this.logger.log(`Seeding System Fields Metadata`);\n await this.seedDefaultSystemFields();\n }\n\n private async seedDefaultSystemFields() {\n await this.systemFieldsSeederService.seed();\n }\n\n\n // OK\n private async seedPermissions() {\n\n const controllers = this.solidRegistry.getControllers();\n\n // Loop over the countries and create them.\n for (let id = 0; id < controllers.length; id++) {\n try {\n const controller = controllers[id];\n // this.logger.log(`Resolving controller: ${controller.name}`);\n\n const methods = controller.methods;\n for (let mId = 0; mId < methods.length; mId++) {\n\n const methodName = methods[mId];\n const permissionName = `${controller.name}.${methodName}`;\n\n const existingPermission = await this.permissionRepo.findOne({\n where: {\n name: permissionName\n }\n });\n\n // if (existingPermission) {\n // this.logger.log(`Permission ${permissionName} already exists.`);\n // }\n // else { }\n\n if (!existingPermission) {\n\n this.logger.log(`Permission ${permissionName} does not exist, creating new.`);\n\n const newPermission = this.permissionRepo.create({\n name: permissionName\n });\n await this.permissionRepo.save(newPermission);\n\n\n }\n }\n\n } catch (error) {\n this.logger.error(error);\n }\n }\n }\n\n // OK\n private async seedDefaultMediaStorageProviders() {\n await this.mediaStorageProviderSeederService.seed();\n }\n\n // OK\n private async seedMediaStorageProviders(mediaStorageProviders: any[]) {\n this.logger.debug(`[Start] Processing Media Storage Provider`);\n\n for (let i = 0; i < mediaStorageProviders.length; i++) {\n const mediaStorageProvider = mediaStorageProviders[i];\n await this.mediaStorageProviderMetadataService.upsert(mediaStorageProvider);\n }\n this.logger.debug(`[End] Processing Media Storage Provider`);\n }\n\n // OK\n private async handleSeedEmailTemplates(emailTemplates: CreateEmailTemplateDto[], moduleName: string) {\n if (!emailTemplates) {\n return;\n }\n\n for (let i = 0; i < emailTemplates.length; i++) {\n const emailTemplate = emailTemplates[i];\n // this.logger.log(`Found ${emailTemplate.name} email template`);\n\n // We need to load the actual template contents. \n if (moduleName === 'solid-core') {\n const modulePath = path.dirname(require.resolve('@solidstarters/solid-core'));\n const seedDataPath = path.join(modulePath, '../src/seeders/seed-data/email-templates');\n const filePath = path.join(seedDataPath, emailTemplate.body);\n // this.logger.log(`Seeding email template from solid-core at path: ${filePath}`);\n if (fs.existsSync(filePath)) {\n emailTemplate.body = fs.readFileSync(filePath, 'utf-8').toString();\n }\n }\n else {\n // Check if file exists\n const emailTemplateHandlebar = `module-metadata/${moduleName}/email-templates/${emailTemplate.body}`\n const fullPath = path.join(process.cwd(), emailTemplateHandlebar);\n // this.logger.log(`Seeding custom email template from consuming model at path: ${fullPath}`);\n if (fs.existsSync(fullPath)) {\n emailTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();\n }\n }\n\n // Save to DB.\n await this.emailTemplateService.removeByName(emailTemplate.name);\n await this.emailTemplateService.create(emailTemplate);\n }\n\n }\n\n // Ok\n private async handleSeedSmsTemplates(smsTemplates: CreateSmsTemplateDto[], moduleName: string) {\n if (!smsTemplates) {\n return;\n }\n\n for (let i = 0; i < smsTemplates.length; i++) {\n const smsTemplate = smsTemplates[i];\n // this.logger.log(`Found ${smsTemplate.name} sms template`);\n\n // We need to load the actual template contents. \n if (moduleName === 'solid-core') {\n const modulePath = path.dirname(require.resolve('@solidstarters/solid-core'));\n const seedDataPath = path.join(modulePath, '../src/seeders/seed-data/sms-templates');\n const filePath = path.join(seedDataPath, smsTemplate.body);\n // this.logger.log(`Seeding sms template from solid-core at path: ${filePath}`);\n if (fs.existsSync(filePath)) {\n smsTemplate.body = fs.readFileSync(filePath, 'utf-8').toString();\n }\n }\n else {\n // Check if file exists\n const emailTemplateHandlebar = `module-metadata/${moduleName}/sms-templates/${smsTemplate.body}`\n const fullPath = path.join(process.cwd(), emailTemplateHandlebar);\n // this.logger.log(`Seeding custom sms template from consuming model at path: ${fullPath}`);\n if (fs.existsSync(fullPath)) {\n smsTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();\n }\n }\n\n\n // Save to DB.\n await this.smsTemplateService.removeByName(smsTemplate.name);\n await this.smsTemplateService.create(smsTemplate);\n }\n }\n\n // Not OK\n private async handleSeedMenus(menus: any) {\n if (!menus) {\n return;\n }\n\n await this.dataSource.transaction(async (trx) => {\n const menuRepo = trx.getRepository(MenuItemMetadata);\n const roleRepo = trx.getRepository(RoleMetadata);\n const actionRepo = trx.getRepository(ActionMetadata);\n const moduleRepo = trx.getRepository(ModuleMetadata);\n\n // 1) Upsert menus WITHOUT roles\n for (const m of menus) {\n const entity = menuRepo.create({\n name: m.name,\n displayName: m.displayName,\n action: m.actionUserKey\n ? await actionRepo.findOne({ where: { name: m.actionUserKey }, select: [\"id\"] })\n : null,\n module: m.moduleUserKey\n ? await moduleRepo.findOne({ where: { name: m.moduleUserKey }, select: [\"id\"] })\n : null,\n parentMenuItem: m.parentMenuItemUserKey\n ? await menuRepo.findOne({ where: { name: m.parentMenuItemUserKey }, select: [\"id\"] })\n : null,\n });\n await menuRepo.upsert(entity, [\"name\"]); // or [\"userKey\"]\n }\n\n // 2) Fetch ids for batching\n const seeded = await menuRepo.find({\n where: { name: In(menus.map((m: any) => m.name)) },\n select: [\"id\", \"name\"],\n });\n const idByName = new Map(seeded.map(s => [s.name, s.id]));\n\n // 3) Build desired join rows once\n const admin = await roleRepo.findOne({ where: { name: ADMIN_ROLE_NAME }, select: [\"id\", \"name\"] });\n const allRoleNames = new Set<string>();\n for (const m of menus) (m.roles ?? []).forEach((r: string) => allRoleNames.add(r));\n if (admin) allRoleNames.add(admin.name);\n\n const roles = await roleRepo.find({\n where: { name: In([...allRoleNames]) },\n select: [\"id\", \"name\"],\n });\n const roleByName = new Map(roles.map(r => [r.name, r]));\n\n const joinRows: Array<{ menuId: number; roleId: number }> = [];\n for (const m of menus) {\n const menuId = idByName.get(m.name)!;\n const roleNames = new Set<string>([...(m.roles ?? []), admin?.name].filter(Boolean) as string[]);\n for (const rn of roleNames) {\n const role = roleByName.get(rn);\n if (role) joinRows.push({ menuId, roleId: role.id });\n }\n }\n\n // 4) Replace in bulk — QueryBuilder version\n\n // 4a) delete existing for affected menus\n const menuIds = [...new Set(joinRows.map(r => r.menuId))];\n if (menuIds.length) {\n await trx\n .createQueryBuilder()\n .delete()\n .from(MENU_ROLE_JOIN_TABLE_NAME) // string table name is fine\n .where(`${MENU_ROLE_JOIN_TABLE_NAME_MENU_COL} IN (:...ids)`, { ids: menuIds })\n .execute();\n }\n\n // 4b) bulk insert all pairs\n if (joinRows.length) {\n // Build objects with the exact column names used by the join table\n const values = joinRows.map(r => ({\n [MENU_ROLE_JOIN_TABLE_NAME_MENU_COL]: r.menuId,\n [MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL]: r.roleId,\n }));\n\n await trx\n .createQueryBuilder()\n .insert()\n .into(MENU_ROLE_JOIN_TABLE_NAME) // string table name\n .values(values)\n .orIgnore() // optional if you have a UNIQUE(menuItemId, roleId) and want to skip dups\n .execute();\n }\n });\n }\n\n // Ok\n private async handleSeedActions(actions: any) {\n if (!actions) {\n return;\n }\n\n for (let j = 0; j < actions.length; j++) {\n const actionData = actions[j];\n actionData['module'] = await this.moduleMetadataService.findOneByUserKey(actionData.moduleUserKey);\n if (actionData.type === 'solid') {\n actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);\n actionData['view'] = await this.solidViewService.findOneByUserKey(actionData.viewUserKey);\n }\n else {\n if (actionData.modelUserKey) {\n actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);\n }\n }\n await this.solidActionService.upsert(actionData);\n }\n }\n\n // Ok\n private async handleSeedViews(views: any) {\n if (!views) {\n return;\n }\n\n for (let j = 0; j < views.length; j++) {\n const viewData = views[j];\n\n // preety format the layout & context. \n viewData['layout'] = JSON.stringify(viewData['layout'], null, 2);\n\n viewData['module'] = await this.moduleMetadataService.findOneByUserKey(viewData.moduleUserKey);\n viewData['model'] = await this.modelMetadataService.findOneByUserKey(viewData.modelUserKey);\n\n // Changed the below to upsert as now we are saving modifications to the view json to file system also.\n await this.solidViewService.upsert(viewData);\n }\n }\n\n // OK\n private async handleSeedUsers(users) {\n if (!users) {\n return;\n }\n\n for (let l = 0; l < users.length; l++) {\n const user = users[l];\n let exisitingUser = await this.userService.findOneByUsername(user.username);\n if (!exisitingUser) {\n exisitingUser = await this.authenticationService.signUp(user);\n\n this.logger.log(`Newly created user is ${user}`);\n }\n //FIXME: Create the user roles assignment logic here.\n // now add Roles to user.\n // for (let m = 0; m < roles.length; m++) {\n // const role = roles[m];\n // await this.userService.addRoleToUser(user.email, role.name);\n // }\n }\n }\n\n // OK\n private async seedModuleModelFields(moduleMetadata: CreateModuleMetadataDto) {\n this.logger.debug(`[Start] Processing module metadata`);\n\n // First we create the module. \n const module = await this.moduleMetadataService.upsert(moduleMetadata);\n\n // Next create all the models. \n const modelsMetadata: CreateModelMetadataDto[] = moduleMetadata.models;\n for (let j = 0; j < modelsMetadata.length; j++) {\n const modelMetadata = modelsMetadata[j];\n\n // Before creating the model, we need to make sure we are linking it to the newly created module.\n modelMetadata['module'] = module;\n const { fields: fieldsMetadata, ...modelMetaDataWithoutFields } = modelMetadata;\n\n // Load and set the parent model if it exists.\n if (modelMetadata.isChild && modelMetadata.parentModelUserKey) {\n const parentModel = await this.modelMetadataService.findOneByUserKey(modelMetadata.parentModelUserKey);\n modelMetaDataWithoutFields['parentModel'] = parentModel;\n }\n\n await this.modelMetadataService.upsert(modelMetaDataWithoutFields);\n const model = await this.modelMetadataService.findOneBySingularName(modelMetadata.singularName)\n\n // iterate over all fields and upsert. \n let userKeyField = null;\n const userKeyFieldName = modelMetadata.userKeyFieldUserKey;\n for (let k = 0; k < fieldsMetadata.length; k++) {\n const fieldMetadata = fieldsMetadata[k];\n\n // Link model & mediaStorageProvider. \n fieldMetadata['model'] = model;\n if (fieldMetadata.mediaStorageProviderUserKey) {\n fieldMetadata['mediaStorageProvider'] = await this.mediaStorageProviderMetadataService.findOneByUserKey(fieldMetadata.mediaStorageProviderUserKey);\n }\n // console.log(fieldMetadata.displayName);\n\n const affectedField = await this.fieldMetadataService.upsert(fieldMetadata);\n if (fieldMetadata.name === userKeyFieldName) {\n const { model, ...fieldData } = affectedField;\n userKeyField = fieldData;\n }\n }\n\n // Now that we have created fields & model update the model to stamp the userKeyField. \n if (userKeyField) {\n modelMetaDataWithoutFields['userKeyField'] = userKeyField;\n await this.modelMetadataService.upsert(modelMetaDataWithoutFields);\n }\n }\n this.logger.debug(`[End] Processing module metadata`);\n }\n\n private async seedSettings(createDto: CreateSettingDto) {\n const settingsArray: any[] = await this.settingsRepo.find();\n if (!settingsArray || settingsArray.length === 0) {\n this.settingService.create(createDto);\n }\n }\n\n private async handleSeedSecurityRules(rulesDto: CreateSecurityRuleDto[]) {\n if (!rulesDto || rulesDto.length === 0) {\n this.logger.debug(`No security rules found to seed`);\n return;\n }\n for (const dto of rulesDto) {\n await this.securityRuleRepo.upsertWithDto({ ...dto, securityRuleConfig: JSON.stringify(dto.securityRuleConfig) });\n }\n }\n\n // Not Ok\n private async handleSeedListOfValues(listOfValuesDto: CreateListOfValuesDto[]) {\n if (!listOfValuesDto || listOfValuesDto.length === 0) {\n this.logger.debug(`No List Of Values found to seed`);\n return;\n }\n for (let j = 0; j < listOfValuesDto.length; j++) {\n const listOfValueDto = listOfValuesDto[j];\n listOfValueDto['module'] = await this.moduleMetadataService.findOneByUserKey(listOfValueDto.moduleUserKey);\n await this.listOfValuesService.upsert(listOfValuesDto[j]);\n }\n }\n\n private async handleSeedDashboards(dashboardDtos: CreateDashboardDto[]) {\n if (!dashboardDtos || dashboardDtos.length === 0) {\n this.logger.debug(`No dashboards found to seed`);\n return;\n }\n for (const dto of dashboardDtos) {\n await this.dashboardRepo.upsertWithDto(dto);\n }\n }\n\n private async handleSeedScheduledJobs(createScheduledJobDto: CreateScheduledJobDto[]) {\n if (!createScheduledJobDto || createScheduledJobDto.length === 0) {\n this.logger.debug(`No scheduled jobs found to seed`);\n return;\n }\n for (const dto of createScheduledJobDto) {\n await this.scheduledJobRepository.upsertWithDto(dto);\n }\n }\n\n private async handleSeedSavedFilters(createSavedFilterDto: CreateSavedFiltersDto[]) {\n if (!createSavedFilterDto || createSavedFilterDto.length === 0) {\n this.logger.debug(`No saved filters found to seed`);\n return;\n }\n for (const dto of createSavedFilterDto) {\n await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });\n }\n }\n\n}"]}
|
|
1
|
+
{"version":3,"file":"module-metadata-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nimport { CreateDashboardDto } from 'src/dtos/create-dashboard.dto';\nimport { CreateEmailTemplateDto } from 'src/dtos/create-email-template.dto';\nimport { CreateListOfValuesDto } from 'src/dtos/create-list-of-values.dto';\nimport { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';\nimport { CreateSettingDto } from 'src/dtos/create-setting.dto';\nimport { CreateSmsTemplateDto } from 'src/dtos/create-sms-template.dto';\nimport { DashboardRepository } from 'src/repository/dashboard.repository';\nimport { SecurityRuleRepository } from 'src/repository/security-rule.repository';\nimport { AuthenticationService } from 'src/services/authentication.service';\nimport { EmailTemplateService } from 'src/services/email-template.service';\nimport { ListOfValuesService } from 'src/services/list-of-values.service';\nimport { SettingService } from 'src/services/setting.service';\nimport { SmsTemplateService } from 'src/services/sms-template.service';\nimport { UserService } from 'src/services/user.service';\nimport { DataSource, In, Repository } from 'typeorm';\nimport appBuilderConfig from '../config/app-builder.config';\nimport { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';\nimport { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';\nimport { getDynamicModuleNames, getDynamicModuleNamesBasedOnMetadata } from '../helpers/module.helper';\nimport { SolidRegistry } from '../helpers/solid-registry';\nimport { ActionMetadataService } from '../services/action-metadata.service';\nimport { FieldMetadataService } from '../services/field-metadata.service';\nimport { MediaStorageProviderMetadataSeederService } from '../services/media-storage-provider-metadata-seeder.service';\nimport { MediaStorageProviderMetadataService } from '../services/media-storage-provider-metadata.service';\nimport { ModelMetadataService } from '../services/model-metadata.service';\nimport { ModuleMetadataService } from '../services/module-metadata.service';\nimport { RoleMetadataService } from '../services/role-metadata.service';\nimport { ViewMetadataService } from '../services/view-metadata.service';\nimport solidCoreMetadata from './seed-data/solid-core-metadata.json';\nimport { SystemFieldsSeederService } from './system-fields-seeder.service';\n// import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';\nimport { ActionMetadata, MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL, MenuItemMetadata, ModuleMetadata, RoleMetadata } from 'src';\nimport { ADMIN_ROLE_NAME, INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS, PUBLIC_ROLE_NAME } from 'src/dtos/create-role-metadata.dto';\nimport { CreateSavedFiltersDto } from 'src/dtos/create-saved-filters.dto';\nimport { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';\nimport { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';\nimport { SavedFiltersRepository } from 'src/repository/saved-filters.repository';\nimport { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';\nimport { SettingRepository } from 'src/repository/setting.repository';\nimport { CreateModelSequenceDto } from 'src/dtos/create-model-sequence.dto';\nimport { ModelSequenceRepository } from 'src/repository/model-sequence.repository';\n\n\n@Injectable()\nexport class ModuleMetadataSeederService {\n private readonly logger = new Logger(ModuleMetadataSeederService.name);\n\n\n constructor(\n private readonly moduleMetadataService: ModuleMetadataService,\n @Inject(forwardRef(() => ModelMetadataService))\n private readonly modelMetadataService: ModelMetadataService,\n private readonly fieldMetadataService: FieldMetadataService,\n private readonly mediaStorageProviderMetadataService: MediaStorageProviderMetadataService,\n private readonly roleService: RoleMetadataService,\n private readonly userService: UserService,\n private readonly authenticationService: AuthenticationService,\n private readonly solidActionService: ActionMetadataService,\n private readonly solidViewService: ViewMetadataService,\n private readonly mediaStorageProviderSeederService: MediaStorageProviderMetadataSeederService,\n private readonly emailTemplateService: EmailTemplateService,\n private readonly smsTemplateService: SmsTemplateService,\n private readonly listOfValuesService: ListOfValuesService,\n // @InjectRepository(PermissionMetadata)\n // private readonly permissionRepo: Repository<PermissionMetadata>,\n private readonly permissionRepo: PermissionMetadataRepository,\n private readonly solidRegistry: SolidRegistry,\n private readonly settingService: SettingService,\n // @InjectRepository(Setting, 'default')\n // readonly settingsRepo: Repository<Setting>,\n private readonly settingsRepo: SettingRepository,\n readonly securityRuleRepo: SecurityRuleRepository,\n readonly systemFieldsSeederService: SystemFieldsSeederService,\n readonly dashboardRepo: DashboardRepository,\n readonly scheduledJobRepository: ScheduledJobRepository,\n readonly savedFiltersRepo: SavedFiltersRepository,\n readonly dataSource: DataSource,\n readonly modelSequenceRepo: ModelSequenceRepository,\n ) { }\n\n async seed(conf?: any) {\n // Global seeding steps i.e across all modules\n await this.seedGlobalMetadata();\n\n\n // Module specific seeding steps.\n // Get all the module metadata files which needs to be seeded.\n const seedDataFiles = this.seedDataFiles;\n this.logger.debug(`Seed data files are: ${seedDataFiles}`);\n\n /** -------------------------------------------------------------\n * Selective module seeding via: \n * solid seed -c \"{\\\"modulesToSeed\\\": [\\\"onboarding\\\", \\\"reports\\\"]}\"\n * -------------------------------------------------------------\n */\n let modulesToSeed: string[] | null = null;\n\n if (conf && Array.isArray(conf.modulesToSeed)) {\n modulesToSeed = conf.modulesToSeed;\n this.logger.log(`Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);\n } else {\n this.logger.log(`No modulesToSeed provided. Seeding ALL modules.`);\n }\n\n // Filter modules if needed\n const filteredSeedDataFiles = modulesToSeed\n ? seedDataFiles.filter((file) =>\n modulesToSeed.includes(file.moduleMetadata?.name)\n )\n : seedDataFiles;\n\n if (filteredSeedDataFiles.length === 0) {\n this.logger.warn(`No modules matched the provided modulesToSeed list.`);\n return;\n }\n\n // let usersDetail;\n // For each module metadata file, we will process the seeding steps one by one.\n for (let i = 0; i < filteredSeedDataFiles.length; i++) {\n const overallMetadata = filteredSeedDataFiles[i];\n const moduleMetadata: CreateModuleMetadataDto = overallMetadata.moduleMetadata;\n this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);\n\n // Process module metadata first. \n this.logger.log(`Seeding Module / Model / Fields`);\n await this.seedModuleModelFields(moduleMetadata);\n\n // Media Storage provider templates\n this.logger.log(`Seeding Media Storage Providers`);\n await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);\n\n // Custom role handling\n this.logger.log(`Seeding Roles`);\n await this.seedRoles(overallMetadata);\n\n // Custom user handling\n this.logger.log(`Seeding Users`);\n await this.seedUsers(overallMetadata);\n\n // Application Module View handling \n this.logger.log(`Seeding Views`);\n await this.seedViews(overallMetadata);\n\n // Application Module Action handling\n this.logger.log(`Seeding Actions`);\n await this.seedActions(overallMetadata);\n\n // Application Module Menu handling \n this.logger.log(`Seeding Menus`);\n await this.seedMenus(overallMetadata);\n\n // Email templates \n this.logger.log(`Seeding Email Templates`);\n await this.seedEmailTemplates(overallMetadata, moduleMetadata.name);\n\n // Sms templates\n this.logger.log(`Seeding Sms Templates`);\n await this.seedSmsTemplates(overallMetadata, moduleMetadata.name);\n\n // Settings\n this.logger.log(`Seeding Default Settings`);\n await this.seedDefaultSettings();\n\n // Security rules\n this.logger.log(`Seeding Security Rules`);\n await this.seedSecurityRules(overallMetadata);\n\n // List Of Values\n this.logger.log(`Seeding List Of Values`);\n await this.seedListOfValues(moduleMetadata, overallMetadata);\n\n // Dashboards\n this.logger.log(`Seeding Dashboards`);\n await this.seedDashboards(moduleMetadata, overallMetadata);\n\n // Scheduled Jobs\n this.logger.log(`Seeding Scheduled Jobs`);\n await this.seedScheduledJobs(moduleMetadata, overallMetadata);\n\n // Saved Filters\n this.logger.log(`Seeding Saved Filters`);\n await this.seedSavedFilters(moduleMetadata, overallMetadata);\n\n // Model Sequences\n this.logger.log(`Seeding Model Sequences`);\n await this.seedModelSequences(overallMetadata);\n\n this.logger.debug(`[End] module seed data: ${overallMetadata}`);\n }\n\n // Setup default roles with permissions.\n await this.setupDefaultRolesWithPermissions();\n\n this.logger.log(`All Seeders finished`);\n\n //FIXME: Handle displaying the created users credentials in a better way.\n // this.logger.log(`Newly created username is: ${usersDetail?.length > 0 ? usersDetail[0]?.username : ''} and password is ${usersDetail?.length > 0 ? usersDetail[0]?.password : ''}`);\n }\n\n private async seedScheduledJobs(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);\n const scheduledJobs: CreateScheduledJobDto[] = overallMetadata.scheduledJobs;\n if (scheduledJobs?.length > 0) {\n await this.handleSeedScheduledJobs(scheduledJobs);\n }\n this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);\n }\n\n private async seedSavedFilters(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing saved filters for ${moduleMetadata.name}`);\n const savedFilters: CreateSavedFiltersDto[] = overallMetadata.savedFilters;\n if (savedFilters?.length > 0) {\n await this.handleSeedSavedFilters(savedFilters);\n }\n this.logger.debug(`[End] Processing saved filters for ${moduleMetadata.name}`);\n }\n\n private async seedDashboards(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);\n const dashboards: CreateDashboardDto[] = overallMetadata.dashboards;\n await this.handleSeedDashboards(dashboards);\n this.logger.debug(`[End] Processing dashboards for ${moduleMetadata.name}`);\n }\n\n private async seedListOfValues(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {\n this.logger.debug(`[Start] Processing List Of Values for ${moduleMetadata.name}`);\n const listOfValues: CreateListOfValuesDto[] = overallMetadata.listOfValues;\n await this.handleSeedListOfValues(listOfValues);\n this.logger.debug(`[End] Processing List Of Values for ${moduleMetadata.name}`);\n }\n\n private async setupDefaultRolesWithPermissions() {\n this.logger.debug(`About to add all permissions to the Admin role`);\n await this.roleService.addAllPermissionsToRole(ADMIN_ROLE_NAME);\n // 2. Give permissions to the Internal / Public role.\n this.logger.debug(`About to add all permissions to the Internal role`);\n await this.roleService.addPermissionToRole(INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS);\n this.logger.debug(`About to add all permissions to the Public role`);\n await this.roleService.addPermissionToRole(PUBLIC_ROLE_NAME, ['SettingController.wrapSettings', 'AuthenticationController.logout']);\n }\n\n private async seedSecurityRules(overallMetadata: any) {\n this.logger.debug(`[Start] Processing security rules`);\n const securityRules: CreateSecurityRuleDto[] = overallMetadata.securityRules;\n await this.handleSeedSecurityRules(securityRules);\n this.logger.debug(`[End] Processing security rules`);\n }\n\n // Ok\n private async seedDefaultSettings() {\n this.logger.debug(`[Start] Processing settings`);\n await this.settingService.seedDefaultSettings();\n this.logger.debug(`[End] Processing settings`);\n }\n\n private async seedSmsTemplates(overallMetadata: any, moduleName: string) {\n this.logger.debug(`[Start] Processing sms templates`);\n const smsTemplates: CreateSmsTemplateDto[] = overallMetadata.smsTemplates;\n await this.handleSeedSmsTemplates(smsTemplates, moduleName);\n this.logger.debug(`[End] Processing sms templates`);\n }\n\n // OK\n private async seedEmailTemplates(overallMetadata: any, moduleName: string) {\n this.logger.debug(`[Start] Processing email templates`);\n const emailTemplates: CreateEmailTemplateDto[] = overallMetadata.emailTemplates;\n await this.handleSeedEmailTemplates(emailTemplates, moduleName);\n this.logger.debug(`[End] Processing email templates`);\n }\n\n // Ok\n private async seedMenus(overallMetadata: any) {\n this.logger.debug(`[Start] Processing menus`);\n const menus = overallMetadata.menus;\n await this.handleSeedMenus(menus);\n this.logger.debug(`[End] Processing menus`);\n }\n\n // Ok\n private async seedActions(overallMetadata: any) {\n this.logger.debug(`[Start] Processing actions`);\n const actions = overallMetadata.actions;\n await this.handleSeedActions(actions);\n this.logger.debug(`[End] Processing actions`);\n }\n\n // Ok\n private async seedViews(overallMetadata: any) {\n this.logger.debug(`[Start] Processing views`);\n const views = overallMetadata.views;\n await this.handleSeedViews(views);\n this.logger.debug(`[End] Processing views`);\n }\n\n // Ok\n private async seedUsers(overallMetadata: any) {\n this.logger.debug(`[Start] Processing users`);\n const users = overallMetadata.users;\n // usersDetail = users;\n await this.handleSeedUsers(users);\n this.logger.debug(`[End] Processing users`);\n }\n\n // OK\n private async seedRoles(overallMetadata: any) {\n this.logger.debug(`[Start] Processing roles`);\n // While creating roles we are only passing the role name to be used. \n await this.roleService.createRolesIfNotExists(overallMetadata.roles.map(role => { return { name: role.name }; }));\n // After roles are created, we iterate over all roles and attach permissions (if specified in the seeder json) to the respective role.\n // Every role configuration in the seeder json can optionally have a permissions attribute. \n for (const role of overallMetadata.roles) {\n if (role.permissions) {\n await this.roleService.addPermissionsToRole(role.name, role.permissions);\n }\n }\n this.logger.debug(`[End] Processing roles`);\n }\n\n // OK\n private get seedDataFiles(): any[] {\n const typedSolidCoreMetadata = structuredClone(solidCoreMetadata);\n const seedDataFiles = [typedSolidCoreMetadata];\n // const enabledModules = getDynamicModuleNames();\n const enabledModules = getDynamicModuleNamesBasedOnMetadata();\n for (const enabledModule of enabledModules) {\n const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;\n const fullPath = path.join(process.cwd(), enabledModuleSeedFile);\n\n if (fs.existsSync(fullPath)) {\n const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));\n seedDataFiles.push(overallMetadata);\n }\n }\n\n return seedDataFiles;\n }\n\n // OK\n private async seedGlobalMetadata() {\n this.logger.log(`Seeding Permissions`);\n await this.seedPermissions();\n\n this.logger.log(`Seeding Default Media Storage Providers`);\n await this.seedDefaultMediaStorageProviders();\n\n this.logger.log(`Seeding System Fields Metadata`);\n await this.seedDefaultSystemFields();\n\n this.logger.debug(`Global metadata seeding completed`);\n }\n\n private async seedDefaultSystemFields() {\n await this.systemFieldsSeederService.seed();\n }\n\n\n // OK\n private async seedPermissions() {\n\n const controllers = this.solidRegistry.getControllers();\n\n // Loop over the countries and create them.\n for (let id = 0; id < controllers.length; id++) {\n try {\n const controller = controllers[id];\n // this.logger.log(`Resolving controller: ${controller.name}`);\n\n const methods = controller.methods;\n for (let mId = 0; mId < methods.length; mId++) {\n\n const methodName = methods[mId];\n const permissionName = `${controller.name}.${methodName}`;\n\n const existingPermission = await this.permissionRepo.findOne({\n where: {\n name: permissionName\n }\n });\n\n // if (existingPermission) {\n // this.logger.log(`Permission ${permissionName} already exists.`);\n // }\n // else { }\n\n if (!existingPermission) {\n\n this.logger.log(`Permission ${permissionName} does not exist, creating new.`);\n\n const newPermission = this.permissionRepo.create({\n name: permissionName\n });\n await this.permissionRepo.save(newPermission);\n\n\n }\n }\n\n } catch (error) {\n this.logger.error(error);\n }\n }\n }\n\n // OK\n private async seedDefaultMediaStorageProviders() {\n await this.mediaStorageProviderSeederService.seed();\n }\n\n // OK\n private async seedMediaStorageProviders(mediaStorageProviders: any[]) {\n this.logger.debug(`[Start] Processing Media Storage Provider`);\n\n for (let i = 0; i < mediaStorageProviders.length; i++) {\n const mediaStorageProvider = mediaStorageProviders[i];\n await this.mediaStorageProviderMetadataService.upsert(mediaStorageProvider);\n }\n this.logger.debug(`[End] Processing Media Storage Provider`);\n }\n\n private async seedModelSequences(overallMetadata: any) {\n this.logger.debug(`[Start] Processing model sequences`);\n const modelSequences: CreateModelSequenceDto[] = overallMetadata.modelSequences;\n await this.handleSeedModelSequences(modelSequences);\n this.logger.debug(`[End] Processing model sequences`);\n }\n\n // OK\n private async handleSeedEmailTemplates(emailTemplates: CreateEmailTemplateDto[], moduleName: string) {\n if (!emailTemplates) {\n return;\n }\n\n for (let i = 0; i < emailTemplates.length; i++) {\n const emailTemplate = emailTemplates[i];\n // this.logger.log(`Found ${emailTemplate.name} email template`);\n\n // We need to load the actual template contents. \n if (moduleName === 'solid-core') {\n let moduleRoot: string | null = null;\n\n try {\n // Always resolve package.json, never the module entry\n moduleRoot = path.dirname(\n require.resolve('@solidstarters/solid-core/package.json'),\n );\n } catch (err) {\n this.logger.debug(\n 'Could not resolve @solidstarters/solid-core from node_modules, assuming local execution',\n );\n }\n\n const filePathInternal = 'src/seeders/seed-data/email-templates/';\n let filePath: string;\n // Case 1: solid-core installed as dependency\n if (moduleRoot) {\n filePath = path.join(\n moduleRoot,\n filePathInternal,\n emailTemplate.body,\n );\n }\n else {\n // Case 2: running INSIDE solid-core repo\n const localCoreRoot = process.cwd(); // or configurable root\n filePath = path.join(\n localCoreRoot,\n filePathInternal,\n emailTemplate.body,\n );\n }\n\n if (fs.existsSync(filePath)) {\n emailTemplate.body = fs.readFileSync(filePath, 'utf-8');\n }\n }\n else {\n // Check if file exists\n const emailTemplateHandlebar = `module-metadata/${moduleName}/email-templates/${emailTemplate.body}`\n const fullPath = path.join(process.cwd(), emailTemplateHandlebar);\n // this.logger.log(`Seeding custom email template from consuming model at path: ${fullPath}`);\n if (fs.existsSync(fullPath)) {\n emailTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();\n }\n }\n\n // Save to DB.\n await this.emailTemplateService.removeByName(emailTemplate.name);\n await this.emailTemplateService.create(emailTemplate);\n }\n\n }\n\n // Ok\n private async handleSeedSmsTemplates(smsTemplates: CreateSmsTemplateDto[], moduleName: string) {\n if (!smsTemplates) {\n return;\n }\n\n for (let i = 0; i < smsTemplates.length; i++) {\n const smsTemplate = smsTemplates[i];\n // this.logger.log(`Found ${smsTemplate.name} sms template`);\n\n // We need to load the actual template contents. \n if (moduleName === 'solid-core') {\n let moduleRoot: string | null = null;\n\n try {\n // Always resolve package.json, never the module entry\n moduleRoot = path.dirname(\n require.resolve('@solidstarters/solid-core/package.json'),\n );\n } catch (err) {\n this.logger.debug(\n 'Could not resolve @solidstarters/solid-core from node_modules, assuming local execution',\n );\n }\n\n const filePathInternal = 'src/seeders/seed-data/sms-templates/';\n let filePath: string;\n // Case 1: solid-core installed as dependency\n if (moduleRoot) {\n filePath = path.join(\n moduleRoot,\n filePathInternal,\n smsTemplate.body,\n );\n }\n else {\n // Case 2: running INSIDE solid-core repo\n const localCoreRoot = process.cwd(); // or configurable root\n filePath = path.join(\n localCoreRoot,\n filePathInternal,\n smsTemplate.body,\n );\n }\n\n if (fs.existsSync(filePath)) {\n smsTemplate.body = fs.readFileSync(filePath, 'utf-8');\n }\n }\n else {\n // Check if file exists\n const emailTemplateHandlebar = `module-metadata/${moduleName}/sms-templates/${smsTemplate.body}`\n const fullPath = path.join(process.cwd(), emailTemplateHandlebar);\n // this.logger.log(`Seeding custom sms template from consuming model at path: ${fullPath}`);\n if (fs.existsSync(fullPath)) {\n smsTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();\n }\n }\n\n\n // Save to DB.\n await this.smsTemplateService.removeByName(smsTemplate.name);\n await this.smsTemplateService.create(smsTemplate);\n }\n }\n\n // Ok\n private async handleSeedMenus(menus: any) {\n if (!menus) {\n return;\n }\n\n await this.dataSource.transaction(async (trx) => {\n const menuRepo = trx.getRepository(MenuItemMetadata);\n const roleRepo = trx.getRepository(RoleMetadata);\n const actionRepo = trx.getRepository(ActionMetadata);\n const moduleRepo = trx.getRepository(ModuleMetadata);\n\n // 1) Upsert menus WITHOUT roles (manual upsert)\n for (const m of menus) {\n const action = m.actionUserKey\n ? await actionRepo.findOne({ where: { name: m.actionUserKey }, select: [\"id\"] })\n : null;\n\n const module = m.moduleUserKey\n ? await moduleRepo.findOne({ where: { name: m.moduleUserKey }, select: [\"id\"] })\n : null;\n\n const parentMenuItem = m.parentMenuItemUserKey\n ? await menuRepo.findOne({ where: { name: m.parentMenuItemUserKey }, select: [\"id\"] })\n : null;\n\n // Check if a menu with this name already exists\n const existing = await menuRepo.findOne({\n where: { name: m.name },\n select: [\"id\"],\n });\n\n // Build the entity data (without id)\n const base = {\n name: m.name,\n displayName: m.displayName,\n action,\n module,\n parentMenuItem,\n sequenceNumber: m.sequenceNumber\n };\n\n // If existing, set its id so save() will perform an update, otherwise insert\n const entity = menuRepo.create(\n existing ? { id: existing.id, ...base } : base,\n );\n\n await menuRepo.save(entity);\n }\n\n // 2) Fetch ids for batching\n const seeded = await menuRepo.find({\n where: { name: In(menus.map((m: any) => m.name)) },\n select: [\"id\", \"name\"],\n });\n const idByName = new Map(seeded.map(s => [s.name, s.id]));\n\n // 3) Build desired join rows once\n const admin = await roleRepo.findOne({ where: { name: ADMIN_ROLE_NAME }, select: [\"id\", \"name\"] });\n const allRoleNames = new Set<string>();\n for (const m of menus) (m.roles ?? []).forEach((r: string) => allRoleNames.add(r));\n if (admin) allRoleNames.add(admin.name);\n\n const roles = await roleRepo.find({\n where: { name: In([...allRoleNames]) },\n select: [\"id\", \"name\"],\n });\n const roleByName = new Map(roles.map(r => [r.name, r]));\n\n const joinRows: Array<{ menuId: number; roleId: number }> = [];\n for (const m of menus) {\n const menuId = idByName.get(m.name)!;\n const roleNames = new Set<string>([...(m.roles ?? []), admin?.name].filter(Boolean) as string[]);\n for (const rn of roleNames) {\n const role = roleByName.get(rn);\n if (role) joinRows.push({ menuId, roleId: role.id });\n }\n }\n\n // 4) Replace in bulk — no orIgnore, safe for MSSQL\n // 4a) delete existing for affected menus\n const menuIds = [...new Set(joinRows.map(r => r.menuId))];\n if (menuIds.length) {\n await trx\n .createQueryBuilder()\n .delete()\n .from(MENU_ROLE_JOIN_TABLE_NAME) // string table name is fine\n .where(`${MENU_ROLE_JOIN_TABLE_NAME_MENU_COL} IN (:...ids)`, { ids: menuIds })\n .execute();\n }\n\n // 4b) bulk insert all pairs\n if (joinRows.length) {\n const values = joinRows.map(r => ({\n [MENU_ROLE_JOIN_TABLE_NAME_MENU_COL]: r.menuId,\n [MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL]: r.roleId,\n }));\n\n await trx\n .createQueryBuilder()\n .insert()\n .into(MENU_ROLE_JOIN_TABLE_NAME)\n .values(values)\n // .orIgnore() // ❌ remove this – it triggers unsupported onUpdate path\n .execute();\n }\n });\n }\n\n // Ok\n private async handleSeedActions(actions: any) {\n if (!actions) {\n return;\n }\n\n for (let j = 0; j < actions.length; j++) {\n const actionData = actions[j];\n actionData['module'] = await this.moduleMetadataService.findOneByUserKey(actionData.moduleUserKey);\n if (actionData.type === 'solid') {\n actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);\n actionData['view'] = await this.solidViewService.findOneByUserKey(actionData.viewUserKey);\n }\n else {\n if (actionData.modelUserKey) {\n actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);\n }\n }\n await this.solidActionService.upsert(actionData);\n }\n }\n\n // Ok\n private async handleSeedViews(views: any) {\n if (!views) {\n return;\n }\n\n for (let j = 0; j < views.length; j++) {\n const viewData = views[j];\n\n // preety format the layout & context. \n viewData['layout'] = JSON.stringify(viewData['layout'], null, 2);\n\n viewData['module'] = await this.moduleMetadataService.findOneByUserKey(viewData.moduleUserKey);\n viewData['model'] = await this.modelMetadataService.findOneByUserKey(viewData.modelUserKey);\n\n // Changed the below to upsert as now we are saving modifications to the view json to file system also.\n await this.solidViewService.upsert(viewData);\n }\n }\n\n // OK\n private async handleSeedUsers(users) {\n if (!users) {\n return;\n }\n\n for (let l = 0; l < users.length; l++) {\n const user = users[l];\n let exisitingUser = await this.userService.findOneByUsername(user.username);\n if (!exisitingUser) {\n exisitingUser = await this.authenticationService.signUp(user);\n\n this.logger.log(`Newly created user is ${user}`);\n }\n //FIXME: Create the user roles assignment logic here.\n // now add Roles to user.\n // for (let m = 0; m < roles.length; m++) {\n // const role = roles[m];\n // await this.userService.addRoleToUser(user.email, role.name);\n // }\n }\n }\n\n // OK\n private async seedModuleModelFields(moduleMetadata: CreateModuleMetadataDto) {\n this.logger.debug(`[Start] Processing module metadata`);\n\n // First we create the module. \n const module = await this.moduleMetadataService.upsert(moduleMetadata);\n\n // Next create all the models. \n const modelsMetadata: CreateModelMetadataDto[] = moduleMetadata.models;\n for (let j = 0; j < modelsMetadata.length; j++) {\n const modelMetadata = modelsMetadata[j];\n\n // Before creating the model, we need to make sure we are linking it to the newly created module.\n modelMetadata['module'] = module;\n const { fields: fieldsMetadata, ...modelMetaDataWithoutFields } = modelMetadata;\n\n // Load and set the parent model if it exists.\n if (modelMetadata.isChild && modelMetadata.parentModelUserKey) {\n const parentModel = await this.modelMetadataService.findOneByUserKey(modelMetadata.parentModelUserKey);\n modelMetaDataWithoutFields['parentModel'] = parentModel;\n }\n\n await this.modelMetadataService.upsert(modelMetaDataWithoutFields);\n const model = await this.modelMetadataService.findOneBySingularName(modelMetadata.singularName)\n\n // iterate over all fields and upsert. \n let userKeyField = null;\n const userKeyFieldName = modelMetadata.userKeyFieldUserKey;\n for (let k = 0; k < fieldsMetadata.length; k++) {\n const fieldMetadata = fieldsMetadata[k];\n\n // Link model & mediaStorageProvider. \n fieldMetadata['model'] = model;\n if (fieldMetadata.mediaStorageProviderUserKey) {\n fieldMetadata['mediaStorageProvider'] = await this.mediaStorageProviderMetadataService.findOneByUserKey(fieldMetadata.mediaStorageProviderUserKey);\n }\n // console.log(fieldMetadata.displayName);\n\n const affectedField = await this.fieldMetadataService.upsert(fieldMetadata);\n if (fieldMetadata.name === userKeyFieldName || fieldMetadata.isUserKey) {\n const { model, ...fieldData } = affectedField;\n userKeyField = fieldData;\n }\n }\n\n // Now that we have created fields & model update the model to stamp the userKeyField. \n if (userKeyField) {\n modelMetaDataWithoutFields['userKeyField'] = userKeyField;\n await this.modelMetadataService.upsert(modelMetaDataWithoutFields);\n }\n }\n this.logger.debug(`[End] Processing module metadata`);\n }\n\n private async seedSettings(createDto: CreateSettingDto) {\n const settingsArray: any[] = await this.settingsRepo.find();\n if (!settingsArray || settingsArray.length === 0) {\n this.settingService.create(createDto);\n }\n }\n\n private async handleSeedSecurityRules(rulesDto: CreateSecurityRuleDto[]) {\n if (!rulesDto || rulesDto.length === 0) {\n this.logger.debug(`No security rules found to seed`);\n return;\n }\n for (const dto of rulesDto) {\n await this.securityRuleRepo.upsertWithDto({ ...dto, securityRuleConfig: JSON.stringify(dto.securityRuleConfig) });\n }\n }\n\n // Not Ok\n private async handleSeedListOfValues(listOfValuesDto: CreateListOfValuesDto[]) {\n if (!listOfValuesDto || listOfValuesDto.length === 0) {\n this.logger.debug(`No List Of Values found to seed`);\n return;\n }\n for (let j = 0; j < listOfValuesDto.length; j++) {\n const listOfValueDto = listOfValuesDto[j];\n listOfValueDto['module'] = await this.moduleMetadataService.findOneByUserKey(listOfValueDto.moduleUserKey);\n await this.listOfValuesService.upsert(listOfValuesDto[j]);\n }\n }\n\n private async handleSeedDashboards(dashboardDtos: CreateDashboardDto[]) {\n if (!dashboardDtos || dashboardDtos.length === 0) {\n this.logger.debug(`No dashboards found to seed`);\n return;\n }\n for (const dto of dashboardDtos) {\n await this.dashboardRepo.upsertWithDto(dto);\n }\n }\n\n private async handleSeedScheduledJobs(createScheduledJobDto: CreateScheduledJobDto[]) {\n if (!createScheduledJobDto || createScheduledJobDto.length === 0) {\n this.logger.debug(`No scheduled jobs found to seed`);\n return;\n }\n for (const dto of createScheduledJobDto) {\n await this.scheduledJobRepository.upsertWithDto(dto);\n }\n }\n\n private async handleSeedSavedFilters(createSavedFilterDto: CreateSavedFiltersDto[]) {\n if (!createSavedFilterDto || createSavedFilterDto.length === 0) {\n this.logger.debug(`No saved filters found to seed`);\n return;\n }\n for (const dto of createSavedFilterDto) {\n await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });\n }\n }\n private async handleSeedModelSequences(modelSequencesDto: CreateModelSequenceDto[]) {\n if (!modelSequencesDto || modelSequencesDto.length === 0) {\n this.logger.debug(`No Model Sequences found to seed`);\n return;\n }\n for (const dto of modelSequencesDto) {\n await this.modelSequenceRepo.upsertWithDto(dto);\n }\n }\n\n}"]}
|