@solidxai/core 0.1.11-beta.7 → 0.1.11-beta.9

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.
Files changed (91) hide show
  1. package/.claude/settings.local.json +16 -0
  2. package/CLAUDE.md +26 -0
  3. package/dist/helpers/environment.helper.d.ts +1 -0
  4. package/dist/helpers/environment.helper.d.ts.map +1 -1
  5. package/dist/helpers/environment.helper.js +4 -0
  6. package/dist/helpers/environment.helper.js.map +1 -1
  7. package/dist/helpers/model-metadata-helper.service.d.ts +2 -1
  8. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  9. package/dist/helpers/model-metadata-helper.service.js +6 -2
  10. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  11. package/dist/helpers/typeorm-db-helper.d.ts +1 -0
  12. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
  13. package/dist/helpers/typeorm-db-helper.js +12 -0
  14. package/dist/helpers/typeorm-db-helper.js.map +1 -1
  15. package/dist/repository/scheduled-job.repository.d.ts +2 -2
  16. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  17. package/dist/repository/scheduled-job.repository.js +6 -3
  18. package/dist/repository/scheduled-job.repository.js.map +1 -1
  19. package/dist/repository/security-rule.repository.d.ts +2 -2
  20. package/dist/repository/security-rule.repository.d.ts.map +1 -1
  21. package/dist/repository/security-rule.repository.js +6 -3
  22. package/dist/repository/security-rule.repository.js.map +1 -1
  23. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  24. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +2 -1
  25. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  26. package/dist/services/crud-helper.service.d.ts.map +1 -1
  27. package/dist/services/crud-helper.service.js +25 -12
  28. package/dist/services/crud-helper.service.js.map +1 -1
  29. package/dist/services/model-metadata.service.d.ts.map +1 -1
  30. package/dist/services/model-metadata.service.js +2 -1
  31. package/dist/services/model-metadata.service.js.map +1 -1
  32. package/dist/services/module-metadata.service.d.ts.map +1 -1
  33. package/dist/services/module-metadata.service.js +2 -1
  34. package/dist/services/module-metadata.service.js.map +1 -1
  35. package/dist/services/settings/default-settings-provider.service.d.ts +32 -0
  36. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  37. package/dist/services/settings/default-settings-provider.service.js +14 -0
  38. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  39. package/dist/subscribers/audit.subscriber.d.ts +0 -1
  40. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  41. package/dist/subscribers/audit.subscriber.js +5 -8
  42. package/dist/subscribers/audit.subscriber.js.map +1 -1
  43. package/dist/subscribers/computed-entity-field.subscriber.d.ts +9 -1
  44. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  45. package/dist/subscribers/computed-entity-field.subscriber.js +43 -12
  46. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  47. package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
  48. package/dist/subscribers/scheduled-job.subscriber.js +3 -2
  49. package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
  50. package/dist/subscribers/security-rule.subscriber.d.ts.map +1 -1
  51. package/dist/subscribers/security-rule.subscriber.js +5 -3
  52. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/helpers/environment.helper.ts +11 -0
  55. package/src/helpers/model-metadata-helper.service.ts +7 -2
  56. package/src/helpers/typeorm-db-helper.ts +15 -0
  57. package/src/repository/scheduled-job.repository.ts +10 -4
  58. package/src/repository/security-rule.repository.ts +10 -4
  59. package/src/services/1.js +6 -0
  60. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +5 -4
  61. package/src/services/crud-helper.service.ts +25 -12
  62. package/src/services/model-metadata.service.ts +2 -1
  63. package/src/services/module-metadata.service.ts +2 -1
  64. package/src/services/settings/default-settings-provider.service.ts +14 -0
  65. package/src/subscribers/audit.subscriber.ts +7 -9
  66. package/src/subscribers/computed-entity-field.subscriber.ts +79 -28
  67. package/src/subscribers/scheduled-job.subscriber.ts +3 -2
  68. package/src/subscribers/security-rule.subscriber.ts +8 -3
  69. package/dist-tests/api/authenticate.spec.js +0 -119
  70. package/dist-tests/api/authenticate.spec.js.map +0 -1
  71. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  72. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  73. package/dist-tests/api/ping.spec.js +0 -21
  74. package/dist-tests/api/ping.spec.js.map +0 -1
  75. package/dist-tests/helpers/auth.js +0 -41
  76. package/dist-tests/helpers/auth.js.map +0 -1
  77. package/dist-tests/helpers/env.js +0 -11
  78. package/dist-tests/helpers/env.js.map +0 -1
  79. package/docs/agent-hub-grooming.md +0 -301
  80. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
  81. package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
  82. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
  83. package/docs/datasource-introspection-ddl-analysis.md +0 -326
  84. package/docs/datasource-introspection-implementation-plan.md +0 -306
  85. package/docs/grouping-enhancements.md +0 -89
  86. package/docs/java-spring/README.md +0 -3
  87. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  88. package/docs/module-package-import-handoff.md +0 -691
  89. package/docs/seed-changes.md +0 -65
  90. package/docs/test-data-workflow.md +0 -200
  91. package/docs/type-declaration-import-issue.md +0 -24
