@solidxai/core 0.1.10-beta.25 → 0.1.10-beta.26

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 (225) hide show
  1. package/dist/controllers/action-metadata.controller.d.ts +1 -20
  2. package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
  3. package/dist/controllers/agent-event.controller.d.ts +1 -20
  4. package/dist/controllers/agent-event.controller.d.ts.map +1 -1
  5. package/dist/controllers/agent-session.controller.d.ts +1 -20
  6. package/dist/controllers/agent-session.controller.d.ts.map +1 -1
  7. package/dist/controllers/ai-interaction.controller.d.ts +1 -20
  8. package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
  9. package/dist/controllers/chatter-message-details.controller.d.ts +1 -20
  10. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
  11. package/dist/controllers/chatter-message.controller.d.ts +1 -20
  12. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  13. package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -20
  14. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -1
  15. package/dist/controllers/email-template.controller.d.ts +1 -20
  16. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  17. package/dist/controllers/export-template.controller.d.ts +1 -20
  18. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  19. package/dist/controllers/export-transaction.controller.d.ts +1 -20
  20. package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
  21. package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -20
  22. package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
  23. package/dist/controllers/import-transaction.controller.d.ts +1 -20
  24. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  25. package/dist/controllers/list-of-values.controller.d.ts +1 -20
  26. package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
  27. package/dist/controllers/locale.controller.d.ts +1 -20
  28. package/dist/controllers/locale.controller.d.ts.map +1 -1
  29. package/dist/controllers/mcp-audit-log.controller.d.ts +1 -20
  30. package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -1
  31. package/dist/controllers/media.controller.d.ts +1 -20
  32. package/dist/controllers/media.controller.d.ts.map +1 -1
  33. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -20
  34. package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
  35. package/dist/controllers/model-metadata.controller.d.ts +10 -30
  36. package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
  37. package/dist/controllers/model-metadata.controller.js +2 -2
  38. package/dist/controllers/model-sequence.controller.d.ts +1 -20
  39. package/dist/controllers/model-sequence.controller.d.ts.map +1 -1
  40. package/dist/controllers/module-metadata-explorer.controller.d.ts +171 -0
  41. package/dist/controllers/module-metadata-explorer.controller.d.ts.map +1 -0
  42. package/dist/controllers/module-metadata-explorer.controller.js +143 -0
  43. package/dist/controllers/module-metadata-explorer.controller.js.map +1 -0
  44. package/dist/controllers/module-metadata.controller.d.ts +5 -0
  45. package/dist/controllers/module-metadata.controller.d.ts.map +1 -1
  46. package/dist/controllers/module-metadata.controller.js +12 -0
  47. package/dist/controllers/module-metadata.controller.js.map +1 -1
  48. package/dist/controllers/module-package.controller.d.ts +622 -0
  49. package/dist/controllers/module-package.controller.d.ts.map +1 -0
  50. package/dist/controllers/module-package.controller.js +150 -0
  51. package/dist/controllers/module-package.controller.js.map +1 -0
  52. package/dist/controllers/mq-message-queue.controller.d.ts +1 -20
  53. package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
  54. package/dist/controllers/mq-message.controller.d.ts +1 -20
  55. package/dist/controllers/mq-message.controller.d.ts.map +1 -1
  56. package/dist/controllers/permission-metadata.controller.d.ts +1 -20
  57. package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
  58. package/dist/controllers/role-metadata.controller.d.ts +1 -20
  59. package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
  60. package/dist/controllers/saved-filters.controller.d.ts +1 -20
  61. package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
  62. package/dist/controllers/scheduled-job.controller.d.ts +1 -20
  63. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
  64. package/dist/controllers/security-rule.controller.d.ts +1 -20
  65. package/dist/controllers/security-rule.controller.d.ts.map +1 -1
  66. package/dist/controllers/sms-template.controller.d.ts +1 -20
  67. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  68. package/dist/controllers/user-activity-history.controller.d.ts +1 -20
  69. package/dist/controllers/user-activity-history.controller.d.ts.map +1 -1
  70. package/dist/controllers/user-view-metadata.controller.d.ts +1 -20
  71. package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
  72. package/dist/controllers/user.controller.d.ts +1 -20
  73. package/dist/controllers/user.controller.d.ts.map +1 -1
  74. package/dist/controllers/view-metadata.controller.d.ts +1 -20
  75. package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
  76. package/dist/dtos/confirm-module-package-import.dto.d.ts +4 -0
  77. package/dist/dtos/confirm-module-package-import.dto.d.ts.map +1 -0
  78. package/dist/dtos/confirm-module-package-import.dto.js +34 -0
  79. package/dist/dtos/confirm-module-package-import.dto.js.map +1 -0
  80. package/dist/dtos/metadata-explorer-references-query.dto.d.ts +10 -0
  81. package/dist/dtos/metadata-explorer-references-query.dto.d.ts.map +1 -0
  82. package/dist/dtos/metadata-explorer-references-query.dto.js +69 -0
  83. package/dist/dtos/metadata-explorer-references-query.dto.js.map +1 -0
  84. package/dist/dtos/metadata-explorer-search-query.dto.d.ts +8 -0
  85. package/dist/dtos/metadata-explorer-search-query.dto.d.ts.map +1 -0
  86. package/dist/dtos/metadata-explorer-search-query.dto.js +55 -0
  87. package/dist/dtos/metadata-explorer-search-query.dto.js.map +1 -0
  88. package/dist/dtos/metadata-explorer-write.dto.d.ts +4 -0
  89. package/dist/dtos/metadata-explorer-write.dto.d.ts.map +1 -0
  90. package/dist/dtos/metadata-explorer-write.dto.js +30 -0
  91. package/dist/dtos/metadata-explorer-write.dto.js.map +1 -0
  92. package/dist/dtos/run-module-package-build.dto.d.ts +5 -0
  93. package/dist/dtos/run-module-package-build.dto.d.ts.map +1 -0
  94. package/dist/dtos/run-module-package-build.dto.js +38 -0
  95. package/dist/dtos/run-module-package-build.dto.js.map +1 -0
  96. package/dist/dtos/run-module-package-seed.dto.d.ts +4 -0
  97. package/dist/dtos/run-module-package-seed.dto.d.ts.map +1 -0
  98. package/dist/dtos/run-module-package-seed.dto.js +34 -0
  99. package/dist/dtos/run-module-package-seed.dto.js.map +1 -0
  100. package/dist/helpers/command.service.js +1 -1
  101. package/dist/helpers/command.service.js.map +1 -1
  102. package/dist/helpers/module-metadata-helper.service.d.ts +2 -0
  103. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  104. package/dist/helpers/module-metadata-helper.service.js +14 -12
  105. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  106. package/dist/helpers/module.helper.d.ts.map +1 -1
  107. package/dist/helpers/module.helper.js +11 -6
  108. package/dist/helpers/module.helper.js.map +1 -1
  109. package/dist/helpers/typeorm-migration-helpers.d.ts +12 -0
  110. package/dist/helpers/typeorm-migration-helpers.d.ts.map +1 -0
  111. package/dist/helpers/typeorm-migration-helpers.js +119 -0
  112. package/dist/helpers/typeorm-migration-helpers.js.map +1 -0
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +8 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -0
  118. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  119. package/dist/seeders/module-metadata-seeder.service.js +57 -38
  120. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  121. package/dist/seeders/module-test-data.service.js +1 -1
  122. package/dist/seeders/module-test-data.service.js.map +1 -1
  123. package/dist/seeders/seed-data/solid-core-metadata.json +2364 -1106
  124. package/dist/services/crud-helper.service.d.ts +18 -0
  125. package/dist/services/crud-helper.service.d.ts.map +1 -1
  126. package/dist/services/crud-helper.service.js +59 -0
  127. package/dist/services/crud-helper.service.js.map +1 -1
  128. package/dist/services/crud.service.d.ts +1 -21
  129. package/dist/services/crud.service.d.ts.map +1 -1
  130. package/dist/services/crud.service.js +9 -75
  131. package/dist/services/crud.service.js.map +1 -1
  132. package/dist/services/genai/ingest-metadata.service.js +2 -2
  133. package/dist/services/genai/ingest-metadata.service.js.map +1 -1
  134. package/dist/services/media.service.d.ts +1 -20
  135. package/dist/services/media.service.d.ts.map +1 -1
  136. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  137. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +31 -2
  138. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  139. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  140. package/dist/services/mediaStorageProviders/file-storage-provider.js +5 -1
  141. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  142. package/dist/services/model-metadata.service.d.ts +15 -30
  143. package/dist/services/model-metadata.service.d.ts.map +1 -1
  144. package/dist/services/model-metadata.service.js +249 -29
  145. package/dist/services/model-metadata.service.js.map +1 -1
  146. package/dist/services/module-metadata-explorer.service.d.ts +161 -0
  147. package/dist/services/module-metadata-explorer.service.d.ts.map +1 -0
  148. package/dist/services/module-metadata-explorer.service.js +485 -0
  149. package/dist/services/module-metadata-explorer.service.js.map +1 -0
  150. package/dist/services/module-metadata.service.d.ts +7 -0
  151. package/dist/services/module-metadata.service.d.ts.map +1 -1
  152. package/dist/services/module-metadata.service.js +121 -2
  153. package/dist/services/module-metadata.service.js.map +1 -1
  154. package/dist/services/module-package.service.d.ts +266 -0
  155. package/dist/services/module-package.service.d.ts.map +1 -0
  156. package/dist/services/module-package.service.js +980 -0
  157. package/dist/services/module-package.service.js.map +1 -0
  158. package/dist/solid-core.module.d.ts.map +1 -1
  159. package/dist/solid-core.module.js +10 -2
  160. package/dist/solid-core.module.js.map +1 -1
  161. package/dist-tests/api/authenticate.spec.js +119 -0
  162. package/dist-tests/api/authenticate.spec.js.map +1 -0
  163. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  164. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  165. package/dist-tests/api/ping.spec.js +21 -0
  166. package/dist-tests/api/ping.spec.js.map +1 -0
  167. package/dist-tests/helpers/auth.js +41 -0
  168. package/dist-tests/helpers/auth.js.map +1 -0
  169. package/dist-tests/helpers/env.js +11 -0
  170. package/dist-tests/helpers/env.js.map +1 -0
  171. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  172. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  173. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  174. package/docs/grouping-enhancements.md +89 -0
  175. package/docs/java-spring/README.md +3 -0
  176. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  177. package/docs/module-package-import-handoff.md +691 -0
  178. package/docs/seed-changes.md +65 -0
  179. package/docs/test-data-workflow.md +200 -0
  180. package/docs/type-declaration-import-issue.md +24 -0
  181. package/package.json +2 -1
  182. package/src/controllers/module-metadata-explorer.controller.ts +83 -0
  183. package/src/controllers/module-metadata.controller.ts +6 -0
  184. package/src/controllers/module-package.controller.ts +102 -0
  185. package/src/dtos/confirm-module-package-import.dto.ts +12 -0
  186. package/src/dtos/metadata-explorer-references-query.dto.ts +39 -0
  187. package/src/dtos/metadata-explorer-search-query.dto.ts +28 -0
  188. package/src/dtos/metadata-explorer-write.dto.ts +11 -0
  189. package/src/dtos/run-module-package-build.dto.ts +14 -0
  190. package/src/dtos/run-module-package-seed.dto.ts +12 -0
  191. package/src/helpers/command.service.ts +1 -1
  192. package/src/helpers/module-metadata-helper.service.ts +19 -21
  193. package/src/helpers/module.helper.ts +12 -9
  194. package/src/helpers/typeorm-migration-helpers.ts +163 -0
  195. package/src/index.ts +8 -0
  196. package/src/seeders/module-metadata-seeder.service.ts +63 -38
  197. package/src/seeders/module-test-data.service.ts +1 -1
  198. package/src/seeders/seed-data/solid-core-metadata.json +2365 -1107
  199. package/src/services/crud-helper.service.ts +72 -0
  200. package/src/services/crud.service.ts +11 -104
  201. package/src/services/dashboard-providers/README.md +1 -1
  202. package/src/services/genai/ingest-metadata.service.ts +3 -3
  203. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +37 -2
  204. package/src/services/mediaStorageProviders/file-storage-provider.ts +5 -1
  205. package/src/services/model-metadata.service.ts +302 -98
  206. package/src/services/module-metadata-explorer.service.ts +670 -0
  207. package/src/services/module-metadata.service.ts +136 -10
  208. package/src/services/module-package.service.ts +1171 -0
  209. package/src/solid-core.module.ts +10 -2
  210. package/.claude/settings.local.json +0 -15
  211. package/CLAUDE.md +0 -26
  212. package/dist/services/database/database-bootstrap.service.d.ts +0 -12
  213. package/dist/services/database/database-bootstrap.service.d.ts.map +0 -1
  214. package/dist/services/database/database-bootstrap.service.js +0 -115
  215. package/dist/services/database/database-bootstrap.service.js.map +0 -1
  216. package/sql/default/mariadb/proc_CleanupModelMetadata.sql +0 -153
  217. package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +0 -56
  218. package/sql/default/mssql/proc_CleanupModuleMetadata.sql +0 -78
  219. package/sql/default/mysql/proc_CleanupModelMetadata.sql +0 -153
  220. package/sql/default/mysql/proc_CleanupModuleMetadata.sql +0 -56
  221. package/sql/default/postgres/proc_CleanupModelMetadata.sql +0 -148
  222. package/sql/default/postgres/proc_CleanupModuleMetadata.sql +0 -50
  223. package/sql/default/postgres/scratchpad.sql.txt +0 -12
  224. package/src/services/1.js +0 -6
  225. package/src/services/database/database-bootstrap.service.ts +0 -91
