@solidstarters/solid-core 1.2.179 → 1.2.183

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 (166) hide show
  1. package/dev-grooming-docs/ozzy-prompts.txt +28 -3
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +2 -1
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/controllers/service.controller.d.ts +8 -1
  6. package/dist/controllers/service.controller.d.ts.map +1 -1
  7. package/dist/controllers/service.controller.js +38 -2
  8. package/dist/controllers/service.controller.js.map +1 -1
  9. package/dist/decorators/active-user.decorator.d.ts +1 -1
  10. package/dist/dtos/create-menu-item-metadata.dto.d.ts +3 -0
  11. package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
  12. package/dist/dtos/create-menu-item-metadata.dto.js +4 -1
  13. package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
  14. package/dist/dtos/create-role-metadata.dto.d.ts +4 -0
  15. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  16. package/dist/dtos/create-role-metadata.dto.js +45 -1
  17. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  18. package/dist/helpers/date.helper.d.ts +2 -0
  19. package/dist/helpers/date.helper.d.ts.map +1 -0
  20. package/dist/helpers/date.helper.js +18 -0
  21. package/dist/helpers/date.helper.js.map +1 -0
  22. package/dist/interfaces.d.ts +20 -0
  23. package/dist/interfaces.d.ts.map +1 -1
  24. package/dist/interfaces.js.map +1 -1
  25. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +7 -1
  26. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  27. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +82 -17
  28. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  29. package/dist/repository/view-metadata.repository.d.ts +1 -0
  30. package/dist/repository/view-metadata.repository.d.ts.map +1 -1
  31. package/dist/repository/view-metadata.repository.js +14 -0
  32. package/dist/repository/view-metadata.repository.js.map +1 -1
  33. package/dist/seeders/module-metadata-seeder.service.d.ts +52 -42
  34. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  35. package/dist/seeders/module-metadata-seeder.service.js +259 -202
  36. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  37. package/dist/seeders/permission-metadata-seeder.service.js +0 -1
  38. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  39. package/dist/seeders/seed-data/solid-core-metadata.json +2 -3
  40. package/dist/services/ai-interaction.service.d.ts +3 -3
  41. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  42. package/dist/services/ai-interaction.service.js +16 -9
  43. package/dist/services/ai-interaction.service.js.map +1 -1
  44. package/dist/services/excel.service.js +2 -2
  45. package/dist/services/excel.service.js.map +1 -1
  46. package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
  47. package/dist/services/genai/ingest-metadata.service.js +46 -35
  48. package/dist/services/genai/ingest-metadata.service.js.map +1 -1
  49. package/dist/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts → genai/mcp-handlers/mcp-handler-factory.service.d.ts} +3 -3
  50. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +1 -0
  51. package/dist/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js → genai/mcp-handlers/mcp-handler-factory.service.js} +10 -10
  52. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +1 -0
  53. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +12 -0
  54. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +1 -0
  55. package/dist/services/{mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js} +19 -20
  56. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +1 -0
  57. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +16 -0
  58. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +1 -0
  59. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +75 -0
  60. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +1 -0
  61. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts} +9 -9
  62. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +1 -0
  63. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js} +13 -13
  64. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +1 -0
  65. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +12 -0
  66. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +1 -0
  67. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js} +8 -8
  68. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +1 -0
  69. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts} +4 -4
  70. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +1 -0
  71. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js} +8 -8
  72. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +1 -0
  73. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +12 -0
  74. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +1 -0
  75. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js} +8 -8
  76. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +1 -0
  77. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +14 -0
  78. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +1 -0
  79. package/dist/services/{mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js} +15 -17
  80. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +1 -0
  81. package/dist/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts} +4 -4
  82. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +1 -0
  83. package/dist/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-module-mcp-handler.service.js} +13 -10
  84. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +1 -0
  85. package/dist/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts} +3 -3
  86. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +1 -0
  87. package/dist/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-update-layout-mcp-handler.service.js} +12 -10
  88. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +1 -0
  89. package/dist/services/import-transaction.service.d.ts.map +1 -1
  90. package/dist/services/import-transaction.service.js +6 -3
  91. package/dist/services/import-transaction.service.js.map +1 -1
  92. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  93. package/dist/services/menu-item-metadata.service.js +0 -2
  94. package/dist/services/menu-item-metadata.service.js.map +1 -1
  95. package/dist/services/model-metadata.service.d.ts.map +1 -1
  96. package/dist/services/model-metadata.service.js.map +1 -1
  97. package/dist/services/module-metadata.service.d.ts.map +1 -1
  98. package/dist/services/module-metadata.service.js +1 -1
  99. package/dist/services/module-metadata.service.js.map +1 -1
  100. package/dist/services/role-metadata.service.d.ts.map +1 -1
  101. package/dist/services/role-metadata.service.js +1 -7
  102. package/dist/services/role-metadata.service.js.map +1 -1
  103. package/dist/services/solid-ts-morph.service.d.ts +28 -0
  104. package/dist/services/solid-ts-morph.service.d.ts.map +1 -0
  105. package/dist/services/solid-ts-morph.service.js +222 -0
  106. package/dist/services/solid-ts-morph.service.js.map +1 -0
  107. package/dist/solid-core.module.d.ts.map +1 -1
  108. package/dist/solid-core.module.js +22 -18
  109. package/dist/solid-core.module.js.map +1 -1
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +7 -4
  112. package/solid_seed_fixes.ts.txt +93 -0
  113. package/src/config/iam.config.ts +2 -1
  114. package/src/controllers/service.controller.ts +43 -2
  115. package/src/dtos/create-menu-item-metadata.dto.ts +5 -1
  116. package/src/dtos/create-role-metadata.dto.ts +60 -1
  117. package/src/helpers/date.helper.ts +13 -0
  118. package/src/interfaces.ts +29 -2
  119. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +86 -16
  120. package/src/repository/view-metadata.repository.ts +15 -0
  121. package/src/seeders/module-metadata-seeder.service.ts +355 -282
  122. package/src/seeders/permission-metadata-seeder.service.ts +1 -1
  123. package/src/seeders/seed-data/solid-core-metadata.json +3 -5
  124. package/src/services/ai-interaction.service.ts +17 -13
  125. package/src/services/excel.service.ts +2 -2
  126. package/src/services/genai/ingest-metadata.service.ts +115 -39
  127. package/src/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts → genai/mcp-handlers/mcp-handler-factory.service.ts} +5 -5
  128. package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +68 -0
  129. package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +71 -0
  130. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts} +8 -8
  131. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts} +3 -3
  132. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts} +3 -3
  133. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts} +3 -3
  134. package/src/services/{mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts} +9 -10
  135. package/src/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-module-mcp-handler.service.ts} +8 -5
  136. package/src/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts} +11 -5
  137. package/src/services/import-transaction.service.ts +12 -4
  138. package/src/services/menu-item-metadata.service.ts +3 -7
  139. package/src/services/model-metadata.service.ts +0 -3
  140. package/src/services/module-metadata.service.ts +2 -3
  141. package/src/services/role-metadata.service.ts +22 -8
  142. package/src/services/solid-ts-morph.service.ts +263 -0
  143. package/src/solid-core.module.ts +25 -19
  144. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +0 -1
  145. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +0 -1
  146. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts +0 -16
  147. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts.map +0 -1
  148. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.js.map +0 -1
  149. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.d.ts.map +0 -1
  150. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.js.map +0 -1
  151. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts +0 -12
  152. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts.map +0 -1
  153. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.js.map +0 -1
  154. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts.map +0 -1
  155. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js.map +0 -1
  156. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts +0 -12
  157. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts.map +0 -1
  158. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.js.map +0 -1
  159. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts +0 -16
  160. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts.map +0 -1
  161. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.js.map +0 -1
  162. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +0 -1
  163. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +0 -1
  164. package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.d.ts.map +0 -1
  165. package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.js.map +0 -1
  166. package/src/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.ts +0 -56
