@solidxai/core 0.1.13-beta.9 → 0.1.14-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9244 -0
- package/README.md +19 -0
- package/dist/commands/run-tests.command.d.ts +2 -0
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +20 -3
- package/dist/commands/run-tests.command.js.map +1 -1
- package/dist/config/cache.options.d.ts.map +1 -1
- package/dist/config/cache.options.js +2 -2
- package/dist/config/cache.options.js.map +1 -1
- package/dist/constants/error-messages.d.ts +7 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +7 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/media-file-types.d.ts +17 -0
- package/dist/constants/media-file-types.d.ts.map +1 -1
- package/dist/constants/media-file-types.js +129 -22
- package/dist/constants/media-file-types.js.map +1 -1
- package/dist/constants/success-messages.d.ts +3 -0
- package/dist/constants/success-messages.d.ts.map +1 -1
- package/dist/constants/success-messages.js +3 -0
- package/dist/constants/success-messages.js.map +1 -1
- package/dist/controllers/authentication.controller.d.ts +1 -1
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +4 -3
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/field-metadata.controller.d.ts +6 -2
- package/dist/controllers/field-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/mpin-authentication.controller.d.ts +44 -0
- package/dist/controllers/mpin-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/mpin-authentication.controller.js +102 -0
- package/dist/controllers/mpin-authentication.controller.js.map +1 -0
- package/dist/controllers/view-metadata.controller.d.ts +4 -0
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/dtos/change-mpin.dto.d.ts +6 -0
- package/dist/dtos/change-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/change-mpin.dto.js +39 -0
- package/dist/dtos/change-mpin.dto.js.map +1 -0
- package/dist/dtos/create-field-metadata.dto.d.ts +3 -6
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +15 -10
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-sequence.dto.js +1 -1
- package/dist/dtos/create-model-sequence.dto.js.map +1 -1
- package/dist/dtos/mpin-login.dto.d.ts +5 -0
- package/dist/dtos/mpin-login.dto.d.ts.map +1 -0
- package/dist/dtos/mpin-login.dto.js +33 -0
- package/dist/dtos/mpin-login.dto.js.map +1 -0
- package/dist/dtos/setup-mpin.dto.d.ts +7 -0
- package/dist/dtos/setup-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/setup-mpin.dto.js +47 -0
- package/dist/dtos/setup-mpin.dto.js.map +1 -0
- package/dist/entities/dashboard-user-layout.entity.js +2 -2
- package/dist/entities/dashboard-user-layout.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +1 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +5 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/user-device-credential.entity.d.ts +18 -0
- package/dist/entities/user-device-credential.entity.d.ts.map +1 -0
- package/dist/entities/user-device-credential.entity.js +91 -0
- package/dist/entities/user-device-credential.entity.js.map +1 -0
- package/dist/entities/user.entity.js +2 -2
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-artifact.entity.js +4 -3
- package/dist/entities/workflow-execution-artifact.entity.js.map +1 -1
- package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-log.entity.js +4 -3
- package/dist/entities/workflow-execution-log.entity.js.map +1 -1
- package/dist/entities/workflow-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution.entity.js +3 -2
- package/dist/entities/workflow-execution.entity.js.map +1 -1
- package/dist/entities/workflow-secret.entity.d.ts.map +1 -1
- package/dist/entities/workflow-secret.entity.js +3 -2
- package/dist/entities/workflow-secret.entity.js.map +1 -1
- package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-step-execution.entity.js +3 -2
- package/dist/entities/workflow-step-execution.entity.js.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.js +6 -5
- package/dist/entities/workflow-trigger-execution.entity.js.map +1 -1
- package/dist/filters/http-exception.filter.d.ts.map +1 -1
- package/dist/filters/http-exception.filter.js +5 -1
- package/dist/filters/http-exception.filter.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +5 -2
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +7 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.js +3 -2
- package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +8 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +61 -76
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.js +3 -2
- package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/textFieldCrudManagerUtils.d.ts +3 -0
- package/dist/helpers/field-crud-managers/textFieldCrudManagerUtils.d.ts.map +1 -0
- package/dist/helpers/field-crud-managers/textFieldCrudManagerUtils.js +17 -0
- package/dist/helpers/field-crud-managers/textFieldCrudManagerUtils.js.map +1 -0
- package/dist/helpers/file-download.helper.d.ts.map +1 -1
- package/dist/helpers/file-download.helper.js +6 -1
- package/dist/helpers/file-download.helper.js.map +1 -1
- package/dist/helpers/security.helper.d.ts +5 -1
- package/dist/helpers/security.helper.d.ts.map +1 -1
- package/dist/helpers/security.helper.js +15 -4
- package/dist/helpers/security.helper.js.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.js +45 -0
- package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.js +1 -1
- package/dist/helpers/solid-microservice-adapter.service.js.map +1 -1
- package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
- package/dist/helpers/typeorm-db-helper.js +9 -0
- package/dist/helpers/typeorm-db-helper.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/active-user-data.interface.d.ts +1 -0
- package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
- package/dist/interfaces/active-user-data.interface.js.map +1 -1
- package/dist/repository/user-device-credential.repository.d.ts +12 -0
- package/dist/repository/user-device-credential.repository.d.ts.map +1 -0
- package/dist/repository/user-device-credential.repository.js +34 -0
- package/dist/repository/user-device-credential.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +7 -3
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +168 -2
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js +1 -1
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +5 -4
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +50 -19
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +5 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +48 -13
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +1 -2
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +2 -16
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +4 -2
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/draft-publish-helper.service.d.ts +1 -0
- package/dist/services/draft-publish-helper.service.d.ts.map +1 -1
- package/dist/services/draft-publish-helper.service.js +38 -4
- package/dist/services/draft-publish-helper.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +6 -2
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +5 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/media-storage.utils.d.ts +1 -0
- package/dist/services/media-storage.utils.d.ts.map +1 -1
- package/dist/services/media-storage.utils.js +12 -1
- package/dist/services/media-storage.utils.js.map +1 -1
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +1 -0
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +9 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mpin.service.d.ts +67 -0
- package/dist/services/mpin.service.d.ts.map +1 -0
- package/dist/services/mpin.service.js +282 -0
- package/dist/services/mpin.service.js.map +1 -0
- package/dist/services/refresh-token-ids-storage.service.d.ts +25 -6
- package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.js +80 -42
- package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +6 -1
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +202 -6
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +114 -3
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +4 -0
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +2 -0
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts +1 -3
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +14 -39
- package/dist/solid-core.module.js.map +1 -1
- package/dist/testing/reporter/console-reporter.d.ts +3 -0
- package/dist/testing/reporter/console-reporter.d.ts.map +1 -1
- package/dist/testing/reporter/console-reporter.js +2 -0
- package/dist/testing/reporter/console-reporter.js.map +1 -1
- package/dist/testing/reporter/progress-reporter.d.ts +64 -0
- package/dist/testing/reporter/progress-reporter.d.ts.map +1 -0
- package/dist/testing/reporter/progress-reporter.js +224 -0
- package/dist/testing/reporter/progress-reporter.js.map +1 -0
- package/dist/testing/reporter/reporter.types.d.ts +3 -0
- package/dist/testing/reporter/reporter.types.d.ts.map +1 -1
- package/dist/testing/reporter/reporter.types.js.map +1 -1
- package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
- package/dist/testing/runner/run-from-metadata.js +1 -0
- package/dist/testing/runner/run-from-metadata.js.map +1 -1
- package/dist/theme/theme-registry.d.ts +14 -0
- package/dist/theme/theme-registry.d.ts.map +1 -0
- package/dist/theme/theme-registry.js +147 -0
- package/dist/theme/theme-registry.js.map +1 -0
- package/package.json +2 -2
- package/src/commands/run-tests.command.ts +17 -3
- package/src/config/cache.options.ts +9 -1
- package/src/constants/error-messages.ts +14 -0
- package/src/constants/media-file-types.ts +182 -19
- package/src/constants/success-messages.ts +5 -0
- package/src/controllers/authentication.controller.ts +5 -2
- package/src/controllers/mpin-authentication.controller.ts +67 -0
- package/src/dtos/change-mpin.dto.ts +18 -0
- package/src/dtos/create-field-metadata.dto.ts +17 -9
- package/src/dtos/create-model-sequence.dto.ts +1 -1
- package/src/dtos/mpin-login.dto.ts +24 -0
- package/src/dtos/setup-mpin.dto.ts +51 -0
- package/src/entities/dashboard-user-layout.entity.ts +2 -2
- package/src/entities/field-metadata.entity.ts +3 -0
- package/src/entities/user-device-credential.entity.ts +130 -0
- package/src/entities/user.entity.ts +2 -2
- package/src/entities/view-metadata.entity.ts +2 -2
- package/src/entities/workflow-execution-artifact.entity.ts +4 -3
- package/src/entities/workflow-execution-log.entity.ts +4 -3
- package/src/entities/workflow-execution.entity.ts +3 -2
- package/src/entities/workflow-secret.entity.ts +3 -2
- package/src/entities/workflow-step-execution.entity.ts +3 -2
- package/src/entities/workflow-trigger-execution.entity.ts +6 -5
- package/src/filters/http-exception.filter.ts +11 -1
- package/src/helpers/bootstrap.helper.ts +43 -6
- package/src/helpers/field-crud-managers/LongTextFieldCrudManager.ts +3 -2
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +83 -96
- package/src/helpers/field-crud-managers/ShortTextFieldCrudManager.ts +3 -2
- package/src/helpers/field-crud-managers/textFieldCrudManagerUtils.ts +14 -0
- package/src/helpers/file-download.helper.ts +15 -1
- package/src/helpers/security.helper.ts +35 -8
- package/src/helpers/solid-core-error-codes-provider.service.ts +53 -0
- package/src/helpers/solid-microservice-adapter.service.ts +6 -1
- package/src/helpers/typeorm-db-helper.ts +12 -1
- package/src/index.ts +6 -0
- package/src/interfaces/active-user-data.interface.ts +9 -0
- package/src/repository/user-device-credential.repository.ts +17 -0
- package/src/seeders/module-metadata-seeder.service.ts +11 -3
- package/src/seeders/seed-data/solid-core-metadata.json +168 -2
- package/src/services/api-key.service.ts +13 -1
- package/src/services/authentication.service.ts +127 -36
- package/src/services/chatter-message.service.ts +78 -15
- package/src/services/crud-helper.service.ts +19 -16
- package/src/services/crud.service.ts +5 -2
- package/src/services/draft-publish-helper.service.ts +56 -4
- package/src/services/field-metadata.service.ts +6 -2
- package/src/services/media-storage.utils.ts +26 -1
- package/src/services/media.service.ts +1 -0
- package/src/services/module-metadata.service.ts +10 -1
- package/src/services/mpin.service.ts +447 -0
- package/src/services/refresh-token-ids-storage.service.ts +229 -90
- package/src/services/setting.service.ts +8 -1
- package/src/services/settings/default-settings-provider.service.ts +119 -3
- package/src/services/view-metadata.service.ts +4 -0
- package/src/solid-core.module.ts +26 -12
- package/src/testing/README.md +2 -1
- package/src/testing/reporter/console-reporter.ts +4 -0
- package/src/testing/reporter/progress-reporter.ts +251 -0
- package/src/testing/reporter/reporter.types.ts +3 -0
- package/src/testing/runner/run-from-metadata.ts +1 -0
- package/src/theme/theme-registry.ts +181 -0
- package/CLAUDE.md +0 -26
|
@@ -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\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';\nimport { IWorkflowFieldDataProviderValues } from 'src/interfaces';\n\n@Injectable()\nexport class ViewMetadataService extends CRUDService<ViewMetadata> {\n private readonly comparableFields = [\n 'name',\n 'displayName',\n 'type',\n 'context',\n 'layout',\n 'module',\n 'model',\n ] as const;\n private readonly relationCompareFields = new Set(['module', 'model']);\n private readonly jsonCompareFields = new Set(['layout', 'context']);\n\n private normalizeJsonFieldValue(value: any): any {\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (\n (trimmedValue.startsWith('{') && trimmedValue.endsWith('}')) ||\n (trimmedValue.startsWith('[') && trimmedValue.endsWith(']'))\n ) {\n try {\n return this.normalizeJsonFieldValue(JSON.parse(trimmedValue));\n } catch {\n return value;\n }\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeJsonFieldValue(item));\n }\n\n if (value && typeof value === 'object') {\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = this.normalizeJsonFieldValue(value[key]);\n return result;\n }, {} as Record<string, any>);\n }\n\n return value;\n }\n\n private getCanonicalJsonFieldString(value: any): string {\n return JSON.stringify(this.normalizeJsonFieldValue(value) ?? null);\n }\n\n private hasChanges(existingSolidView: ViewMetadata, updateSolidViewDto: UpdateViewMetadataDto): boolean {\n return this.comparableFields.some((key) => {\n const value = (updateSolidViewDto as any)[key];\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (this.relationCompareFields.has(key)) {\n const relationValue = value as any;\n return (existingSolidView as any)[key]?.id !== relationValue?.id;\n }\n\n if (this.jsonCompareFields.has(key)) {\n return this.getCanonicalJsonFieldString((existingSolidView as any)[key]) !== this.getCanonicalJsonFieldString(value);\n }\n\n return (existingSolidView as any)[key] !== value;\n });\n }\n\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 private parseJsonObject(value: any): Record<string, any> {\n if (!value) {\n return {};\n }\n\n if (typeof value === 'object') {\n return value;\n }\n\n if (typeof value === 'string') {\n try {\n return JSON.parse(value);\n } catch (error: any) {\n this.logger.warn(`Unable to parse workflow field provider context: ${error?.message ?? error}`);\n }\n }\n\n return {};\n }\n\n private async getDefaultWorkflowFieldData(\n workflowField: FieldMetadata,\n workflowFieldName: string,\n fieldsMap: Map<string, FieldMetadata>,\n ): Promise<IWorkflowFieldDataProviderValues[]> {\n if (workflowField.type === 'selectionStatic') {\n return workflowField.selectionStaticValues.map(item => {\n const [value, label] = item.split(\":\");\n return { label, value };\n });\n }\n\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 workflowFieldUserKey = (workflowFieldMetadata as any)?.relationModel?.userKeyField?.name;\n\n if (!workflowFieldUserKey) {\n this.logger.warn(`Unable to identify relation user key for workflow field: ${workflowFieldName}`);\n return [];\n }\n\n return records.map(item => ({ label: item[workflowFieldUserKey], value: item['id'] }));\n }\n\n return [];\n }\n\n private async getWorkflowFieldData(\n entity: ViewMetadata,\n workflowField: FieldMetadata,\n workflowFieldName: string,\n fieldsMap: Map<string, FieldMetadata>,\n query: Record<string, any>,\n activeUser: any,\n ): Promise<readonly IWorkflowFieldDataProviderValues[]> {\n const workflowFieldDataProviderName = entity.layout?.attrs?.workflowFieldDataProvider;\n if (workflowFieldDataProviderName) {\n const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n const provider = solidRegistry.getWorkflowFieldDataProviderInstance(workflowFieldDataProviderName);\n if (!provider) {\n throw new BadRequestException(`Workflow field data provider ${workflowFieldDataProviderName} not found`);\n }\n\n return provider.values({\n entityId: query?.id,\n modelName: entity.model?.singularName ?? query?.modelName,\n moduleName: entity.module?.name ?? query?.moduleName,\n workflowFieldName,\n workflowField,\n solidModel: entity.model,\n solidView: entity,\n solidFieldsMetadata: Object.fromEntries(fieldsMap),\n query,\n providerContext: this.parseJsonObject(entity.layout?.attrs?.workflowFieldDataProviderCtxt),\n activeUser,\n });\n }\n\n return this.getDefaultWorkflowFieldData(workflowField, workflowFieldName, fieldsMap);\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 // 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 const collectionViewTypes = ['card', 'list', 'kanban', 'tree'];\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: collectionViewTypes })\n .getMany();\n\n const canonicalActionsByViewType = new Map();\n for (const actionItem of actionsForViewModes) {\n const resolvedViewType = actionItem.view?.type;\n if (!resolvedViewType || canonicalActionsByViewType.has(resolvedViewType)) {\n continue;\n }\n canonicalActionsByViewType.set(resolvedViewType, actionItem);\n }\n\n if (action?.view?.type && collectionViewTypes.includes(action.view.type) && action?.id) {\n canonicalActionsByViewType.set(action.view.type, action);\n }\n\n viewModes = collectionViewTypes\n .map((resolvedViewType) => canonicalActionsByViewType.get(resolvedViewType))\n .filter(Boolean)\n .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 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 // 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 let solidFormViewWorkflowData: readonly IWorkflowFieldDataProviderValues[] = [];\n if (viewType === 'form' && workflowField) {\n solidFormViewWorkflowData = await this.getWorkflowFieldData(entity, workflowField, workflowFieldName, fieldsMap, query, activeUser);\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 let applicableLocales: any[] = [];\n if (entity.model.internationalisation) {\n const draftPublishEnabled = entity.model.draftPublishWorkflow === true;\n applicableLocales = await this.internationalisationHelperService.buildApplicableLocales(\n this.entityManager, modelName, id, query?.defaultEntityLocaleId, draftPublishEnabled,\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 module: true,\n model: true,\n });\n\n // if found\n if (existingSolidView) {\n const hasChanges = this.hasChanges(existingSolidView, updateSolidViewDto);\n\n if (!hasChanges) {\n this.logger.debug(`Skipping view upsert for ${updateSolidViewDto.name}; no changes detected.`);\n return existingSolidView;\n }\n\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\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';\nimport { IWorkflowFieldDataProviderValues } from 'src/interfaces';\nimport { MEDIA_FILE_TYPES } from 'src/constants/media-file-types';\n\n@Injectable()\nexport class ViewMetadataService extends CRUDService<ViewMetadata> {\n private readonly comparableFields = [\n 'name',\n 'displayName',\n 'type',\n 'context',\n 'layout',\n 'module',\n 'model',\n ] as const;\n private readonly relationCompareFields = new Set(['module', 'model']);\n private readonly jsonCompareFields = new Set(['layout', 'context']);\n\n private normalizeJsonFieldValue(value: any): any {\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (\n (trimmedValue.startsWith('{') && trimmedValue.endsWith('}')) ||\n (trimmedValue.startsWith('[') && trimmedValue.endsWith(']'))\n ) {\n try {\n return this.normalizeJsonFieldValue(JSON.parse(trimmedValue));\n } catch {\n return value;\n }\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeJsonFieldValue(item));\n }\n\n if (value && typeof value === 'object') {\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = this.normalizeJsonFieldValue(value[key]);\n return result;\n }, {} as Record<string, any>);\n }\n\n return value;\n }\n\n private getCanonicalJsonFieldString(value: any): string {\n return JSON.stringify(this.normalizeJsonFieldValue(value) ?? null);\n }\n\n private hasChanges(existingSolidView: ViewMetadata, updateSolidViewDto: UpdateViewMetadataDto): boolean {\n return this.comparableFields.some((key) => {\n const value = (updateSolidViewDto as any)[key];\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (this.relationCompareFields.has(key)) {\n const relationValue = value as any;\n return (existingSolidView as any)[key]?.id !== relationValue?.id;\n }\n\n if (this.jsonCompareFields.has(key)) {\n return this.getCanonicalJsonFieldString((existingSolidView as any)[key]) !== this.getCanonicalJsonFieldString(value);\n }\n\n return (existingSolidView as any)[key] !== value;\n });\n }\n\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 private parseJsonObject(value: any): Record<string, any> {\n if (!value) {\n return {};\n }\n\n if (typeof value === 'object') {\n return value;\n }\n\n if (typeof value === 'string') {\n try {\n return JSON.parse(value);\n } catch (error: any) {\n this.logger.warn(`Unable to parse workflow field provider context: ${error?.message ?? error}`);\n }\n }\n\n return {};\n }\n\n private async getDefaultWorkflowFieldData(\n workflowField: FieldMetadata,\n workflowFieldName: string,\n fieldsMap: Map<string, FieldMetadata>,\n ): Promise<IWorkflowFieldDataProviderValues[]> {\n if (workflowField.type === 'selectionStatic') {\n return workflowField.selectionStaticValues.map(item => {\n const [value, label] = item.split(\":\");\n return { label, value };\n });\n }\n\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 workflowFieldUserKey = (workflowFieldMetadata as any)?.relationModel?.userKeyField?.name;\n\n if (!workflowFieldUserKey) {\n this.logger.warn(`Unable to identify relation user key for workflow field: ${workflowFieldName}`);\n return [];\n }\n\n return records.map(item => ({ label: item[workflowFieldUserKey], value: item['id'] }));\n }\n\n return [];\n }\n\n private async getWorkflowFieldData(\n entity: ViewMetadata,\n workflowField: FieldMetadata,\n workflowFieldName: string,\n fieldsMap: Map<string, FieldMetadata>,\n query: Record<string, any>,\n activeUser: any,\n ): Promise<readonly IWorkflowFieldDataProviderValues[]> {\n const workflowFieldDataProviderName = entity.layout?.attrs?.workflowFieldDataProvider;\n if (workflowFieldDataProviderName) {\n const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });\n const provider = solidRegistry.getWorkflowFieldDataProviderInstance(workflowFieldDataProviderName);\n if (!provider) {\n throw new BadRequestException(`Workflow field data provider ${workflowFieldDataProviderName} not found`);\n }\n\n return provider.values({\n entityId: query?.id,\n modelName: entity.model?.singularName ?? query?.modelName,\n moduleName: entity.module?.name ?? query?.moduleName,\n workflowFieldName,\n workflowField,\n solidModel: entity.model,\n solidView: entity,\n solidFieldsMetadata: Object.fromEntries(fieldsMap),\n query,\n providerContext: this.parseJsonObject(entity.layout?.attrs?.workflowFieldDataProviderCtxt),\n activeUser,\n });\n }\n\n return this.getDefaultWorkflowFieldData(workflowField, workflowFieldName, fieldsMap);\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 // 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 const collectionViewTypes = ['card', 'list', 'kanban', 'tree'];\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: collectionViewTypes })\n .getMany();\n\n const canonicalActionsByViewType = new Map();\n for (const actionItem of actionsForViewModes) {\n const resolvedViewType = actionItem.view?.type;\n if (!resolvedViewType || canonicalActionsByViewType.has(resolvedViewType)) {\n continue;\n }\n canonicalActionsByViewType.set(resolvedViewType, actionItem);\n }\n\n if (action?.view?.type && collectionViewTypes.includes(action.view.type) && action?.id) {\n canonicalActionsByViewType.set(action.view.type, action);\n }\n\n viewModes = collectionViewTypes\n .map((resolvedViewType) => canonicalActionsByViewType.get(resolvedViewType))\n .filter(Boolean)\n .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 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 // 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 let solidFormViewWorkflowData: readonly IWorkflowFieldDataProviderValues[] = [];\n if (viewType === 'form' && workflowField) {\n solidFormViewWorkflowData = await this.getWorkflowFieldData(entity, workflowField, workflowFieldName, fieldsMap, query, activeUser);\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 let applicableLocales: any[] = [];\n if (entity.model.internationalisation) {\n const draftPublishEnabled = entity.model.draftPublishWorkflow === true;\n applicableLocales = await this.internationalisationHelperService.buildApplicableLocales(\n this.entityManager, modelName, id, query?.defaultEntityLocaleId, draftPublishEnabled,\n );\n }\n\n const r = {\n 'solidView': entity,\n 'solidFieldsMetadata': Object.fromEntries(fieldsMap),\n // Reuse the form view payload for media picker filtering so the runtime widgets\n // can derive category-to-extension fallbacks without exposing unused MIME details.\n 'mediaFileTypeDefinitions': MEDIA_FILE_TYPES.map(({ mediaType, extension }) => ({ mediaType, extension })),\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 module: true,\n model: true,\n });\n\n // if found\n if (existingSolidView) {\n const hasChanges = this.hasChanges(existingSolidView, updateSolidViewDto);\n\n if (!hasChanges) {\n this.logger.debug(`Skipping view upsert for ${updateSolidViewDto.name}; no changes detected.`);\n return existingSolidView;\n }\n\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,6 +1,4 @@
|
|
|
1
1
|
import "multer";
|
|
2
|
-
|
|
3
|
-
export declare class SolidCoreModule implements NestModule {
|
|
4
|
-
configure(consumer: MiddlewareConsumer): void;
|
|
2
|
+
export declare class SolidCoreModule {
|
|
5
3
|
}
|
|
6
4
|
//# sourceMappingURL=solid-core.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAudhB,qBA4lBa,eAAe;CAAG"}
|
|
@@ -1,48 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
9
|
exports.SolidCoreModule = void 0;
|
|
43
10
|
require("multer");
|
|
44
11
|
const common_1 = require("@nestjs/common");
|
|
45
|
-
const express = __importStar(require("express"));
|
|
46
12
|
const config_1 = require("@nestjs/config");
|
|
47
13
|
const core_1 = require("@nestjs/core");
|
|
48
14
|
const platform_express_1 = require("@nestjs/platform-express");
|
|
@@ -125,6 +91,7 @@ const google_authentication_controller_1 = require("./controllers/google-authent
|
|
|
125
91
|
const menu_item_metadata_controller_1 = require("./controllers/menu-item-metadata.controller");
|
|
126
92
|
const mq_message_queue_controller_1 = require("./controllers/mq-message-queue.controller");
|
|
127
93
|
const mq_message_controller_1 = require("./controllers/mq-message.controller");
|
|
94
|
+
const mpin_authentication_controller_1 = require("./controllers/mpin-authentication.controller");
|
|
128
95
|
const otp_authentication_controller_1 = require("./controllers/otp-authentication.controller");
|
|
129
96
|
const service_controller_1 = require("./controllers/service.controller");
|
|
130
97
|
const sms_template_controller_1 = require("./controllers/sms-template.controller");
|
|
@@ -194,6 +161,7 @@ const twilio_sms_subscriber_redis_service_1 = require("./jobs/redis/twilio-sms-s
|
|
|
194
161
|
const user_registration_listener_1 = require("./listeners/user-registration.listener");
|
|
195
162
|
const google_oauth_strategy_1 = require("./passport-strategies/google-oauth.strategy");
|
|
196
163
|
const api_key_service_1 = require("./services/api-key.service");
|
|
164
|
+
const mpin_service_1 = require("./services/mpin.service");
|
|
197
165
|
const active_session_storage_service_1 = require("./services/active-session-storage.service");
|
|
198
166
|
const authentication_service_1 = require("./services/authentication.service");
|
|
199
167
|
const metadata_validation_service_1 = require("./services/metadata-validation.service");
|
|
@@ -262,6 +230,7 @@ const setting_entity_1 = require("./entities/setting.entity");
|
|
|
262
230
|
const user_activity_history_entity_1 = require("./entities/user-activity-history.entity");
|
|
263
231
|
const user_view_metadata_entity_1 = require("./entities/user-view-metadata.entity");
|
|
264
232
|
const user_api_key_entity_1 = require("./entities/user-api-key.entity");
|
|
233
|
+
const user_device_credential_entity_1 = require("./entities/user-device-credential.entity");
|
|
265
234
|
const user_entity_1 = require("./entities/user.entity");
|
|
266
235
|
const http_exception_filter_1 = require("./filters/http-exception.filter");
|
|
267
236
|
const model_metadata_helper_service_1 = require("./helpers/model-metadata-helper.service");
|
|
@@ -330,6 +299,7 @@ const sms_template_repository_1 = require("./repository/sms-template.repository"
|
|
|
330
299
|
const user_activity_history_repository_1 = require("./repository/user-activity-history.repository");
|
|
331
300
|
const user_view_metadata_repository_1 = require("./repository/user-view-metadata.repository");
|
|
332
301
|
const user_api_key_repository_1 = require("./repository/user-api-key.repository");
|
|
302
|
+
const user_device_credential_repository_1 = require("./repository/user-device-credential.repository");
|
|
333
303
|
const user_repository_1 = require("./repository/user.repository");
|
|
334
304
|
const view_metadata_repository_1 = require("./repository/view-metadata.repository");
|
|
335
305
|
const permission_metadata_seeder_service_1 = require("./seeders/permission-metadata-seeder.service");
|
|
@@ -468,11 +438,6 @@ const solidx_send_email_node_1 = require("./services/workflow/nodes/solidx-send-
|
|
|
468
438
|
const solidx_send_sms_node_1 = require("./services/workflow/nodes/solidx-send-sms.node");
|
|
469
439
|
const switch_node_1 = require("./services/workflow/nodes/switch.node");
|
|
470
440
|
let SolidCoreModule = class SolidCoreModule {
|
|
471
|
-
configure(consumer) {
|
|
472
|
-
consumer
|
|
473
|
-
.apply(express.json({ limit: "10mb" }), express.urlencoded({ limit: "10mb", extended: true }))
|
|
474
|
-
.forRoutes("*");
|
|
475
|
-
}
|
|
476
441
|
};
|
|
477
442
|
exports.SolidCoreModule = SolidCoreModule;
|
|
478
443
|
exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
@@ -511,6 +476,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
511
476
|
sms_template_entity_1.SmsTemplate,
|
|
512
477
|
user_entity_1.User,
|
|
513
478
|
user_api_key_entity_1.UserApiKey,
|
|
479
|
+
user_device_credential_entity_1.UserDeviceCredential,
|
|
514
480
|
user_activity_history_entity_1.UserActivityHistory,
|
|
515
481
|
user_view_metadata_entity_1.UserViewMetadata,
|
|
516
482
|
view_metadata_entity_1.ViewMetadata,
|
|
@@ -543,6 +509,12 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
543
509
|
imports: [config_1.ConfigModule],
|
|
544
510
|
useFactory: async (configService) => ({
|
|
545
511
|
dest: process.env.AB_MEDIA_UPLOAD_DIR ?? "media-uploads",
|
|
512
|
+
limits: {
|
|
513
|
+
fileSize: (() => {
|
|
514
|
+
const parsedMb = Number(process.env.AB_MEDIA_MAX_FILE_SIZE_MB);
|
|
515
|
+
return (Number.isFinite(parsedMb) && parsedMb > 0 ? parsedMb : 100) * 1024 * 1024;
|
|
516
|
+
})(),
|
|
517
|
+
},
|
|
546
518
|
}),
|
|
547
519
|
inject: [config_1.ConfigService],
|
|
548
520
|
}),
|
|
@@ -586,6 +558,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
586
558
|
gupshup_webhook_controller_1.GupshupWebhookController,
|
|
587
559
|
meta_cloud_whatsapp_webhook_controller_1.MetaCloudWhatsappWebhookController,
|
|
588
560
|
otp_authentication_controller_1.OTPAuthenticationController,
|
|
561
|
+
mpin_authentication_controller_1.MpinAuthenticationController,
|
|
589
562
|
permission_metadata_controller_1.PermissionMetadataController,
|
|
590
563
|
role_metadata_controller_1.RoleMetadataController,
|
|
591
564
|
saved_filters_controller_1.SavedFiltersController,
|
|
@@ -749,6 +722,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
749
722
|
api_key_guard_1.ApiKeyGuard,
|
|
750
723
|
media_signed_url_guard_1.MediaSignedUrlGuard,
|
|
751
724
|
api_key_service_1.ApiKeyService,
|
|
725
|
+
mpin_service_1.MpinService,
|
|
752
726
|
active_session_storage_service_1.ActiveSessionStorageService,
|
|
753
727
|
authentication_service_1.AuthenticationService,
|
|
754
728
|
google_authentication_controller_1.GoogleAuthenticationController,
|
|
@@ -816,6 +790,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
816
790
|
permission_metadata_seeder_service_1.PermissionMetadataSeederService,
|
|
817
791
|
user_service_1.UserService,
|
|
818
792
|
user_api_key_repository_1.UserApiKeyRepository,
|
|
793
|
+
user_device_credential_repository_1.UserDeviceCredentialRepository,
|
|
819
794
|
user_repository_1.UserRepository,
|
|
820
795
|
setting_service_1.SettingService,
|
|
821
796
|
concat_computed_field_provider_service_1.ConcatComputedFieldProvider,
|