@@ -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 {\n ISettingsProvider,\n SettingDefinition,\n SettingLevel,\n} 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 [\n {\n moduleName: \"solid-core\",\n key: \"iamGoogleOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Google\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamFacebookOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Facebook\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamMicrosoftOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Microsoft\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamMicrosoftActiveDirectoryOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Microsoft Active Directory\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authPagesLayout\",\n value: \"center\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Screen Layout\",\n group: \"authentication-settings\",\n sortOrder: 80,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Left\", value: \"left\" },\n { label: \"Center\", value: \"center\" },\n { label: \"Right\", value: \"right\" },\n ],\n },\n // Removed authPagesTheme as we are going to use the local storage based theme switching in the frontend instead of server side theme switching.\n // { moduleName: \"solid-core\", key: \"authPagesTheme\", value: \"light\", level: SettingLevel.SystemAdminEditable },\n {\n moduleName: \"solid-core\",\n key: \"appLogo\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"App Logo\",\n group: \"app-settings\",\n sortOrder: 10,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"companylogo\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Company Logo\",\n group: \"app-settings\",\n sortOrder: 20,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"favicon\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Favicon\",\n group: \"app-settings\",\n sortOrder: 30,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appLogoPosition\",\n value: \"in_form_view\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Logo Position\",\n group: \"app-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"In Form View\", value: \"in_form_view\" },\n { label: \"In Image View\", value: \"in_image_view\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"showAuthContent\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Details On Authentication Screen\",\n group: \"app-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appTitle\",\n value: process.env.SOLID_APP_NAME || \"Solid App\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Title\",\n group: \"app-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appSubtitle\",\n value: process.env.SOLID_APP_SUBTITLE || \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Subtitle\",\n group: \"app-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appDescription\",\n value: process.env.SOLID_APP_DESCRIPTION || \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Description\",\n group: \"app-settings\",\n sortOrder: 80,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"showLegalLinks\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Legal Links\",\n group: \"app-settings\",\n sortOrder: 90,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appTnc\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Terms And Conditions Link\",\n group: \"app-settings\",\n sortOrder: 100,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appPrivacyPolicy\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Privacy Policy Link\",\n group: \"app-settings\",\n sortOrder: 110,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enableDarkMode\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Dark Mode\",\n group: \"app-settings\",\n sortOrder: 120,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"copyright\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Copyright\",\n group: \"app-settings\",\n sortOrder: 130,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enableUsername\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Username\",\n group: \"misc-settings\",\n sortOrder: 10,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enabledNotification\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Notification\",\n group: \"misc-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportEmail\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Email\",\n group: \"misc-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportDisplayName\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Display Name\",\n group: \"misc-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportIcon\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Icon\",\n group: \"misc-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenRightBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Right Banner Image\",\n group: \"authentication-settings\",\n sortOrder: 90,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenLeftBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Left Banner Image\",\n group: \"authentication-settings\",\n sortOrder: 100,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenCenterBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Center Background Image\",\n group: \"authentication-settings\",\n sortOrder: 110,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"solidXGenAiCodeBuilderConfig\",\n value: JSON.stringify({\n models: {\n default: {\n providerId: \"\",\n model: \"\",\n behavior: { streaming: false, custom: \"\" },\n },\n fast: {\n providerId: \"\",\n model: \"\",\n behavior: { streaming: false, custom: \"\" },\n },\n },\n providers: {},\n }),\n level: SettingLevel.SystemAdminEditable,\n encrypted: true,\n label: \"AI Code Builder Configuration\",\n description:\n \"Structured configuration for AI providers and model assignments.\",\n group: \"ai-settings\",\n sortOrder: 10,\n controlType: \"custom\",\n settingsWidget: \"solidXGenAiCodeBuilderConfigWidget\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appEncryptionKey\",\n value: process.env.APP_ENCRYPTION_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpEnabled\",\n value: process.env.MCP_ENABLED || false,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MCP Enabled\",\n group: \"ai-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpServerUrl\",\n value: process.env.MCP_SERVER_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MCP Server URL\",\n group: \"ai-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpApiKey\",\n value: process.env.MCP_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"dateTimeFormat\",\n value: process.env.DATE_TIME_FORMAT || \"YYYY-MM-DD HH:mm:ss\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Date Time Format\",\n group: \"system-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"dateFormat\",\n value: process.env.DATE_FORMAT || \"YYYY-MM-DD\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Date Format\",\n group: \"system-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"baseUrl\",\n value: process.env.BASE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Base URL\",\n group: \"system-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n }, \n {\n moduleName: \"solid-core\",\n key: \"frontendAdminBaseUrl\",\n value: process.env.FRONTEND_BASE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Admin Base URL\",\n group: \"system-settings\",\n sortOrder: 35,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"solidAppWebsiteUrl\",\n value: process.env.SOLID_APP_WEBSITE_URL,\n level: SettingLevel.SystemAdminEditable,\n label: \"Solid App Website URL\",\n group: \"system-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n\n // app-builder-settings-provider.service.ts, app-builder.config.ts\n {\n moduleName: \"solid-core\",\n key: \"moduleMetadataSeederFiles\",\n value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? \"\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Module Metadata Seeder Files\",\n group: \"storage-settings\",\n sortOrder: 10,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"uploadDir\",\n value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Upload Directory\",\n group: \"storage-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"fileStorageDir\",\n value:\n process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR,\n level: SettingLevel.SystemAdminReadonly,\n label: \"File Storage Directory\",\n group: \"storage-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"defaultFileService\",\n value: process.env.DEFAULT_FILE_SERVICE ?? \"disk\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Default File Service\",\n group: \"storage-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Disk\", value: \"disk\" },\n { label: \"S3\", value: \"s3\" },\n ],\n },\n\n // aws-s3-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_ACCESS_KEY\",\n value: process.env.S3_AWS_ACCESS_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_SECRET_KEY\",\n value: process.env.S3_AWS_SECRET_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_REGION_NAME\",\n value: process.env.S3_AWS_REGION_NAME,\n level: SettingLevel.SystemAdminReadonly,\n label: \"AWS Region Name\",\n group: \"storage-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_DEFAULT_BUCKET\",\n value: process.env.S3_DEFAULT_BUCKET,\n level: SettingLevel.SystemAdminReadonly,\n label: \"S3 Default Bucket\",\n group: \"storage-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n\n // email-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"emailProvider\",\n value: process.env.COMMON_EMAIL_PROVIDER ?? \"SMTPEMailService\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Email Provider\",\n group: \"email-settings\",\n sortOrder: 10,\n controlType: \"selectionStatic\",\n options: [\n { label: \"SMTP Email Service\", value: \"SMTPEMailService\" },\n { label: \"Elastic Email Service\", value: \"ElasticEmailService\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"emailTemplateSeederFiles\",\n value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Email Template Seeder Files\",\n group: \"email-settings\",\n sortOrder: 20,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"shouldQueueEmails\",\n value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queue Emails\",\n group: \"email-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailHost\",\n value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Host\",\n group: \"email-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailPort\",\n value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587),\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Port\",\n group: \"email-settings\",\n sortOrder: 50,\n controlType: \"numeric\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailUsername\",\n value: process.env.COMMON_SMTP_EMAIL_USERNAME,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Username\",\n group: \"email-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailPassword\",\n value: process.env.COMMON_SMTP_EMAIL_PASSWORD,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailFrom\",\n value:\n process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail From\",\n group: \"email-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"apiMailKey\",\n value: process.env.COMMON_API_EMAIL_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"apiMailFrom\",\n value: process.env.COMMON_EMAIL_FROM,\n level: SettingLevel.SystemAdminReadonly,\n label: \"API Mail From\",\n group: \"email-settings\",\n sortOrder: 80,\n controlType: \"shortText\",\n },\n\n // genai-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"ragServerUrl\",\n value: process.env.GENAI_RAG_SERVER_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"RAG Server URL\",\n group: \"ai-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"ragServerLogin\",\n value: process.env.GENAI_RAG_SERVER_LOGIN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"ragServerPassword\",\n value: process.env.GENAI_RAG_SERVER_PASSWORD,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpPythonExecutable\",\n value: process.env.MCP_PYTHON_EXECUTABLE,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpClient\",\n value: process.env.MCP_CLIENT,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpRestartTouchFile\",\n value: process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\",\n level: SettingLevel.SystemEnv,\n },\n\n // google-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"clientID\",\n value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Client ID\",\n group: \"oauth-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"clientSecret\",\n value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"callbackURL\",\n value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Callback URL\",\n group: \"oauth-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"redirectURL\",\n value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Redirect URL\",\n group: \"oauth-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n\n // facebook-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CLIENT_ID\",\n value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CLIENT_SECRET\",\n value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CALLBACK_URL\",\n value: process.env.IAM_FACEBOOK_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_REDIRECT_URL\",\n value: process.env.IAM_FACEBOOK_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n\n // microsoft-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CLIENT_ID\",\n value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CLIENT_SECRET\",\n value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_TENANT_ID\",\n value: process.env.IAM_MICROSOFT_OAUTH_TENANT_ID || \"common\",\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CALLBACK_URL\",\n value: process.env.IAM_MICROSOFT_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_REDIRECT_URL\",\n value: process.env.IAM_MICROSOFT_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n\n // microsoft-active-directory-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_ID\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Client ID\",\n group: \"oauth-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_SECRET\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID\",\n value:\n process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT_ID || \"common\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Tenant ID\",\n group: \"oauth-settings\",\n sortOrder: 80,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CALLBACK_URL\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Callback URL\",\n group: \"oauth-settings\",\n sortOrder: 90,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_REDIRECT_URL\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Redirect URL\",\n group: \"oauth-settings\",\n sortOrder: 100,\n controlType: \"shortText\",\n },\n\n // iam-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"passwordLessAuth\",\n value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Less Authentication\",\n group: \"authentication-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordBasedAuth\",\n value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Based Authentication\",\n group: \"authentication-settings\",\n sortOrder: 10,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordlessRegistrationValidateWhat\",\n value: (\n process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? \"email\"\n ).trim(),\n level: SettingLevel.SystemAdminEditable,\n label: \"Registration Validation Type\",\n group: \"authentication-settings\",\n sortOrder: 30,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Email\", value: \"email\" },\n { label: \"Mobile\", value: \"mobile\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordlessLoginValidateWhat\",\n value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? \"email\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Login Validation Type\",\n group: \"authentication-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Email\", value: \"email\" },\n { label: \"Mobile\", value: \"mobile\" },\n { label: \"Selectable\", value: \"selectable\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"allowPublicRegistration\",\n value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Public Registration\",\n group: \"authentication-settings\",\n sortOrder: 60,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"activateUserOnRegistration\",\n value:\n (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Auto Activate User On Registration\",\n group: \"authentication-settings\",\n sortOrder: 70,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"autoLoginUserOnRegistration\",\n value:\n (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? \"false\") === \"true\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"otpExpiry\",\n value: parseInt(process.env.IAM_OTP_EXPIRY ?? \"10\"),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappFallbackEnabled\",\n value: (process.env.IAM_OTP_WHATSAPP_FALLBACK_ENABLED ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Fallback Enabled\",\n group: \"authentication-settings\",\n sortOrder: 85,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappTemplateId\",\n value: process.env.IAM_OTP_WHATSAPP_TEMPLATE_ID ?? \"common_otp\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Template ID\",\n group: \"authentication-settings\",\n sortOrder: 86,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappIndependentEnabled\",\n value: (process.env.IAM_OTP_WHATSAPP_INDEPENDENT_ENABLED ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Independent Enabled\",\n group: \"authentication-settings\",\n sortOrder: 87,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpDefaultCountryDialCode\",\n value: process.env.IAM_OTP_DEFAULT_COUNTRY_DIAL_CODE ?? \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP Default Country Dial Code\",\n group: \"authentication-settings\",\n sortOrder: 88,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"forgotPasswordVerificationTokenExpiry\",\n value: parseInt(\n process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? \"10\",\n ),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"defaultRole\",\n value: process.env.IAM_DEFAULT_ROLE ?? \"Public\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Default Role\",\n group: \"authentication-settings\",\n sortOrder: 75,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"dummyOtp\",\n value: process.env.IAM_OTP_DUMMY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"dummyOtpUsers\",\n value: process.env.IAM_OTP_DUMMY_USERS,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"forgotPasswordSendVerificationTokenOn\",\n value:\n process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? \"email\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"maxFailedLoginAttempts\",\n value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? \"0\"),\n level: SettingLevel.SystemAdminReadonly,\n label: \"Max Failed Login Attempts\",\n group: \"authentication-settings\",\n sortOrder: 110,\n controlType: \"numeric\",\n },\n {\n moduleName: \"solid-core\",\n key: \"forceChangePasswordOnFirstLogin\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Force Change Password On First Login\",\n group: \"authentication-settings\",\n sortOrder: 120,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordRegex\",\n value:\n process.env.PASSWORD_REGEX ||\n \"^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[^\\\\da-zA-Z]).*$\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Password Regex\",\n group: \"authentication-settings\",\n sortOrder: 130,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordRegexErrorMessage\",\n value:\n process.env.PASSWORD_REGEX_ERROR_MESSAGE ||\n \"Password must contain at least one uppercase, one lowercase, one number, and one special character.\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Regex Error Message\",\n group: \"authentication-settings\",\n sortOrder: 140,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordComplexityDescription\",\n value:\n process.env.PASSWORD_COMPLEXITY_DESC ||\n \"Password must contain at least one uppercase, one lowercase, one number, and one special character.\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Complexity Description\",\n group: \"authentication-settings\",\n sortOrder: 150,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamAutoGeneratedPassword\",\n value: process.env.IAM_AUTOGENERATED_PASSWORD || true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Auto Generate Password\",\n group: \"authentication-settings\",\n sortOrder: 160,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordPepper\",\n value: process.env.IAM_PASSWORD_PEPPER || \"\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"showNameFieldsForRegistration\",\n value:\n process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === \"true\"\n ? true\n : false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Name Fields For Registration\",\n group: \"authentication-settings\",\n sortOrder: 170,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"sendWelcomeEmailOnSignup\",\n value:\n (\n process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? \"false\"\n ).toLowerCase() === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Send Welcome Email On Signup\",\n group: \"authentication-settings\",\n sortOrder: 180,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"sendWelcomeSmsOnSignup\",\n value:\n (\n process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? \"false\"\n ).toLowerCase() === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Send Welcome SMS On Signup\",\n group: \"authentication-settings\",\n sortOrder: 190,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"frontendLoginPageUrl\",\n value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Login Page URL\",\n group: \"authentication-settings\",\n sortOrder: 180,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"frontendForgotPasswordPageUrl\",\n value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Forgot Password Page URL\",\n group: \"authentication-settings\",\n sortOrder: 190,\n controlType: \"shortText\",\n },\n\n // jwt-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"secret\",\n value: process.env.IAM_JWT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"audience\",\n value: process.env.IAM_JWT_TOKEN_AUDIENCE,\n level: SettingLevel.SystemAdminReadonly,\n label: \"JWT Audience\",\n group: \"jwt-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"issuer\",\n value: process.env.IAM_JWT_TOKEN_ISSUER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"JWT Issuer\",\n group: \"jwt-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"accessTokenTtl\",\n value: parseInt(\n process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? \"1200\" : \"86400\"),\n 10,\n ),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"refreshTokenTtl\",\n value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? \"604800\", 10),\n level: SettingLevel.SystemEnv,\n },\n\n // queues-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"queuesDefaultBroker\",\n value: process.env.QUEUES_DEFAULT_BROKER || \"database\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queues Default Broker\",\n group: \"queue-settings\",\n sortOrder: 10,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Database\", value: \"database\" },\n { label: \"RabbitMQ\", value: \"rabbitmq\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"queuesServiceRole\",\n value: process.env.QUEUES_SERVICE_ROLE,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queues Service Role\",\n group: \"queue-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"queuesRabbitMqUrl\",\n value: process.env.QUEUES_RABBIT_MQ_URL,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"solidCliRunning\",\n value: process.env.SOLID_CLI_RUNNING || \"false\",\n level: SettingLevel.SystemEnv,\n },\n\n // sms-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"smsProvider\",\n value: process.env.COMMON_SMS_PROVIDER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMS Provider\",\n group: \"sms-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smsTemplateSeederFiles\",\n value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMS Template Seeder Files\",\n group: \"sms-settings\",\n sortOrder: 20,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"shouldQueueSms\",\n value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queue SMS\",\n group: \"sms-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91SmsUrl\",\n value: process.env.COMMON_MSG91_SMS_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 SMS URL\",\n group: \"sms-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91SmsApiKey\",\n value: process.env.COMMON_MSG91_SMS_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioAccountSid\",\n value: process.env.COMMON_TWILIO_ACCOUNT_SID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Twilio Account SID\",\n group: \"sms-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioAuthToken\",\n value: process.env.COMMON_TWILIO_AUTH_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioNumber\",\n value: process.env.COMMON_TWILIO_NUMBER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Twilio Number\",\n group: \"sms-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n\n // tiny-url-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlApiUrl\",\n value: process.env.COMMON_SHORT_URL_API_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL API URL\",\n group: \"short-url-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlApiKey\",\n value: process.env.COMMON_SHORT_URL_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlDomain\",\n value: process.env.COMMON_SHORT_URL_DOMAIN,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL Domain\",\n group: \"short-url-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlEnabled\",\n value: (process.env.COMMON_SHORT_URL_ENABLED ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL Enabled\",\n group: \"short-url-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n\n // whatsapp-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"whatsappProvider\",\n value: process.env.COMMON_WHATSAPP_PROVIDER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"WhatsApp Provider\",\n group: \"whatsapp-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappUrl\",\n value: process.env.COMMON_WHATSAPP_API_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 WhatsApp URL\",\n group: \"whatsapp-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappApiKey\",\n value: process.env.COMMON_WHATSAPP_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappIntegratedNumber\",\n value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 WhatsApp Integrated Number\",\n group: \"whatsapp-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappApiUrl\",\n value: process.env.COMMON_META_WHATSAPP_API_URL || \"https://graph.facebook.com\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp API URL\",\n group: \"whatsapp-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappApiVersion\",\n value: process.env.COMMON_META_WHATSAPP_API_VERSION || \"v23.0\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp API Version\",\n group: \"whatsapp-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappPhoneNumberId\",\n value: process.env.COMMON_META_WHATSAPP_PHONE_NUMBER_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp Phone Number ID\",\n group: \"whatsapp-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappBusinessAccountId\",\n value: process.env.COMMON_META_WHATSAPP_BUSINESS_ACCOUNT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp Business Account ID\",\n group: \"whatsapp-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappAccessToken\",\n value: process.env.COMMON_META_WHATSAPP_ACCESS_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappWebhookVerifyToken\",\n value: process.env.COMMON_META_WHATSAPP_WEBHOOK_VERIFY_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappAppSecret\",\n value: process.env.COMMON_META_WHATSAPP_APP_SECRET,\n level: SettingLevel.SystemEnv,\n },\n ] as const satisfies SettingDefinition[];\n\n// 2.\nexport type SolidCoreSetting = ReturnType<\n typeof getSolidCoreSettings\n>[number][\"key\"];\n\n// 3.\n@SettingsProvider()\n@Injectable()\nexport class SolidCoreDefaultSettingsProvider implements ISettingsProvider {\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":";;;;;;;;;AAAA,2CAA4C;AAC5C,wGAA8E;AAC9E,8FAA8E;AAC9E,iDAIwB;AAEX,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAC3C,QAAA,8BAA8B,GAAG,qBAAqB,CAAC;AAGpE,MAAM,oBAAoB,GAAG,CAAC,MAAe,EAAE,EAAE,CAC/C;IACE;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,oCAAoC;QAC3C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,0BAA0B;QAC/B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,qCAAqC;QAC5C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yCAAyC;QAC9C,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,sDAAsD;QAC7D,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACnC;KACF;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;SACnD;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uCAAuC;QAC9C,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;QAChD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QAC3C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QAC9C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,2BAA2B;QAChC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gCAAgC;QACrC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mCAAmC;QAC1C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iCAAiC;QACtC,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,wCAAwC;QAC/C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,8BAA8B;QACnC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;YACpB,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC3C;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC3C;aACF;YACD,SAAS,EAAE,EAAE;SACd,CAAC;QACF,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,kEAAkE;QACpE,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,oCAAoC;KACrD;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACrC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK;QACvC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACjC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QAC9B,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,qBAAqB;QAC5D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY;QAC9C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC3B,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,sBAAsB;QAC3B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACpC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACxC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,2BAA2B;QAChC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;QACxD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,gCAAwB;QAClE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,sCAA8B;QACzE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,MAAM;QACjD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SAC7B;KACF;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACpC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACpC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACrC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACpC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,kBAAkB;QAC9D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAC1D,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,qBAAqB,EAAE;SACjE;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,0BAA0B;QAC/B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;QACrD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,KAAK,MAAM;QACpE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;QAC9C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAAC;QACxD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;QAC7C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;QAC7C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACrE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACpC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACzC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;QAC5C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACxC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC7B,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,mBAAmB;QAChE,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;QAC7C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B;QACjD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;QAChD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;QAChD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B;QAC/C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;QACnD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAClD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAClD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;QAChD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;QACpD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,QAAQ;QAC5D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;QACnD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;QACnD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;KACxC;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,sCAAsC;QAC3C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,8CAA8C;QACjE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,4CAA4C;QACnD,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,0CAA0C;QAC/C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kDAAkD;QACrE,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,sCAAsC;QAC3C,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,QAAQ;QACxE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,4CAA4C;QACnD,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yCAAyC;QAC9C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD;QACpE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+CAA+C;QACtD,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yCAAyC;QAC9C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD;QACpE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+CAA+C;QACtD,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,KAAK,MAAM;QACzE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,MAAM;QACzE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,sCAAsC;QAC3C,KAAK,EAAE,CACL,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,OAAO,CACpE,CAAC,IAAI,EAAE;QACR,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,OAAO;QACnE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;SAC7C;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,MAAM,CAAC,KAAK,MAAM;QACvE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,4BAA4B;QACjC,KAAK,EACH,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,MAAM,CAAC,KAAK,MAAM;QACtE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,oCAAoC;QAC3C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,6BAA6B;QAClC,KAAK,EACH,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,OAAO,CAAC,KAAK,MAAM;QACzE,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC;QACnD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,4BAA4B;QACjC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,MAAM,CAAC,KAAK,MAAM;QAC3E,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,YAAY;QAC/D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,MAAM,CAAC,KAAK,MAAM;QAC9E,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,2BAA2B;QAChC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,EAAE;QAC1D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uCAAuC;QAC5C,KAAK,EAAE,QAAQ,CACb,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,IAAI,CAClE;QACD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,QAAQ;QAC/C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QAChC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACtC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uCAAuC;QAC5C,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,OAAO;QACvE,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC;QACjE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iCAAiC;QACtC,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,sCAAsC;QAC7C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,6BAA6B;QAClC,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,cAAc;YAC1B,0DAA0D;QAC5D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yCAAyC;QAC9C,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,4BAA4B;YACxC,qGAAqG;QACvG,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,6CAA6C;QAClD,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,wBAAwB;YACpC,qGAAqG;QACvG,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,iCAAiC;QACxC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,0BAA0B;QAC/B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI;QACrD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;QAC5C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,MAAM;YAC1D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK;QACX,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mCAAmC;QAC1C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,0BAA0B;QAC/B,KAAK,EACH,CACE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO,CACxD,CAAC,WAAW,EAAE,KAAK,MAAM;QAC5B,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EACH,CACE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CACtD,CAAC,WAAW,EAAE,KAAK,MAAM;QAC5B,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,sBAAsB;QAC3B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAClD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC;QAC5D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mCAAmC;QAC1C,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACjC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACzC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,QAAQ,CACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EACnE,EAAE,CACH;QACD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,QAAQ,EAAE,EAAE,CAAC;QACtE,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,UAAU;QACtD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;SACzC;KACF;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACtC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO;QAC/C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACtC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;QACnD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,UAAU;KACxB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC,KAAK,MAAM;QAClE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC3C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;QAC5C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC3C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACvC,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC3C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC3C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAC1C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,KAAK,MAAM;QACnE,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,SAAS;KACvB;IAGD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;QAC3C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAC1C,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAC1C,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;QACpD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,4BAA4B;QAC/E,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO;QAC9D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,2BAA2B;QAChC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC;QACvD,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC;QAC3D,KAAK,EAAE,yBAAY,CAAC,mBAAmB;QACvC,KAAK,EAAE,mCAAmC;QAC1C,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,WAAW;KACzB;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;QACpD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,gCAAgC;QACrC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC;QAC5D,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;IACD;QACE,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAClD,KAAK,EAAE,yBAAY,CAAC,SAAS;KAC9B;CACqC,CAAC;AAUpC,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAC3C,WAAW;QACT,MAAM,MAAM,GAAI,OAAO,CAAC,GAAG,CAAC,GAAmB,KAAK,8CAAW,CAAC,UAAU,CAAC;QAC3E,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AALY,4EAAgC;2CAAhC,gCAAgC;IAF5C,IAAA,8CAAgB,GAAE;IAClB,IAAA,mBAAU,GAAE;GACA,gCAAgC,CAK5C","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { Environment } from \"src/decorators/disallow-in-production.decorator\";\nimport { SettingsProvider } from \"src/decorators/settings-provider.decorator\";\nimport {\n ISettingsProvider,\n SettingDefinition,\n SettingLevel,\n} 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 [\n {\n moduleName: \"solid-core\",\n key: \"iamGoogleOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Google\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamFacebookOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Facebook\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamMicrosoftOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Microsoft\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamMicrosoftActiveDirectoryOAuthEnabled\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Allow Login / Signup With Microsoft Active Directory\",\n group: \"authentication-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authPagesLayout\",\n value: \"center\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Screen Layout\",\n group: \"authentication-settings\",\n sortOrder: 80,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Left\", value: \"left\" },\n { label: \"Center\", value: \"center\" },\n { label: \"Right\", value: \"right\" },\n ],\n },\n // Removed authPagesTheme as we are going to use the local storage based theme switching in the frontend instead of server side theme switching.\n // { moduleName: \"solid-core\", key: \"authPagesTheme\", value: \"light\", level: SettingLevel.SystemAdminEditable },\n {\n moduleName: \"solid-core\",\n key: \"appLogo\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"App Logo\",\n group: \"app-settings\",\n sortOrder: 10,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"companylogo\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Company Logo\",\n group: \"app-settings\",\n sortOrder: 20,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"favicon\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Favicon\",\n group: \"app-settings\",\n sortOrder: 30,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appLogoPosition\",\n value: \"in_form_view\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Logo Position\",\n group: \"app-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"In Form View\", value: \"in_form_view\" },\n { label: \"In Image View\", value: \"in_image_view\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"rowClickAction\",\n value: \"edit\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Row Click Action\",\n group: \"app-settings\",\n sortOrder: 45,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Edit\", value: \"edit\" },\n { label: \"View\", value: \"view\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"showAuthContent\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Details On Authentication Screen\",\n group: \"app-settings\",\n sortOrder: 50,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appTitle\",\n value: process.env.SOLID_APP_NAME || \"Solid App\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Title\",\n group: \"app-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appSubtitle\",\n value: process.env.SOLID_APP_SUBTITLE || \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"App Subtitle\",\n group: \"app-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appDescription\",\n value: process.env.SOLID_APP_DESCRIPTION || \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Description\",\n group: \"app-settings\",\n sortOrder: 80,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"showLegalLinks\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Legal Links\",\n group: \"app-settings\",\n sortOrder: 90,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appTnc\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Terms And Conditions Link\",\n group: \"app-settings\",\n sortOrder: 100,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appPrivacyPolicy\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Privacy Policy Link\",\n group: \"app-settings\",\n sortOrder: 110,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enableDarkMode\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Dark Mode\",\n group: \"app-settings\",\n sortOrder: 120,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"copyright\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Copyright\",\n group: \"app-settings\",\n sortOrder: 130,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enableUsername\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Username\",\n group: \"misc-settings\",\n sortOrder: 10,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"enabledNotification\",\n value: true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Enable Notification\",\n group: \"misc-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportEmail\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Email\",\n group: \"misc-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportDisplayName\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Display Name\",\n group: \"misc-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"contactSupportIcon\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Contact Support Icon\",\n group: \"misc-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenRightBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Right Banner Image\",\n group: \"authentication-settings\",\n sortOrder: 90,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenLeftBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Left Banner Image\",\n group: \"authentication-settings\",\n sortOrder: 100,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authScreenCenterBackgroundImage\",\n value: null,\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Center Background Image\",\n group: \"authentication-settings\",\n sortOrder: 110,\n controlType: \"mediaSingle\",\n },\n {\n moduleName: \"solid-core\",\n key: \"solidXGenAiCodeBuilderConfig\",\n value: JSON.stringify({\n models: {\n default: {\n providerId: \"\",\n model: \"\",\n behavior: { streaming: false, custom: \"\" },\n },\n fast: {\n providerId: \"\",\n model: \"\",\n behavior: { streaming: false, custom: \"\" },\n },\n },\n providers: {},\n }),\n level: SettingLevel.SystemAdminEditable,\n encrypted: true,\n label: \"AI Code Builder Configuration\",\n description:\n \"Structured configuration for AI providers and model assignments.\",\n group: \"ai-settings\",\n sortOrder: 10,\n controlType: \"custom\",\n settingsWidget: \"solidXGenAiCodeBuilderConfigWidget\",\n },\n {\n moduleName: \"solid-core\",\n key: \"appEncryptionKey\",\n value: process.env.APP_ENCRYPTION_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpEnabled\",\n value: process.env.MCP_ENABLED || false,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MCP Enabled\",\n group: \"ai-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpServerUrl\",\n value: process.env.MCP_SERVER_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MCP Server URL\",\n group: \"ai-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpApiKey\",\n value: process.env.MCP_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"dateTimeFormat\",\n value: process.env.DATE_TIME_FORMAT || \"YYYY-MM-DD HH:mm:ss\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Date Time Format\",\n group: \"system-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"dateFormat\",\n value: process.env.DATE_FORMAT || \"YYYY-MM-DD\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Date Format\",\n group: \"system-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"baseUrl\",\n value: process.env.BASE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Base URL\",\n group: \"system-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n }, \n {\n moduleName: \"solid-core\",\n key: \"frontendAdminBaseUrl\",\n value: process.env.FRONTEND_BASE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Admin Base URL\",\n group: \"system-settings\",\n sortOrder: 35,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"solidAppWebsiteUrl\",\n value: process.env.SOLID_APP_WEBSITE_URL,\n level: SettingLevel.SystemAdminEditable,\n label: \"Solid App Website URL\",\n group: \"system-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n\n // app-builder-settings-provider.service.ts, app-builder.config.ts\n {\n moduleName: \"solid-core\",\n key: \"moduleMetadataSeederFiles\",\n value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? \"\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Module Metadata Seeder Files\",\n group: \"storage-settings\",\n sortOrder: 10,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"uploadDir\",\n value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Upload Directory\",\n group: \"storage-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"fileStorageDir\",\n value:\n process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR,\n level: SettingLevel.SystemAdminReadonly,\n label: \"File Storage Directory\",\n group: \"storage-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"defaultFileService\",\n value: process.env.DEFAULT_FILE_SERVICE ?? \"disk\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Default File Service\",\n group: \"storage-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Disk\", value: \"disk\" },\n { label: \"S3\", value: \"s3\" },\n ],\n },\n\n // aws-s3-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_ACCESS_KEY\",\n value: process.env.S3_AWS_ACCESS_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_SECRET_KEY\",\n value: process.env.S3_AWS_SECRET_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_AWS_REGION_NAME\",\n value: process.env.S3_AWS_REGION_NAME,\n level: SettingLevel.SystemAdminReadonly,\n label: \"AWS Region Name\",\n group: \"storage-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"S3_DEFAULT_BUCKET\",\n value: process.env.S3_DEFAULT_BUCKET,\n level: SettingLevel.SystemAdminReadonly,\n label: \"S3 Default Bucket\",\n group: \"storage-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n\n // email-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"emailProvider\",\n value: process.env.COMMON_EMAIL_PROVIDER ?? \"SMTPEMailService\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Email Provider\",\n group: \"email-settings\",\n sortOrder: 10,\n controlType: \"selectionStatic\",\n options: [\n { label: \"SMTP Email Service\", value: \"SMTPEMailService\" },\n { label: \"Elastic Email Service\", value: \"ElasticEmailService\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"emailTemplateSeederFiles\",\n value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Email Template Seeder Files\",\n group: \"email-settings\",\n sortOrder: 20,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"shouldQueueEmails\",\n value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queue Emails\",\n group: \"email-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailHost\",\n value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Host\",\n group: \"email-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailPort\",\n value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587),\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Port\",\n group: \"email-settings\",\n sortOrder: 50,\n controlType: \"numeric\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailUsername\",\n value: process.env.COMMON_SMTP_EMAIL_USERNAME,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail Username\",\n group: \"email-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailPassword\",\n value: process.env.COMMON_SMTP_EMAIL_PASSWORD,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"smtpMailFrom\",\n value:\n process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMTP Mail From\",\n group: \"email-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"apiMailKey\",\n value: process.env.COMMON_API_EMAIL_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"apiMailFrom\",\n value: process.env.COMMON_EMAIL_FROM,\n level: SettingLevel.SystemAdminReadonly,\n label: \"API Mail From\",\n group: \"email-settings\",\n sortOrder: 80,\n controlType: \"shortText\",\n },\n\n // genai-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"ragServerUrl\",\n value: process.env.GENAI_RAG_SERVER_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"RAG Server URL\",\n group: \"ai-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"ragServerLogin\",\n value: process.env.GENAI_RAG_SERVER_LOGIN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"ragServerPassword\",\n value: process.env.GENAI_RAG_SERVER_PASSWORD,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpPythonExecutable\",\n value: process.env.MCP_PYTHON_EXECUTABLE,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpClient\",\n value: process.env.MCP_CLIENT,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"mcpRestartTouchFile\",\n value: process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\",\n level: SettingLevel.SystemEnv,\n },\n\n // google-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"clientID\",\n value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Client ID\",\n group: \"oauth-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"clientSecret\",\n value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"callbackURL\",\n value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Callback URL\",\n group: \"oauth-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"redirectURL\",\n value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Google OAuth Redirect URL\",\n group: \"oauth-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n\n // facebook-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CLIENT_ID\",\n value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CLIENT_SECRET\",\n value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_CALLBACK_URL\",\n value: process.env.IAM_FACEBOOK_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"FACEBOOK_REDIRECT_URL\",\n value: process.env.IAM_FACEBOOK_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n\n // microsoft-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CLIENT_ID\",\n value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CLIENT_SECRET\",\n value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_TENANT_ID\",\n value: process.env.IAM_MICROSOFT_OAUTH_TENANT_ID || \"common\",\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_CALLBACK_URL\",\n value: process.env.IAM_MICROSOFT_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_REDIRECT_URL\",\n value: process.env.IAM_MICROSOFT_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n },\n\n // microsoft-active-directory-oauth-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_ID\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Client ID\",\n group: \"oauth-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_SECRET\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID\",\n value:\n process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT_ID || \"common\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Tenant ID\",\n group: \"oauth-settings\",\n sortOrder: 80,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_CALLBACK_URL\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CALLBACK_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Callback URL\",\n group: \"oauth-settings\",\n sortOrder: 90,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"MICROSOFT_ACTIVE_DIRECTORY_REDIRECT_URL\",\n value: process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_REDIRECT_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Microsoft Active Directory OAuth Redirect URL\",\n group: \"oauth-settings\",\n sortOrder: 100,\n controlType: \"shortText\",\n },\n\n // iam-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"passwordLessAuth\",\n value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Less Authentication\",\n group: \"authentication-settings\",\n sortOrder: 20,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordBasedAuth\",\n value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Based Authentication\",\n group: \"authentication-settings\",\n sortOrder: 10,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordlessRegistrationValidateWhat\",\n value: (\n process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? \"email\"\n ).trim(),\n level: SettingLevel.SystemAdminEditable,\n label: \"Registration Validation Type\",\n group: \"authentication-settings\",\n sortOrder: 30,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Email\", value: \"email\" },\n { label: \"Mobile\", value: \"mobile\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordlessLoginValidateWhat\",\n value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? \"email\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Login Validation Type\",\n group: \"authentication-settings\",\n sortOrder: 40,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Email\", value: \"email\" },\n { label: \"Mobile\", value: \"mobile\" },\n { label: \"Selectable\", value: \"selectable\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"allowPublicRegistration\",\n value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Public Registration\",\n group: \"authentication-settings\",\n sortOrder: 60,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"activateUserOnRegistration\",\n value:\n (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Auto Activate User On Registration\",\n group: \"authentication-settings\",\n sortOrder: 70,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"autoLoginUserOnRegistration\",\n value:\n (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? \"false\") === \"true\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"otpExpiry\",\n value: parseInt(process.env.IAM_OTP_EXPIRY ?? \"10\"),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappFallbackEnabled\",\n value: (process.env.IAM_OTP_WHATSAPP_FALLBACK_ENABLED ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Fallback Enabled\",\n group: \"authentication-settings\",\n sortOrder: 85,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappTemplateId\",\n value: process.env.IAM_OTP_WHATSAPP_TEMPLATE_ID ?? \"common_otp\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Template ID\",\n group: \"authentication-settings\",\n sortOrder: 86,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpWhatsappIndependentEnabled\",\n value: (process.env.IAM_OTP_WHATSAPP_INDEPENDENT_ENABLED ?? \"true\") === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP WhatsApp Independent Enabled\",\n group: \"authentication-settings\",\n sortOrder: 87,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"otpDefaultCountryDialCode\",\n value: process.env.IAM_OTP_DEFAULT_COUNTRY_DIAL_CODE ?? \"\",\n level: SettingLevel.SystemAdminEditable,\n label: \"OTP Default Country Dial Code\",\n group: \"authentication-settings\",\n sortOrder: 88,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"forgotPasswordVerificationTokenExpiry\",\n value: parseInt(\n process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? \"10\",\n ),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"defaultRole\",\n value: process.env.IAM_DEFAULT_ROLE ?? \"Public\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Default Role\",\n group: \"authentication-settings\",\n sortOrder: 75,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"dummyOtp\",\n value: process.env.IAM_OTP_DUMMY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"dummyOtpUsers\",\n value: process.env.IAM_OTP_DUMMY_USERS,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"forgotPasswordSendVerificationTokenOn\",\n value:\n process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? \"email\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"maxFailedLoginAttempts\",\n value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? \"0\"),\n level: SettingLevel.SystemAdminReadonly,\n label: \"Max Failed Login Attempts\",\n group: \"authentication-settings\",\n sortOrder: 110,\n controlType: \"numeric\",\n },\n {\n moduleName: \"solid-core\",\n key: \"forceChangePasswordOnFirstLogin\",\n value: false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Force Change Password On First Login\",\n group: \"authentication-settings\",\n sortOrder: 120,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordRegex\",\n value:\n process.env.PASSWORD_REGEX ||\n \"^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[^\\\\da-zA-Z]).*$\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Authentication Password Regex\",\n group: \"authentication-settings\",\n sortOrder: 130,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordRegexErrorMessage\",\n value:\n process.env.PASSWORD_REGEX_ERROR_MESSAGE ||\n \"Password must contain at least one uppercase, one lowercase, one number, and one special character.\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Regex Error Message\",\n group: \"authentication-settings\",\n sortOrder: 140,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"authenticationPasswordComplexityDescription\",\n value:\n process.env.PASSWORD_COMPLEXITY_DESC ||\n \"Password must contain at least one uppercase, one lowercase, one number, and one special character.\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Password Complexity Description\",\n group: \"authentication-settings\",\n sortOrder: 150,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"iamAutoGeneratedPassword\",\n value: process.env.IAM_AUTOGENERATED_PASSWORD || true,\n level: SettingLevel.SystemAdminEditable,\n label: \"Auto Generate Password\",\n group: \"authentication-settings\",\n sortOrder: 160,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"passwordPepper\",\n value: process.env.IAM_PASSWORD_PEPPER || \"\",\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"showNameFieldsForRegistration\",\n value:\n process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === \"true\"\n ? true\n : false,\n level: SettingLevel.SystemAdminEditable,\n label: \"Show Name Fields For Registration\",\n group: \"authentication-settings\",\n sortOrder: 170,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"sendWelcomeEmailOnSignup\",\n value:\n (\n process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? \"false\"\n ).toLowerCase() === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Send Welcome Email On Signup\",\n group: \"authentication-settings\",\n sortOrder: 180,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"sendWelcomeSmsOnSignup\",\n value:\n (\n process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? \"false\"\n ).toLowerCase() === \"true\",\n level: SettingLevel.SystemAdminEditable,\n label: \"Send Welcome SMS On Signup\",\n group: \"authentication-settings\",\n sortOrder: 190,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"frontendLoginPageUrl\",\n value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Login Page URL\",\n group: \"authentication-settings\",\n sortOrder: 180,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"frontendForgotPasswordPageUrl\",\n value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Frontend Forgot Password Page URL\",\n group: \"authentication-settings\",\n sortOrder: 190,\n controlType: \"shortText\",\n },\n\n // jwt-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"secret\",\n value: process.env.IAM_JWT_SECRET,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"audience\",\n value: process.env.IAM_JWT_TOKEN_AUDIENCE,\n level: SettingLevel.SystemAdminReadonly,\n label: \"JWT Audience\",\n group: \"jwt-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"issuer\",\n value: process.env.IAM_JWT_TOKEN_ISSUER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"JWT Issuer\",\n group: \"jwt-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"accessTokenTtl\",\n value: parseInt(\n process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? \"1200\" : \"86400\"),\n 10,\n ),\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"refreshTokenTtl\",\n value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? \"604800\", 10),\n level: SettingLevel.SystemEnv,\n },\n\n // queues-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"queuesDefaultBroker\",\n value: process.env.QUEUES_DEFAULT_BROKER || \"database\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queues Default Broker\",\n group: \"queue-settings\",\n sortOrder: 10,\n controlType: \"selectionStatic\",\n options: [\n { label: \"Database\", value: \"database\" },\n { label: \"RabbitMQ\", value: \"rabbitmq\" },\n ],\n },\n {\n moduleName: \"solid-core\",\n key: \"queuesServiceRole\",\n value: process.env.QUEUES_SERVICE_ROLE,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queues Service Role\",\n group: \"queue-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"queuesRabbitMqUrl\",\n value: process.env.QUEUES_RABBIT_MQ_URL,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"solidCliRunning\",\n value: process.env.SOLID_CLI_RUNNING || \"false\",\n level: SettingLevel.SystemEnv,\n },\n\n // sms-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"smsProvider\",\n value: process.env.COMMON_SMS_PROVIDER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMS Provider\",\n group: \"sms-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"smsTemplateSeederFiles\",\n value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES,\n level: SettingLevel.SystemAdminReadonly,\n label: \"SMS Template Seeder Files\",\n group: \"sms-settings\",\n sortOrder: 20,\n controlType: \"longText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"shouldQueueSms\",\n value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Queue SMS\",\n group: \"sms-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91SmsUrl\",\n value: process.env.COMMON_MSG91_SMS_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 SMS URL\",\n group: \"sms-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91SmsApiKey\",\n value: process.env.COMMON_MSG91_SMS_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioAccountSid\",\n value: process.env.COMMON_TWILIO_ACCOUNT_SID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Twilio Account SID\",\n group: \"sms-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioAuthToken\",\n value: process.env.COMMON_TWILIO_AUTH_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"twilioNumber\",\n value: process.env.COMMON_TWILIO_NUMBER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Twilio Number\",\n group: \"sms-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n\n // tiny-url-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlApiUrl\",\n value: process.env.COMMON_SHORT_URL_API_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL API URL\",\n group: \"short-url-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlApiKey\",\n value: process.env.COMMON_SHORT_URL_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlDomain\",\n value: process.env.COMMON_SHORT_URL_DOMAIN,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL Domain\",\n group: \"short-url-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"tinyUrlEnabled\",\n value: (process.env.COMMON_SHORT_URL_ENABLED ?? \"false\") === \"true\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Tiny URL Enabled\",\n group: \"short-url-settings\",\n sortOrder: 30,\n controlType: \"boolean\",\n },\n\n // whatsapp-settings-provider.service.ts\n {\n moduleName: \"solid-core\",\n key: \"whatsappProvider\",\n value: process.env.COMMON_WHATSAPP_PROVIDER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"WhatsApp Provider\",\n group: \"whatsapp-settings\",\n sortOrder: 10,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappUrl\",\n value: process.env.COMMON_WHATSAPP_API_URL,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 WhatsApp URL\",\n group: \"whatsapp-settings\",\n sortOrder: 20,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappApiKey\",\n value: process.env.COMMON_WHATSAPP_API_KEY,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"msg91WhatsappIntegratedNumber\",\n value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER,\n level: SettingLevel.SystemAdminReadonly,\n label: \"MSG91 WhatsApp Integrated Number\",\n group: \"whatsapp-settings\",\n sortOrder: 30,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappApiUrl\",\n value: process.env.COMMON_META_WHATSAPP_API_URL || \"https://graph.facebook.com\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp API URL\",\n group: \"whatsapp-settings\",\n sortOrder: 40,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappApiVersion\",\n value: process.env.COMMON_META_WHATSAPP_API_VERSION || \"v23.0\",\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp API Version\",\n group: \"whatsapp-settings\",\n sortOrder: 50,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappPhoneNumberId\",\n value: process.env.COMMON_META_WHATSAPP_PHONE_NUMBER_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp Phone Number ID\",\n group: \"whatsapp-settings\",\n sortOrder: 60,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappBusinessAccountId\",\n value: process.env.COMMON_META_WHATSAPP_BUSINESS_ACCOUNT_ID,\n level: SettingLevel.SystemAdminReadonly,\n label: \"Meta WhatsApp Business Account ID\",\n group: \"whatsapp-settings\",\n sortOrder: 70,\n controlType: \"shortText\",\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappAccessToken\",\n value: process.env.COMMON_META_WHATSAPP_ACCESS_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappWebhookVerifyToken\",\n value: process.env.COMMON_META_WHATSAPP_WEBHOOK_VERIFY_TOKEN,\n level: SettingLevel.SystemEnv,\n },\n {\n moduleName: \"solid-core\",\n key: \"metaWhatsappAppSecret\",\n value: process.env.COMMON_META_WHATSAPP_APP_SECRET,\n level: SettingLevel.SystemEnv,\n },\n ] as const satisfies SettingDefinition[];\n\n// 2.\nexport type SolidCoreSetting = ReturnType<\n typeof getSolidCoreSettings\n>[number][\"key\"];\n\n// 3.\n@SettingsProvider()\n@Injectable()\nexport class SolidCoreDefaultSettingsProvider implements ISettingsProvider {\n getSettings() {\n const isProd = (process.env.ENV as Environment) === Environment.Production;\n return getSolidCoreSettings(isProd);\n }\n}\n"]}
@@ -27,7 +27,6 @@ export declare class AuditSubscriber implements EntitySubscriberInterface {
27
27
  afterTransactionRollback(event: {
28
28
  queryRunner: any;
29
29
  }): void;
30
- private shouldDeferAuditPublish;
31
30
  private publishAuditBatch;
32
31
  }