@@ -53,37 +53,39 @@ exports.ModuleMetadataSeederService = void 0;
53
53
  const common_1 = require("@nestjs/common");
54
54
  const fs = __importStar(require("fs"));
55
55
  const path = __importStar(require("path"));
56
- const app_builder_config_1 = __importDefault(require("../config/app-builder.config"));
57
- const module_metadata_service_1 = require("../services/module-metadata.service");
58
- const model_metadata_service_1 = require("../services/model-metadata.service");
59
- const media_storage_provider_metadata_service_1 = require("../services/media-storage-provider-metadata.service");
60
- const field_metadata_service_1 = require("../services/field-metadata.service");
61
- const user_service_1 = require("../services/user.service");
56
+ const typeorm_1 = require("@nestjs/typeorm");
57
+ const common_config_1 = __importDefault(require("../config/common.config"));
58
+ const iam_config_1 = require("../config/iam.config");
59
+ const setting_entity_1 = require("../entities/setting.entity");
60
+ const dashboard_repository_1 = require("../repository/dashboard.repository");
61
+ const security_rule_repository_1 = require("../repository/security-rule.repository");
62
62
  const authentication_service_1 = require("../services/authentication.service");
63
- const media_storage_provider_metadata_seeder_service_1 = require("../services/media-storage-provider-metadata-seeder.service");
64
63
  const email_template_service_1 = require("../services/email-template.service");
64
+ const list_of_values_service_1 = require("../services/list-of-values.service");
65
+ const setting_service_1 = require("../services/setting.service");
65
66
  const sms_template_service_1 = require("../services/sms-template.service");
66
- const view_metadata_service_1 = require("../services/view-metadata.service");
67
- const action_metadata_service_1 = require("../services/action-metadata.service");
68
- const menu_item_metadata_service_1 = require("../services/menu-item-metadata.service");
69
- const typeorm_1 = require("@nestjs/typeorm");
70
- const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
67
+ const user_service_1 = require("../services/user.service");
71
68
  const typeorm_2 = require("typeorm");
69
+ const app_builder_config_1 = __importDefault(require("../config/app-builder.config"));
70
+ const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
71
+ const module_helper_1 = require("../helpers/module.helper");
72
72
  const solid_registry_1 = require("../helpers/solid-registry");
73
+ const action_metadata_service_1 = require("../services/action-metadata.service");
74
+ const field_metadata_service_1 = require("../services/field-metadata.service");
75
+ const media_storage_provider_metadata_seeder_service_1 = require("../services/media-storage-provider-metadata-seeder.service");
76
+ const media_storage_provider_metadata_service_1 = require("../services/media-storage-provider-metadata.service");
77
+ const menu_item_metadata_service_1 = require("../services/menu-item-metadata.service");
78
+ const model_metadata_service_1 = require("../services/model-metadata.service");
79
+ const module_metadata_service_1 = require("../services/module-metadata.service");
73
80
  const role_metadata_service_1 = require("../services/role-metadata.service");