@@ -124,11 +124,17 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
124
124
  let currentModule = 'global';
125
125
  let currentStep = 'bootstrap';
126
126
  let modulesToSeed = null;
127
+ const shouldSeedGlobalMetadata = conf?.seedGlobalMetadata !== false;
127
128
  try {
128
129
  this.enablePruning = Boolean(conf?.pruneMetadata);
129
130
  console.log(this.enablePruning ? '▶ Pruning enabled: metadata not present in JSON will be removed.' : '▶ Pruning disabled: existing metadata will be kept.');
130
- currentStep = 'seedGlobalMetadata';
131
- await this.seedGlobalMetadata();
131
+ if (shouldSeedGlobalMetadata) {
132
+ currentStep = 'seedGlobalMetadata';
133
+ await this.seedGlobalMetadata();
134
+ }
135
+ else {
136
+ this.logger.log(`Skipping global metadata seeding.`);
137
+ }
132
138
  const seedDataFiles = this.seedDataFiles;
133
139
  this.logger.debug(`Found seed data for modules: ${seedDataFiles.map(s => s.moduleMetadata?.name)}`);
134
140
  currentStep = 'resolveModulesToSeed';
@@ -150,6 +156,10 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
150
156
  const overallMetadata = filteredSeedDataFiles[i];
151
157
  const moduleMetadata = overallMetadata.moduleMetadata;
152
158
  currentModule = moduleMetadata?.name ?? 'unknown';
159
+ if (!moduleMetadata?.name) {
160
+ this.logger.warn(`Skipping seed metadata file because moduleMetadata.name is missing.`);
161
+ continue;
162
+ }
153
163
  console.log(`▶ Seeding Metadata for Module: ${moduleMetadata.name}`);
154
164
  this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
155
165
  currentStep = 'seedMediaStorageProviders';
@@ -230,31 +240,31 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
230
240
  }
