@solidxai/core 0.1.8-beta.0 → 0.1.8-beta.1
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/controllers/agent-event.controller.d.ts +35 -0
- package/dist/controllers/agent-event.controller.d.ts.map +1 -0
- package/dist/controllers/agent-event.controller.js +147 -0
- package/dist/controllers/agent-event.controller.js.map +1 -0
- package/dist/controllers/agent-session.controller.d.ts +35 -0
- package/dist/controllers/agent-session.controller.d.ts.map +1 -0
- package/dist/controllers/agent-session.controller.js +147 -0
- package/dist/controllers/agent-session.controller.js.map +1 -0
- package/dist/dtos/create-agent-event.dto.d.ts +19 -0
- package/dist/dtos/create-agent-event.dto.d.ts.map +1 -0
- package/dist/dtos/create-agent-event.dto.js +118 -0
- package/dist/dtos/create-agent-event.dto.js.map +1 -0
- package/dist/dtos/create-agent-session.dto.d.ts +15 -0
- package/dist/dtos/create-agent-session.dto.d.ts.map +1 -0
- package/dist/dtos/create-agent-session.dto.js +94 -0
- package/dist/dtos/create-agent-session.dto.js.map +1 -0
- package/dist/dtos/update-agent-event.dto.d.ts +19 -0
- package/dist/dtos/update-agent-event.dto.d.ts.map +1 -0
- package/dist/dtos/update-agent-event.dto.js +117 -0
- package/dist/dtos/update-agent-event.dto.js.map +1 -0
- package/dist/dtos/update-agent-session.dto.d.ts +15 -0
- package/dist/dtos/update-agent-session.dto.d.ts.map +1 -0
- package/dist/dtos/update-agent-session.dto.js +93 -0
- package/dist/dtos/update-agent-session.dto.js.map +1 -0
- package/dist/entities/agent-event.entity.d.ts +28 -0
- package/dist/entities/agent-event.entity.d.ts.map +1 -0
- package/dist/entities/agent-event.entity.js +114 -0
- package/dist/entities/agent-event.entity.js.map +1 -0
- package/dist/entities/agent-session.entity.d.ts +23 -0
- package/dist/entities/agent-session.entity.d.ts.map +1 -0
- package/dist/entities/agent-session.entity.js +94 -0
- package/dist/entities/agent-session.entity.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/repository/agent-event.repository.d.ts +12 -0
- package/dist/repository/agent-event.repository.d.ts.map +1 -0
- package/dist/repository/agent-event.repository.js +34 -0
- package/dist/repository/agent-event.repository.js.map +1 -0
- package/dist/repository/agent-session.repository.d.ts +12 -0
- package/dist/repository/agent-session.repository.d.ts.map +1 -0
- package/dist/repository/agent-session.repository.js +34 -0
- package/dist/repository/agent-session.repository.js.map +1 -0
- package/dist/seeders/seed-data/solid-core-metadata.json +834 -20
- package/dist/services/agent-event.service.d.ts +12 -0
- package/dist/services/agent-event.service.d.ts.map +1 -0
- package/dist/services/agent-event.service.js +38 -0
- package/dist/services/agent-event.service.js.map +1 -0
- package/dist/services/agent-session.service.d.ts +12 -0
- package/dist/services/agent-session.service.d.ts.map +1 -0
- package/dist/services/agent-session.service.js +38 -0
- package/dist/services/agent-session.service.js.map +1 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +6 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +6 -0
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +2 -2
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +1 -0
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +17 -10
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/view-metadata.service.js +1 -1
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +16 -0
- package/dist/solid-core.module.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/agent-event.controller.ts +70 -0
- package/src/controllers/agent-session.controller.ts +70 -0
- package/src/dtos/create-agent-event.dto.ts +84 -0
- package/src/dtos/create-agent-session.dto.ts +64 -0
- package/src/dtos/update-agent-event.dto.ts +83 -0
- package/src/dtos/update-agent-session.dto.ts +63 -0
- package/src/entities/agent-event.entity.ts +88 -0
- package/src/entities/agent-session.entity.ts +71 -0
- package/src/index.ts +8 -0
- package/src/repository/agent-event.repository.ts +17 -0
- package/src/repository/agent-session.repository.ts +17 -0
- package/src/seeders/seed-data/solid-core-metadata.json +834 -20
- package/src/services/agent-event.service.ts +19 -0
- package/src/services/agent-session.service.ts +19 -0
- package/src/services/model-metadata.service.ts +1 -0
- package/src/services/module-metadata.service.ts +1 -2
- package/src/services/settings/default-settings-provider.service.ts +2 -2
- package/src/services/user-activity-history.service.ts +16 -10
- package/src/services/view-metadata.service.ts +1 -1
- package/src/solid-core.module.ts +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-metadata.service.js","sourceRoot":"","sources":["../../src/services/module-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';\nimport { InjectDataSource } from '@nestjs/typeorm';\nimport { DEFAULT_MEDIA_FILE_STORAGE_DIR } from \"src/services/settings/default-settings-provider.service\";\nimport type { SolidCoreSetting } from \"src/services/settings/default-settings-provider.service\";\nimport { DataSource, EntityManager, SelectQueryBuilder } from 'typeorm';\nimport { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';\nimport { ModuleMetadata } from '../entities/module-metadata.entity';\n\nimport { classify } from '@angular-devkit/core/src/utils/strings';\nimport { ConfigService } from '@nestjs/config';\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport * as path from 'path'; // To handle file paths\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ModuleMetadataRepository } from 'src/repository/module-metadata.repository';\nimport { PermissionMetadataSeederService } from 'src/seeders/permission-metadata-seeder.service';\nimport { DiskFileService } from 'src/services/file';\nimport { BasicFilterDto } from '../dtos/basic-filters.dto';\nimport { UpdateModuleMetadataDto } from '../dtos/update-module-metadata.dto';\nimport {\n ADD_MODULE_COMMAND,\n SchematicService,\n} from '../helpers/schematic.service';\nimport { SolidRegistry } from '../helpers/solid-registry';\nimport { CodeGenerationOptions, ModuleMetadataConfiguration } from '../interfaces';\nimport { CrudHelperService } from './crud-helper.service';\nimport { ModelMetadataService } from './model-metadata.service';\nimport { SettingService } from './setting.service';\n\n@Injectable()\nexport class ModuleMetadataService {\n private readonly logger = new Logger(ModuleMetadataService.name);\n\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n // @InjectRepository(ModuleMetadata)\n // private readonly moduleMetadataRepo: Repository<ModuleMetadata>,\n private readonly moduleMetadataRepo: ModuleMetadataRepository,\n private readonly crudHelperService: CrudHelperService,\n private readonly schematicService: SchematicService,\n private readonly fileService: DiskFileService,\n private readonly settingService: SettingService,\n\n private readonly permissionsSeederService: PermissionMetadataSeederService,\n @Inject(forwardRef(() => ModelMetadataService))\n private readonly modelMetadataService: ModelMetadataService,\n private readonly solidRegistry: SolidRegistry,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) { }\n\n async findMany(basicFilterDto: BasicFilterDto) {\n const alias = 'moduleMetadata';\n // Extract the required keys from the input query\n let { limit, offset } = basicFilterDto;\n\n // Create above query on pincode table using query builder\n var qb: SelectQueryBuilder<ModuleMetadata> = await this.moduleMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)\n qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);\n\n // Get the records and the count\n const [entities, count] = await qb.getManyAndCount();\n\n const currentPage = Math.floor(offset / limit) + 1;\n const totalPages = Math.ceil(count / limit);\n\n const nextPage = currentPage < totalPages ? currentPage + 1 : null;\n const prevPage = currentPage > 1 ? currentPage - 1 : null;\n\n const r = {\n meta: {\n totalRecords: count,\n currentPage: currentPage,\n nextPage: nextPage,\n prevPage: prevPage,\n totalPages: totalPages,\n perPage: +limit,\n },\n records: entities\n };\n return r\n }\n\n async find(basicFilterDto: BasicFilterDto) {\n return this.findMany(basicFilterDto);\n }\n\n async findOneByUserKey(name: string, relations = {}) {\n if (!name) {\n throw new BadRequestException(ERROR_MESSAGES.ENTITY_NAME_REQUIRED);\n }\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n name: name,\n },\n relations: relations,\n });\n return entity;\n }\n\n async findOne(id: number, relations = {}) {\n if (!id) {\n throw new BadRequestException(ERROR_MESSAGES.ENTITY_ID_REQUIRED);\n }\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n id: id,\n },\n relations: relations,\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.ENTITY_NOT_FOUND());\n }\n return entity;\n }\n\n async create(createDto: CreateModuleMetadataDto, files: Express.Multer.File[] = []) {\n try {\n return await this.dataSource.transaction(async (manager: EntityManager) => {\n // Step 1: Write initial data to the database\n const module = await this.createInDB(manager, createDto, files);\n await this.createInFile(module);\n return module\n });\n } catch (error) {\n // console.error('Transaction failed:', error);\n this.logger.error('Transaction failed:', error);\n throw error;\n }\n }\n\n async createInDB(manager: EntityManager, createDto: CreateModuleMetadataDto, files: Express.Multer.File[] = []) {\n if (files.length > 0) {\n const fileStoragePath = this.getFullFilePathForDisk(this.getFileName(files[0]));\n this.fileService.copy(files[0].path, fileStoragePath);\n this.fileService.delete(files[0].path);\n createDto.menuIconUrl = fileStoragePath;\n }\n const moduleMetadata = this.moduleMetadataRepo.create(createDto);\n return manager.save(moduleMetadata); // Use the provided manager to perform DB operations\n }\n\n async createInFile(module: ModuleMetadata) {\n try {\n // Prepare the metadata JSON structure\n\n const moduleMetaDataJson: ModuleMetadataConfiguration = {\n moduleMetadata: {\n name: module?.name,\n displayName: module?.displayName,\n description: module?.description,\n defaultDataSource: module?.defaultDataSource,\n menuIconUrl: module?.menuIconUrl,\n menuSequenceNumber: module?.menuSequenceNumber,\n isSystem: module?.isSystem,\n models: [],\n },\n roles: [],\n users: [],\n actions: [\n {\n displayName: `${module?.name} Home`,\n name: `${module?.name}-home-action`,\n type: \"custom\",\n domain: \"\",\n context: \"\",\n customComponent: `/admin/core/${module?.name}/home`,\n customIsModal: true,\n serverEndpoint: \"\",\n viewUserKey: \"\",\n moduleUserKey: module?.name,\n modelUserKey: \"\"\n }\n ],\n menus: [\n {\n displayName: \"Home\",\n name: `${module?.name}-home-menu`,\n sequenceNumber: 1,\n actionUserKey: `${module?.name}-home-action`,\n moduleUserKey: module?.name,\n parentMenuItemUserKey: \"\",\n iconName : \"home\"\n }\n ],\n views: [],\n emailTemplates: [],\n smsTemplates: [],\n mediaStorageProviders: [],\n securityRules: [],\n };\n\n // Convert the object to JSON string\n const metadataJson = JSON.stringify(moduleMetaDataJson, null, 2);\n\n // Create the folder path inside 'module-metadata'\n const folderPath = path.resolve(process.cwd(), 'module-metadata', module.name);\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(module.name);\n\n // Ensure the folder exists\n await fs.mkdir(folderPath, { recursive: true });\n\n // Write the JSON to the file\n await fs.writeFile(filePath, metadataJson);\n\n } catch (error) {\n // console.error('File creation failed:', error);\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n async update(id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files: Express.Multer.File[] = []) {\n try {\n return await this.dataSource.transaction(async (manager: EntityManager) => {\n // Step 1: Write initial data to the database\n const module = await this.updateInDB(manager, id, updateModuleMetadataDto, files);\n await this.updateInFile(module);\n return module\n });\n } catch (error) {\n // console.error('Transaction failed:', error);\n this.logger.error('Transaction failed:', error);\n throw error;\n }\n }\n\n async updateInDB(manager: EntityManager, id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files: Express.Multer.File[] = []) {\n\n const module = await this.moduleMetadataRepo.preload({\n id,\n ...updateModuleMetadataDto,\n });\n\n if (!module) {\n throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(id));\n }\n if (files.length > 0) {\n\n const fileStoragePath = this.getFullFilePathForDisk(this.getFileName(files[0]));\n this.fileService.copy(files[0].path, fileStoragePath);\n this.fileService.delete(files[0].path);\n module.menuIconUrl = fileStoragePath;\n }\n return manager.save(ModuleMetadata, module);\n }\n\n async updateInFile(module: ModuleMetadata) {\n try {\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(module.name);\n\n // Read the existing JSON file\n let metaData;\n try {\n metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);\n\n } catch (error) {\n metaData = {\n moduleMetadata: {\n name: null,\n displayName: null,\n description: null,\n defaultDataSource: null,\n menuIconUrl: null,\n menuSequenceNumber: null,\n isSystem: null,\n models: [],\n },\n roles: [],\n users: [],\n actions: [],\n menus: [],\n views: [],\n emailTemplates: [],\n smsTemplates: [],\n mediaStorageProviders: [],\n };\n }\n\n\n metaData.moduleMetadata.name = module?.name;\n metaData.moduleMetadata.displayName = module?.displayName;\n metaData.moduleMetadata.description = module?.description;\n metaData.moduleMetadata.defaultDataSource = module?.defaultDataSource;\n metaData.moduleMetadata.menuIconUrl = module?.menuIconUrl;\n metaData.moduleMetadata.menuSequenceNumber = module?.menuSequenceNumber;\n metaData.moduleMetadata.isSystem = module?.isSystem;\n\n // Write the JSON to the file\n const updatedContent = JSON.stringify(metaData, null, 2);\n await fs.writeFile(filePath, updatedContent);\n\n } catch (error) {\n // console.error('File creation failed:', error);\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n async upsert(updateModuleMetadataDto: UpdateModuleMetadataDto) {\n this.logger.debug(`Module Upsert called for : ${updateModuleMetadataDto.name}`);\n // First check if module already exists using name\n const existingModuleMetadata = await this.moduleMetadataRepo.findOne({\n where: {\n name: updateModuleMetadataDto.name\n }\n })\n const { models, ...restUpdateModuleMetadataDto } = updateModuleMetadataDto;\n // if found\n if (existingModuleMetadata) {\n const updatedModuleMetadata = { ...existingModuleMetadata, ...restUpdateModuleMetadataDto };\n return this.moduleMetadataRepo.save(updatedModuleMetadata);\n }\n // if not found - create new \n else {\n const moduleMetadata = this.moduleMetadataRepo.create(restUpdateModuleMetadataDto);\n return this.moduleMetadataRepo.save(moduleMetadata);\n }\n }\n\n async removeByName(name: string) {\n const entity = await this.findOneByUserKey(name);\n if (entity) {\n await this.moduleMetadataRepo.remove(entity);\n }\n }\n\n async remove(id: number) {\n const entity = await this.findOne(id);\n await this.cleanupOnDelete(entity.id);\n const r = await this.moduleMetadataRepo.remove(entity);\n return r\n\n }\n\n\n async cleanupOnDelete(moduleEntityId: number) {\n const moduleEntity = await this.moduleMetadataRepo.findOne({\n where: {\n // @ts-ignore\n id: moduleEntityId,\n }\n });\n\n if (!moduleEntity) {\n this.logger.log(`Invalid moduleEntityId: ${moduleEntityId} unable to resolve model metadata`);\n return;\n }\n if (moduleEntity.id !== moduleEntityId) {\n this.logger.log(`Invalid moduleEntityId: ${moduleEntityId} unable to resolve model metadata id ${moduleEntity.id} not matching with the one passed as argument ${moduleEntityId}`);\n return;\n }\n\n this.logger.log(`Cleaning up for module: ${moduleEntity.name}.`);\n\n const modulePath = await this.moduleMetadataHelperService.getModulePath(moduleEntity.name);\n if (modulePath) {\n\n this.logger.log(`Module path: ${modulePath}`);\n\n // Metadata file to be deleted\n const moduleMetadataPAth = await this.moduleMetadataHelperService.getModuleMetadataFolderPath(moduleEntity.name)\n this.logger.log(`About to delete module metadata path: ${moduleMetadataPAth}`);\n\n try {\n await fs.rm(modulePath, { recursive: true, force: true });\n await fs.rm(moduleMetadataPAth, { recursive: true, force: true });\n this.logger.log(`Deleted file: ${moduleMetadataPAth}`);\n } catch (error) {\n this.logger.error(`Error deleting file: ${moduleMetadataPAth}`, error);\n throw new Error(ERROR_MESSAGES.FILE_DELETE_FAILED); // Trigger rollback\n }\n }\n await this.dataSource.query(\n `CALL cleanup_module_metadata($1, $2)`,\n [moduleEntity.name, true],\n );\n }\n\n async deleteMany(ids: number[]): Promise<any> {\n if (!ids || ids.length === 0) {\n throw new Error(ERROR_MESSAGES.DELETE_IDS_REQUIRED);\n }\n const removedEntities = [];\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i]\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n //@ts-ignore\n id: id,\n }\n });\n // if (!entity) {\n // throw new Error(`Entity with id ${id} not found`);\n // }\n removedEntities.push(await this.moduleMetadataRepo.remove(entity));\n }\n\n return removedEntities\n }\n\n async refreshPermission() {\n await this.permissionsSeederService.seed();\n return true\n }\n\n @DisallowInProduction()\n async generateCode(options: CodeGenerationOptions): Promise<string> {\n if (!options.moduleId && !options.moduleUserKey) {\n throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);\n }\n const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);\n\n // Check if the module exists\n if (!module) {\n throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(options.moduleId));\n }\n\n // Check if the module name already exists and is loaded\n const moduleInstance = this.solidRegistry.getModule(`${classify(module.name)}Module`);\n\n if (!moduleInstance) {\n const addModuleOutput = await this.generateAddModuleCode(options);\n const refreshModuleOutput = await this.generateRefreshModuleCode(options);\n return `${addModuleOutput}\\n${refreshModuleOutput}`;\n } else {\n return await this.generateRefreshModuleCode(options);\n }\n }\n\n private async generateAddModuleCode(options: CodeGenerationOptions = { dryRun: false }): Promise<string> {\n if (!options.moduleId && !options.moduleUserKey) {\n throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);\n }\n const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);\n\n //Generate the module\n const output = await this.schematicService.executeSchematicCommand(\n ADD_MODULE_COMMAND,\n { module: module.name },\n options.dryRun ?? false\n );\n this.logger.debug(`Schematic output : ${output}`);\n return output;\n }\n\n private async generateRefreshModuleCode(options: CodeGenerationOptions): Promise<string> {\n const query = {\n relations: { models: { fields: true } },\n };\n const module = options.moduleId ? await this.findOne(options.moduleId, query.relations) : await this.findOneByUserKey(options.moduleUserKey, query.relations);\n const outputLines = []\n for (const model of module.models) {\n const codeGenerationOptions = {\n modelId: model.id,\n dryRun: options.dryRun,\n };\n const output = await this.modelMetadataService.handleGenerateCode(codeGenerationOptions);\n this.logger.debug(`Schematic output : ${output}`);\n outputLines.push(output)\n }\n return outputLines.join('\\n');\n }\n\n private getFullFilePathForDisk(fileName: string): string {\n const base = this.settingService.getConfigValue<SolidCoreSetting>(\"fileStorageDir\")\n || DEFAULT_MEDIA_FILE_STORAGE_DIR;\n if (path.isAbsolute(fileName) || fileName.startsWith(`${base}/`)) {\n return fileName;\n }\n return `${base}/${fileName}`;\n }\n\n private getFileName(file: Express.Multer.File): string {\n return `${file.filename}-${file.originalname}`;\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"module-metadata.service.js","sourceRoot":"","sources":["../../src/services/module-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';\nimport { InjectDataSource } from '@nestjs/typeorm';\nimport { DEFAULT_MEDIA_FILE_STORAGE_DIR } from \"src/services/settings/default-settings-provider.service\";\nimport type { SolidCoreSetting } from \"src/services/settings/default-settings-provider.service\";\nimport { DataSource, EntityManager, SelectQueryBuilder } from 'typeorm';\nimport { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';\nimport { ModuleMetadata } from '../entities/module-metadata.entity';\n\nimport { classify } from '@angular-devkit/core/src/utils/strings';\nimport { ConfigService } from '@nestjs/config';\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport * as path from 'path'; // To handle file paths\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ModuleMetadataRepository } from 'src/repository/module-metadata.repository';\nimport { PermissionMetadataSeederService } from 'src/seeders/permission-metadata-seeder.service';\nimport { DiskFileService } from 'src/services/file';\nimport { BasicFilterDto } from '../dtos/basic-filters.dto';\nimport { UpdateModuleMetadataDto } from '../dtos/update-module-metadata.dto';\nimport {\n ADD_MODULE_COMMAND,\n SchematicService,\n} from '../helpers/schematic.service';\nimport { SolidRegistry } from '../helpers/solid-registry';\nimport { CodeGenerationOptions, ModuleMetadataConfiguration } from '../interfaces';\nimport { CrudHelperService } from './crud-helper.service';\nimport { ModelMetadataService } from './model-metadata.service';\nimport { SettingService } from './setting.service';\n\n@Injectable()\nexport class ModuleMetadataService {\n private readonly logger = new Logger(ModuleMetadataService.name);\n\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n // @InjectRepository(ModuleMetadata)\n // private readonly moduleMetadataRepo: Repository<ModuleMetadata>,\n private readonly moduleMetadataRepo: ModuleMetadataRepository,\n private readonly crudHelperService: CrudHelperService,\n private readonly schematicService: SchematicService,\n private readonly fileService: DiskFileService,\n private readonly settingService: SettingService,\n\n private readonly permissionsSeederService: PermissionMetadataSeederService,\n @Inject(forwardRef(() => ModelMetadataService))\n private readonly modelMetadataService: ModelMetadataService,\n private readonly solidRegistry: SolidRegistry,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) { }\n\n async findMany(basicFilterDto: BasicFilterDto) {\n const alias = 'moduleMetadata';\n // Extract the required keys from the input query\n let { limit, offset } = basicFilterDto;\n\n // Create above query on pincode table using query builder\n var qb: SelectQueryBuilder<ModuleMetadata> = await this.moduleMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)\n qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);\n\n // Get the records and the count\n const [entities, count] = await qb.getManyAndCount();\n\n const currentPage = Math.floor(offset / limit) + 1;\n const totalPages = Math.ceil(count / limit);\n\n const nextPage = currentPage < totalPages ? currentPage + 1 : null;\n const prevPage = currentPage > 1 ? currentPage - 1 : null;\n\n const r = {\n meta: {\n totalRecords: count,\n currentPage: currentPage,\n nextPage: nextPage,\n prevPage: prevPage,\n totalPages: totalPages,\n perPage: +limit,\n },\n records: entities\n };\n return r\n }\n\n async find(basicFilterDto: BasicFilterDto) {\n return this.findMany(basicFilterDto);\n }\n\n async findOneByUserKey(name: string, relations = {}) {\n if (!name) {\n throw new BadRequestException(ERROR_MESSAGES.ENTITY_NAME_REQUIRED);\n }\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n name: name,\n },\n relations: relations,\n });\n return entity;\n }\n\n async findOne(id: number, relations = {}) {\n if (!id) {\n throw new BadRequestException(ERROR_MESSAGES.ENTITY_ID_REQUIRED);\n }\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n id: id,\n },\n relations: relations,\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.ENTITY_NOT_FOUND());\n }\n return entity;\n }\n\n async create(createDto: CreateModuleMetadataDto, files: Express.Multer.File[] = []) {\n try {\n return await this.dataSource.transaction(async (manager: EntityManager) => {\n // Step 1: Write initial data to the database\n const module = await this.createInDB(manager, createDto, files);\n await this.createInFile(module);\n return module\n });\n } catch (error) {\n // console.error('Transaction failed:', error);\n this.logger.error('Transaction failed:', error);\n throw error;\n }\n }\n\n async createInDB(manager: EntityManager, createDto: CreateModuleMetadataDto, files: Express.Multer.File[] = []) {\n if (files.length > 0) {\n const fileStoragePath = this.getFullFilePathForDisk(this.getFileName(files[0]));\n this.fileService.copy(files[0].path, fileStoragePath);\n this.fileService.delete(files[0].path);\n createDto.menuIconUrl = fileStoragePath;\n }\n const moduleMetadata = this.moduleMetadataRepo.create(createDto);\n return manager.save(moduleMetadata); // Use the provided manager to perform DB operations\n }\n\n async createInFile(module: ModuleMetadata) {\n try {\n // Prepare the metadata JSON structure\n\n const moduleMetaDataJson: ModuleMetadataConfiguration = {\n moduleMetadata: {\n name: module?.name,\n displayName: module?.displayName,\n description: module?.description,\n defaultDataSource: module?.defaultDataSource,\n menuIconUrl: module?.menuIconUrl,\n menuSequenceNumber: module?.menuSequenceNumber,\n isSystem: module?.isSystem,\n models: [],\n },\n roles: [],\n users: [],\n actions: [\n {\n displayName: `${module?.name} Home`,\n name: `${module?.name}-home-action`,\n type: \"custom\",\n domain: \"\",\n context: \"\",\n customComponent: `/admin/core/${module?.name}/home`,\n customIsModal: true,\n serverEndpoint: \"\",\n viewUserKey: \"\",\n moduleUserKey: module?.name,\n modelUserKey: \"\"\n }\n ],\n menus: [\n {\n displayName: \"Home\",\n name: `${module?.name}-home-menu`,\n sequenceNumber: 1,\n actionUserKey: `${module?.name}-home-action`,\n moduleUserKey: module?.name,\n parentMenuItemUserKey: \"\",\n iconName : \"home\"\n }\n ],\n views: [],\n emailTemplates: [],\n smsTemplates: [],\n mediaStorageProviders: [],\n securityRules: [],\n };\n\n // Convert the object to JSON string\n const metadataJson = JSON.stringify(moduleMetaDataJson, null, 2);\n\n // Create the folder path inside 'module-metadata'\n const folderPath = path.resolve(process.cwd(), 'module-metadata', module.name);\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(module.name);\n\n // Ensure the folder exists\n await fs.mkdir(folderPath, { recursive: true });\n\n // Write the JSON to the file\n await fs.writeFile(filePath, metadataJson);\n\n } catch (error) {\n // console.error('File creation failed:', error);\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n async update(id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files: Express.Multer.File[] = []) {\n try {\n return await this.dataSource.transaction(async (manager: EntityManager) => {\n // Step 1: Write initial data to the database\n const module = await this.updateInDB(manager, id, updateModuleMetadataDto, files);\n await this.updateInFile(module);\n return module\n });\n } catch (error) {\n // console.error('Transaction failed:', error);\n this.logger.error('Transaction failed:', error);\n throw error;\n }\n }\n\n async updateInDB(manager: EntityManager, id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files: Express.Multer.File[] = []) {\n\n const module = await this.moduleMetadataRepo.preload({\n id,\n ...updateModuleMetadataDto,\n });\n\n if (!module) {\n throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(id));\n }\n if (files.length > 0) {\n\n const fileStoragePath = this.getFullFilePathForDisk(this.getFileName(files[0]));\n this.fileService.copy(files[0].path, fileStoragePath);\n this.fileService.delete(files[0].path);\n module.menuIconUrl = fileStoragePath;\n }\n return manager.save(ModuleMetadata, module);\n }\n\n async updateInFile(module: ModuleMetadata) {\n try {\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(module.name);\n\n // Read the existing JSON file\n let metaData;\n try {\n metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);\n\n } catch (error) {\n metaData = {\n moduleMetadata: {\n name: null,\n displayName: null,\n description: null,\n defaultDataSource: null,\n menuIconUrl: null,\n menuSequenceNumber: null,\n isSystem: null,\n models: [],\n },\n roles: [],\n users: [],\n actions: [],\n menus: [],\n views: [],\n emailTemplates: [],\n smsTemplates: [],\n mediaStorageProviders: [],\n };\n }\n\n\n metaData.moduleMetadata.name = module?.name;\n metaData.moduleMetadata.displayName = module?.displayName;\n metaData.moduleMetadata.description = module?.description;\n metaData.moduleMetadata.defaultDataSource = module?.defaultDataSource;\n metaData.moduleMetadata.menuIconUrl = module?.menuIconUrl;\n metaData.moduleMetadata.menuSequenceNumber = module?.menuSequenceNumber;\n metaData.moduleMetadata.isSystem = module?.isSystem;\n\n // Write the JSON to the file\n const updatedContent = JSON.stringify(metaData, null, 2);\n await fs.writeFile(filePath, updatedContent);\n\n } catch (error) {\n // console.error('File creation failed:', error);\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n async upsert(updateModuleMetadataDto: UpdateModuleMetadataDto) {\n this.logger.debug(`Module Upsert called for : ${updateModuleMetadataDto.name}`);\n // First check if module already exists using name\n const existingModuleMetadata = await this.moduleMetadataRepo.findOne({\n where: {\n name: updateModuleMetadataDto.name\n }\n })\n const { models, ...restUpdateModuleMetadataDto } = updateModuleMetadataDto;\n // if found\n if (existingModuleMetadata) {\n const updatedModuleMetadata = { ...existingModuleMetadata, ...restUpdateModuleMetadataDto };\n return this.moduleMetadataRepo.save(updatedModuleMetadata);\n }\n // if not found - create new \n else {\n const moduleMetadata = this.moduleMetadataRepo.create(restUpdateModuleMetadataDto);\n return this.moduleMetadataRepo.save(moduleMetadata);\n }\n }\n\n async removeByName(name: string) {\n const entity = await this.findOneByUserKey(name);\n if (entity) {\n await this.moduleMetadataRepo.remove(entity);\n }\n }\n\n @DisallowInProduction()\n async remove(id: number) {\n const entity = await this.findOne(id);\n await this.cleanupOnDelete(entity.id);\n const r = await this.moduleMetadataRepo.remove(entity);\n return r\n }\n\n async cleanupOnDelete(moduleEntityId: number) {\n const moduleEntity = await this.moduleMetadataRepo.findOne({\n where: {\n // @ts-ignore\n id: moduleEntityId,\n }\n });\n\n if (!moduleEntity) {\n this.logger.log(`Invalid moduleEntityId: ${moduleEntityId} unable to resolve model metadata`);\n return;\n }\n if (moduleEntity.id !== moduleEntityId) {\n this.logger.log(`Invalid moduleEntityId: ${moduleEntityId} unable to resolve model metadata id ${moduleEntity.id} not matching with the one passed as argument ${moduleEntityId}`);\n return;\n }\n\n this.logger.log(`Cleaning up for module: ${moduleEntity.name}.`);\n\n const modulePath = await this.moduleMetadataHelperService.getModulePath(moduleEntity.name);\n if (modulePath) {\n\n this.logger.log(`Module path: ${modulePath}`);\n\n // Metadata file to be deleted\n const moduleMetadataPAth = await this.moduleMetadataHelperService.getModuleMetadataFolderPath(moduleEntity.name)\n this.logger.log(`About to delete module metadata path: ${moduleMetadataPAth}`);\n\n try {\n await fs.rm(modulePath, { recursive: true, force: true });\n await fs.rm(moduleMetadataPAth, { recursive: true, force: true });\n this.logger.log(`Deleted file: ${moduleMetadataPAth}`);\n } catch (error) {\n this.logger.error(`Error deleting file: ${moduleMetadataPAth}`, error);\n throw new Error(ERROR_MESSAGES.FILE_DELETE_FAILED); // Trigger rollback\n }\n }\n await this.dataSource.query(\n `CALL cleanup_module_metadata($1, $2)`,\n [moduleEntity.name, true],\n );\n }\n\n async deleteMany(ids: number[]): Promise<any> {\n if (!ids || ids.length === 0) {\n throw new Error(ERROR_MESSAGES.DELETE_IDS_REQUIRED);\n }\n const removedEntities = [];\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i]\n const entity = await this.moduleMetadataRepo.findOne({\n where: {\n //@ts-ignore\n id: id,\n }\n });\n // if (!entity) {\n // throw new Error(`Entity with id ${id} not found`);\n // }\n removedEntities.push(await this.moduleMetadataRepo.remove(entity));\n }\n\n return removedEntities\n }\n\n async refreshPermission() {\n await this.permissionsSeederService.seed();\n return true\n }\n\n @DisallowInProduction()\n async generateCode(options: CodeGenerationOptions): Promise<string> {\n if (!options.moduleId && !options.moduleUserKey) {\n throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);\n }\n const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);\n\n // Check if the module exists\n if (!module) {\n throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(options.moduleId));\n }\n\n // Check if the module name already exists and is loaded\n const moduleInstance = this.solidRegistry.getModule(`${classify(module.name)}Module`);\n\n if (!moduleInstance) {\n const addModuleOutput = await this.generateAddModuleCode(options);\n const refreshModuleOutput = await this.generateRefreshModuleCode(options);\n return `${addModuleOutput}\\n${refreshModuleOutput}`;\n } else {\n return await this.generateRefreshModuleCode(options);\n }\n }\n\n private async generateAddModuleCode(options: CodeGenerationOptions = { dryRun: false }): Promise<string> {\n if (!options.moduleId && !options.moduleUserKey) {\n throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);\n }\n const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);\n\n //Generate the module\n const output = await this.schematicService.executeSchematicCommand(\n ADD_MODULE_COMMAND,\n { module: module.name },\n options.dryRun ?? false\n );\n this.logger.debug(`Schematic output : ${output}`);\n return output;\n }\n\n private async generateRefreshModuleCode(options: CodeGenerationOptions): Promise<string> {\n const query = {\n relations: { models: { fields: true } },\n };\n const module = options.moduleId ? await this.findOne(options.moduleId, query.relations) : await this.findOneByUserKey(options.moduleUserKey, query.relations);\n const outputLines = []\n for (const model of module.models) {\n const codeGenerationOptions = {\n modelId: model.id,\n dryRun: options.dryRun,\n };\n const output = await this.modelMetadataService.handleGenerateCode(codeGenerationOptions);\n this.logger.debug(`Schematic output : ${output}`);\n outputLines.push(output)\n }\n return outputLines.join('\\n');\n }\n\n private getFullFilePathForDisk(fileName: string): string {\n const base = this.settingService.getConfigValue<SolidCoreSetting>(\"fileStorageDir\")\n || DEFAULT_MEDIA_FILE_STORAGE_DIR;\n if (path.isAbsolute(fileName) || fileName.startsWith(`${base}/`)) {\n return fileName;\n }\n return `${base}/${fileName}`;\n }\n\n private getFileName(file: Express.Multer.File): string {\n return `${file.filename}-${file.originalname}`;\n }\n\n}\n"]}
|
|
@@ -40,8 +40,8 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
40
40
|
{ moduleName: "solid-core", key: "authScreenCenterBackgroundImage", value: null, level: interfaces_1.SettingLevel.SystemAdminEditable },
|
|
41
41
|
{
|
|
42
42
|
moduleName: "solid-core", key: "solidXGenAiCodeBuilderConfig", value: JSON.stringify({
|
|
43
|
-
|
|
44
|
-
availableProviders: []
|
|
43
|
+
fastModel: { provider: "", availableProviders: [] },
|
|
44
|
+
defaultProvider: { provider: "", availableProviders: [] },
|
|
45
45
|
}), level: interfaces_1.SettingLevel.SystemAdminEditable
|
|
46
46
|
},
|
|
47
47
|
{ moduleName: "solid-core", key: "mcpEnabled", value: process.env.MCP_ENABLED || false, level: interfaces_1.SettingLevel.SystemAdminReadonly },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-settings-provider.service.js","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { Environment } from \"src/decorators/disallow-in-production.decorator\";\nimport { SettingsProvider } from \"src/decorators/settings-provider.decorator\";\nimport { ISettingsProvider, SettingDefinition, SettingLevel } from \"src/interfaces\";\n\nexport const DEFAULT_MEDIA_UPLOAD_DIR = 'media-uploads';\nexport const DEFAULT_MEDIA_FILE_STORAGE_DIR = 'media-files-storage';\n\n// 1. \nconst getSolidCoreSettings = (isProd: boolean) => ([\n { moduleName: \"solid-core\", key: \"iamGoogleOAuthEnabled\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authPagesLayout\", value: \"center\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authPagesTheme\", value: \"light\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appLogo\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"companylogo\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"favicon\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appLogoPosition\", value: \"in_form_view\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"showAuthContent\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appTitle\", value: process.env.SOLID_APP_NAME || \"Solid App\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appSubtitle\", value: process.env.SOLID_APP_SUBTITLE || \"\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appDescription\", value: process.env.SOLID_APP_DESCRIPTION || \"\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"showLegalLinks\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appTnc\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appPrivacyPolicy\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enableDarkMode\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"copyright\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enableUsername\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enabledNotification\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportEmail\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportDisplayName\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportIcon\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenRightBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenLeftBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenCenterBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n {\n moduleName: \"solid-core\", key: \"solidXGenAiCodeBuilderConfig\", value: JSON.stringify({\n defaultProvider: \"\",\n availableProviders: []\n }), level: SettingLevel.SystemAdminEditable\n },\n { moduleName: \"solid-core\", key: \"mcpEnabled\", value: process.env.MCP_ENABLED || false, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"mcpServerUrl\", value: process.env.MCP_SERVER_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"mcpApiKey\", value: process.env.MCP_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"dateTimeFormat\", value: process.env.DATE_TIME_FORMAT || \"YYYY-MM-DD HH:mm:ss\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"dateFormat\", value: process.env.DATE_FORMAT || \"YYYY-MM-DD\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"baseUrl\", value: process.env.BASE_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"solidAppWebsiteUrl\", value: process.env.SOLID_APP_WEBSITE_URL, level: SettingLevel.SystemAdminEditable },\n\n // app-builder-settings-provider.service.ts, app-builder.config.ts\n { moduleName: \"solid-core\", key: \"moduleMetadataSeederFiles\", value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? '', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"uploadDir\", value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"fileStorageDir\", value: process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"defaultFileService\", value: process.env.DEFAULT_FILE_SERVICE ?? 'disk', level: SettingLevel.SystemAdminReadonly },\n\n // aws-s3-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"S3_AWS_ACCESS_KEY\", value: process.env.S3_AWS_ACCESS_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"S3_AWS_SECRET_KEY\", value: process.env.S3_AWS_SECRET_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"S3_AWS_REGION_NAME\", value: process.env.S3_AWS_REGION_NAME, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"S3_DEFAULT_BUCKET\", value: process.env.S3_DEFAULT_BUCKET, level: SettingLevel.SystemAdminReadonly },\n\n // email-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"emailProvider\", value: process.env.COMMON_EMAIL_PROVIDER ?? \"SMTPEMailService\", level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"emailTemplateSeederFiles\", value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"shouldQueueEmails\", value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailHost\", value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailPort\", value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587), level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailUsername\", value: process.env.COMMON_SMTP_EMAIL_USERNAME, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailPassword\", value: process.env.COMMON_SMTP_EMAIL_PASSWORD, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"smtpMailFrom\", value: process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"apiMailKey\", value: process.env.COMMON_API_EMAIL_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"apiMailFrom\", value: process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },\n\n // genai-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"ragServerUrl\", value: process.env.GENAI_RAG_SERVER_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"ragServerLogin\", value: process.env.GENAI_RAG_SERVER_LOGIN, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"ragServerPassword\", value: process.env.GENAI_RAG_SERVER_PASSWORD, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpPythonExecutable\", value: process.env.MCP_PYTHON_EXECUTABLE, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpClient\", value: process.env.MCP_CLIENT, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpRestartTouchFile\", value: process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\", level: SettingLevel.SystemEnv },\n\n // google-oauth-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"clientID\", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"clientSecret\", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"callbackURL\", value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"redirectURL\", value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL, level: SettingLevel.SystemAdminReadonly },\n\n // iam-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"passwordLessAuth\", value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? 'false') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordBasedAuth\", value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordlessRegistrationValidateWhat\", value: (process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? 'email').trim(), level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordlessLoginValidateWhat\", value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? 'email', level: SettingLevel.SystemAdminEditable }, \n { moduleName: \"solid-core\", key: \"allowPublicRegistration\", value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"activateUserOnRegistration\", value: (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"autoLoginUserOnRegistration\", value: (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? 'false') === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"otpExpiry\", value: parseInt(process.env.IAM_OTP_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"forgotPasswordVerificationTokenExpiry\", value: parseInt(process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"defaultRole\", value: process.env.IAM_DEFAULT_ROLE ?? 'Public', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"dummyOtp\", value: process.env.IAM_OTP_DUMMY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"dummyOtpUsers\", value: process.env.IAM_OTP_DUMMY_USERS, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"forgotPasswordSendVerificationTokenOn\", value: process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? 'email', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"maxFailedLoginAttempts\", value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? '0'), level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"forceChangePasswordOnFirstLogin\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordRegex\", value: process.env.PASSWORD_REGEX || '^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[^\\\\da-zA-Z]).*$', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordRegexErrorMessage\", value: process.env.PASSWORD_REGEX_ERROR_MESSAGE || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordComplexityDescription\", value: process.env.PASSWORD_COMPLEXITY_DESC || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"iamAutoGeneratedPassword\", value: process.env.IAM_AUTOGENERATED_PASSWORD || true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordPepper\", value: process.env.IAM_PASSWORD_PEPPER || '', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"showNameFieldsForRegistration\", value: process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === 'true' ? true : false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"sendWelcomeEmailOnSignup\", value: (process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"sendWelcomeSmsOnSignup\", value: (process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"frontendLoginPageUrl\", value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"frontendForgotPasswordPageUrl\", value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL, level: SettingLevel.SystemAdminReadonly },\n\n // jwt-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"secret\", value: process.env.IAM_JWT_SECRET, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"audience\", value: process.env.IAM_JWT_TOKEN_AUDIENCE, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"issuer\", value: process.env.IAM_JWT_TOKEN_ISSUER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"accessTokenTtl\", value: parseInt(process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? \"1200\" : \"86400\"), 10,), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"refreshTokenTtl\", value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? \"604800\", 10), level: SettingLevel.SystemEnv },\n\n // queues-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"queuesDefaultBroker\", value: process.env.QUEUES_DEFAULT_BROKER || 'database', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"queuesServiceRole\", value: process.env.QUEUES_SERVICE_ROLE, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"queuesRabbitMqUrl\", value: process.env.QUEUES_RABBIT_MQ_URL, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"solidCliRunning\", value: process.env.SOLID_CLI_RUNNING || \"false\", level: SettingLevel.SystemEnv },\n\n // sms-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"smsProvider\", value: process.env.COMMON_SMS_PROVIDER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smsTemplateSeederFiles\", value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"shouldQueueSms\", value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91SmsUrl\", value: process.env.COMMON_MSG91_SMS_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91SmsApiKey\", value: process.env.COMMON_MSG91_SMS_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"twilioAccountSid\", value: process.env.COMMON_TWILIO_ACCOUNT_SID, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"twilioAuthToken\", value: process.env.COMMON_TWILIO_AUTH_TOKEN, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"twilioNumber\", value: process.env.COMMON_TWILIO_NUMBER, level: SettingLevel.SystemAdminReadonly },\n\n // tiny-url-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"tinyUrlApiUrl\", value: process.env.COMMON_SHORT_URL_API_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"tinyUrlApiKey\", value: process.env.COMMON_SHORT_URL_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"tinyUrlDomain\", value: process.env.COMMON_SHORT_URL_DOMAIN, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"tinyUrlEnabled\", value: (process.env.COMMON_SHORT_URL_ENABLED ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n\n // whatsapp-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"whatsappProvider\", value: process.env.COMMON_WHATSAPP_PROVIDER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91WhatsappUrl\", value: process.env.COMMON_WHATSAPP_API_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91WhatsappApiKey\", value: process.env.COMMON_WHATSAPP_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"msg91WhatsappIntegratedNumber\", value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER, level: SettingLevel.SystemAdminReadonly },\n] as const satisfies SettingDefinition[]);\n\n// 2. \nexport type SolidCoreSetting = ReturnType<typeof getSolidCoreSettings>[number][\"key\"];\n\n// 3. \n@SettingsProvider()\n@Injectable()\nexport class SolidCoreDefaultSettingsProvider implements ISettingsProvider {\n\n getSettings() {\n const isProd = (process.env.ENV as Environment) === Environment.Production;\n return getSolidCoreSettings(isProd);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"default-settings-provider.service.js","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { Environment } from \"src/decorators/disallow-in-production.decorator\";\nimport { SettingsProvider } from \"src/decorators/settings-provider.decorator\";\nimport { ISettingsProvider, SettingDefinition, SettingLevel } from \"src/interfaces\";\n\nexport const DEFAULT_MEDIA_UPLOAD_DIR = 'media-uploads';\nexport const DEFAULT_MEDIA_FILE_STORAGE_DIR = 'media-files-storage';\n\n// 1. \nconst getSolidCoreSettings = (isProd: boolean) => ([\n { moduleName: \"solid-core\", key: \"iamGoogleOAuthEnabled\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authPagesLayout\", value: \"center\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authPagesTheme\", value: \"light\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appLogo\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"companylogo\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"favicon\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appLogoPosition\", value: \"in_form_view\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"showAuthContent\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appTitle\", value: process.env.SOLID_APP_NAME || \"Solid App\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appSubtitle\", value: process.env.SOLID_APP_SUBTITLE || \"\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appDescription\", value: process.env.SOLID_APP_DESCRIPTION || \"\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"showLegalLinks\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appTnc\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"appPrivacyPolicy\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enableDarkMode\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"copyright\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enableUsername\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"enabledNotification\", value: true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportEmail\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportDisplayName\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"contactSupportIcon\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenRightBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenLeftBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authScreenCenterBackgroundImage\", value: null, level: SettingLevel.SystemAdminEditable },\n {\n moduleName: \"solid-core\", key: \"solidXGenAiCodeBuilderConfig\", value: JSON.stringify({\n fastModel: { provider: \"\", availableProviders: [] },\n defaultProvider: { provider: \"\", availableProviders: [] },\n }), level: SettingLevel.SystemAdminEditable\n },\n { moduleName: \"solid-core\", key: \"mcpEnabled\", value: process.env.MCP_ENABLED || false, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"mcpServerUrl\", value: process.env.MCP_SERVER_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"mcpApiKey\", value: process.env.MCP_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"dateTimeFormat\", value: process.env.DATE_TIME_FORMAT || \"YYYY-MM-DD HH:mm:ss\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"dateFormat\", value: process.env.DATE_FORMAT || \"YYYY-MM-DD\", level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"baseUrl\", value: process.env.BASE_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"solidAppWebsiteUrl\", value: process.env.SOLID_APP_WEBSITE_URL, level: SettingLevel.SystemAdminEditable },\n\n // app-builder-settings-provider.service.ts, app-builder.config.ts\n { moduleName: \"solid-core\", key: \"moduleMetadataSeederFiles\", value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? '', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"uploadDir\", value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"fileStorageDir\", value: process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"defaultFileService\", value: process.env.DEFAULT_FILE_SERVICE ?? 'disk', level: SettingLevel.SystemAdminReadonly },\n\n // aws-s3-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"S3_AWS_ACCESS_KEY\", value: process.env.S3_AWS_ACCESS_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"S3_AWS_SECRET_KEY\", value: process.env.S3_AWS_SECRET_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"S3_AWS_REGION_NAME\", value: process.env.S3_AWS_REGION_NAME, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"S3_DEFAULT_BUCKET\", value: process.env.S3_DEFAULT_BUCKET, level: SettingLevel.SystemAdminReadonly },\n\n // email-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"emailProvider\", value: process.env.COMMON_EMAIL_PROVIDER ?? \"SMTPEMailService\", level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"emailTemplateSeederFiles\", value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"shouldQueueEmails\", value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailHost\", value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailPort\", value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587), level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailUsername\", value: process.env.COMMON_SMTP_EMAIL_USERNAME, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smtpMailPassword\", value: process.env.COMMON_SMTP_EMAIL_PASSWORD, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"smtpMailFrom\", value: process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"apiMailKey\", value: process.env.COMMON_API_EMAIL_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"apiMailFrom\", value: process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },\n\n // genai-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"ragServerUrl\", value: process.env.GENAI_RAG_SERVER_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"ragServerLogin\", value: process.env.GENAI_RAG_SERVER_LOGIN, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"ragServerPassword\", value: process.env.GENAI_RAG_SERVER_PASSWORD, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpPythonExecutable\", value: process.env.MCP_PYTHON_EXECUTABLE, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpClient\", value: process.env.MCP_CLIENT, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"mcpRestartTouchFile\", value: process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\", level: SettingLevel.SystemEnv },\n\n // google-oauth-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"clientID\", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"clientSecret\", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"callbackURL\", value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"redirectURL\", value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL, level: SettingLevel.SystemAdminReadonly },\n\n // iam-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"passwordLessAuth\", value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? 'false') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordBasedAuth\", value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordlessRegistrationValidateWhat\", value: (process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? 'email').trim(), level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordlessLoginValidateWhat\", value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? 'email', level: SettingLevel.SystemAdminEditable }, \n { moduleName: \"solid-core\", key: \"allowPublicRegistration\", value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"activateUserOnRegistration\", value: (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"autoLoginUserOnRegistration\", value: (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? 'false') === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"otpExpiry\", value: parseInt(process.env.IAM_OTP_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"forgotPasswordVerificationTokenExpiry\", value: parseInt(process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"defaultRole\", value: process.env.IAM_DEFAULT_ROLE ?? 'Public', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"dummyOtp\", value: process.env.IAM_OTP_DUMMY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"dummyOtpUsers\", value: process.env.IAM_OTP_DUMMY_USERS, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"forgotPasswordSendVerificationTokenOn\", value: process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? 'email', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"maxFailedLoginAttempts\", value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? '0'), level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"forceChangePasswordOnFirstLogin\", value: false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordRegex\", value: process.env.PASSWORD_REGEX || '^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[^\\\\da-zA-Z]).*$', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordRegexErrorMessage\", value: process.env.PASSWORD_REGEX_ERROR_MESSAGE || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"authenticationPasswordComplexityDescription\", value: process.env.PASSWORD_COMPLEXITY_DESC || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"iamAutoGeneratedPassword\", value: process.env.IAM_AUTOGENERATED_PASSWORD || true, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"passwordPepper\", value: process.env.IAM_PASSWORD_PEPPER || '', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"showNameFieldsForRegistration\", value: process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === 'true' ? true : false, level: SettingLevel.SystemAdminEditable },\n { moduleName: \"solid-core\", key: \"sendWelcomeEmailOnSignup\", value: (process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"sendWelcomeSmsOnSignup\", value: (process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"frontendLoginPageUrl\", value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"frontendForgotPasswordPageUrl\", value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL, level: SettingLevel.SystemAdminReadonly },\n\n // jwt-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"secret\", value: process.env.IAM_JWT_SECRET, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"audience\", value: process.env.IAM_JWT_TOKEN_AUDIENCE, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"issuer\", value: process.env.IAM_JWT_TOKEN_ISSUER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"accessTokenTtl\", value: parseInt(process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? \"1200\" : \"86400\"), 10,), level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"refreshTokenTtl\", value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? \"604800\", 10), level: SettingLevel.SystemEnv },\n\n // queues-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"queuesDefaultBroker\", value: process.env.QUEUES_DEFAULT_BROKER || 'database', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"queuesServiceRole\", value: process.env.QUEUES_SERVICE_ROLE, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"queuesRabbitMqUrl\", value: process.env.QUEUES_RABBIT_MQ_URL, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"solidCliRunning\", value: process.env.SOLID_CLI_RUNNING || \"false\", level: SettingLevel.SystemEnv },\n\n // sms-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"smsProvider\", value: process.env.COMMON_SMS_PROVIDER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"smsTemplateSeederFiles\", value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"shouldQueueSms\", value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91SmsUrl\", value: process.env.COMMON_MSG91_SMS_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91SmsApiKey\", value: process.env.COMMON_MSG91_SMS_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"twilioAccountSid\", value: process.env.COMMON_TWILIO_ACCOUNT_SID, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"twilioAuthToken\", value: process.env.COMMON_TWILIO_AUTH_TOKEN, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"twilioNumber\", value: process.env.COMMON_TWILIO_NUMBER, level: SettingLevel.SystemAdminReadonly },\n\n // tiny-url-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"tinyUrlApiUrl\", value: process.env.COMMON_SHORT_URL_API_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"tinyUrlApiKey\", value: process.env.COMMON_SHORT_URL_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"tinyUrlDomain\", value: process.env.COMMON_SHORT_URL_DOMAIN, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"tinyUrlEnabled\", value: (process.env.COMMON_SHORT_URL_ENABLED ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },\n\n // whatsapp-settings-provider.service.ts\n { moduleName: \"solid-core\", key: \"whatsappProvider\", value: process.env.COMMON_WHATSAPP_PROVIDER, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91WhatsappUrl\", value: process.env.COMMON_WHATSAPP_API_URL, level: SettingLevel.SystemAdminReadonly },\n { moduleName: \"solid-core\", key: \"msg91WhatsappApiKey\", value: process.env.COMMON_WHATSAPP_API_KEY, level: SettingLevel.SystemEnv },\n { moduleName: \"solid-core\", key: \"msg91WhatsappIntegratedNumber\", value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER, level: SettingLevel.SystemAdminReadonly },\n] as const satisfies SettingDefinition[]);\n\n// 2. \nexport type SolidCoreSetting = ReturnType<typeof getSolidCoreSettings>[number][\"key\"];\n\n// 3. \n@SettingsProvider()\n@Injectable()\nexport class SolidCoreDefaultSettingsProvider implements ISettingsProvider {\n\n getSettings() {\n const isProd = (process.env.ENV as Environment) === Environment.Production;\n return getSolidCoreSettings(isProd);\n }\n}\n"]}
|
|
@@ -10,6 +10,7 @@ export declare class UserActivityHistoryService extends CRUDService<UserActivity
|
|
|
10
10
|
readonly repo: UserActivityHistoryRepository;
|
|
11
11
|
readonly moduleRef: ModuleRef;
|
|
12
12
|
readonly requestContextService: RequestContextService;
|
|
13
|
+
private readonly _logger;
|
|
13
14
|
constructor(entityManager: EntityManager, repo: UserActivityHistoryRepository, moduleRef: ModuleRef, requestContextService: RequestContextService);
|
|
14
15
|
logEvent(event: 'login' | 'logout' | 'tokenRefreshed', user: User): Promise<void>;
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-activity-history.service.d.ts","sourceRoot":"","sources":["../../src/services/user-activity-history.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAEhG,qBACa,0BAA2B,SAAQ,WAAW,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-activity-history.service.d.ts","sourceRoot":"","sources":["../../src/services/user-activity-history.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAEhG,qBACa,0BAA2B,SAAQ,WAAW,CAAC,mBAAmB,CAAC;IAK5E,QAAQ,CAAC,aAAa,EAAE,aAAa;IAGrC,QAAQ,CAAC,IAAI,EAAE,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IATvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;gBAI5D,aAAa,EAAE,aAAa,EAG5B,IAAI,EAAE,6BAA6B,EACnC,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,qBAAqB;IAKjD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,gBAAgB,EAAE,IAAI,EAAE,IAAI;CAgBxE"}
|
|
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var UserActivityHistoryService_1;
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
16
|
exports.UserActivityHistoryService = void 0;
|
|
16
17
|
const common_1 = require("@nestjs/common");
|
|
@@ -20,27 +21,33 @@ const typeorm_2 = require("typeorm");
|
|
|
20
21
|
const crud_service_1 = require("./crud.service");
|
|
21
22
|
const request_context_service_1 = require("./request-context.service");
|
|
22
23
|
const user_activity_history_repository_1 = require("../repository/user-activity-history.repository");
|
|
23
|
-
let UserActivityHistoryService = class UserActivityHistoryService extends crud_service_1.CRUDService {
|
|
24
|
+
let UserActivityHistoryService = UserActivityHistoryService_1 = class UserActivityHistoryService extends crud_service_1.CRUDService {
|
|
24
25
|
constructor(entityManager, repo, moduleRef, requestContextService) {
|
|
25
26
|
super(entityManager, repo, 'userActivityHistory', 'solid-core', moduleRef);
|
|
26
27
|
this.entityManager = entityManager;
|
|
27
28
|
this.repo = repo;
|
|
28
29
|
this.moduleRef = moduleRef;
|
|
29
30
|
this.requestContextService = requestContextService;
|
|
31
|
+
this._logger = new common_1.Logger(UserActivityHistoryService_1.name);
|
|
30
32
|
}
|
|
31
33
|
async logEvent(event, user) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
try {
|
|
35
|
+
const ip = this.requestContextService.getIp();
|
|
36
|
+
const userAgent = this.requestContextService.getUserAgent();
|
|
37
|
+
await this.repo.save({
|
|
38
|
+
user,
|
|
39
|
+
event,
|
|
40
|
+
ipAddress: ip,
|
|
41
|
+
userAgent,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
this._logger.warn(`Failed to log event "${event}" for user ${user?.id}: ${err}`);
|
|
46
|
+
}
|
|
40
47
|
}
|
|
41
48
|
};
|
|
42
49
|
exports.UserActivityHistoryService = UserActivityHistoryService;
|
|
43
|
-
exports.UserActivityHistoryService = UserActivityHistoryService = __decorate([
|
|
50
|
+
exports.UserActivityHistoryService = UserActivityHistoryService = UserActivityHistoryService_1 = __decorate([
|
|
44
51
|
(0, common_1.Injectable)(),
|
|
45
52
|
__param(0, (0, typeorm_1.InjectEntityManager)()),
|
|
46
53
|
__metadata("design:paramtypes", [typeorm_2.EntityManager,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-activity-history.service.js","sourceRoot":"","sources":["../../src/services/user-activity-history.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-activity-history.service.js","sourceRoot":"","sources":["../../src/services/user-activity-history.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAsD;AACtD,uCAAyC;AACzC,qCAAwC;AAExC,iDAAwD;AAIxD,uEAAkE;AAElE,qGAAgG;AAGzF,IAAM,0BAA0B,kCAAhC,MAAM,0BAA2B,SAAQ,0BAAgC;IAG9E,YAEE,aAAqC,EAG5B,IAAmC,EACnC,SAAoB,EACpB,qBAA4C;QAGrD,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QARlE,kBAAa,GAAb,aAAa,CAAe;QAG5B,SAAI,GAAJ,IAAI,CAA+B;QACnC,cAAS,GAAT,SAAS,CAAW;QACpB,0BAAqB,GAArB,qBAAqB,CAAuB;QATtC,YAAO,GAAG,IAAI,eAAM,CAAC,4BAA0B,CAAC,IAAI,CAAC,CAAC;IAavE,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,KAA4C,EAAE,IAAU;QACrE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;YAE5D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,IAAI;gBACJ,KAAK;gBACL,SAAS,EAAE,EAAE;gBACb,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,cAAc,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;CAEF,CAAA;AA/BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,6BAAmB,GAAE,CAAA;qCACE,uBAAa;QAGtB,gEAA6B;QACxB,gBAAS;QACG,+CAAqB;GAV5C,0BAA0B,CA+BtC","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { ModuleRef } from \"@nestjs/core\";\nimport { EntityManager } from 'typeorm';\n\nimport { CRUDService } from 'src/services/crud.service';\n\n\nimport { UserActivityHistory } from '../entities/user-activity-history.entity';\nimport { RequestContextService } from './request-context.service';\nimport { User } from 'src/entities/user.entity';\nimport { UserActivityHistoryRepository } from 'src/repository/user-activity-history.repository';\n\n@Injectable()\nexport class UserActivityHistoryService extends CRUDService<UserActivityHistory> {\n private readonly _logger = new Logger(UserActivityHistoryService.name);\n\n constructor(\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(UserActivityHistory, 'default')\n // readonly repo: Repository<UserActivityHistory>,\n readonly repo: UserActivityHistoryRepository,\n readonly moduleRef: ModuleRef,\n readonly requestContextService: RequestContextService,\n\n ) {\n super(entityManager, repo, 'userActivityHistory', 'solid-core', moduleRef);\n }\n async logEvent(event: 'login' | 'logout' | 'tokenRefreshed', user: User) {\n try {\n const ip = this.requestContextService.getIp();\n const userAgent = this.requestContextService.getUserAgent();\n\n await this.repo.save({\n user,\n event,\n ipAddress: ip,\n userAgent,\n });\n } catch (err) {\n this._logger.warn(`Failed to log event \"${event}\" for user ${user?.id}: ${err}`);\n }\n }\n\n}\n"]}
|
|
@@ -115,7 +115,7 @@ let ViewMetadataService = ViewMetadataService_1 = class ViewMetadataService exte
|
|
|
115
115
|
.leftJoinAndSelect('action.view', 'view')
|
|
116
116
|
.where('model.id = :modelId', { modelId: menuItemModelId })
|
|
117
117
|
.andWhere('module.id = :moduleId', { moduleId: menuItemModuleId })
|
|
118
|
-
.andWhere('view.type IN (:...viewTypes)', { viewTypes: ['list', 'kanban', 'tree'] })
|
|
118
|
+
.andWhere('view.type IN (:...viewTypes)', { viewTypes: ['card', 'list', 'kanban', 'tree'] })
|
|
119
119
|
.getMany();
|
|
120
120
|
viewModes = actionsForViewModes.map(actionItem => ({
|
|
121
121
|
type: actionItem.view?.type ?? '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-metadata.service.js","sourceRoot":"","sources":["../../src/services/view-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';\nimport { ModuleRef } from \"@nestjs/core\";\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { CRUDService } from 'src/services/crud.service';\nimport { EntityManager } from 'typeorm';\n\n\nimport { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Locale } from 'src/entities/locale.entity';\nimport { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { ModelMetadataRepository } from 'src/repository/model-metadata.repository';\nimport { ViewMetadataRepository } from 'src/repository/view-metadata.repository';\nimport { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';\nimport { FieldMetadata } from '../entities/field-metadata.entity';\nimport { ViewMetadata } from '../entities/view-metadata.entity';\nimport { ActionMetadataService } from './action-metadata.service';\nimport { MenuItemMetadataService } from './menu-item-metadata.service';\nimport { SolidIntrospectService } from './solid-introspect.service';\nimport { UserViewMetadataService } from './user-view-metadata.service';\nimport { MenuItemMetadata } from 'src/entities/menu-item-metadata.entity';\n\n@Injectable()\nexport class ViewMetadataService extends CRUDService<ViewMetadata> {\n constructor(\n readonly actionMetadataService: ActionMetadataService,\n readonly menuItemMetadataService: MenuItemMetadataService,\n readonly introspectService: SolidIntrospectService,\n readonly userViewMetadataService: UserViewMetadataService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(ViewMetadata, 'default')\n readonly repo: ViewMetadataRepository,\n // @InjectRepository(FieldMetadata)\n // private readonly fieldMetadataRepo: Repository<FieldMetadata>,\n // @InjectRepository(ModelMetadata)\n // private readonly modelMetadataRepo: Repository<ModelMetadata>,\n @Inject(forwardRef(() => ModelMetadataRepository))\n private readonly modelMetadataRepo: ModelMetadataRepository,\n private readonly modelMetadataHelperService: ModelMetadataHelperService,\n readonly moduleRef: ModuleRef\n ) {\n super(entityManager, repo, 'viewMetadata', 'solid-core', moduleRef);\n }\n\n private readonly logger = new Logger(ViewMetadataService.name);\n\n //for locales \n private async getEntityRecordsInAllLocales(\n modelName: string,\n id: string,\n defaultEntityLocaleIdFromQuery?: string\n ): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {\n const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));\n const currentEntityRepository = this.entityManager.getRepository(classify(modelName));\n\n // Case 1: Creating a new record with no defaultEntityLocaleId to clone\n if (id === 'new' && !defaultEntityLocaleIdFromQuery) {\n this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);\n return { records: [], defaultEntityLocaleId: null };\n }\n\n // Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId\n if (id === 'new' && defaultEntityLocaleIdFromQuery) {\n this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);\n\n const records = await currentEntityRepository.find({\n where: [\n { defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },\n { id: defaultEntityLocaleIdFromQuery }\n ]\n });\n\n this.logger.debug(`Found ${records.length} cloned records for new entity.`);\n return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };\n }\n\n // Case 3: Editing an existing entity\n const entityRecord = await currentEntityRepository.findOne({ where: { id } });\n\n if (!entityRecord) {\n this.logger.warn(`No entity found for id ${id}`);\n return { records: [], defaultEntityLocaleId: null };\n }\n\n const defaultLocale = await this.entityManager.getRepository(Locale).findOne({ where: { isDefault: true } });\n\n let defaultEntityLocaleId: string;\n if (entityRecord.localeName === defaultLocale?.locale) {\n defaultEntityLocaleId = entityRecord.id;\n this.logger.debug(`Editing default locale record with id ${defaultEntityLocaleId}`);\n } else {\n defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;\n this.logger.debug(`Editing non-default locale record. DefaultEntityLocaleId: ${defaultEntityLocaleId}`);\n }\n\n const records = await currentEntityRepository.find({\n where: [\n { defaultEntityLocaleId: defaultEntityLocaleId },\n { id: defaultEntityLocaleId }\n ]\n });\n\n this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);\n\n return { records, defaultEntityLocaleId };\n }\n\n // START: Custom Service Methods\n async getLayout(query, activeUser) {\n let { modelName, moduleName, viewType, id, populate, menuItemId, menuItemName, actionId, actionName } = query;\n\n\n // 1. Fetch the action based on actionId.\n const solidRequestContext = {\n activeUser: activeUser\n }\n const actionQuery = {\n populate: [\"view\"]\n }\n let action = null;\n if (actionId) {\n action = await this.actionMetadataService.findOne(actionId, actionQuery, solidRequestContext);\n }\n\n // 2. Fetch the menu based on menuItemId.\n const menuItemQuery = {\n populate: ['action', 'action.model', 'module']\n }\n let menuItem: MenuItemMetadata = null;\n if (menuItemId) {\n menuItem = await this.menuItemMetadataService.findOne(menuItemId, menuItemQuery, solidRequestContext);\n }\n\n let viewModes = [];\n const menuItemModelId = menuItem?.action?.model?.id;\n const menuItemModuleId = menuItem?.module?.id;\n if (menuItemModelId && menuItemModuleId) {\n const actionQb = await this.actionMetadataService.repo.createSecurityRuleAwareQueryBuilder('action');\n const actionsForViewModes = await actionQb\n .leftJoinAndSelect('action.model', 'model')\n .leftJoinAndSelect('action.module', 'module')\n .leftJoinAndSelect('action.view', 'view')\n .where('model.id = :modelId', { modelId: menuItemModelId })\n .andWhere('module.id = :moduleId', { moduleId: menuItemModuleId })\n .andWhere('view.type IN (:...viewTypes)', { viewTypes: ['list', 'kanban', 'tree'] })\n .getMany();\n\n viewModes = actionsForViewModes.map(actionItem => ({\n type: actionItem.view?.type ?? '',\n menuItemId: menuItem.id,\n menuItemName: menuItem.displayName,\n actionId: actionItem.id ?? '',\n actionName: actionItem.displayName ?? '',\n }));\n }\n\n\n const viewId = action?.view?.id\n // 3. Fetch the view based on module, model & view name.\n const entity = await this.repo.findOne({\n where: {\n model: { singularName: modelName },\n module: { name: moduleName },\n ...(actionId && viewId ? { id: action.view.id } : { type: viewType })\n },\n relations: {\n model: {\n userKeyField: true,\n },\n module: true,\n }\n });\n\n if (!entity) {\n throw new BadRequestException(`Unable to identify view for module: ${moduleName}, model: ${modelName} and viewType: ${viewType}`);\n }\n if (!activeUser?.sub) {\n throw new BadRequestException(`Unable to identify user for module: ${moduleName}, model: ${modelName} and viewType: ${viewType}`);\n }\n\n // 4. add action and menuItem to Entity which is our solid View\n if (actionId) {\n delete action.view;\n entity['action'] = action\n }\n if (menuItemId) {\n entity['menu'] = menuItem\n }\n\n // 5. See if we have a user specific layout for this view.\n const userLayout = await this.userViewMetadataService.repo.findOne({\n where: {\n user: { id: activeUser?.sub },\n viewMetadata: { id: entity.id },\n },\n });\n // Based on where we found the layout we are converting it from string to json.\n if (userLayout) {\n entity.layout = JSON.parse(userLayout.layout);\n } else {\n entity.layout = JSON.parse(entity.layout);\n }\n\n\n // 6. We are resolving the create & edit actions if specified in the layout.\n if (entity?.layout?.attrs?.createAction) {\n const actionName: string = entity.layout.attrs.createAction;\n entity.layout.attrs.createAction = await this.actionMetadataService.findOneByUserKey(actionName)\n }\n if (entity?.layout?.attrs?.editAction) {\n const actionName: string = entity.layout.attrs.editAction;\n entity.layout.attrs.editAction = await this.actionMetadataService.findOneByUserKey(actionName)\n }\n\n // 7. For form views we need to fetch the workflow field metadata if specified.\n let workflowFieldName = null;\n let workflowField = null;\n if (viewType === 'form') {\n workflowFieldName = entity.layout?.attrs?.workflowField;\n }\n\n // 8. Create an easy to use map of field metadata, rather than sending an array of fields it becomes easier to use in the frontend.\n const fields = await this.modelMetadataHelperService.loadFieldHierarchy(modelName);\n const fieldsMap = new Map<string, FieldMetadata>();\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n\n // We need to identify the workflowField metadata if specified. \n if (workflowFieldName && field.name === workflowFieldName) {\n workflowField = field;\n }\n\n // For fields of type relation & relationType many-to-one\n // We fetch metadata regarding the relationCoModelSingularName\n if (field.type === 'relation') {\n const relationModel = await this.modelMetadataRepo.find({\n where: {\n singularName: field.relationCoModelSingularName\n },\n relations: {\n userKeyField: true\n }\n });\n\n if (relationModel) {\n field['relationModel'] = relationModel[0];\n }\n }\n if (!fieldsMap.has(field.name)) {\n fieldsMap.set(field.name, field);\n }\n }\n\n // 9. Use the resolved workflowField to populate workflow specific metadata.\n // Check if we were able to resolve an actual workflowField.\n let solidFormViewWorkflowData = [];\n if (viewType === 'form' && workflowField) {\n // check for type of workflow field. \n // for workflowFields of type selectionStatic we simply return the key/values from field metadata AS-IS\n if (workflowField.type === 'selectionStatic') {\n solidFormViewWorkflowData = workflowField.selectionStaticValues.map(item => {\n const [value, label] = item.split(\":\");\n return { label, value };\n });\n }\n // for workflowFields of type relation.many-to-one we need to query the co-model, and return data in key/value format.\n if (workflowField.type === 'relation' && workflowField.relationType === 'many-to-one') {\n const comodelCrudService = this.introspectService.getCRUDService(workflowField.relationCoModelSingularName);\n const data = await comodelCrudService.find({ limit: 100, offset: 0, });\n const records = data.records ?? [];\n const workflowFieldMetadata = fieldsMap.get(workflowFieldName);\n const workflowFielUserkey = workflowFieldMetadata['relationModel']['userKeyField']['name'];\n\n // iterate over the comodel records extracting the label & value. \n solidFormViewWorkflowData = records.map(item => ({ 'label': item[workflowFielUserkey], 'value': item['id'] }))\n }\n }\n\n // 10. If this model supports internationalisation, we need to load the locales applicable with the id of an actual record for each locale if present.\n // This is the shape of locales that will be returned \n /**\n * [\n * {locale: 'en', displayName: 'English', isDefault: 'yes', defaultEntityLocaleId: '', entityId: '1'}, \n * {locale: 'en-IN', displayName: 'English (India)', isDefault: 'no', defaultEntityLocaleId: '1', entityId: '2'}, \n * {locale: 'en-SG', displayName: 'English (Singapore)', isDefault: 'no', defaultEntityLocaleId: '', entityId: '3'}, \n * {locale: 'fr', displayName: 'French', isDefault: 'no', defaultEntityLocaleId: '', entityId: ''}\n * ]\n */\n\n const applicableLocales: any = []\n // if (entity.model.internationalisation) {\n // const allLocales = await this.entityManager.getRepository(Locale).find({});\n\n // if (id === 'new') {\n // allLocales.forEach(locale => {\n // applicableLocales.push({\n // locale: locale.locale,\n // displayName: locale.displayName,\n // isDefault: locale.isDefault ? 'yes' : 'no',\n // defaultEntityLocaleId: null,\n // entityId: null\n // });\n // });\n // }\n // else {\n // const defaultLocale = allLocales.find(locale => locale.isDefault);\n // this.logger.debug(`Default locale is: ${defaultLocale.locale}`);\n\n // // Get hold of the repository for the current model\n // const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));\n // const currentEntityRepository = this.entityManager.getRepository(currentEntityTarget);\n\n // // We are in edit mode, the id that is being edited could be a record tagged with the default locale or it could be tagged with a non-default locale.\n // const entityRecord = await currentEntityRepository.findOne({\n // where: {\n // id: id,\n // }\n // });\n // if(entityRecord){\n // // Resolve the default entity locale id....\n // let defaultEntityLocaleId = null;\n // if (entityRecord.localeName === defaultLocale.locale) {\n // defaultEntityLocaleId = entityRecord.id;\n // this.logger.debug(`You are editing a record tagged with the default locale: ${entityRecord.localeName}.`);\n // }\n // else {\n // defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;\n // this.logger.debug(`You are editing a record tagged with the non-default locale: ${entityRecord.localeName}. `);\n // }\n // this.logger.debug(`Identified default Entity Locale Id: ${defaultEntityLocaleId}`);\n\n // // Now we query for all records in the same model matching the defaultEntityLocaleId\n // // Get all records mathcing the defaultEntityLocaleId or where the id is same as the defaultEntityLocaleId\n // const entityRecordsInAllLocales = await currentEntityRepository.find({\n // where: [\n // { defaultEntityLocaleId: defaultEntityLocaleId },\n // { id: defaultEntityLocaleId }\n // ],\n // });\n // this.logger.debug(`Found ${entityRecordsInAllLocales.length} records in all locales for the defaultEntityLocaleId: ${defaultEntityLocaleId}`);\n\n // // Loop over all locales and populate the applicableLocales array\n // for (const locale of allLocales) {\n // // Find the record in the entityRecordsInAllLocales that matches the current locale\n // const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);\n\n // applicableLocales.push({\n // locale: locale.locale,\n // displayName: locale.displayName,\n // isDefault: locale.isDefault ? 'yes' : 'no',\n // defaultEntityLocaleId: defaultEntityLocaleId,\n // entityId: (matchingRecord ? matchingRecord.id : null)\n // });\n // }\n // }else{\n // this.logger.warn(`No record found for id: ${id} in model: ${modelName}. Cannot determine applicable locales.`);\n // }\n // }\n // }\n if (entity.model.internationalisation) {\n const defaultEntityLocaleIdFromQuery = query?.defaultEntityLocaleId;\n const { records: entityRecordsInAllLocales, defaultEntityLocaleId } =\n await this.getEntityRecordsInAllLocales(modelName, id, defaultEntityLocaleIdFromQuery);\n const allLocales = await this.entityManager.getRepository(Locale).find({});\n for (const locale of allLocales) {\n const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);\n applicableLocales.push({\n locale: locale.locale,\n displayName: locale.displayName,\n isDefault: locale.isDefault ? 'yes' : 'no',\n defaultEntityLocaleId: defaultEntityLocaleId,\n entityId: matchingRecord ? matchingRecord.id : null\n });\n }\n }\n\n const r = {\n 'solidView': entity,\n 'solidFieldsMetadata': Object.fromEntries(fieldsMap),\n 'solidFormViewWorkflowData': solidFormViewWorkflowData,\n 'applicableLocales': applicableLocales,\n 'viewModes': viewModes\n }\n\n return r;\n }\n\n private async loadFieldHierarchy(modelName: any) {\n const model = await this.modelMetadataRepo.findOne({\n where: {\n singularName: modelName,\n },\n relations: {\n fields: true,\n parentModel: {\n fields: true,\n }\n }\n });\n const fields = [];\n if (model) {\n // Add the fields of the current model\n fields.push(...model.fields);\n\n // Add the fields of the parent model\n if (model.parentModel) {\n fields.push(...model.parentModel.fields);\n }\n }\n return fields;\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(updateSolidViewDto: UpdateViewMetadataDto) {\n // First check if module already exists using name\n const existingSolidView = await this.findOneByUserKey(updateSolidViewDto.name);\n\n // if found\n if (existingSolidView) {\n const updatedSolidViewDto = { ...existingSolidView, ...updateSolidViewDto };\n return this.repo.save(updatedSolidViewDto);\n }\n // if not found - create new \n else {\n const viewData = this.repo.create(updateSolidViewDto);\n return this.repo.save(viewData);\n }\n }\n\n async createIfNotPresent(updateSolidViewDto: UpdateViewMetadataDto) {\n // First check if module already exists using name\n const existingSolidView = await this.findOneByUserKey(updateSolidViewDto.name);\n\n // if found\n if (existingSolidView) {\n }\n // if not found - create new \n else {\n const viewData = this.repo.create(updateSolidViewDto);\n return this.repo.save(viewData);\n }\n }\n\n // END: Custom Service Methods\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"view-metadata.service.js","sourceRoot":"","sources":["../../src/services/view-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';\nimport { ModuleRef } from \"@nestjs/core\";\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { CRUDService } from 'src/services/crud.service';\nimport { EntityManager } from 'typeorm';\n\n\nimport { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Locale } from 'src/entities/locale.entity';\nimport { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { ModelMetadataRepository } from 'src/repository/model-metadata.repository';\nimport { ViewMetadataRepository } from 'src/repository/view-metadata.repository';\nimport { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';\nimport { FieldMetadata } from '../entities/field-metadata.entity';\nimport { ViewMetadata } from '../entities/view-metadata.entity';\nimport { ActionMetadataService } from './action-metadata.service';\nimport { MenuItemMetadataService } from './menu-item-metadata.service';\nimport { SolidIntrospectService } from './solid-introspect.service';\nimport { UserViewMetadataService } from './user-view-metadata.service';\nimport { MenuItemMetadata } from 'src/entities/menu-item-metadata.entity';\n\n@Injectable()\nexport class ViewMetadataService extends CRUDService<ViewMetadata> {\n constructor(\n readonly actionMetadataService: ActionMetadataService,\n readonly menuItemMetadataService: MenuItemMetadataService,\n readonly introspectService: SolidIntrospectService,\n readonly userViewMetadataService: UserViewMetadataService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(ViewMetadata, 'default')\n readonly repo: ViewMetadataRepository,\n // @InjectRepository(FieldMetadata)\n // private readonly fieldMetadataRepo: Repository<FieldMetadata>,\n // @InjectRepository(ModelMetadata)\n // private readonly modelMetadataRepo: Repository<ModelMetadata>,\n @Inject(forwardRef(() => ModelMetadataRepository))\n private readonly modelMetadataRepo: ModelMetadataRepository,\n private readonly modelMetadataHelperService: ModelMetadataHelperService,\n readonly moduleRef: ModuleRef\n ) {\n super(entityManager, repo, 'viewMetadata', 'solid-core', moduleRef);\n }\n\n private readonly logger = new Logger(ViewMetadataService.name);\n\n //for locales \n private async getEntityRecordsInAllLocales(\n modelName: string,\n id: string,\n defaultEntityLocaleIdFromQuery?: string\n ): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {\n const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));\n const currentEntityRepository = this.entityManager.getRepository(classify(modelName));\n\n // Case 1: Creating a new record with no defaultEntityLocaleId to clone\n if (id === 'new' && !defaultEntityLocaleIdFromQuery) {\n this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);\n return { records: [], defaultEntityLocaleId: null };\n }\n\n // Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId\n if (id === 'new' && defaultEntityLocaleIdFromQuery) {\n this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);\n\n const records = await currentEntityRepository.find({\n where: [\n { defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },\n { id: defaultEntityLocaleIdFromQuery }\n ]\n });\n\n this.logger.debug(`Found ${records.length} cloned records for new entity.`);\n return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };\n }\n\n // Case 3: Editing an existing entity\n const entityRecord = await currentEntityRepository.findOne({ where: { id } });\n\n if (!entityRecord) {\n this.logger.warn(`No entity found for id ${id}`);\n return { records: [], defaultEntityLocaleId: null };\n }\n\n const defaultLocale = await this.entityManager.getRepository(Locale).findOne({ where: { isDefault: true } });\n\n let defaultEntityLocaleId: string;\n if (entityRecord.localeName === defaultLocale?.locale) {\n defaultEntityLocaleId = entityRecord.id;\n this.logger.debug(`Editing default locale record with id ${defaultEntityLocaleId}`);\n } else {\n defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;\n this.logger.debug(`Editing non-default locale record. DefaultEntityLocaleId: ${defaultEntityLocaleId}`);\n }\n\n const records = await currentEntityRepository.find({\n where: [\n { defaultEntityLocaleId: defaultEntityLocaleId },\n { id: defaultEntityLocaleId }\n ]\n });\n\n this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);\n\n return { records, defaultEntityLocaleId };\n }\n\n // START: Custom Service Methods\n async getLayout(query, activeUser) {\n let { modelName, moduleName, viewType, id, populate, menuItemId, menuItemName, actionId, actionName } = query;\n\n\n // 1. Fetch the action based on actionId.\n const solidRequestContext = {\n activeUser: activeUser\n }\n const actionQuery = {\n populate: [\"view\"]\n }\n let action = null;\n if (actionId) {\n action = await this.actionMetadataService.findOne(actionId, actionQuery, solidRequestContext);\n }\n\n // 2. Fetch the menu based on menuItemId.\n const menuItemQuery = {\n populate: ['action', 'action.model', 'module']\n }\n let menuItem: MenuItemMetadata = null;\n if (menuItemId) {\n menuItem = await this.menuItemMetadataService.findOne(menuItemId, menuItemQuery, solidRequestContext);\n }\n\n let viewModes = [];\n const menuItemModelId = menuItem?.action?.model?.id;\n const menuItemModuleId = menuItem?.module?.id;\n if (menuItemModelId && menuItemModuleId) {\n const actionQb = await this.actionMetadataService.repo.createSecurityRuleAwareQueryBuilder('action');\n const actionsForViewModes = await actionQb\n .leftJoinAndSelect('action.model', 'model')\n .leftJoinAndSelect('action.module', 'module')\n .leftJoinAndSelect('action.view', 'view')\n .where('model.id = :modelId', { modelId: menuItemModelId })\n .andWhere('module.id = :moduleId', { moduleId: menuItemModuleId })\n .andWhere('view.type IN (:...viewTypes)', { viewTypes: ['card', 'list', 'kanban', 'tree'] })\n .getMany();\n\n viewModes = actionsForViewModes.map(actionItem => ({\n type: actionItem.view?.type ?? '',\n menuItemId: menuItem.id,\n menuItemName: menuItem.displayName,\n actionId: actionItem.id ?? '',\n actionName: actionItem.displayName ?? '',\n }));\n }\n\n\n const viewId = action?.view?.id\n // 3. Fetch the view based on module, model & view name.\n const entity = await this.repo.findOne({\n where: {\n model: { singularName: modelName },\n module: { name: moduleName },\n ...(actionId && viewId ? { id: action.view.id } : { type: viewType })\n },\n relations: {\n model: {\n userKeyField: true,\n },\n module: true,\n }\n });\n\n if (!entity) {\n throw new BadRequestException(`Unable to identify view for module: ${moduleName}, model: ${modelName} and viewType: ${viewType}`);\n }\n if (!activeUser?.sub) {\n throw new BadRequestException(`Unable to identify user for module: ${moduleName}, model: ${modelName} and viewType: ${viewType}`);\n }\n\n // 4. add action and menuItem to Entity which is our solid View\n if (actionId) {\n delete action.view;\n entity['action'] = action\n }\n if (menuItemId) {\n entity['menu'] = menuItem\n }\n\n // 5. See if we have a user specific layout for this view.\n const userLayout = await this.userViewMetadataService.repo.findOne({\n where: {\n user: { id: activeUser?.sub },\n viewMetadata: { id: entity.id },\n },\n });\n // Based on where we found the layout we are converting it from string to json.\n if (userLayout) {\n entity.layout = JSON.parse(userLayout.layout);\n } else {\n entity.layout = JSON.parse(entity.layout);\n }\n\n\n // 6. We are resolving the create & edit actions if specified in the layout.\n if (entity?.layout?.attrs?.createAction) {\n const actionName: string = entity.layout.attrs.createAction;\n entity.layout.attrs.createAction = await this.actionMetadataService.findOneByUserKey(actionName)\n }\n if (entity?.layout?.attrs?.editAction) {\n const actionName: string = entity.layout.attrs.editAction;\n entity.layout.attrs.editAction = await this.actionMetadataService.findOneByUserKey(actionName)\n }\n\n // 7. For form views we need to fetch the workflow field metadata if specified.\n let workflowFieldName = null;\n let workflowField = null;\n if (viewType === 'form') {\n workflowFieldName = entity.layout?.attrs?.workflowField;\n }\n\n // 8. Create an easy to use map of field metadata, rather than sending an array of fields it becomes easier to use in the frontend.\n const fields = await this.modelMetadataHelperService.loadFieldHierarchy(modelName);\n const fieldsMap = new Map<string, FieldMetadata>();\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n\n // We need to identify the workflowField metadata if specified. \n if (workflowFieldName && field.name === workflowFieldName) {\n workflowField = field;\n }\n\n // For fields of type relation & relationType many-to-one\n // We fetch metadata regarding the relationCoModelSingularName\n if (field.type === 'relation') {\n const relationModel = await this.modelMetadataRepo.find({\n where: {\n singularName: field.relationCoModelSingularName\n },\n relations: {\n userKeyField: true\n }\n });\n\n if (relationModel) {\n field['relationModel'] = relationModel[0];\n }\n }\n if (!fieldsMap.has(field.name)) {\n fieldsMap.set(field.name, field);\n }\n }\n\n // 9. Use the resolved workflowField to populate workflow specific metadata.\n // Check if we were able to resolve an actual workflowField.\n let solidFormViewWorkflowData = [];\n if (viewType === 'form' && workflowField) {\n // check for type of workflow field. \n // for workflowFields of type selectionStatic we simply return the key/values from field metadata AS-IS\n if (workflowField.type === 'selectionStatic') {\n solidFormViewWorkflowData = workflowField.selectionStaticValues.map(item => {\n const [value, label] = item.split(\":\");\n return { label, value };\n });\n }\n // for workflowFields of type relation.many-to-one we need to query the co-model, and return data in key/value format.\n if (workflowField.type === 'relation' && workflowField.relationType === 'many-to-one') {\n const comodelCrudService = this.introspectService.getCRUDService(workflowField.relationCoModelSingularName);\n const data = await comodelCrudService.find({ limit: 100, offset: 0, });\n const records = data.records ?? [];\n const workflowFieldMetadata = fieldsMap.get(workflowFieldName);\n const workflowFielUserkey = workflowFieldMetadata['relationModel']['userKeyField']['name'];\n\n // iterate over the comodel records extracting the label & value. \n solidFormViewWorkflowData = records.map(item => ({ 'label': item[workflowFielUserkey], 'value': item['id'] }))\n }\n }\n\n // 10. If this model supports internationalisation, we need to load the locales applicable with the id of an actual record for each locale if present.\n // This is the shape of locales that will be returned \n /**\n * [\n * {locale: 'en', displayName: 'English', isDefault: 'yes', defaultEntityLocaleId: '', entityId: '1'}, \n * {locale: 'en-IN', displayName: 'English (India)', isDefault: 'no', defaultEntityLocaleId: '1', entityId: '2'}, \n * {locale: 'en-SG', displayName: 'English (Singapore)', isDefault: 'no', defaultEntityLocaleId: '', entityId: '3'}, \n * {locale: 'fr', displayName: 'French', isDefault: 'no', defaultEntityLocaleId: '', entityId: ''}\n * ]\n */\n\n const applicableLocales: any = []\n // if (entity.model.internationalisation) {\n // const allLocales = await this.entityManager.getRepository(Locale).find({});\n\n // if (id === 'new') {\n // allLocales.forEach(locale => {\n // applicableLocales.push({\n // locale: locale.locale,\n // displayName: locale.displayName,\n // isDefault: locale.isDefault ? 'yes' : 'no',\n // defaultEntityLocaleId: null,\n // entityId: null\n // });\n // });\n // }\n // else {\n // const defaultLocale = allLocales.find(locale => locale.isDefault);\n // this.logger.debug(`Default locale is: ${defaultLocale.locale}`);\n\n // // Get hold of the repository for the current model\n // const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));\n // const currentEntityRepository = this.entityManager.getRepository(currentEntityTarget);\n\n // // We are in edit mode, the id that is being edited could be a record tagged with the default locale or it could be tagged with a non-default locale.\n // const entityRecord = await currentEntityRepository.findOne({\n // where: {\n // id: id,\n // }\n // });\n // if(entityRecord){\n // // Resolve the default entity locale id....\n // let defaultEntityLocaleId = null;\n // if (entityRecord.localeName === defaultLocale.locale) {\n // defaultEntityLocaleId = entityRecord.id;\n // this.logger.debug(`You are editing a record tagged with the default locale: ${entityRecord.localeName}.`);\n // }\n // else {\n // defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;\n // this.logger.debug(`You are editing a record tagged with the non-default locale: ${entityRecord.localeName}. `);\n // }\n // this.logger.debug(`Identified default Entity Locale Id: ${defaultEntityLocaleId}`);\n\n // // Now we query for all records in the same model matching the defaultEntityLocaleId\n // // Get all records mathcing the defaultEntityLocaleId or where the id is same as the defaultEntityLocaleId\n // const entityRecordsInAllLocales = await currentEntityRepository.find({\n // where: [\n // { defaultEntityLocaleId: defaultEntityLocaleId },\n // { id: defaultEntityLocaleId }\n // ],\n // });\n // this.logger.debug(`Found ${entityRecordsInAllLocales.length} records in all locales for the defaultEntityLocaleId: ${defaultEntityLocaleId}`);\n\n // // Loop over all locales and populate the applicableLocales array\n // for (const locale of allLocales) {\n // // Find the record in the entityRecordsInAllLocales that matches the current locale\n // const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);\n\n // applicableLocales.push({\n // locale: locale.locale,\n // displayName: locale.displayName,\n // isDefault: locale.isDefault ? 'yes' : 'no',\n // defaultEntityLocaleId: defaultEntityLocaleId,\n // entityId: (matchingRecord ? matchingRecord.id : null)\n // });\n // }\n // }else{\n // this.logger.warn(`No record found for id: ${id} in model: ${modelName}. Cannot determine applicable locales.`);\n // }\n // }\n // }\n if (entity.model.internationalisation) {\n const defaultEntityLocaleIdFromQuery = query?.defaultEntityLocaleId;\n const { records: entityRecordsInAllLocales, defaultEntityLocaleId } =\n await this.getEntityRecordsInAllLocales(modelName, id, defaultEntityLocaleIdFromQuery);\n const allLocales = await this.entityManager.getRepository(Locale).find({});\n for (const locale of allLocales) {\n const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);\n applicableLocales.push({\n locale: locale.locale,\n displayName: locale.displayName,\n isDefault: locale.isDefault ? 'yes' : 'no',\n defaultEntityLocaleId: defaultEntityLocaleId,\n entityId: matchingRecord ? matchingRecord.id : null\n });\n }\n }\n\n const r = {\n 'solidView': entity,\n 'solidFieldsMetadata': Object.fromEntries(fieldsMap),\n 'solidFormViewWorkflowData': solidFormViewWorkflowData,\n 'applicableLocales': applicableLocales,\n 'viewModes': viewModes\n }\n\n return r;\n }\n\n private async loadFieldHierarchy(modelName: any) {\n const model = await this.modelMetadataRepo.findOne({\n where: {\n singularName: modelName,\n },\n relations: {\n fields: true,\n parentModel: {\n fields: true,\n }\n }\n });\n const fields = [];\n if (model) {\n // Add the fields of the current model\n fields.push(...model.fields);\n\n // Add the fields of the parent model\n if (model.parentModel) {\n fields.push(...model.parentModel.fields);\n }\n }\n return fields;\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(updateSolidViewDto: UpdateViewMetadataDto) {\n // First check if module already exists using name\n const existingSolidView = await this.findOneByUserKey(updateSolidViewDto.name);\n\n // if found\n if (existingSolidView) {\n const updatedSolidViewDto = { ...existingSolidView, ...updateSolidViewDto };\n return this.repo.save(updatedSolidViewDto);\n }\n // if not found - create new \n else {\n const viewData = this.repo.create(updateSolidViewDto);\n return this.repo.save(viewData);\n }\n }\n\n async createIfNotPresent(updateSolidViewDto: UpdateViewMetadataDto) {\n // First check if module already exists using name\n const existingSolidView = await this.findOneByUserKey(updateSolidViewDto.name);\n\n // if found\n if (existingSolidView) {\n }\n // if not found - create new \n else {\n const viewData = this.repo.create(updateSolidViewDto);\n return this.repo.save(viewData);\n }\n }\n\n // END: Custom Service Methods\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,kBAAkB,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,kBAAkB,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0XhF,qBAoea,eAAgB,YAAW,UAAU;IAChD,SAAS,CAAC,QAAQ,EAAE,kBAAkB;CAKvC"}
|