74
- const module_helper_1 = require("../helpers/module.helper");
81
+ const view_metadata_service_1 = require("../services/view-metadata.service");
75
82
  const solid_core_metadata_json_1 = __importDefault(require("./seed-data/solid-core-metadata.json"));
76
- const iam_config_1 = require("../config/iam.config");
77
- const common_config_1 = __importDefault(require("../config/common.config"));
78
- const setting_service_1 = require("../services/setting.service");
79
- const setting_entity_1 = require("../entities/setting.entity");
80
- const security_rule_repository_1 = require("../repository/security-rule.repository");
81
- const list_of_values_service_1 = require("../services/list-of-values.service");
82
83
  const system_fields_seeder_service_1 = require("./system-fields-seeder.service");
83
- const dashboard_repository_1 = require("../repository/dashboard.repository");
84
+ const create_role_metadata_dto_1 = require("../dtos/create-role-metadata.dto");
84
85
  const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
86
+ const src_1 = require("..");
85
87
  let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMetadataSeederService {
86
- constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidMenuItemService, solidViewService, mediaStorageProviderSeederService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, appBuilderConfiguration, iamConfiguration, commonConfiguration, seetingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, dashboardRepo, scheduledJobRepository) {
88
+ constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidMenuItemService, solidViewService, mediaStorageProviderSeederService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, appBuilderConfiguration, iamConfiguration, commonConfiguration, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, dashboardRepo, scheduledJobRepository, dataSource) {
87
89
  this.moduleMetadataService = moduleMetadataService;
88
90
  this.modelMetadataService = modelMetadataService;
89
91
  this.fieldMetadataService = fieldMetadataService;
@@ -103,159 +105,171 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
103
105
  this.appBuilderConfiguration = appBuilderConfiguration;
104
106
  this.iamConfiguration = iamConfiguration;
105
107
  this.commonConfiguration = commonConfiguration;
106
- this.seetingService = seetingService;
108
+ this.settingService = settingService;
107
109
  this.settingsRepo = settingsRepo;
108
110
  this.securityRuleRepo = securityRuleRepo;
109
111
  this.systemFieldsSeederService = systemFieldsSeederService;
110
112
  this.dashboardRepo = dashboardRepo;
111
113
  this.scheduledJobRepository = scheduledJobRepository;
114
+ this.dataSource = dataSource;
112
115
  this.logger = new common_1.Logger(ModuleMetadataSeederService_1.name);
113
116
  }