231
241
  async seedScheduledJobs(moduleMetadata, overallMetadata) {
232
242
  this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);
233
- const scheduledJobs = overallMetadata.scheduledJobs;
243
+ const scheduledJobs = this.getSeedArray(overallMetadata?.scheduledJobs);
234
244
  const pruned = this.enablePruning ? await this.pruneScheduledJobs(scheduledJobs, moduleMetadata.name) : 0;
235
- if (scheduledJobs?.length > 0) {
245
+ if (scheduledJobs.length > 0) {
236
246
  await this.handleSeedScheduledJobs(scheduledJobs);
237
247
  }
238
248
  this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);
239
- return { pruned, upserted: scheduledJobs?.length ?? 0 };
249
+ return { pruned, upserted: scheduledJobs.length };
240
250
  }
241
251
  async seedSavedFilters(moduleMetadata, overallMetadata) {
242
252
  this.logger.debug(`[Start] Processing saved filters for ${moduleMetadata.name}`);
243
- const savedFilters = overallMetadata.savedFilters;
253
+ const savedFilters = this.getSeedArray(overallMetadata?.savedFilters);
244
254
  const pruned = this.enablePruning ? await this.pruneSavedFilters(savedFilters, moduleMetadata.name) : 0;
245
- if (savedFilters?.length > 0) {
255
+ if (savedFilters.length > 0) {
246
256
  await this.handleSeedSavedFilters(savedFilters);
247
257
  }
248
258
  this.logger.debug(`[End] Processing saved filters for ${moduleMetadata.name}`);
249
- return { pruned, upserted: savedFilters?.length ?? 0 };
259
+ return { pruned, upserted: savedFilters.length };
250
260
  }
251
261
  async seedListOfValues(moduleMetadata, overallMetadata) {
252
262
  this.logger.debug(`[Start] Processing List Of Values for ${moduleMetadata.name}`);
253
- const listOfValues = overallMetadata.listOfValues;
263
+ const listOfValues = this.getSeedArray(overallMetadata?.listOfValues);
254
264
  const pruned = this.enablePruning ? await this.pruneListOfValues(listOfValues, moduleMetadata.name) : 0;
255
265
  await this.handleSeedListOfValues(listOfValues);
256
266
  this.logger.debug(`[End] Processing List Of Values for ${moduleMetadata.name}`);
257
- return { pruned, upserted: listOfValues?.length ?? 0 };
267
+ return { pruned, upserted: listOfValues.length };
258
268
  }
259
269
  async setupDefaultRolesWithPermissions() {
260
270
  this.logger.debug(`About to add all permissions to the Admin role`);
@@ -262,11 +272,11 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
262
272
  }
263
273
  async seedSecurityRules(overallMetadata) {
264
274
  this.logger.debug(`[Start] Processing security rules`);
265
- const securityRules = overallMetadata.securityRules;
275
+ const securityRules = this.getSeedArray(overallMetadata?.securityRules);
266
276
  const pruned = this.enablePruning ? await this.pruneSecurityRules(securityRules, overallMetadata?.moduleMetadata?.name) : 0;
267
277
  await this.handleSeedSecurityRules(securityRules);
268
278
  this.logger.debug(`[End] Processing security rules`);
269
- return { pruned, upserted: securityRules?.length ?? 0 };
279
+ return { pruned, upserted: securityRules.length };
270
280
  }
271
281
  async seedDefaultSettings() {
272
282
  this.logger.debug(`[Start] Processing settings`);
@@ -275,59 +285,64 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
275
285
  }
276
286
  async seedSmsTemplates(overallMetadata, moduleName) {
277
287
  this.logger.debug(`[Start] Processing sms templates`);
278
- const smsTemplates = overallMetadata.smsTemplates;
288
+ const smsTemplates = this.getSeedArray(overallMetadata?.smsTemplates);
279
289
  await this.handleSeedSmsTemplates(smsTemplates, moduleName);
280
290
  this.logger.debug(`[End] Processing sms templates`);
281
- return { pruned: 0, upserted: smsTemplates?.length ?? 0 };
291
+ return { pruned: 0, upserted: smsTemplates.length };
282
292
  }
283
293
  async seedEmailTemplates(overallMetadata, moduleName) {
284
294
  this.logger.debug(`[Start] Processing email templates`);
285
- const emailTemplates = overallMetadata.emailTemplates;
295
+ const emailTemplates = this.getSeedArray(overallMetadata?.emailTemplates);
286
296
  await this.handleSeedEmailTemplates(emailTemplates, moduleName);
287
297
  this.logger.debug(`[End] Processing email templates`);
288
- return { pruned: 0, upserted: emailTemplates?.length ?? 0 };
298
+ return { pruned: 0, upserted: emailTemplates.length };
289
299
  }
290
300
  async seedMenus(overallMetadata) {
291
301
  this.logger.debug(`[Start] Processing menus`);
292
- const menus = overallMetadata.menus;
302
+ const menus = this.getSeedArray(overallMetadata?.menus);
293
303
  const pruned = this.enablePruning ? await this.pruneMenus(menus, overallMetadata?.moduleMetadata?.name) : 0;
294
304
  await this.handleSeedMenus(menus);
295
305
  this.logger.debug(`[End] Processing menus`);
296
- return { pruned, upserted: menus?.length ?? 0 };
306
+ return { pruned, upserted: menus.length };
297
307
  }
298
308
  async seedActions(overallMetadata) {
299
309
  this.logger.debug(`[Start] Processing actions`);
300
- const actions = overallMetadata.actions;
310
+ const actions = this.getSeedArray(overallMetadata?.actions);
301
311
  const pruned = this.enablePruning ? await this.pruneActions(actions, overallMetadata?.moduleMetadata?.name) : 0;
302
312
  await this.handleSeedActions(actions);
303
313
  this.logger.debug(`[End] Processing actions`);
304
- return { pruned, upserted: actions?.length ?? 0 };
314
+ return { pruned, upserted: actions.length };
305
315
  }
306
316
  async seedViews(overallMetadata) {
307
317
  this.logger.debug(`[Start] Processing views`);
308
- const views = overallMetadata.views;
318
+ const views = this.getSeedArray(overallMetadata?.views);
309
319
  const pruned = this.enablePruning ? await this.pruneViews(views, overallMetadata?.moduleMetadata?.name) : 0;
310
320
  await this.handleSeedViews(views);
311
321
  this.logger.debug(`[End] Processing views`);
312
- return { pruned, upserted: views?.length ?? 0 };
322
+ return { pruned, upserted: views.length };
313
323
  }
314
324
  async seedUsers(overallMetadata) {
315
325
  this.logger.debug(`[Start] Processing users`);
316
- const users = overallMetadata.users;
326
+ const users = this.getSeedArray(overallMetadata?.users);
317
327
  await this.handleSeedUsers(users);
318
328
  this.logger.debug(`[End] Processing users`);
319
- return { pruned: 0, upserted: users?.length ?? 0 };
329
+ return { pruned: 0, upserted: users.length };
320
330
  }
321
331
  async seedRoles(overallMetadata) {
322
332
  this.logger.debug(`[Start] Processing roles`);
323
- await this.roleService.createRolesIfNotExists(overallMetadata.roles.map(role => { return { name: role.name }; }));
324
- for (const role of overallMetadata.roles) {
333
+ const roles = this.getSeedArray(overallMetadata?.roles);
334
+ await this.roleService.createRolesIfNotExists(roles
335
+ .filter((role) => role?.name)
336
+ .map((role) => ({ name: role.name })));
337
+ for (const role of roles) {
325
338
  if (role.permissions) {
326
- await this.roleService.addPermissionsToRole(role.name, role.permissions);
339
+ await this.roleService.addPermissionsToRole(role.name, role.permissions
340
+ .map((permission) => typeof permission === 'string' ? permission : permission?.name)
341
+ .filter(Boolean));
327
342
  }
328
343
  }
329
344
  this.logger.debug(`[End] Processing roles`);
330
- return { pruned: 0, upserted: overallMetadata.roles?.length ?? 0 };
345
+ return { pruned: 0, upserted: roles.length };
331
346
  }
332
347
  async seedPermissions(overallMetadata) {
333
348
  this.logger.debug(`[Start] Processing permissions`);
@@ -341,7 +356,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
341
356
  const seedDataFiles = [typedSolidCoreMetadata];
342
357
  const enabledModules = (0, module_helper_1.getDynamicModuleNamesBasedOnMetadata)();
343
358
  for (const enabledModule of enabledModules) {
344
- const enabledModuleSeedFile = `module-metadata/${enabledModule}/${enabledModule}-metadata.json`;
359
+ const enabledModuleSeedFile = `src/${enabledModule}/metadata/${enabledModule}-metadata.json`;
345
360
  const fullPath = path.join(process.cwd(), enabledModuleSeedFile);
346
361
  if (fs.existsSync(fullPath)) {
347
362
  const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
@@ -408,20 +423,21 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
408
423
  }
409
424
  async seedMediaStorageProviders(mediaStorageProviders) {
410
425
  this.logger.debug(`[Start] Processing Media Storage Provider`);
411
- for (let i = 0; i < mediaStorageProviders.length; i++) {
412
- const mediaStorageProvider = mediaStorageProviders[i];
426
+ const providers = this.getSeedArray(mediaStorageProviders);
427
+ for (let i = 0; i < providers.length; i++) {
428
+ const mediaStorageProvider = providers[i];
413
429
  await this.mediaStorageProviderMetadataService.upsert(mediaStorageProvider);
414
430
  }
415
431
  this.logger.debug(`[End] Processing Media Storage Provider`);
416
- return { pruned: 0, upserted: mediaStorageProviders?.length ?? 0 };
432
+ return { pruned: 0, upserted: providers.length };
417
433
  }
418
434
  async seedModelSequences(overallMetadata) {
419
435
  this.logger.debug(`[Start] Processing model sequences`);
420
- const modelSequences = overallMetadata.modelSequences;
436
+ const modelSequences = this.getSeedArray(overallMetadata?.modelSequences);
421
437
  const pruned = this.enablePruning ? await this.pruneModelSequences(modelSequences, overallMetadata?.moduleMetadata?.name) : 0;
422
438
  await this.handleSeedModelSequences(modelSequences);
423
439
  this.logger.debug(`[End] Processing model sequences`);
424
- return { pruned, upserted: modelSequences?.length ?? 0 };
440
+ return { pruned, upserted: modelSequences.length };
425
441
  }
426
442
  async handleSeedEmailTemplates(emailTemplates, moduleName) {
427
443
  if (!emailTemplates) {
@@ -451,7 +467,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
451
467
  }
452
468
  }
453
469
  else {
454
- const emailTemplateHandlebar = `module-metadata/${moduleName}/email-templates/${emailTemplate.body}`;
470
+ const emailTemplateHandlebar = `src/${moduleName}/metadata/email-templates/${emailTemplate.body}`;
455
471
  const fullPath = path.join(process.cwd(), emailTemplateHandlebar);
456
472
  if (fs.existsSync(fullPath)) {
457
473
  emailTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();
@@ -489,7 +505,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
489
505
  }
490
506
  }
491
507
  else {
492
- const emailTemplateHandlebar = `module-metadata/${moduleName}/sms-templates/${smsTemplate.body}`;
508
+ const emailTemplateHandlebar = `src/${moduleName}/metadata/sms-templates/${smsTemplate.body}`;
493
509
  const fullPath = path.join(process.cwd(), emailTemplateHandlebar);
494
510
  if (fs.existsSync(fullPath)) {
495
511
  smsTemplate.body = fs.readFileSync(fullPath, 'utf-8').toString();
@@ -635,8 +651,8 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
635
651
  const module = await this.moduleMetadataService.upsert(moduleMetadata);
636
652
  let pruned = 0;
637
653
  let upserted = 1;
638
- const modelsMetadata = moduleMetadata.models;
639
- upserted += modelsMetadata?.length ?? 0;
654
+ const modelsMetadata = this.getSeedArray(moduleMetadata?.models);
655
+ upserted += modelsMetadata.length;
640
656
  for (let j = 0; j < modelsMetadata.length; j++) {
641
657
  const modelMetadata = modelsMetadata[j];
642
658
  modelMetadata['module'] = module;
@@ -676,6 +692,9 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
676
692
  this.logger.debug(`[End] Processing module metadata`);
677
693
  return { pruned, upserted };
678
694
  }
695
+ getSeedArray(value) {
696
+ return Array.isArray(value) ? value : [];
697
+ }
679
698
  async handleSeedSecurityRules(rulesDto) {
680
699
  if (!rulesDto || rulesDto.length === 0) {
681
700
  this.logger.debug(`No security rules found to seed`);