@solidstarters/solid-core 1.2.200 → 1.2.202
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/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +4 -0
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/config/cache.options.d.ts +1 -1
- package/dist/config/cache.options.d.ts.map +1 -1
- package/dist/config/cache.options.js +2 -2
- package/dist/config/cache.options.js.map +1 -1
- package/dist/config/iam.config.d.ts +4 -0
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +2 -0
- package/dist/config/iam.config.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/model-metadata.controller.d.ts +25 -0
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +23 -0
- 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/setting.controller.d.ts +2 -2
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +36 -42
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/decorators/sms-provider.decorator.d.ts +3 -0
- package/dist/decorators/sms-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/sms-provider.decorator.js +11 -0
- package/dist/decorators/sms-provider.decorator.js.map +1 -0
- 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-field-metadata.dto.js +2 -2
- package/dist/dtos/create-field-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 +1 -0
- 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/navigation.dto.d.ts +6 -0
- package/dist/dtos/navigation.dto.d.ts.map +1 -0
- package/dist/dtos/navigation.dto.js +33 -0
- package/dist/dtos/navigation.dto.js.map +1 -0
- package/dist/dtos/resolve-s3-url.dto.d.ts +5 -5
- package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -1
- package/dist/dtos/resolve-s3-url.dto.js +7 -7
- package/dist/dtos/resolve-s3-url.dto.js.map +1 -1
- package/dist/dtos/sign-in.dto.js +3 -3
- package/dist/dtos/sign-in.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/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +6 -4
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +2 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/legacy-common.entity.d.ts.map +1 -1
- package/dist/entities/legacy-common.entity.js +6 -4
- package/dist/entities/legacy-common.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +5 -1
- 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/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts +14 -0
- package/dist/factories/sms.factory.d.ts.map +1 -0
- package/dist/factories/sms.factory.js +53 -0
- package/dist/factories/sms.factory.js.map +1 -0
- package/dist/helpers/date.helper.d.ts.map +1 -1
- package/dist/helpers/date.helper.js +13 -4
- 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.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +6 -2
- 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 +29 -3
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +14 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +7 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.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/{sms-publisher-database.service.d.ts → msg91-sms-publisher-database.service.d.ts} +2 -2
- package/dist/jobs/database/msg91-sms-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{sms-publisher-database.service.js → msg91-sms-publisher-database.service.js} +8 -8
- package/dist/jobs/database/msg91-sms-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/{sms-queue-database-options.d.ts → msg91-sms-queue-database-options.d.ts} +1 -1
- package/dist/jobs/database/msg91-sms-queue-database-options.d.ts.map +1 -0
- package/dist/jobs/database/{sms-queue-database-options.js → msg91-sms-queue-database-options.js} +1 -1
- package/dist/jobs/database/msg91-sms-queue-database-options.js.map +1 -0
- package/dist/jobs/database/{sms-subscriber-database.service.d.ts → msg91-sms-subscriber-database.service.d.ts} +5 -5
- package/dist/jobs/database/msg91-sms-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{sms-subscriber-database.service.js → msg91-sms-subscriber-database.service.js} +14 -12
- package/dist/jobs/database/msg91-sms-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +4 -4
- package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.js +6 -4
- package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +3 -3
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js +6 -4
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js.map +1 -1
- package/dist/jobs/{sms-publisher.service.d.ts → msg91-otp-publisher.service.d.ts} +2 -2
- package/dist/jobs/msg91-otp-publisher.service.d.ts.map +1 -0
- package/dist/jobs/{sms-publisher.service.js → msg91-otp-publisher.service.js} +8 -8
- package/dist/jobs/msg91-otp-publisher.service.js.map +1 -0
- package/dist/jobs/{sms-queue-options.d.ts → msg91-otp-queue-options.d.ts} +1 -1
- package/dist/jobs/msg91-otp-queue-options.d.ts.map +1 -0
- package/dist/jobs/{otp-queue-options.js → msg91-otp-queue-options.js} +1 -1
- package/dist/jobs/msg91-otp-queue-options.js.map +1 -0
- package/dist/jobs/{sms-subscriber.service.d.ts → msg91-otp-subscriber.service.d.ts} +6 -6
- package/dist/jobs/msg91-otp-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/{otp-subscriber.service.js → msg91-otp-subscriber.service.js} +14 -12
- package/dist/jobs/msg91-otp-subscriber.service.js.map +1 -0
- package/dist/jobs/{otp-publisher.service.d.ts → msg91-sms-publisher.service.d.ts} +2 -2
- package/dist/jobs/msg91-sms-publisher.service.d.ts.map +1 -0
- package/dist/jobs/{otp-publisher.service.js → msg91-sms-publisher.service.js} +8 -8
- package/dist/jobs/msg91-sms-publisher.service.js.map +1 -0
- package/dist/jobs/{otp-queue-options.d.ts → msg91-sms-queue-options.d.ts} +1 -1
- package/dist/jobs/msg91-sms-queue-options.d.ts.map +1 -0
- package/dist/jobs/{sms-queue-options.js → msg91-sms-queue-options.js} +1 -1
- package/dist/jobs/msg91-sms-queue-options.js.map +1 -0
- package/dist/jobs/{otp-subscriber.service.d.ts → msg91-sms-subscriber.service.d.ts} +7 -7
- package/dist/jobs/msg91-sms-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/{sms-subscriber.service.js → msg91-sms-subscriber.service.js} +14 -12
- package/dist/jobs/msg91-sms-subscriber.service.js.map +1 -0
- package/dist/jobs/twilio-sms-subscriber.service.d.ts +3 -3
- package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.js +6 -4
- package/dist/jobs/twilio-sms-subscriber.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 +7 -12
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +87 -27
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +373 -52
- 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 +11 -2
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/seeders/user-seeder.service.d.ts.map +1 -1
- package/dist/seeders/user-seeder.service.js +5 -4
- package/dist/seeders/user-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 +1 -0
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +6 -3
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +70 -27
- 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.js +7 -5
- 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 +23 -6
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +257 -45
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +4 -3
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +53 -24
- 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 +11 -0
- package/dist/services/excel.service.d.ts.map +1 -1
- package/dist/services/excel.service.js +104 -0
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +4 -1
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +35 -30
- 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.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -0
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +28 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +111 -44
- 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/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/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/services/setting.service.d.ts +7 -5
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +28 -48
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +6 -6
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +3 -1
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +3 -1
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
- package/dist/services/sms/TwilioSMSService.js +2 -0
- package/dist/services/sms/TwilioSMSService.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 +5 -13
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +18 -22
- 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 +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +3 -1
- 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-cli.module.js +1 -1
- package/dist/solid-core-cli.module.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +40 -13
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +5 -1
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +4 -2
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +53 -12
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +1 -1
- package/dist/subscribers/scheduled-job.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 +48 -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/src/commands/fixtures/fixtures-setup.command.ts +44 -0
- package/src/commands/fixtures/fixtures-tear-down.command.ts +45 -0
- package/src/commands/refresh-model.command.ts +3 -1
- package/src/config/cache.options.ts +6 -3
- package/src/config/iam.config.ts +2 -1
- package/src/constants/error-messages.ts +7 -1
- package/src/controllers/model-metadata.controller.ts +21 -1
- package/src/controllers/model-sequence.controller.ts +93 -0
- package/src/controllers/setting.controller.ts +62 -54
- package/src/decorators/sms-provider.decorator.ts +7 -0
- package/src/dtos/basic-filters.dto.ts +6 -1
- package/src/dtos/basic-group-filters.dto.ts +23 -0
- package/src/dtos/create-field-metadata.dto.ts +1 -1
- package/src/dtos/create-model-sequence.dto.ts +51 -0
- package/src/dtos/create-role-metadata.dto.ts +16 -3
- package/src/dtos/get-mcp-url.dto.ts +13 -0
- package/src/dtos/navigation.dto.ts +14 -0
- package/src/dtos/resolve-s3-url.dto.ts +9 -11
- package/src/dtos/sign-in.dto.ts +3 -3
- package/src/dtos/update-model-sequence.dto.ts +53 -0
- package/src/entities/common.entity.ts +8 -8
- package/src/entities/field-metadata.entity.ts +1 -1
- package/src/entities/legacy-common.entity.ts +8 -6
- package/src/entities/model-metadata.entity.ts +1 -1
- package/src/entities/model-sequence.entity.ts +32 -0
- package/src/factories/mail.factory.ts +0 -1
- package/src/factories/sms.factory.ts +43 -0
- package/src/helpers/date.helper.ts +38 -9
- 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 +6 -4
- package/src/helpers/module-metadata-helper.service.ts +18 -1
- package/src/helpers/module.helper.ts +40 -5
- package/src/helpers/solid-registry.ts +23 -0
- package/src/index.ts +12 -7
- package/src/jobs/computed-field-evaluation-subscriber.service.ts +15 -4
- package/src/jobs/database/{sms-publisher-database.service.ts → msg91-sms-publisher-database.service.ts} +2 -2
- package/src/jobs/database/{sms-subscriber-database.service.ts → msg91-sms-subscriber-database.service.ts} +9 -4
- package/src/jobs/database/otp-subscriber-database.service.ts +8 -2
- package/src/jobs/database/twilio-sms-subscriber-database.service.ts +5 -2
- package/src/jobs/{otp-publisher.service.ts → msg91-otp-publisher.service.ts} +2 -2
- package/src/jobs/{otp-subscriber.service.ts → msg91-otp-subscriber.service.ts} +10 -4
- package/src/jobs/{sms-publisher.service.ts → msg91-sms-publisher.service.ts} +2 -2
- package/src/jobs/{sms-subscriber.service.ts → msg91-sms-subscriber.service.ts} +9 -4
- package/src/jobs/twilio-sms-subscriber.service.ts +6 -2
- 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 +133 -34
- package/src/seeders/seed-data/email-templates/email-on-signup.handlebars.html +155 -0
- package/src/seeders/seed-data/sms-templates/text-on-signup.handlebars.txt +10 -0
- package/src/seeders/seed-data/solid-core-metadata.json +374 -53
- package/src/seeders/system-fields-seeder.service.ts +6 -2
- package/src/seeders/user-seeder.service.ts +5 -4
- package/src/services/action-metadata.service.ts +3 -2
- package/src/services/ai-interaction.service.ts +2 -1
- package/src/services/authentication.service.ts +119 -24
- 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 +9 -9
- package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +86 -0
- package/src/services/crud-helper.service.ts +287 -49
- package/src/services/crud.service.ts +95 -45
- 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 +152 -3
- package/src/services/field-metadata.service.ts +102 -55
- 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 +6 -2
- package/src/services/model-metadata.service.ts +201 -44
- package/src/services/model-sequence.service.ts +33 -0
- package/src/services/module-metadata.service.ts +49 -2
- package/src/services/permission-metadata.service.ts +8 -9
- package/src/services/queues/database-subscriber.service.ts +3 -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/services/setting.service.ts +42 -55
- package/src/services/sms/Msg91BaseSMSService.ts +6 -6
- package/src/services/sms/Msg91OTPService.ts +3 -2
- package/src/services/sms/Msg91SMSService.ts +3 -1
- package/src/services/sms/TwilioSMSService.ts +3 -3
- package/src/services/sms-template.service.ts +11 -13
- package/src/services/solid-introspect.service.ts +28 -19
- 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 +5 -4
- package/src/solid-core-cli-db.module.ts +5 -4
- package/src/solid-core-cli.module.ts +2 -2
- package/src/solid-core.module.ts +42 -13
- package/src/subscribers/audit.subscriber.ts +3 -2
- package/src/subscribers/computed-entity-field.subscriber.ts +60 -17
- package/src/subscribers/scheduled-job.subscriber.ts +9 -2
- package/src/transformers/typeorm/local-date-time-transformer.ts +55 -0
- package/dist/jobs/database/sms-publisher-database.service.d.ts.map +0 -1
- package/dist/jobs/database/sms-publisher-database.service.js.map +0 -1
- package/dist/jobs/database/sms-queue-database-options.d.ts.map +0 -1
- package/dist/jobs/database/sms-queue-database-options.js.map +0 -1
- package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +0 -1
- package/dist/jobs/database/sms-subscriber-database.service.js.map +0 -1
- package/dist/jobs/otp-publisher.service.d.ts.map +0 -1
- package/dist/jobs/otp-publisher.service.js.map +0 -1
- package/dist/jobs/otp-queue-options.d.ts.map +0 -1
- package/dist/jobs/otp-queue-options.js.map +0 -1
- package/dist/jobs/otp-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/otp-subscriber.service.js.map +0 -1
- package/dist/jobs/sms-publisher.service.d.ts.map +0 -1
- package/dist/jobs/sms-publisher.service.js.map +0 -1
- package/dist/jobs/sms-queue-options.d.ts.map +0 -1
- package/dist/jobs/sms-queue-options.js.map +0 -1
- package/dist/jobs/sms-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/sms-subscriber.service.js.map +0 -1
- /package/sql/{mssql → default/mssql}/proc_CleanupModelMetadata.sql +0 -0
- /package/sql/{mssql → default/mssql}/proc_CleanupModuleMetadata.sql +0 -0
- /package/sql/{mssql/scratchpad.sql → default/mssql/scratchpad.sql.txt} +0 -0
- /package/sql/{postgres → default/postgres}/proc_CleanupModelMetadata.sql +0 -0
- /package/sql/{postgres → default/postgres}/proc_CleanupModuleMetadata.sql +0 -0
- /package/sql/{postgres/scratchpad.sql → default/postgres/scratchpad.sql.txt} +0 -0
- /package/src/jobs/database/{sms-queue-database-options.ts → msg91-sms-queue-database-options.ts} +0 -0
- /package/src/jobs/{otp-queue-options.ts → msg91-otp-queue-options.ts} +0 -0
- /package/src/jobs/{sms-queue-options.ts → msg91-sms-queue-options.ts} +0 -0
|
@@ -8,17 +8,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var SystemFieldsSeederService_1;
|
|
11
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
16
|
exports.SystemFieldsSeederService = void 0;
|
|
13
17
|
const common_1 = require("@nestjs/common");
|
|
14
18
|
const model_metadata_helper_service_1 = require("../helpers/model-metadata-helper.service");
|
|
15
19
|
const field_metadata_repository_1 = require("../repository/field-metadata.repository");
|
|
16
20
|
const model_metadata_repository_1 = require("../repository/model-metadata.repository");
|
|
17
|
-
let SystemFieldsSeederService = class SystemFieldsSeederService {
|
|
21
|
+
let SystemFieldsSeederService = SystemFieldsSeederService_1 = class SystemFieldsSeederService {
|
|
18
22
|
constructor(modelHelperService, modelRepository, fieldMetadataRepository) {
|
|
19
23
|
this.modelHelperService = modelHelperService;
|
|
20
24
|
this.modelRepository = modelRepository;
|
|
21
25
|
this.fieldMetadataRepository = fieldMetadataRepository;
|
|
26
|
+
this.logger = new common_1.Logger(SystemFieldsSeederService_1.name);
|
|
22
27
|
}
|
|
23
28
|
async seed() {
|
|
24
29
|
const models = await this.modelRepository.find({
|
|
@@ -29,10 +34,13 @@ let SystemFieldsSeederService = class SystemFieldsSeederService {
|
|
|
29
34
|
}
|
|
30
35
|
}
|
|
31
36
|
async seedMissingSystemFields(model) {
|
|
37
|
+
this.logger.debug(`Checking system fields for model: ${model.singularName}`);
|
|
32
38
|
const existingSystemFields = model.fields.filter(field => field.isSystem);
|
|
33
39
|
const systemFieldsMetadata = this.modelHelperService.getSystemFieldsMetadata(model.isLegacyTable, model.isLegacyTableWithId);
|
|
40
|
+
this.logger.debug(`Model: ${model.singularName} has ${existingSystemFields.length} existing system fields.`);
|
|
34
41
|
const missingFields = systemFieldsMetadata.filter(sysField => !existingSystemFields.some(field => field.name === sysField.name));
|
|
35
42
|
if (missingFields.length > 0) {
|
|
43
|
+
this.logger.debug(`Seeding ${missingFields.length} missing system fields for model: ${model.singularName}`);
|
|
36
44
|
const newFields = missingFields.map(field => ({
|
|
37
45
|
...field,
|
|
38
46
|
model: model,
|
|
@@ -42,8 +50,9 @@ let SystemFieldsSeederService = class SystemFieldsSeederService {
|
|
|
42
50
|
}
|
|
43
51
|
};
|
|
44
52
|
exports.SystemFieldsSeederService = SystemFieldsSeederService;
|
|
45
|
-
exports.SystemFieldsSeederService = SystemFieldsSeederService = __decorate([
|
|
53
|
+
exports.SystemFieldsSeederService = SystemFieldsSeederService = SystemFieldsSeederService_1 = __decorate([
|
|
46
54
|
(0, common_1.Injectable)(),
|
|
55
|
+
__param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => model_metadata_repository_1.ModelMetadataRepository))),
|
|
47
56
|
__metadata("design:paramtypes", [model_metadata_helper_service_1.ModelMetadataHelperService,
|
|
48
57
|
model_metadata_repository_1.ModelMetadataRepository,
|
|
49
58
|
field_metadata_repository_1.FieldMetadataRepository])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-fields-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/system-fields-seeder.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-fields-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/system-fields-seeder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,2CAAwE;AAExE,4FAAuF;AACvF,uFAAmF;AACnF,uFAAmF;AAG5E,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IAKpC,YACmB,kBAA8C,EAI/D,eAAyD,EACxC,uBAAgD;QALhD,uBAAkB,GAAlB,kBAAkB,CAA4B;QAI9C,oBAAe,GAAf,eAAe,CAAyB;QACxC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAVlD,WAAM,GAAG,IAAI,eAAM,CAAC,2BAAyB,CAAC,IAAI,CAAC,CAAC;IAWjE,CAAC;IAEL,KAAK,CAAC,IAAI;QAER,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7C,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE3B,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAoB;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC7H,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,YAAY,QAAQ,oBAAoB,CAAC,MAAM,0BAA0B,CAAC,CAAC;QAE7G,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAC/C,QAAQ,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAC9E,CAAC;QAGF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,aAAa,CAAC,MAAM,qCAAqC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YAC5G,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5C,GAAG,KAAK;gBACR,KAAK,EAAE,KAAK;aACb,CAAC,CAAC,CAAC;YACJ,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF,CAAA;AA9CY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mDAAuB,CAAC,CAAC,CAAA;qCAHb,0DAA0B;QAI7B,mDAAuB;QACf,mDAAuB;GAXxD,yBAAyB,CA8CrC","sourcesContent":["// This class will add the system fields in the field-metadata table if they are missing.\n// Fetch all the models and their fields metadata and check if the system fields are present.\n\nimport { forwardRef, Inject, Injectable, Logger } from \"@nestjs/common\";\nimport { ModelMetadata } from \"src/entities/model-metadata.entity\";\nimport { ModelMetadataHelperService } from \"src/helpers/model-metadata-helper.service\";\nimport { FieldMetadataRepository } from \"src/repository/field-metadata.repository\";\nimport { ModelMetadataRepository } from \"src/repository/model-metadata.repository\";\n\n@Injectable()\nexport class SystemFieldsSeederService {\n private readonly logger = new Logger(SystemFieldsSeederService.name);\n // This service is responsible for seeding the system fields metadata for all models.\n // It will check if the system fields are already present in the field-metadata table.\n // If not, it will add them.\n constructor(\n private readonly modelHelperService: ModelMetadataHelperService,\n // @InjectRepository(ModelMetadata)\n // private readonly modelRepository: Repository<ModelMetadata>, // Replace with actual model repository type\n @Inject(forwardRef(() => ModelMetadataRepository))\n private readonly modelRepository: ModelMetadataRepository, // Replace with actual model repository type\n private readonly fieldMetadataRepository: FieldMetadataRepository, // Replace with actual field repository type\n ) { }\n\n async seed() {\n // Get the model repo\n const models = await this.modelRepository.find({\n relations: ['fields'], // Assuming 'fields' is the relation to field metadata\n });\n\n for (const model of models) {\n // Check if the system fields are already present\n await this.seedMissingSystemFields(model);\n }\n }\n\n private async seedMissingSystemFields(model: ModelMetadata) {\n this.logger.debug(`Checking system fields for model: ${model.singularName}`);\n const existingSystemFields = model.fields.filter(field => field.isSystem);\n const systemFieldsMetadata = this.modelHelperService.getSystemFieldsMetadata(model.isLegacyTable, model.isLegacyTableWithId);\n this.logger.debug(`Model: ${model.singularName} has ${existingSystemFields.length} existing system fields.`);\n // Find out which system fields are missing\n const missingFields = systemFieldsMetadata.filter(\n sysField => !existingSystemFields.some(field => field.name === sysField.name)\n );\n\n // If there are missing fields, add them\n if (missingFields.length > 0) {\n this.logger.debug(`Seeding ${missingFields.length} missing system fields for model: ${model.singularName}`);\n const newFields = missingFields.map(field => ({\n ...field,\n model: model, // Associate the field with the current model\n }));\n await this.fieldMetadataRepository.save(newFields);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/user-seeder.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"user-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/user-seeder.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,qBACa,iBAAiB;IAItB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAGxC,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW;IAGvC,IAAI;CAkBb"}
|
|
@@ -14,6 +14,7 @@ exports.UserSeederService = void 0;
|
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const authentication_service_1 = require("../services/authentication.service");
|
|
16
16
|
const user_service_1 = require("../services/user.service");
|
|
17
|
+
const uuid_1 = require("uuid");
|
|
17
18
|
let UserSeederService = UserSeederService_1 = class UserSeederService {
|
|
18
19
|
constructor(authenticationService, userService) {
|
|
19
20
|
this.authenticationService = authenticationService;
|
|
@@ -21,12 +22,12 @@ let UserSeederService = UserSeederService_1 = class UserSeederService {
|
|
|
21
22
|
this.logger = new common_1.Logger(UserSeederService_1.name);
|
|
22
23
|
}
|
|
23
24
|
async seed() {
|
|
24
|
-
let user = await this.userService.findOneByUsername("
|
|
25
|
+
let user = await this.userService.findOneByUsername("sa");
|
|
25
26
|
if (!user) {
|
|
26
27
|
user = await this.authenticationService.signUp({
|
|
27
|
-
username: '
|
|
28
|
-
email: '
|
|
29
|
-
password:
|
|
28
|
+
username: 'sa',
|
|
29
|
+
email: 'sa@solidxai.com',
|
|
30
|
+
password: (0, uuid_1.v4)(),
|
|
30
31
|
});
|
|
31
32
|
this.logger.log(`Newly created user is ${user}`);
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/user-seeder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+EAA2E;AAC3E,2DAAuD;
|
|
1
|
+
{"version":3,"file":"user-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/user-seeder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+EAA2E;AAC3E,2DAAuD;AACvD,+BAAoC;AAG7B,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG1B,YACqB,qBAA4C,EAC5C,WAAwB;QADxB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,gBAAW,GAAX,WAAW,CAAa;QAJ5B,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAKzD,CAAC;IAEL,KAAK,CAAC,IAAI;QAEN,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;gBAC3C,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,IAAA,SAAM,GAAE;aACrB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAGD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACJ,CAAA;AA1BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAKmC,8CAAqB;QAC/B,0BAAW;GALpC,iBAAiB,CA0B7B","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { UserService } from '../services/user.service';\nimport { v4 as uuidv4 } from 'uuid';\n\n@Injectable()\nexport class UserSeederService {\n private readonly logger = new Logger(UserSeederService.name);\n\n constructor(\n private readonly authenticationService: AuthenticationService,\n private readonly userService: UserService,\n ) { }\n\n async seed() {\n // see if the user already exists, \n let user = await this.userService.findOneByUsername(\"sa\");\n\n if (!user) {\n user = await this.authenticationService.signUp({\n username: 'sa',\n email: 'sa@solidxai.com',\n password: uuidv4(),\n }); \n\n this.logger.log(`Newly created user is ${user}`);\n }\n\n // now make this user an Admin by adding them to the Admin role group. \n await this.userService.addRoleToUser(user.email, \"Admin\");\n await this.userService.addRoleToUser(user.email, \"Public\");\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/action-metadata.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"action-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/action-metadata.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAM,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,qBACa,qBAAsB,SAAQ,WAAW,CAAC,cAAc,CAAC;IAGlE,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB;IACnD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAE7C,QAAQ,CAAC,aAAa,EAAE,aAAa;IAGrC,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS;gBAXpB,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EAEpC,aAAa,EAAE,aAAa,EAG5B,IAAI,EAAE,wBAAwB,EAC9B,SAAS,EAAE,SAAS;IAMzB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK;IAU7C,MAAM,CAAC,oBAAoB,EAAE,GAAG;CAoBvC"}
|
|
@@ -65,6 +65,7 @@ let ActionMetadataService = class ActionMetadataService extends crud_service_1.C
|
|
|
65
65
|
exports.ActionMetadataService = ActionMetadataService;
|
|
66
66
|
exports.ActionMetadataService = ActionMetadataService = __decorate([
|
|
67
67
|
(0, common_1.Injectable)(),
|
|
68
|
+
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => model_metadata_service_1.ModelMetadataService))),
|
|
68
69
|
__param(6, (0, typeorm_1.InjectEntityManager)()),
|
|
69
70
|
__metadata("design:paramtypes", [model_metadata_service_1.ModelMetadataService,
|
|
70
71
|
module_metadata_service_1.ModuleMetadataService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-metadata.service.js","sourceRoot":"","sources":["../../src/services/action-metadata.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"action-metadata.service.js","sourceRoot":"","sources":["../../src/services/action-metadata.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAgE;AAChE,2CAA+C;AAC/C,uCAA2D;AAC3D,6CAAsD;AACtD,+DAAqE;AACrE,iDAAwD;AACxD,iDAAwD;AACxD,qEAA2E;AAC3E,uEAA6E;AAC7E,qCAA4C;AAG5C,yFAAqF;AAI9E,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,0BAA2B;IACpE,YAEW,oBAA0C,EAC1C,qBAA4C,EAC5C,aAA4B,EAC5B,WAAwB,EACxB,gBAAkC,EAClC,iBAAoC,EAEpC,aAA4B,EAG5B,IAA8B,EAC9B,SAAoB;QAG7B,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAd3K,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEpC,kBAAa,GAAb,aAAa,CAAe;QAG5B,SAAI,GAAJ,IAAI,CAA0B;QAC9B,cAAS,GAAT,SAAS,CAAW;IAI/B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,SAAS,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI;aACX;YACD,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,oBAAyB;QAEpC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClD,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB,CAAC,IAAI;aAChC;SACF,CAAC,CAAA;QAGF,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,qBAAqB,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/C,CAAC;aAEI,CAAC;YACJ,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CAEF,CAAA;AAlDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6CAAoB,CAAC,CAAC,CAAA;IAO9C,WAAA,IAAA,6BAAmB,GAAE,CAAA;qCANS,6CAAoB;QACnB,+CAAqB;QAC7B,sBAAa;QACf,0BAAW;QACN,uBAAgB;QACf,uCAAiB;QAErB,uBAAa;QAGtB,qDAAwB;QACnB,gBAAS;GAdpB,qBAAqB,CAkDjC","sourcesContent":["import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { DiscoveryService, ModuleRef } from \"@nestjs/core\";\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { CrudHelperService } from \"src/services/crud-helper.service\";\nimport { CRUDService } from 'src/services/crud.service';\nimport { FileService } from \"src/services/file.service\";\nimport { ModelMetadataService } from 'src/services/model-metadata.service';\nimport { ModuleMetadataService } from 'src/services/module-metadata.service';\nimport { EntityManager, In } from 'typeorm';\n\n\nimport { ActionMetadataRepository } from 'src/repository/action-metadata.repository';\nimport { ActionMetadata } from '../entities/action-metadata.entity';\n\n@Injectable()\nexport class ActionMetadataService extends CRUDService<ActionMetadata> {\n constructor(\n @Inject(forwardRef(() => ModelMetadataService))\n readonly modelMetadataService: ModelMetadataService,\n readonly moduleMetadataService: ModuleMetadataService,\n readonly configService: ConfigService,\n readonly fileService: FileService,\n readonly discoveryService: DiscoveryService,\n readonly crudHelperService: CrudHelperService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(ActionMetadata, 'default')\n // readonly repo: Repository<ActionMetadata>,\n readonly repo: ActionMetadataRepository,\n readonly moduleRef: ModuleRef\n\n ) {\n super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'actionMetadata', 'solid-core', moduleRef);\n }\n\n async findOneByUserKey(name: string, relations = {}) {\n const entity = await this.repo.findOne({\n where: {\n name: name,\n },\n relations: relations,\n });\n return entity;\n }\n\n async upsert(updateSolidActionDto: any) {\n // First check if module already exists using name\n const existingSolidAction = await this.repo.findOne({\n where: {\n name: updateSolidActionDto.name\n }\n })\n\n // if found\n if (existingSolidAction) {\n const updatedSolidActionDto = { ...existingSolidAction, ...updateSolidActionDto };\n return this.repo.save(updatedSolidActionDto);\n }\n // if not found - create new \n else {\n const moduleMetadata = this.repo.create(updateSolidActionDto);\n return this.repo.save(moduleMetadata);\n }\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-interaction.service.d.ts","sourceRoot":"","sources":["../../src/services/ai-interaction.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,qBACa,oBAAqB,SAAQ,WAAW,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-interaction.service.d.ts","sourceRoot":"","sources":["../../src/services/ai-interaction.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,qBACa,oBAAqB,SAAQ,WAAW,CAAC,aAAa,CAAC;IAKhE,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB;IACnD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAE7C,QAAQ,CAAC,aAAa,EAAE,aAAa;IAGrC,QAAQ,CAAC,IAAI,EAAE,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;IAEpE,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAlB/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;gBAIrD,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EAEpC,aAAa,EAAE,aAAa,EAG5B,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,EAE3D,iBAAiB,EAAE,iBAAiB;IAMzC,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,EAAE,QAAQ,GAAE,MAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAqChI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA+FxD,aAAa,CAAC,QAAQ,EAAE,MAAM;IAexB,uBAAuB,CAAC,EAAE,EAAE,MAAM;CAuDzC"}
|
|
@@ -218,6 +218,7 @@ let AiInteractionService = AiInteractionService_1 = class AiInteractionService e
|
|
|
218
218
|
exports.AiInteractionService = AiInteractionService;
|
|
219
219
|
exports.AiInteractionService = AiInteractionService = AiInteractionService_1 = __decorate([
|
|
220
220
|
(0, common_1.Injectable)(),
|
|
221
|
+
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => model_metadata_service_1.ModelMetadataService))),
|
|
221
222
|
__param(6, (0, typeorm_1.InjectEntityManager)()),
|
|
222
223
|
__metadata("design:paramtypes", [model_metadata_service_1.ModelMetadataService,
|
|
223
224
|
module_metadata_service_1.ModuleMetadataService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-interaction.service.js","sourceRoot":"","sources":["../../src/services/ai-interaction.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, Injectable, Logger } from '@nestjs/common';\nimport { DiscoveryService, ModuleRef } from \"@nestjs/core\";\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { EntityManager } from 'typeorm';\n\nimport { ConfigService } from '@nestjs/config';\nimport { spawn } from 'child_process';\nimport * as fs from 'fs/promises';\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport { InvokeAiPromptDto } from 'src/dtos/invoke-ai-prompt.dto';\nimport { McpResponse, TriggerMcpClientOptions } from 'src/interfaces';\nimport { AiInteractionRepository } from 'src/repository/ai-interaction.repository';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\nimport { CRUDService } from 'src/services/crud.service';\nimport { FileService } from 'src/services/file.service';\nimport { ModelMetadataService } from 'src/services/model-metadata.service';\nimport { ModuleMetadataService } from 'src/services/module-metadata.service';\nimport { AiInteraction } from '../entities/ai-interaction.entity';\nimport { McpHandlerFactory } from './genai/mcp-handlers/mcp-handler-factory.service';\nimport { PublisherFactory } from './queues/publisher-factory.service';\n\n@Injectable()\nexport class AiInteractionService extends CRUDService<AiInteraction> {\n private readonly logger = new Logger(AiInteractionService.name);\n\n constructor(\n readonly modelMetadataService: ModelMetadataService,\n readonly moduleMetadataService: ModuleMetadataService,\n readonly configService: ConfigService,\n readonly fileService: FileService,\n readonly discoveryService: DiscoveryService,\n readonly crudHelperService: CrudHelperService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(AiInteraction, 'default')\n // readonly repo: Repository<AiInteraction>,\n readonly repo: AiInteractionRepository,\n readonly moduleRef: ModuleRef,\n readonly publisherFactory: PublisherFactory<TriggerMcpClientOptions>,\n // readonly requestContextService: RequestContextService,\n readonly mcpHandlerFactory: McpHandlerFactory,\n\n ) {\n super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'aiInteraction', 'solid-core', moduleRef);\n }\n\n async triggerMcpClientJob(dto: InvokeAiPromptDto, userId: number, isAutoApply: boolean = false, threadId: string = null): Promise<any> {\n // const activeUser: ActiveUserData = this.requestContextService.getActiveUser();\n\n const aiInteraction = await this.create({\n userId: userId,\n threadId: threadId ? threadId : `thread-${userId}`,\n role: 'human',\n message: dto.prompt,\n contentType: '',\n errorMessage: '',\n modelUsed: '',\n responseTimeMs: 0,\n metadata: '',\n isAutoApply: isAutoApply\n });\n const m = {\n payload: {\n aiInteractionId: aiInteraction.id,\n moduleName: dto.moduleName\n },\n parentEntity: 'aiInteraction',\n parentEntityId: aiInteraction.id,\n };\n\n const queueMessageId = await this.publisherFactory.publish(m, 'TriggerMcpClientPublisher');\n\n return {\n queueMessageId: queueMessageId,\n aiInteractionId: aiInteraction.id\n }\n }\n\n /**\n * Runs the Python MCP client with a prompt and returns the parsed JSON embedded in the 'response'.\n * @param prompt - The question or instruction to send to the MCP client.\n * @returns The parsed object inside the 'response' field of the JSON output.\n */\n async runMcpPrompt(prompt: string): Promise<McpResponse> {\n const pythonExecutable = process.env.MCP_PYTHON_EXECUTABLE;\n const mcpClient = process.env.MCP_CLIENT;\n\n // TODO: We can return an error if the above env variables are not properly setup...\n if (!pythonExecutable || !mcpClient) {\n throw new BadRequestException(ERROR_MESSAGES.PYTHON_EXECUTABLE_NOT_CONFIGURED);\n }\n\n // Check if both paths are valid and accessible\n try {\n const [pyStat, clientStat] = await Promise.all([\n fs.stat(pythonExecutable),\n fs.stat(mcpClient),\n ]);\n\n if (!pyStat.isFile()) {\n throw new BadRequestException(`MCP_PYTHON_EXECUTABLE path is not a file: ${pythonExecutable}`);\n }\n\n if (!clientStat.isFile()) {\n throw new BadRequestException(`MCP_CLIENT path is not a file: ${mcpClient}`);\n }\n\n } catch (err: any) {\n throw new BadRequestException(`Invalid MCP executable or client path: ${err.message}`);\n }\n\n // TODO: Refactor to use the command.service.ts instead...\n return new Promise((resolve, reject) => {\n this.logger.log(`Attempting to run command:`)\n this.logger.log(`${pythonExecutable} ${mcpClient} \"${prompt}\"`);\n\n const python = spawn(pythonExecutable, [mcpClient, `\"${prompt}\"`]);\n\n let stdout = '';\n let stderr = '';\n\n python.stdout.on('data', (data) => {\n stdout += data.toString();\n });\n\n python.stderr.on('data', (data) => {\n stderr += data.toString();\n });\n\n python.on('close', (code) => {\n this.logger.log(`Python script exited with code ${code}`);\n\n if (code !== 0) {\n this.logger.error(`Python script exited with a non-zero exit code: ${stderr}`);\n return reject(new Error(`Python script exited with a non-zero exit code: ${stderr}`));\n }\n\n try {\n this.logger.log(`Python script exited with zero exit code: ${stdout}`);\n const raw: McpResponse = JSON.parse(stdout);\n\n // Sometimes the raw.response might not be a valid json\n // TODO: examine the content type of the raw response..\n // if (raw.content_type==='json') {\n // }\n let parsedResponse = raw.response;\n try {\n parsedResponse = JSON.parse(raw.response);\n }\n catch (ex) {\n this.logger.warn(`Attempting to parse mcp client response assuming it is JSON, however it is not: ${parsedResponse}`);\n // raw.success = false\n }\n // Parse the response string into an object\n // const parsedResponse = JSON.parse(raw.response);\n\n // Replace the string with the parsed object\n const enrichedRaw = {\n ...raw,\n response: parsedResponse,\n };\n // if (!raw.success) {\n // return reject(new Error(`MCP error: ${raw.errors?.join(', ')}`));\n // }\n // let cleaned = raw.response.trim();\n\n // Don't need to re-parse this...\n // const parsed = JSON.parse(cleaned);\n // resolve(cleaned);\n\n resolve(enrichedRaw);\n } catch (err: any) {\n reject(new Error(`Mcp Invocation Failed: ${err.message}`));\n }\n });\n });\n }\n\n cleanResponse(response: string) {\n this.logger.log(`mcp server response is: ${response}`);\n\n // Remove markdown-style code block wrapper\n if (response.startsWith('```json')) {\n response = response.replace(/^```json/, '').trim();\n }\n if (response.endsWith('```')) {\n response = response.replace(/```$/, '').trim();\n }\n this.logger.log(`mcp server response after removing doc tags is: ${response}`);\n\n return response;\n }\n\n async applySolidAiInteraction(id: number) {\n // Fetch the aiInteraction\n const aiInteraction = await this.findOne(id, {\n populate: ['user']\n });\n if (!aiInteraction) {\n const m = `Unable to identified the aiInteraction entry that triggered this job... using id: ${id}`\n\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(m);\n }\n\n // TODO: Validation: Check if JSON.parse(metadata).tools_invoked starts with solid_\n let metadata: any = {};\n try {\n if (typeof aiInteraction.metadata === \"string\") {\n metadata = JSON.parse(aiInteraction.metadata);\n } else if (typeof aiInteraction.metadata === \"object\" && aiInteraction.metadata !== null) {\n metadata = aiInteraction.metadata;\n } else {\n // optional fallback\n metadata = {};\n }\n } catch (e) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(`Invalid metadata JSON: ${e}`);\n }\n\n const toolsInvoked = metadata['tools_invoked'];\n if (!toolsInvoked) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(ERROR_MESSAGES.UNABLE_TO_RESOLVE_SOLID_COMMAND);\n }\n\n // TODO: OPTIMISATION for chained tool invocation, for now we are assuming only 1 tool was used.\n const toolInvoked = toolsInvoked[0];\n\n // TODO: use the toolInvoked to identify a service using some convention.\n // TODO: Eg. if toolInvoked is solid_create_module <> SolidCreateModuleMcpToolHandler ... create a factory class to do this mapping and identify the relevant provider. \n const mcpToolHandler = this.mcpHandlerFactory.getInstance(toolInvoked);\n if (!mcpToolHandler) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(ERROR_MESSAGES.UNABLE_TO_RESOLVE_MCP_HANDLER);\n }\n\n const handlerApplicationResponse = await mcpToolHandler.apply(aiInteraction);\n\n // TODO: This provider to implement an interface - IMcpToolResponseHandler ... apply(aiInteraction: AiInteraction)\n // throw new Error('Method not implemented.');\n\n // Mark the interaction as applied\n await this.update(aiInteraction.id, { isApplied: true }, [], true);\n\n return handlerApplicationResponse;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ai-interaction.service.js","sourceRoot":"","sources":["../../src/services/ai-interaction.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';\nimport { DiscoveryService, ModuleRef } from \"@nestjs/core\";\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { EntityManager } from 'typeorm';\n\nimport { ConfigService } from '@nestjs/config';\nimport { spawn } from 'child_process';\nimport * as fs from 'fs/promises';\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport { InvokeAiPromptDto } from 'src/dtos/invoke-ai-prompt.dto';\nimport { McpResponse, TriggerMcpClientOptions } from 'src/interfaces';\nimport { AiInteractionRepository } from 'src/repository/ai-interaction.repository';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\nimport { CRUDService } from 'src/services/crud.service';\nimport { FileService } from 'src/services/file.service';\nimport { ModelMetadataService } from 'src/services/model-metadata.service';\nimport { ModuleMetadataService } from 'src/services/module-metadata.service';\nimport { AiInteraction } from '../entities/ai-interaction.entity';\nimport { McpHandlerFactory } from './genai/mcp-handlers/mcp-handler-factory.service';\nimport { PublisherFactory } from './queues/publisher-factory.service';\n\n@Injectable()\nexport class AiInteractionService extends CRUDService<AiInteraction> {\n private readonly logger = new Logger(AiInteractionService.name);\n\n constructor(\n @Inject(forwardRef(() => ModelMetadataService))\n readonly modelMetadataService: ModelMetadataService,\n readonly moduleMetadataService: ModuleMetadataService,\n readonly configService: ConfigService,\n readonly fileService: FileService,\n readonly discoveryService: DiscoveryService,\n readonly crudHelperService: CrudHelperService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(AiInteraction, 'default')\n // readonly repo: Repository<AiInteraction>,\n readonly repo: AiInteractionRepository,\n readonly moduleRef: ModuleRef,\n readonly publisherFactory: PublisherFactory<TriggerMcpClientOptions>,\n // readonly requestContextService: RequestContextService,\n readonly mcpHandlerFactory: McpHandlerFactory,\n\n ) {\n super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'aiInteraction', 'solid-core', moduleRef);\n }\n\n async triggerMcpClientJob(dto: InvokeAiPromptDto, userId: number, isAutoApply: boolean = false, threadId: string = null): Promise<any> {\n // const activeUser: ActiveUserData = this.requestContextService.getActiveUser();\n\n const aiInteraction = await this.create({\n userId: userId,\n threadId: threadId ? threadId : `thread-${userId}`,\n role: 'human',\n message: dto.prompt,\n contentType: '',\n errorMessage: '',\n modelUsed: '',\n responseTimeMs: 0,\n metadata: '',\n isAutoApply: isAutoApply\n });\n const m = {\n payload: {\n aiInteractionId: aiInteraction.id,\n moduleName: dto.moduleName\n },\n parentEntity: 'aiInteraction',\n parentEntityId: aiInteraction.id,\n };\n\n const queueMessageId = await this.publisherFactory.publish(m, 'TriggerMcpClientPublisher');\n\n return {\n queueMessageId: queueMessageId,\n aiInteractionId: aiInteraction.id\n }\n }\n\n /**\n * Runs the Python MCP client with a prompt and returns the parsed JSON embedded in the 'response'.\n * @param prompt - The question or instruction to send to the MCP client.\n * @returns The parsed object inside the 'response' field of the JSON output.\n */\n async runMcpPrompt(prompt: string): Promise<McpResponse> {\n const pythonExecutable = process.env.MCP_PYTHON_EXECUTABLE;\n const mcpClient = process.env.MCP_CLIENT;\n\n // TODO: We can return an error if the above env variables are not properly setup...\n if (!pythonExecutable || !mcpClient) {\n throw new BadRequestException(ERROR_MESSAGES.PYTHON_EXECUTABLE_NOT_CONFIGURED);\n }\n\n // Check if both paths are valid and accessible\n try {\n const [pyStat, clientStat] = await Promise.all([\n fs.stat(pythonExecutable),\n fs.stat(mcpClient),\n ]);\n\n if (!pyStat.isFile()) {\n throw new BadRequestException(`MCP_PYTHON_EXECUTABLE path is not a file: ${pythonExecutable}`);\n }\n\n if (!clientStat.isFile()) {\n throw new BadRequestException(`MCP_CLIENT path is not a file: ${mcpClient}`);\n }\n\n } catch (err: any) {\n throw new BadRequestException(`Invalid MCP executable or client path: ${err.message}`);\n }\n\n // TODO: Refactor to use the command.service.ts instead...\n return new Promise((resolve, reject) => {\n this.logger.log(`Attempting to run command:`)\n this.logger.log(`${pythonExecutable} ${mcpClient} \"${prompt}\"`);\n\n const python = spawn(pythonExecutable, [mcpClient, `\"${prompt}\"`]);\n\n let stdout = '';\n let stderr = '';\n\n python.stdout.on('data', (data) => {\n stdout += data.toString();\n });\n\n python.stderr.on('data', (data) => {\n stderr += data.toString();\n });\n\n python.on('close', (code) => {\n this.logger.log(`Python script exited with code ${code}`);\n\n if (code !== 0) {\n this.logger.error(`Python script exited with a non-zero exit code: ${stderr}`);\n return reject(new Error(`Python script exited with a non-zero exit code: ${stderr}`));\n }\n\n try {\n this.logger.log(`Python script exited with zero exit code: ${stdout}`);\n const raw: McpResponse = JSON.parse(stdout);\n\n // Sometimes the raw.response might not be a valid json\n // TODO: examine the content type of the raw response..\n // if (raw.content_type==='json') {\n // }\n let parsedResponse = raw.response;\n try {\n parsedResponse = JSON.parse(raw.response);\n }\n catch (ex) {\n this.logger.warn(`Attempting to parse mcp client response assuming it is JSON, however it is not: ${parsedResponse}`);\n // raw.success = false\n }\n // Parse the response string into an object\n // const parsedResponse = JSON.parse(raw.response);\n\n // Replace the string with the parsed object\n const enrichedRaw = {\n ...raw,\n response: parsedResponse,\n };\n // if (!raw.success) {\n // return reject(new Error(`MCP error: ${raw.errors?.join(', ')}`));\n // }\n // let cleaned = raw.response.trim();\n\n // Don't need to re-parse this...\n // const parsed = JSON.parse(cleaned);\n // resolve(cleaned);\n\n resolve(enrichedRaw);\n } catch (err: any) {\n reject(new Error(`Mcp Invocation Failed: ${err.message}`));\n }\n });\n });\n }\n\n cleanResponse(response: string) {\n this.logger.log(`mcp server response is: ${response}`);\n\n // Remove markdown-style code block wrapper\n if (response.startsWith('```json')) {\n response = response.replace(/^```json/, '').trim();\n }\n if (response.endsWith('```')) {\n response = response.replace(/```$/, '').trim();\n }\n this.logger.log(`mcp server response after removing doc tags is: ${response}`);\n\n return response;\n }\n\n async applySolidAiInteraction(id: number) {\n // Fetch the aiInteraction\n const aiInteraction = await this.findOne(id, {\n populate: ['user']\n });\n if (!aiInteraction) {\n const m = `Unable to identified the aiInteraction entry that triggered this job... using id: ${id}`\n\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(m);\n }\n\n // TODO: Validation: Check if JSON.parse(metadata).tools_invoked starts with solid_\n let metadata: any = {};\n try {\n if (typeof aiInteraction.metadata === \"string\") {\n metadata = JSON.parse(aiInteraction.metadata);\n } else if (typeof aiInteraction.metadata === \"object\" && aiInteraction.metadata !== null) {\n metadata = aiInteraction.metadata;\n } else {\n // optional fallback\n metadata = {};\n }\n } catch (e) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(`Invalid metadata JSON: ${e}`);\n }\n\n const toolsInvoked = metadata['tools_invoked'];\n if (!toolsInvoked) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(ERROR_MESSAGES.UNABLE_TO_RESOLVE_SOLID_COMMAND);\n }\n\n // TODO: OPTIMISATION for chained tool invocation, for now we are assuming only 1 tool was used.\n const toolInvoked = toolsInvoked[0];\n\n // TODO: use the toolInvoked to identify a service using some convention.\n // TODO: Eg. if toolInvoked is solid_create_module <> SolidCreateModuleMcpToolHandler ... create a factory class to do this mapping and identify the relevant provider. \n const mcpToolHandler = this.mcpHandlerFactory.getInstance(toolInvoked);\n if (!mcpToolHandler) {\n // TODO: RESPONSE SHAPE ALERT Check if we want to control the shape of the response....\n throw new Error(ERROR_MESSAGES.UNABLE_TO_RESOLVE_MCP_HANDLER);\n }\n\n const handlerApplicationResponse = await mcpToolHandler.apply(aiInteraction);\n\n // TODO: This provider to implement an interface - IMcpToolResponseHandler ... apply(aiInteraction: AiInteraction)\n // throw new Error('Method not implemented.');\n\n // Mark the interaction as applied\n await this.update(aiInteraction.id, { isApplied: true }, [], true);\n\n return handlerApplicationResponse;\n }\n}\n"]}
|
|
@@ -7,7 +7,6 @@ import { jwtConfig } from 'src/config/jwt.config';
|
|
|
7
7
|
import { CreateUserDto } from 'src/dtos/create-user.dto';
|
|
8
8
|
import { MailFactory } from 'src/factories/mail.factory';
|
|
9
9
|
import { UserRepository } from 'src/repository/user.repository';
|
|
10
|
-
import { Msg91OTPService } from 'src/services/sms/Msg91OTPService';
|
|
11
10
|
import { DataSource, Repository } from 'typeorm';
|
|
12
11
|
import { iamConfig } from '../config/iam.config';
|
|
13
12
|
import { ChangePasswordDto } from "../dtos/change-password.dto";
|
|
@@ -27,6 +26,7 @@ import { RoleMetadataService } from './role-metadata.service';
|
|
|
27
26
|
import { SettingService } from './setting.service';
|
|
28
27
|
import { UserActivityHistoryService } from './user-activity-history.service';
|
|
29
28
|
import { UserService } from './user.service';
|
|
29
|
+
import { SmsFactory } from 'src/factories/sms.factory';
|
|
30
30
|
export declare class AuthenticationService {
|
|
31
31
|
private readonly userService;
|
|
32
32
|
private readonly userRepository;
|
|
@@ -37,7 +37,7 @@ export declare class AuthenticationService {
|
|
|
37
37
|
private readonly refreshTokenIdsStorage;
|
|
38
38
|
private readonly httpService;
|
|
39
39
|
private readonly mailServiceFactory;
|
|
40
|
-
private readonly
|
|
40
|
+
private readonly smsFactory;
|
|
41
41
|
private readonly eventEmitter;
|
|
42
42
|
private readonly settingService;
|
|
43
43
|
private readonly roleMetadataService;
|
|
@@ -45,7 +45,7 @@ export declare class AuthenticationService {
|
|
|
45
45
|
private readonly userActivityHistoryService;
|
|
46
46
|
private readonly dataSource;
|
|
47
47
|
private readonly logger;
|
|
48
|
-
constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, jwtConfiguration: ConfigType<typeof jwtConfig>, iamConfiguration: ConfigType<typeof iamConfig>, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory,
|
|
48
|
+
constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, jwtConfiguration: ConfigType<typeof jwtConfig>, iamConfiguration: ConfigType<typeof iamConfig>, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory, smsFactory: SmsFactory, eventEmitter: EventEmitter2, settingService: SettingService, roleMetadataService: RoleMetadataService, commonConfiguration: ConfigType<typeof commonConfig>, userActivityHistoryService: UserActivityHistoryService, dataSource: DataSource);
|
|
49
49
|
private getConfig;
|
|
50
50
|
private getCompanyLogo;
|
|
51
51
|
resolveUser(username: string, email: string): Promise<User>;
|
|
@@ -58,6 +58,9 @@ export declare class AuthenticationService {
|
|
|
58
58
|
private handlePostSignup;
|
|
59
59
|
generatePassword(length?: number): string;
|
|
60
60
|
private notifyUserOnForcePasswordChange;
|
|
61
|
+
private isWelcomeEmailEnabled;
|
|
62
|
+
private isWelcomeSmsEnabled;
|
|
63
|
+
private notifyUserOnSignup;
|
|
61
64
|
otpInitiateRegistration(signUpDto: OTPSignUpDto): Promise<{
|
|
62
65
|
message: string;
|
|
63
66
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,6 @@ const error_messages_1 = require("../constants/error-messages");
|
|
|
30
30
|
const success_messages_1 = require("../constants/success-messages");
|
|
31
31
|
const mail_factory_1 = require("../factories/mail.factory");
|
|
32
32
|
const user_repository_1 = require("../repository/user.repository");
|
|
33
|
-
const Msg91OTPService_1 = require("./sms/Msg91OTPService");
|
|
34
33
|
const typeorm_2 = require("typeorm");
|
|
35
34
|
const uuid_1 = require("uuid");
|
|
36
35
|
const iam_config_1 = require("../config/iam.config");
|
|
@@ -43,6 +42,7 @@ const role_metadata_service_1 = require("./role-metadata.service");
|
|
|
43
42
|
const setting_service_1 = require("./setting.service");
|
|
44
43
|
const user_activity_history_service_1 = require("./user-activity-history.service");
|
|
45
44
|
const user_service_1 = require("./user.service");
|
|
45
|
+
const sms_factory_1 = require("../factories/sms.factory");
|
|
46
46
|
var LoginProvider;
|
|
47
47
|
(function (LoginProvider) {
|
|
48
48
|
LoginProvider["LOCAL"] = "local";
|
|
@@ -50,7 +50,7 @@ var LoginProvider;
|
|
|
50
50
|
LoginProvider["OTP"] = "otp";
|
|
51
51
|
})(LoginProvider || (LoginProvider = {}));
|
|
52
52
|
let AuthenticationService = AuthenticationService_1 = class AuthenticationService {
|
|
53
|
-
constructor(userService, userRepository, hashingService, jwtService, jwtConfiguration, iamConfiguration, refreshTokenIdsStorage, httpService, mailServiceFactory,
|
|
53
|
+
constructor(userService, userRepository, hashingService, jwtService, jwtConfiguration, iamConfiguration, refreshTokenIdsStorage, httpService, mailServiceFactory, smsFactory, eventEmitter, settingService, roleMetadataService, commonConfiguration, userActivityHistoryService, dataSource) {
|
|
54
54
|
this.userService = userService;
|
|
55
55
|
this.userRepository = userRepository;
|
|
56
56
|
this.hashingService = hashingService;
|
|
@@ -60,7 +60,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
60
60
|
this.refreshTokenIdsStorage = refreshTokenIdsStorage;
|
|
61
61
|
this.httpService = httpService;
|
|
62
62
|
this.mailServiceFactory = mailServiceFactory;
|
|
63
|
-
this.
|
|
63
|
+
this.smsFactory = smsFactory;
|
|
64
64
|
this.eventEmitter = eventEmitter;
|
|
65
65
|
this.settingService = settingService;
|
|
66
66
|
this.roleMetadataService = roleMetadataService;
|
|
@@ -150,7 +150,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
150
150
|
try {
|
|
151
151
|
const onForcePasswordChange = await this.getConfig('forceChangePasswordOnFirstLogin');
|
|
152
152
|
const extensionUser = extensionUserRepo.merge(extensionUserRepo.create(), extensionUserDto);
|
|
153
|
-
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(extensionUser, signUpDto, true, onForcePasswordChange);
|
|
153
|
+
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(extensionUser, signUpDto, extensionUserDto.active ?? true, onForcePasswordChange);
|
|
154
154
|
const savedUser = await extensionUserRepo.save(user);
|
|
155
155
|
await this.handlePostSignup(savedUser, signUpDto.roles, pwd, autoGeneratedPwd);
|
|
156
156
|
return savedUser;
|
|
@@ -208,6 +208,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
208
208
|
if (user.forcePasswordChange && autoGeneratedPwd) {
|
|
209
209
|
this.notifyUserOnForcePasswordChange(user, autoGeneratedPwd);
|
|
210
210
|
}
|
|
211
|
+
await this.notifyUserOnSignup(user);
|
|
211
212
|
}
|
|
212
213
|
generatePassword(length = 8) {
|
|
213
214
|
const upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
@@ -236,6 +237,36 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
236
237
|
companyLogoUrl: companyLogo
|
|
237
238
|
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
238
239
|
}
|
|
240
|
+
isWelcomeEmailEnabled() {
|
|
241
|
+
return this.iamConfiguration.sendWelcomeEmailOnSignup;
|
|
242
|
+
}
|
|
243
|
+
isWelcomeSmsEnabled() {
|
|
244
|
+
return this.iamConfiguration.sendWelcomeSmsOnSignup;
|
|
245
|
+
}
|
|
246
|
+
async notifyUserOnSignup(user) {
|
|
247
|
+
const companyLogo = await this.getCompanyLogo();
|
|
248
|
+
if (this.isWelcomeEmailEnabled()) {
|
|
249
|
+
const mailService = this.mailServiceFactory.getMailService();
|
|
250
|
+
mailService.sendEmailUsingTemplate(user.email, 'email-on-signup', {
|
|
251
|
+
solidAppName: process.env.SOLID_APP_NAME,
|
|
252
|
+
solidAppWebsiteUrl: process.env.SOLID_APP_WEBSITE_URL,
|
|
253
|
+
frontendLoginPageUrl: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL,
|
|
254
|
+
email: user.email,
|
|
255
|
+
fullName: user.fullName,
|
|
256
|
+
userName: user.username,
|
|
257
|
+
companyLogoUrl: companyLogo
|
|
258
|
+
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
259
|
+
}
|
|
260
|
+
if (this.isWelcomeSmsEnabled() && user.mobile) {
|
|
261
|
+
const smsService = this.smsFactory.getSmsService();
|
|
262
|
+
smsService.sendSMSUsingTemplate(user.mobile, 'text-on-signup', {
|
|
263
|
+
solidAppName: process.env.SOLID_APP_NAME,
|
|
264
|
+
frontendLoginPageUrl: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL,
|
|
265
|
+
firstName: user.username,
|
|
266
|
+
fullName: user.fullName ? user.fullName : user.username
|
|
267
|
+
}, this.commonConfiguration.shouldQueueSms);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
239
270
|
async otpInitiateRegistration(signUpDto) {
|
|
240
271
|
try {
|
|
241
272
|
if (!this.isPasswordlessRegistrationEnabled()) {
|
|
@@ -338,14 +369,15 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
338
369
|
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
339
370
|
}
|
|
340
371
|
if (registrationValidationSources.includes(constants_1.RegistrationValidationSource.MOBILE)) {
|
|
341
|
-
this.
|
|
372
|
+
const smsService = this.smsFactory.getSmsService();
|
|
373
|
+
smsService.sendSMSUsingTemplate(user.mobile, 'otp-on-register', {
|
|
342
374
|
solidAppName: process.env.SOLID_APP_NAME,
|
|
343
375
|
otp: user.mobileVerificationTokenOnRegistration,
|
|
344
376
|
mobileVerificationTokenOnRegistration: user.mobileVerificationTokenOnRegistration,
|
|
345
377
|
firstName: user.username,
|
|
346
378
|
fullName: user.fullName ? user.fullName : user.username,
|
|
347
379
|
companyLogoUrl: companyLogo
|
|
348
|
-
});
|
|
380
|
+
}, this.commonConfiguration.shouldQueueSms);
|
|
349
381
|
}
|
|
350
382
|
}
|
|
351
383
|
async otpConfirmRegistration(confirmSignUpDto) {
|
|
@@ -448,9 +480,10 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
448
480
|
}
|
|
449
481
|
if (signInDto.type === constants_1.RegistrationValidationSource.EMAIL) {
|
|
450
482
|
const user = await this.userRepository.findOne({
|
|
451
|
-
where:
|
|
452
|
-
|
|
453
|
-
|
|
483
|
+
where: [
|
|
484
|
+
{ username: signInDto.identifier },
|
|
485
|
+
{ email: signInDto.identifier },
|
|
486
|
+
]
|
|
454
487
|
});
|
|
455
488
|
if (!user) {
|
|
456
489
|
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND);
|
|
@@ -466,9 +499,10 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
466
499
|
}
|
|
467
500
|
else if (signInDto.type === constants_1.RegistrationValidationSource.MOBILE) {
|
|
468
501
|
const user = await this.userRepository.findOne({
|
|
469
|
-
where:
|
|
470
|
-
|
|
471
|
-
|
|
502
|
+
where: [
|
|
503
|
+
{ username: signInDto.identifier },
|
|
504
|
+
{ mobile: signInDto.identifier },
|
|
505
|
+
]
|
|
472
506
|
});
|
|
473
507
|
if (!user) {
|
|
474
508
|
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND);
|
|
@@ -500,14 +534,15 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
500
534
|
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
501
535
|
}
|
|
502
536
|
if (loginType === constants_1.RegistrationValidationSource.MOBILE) {
|
|
503
|
-
this.
|
|
537
|
+
const smsService = this.smsFactory.getSmsService();
|
|
538
|
+
smsService.sendSMSUsingTemplate(user.mobile, 'otp-on-login', {
|
|
504
539
|
solidAppName: process.env.SOLID_APP_NAME,
|
|
505
540
|
otp: user.mobileVerificationTokenOnLogin,
|
|
506
541
|
mobileVerificationTokenOnLogin: user.mobileVerificationTokenOnLogin,
|
|
507
542
|
firstName: user.username,
|
|
508
543
|
fullName: user.fullName ? user.fullName : user.username,
|
|
509
544
|
companyLogoUrl: companyLogo
|
|
510
|
-
});
|
|
545
|
+
}, this.commonConfiguration.shouldQueueSms);
|
|
511
546
|
}
|
|
512
547
|
}
|
|
513
548
|
async otpConfirmLogin(confirmSignInDto) {
|
|
@@ -516,10 +551,13 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
516
551
|
}
|
|
517
552
|
if (confirmSignInDto.type === constants_1.RegistrationValidationSource.EMAIL) {
|
|
518
553
|
const user = await this.userRepository.findOne({
|
|
519
|
-
where:
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
554
|
+
where: [
|
|
555
|
+
{ username: confirmSignInDto.identifier },
|
|
556
|
+
{ email: confirmSignInDto.identifier },
|
|
557
|
+
],
|
|
558
|
+
relations: {
|
|
559
|
+
roles: true
|
|
560
|
+
}
|
|
523
561
|
});
|
|
524
562
|
if (!user) {
|
|
525
563
|
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND);
|
|
@@ -544,10 +582,13 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
544
582
|
}
|
|
545
583
|
else if (confirmSignInDto.type === constants_1.RegistrationValidationSource.MOBILE) {
|
|
546
584
|
const user = await this.userRepository.findOne({
|
|
547
|
-
where:
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
585
|
+
where: [
|
|
586
|
+
{ username: confirmSignInDto.identifier },
|
|
587
|
+
{ mobile: confirmSignInDto.identifier },
|
|
588
|
+
],
|
|
589
|
+
relations: {
|
|
590
|
+
roles: true
|
|
591
|
+
}
|
|
551
592
|
});
|
|
552
593
|
if (!user) {
|
|
553
594
|
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_ACTIVE);
|
|
@@ -660,13 +701,14 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
660
701
|
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
661
702
|
}
|
|
662
703
|
if (forgotPasswordSendVerificationTokenOn == constants_1.ForgotPasswordSendVerificationTokenOn.MOBILE && user.mobile) {
|
|
663
|
-
this.
|
|
704
|
+
const smsService = this.smsFactory.getSmsService();
|
|
705
|
+
smsService.sendSMSUsingTemplate(user.mobile, 'forgot-password', {
|
|
664
706
|
solidAppName: process.env.SOLID_APP_NAME,
|
|
665
707
|
otp: user.verificationTokenOnForgotPassword,
|
|
666
708
|
verificationTokenOnForgotPassword: user.verificationTokenOnForgotPassword,
|
|
667
709
|
firstName: user.username,
|
|
668
710
|
companyLogoUrl: companyLogo
|
|
669
|
-
});
|
|
711
|
+
}, this.commonConfiguration.shouldQueueSms);
|
|
670
712
|
}
|
|
671
713
|
}
|
|
672
714
|
async confirmForgotPassword(confirmForgotPasswordDto) {
|
|
@@ -723,13 +765,14 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
723
765
|
}, this.commonConfiguration.shouldQueueEmails, null, null, 'user', user.id);
|
|
724
766
|
}
|
|
725
767
|
if (forgotPasswordSendVerificationTokenOn == constants_1.ForgotPasswordSendVerificationTokenOn.MOBILE && user.mobile) {
|
|
726
|
-
this.
|
|
768
|
+
const smsService = this.smsFactory.getSmsService();
|
|
769
|
+
smsService.sendSMSUsingTemplate(user.mobile, 'forgot-password', {
|
|
727
770
|
solidAppName: process.env.SOLID_APP_NAME,
|
|
728
771
|
otp: user.verificationTokenOnForgotPassword,
|
|
729
772
|
verificationTokenOnForgotPassword: user.verificationTokenOnForgotPassword,
|
|
730
773
|
firstName: user.username,
|
|
731
774
|
companyLogoUrl: companyLogo
|
|
732
|
-
});
|
|
775
|
+
}, this.commonConfiguration.shouldQueueSms);
|
|
733
776
|
}
|
|
734
777
|
}
|
|
735
778
|
async generateTokens(user) {
|
|
@@ -904,7 +947,7 @@ exports.AuthenticationService = AuthenticationService = AuthenticationService_1
|
|
|
904
947
|
jwt_1.JwtService, void 0, void 0, refresh_token_ids_storage_service_1.RefreshTokenIdsStorageService,
|
|
905
948
|
axios_1.HttpService,
|
|
906
949
|
mail_factory_1.MailFactory,
|
|
907
|
-
|
|
950
|
+
sms_factory_1.SmsFactory,
|
|
908
951
|
event_emitter_1.EventEmitter2,
|
|
909
952
|
setting_service_1.SettingService,
|
|
910
953
|
role_metadata_service_1.RoleMetadataService, void 0, user_activity_history_service_1.UserActivityHistoryService,
|