114
117
  async seed() {
115
- const typedSolidCoreMetadata = structuredClone(solid_core_metadata_json_1.default);
116
- this.logger.log(`Seeding permissions`);
117
- await this.seedPermissions();
118
- this.logger.log(`Seeding media storage providers`);
119
- await this.mediaStorageProviderSeederService.seed();
120
- this.logger.log(`Seeding system fields metadata`);
121
- await this.systemFieldsSeederService.seed();
122
- const coreModules = (0, module_helper_1.getCoreModuleNames)();
123
- const seedDataFiles = [
124
- typedSolidCoreMetadata
125
- ];
126
- this.logger.debug(`getting dynamics modules`);
127
- const enabledModules = (0, module_helper_1.getDynamicModuleNames)();
128
- this.logger.log(`Seeding metadata`);
129
- for (let i = 0; i < enabledModules.length; i++) {
130
- const enabledModule = enabledModules[i];
131
- const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;
132
- const fullPath = path.join(process.cwd(), enabledModuleSeedFile);
133
- if (fs.existsSync(fullPath)) {
134
- const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8').toString());
135
- seedDataFiles.push(overallMetadata);
136
- }
137
- }
118
+ await this.seedGlobalMetadata();
119
+ const seedDataFiles = this.seedDataFiles;
138
120
  this.logger.debug(`Seed data files are: ${seedDataFiles}`);
139
- let usersDetail;
140
121
  for (let i = 0; i < seedDataFiles.length; i++) {
141
122
  const overallMetadata = seedDataFiles[i];
142
123
  const moduleMetadata = overallMetadata.moduleMetadata;
143
- this.logger.log(`[Start] Processing module metadata for ${moduleMetadata.name}`);
124
+ this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
125
+ this.logger.log(`Seeding Module / Model / Fields`);
144
126
  await this.seedModuleModelFields(moduleMetadata);
145
- this.logger.log(`[End] Processing module metadata for ${moduleMetadata.name}`);
146
- this.logger.log(`[Start] Processing Media Storage Provider for ${moduleMetadata.name}`);
147
- const mediaStorageProviders = overallMetadata.mediaStorageProviders;
148
- await this.seedMediaStorageProviders(mediaStorageProviders);
149
- this.logger.log(`[End] Processing Media Storage Provider for ${moduleMetadata.name}`);
150
- this.logger.log(`[End] Processing roles for ${moduleMetadata.name}`);
151
- const roles = overallMetadata.roles;
152
- await this.roleService.createRolesIfNotExists(roles.map(role => { return { name: role.name }; }));
153
- for (let roleI = 0; roleI < roles.length; roleI++) {
154
- const role = roles[roleI];
155
- if (role.permissions) {
156
- await this.roleService.addPermissionsToRole(role.name, role.permissions);
157
- }
158
- }
159
- this.logger.log(`[End] Processing roles for ${moduleMetadata.name}`);
160
- this.logger.log(`[Start] Processing users for ${moduleMetadata.name}`);
161
- const users = overallMetadata.users;
162
- usersDetail = users;
163
- await this.seedUsers(users);
164
- this.logger.log(`[End] Processing users for ${moduleMetadata.name}`);
165
- this.logger.log(`[Start] Processing views for ${moduleMetadata.name}`);
166
- const views = overallMetadata.views;
167
- await this.seedViews(views);
168
- this.logger.log(`[End] Processing views for ${moduleMetadata.name}`);
169
- this.logger.log(`[Start] Processing actions for ${moduleMetadata.name}`);
170
- const actions = overallMetadata.actions;
171
- await this.seedActions(actions);
172
- this.logger.log(`[End] Processing actions for ${moduleMetadata.name}`);
173
- this.logger.log(`[Start] Processing menus for ${moduleMetadata.name}`);
174
- const menus = overallMetadata.menus;
175
- await this.seedMenus(menus);
176
- this.logger.log(`[End] Processing menus for ${moduleMetadata.name}`);
177
- this.logger.log(`[Start] Processing email templates for ${moduleMetadata.name}`);
178
- const emailTemplates = overallMetadata.emailTemplates;
179
- await this.seedEmailTemplates(emailTemplates, moduleMetadata);
180
- this.logger.log(`[End] Processing email templates for ${moduleMetadata.name}`);
181
- this.logger.log(`[Start] Processing sms templates for ${moduleMetadata.name}`);
182
- const smsTemplates = overallMetadata.smsTemplates;
183
- await this.seedSmsTemplates(smsTemplates, moduleMetadata);
184
- this.logger.log(`[End] Processing sms templates for ${moduleMetadata.name}`);
185
- this.logger.log(`[Start] Processing settings for ${moduleMetadata.name}`);
186
- await this.seetingService.seedDefaultSettings();
187
- this.logger.log(`[End] Processing settings for ${moduleMetadata.name}`);
188
- this.logger.log(`[Start] Processing security rules for ${moduleMetadata.name}`);
189
- const securityRules = overallMetadata.securityRules;
190
- await this.seedSecurityRules(securityRules);
191
- this.logger.log(`[End] Processing security rules for ${moduleMetadata.name}`);
192
- this.logger.log(`[Start] Processing List Of Values for ${moduleMetadata.name}`);
193
- const listOfValues = overallMetadata.listOfValues;
194
- await this.seedListOfValues(listOfValues);
195
- this.logger.log(`[End] Processing List Of Values for ${moduleMetadata.name}`);
196
- this.logger.log(`[Start] Processing dashboards for ${moduleMetadata.name}`);
197
- const dashboards = overallMetadata.dashboards;
198
- await this.seedDashboards(dashboards);
199
- this.logger.log(`[End] Processing dashboards for ${moduleMetadata.name}`);
200
- this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);
201
- const scheduledJobs = overallMetadata.scheduledJobs;
202
- if (scheduledJobs?.length > 0) {
203
- await this.seedScheduledJobs(scheduledJobs);
204
- }
205
- this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);
127
+ this.logger.log(`Seeding Media Storage Providers`);
128
+ await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);
129
+ this.logger.log(`Seeding Roles`);
130
+ await this.seedRoles(overallMetadata);
131
+ this.logger.log(`Seeding Users`);
132
+ await this.seedUsers(overallMetadata);
133
+ this.logger.log(`Seeding Views`);
134
+ await this.seedViews(overallMetadata);
135
+ this.logger.log(`Seeding Actions`);
136
+ await this.seedActions(overallMetadata);
137
+ this.logger.log(`Seeding Menus`);
138
+ await this.seedMenus(overallMetadata);
139
+ this.logger.log(`Seeding Email Templates`);
140
+ await this.seedEmailTemplates(overallMetadata, moduleMetadata.name);
141
+ this.logger.log(`Seeding Sms Templates`);
142
+ await this.seedSmsTemplates(overallMetadata, moduleMetadata.name);
143
+ this.logger.log(`Seeding Default Settings`);
144
+ await this.seedDefaultSettings();
145
+ this.logger.log(`Seeding Security Rules`);
146
+ await this.seedSecurityRules(overallMetadata);
147
+ this.logger.log(`Seeding List Of Values`);
148
+ await this.seedListOfValues(moduleMetadata, overallMetadata);
149
+ this.logger.log(`Seeding Dashboards`);
150
+ await this.seedDashboards(moduleMetadata, overallMetadata);
151
+ this.logger.log(`Seeding Scheduled Jobs`);
152
+ await this.seedScheduledJobs(moduleMetadata, overallMetadata);
206
153
  this.logger.debug(`[End] module seed data: ${overallMetadata}`);
207
154
  }