33
32
  //# sourceMappingURL=audit.subscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/audit.subscriber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAkB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGjF,qBACa,eAAgB,YAAW,yBAAyB;IAIzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAN/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,UAAU,CAAa;gBAEV,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EACrD,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB,EAC5C,0BAA0B,EAAE,0BAA0B;IAG3E,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAMvC,OAAO,CAAC,MAAM,CAA2C;IAEzD,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAId,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAYnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YAgC3B,oCAAoC;IA8C5C,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAanC,sBAAsB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;IAcxD,wBAAwB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;IAKpD,OAAO,CAAC,uBAAuB;YAMjB,iBAAiB;CAmBlC"}
1
+ {"version":3,"file":"audit.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/audit.subscriber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAkB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGjF,qBACa,eAAgB,YAAW,yBAAyB;IAIzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAN/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,UAAU,CAAa;gBAEV,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EACrD,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB,EAC5C,0BAA0B,EAAE,0BAA0B;IAG3E,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAMvC,OAAO,CAAC,MAAM,CAA2C;IAEzD,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAId,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAYnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YAgC3B,oCAAoC;IAiD5C,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAanC,sBAAsB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;IAcxD,wBAAwB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;YAKtC,iBAAiB;CAmBlC"}
@@ -15,6 +15,7 @@ const common_1 = require("@nestjs/common");
15
15
  const model_metadata_helper_service_1 = require("../helpers/model-metadata-helper.service");