208
- this.logger.log(`About to add all permissions to the Admin role`);
209
- await this.roleService.addAllPermissionsToRole("Admin");
210
- const internalRolePermission = [
211
- 'UserController.findMany',
212
- 'UserController.checkIfPermissionExists',
213
- 'UserController.findOne',
214
- 'MenuItemMetadataController.findMany',
215
- 'MenuItemMetadataController.findUserMenus',
216
- 'MenuItemMetadataController.findOne',
217
- 'ViewMetadataController.getLayout',
218
- 'ViewMetadataController.findMany',
219
- 'ViewMetadataController.findOne',
220
- 'AuthenticationController.changePassword',
221
- 'FieldMetadataController.getSelectionDynamicValues',
222
- 'FieldMetadataController.getSelectionDynamicValue',
223
- 'FieldMetadataController.findFieldDefaultMetaData',
224
- 'SavedFiltersController.delete',
225
- 'SavedFiltersController.deleteMany',
226
- 'SavedFiltersController.findOne',
227
- 'SavedFiltersController.findMany',
228
- 'SavedFiltersController.recover',
229
- 'SavedFiltersController.recoverMany',
230
- 'SavedFiltersController.partialUpdate',
231
- 'SavedFiltersController.update',
232
- 'SavedFiltersController.insertMany',
233
- 'SavedFiltersController.create',
234
- 'AuthenticationController.logout',
235
- 'ChatterMessageController.create',
236
- 'ChatterMessageController.getChatterMessages',
237
- 'ImportTransactionController.getImportTemplate',
238
- 'ImportTransactionController.getImportInstructions',
239
- 'ImportTransactionController.getImportMappingInfo',
240
- 'ImportTransactionController.startImportSync',
241
- 'ImportTransactionController.startImportAsync',
242
- 'ImportTransactionController.exportFailedImportedImports',
243
- 'ExportTemplateController.startExportSync',
244
- 'ExportTemplateController.startExportAsync',
245
- 'ListOfValuesController.findMany',
246
- 'ListOfValuesController.findOne',
247
- ];
248
- await this.roleService.addPermissionToRole('Internal User', internalRolePermission);
249
- await this.roleService.addPermissionToRole('Public', ['SettingController.wrapSettings', 'AuthenticationController.logout']);
155
+ await this.setupDefaultRolesWithPermissions();
250
156
  this.logger.log(`All Seeders finished`);
251
- this.logger.log(`Newly created username is: ${usersDetail?.length > 0 ? usersDetail[0]?.username : ''} and password is ${usersDetail?.length > 0 ? usersDetail[0]?.password : ''}`);
157
+ }
158
+ async seedScheduledJobs(moduleMetadata, overallMetadata) {
159
+ this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);
160
+ const scheduledJobs = overallMetadata.scheduledJobs;
161
+ if (scheduledJobs?.length > 0) {
162
+ await this.handleSeedScheduledJobs(scheduledJobs);
163
+ }
164
+ this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);
165
+ }
166
+ async seedDashboards(moduleMetadata, overallMetadata) {
167
+ this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);
168
+ const dashboards = overallMetadata.dashboards;
169
+ await this.handleSeedDashboards(dashboards);
170
+ this.logger.debug(`[End] Processing dashboards for ${moduleMetadata.name}`);
171
+ }
172
+ async seedListOfValues(moduleMetadata, overallMetadata) {
173
+ this.logger.debug(`[Start] Processing List Of Values for ${moduleMetadata.name}`);
174
+ const listOfValues = overallMetadata.listOfValues;
175
+ await this.handleSeedListOfValues(listOfValues);
176
+ this.logger.debug(`[End] Processing List Of Values for ${moduleMetadata.name}`);
177
+ }
178
+ async setupDefaultRolesWithPermissions() {
179
+ this.logger.debug(`About to add all permissions to the Admin role`);
180
+ await this.roleService.addAllPermissionsToRole(create_role_metadata_dto_1.ADMIN_ROLE_NAME);
181
+ this.logger.debug(`About to add all permissions to the Internal role`);
182
+ await this.roleService.addPermissionToRole(create_role_metadata_dto_1.INTERNAL_ROLE_NAME, create_role_metadata_dto_1.INTERNAL_ROLE_PERMISSIONS);
183
+ this.logger.debug(`About to add all permissions to the Public role`);
184
+ await this.roleService.addPermissionToRole(create_role_metadata_dto_1.PUBLIC_ROLE_NAME, ['SettingController.wrapSettings', 'AuthenticationController.logout']);
185
+ }
186
+ async seedSecurityRules(overallMetadata) {
187
+ this.logger.debug(`[Start] Processing security rules`);
188
+ const securityRules = overallMetadata.securityRules;
189
+ await this.handleSeedSecurityRules(securityRules);
190
+ this.logger.debug(`[End] Processing security rules`);
191
+ }
192
+ async seedDefaultSettings() {
193
+ this.logger.debug(`[Start] Processing settings`);
194
+ await this.settingService.seedDefaultSettings();
195
+ this.logger.debug(`[End] Processing settings`);
196
+ }
197
+ async seedSmsTemplates(overallMetadata, moduleName) {
198
+ this.logger.debug(`[Start] Processing sms templates`);
199
+ const smsTemplates = overallMetadata.smsTemplates;
200
+ await this.handleSeedSmsTemplates(smsTemplates, moduleName);
201
+ this.logger.debug(`[End] Processing sms templates`);
202
+ }
203
+ async seedEmailTemplates(overallMetadata, moduleName) {
204
+ this.logger.debug(`[Start] Processing email templates`);
205
+ const emailTemplates = overallMetadata.emailTemplates;
206
+ await this.handleSeedEmailTemplates(emailTemplates, moduleName);
207
+ this.logger.debug(`[End] Processing email templates`);
208
+ }
209
+ async seedMenus(overallMetadata) {
210
+ this.logger.debug(`[Start] Processing menus`);
211
+ const menus = overallMetadata.menus;
212
+ await this.handleSeedMenus(menus);
213
+ this.logger.debug(`[End] Processing menus`);
214
+ }
215
+ async seedActions(overallMetadata) {
216
+ this.logger.debug(`[Start] Processing actions`);
217
+ const actions = overallMetadata.actions;
218
+ await this.handleSeedActions(actions);
219
+ this.logger.debug(`[End] Processing actions`);
220
+ }
221
+ async seedViews(overallMetadata) {
222
+ this.logger.debug(`[Start] Processing views`);
223
+ const views = overallMetadata.views;
224
+ await this.handleSeedViews(views);
225
+ this.logger.debug(`[End] Processing views`);
226
+ }
227
+ async seedUsers(overallMetadata) {
228
+ this.logger.debug(`[Start] Processing users`);
229
+ const users = overallMetadata.users;
230
+ await this.handleSeedUsers(users);
231
+ this.logger.debug(`[End] Processing users`);
232
+ }
233
+ async seedRoles(overallMetadata) {
234
+ this.logger.debug(`[Start] Processing roles`);
235
+ await this.roleService.createRolesIfNotExists(overallMetadata.roles.map(role => { return { name: role.name }; }));
236
+ for (const role of overallMetadata.roles) {
237
+ if (role.permissions) {
238
+ await this.roleService.addPermissionsToRole(role.name, role.permissions);
239
+ }
240
+ }
241
+ this.logger.debug(`[End] Processing roles`);
242
+ }
243
+ get seedDataFiles() {
244
+ const typedSolidCoreMetadata = structuredClone(solid_core_metadata_json_1.default);
245
+ const seedDataFiles = [typedSolidCoreMetadata];
246
+ const enabledModules = (0, module_helper_1.getDynamicModuleNames)();
247
+ for (const enabledModule of enabledModules) {
248
+ const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;
249
+ const fullPath = path.join(process.cwd(), enabledModuleSeedFile);
250
+ if (fs.existsSync(fullPath)) {
251
+ const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
252
+ seedDataFiles.push(overallMetadata);
253
+ }
254
+ }
255
+ return seedDataFiles;
256
+ }
257
+ async seedGlobalMetadata() {
258
+ this.logger.log(`Seeding Permissions`);
259
+ await this.seedPermissions();
260
+ this.logger.log(`Seeding Default Media Storage Providers`);
261
+ await this.seedDefaultMediaStorageProviders();
262
+ this.logger.log(`Seeding System Fields Metadata`);
263
+ await this.seedDefaultSystemFields();
264
+ }
265
+ async seedDefaultSystemFields() {
266
+ await this.systemFieldsSeederService.seed();
252
267
  }