16
16
  const string_helper_1 = require("../helpers/string.helper");
17
17
  const solid_registry_1 = require("../helpers/solid-registry");
18
+ const environment_helper_1 = require("../helpers/environment.helper");
18
19
  const request_context_service_1 = require("../services/request-context.service");
19
20
  const publisher_factory_service_1 = require("../services/queues/publisher-factory.service");
20
21
  const AUDIT_BEFORE_SNAPSHOT = '__auditBeforeSnapshot';
@@ -79,7 +80,8 @@ let AuditSubscriber = AuditSubscriber_1 = class AuditSubscriber {
79
80
  });
80
81
  }
81
82
  async prepareManyToManyAuditUpdateSnapshot(event, entityId, updatedColumnNames) {
82
- const auditRelationFields = (await this.modelMetadataHelperService.loadFieldHierarchy((0, string_helper_1.lowerFirst)(event.metadata.name))).filter(field => field.enableAuditTracking &&
83
+ const mgr = (0, environment_helper_1.isEmbeddedDb)() ? event.manager : this.dataSource;
84
+ const auditRelationFields = (await this.modelMetadataHelperService.loadFieldHierarchy((0, string_helper_1.lowerFirst)(event.metadata.name), (0, environment_helper_1.isEmbeddedDb)() ? event.manager : undefined)).filter(field => field.enableAuditTracking &&
83
85
  field.type === 'relation' &&
84
86
  field.relationType !== 'one-to-many');
85
87
  if (!entityId || auditRelationFields.length === 0) {
@@ -90,7 +92,7 @@ let AuditSubscriber = AuditSubscriber_1 = class AuditSubscriber {
90
92
  relations[field.name] = true;
91
93
  });
92
94
  const relationBefore = event.entity?.[AUDIT_BEFORE_SNAPSHOT] ?? null;
93
- const relationAfter = await event.manager.getRepository(event.metadata.target).findOne({
95
+ const relationAfter = await mgr.getRepository(event.metadata.target).findOne({
94
96
  where: { id: entityId },
95
97
  relations: relations,
96
98
  });
@@ -130,7 +132,7 @@ let AuditSubscriber = AuditSubscriber_1 = class AuditSubscriber {
130
132
  this.perTxn.delete(event.queryRunner);
131
133
  if (batch.length === 0)
132
134
  return;
133
- if (this.shouldDeferAuditPublish()) {
135
+ if ((0, environment_helper_1.isEmbeddedDb)()) {
134
136
  setImmediate(() => void this.publishAuditBatch(batch));
135
137
  return;
136
138
  }
@@ -139,11 +141,6 @@ let AuditSubscriber = AuditSubscriber_1 = class AuditSubscriber {
139
141
  afterTransactionRollback(event) {
140
142
  this.perTxn.delete(event.queryRunner);
141
143
  }
142
- shouldDeferAuditPublish() {
143
- const driver = (process.env.DEFAULT_DATABASE_DRIVER ?? '').toLowerCase();
144
- const poolMax = Number(process.env.DEFAULT_DATABASE_POOL_MAX ?? 20);
145
- return driver === 'pglite' && Number.isFinite(poolMax) && poolMax <= 1;
146
- }
147
144
  async publishAuditBatch(batch) {
148
145
  try {
149
146
  const results = await Promise.allSettled(batch.map(payload => this.publisherFactory.publish({ payload }, 'ChatterQueuePublisher')));
@@ -1 +1 @@
1
- {"version":3,"file":"audit.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/audit.subscriber.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger, Scope } from '@nestjs/common';\nimport { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';\nimport { lowerFirst } from 'src/helpers/string.helper';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { DataSource, EntityMetadata, EntitySubscriberInterface, InsertEvent, RemoveEvent, UpdateEvent } from 'typeorm';\nimport { AuditQueuePayload } from 'src/interfaces';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport { PublisherFactory } from 'src/services/queues/publisher-factory.service';\nconst AUDIT_BEFORE_SNAPSHOT = '__auditBeforeSnapshot';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class AuditSubscriber implements EntitySubscriberInterface {\n private readonly logger = new Logger(AuditSubscriber.name);\n private dataSource: DataSource;\n constructor(\n private readonly publisherFactory: PublisherFactory<AuditQueuePayload>,\n private readonly solidRegistry: SolidRegistry,\n private readonly requestContextService: RequestContextService,\n private readonly modelMetadataHelperService: ModelMetadataHelperService,\n ) { }\n\n bindToDataSource(dataSource: DataSource) {\n this.dataSource = dataSource;\n this.dataSource.subscribers.push(this);\n }\n\n // Per-transaction buffer (auto-GC when queryRunner is gone)\n private perTxn = new WeakMap<any, AuditQueuePayload[]>();\n\n private enqueue(event: { queryRunner: any }, payload: AuditQueuePayload) {\n const qr = event.queryRunner;\n const arr = this.perTxn.get(qr) ?? [];\n arr.push(payload);\n this.perTxn.set(qr, arr);\n }\n\n private shouldTrackAudit(metadata: EntityMetadata): boolean {\n return this.solidRegistry.isAuditableModel(lowerFirst(metadata.name));\n }\n\n private activeUserId(): number | null {\n return this.requestContextService.getActiveUser()?.sub ?? null;\n }\n\n async afterInsert(event: InsertEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n this.enqueue(event, {\n eventType: 'insert',\n modelName: event.metadata.name,\n entityId: event.entity?.id ?? null,\n occurredAt: new Date().toISOString(),\n after: event.entity ?? null,\n userId: this.activeUserId(),\n });\n }\n\n async afterUpdate(event: UpdateEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n const entityId = event.entity?.id ?? event.databaseEntity?.id ?? (event as any).entityId ?? null;\n let before = event.databaseEntity ?? null;\n let after = event.entity ?? null;\n const updatedColumnNames = (event.updatedColumns ?? []).map(c => c.propertyName);\n\n const auditResult = await this.prepareManyToManyAuditUpdateSnapshot(event, entityId, updatedColumnNames);\n\n if (auditResult) {\n before = auditResult.before;\n after = auditResult.after;\n }\n\n this.enqueue(event, {\n eventType: 'update',\n modelName: event.metadata.name,\n entityId: entityId,\n occurredAt: new Date().toISOString(),\n after: after,\n // databaseEntity is only populated when the entity was fetched first (save() path).\n // QueryBuilder update() leaves this undefined; postAuditMessageOnUpdate guards for it.\n before: before,\n updatedColumnNames: updatedColumnNames,\n userId: this.activeUserId(),\n });\n }\n\n /**\n * Resolves before/after snapshots for audit-enabled many-to-many relations\n * and updates changed relation field names for audit tracking.\n */\n private async prepareManyToManyAuditUpdateSnapshot(event: UpdateEvent<any>, entityId: number | null, updatedColumnNames: string[]): Promise<{ before: any; after: any } | null> {\n\n const auditRelationFields = (await this.modelMetadataHelperService.loadFieldHierarchy(lowerFirst(event.metadata.name))).filter(field =>\n field.enableAuditTracking &&\n field.type === 'relation' &&\n field.relationType !== 'one-to-many'\n );\n\n if (!entityId || auditRelationFields.length === 0) {\n return null;\n }\n\n const relations: Record<string, boolean> = {};\n\n auditRelationFields.forEach(field => {\n relations[field.name] = true;\n });\n\n const relationBefore = event.entity?.[AUDIT_BEFORE_SNAPSHOT] ?? null;\n\n const relationAfter = await event.manager.getRepository(event.metadata.target as any).findOne({\n where: { id: entityId } as any,\n relations: relations as any,\n });\n\n if (relationBefore && relationAfter) {\n auditRelationFields.forEach(field => {\n const oldIds = Array.isArray(relationBefore[field.name])\n ? relationBefore[field.name].map(item => item.id).sort()\n : [];\n\n const newIds = Array.isArray(relationAfter[field.name])\n ? relationAfter[field.name].map(item => item.id).sort()\n : [];\n\n if ((oldIds.length !== newIds.length || JSON.stringify(oldIds) !== JSON.stringify(newIds))\n && !updatedColumnNames.includes(field.name)) {\n updatedColumnNames.push(field.name);\n }\n });\n }\n return {\n before: relationBefore ?? event.databaseEntity ?? null,\n after: relationAfter ?? event.entity ?? null,\n };\n }\n async afterRemove(event: RemoveEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n this.enqueue(event, {\n eventType: 'delete',\n modelName: event.metadata.name,\n entityId: event.databaseEntity?.id ?? null,\n occurredAt: new Date().toISOString(),\n before: event.databaseEntity,\n userId: this.activeUserId(),\n });\n }\n\n // --------- transaction lifecycle ----------\n async afterTransactionCommit(event: { queryRunner: any }) {\n const batch = this.perTxn.get(event.queryRunner) ?? [];\n this.perTxn.delete(event.queryRunner);\n\n if (batch.length === 0) return;\n\n if (this.shouldDeferAuditPublish()) {\n setImmediate(() => void this.publishAuditBatch(batch));\n return;\n }\n\n await this.publishAuditBatch(batch);\n }\n\n afterTransactionRollback(event: { queryRunner: any }) {\n // Drop buffered payloads; the write never happened.\n this.perTxn.delete(event.queryRunner);\n }\n\n private shouldDeferAuditPublish(): boolean {\n const driver = (process.env.DEFAULT_DATABASE_DRIVER ?? '').toLowerCase();\n const poolMax = Number(process.env.DEFAULT_DATABASE_POOL_MAX ?? 20);\n return driver === 'pglite' && Number.isFinite(poolMax) && poolMax <= 1;\n }\n\n private async publishAuditBatch(batch: AuditQueuePayload[]) {\n try {\n // allSettled: publish in parallel; a single failure does not block the rest.\n const results = await Promise.allSettled(\n batch.map(payload => this.publisherFactory.publish({ payload }, 'ChatterQueuePublisher'))\n );\n\n results.forEach((result, i) => {\n if (result.status === 'rejected') {\n this.logger.error(\n `Failed to publish audit event for ${batch[i].modelName}#${batch[i].entityId}`,\n result.reason,\n );\n }\n });\n } catch (error) {\n this.logger.error('Failed to publish audit batch', error);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"audit.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/audit.subscriber.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger, Scope } from '@nestjs/common';\nimport { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';\nimport { lowerFirst } from 'src/helpers/string.helper';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { DataSource, EntityMetadata, EntitySubscriberInterface, InsertEvent, RemoveEvent, UpdateEvent } from 'typeorm';\nimport { AuditQueuePayload } from 'src/interfaces';\nimport { isEmbeddedDb } from 'src/helpers/environment.helper';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport { PublisherFactory } from 'src/services/queues/publisher-factory.service';\nconst AUDIT_BEFORE_SNAPSHOT = '__auditBeforeSnapshot';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class AuditSubscriber implements EntitySubscriberInterface {\n private readonly logger = new Logger(AuditSubscriber.name);\n private dataSource: DataSource;\n constructor(\n private readonly publisherFactory: PublisherFactory<AuditQueuePayload>,\n private readonly solidRegistry: SolidRegistry,\n private readonly requestContextService: RequestContextService,\n private readonly modelMetadataHelperService: ModelMetadataHelperService,\n ) { }\n\n bindToDataSource(dataSource: DataSource) {\n this.dataSource = dataSource;\n this.dataSource.subscribers.push(this);\n }\n\n // Per-transaction buffer (auto-GC when queryRunner is gone)\n private perTxn = new WeakMap<any, AuditQueuePayload[]>();\n\n private enqueue(event: { queryRunner: any }, payload: AuditQueuePayload) {\n const qr = event.queryRunner;\n const arr = this.perTxn.get(qr) ?? [];\n arr.push(payload);\n this.perTxn.set(qr, arr);\n }\n\n private shouldTrackAudit(metadata: EntityMetadata): boolean {\n return this.solidRegistry.isAuditableModel(lowerFirst(metadata.name));\n }\n\n private activeUserId(): number | null {\n return this.requestContextService.getActiveUser()?.sub ?? null;\n }\n\n async afterInsert(event: InsertEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n this.enqueue(event, {\n eventType: 'insert',\n modelName: event.metadata.name,\n entityId: event.entity?.id ?? null,\n occurredAt: new Date().toISOString(),\n after: event.entity ?? null,\n userId: this.activeUserId(),\n });\n }\n\n async afterUpdate(event: UpdateEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n const entityId = event.entity?.id ?? event.databaseEntity?.id ?? (event as any).entityId ?? null;\n let before = event.databaseEntity ?? null;\n let after = event.entity ?? null;\n const updatedColumnNames = (event.updatedColumns ?? []).map(c => c.propertyName);\n\n const auditResult = await this.prepareManyToManyAuditUpdateSnapshot(event, entityId, updatedColumnNames);\n\n if (auditResult) {\n before = auditResult.before;\n after = auditResult.after;\n }\n\n this.enqueue(event, {\n eventType: 'update',\n modelName: event.metadata.name,\n entityId: entityId,\n occurredAt: new Date().toISOString(),\n after: after,\n // databaseEntity is only populated when the entity was fetched first (save() path).\n // QueryBuilder update() leaves this undefined; postAuditMessageOnUpdate guards for it.\n before: before,\n updatedColumnNames: updatedColumnNames,\n userId: this.activeUserId(),\n });\n }\n\n /**\n * Resolves before/after snapshots for audit-enabled many-to-many relations\n * and updates changed relation field names for audit tracking.\n */\n private async prepareManyToManyAuditUpdateSnapshot(event: UpdateEvent<any>, entityId: number | null, updatedColumnNames: string[]): Promise<{ before: any; after: any } | null> {\n\n // On embedded PGlite, pass the transaction's manager so the query runs\n // on the active connection. On regular Postgres, use the default DataSource.\n const mgr = isEmbeddedDb() ? event.manager : this.dataSource;\n const auditRelationFields = (await this.modelMetadataHelperService.loadFieldHierarchy(lowerFirst(event.metadata.name), isEmbeddedDb() ? event.manager : undefined)).filter(field =>\n field.enableAuditTracking &&\n field.type === 'relation' &&\n field.relationType !== 'one-to-many'\n );\n\n if (!entityId || auditRelationFields.length === 0) {\n return null;\n }\n\n const relations: Record<string, boolean> = {};\n\n auditRelationFields.forEach(field => {\n relations[field.name] = true;\n });\n\n const relationBefore = event.entity?.[AUDIT_BEFORE_SNAPSHOT] ?? null;\n\n const relationAfter = await mgr.getRepository(event.metadata.target as any).findOne({\n where: { id: entityId } as any,\n relations: relations as any,\n });\n\n if (relationBefore && relationAfter) {\n auditRelationFields.forEach(field => {\n const oldIds = Array.isArray(relationBefore[field.name])\n ? relationBefore[field.name].map(item => item.id).sort()\n : [];\n\n const newIds = Array.isArray(relationAfter[field.name])\n ? relationAfter[field.name].map(item => item.id).sort()\n : [];\n\n if ((oldIds.length !== newIds.length || JSON.stringify(oldIds) !== JSON.stringify(newIds))\n && !updatedColumnNames.includes(field.name)) {\n updatedColumnNames.push(field.name);\n }\n });\n }\n return {\n before: relationBefore ?? event.databaseEntity ?? null,\n after: relationAfter ?? event.entity ?? null,\n };\n }\n async afterRemove(event: RemoveEvent<any>) {\n if (!this.shouldTrackAudit(event.metadata)) return;\n this.enqueue(event, {\n eventType: 'delete',\n modelName: event.metadata.name,\n entityId: event.databaseEntity?.id ?? null,\n occurredAt: new Date().toISOString(),\n before: event.databaseEntity,\n userId: this.activeUserId(),\n });\n }\n\n // --------- transaction lifecycle ----------\n async afterTransactionCommit(event: { queryRunner: any }) {\n const batch = this.perTxn.get(event.queryRunner) ?? [];\n this.perTxn.delete(event.queryRunner);\n\n if (batch.length === 0) return;\n\n if (isEmbeddedDb()) {\n setImmediate(() => void this.publishAuditBatch(batch));\n return;\n }\n\n await this.publishAuditBatch(batch);\n }\n\n afterTransactionRollback(event: { queryRunner: any }) {\n // Drop buffered payloads; the write never happened.\n this.perTxn.delete(event.queryRunner);\n }\n\n private async publishAuditBatch(batch: AuditQueuePayload[]) {\n try {\n // allSettled: publish in parallel; a single failure does not block the rest.\n const results = await Promise.allSettled(\n batch.map(payload => this.publisherFactory.publish({ payload }, 'ChatterQueuePublisher'))\n );\n\n results.forEach((result, i) => {\n if (result.status === 'rejected') {\n this.logger.error(\n `Failed to publish audit event for ${batch[i].modelName}#${batch[i].entityId}`,\n result.reason,\n );\n }\n });\n } catch (error) {\n this.logger.error('Failed to publish audit batch', error);\n }\n }\n}\n"]}
@@ -9,6 +9,7 @@ export declare class ComputedEntityFieldSubscriber implements EntitySubscriberIn
9
9
  private readonly publisherFactory;
10
10
  private readonly logger;
11
11
  private dataSource;
12
+ private perTxn;
12
13
  constructor(solidRegistry: SolidRegistry, publisherFactory: PublisherFactory<ComputedFieldEvaluationPayload>);
13
14
  bindToDataSource(dataSource: DataSource): void;
14
15
  beforeInsert(event: InsertEvent<any>): Promise<any>;
@@ -16,8 +17,15 @@ export declare class ComputedEntityFieldSubscriber implements EntitySubscriberIn
16
17
  afterInsert(event: InsertEvent<any>): void;
17
18
  afterUpdate(event: UpdateEvent<any>): void;
18
19
  afterRemove(event: RemoveEvent<any>): void;
20
+ private handlePostEventJobs;
21
+ afterTransactionCommit(event: {
22
+ queryRunner: any;
23
+ }): Promise<void>;
24
+ afterTransactionRollback(event: {
25
+ queryRunner: any;
26
+ }): void;
27
+ private flushBatch;
19
28
  private handleComputedFieldEvaluation;
20
- private handleComputedFieldEvaluationJob;
21
29
  private getComputedFieldsForEvaluation;
22
30
  private evaluateComputedField;
23
31
  private shouldSkipPreComputeOnInsert;
@@ -1 +1 @@
1
- {"version":3,"file":"computed-entity-field.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/computed-entity-field.subscriber.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGvG,MAAM,WAAW,8BAA+B,SAAQ,qBAAqB;IACzE,cAAc,EAAE,GAAG,CAAC;CACvB;AAED,qBAEa,6BAA8B,YAAW,yBAAyB;IAMvE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAPrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,UAAU,CAAa;gBAIV,aAAa,EAAE,aAAa,EAE5B,gBAAgB,EAAE,gBAAgB,CAAC,8BAA8B,CAAC;IAMvF,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAKjC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAMnD,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAOzD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAMnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAOnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YAQrB,6BAA6B;IAe3C,OAAO,CAAC,gCAAgC;IAiBxC,OAAO,CAAC,8BAA8B;YASxB,qBAAqB;IAWnC,OAAO,CAAC,4BAA4B;YAetB,eAAe;IAY7B,OAAO,CAAC,iCAAiC;IAazC,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB;CA2B/B"}
1
+ {"version":3,"file":"computed-entity-field.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/computed-entity-field.subscriber.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGvG,MAAM,WAAW,8BAA+B,SAAQ,qBAAqB;IACzE,cAAc,EAAE,GAAG,CAAC;CACvB;AAED,qBACa,6BAA8B,YAAW,yBAAyB;IAYvE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAbrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,UAAU,CAAa;IAO/B,OAAO,CAAC,MAAM,CAA4F;gBAGrF,aAAa,EAAE,aAAa,EAE5B,gBAAgB,EAAE,gBAAgB,CAAC,8BAA8B,CAAC;IAIvF,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAKjC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAMnD,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAMzD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAMnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAMnC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAkBnC,OAAO,CAAC,mBAAmB;IAqCrB,sBAAsB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;IAUxD,wBAAwB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,GAAG,CAAA;KAAE;YAItC,UAAU;YAMV,6BAA6B;IAgB3C,OAAO,CAAC,8BAA8B;YASxB,qBAAqB;IAWnC,OAAO,CAAC,4BAA4B;YAetB,eAAe;IAY7B,OAAO,CAAC,iCAAiC;IAUzC,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB;CA8B/B"}