253
268
  async seedPermissions() {
254
269
  const controllers = this.solidRegistry.getControllers();
255
270
  for (let id = 0; id < controllers.length; id++) {
256
271
  try {
257
272
  const controller = controllers[id];
258
- this.logger.log(`Resolving controller: ${controller.name}`);
259
273
  const methods = controller.methods;
260
274
  for (let mId = 0; mId < methods.length; mId++) {
261
275
  const methodName = methods[mId];
@@ -265,10 +279,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
265
279
  name: permissionName
266
280
  }
267
281
  });
268
- if (existingPermission) {
269
- this.logger.log(`Permission ${permissionName} already exists.`);
270
- }
271
- else {
282
+ if (!existingPermission) {
272
283
  this.logger.log(`Permission ${permissionName} does not exist, creating new.`);
273
284
  const newPermission = this.permissionRepo.create({
274
285
  name: permissionName
@@ -282,32 +293,34 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
282
293
  }
283
294
  }
284
295
  }
296
+ async seedDefaultMediaStorageProviders() {
297
+ await this.mediaStorageProviderSeederService.seed();
298
+ }
285
299
  async seedMediaStorageProviders(mediaStorageProviders) {
300
+ this.logger.debug(`[Start] Processing Media Storage Provider`);
286
301
  for (let i = 0; i < mediaStorageProviders.length; i++) {
287
- const mediaStorageProivder = mediaStorageProviders[i];
288
- await this.mediaStorageProviderMetadataService.upsert(mediaStorageProivder);
302
+ const mediaStorageProvider = mediaStorageProviders[i];
303
+ await this.mediaStorageProviderMetadataService.upsert(mediaStorageProvider);
289
304
  }
305
+ this.logger.debug(`[End] Processing Media Storage Provider`);
290
306
  }
291
- async seedEmailTemplates(emailTemplates, moduleMetadata) {
307
+ async handleSeedEmailTemplates(emailTemplates, moduleName) {
292
308
  if (!emailTemplates) {
293
309
  return;
294
310
  }
295
311
  for (let i = 0; i < emailTemplates.length; i++) {
296
312
  const emailTemplate = emailTemplates[i];
297
- this.logger.log(`Found ${emailTemplate.name} email template`);
298
- if (moduleMetadata.name === 'solid-core') {
313
+ if (moduleName === 'solid-core') {
299
314
  const modulePath = path.dirname(require.resolve('@solidstarters/solid-core'));
300
315
  const seedDataPath = path.join(modulePath, '../src/seeders/seed-data/email-templates');
301
316
  const filePath = path.join(seedDataPath, emailTemplate.body);
302
- this.logger.log(`Seeding email template from solid-core at path: ${filePath}`);
303
317
  if (fs.existsSync(filePath)) {
304
318
  emailTemplate.body = fs.readFileSync(filePath, 'utf-8').toString();
305
319
  }
306
320
  }
307
321
  else {
308
- const emailTemplateHandlebar = `module-metadata/${moduleMetadata.name}/email-templates/${emailTemplate.body}`;
322
+ const emailTemplateHandlebar = `module-metadata/${moduleName}/email-templates/${emailTemplate.body}`;
309
323
  const fullPath = path.join(process.cwd(), emailTemplateHandlebar);
310
- this.logger.log(`Seeding custom email template from consuming model at path: ${fullPath}`);
311
324
  if (fs.existsSync(fullPath)) {
312
325
  emailTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();
313
326
  }
@@ -316,26 +329,23 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
316
329
  await this.emailTemplateService.create(emailTemplate);
317
330
  }
318
331
  }
319
- async seedSmsTemplates(smsTemplates, moduleMetadata) {
332
+ async handleSeedSmsTemplates(smsTemplates, moduleName) {
320
333
  if (!smsTemplates) {
321
334
  return;
322
335
  }
323
336
  for (let i = 0; i < smsTemplates.length; i++) {
324
337
  const smsTemplate = smsTemplates[i];
325
- this.logger.log(`Found ${smsTemplate.name} sms template`);
326
- if (moduleMetadata.name === 'solid-core') {
338
+ if (moduleName === 'solid-core') {
327
339
  const modulePath = path.dirname(require.resolve('@solidstarters/solid-core'));
328
340
  const seedDataPath = path.join(modulePath, '../src/seeders/seed-data/sms-templates');
329
341
  const filePath = path.join(seedDataPath, smsTemplate.body);
330
- this.logger.log(`Seeding sms template from solid-core at path: ${filePath}`);
331
342
  if (fs.existsSync(filePath)) {
332
343
  smsTemplate.body = fs.readFileSync(filePath, 'utf-8').toString();
333
344
  }
334
345
  }
335
346
  else {
336
- const emailTemplateHandlebar = `module-metadata/${moduleMetadata.name}/sms-templates/${smsTemplate.body}`;
347
+ const emailTemplateHandlebar = `module-metadata/${moduleName}/sms-templates/${smsTemplate.body}`;
337
348
  const fullPath = path.join(process.cwd(), emailTemplateHandlebar);
338
- this.logger.log(`Seeding custom sms template from consuming model at path: ${fullPath}`);
339
349
  if (fs.existsSync(fullPath)) {
340
350
  smsTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();
341
351
  }
@@ -344,38 +354,82 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
344
354
  await this.smsTemplateService.create(smsTemplate);
345
355
  }
346
356
  }
347
- async seedMenus(menus) {
357
+ async handleSeedMenus(menus) {
348
358
  if (!menus) {
349
359
  return;
350
360
  }
351
- for (let j = 0; j < menus.length; j++) {
352
- const menuData = menus[j];
353
- const adminRole = await this.roleService.findRoleByName('Admin');
354
- const specifiedRoles = menuData['roles'];
355
- const specifiedRoleObjects = [adminRole];
356
- if (specifiedRoles) {
357
- for (let i = 0; i < specifiedRoles.length; i++) {
358
- const specifiedRole = specifiedRoles[i];
359
- const specifiedRoleObject = await this.roleService.findRoleByName(specifiedRole);
360
- if (!specifiedRoleObject) {
361
- throw new Error(`Invalid role: (${specifiedRole}) specified against menu with display name ${menuData.displayName}.`);
362
- }
363
- specifiedRoleObjects.push(specifiedRoleObject);
361
+ await this.dataSource.transaction(async (trx) => {
362
+ const menuRepo = trx.getRepository(src_1.MenuItemMetadata);
363
+ const roleRepo = trx.getRepository(src_1.RoleMetadata);
364
+ const actionRepo = trx.getRepository(src_1.ActionMetadata);
365
+ const moduleRepo = trx.getRepository(src_1.ModuleMetadata);
366
+ for (const m of menus) {
367
+ const entity = menuRepo.create({
368
+ name: m.name,
369
+ displayName: m.displayName,
370
+ action: m.actionUserKey
371
+ ? await actionRepo.findOne({ where: { name: m.actionUserKey }, select: ["id"] })
372
+ : null,
373
+ module: m.moduleUserKey
374
+ ? await moduleRepo.findOne({ where: { name: m.moduleUserKey }, select: ["id"] })
375
+ : null,
376
+ parentMenuItem: m.parentMenuItemUserKey
377
+ ? await menuRepo.findOne({ where: { name: m.parentMenuItemUserKey }, select: ["id"] })
378
+ : null,
379
+ });
380
+ await menuRepo.upsert(entity, ["name"]);
381
+ }
382
+ const seeded = await menuRepo.find({
383
+ where: { name: (0, typeorm_2.In)(menus.map((m) => m.name)) },
384
+ select: ["id", "name"],
385
+ });
386
+ const idByName = new Map(seeded.map(s => [s.name, s.id]));
387
+ const admin = await roleRepo.findOne({ where: { name: create_role_metadata_dto_1.ADMIN_ROLE_NAME }, select: ["id", "name"] });
388
+ const allRoleNames = new Set();
389
+ for (const m of menus)
390
+ (m.roles ?? []).forEach((r) => allRoleNames.add(r));
391
+ if (admin)
392
+ allRoleNames.add(admin.name);
393
+ const roles = await roleRepo.find({
394
+ where: { name: (0, typeorm_2.In)([...allRoleNames]) },
395
+ select: ["id", "name"],
396
+ });
397
+ const roleByName = new Map(roles.map(r => [r.name, r]));
398
+ const joinRows = [];
399
+ for (const m of menus) {
400
+ const menuId = idByName.get(m.name);
401
+ const roleNames = new Set([...(m.roles ?? []), admin?.name].filter(Boolean));
402
+ for (const rn of roleNames) {
403
+ const role = roleByName.get(rn);
404
+ if (role)
405
+ joinRows.push({ menuId, roleId: role.id });
364
406
  }
365
407
  }
366
- menuData['roles'] = specifiedRoleObjects;
367
- menuData['action'] = await this.solidActionService.findOneByUserKey(menuData.actionUserKey);
368
- menuData['module'] = await this.moduleMetadataService.findOneByUserKey(menuData.moduleUserKey);
369
- if (menuData.parentMenuItemUserKey) {
370
- menuData['parentMenuItem'] = await this.solidMenuItemService.findOneByUserKey(menuData.parentMenuItemUserKey);
408
+ const menuIds = [...new Set(joinRows.map(r => r.menuId))];
409
+ if (menuIds.length) {
410
+ await trx
411
+ .createQueryBuilder()
412
+ .delete()
413
+ .from(src_1.MENU_ROLE_JOIN_TABLE_NAME)
414
+ .where(`${src_1.MENU_ROLE_JOIN_TABLE_NAME_MENU_COL} IN (:...ids)`, { ids: menuIds })
415
+ .execute();
371
416
  }
372
- else {
373
- menuData['parentMenuItem'] = null;
417
+ if (joinRows.length) {
418
+ const values = joinRows.map(r => ({
419
+ [src_1.MENU_ROLE_JOIN_TABLE_NAME_MENU_COL]: r.menuId,
420
+ [src_1.MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL]: r.roleId,
421
+ }));
422
+ await trx
423
+ .createQueryBuilder()
424
+ .insert()
425
+ .into(src_1.MENU_ROLE_JOIN_TABLE_NAME)
426
+ .values(values)
427
+ .orIgnore()
428
+ .execute();
374
429
  }
375
- await this.solidMenuItemService.upsert(menuData);
376
- }
430
+ });
377
431
  }
378
- async seedActions(actions) {
432
+ async handleSeedActions(actions) {
379
433
  if (!actions) {
380
434
  return;
381
435
  }
@@ -394,7 +448,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
394
448
  await this.solidActionService.upsert(actionData);
395
449
  }
396
450
  }
397
- async seedViews(views) {
451
+ async handleSeedViews(views) {
398
452
  if (!views) {
399
453
  return;
400
454
  }
@@ -406,7 +460,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
406
460
  await this.solidViewService.upsert(viewData);
407
461
  }
408
462
  }
409
- async seedUsers(users) {
463
+ async handleSeedUsers(users) {
410
464
  if (!users) {
411
465
  return;
412
466
  }
@@ -420,6 +474,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
420
474
  }
421
475
  }
422
476
  async seedModuleModelFields(moduleMetadata) {
477
+ this.logger.debug(`[Start] Processing module metadata`);
423
478
  const module = await this.moduleMetadataService.upsert(moduleMetadata);
424
479
  const modelsMetadata = moduleMetadata.models;
425
480
  for (let j = 0; j < modelsMetadata.length; j++) {
@@ -451,14 +506,15 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
451
506
  await this.modelMetadataService.upsert(modelMetaDataWithoutFields);
452
507
  }
453
508
  }
509
+ this.logger.debug(`[End] Processing module metadata`);
454
510
  }
455
511
  async seedSettings(createDto) {
456
512
  const settingsArray = await this.settingsRepo.find();
457
513
  if (!settingsArray || settingsArray.length === 0) {
458
- this.seetingService.create(createDto);
514
+ this.settingService.create(createDto);
459
515
  }
460
516
  }
461
- async seedSecurityRules(rulesDto) {
517
+ async handleSeedSecurityRules(rulesDto) {
462
518
  if (!rulesDto || rulesDto.length === 0) {
463
519
  this.logger.debug(`No security rules found to seed`);
464
520
  return;
@@ -467,7 +523,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
467
523
  await this.securityRuleRepo.upsertWithDto({ ...dto, securityRuleConfig: JSON.stringify(dto.securityRuleConfig) });
468
524
  }
469
525
  }
470
- async seedListOfValues(listOfValuesDto) {
526
+ async handleSeedListOfValues(listOfValuesDto) {
471
527
  if (!listOfValuesDto || listOfValuesDto.length === 0) {
472
528
  this.logger.debug(`No List Of Values found to seed`);
473
529
  return;
@@ -478,7 +534,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
478
534
  await this.listOfValuesService.upsert(listOfValuesDto[j]);
479
535
  }
480
536
  }
481
- async seedDashboards(dashboardDtos) {
537
+ async handleSeedDashboards(dashboardDtos) {
482
538
  if (!dashboardDtos || dashboardDtos.length === 0) {
483
539
  this.logger.debug(`No dashboards found to seed`);
484
540
  return;
@@ -487,7 +543,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
487
543
  await this.dashboardRepo.upsertWithDto(dto);
488
544
  }
489
545
  }
490
- async seedScheduledJobs(createScheduledJobDto) {
546
+ async handleSeedScheduledJobs(createScheduledJobDto) {
491
547
  if (!createScheduledJobDto || createScheduledJobDto.length === 0) {
492
548
  this.logger.debug(`No scheduled jobs found to seed`);
493
549
  return;
@@ -525,6 +581,7 @@ exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetada
525
581
  security_rule_repository_1.SecurityRuleRepository,
526
582
  system_fields_seeder_service_1.SystemFieldsSeederService,
527
583
  dashboard_repository_1.DashboardRepository,
528
- scheduled_job_repository_1.ScheduledJobRepository])
584
+ scheduled_job_repository_1.ScheduledJobRepository,
585
+ typeorm_2.DataSource])
529
586
  ], ModuleMetadataSeederService);
530
587
  //# sourceMappingURL=module-metadata-seeder.service.js.map