@solidxai/core 0.1.11-beta.1 → 0.1.11-beta.4

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 (136) hide show
  1. package/.claude/settings.local.json +16 -0
  2. package/CLAUDE.md +26 -0
  3. package/dist/controllers/datasource-introspection.controller.d.ts +38 -1
  4. package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -1
  5. package/dist/controllers/datasource-introspection.controller.js +38 -0
  6. package/dist/controllers/datasource-introspection.controller.js.map +1 -1
  7. package/dist/controllers/service.controller.d.ts +1 -0
  8. package/dist/controllers/service.controller.d.ts.map +1 -1
  9. package/dist/controllers/service.controller.js +2 -2
  10. package/dist/controllers/service.controller.js.map +1 -1
  11. package/dist/dtos/datasource-introspection-mapping.dto.d.ts +4 -0
  12. package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -1
  13. package/dist/dtos/datasource-introspection-mapping.dto.js +18 -2
  14. package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -1
  15. package/dist/entities/{legacy-common-with-id.entity.d.ts → legacy-common-with-generated-id.entity.d.ts} +2 -2
  16. package/dist/entities/legacy-common-with-generated-id.entity.d.ts.map +1 -0
  17. package/dist/entities/{legacy-common-with-id.entity.js → legacy-common-with-generated-id.entity.js} +4 -4
  18. package/dist/entities/legacy-common-with-generated-id.entity.js.map +1 -0
  19. package/dist/entities/{legacy-common.entity.d.ts → legacy-common.entity-with-existing-id.entity.d.ts} +1 -1
  20. package/dist/entities/legacy-common.entity-with-existing-id.entity.d.ts.map +1 -0
  21. package/dist/entities/{legacy-common.entity.js → legacy-common.entity-with-existing-id.entity.js} +1 -1
  22. package/dist/entities/legacy-common.entity-with-existing-id.entity.js.map +1 -0
  23. package/dist/helpers/field-crud-managers/IntFieldCrudManager.d.ts.map +1 -1
  24. package/dist/helpers/field-crud-managers/IntFieldCrudManager.js +4 -1
  25. package/dist/helpers/field-crud-managers/IntFieldCrudManager.js.map +1 -1
  26. package/dist/helpers/model-metadata-helper.service.js +3 -3
  27. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  28. package/dist/helpers/solid-registry.d.ts +2 -1
  29. package/dist/helpers/solid-registry.d.ts.map +1 -1
  30. package/dist/helpers/solid-registry.js.map +1 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/interfaces/datasource-introspection-provider.interface.d.ts +1 -0
  36. package/dist/interfaces/datasource-introspection-provider.interface.d.ts.map +1 -1
  37. package/dist/interfaces/datasource-introspection-provider.interface.js.map +1 -1
  38. package/dist/seeders/module-metadata-seeder.service.d.ts +5 -1
  39. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  40. package/dist/seeders/module-metadata-seeder.service.js +61 -3
  41. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  42. package/dist/seeders/seed-data/solid-core-metadata.json +19 -3
  43. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  44. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +6 -5
  45. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  46. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts.map +1 -1
  47. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js +12 -0
  48. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js.map +1 -1
  49. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts.map +1 -1
  50. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js +2 -0
  51. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js.map +1 -1
  52. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts.map +1 -1
  53. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js +28 -15
  54. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js.map +1 -1
  55. package/dist/services/datasource-introspection.service.d.ts +52 -2
  56. package/dist/services/datasource-introspection.service.d.ts.map +1 -1
  57. package/dist/services/datasource-introspection.service.js +534 -160
  58. package/dist/services/datasource-introspection.service.js.map +1 -1
  59. package/dist/services/locale.service.d.ts +14 -0
  60. package/dist/services/locale.service.d.ts.map +1 -1
  61. package/dist/services/locale.service.js +83 -0
  62. package/dist/services/locale.service.js.map +1 -1
  63. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +10 -10
  64. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  65. package/dist/services/role-metadata.service.d.ts +1 -0
  66. package/dist/services/role-metadata.service.d.ts.map +1 -1
  67. package/dist/services/role-metadata.service.js +23 -2
  68. package/dist/services/role-metadata.service.js.map +1 -1
  69. package/dist/services/view-metadata.service.d.ts.map +1 -1
  70. package/dist/services/view-metadata.service.js +4 -7
  71. package/dist/services/view-metadata.service.js.map +1 -1
  72. package/dist/subscribers/audit.subscriber.d.ts +2 -0
  73. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  74. package/dist/subscribers/audit.subscriber.js +25 -6
  75. package/dist/subscribers/audit.subscriber.js.map +1 -1
  76. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  77. package/dist/subscribers/computed-entity-field.subscriber.js +1 -0
  78. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  79. package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
  80. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  81. package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
  82. package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/controllers/datasource-introspection.controller.ts +27 -1
  85. package/src/controllers/service.controller.ts +3 -2
  86. package/src/dtos/datasource-introspection-mapping.dto.ts +10 -0
  87. package/src/entities/{legacy-common-with-id.entity.ts → legacy-common-with-generated-id.entity.ts} +1 -1
  88. package/src/helpers/field-crud-managers/IntFieldCrudManager.ts +4 -1
  89. package/src/helpers/model-metadata-helper.service.ts +1 -1
  90. package/src/helpers/solid-registry.ts +7 -1
  91. package/src/index.ts +2 -2
  92. package/src/interfaces/datasource-introspection-provider.interface.ts +1 -0
  93. package/src/seeders/module-metadata-seeder.service.ts +72 -2
  94. package/src/seeders/seed-data/solid-core-metadata.json +19 -3
  95. package/src/services/1.js +6 -0
  96. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +10 -5
  97. package/src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts +12 -0
  98. package/src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts +2 -0
  99. package/src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts +28 -15
  100. package/src/services/datasource-introspection.service.ts +626 -136
  101. package/src/services/locale.service.ts +111 -3
  102. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +2 -2
  103. package/src/services/role-metadata.service.ts +26 -2
  104. package/src/services/view-metadata.service.ts +4 -8
  105. package/src/subscribers/audit.subscriber.ts +34 -14
  106. package/src/subscribers/computed-entity-field.subscriber.ts +1 -0
  107. package/src/subscribers/created-by-updated-by.subscriber.ts +3 -0
  108. package/src/subscribers/field-metadata.subscriber.ts +3 -0
  109. package/dist/entities/legacy-common-with-id.entity.d.ts.map +0 -1
  110. package/dist/entities/legacy-common-with-id.entity.js.map +0 -1
  111. package/dist/entities/legacy-common.entity.d.ts.map +0 -1
  112. package/dist/entities/legacy-common.entity.js.map +0 -1
  113. package/dist-tests/api/authenticate.spec.js +0 -119
  114. package/dist-tests/api/authenticate.spec.js.map +0 -1
  115. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  116. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  117. package/dist-tests/api/ping.spec.js +0 -21
  118. package/dist-tests/api/ping.spec.js.map +0 -1
  119. package/dist-tests/helpers/auth.js +0 -41
  120. package/dist-tests/helpers/auth.js.map +0 -1
  121. package/dist-tests/helpers/env.js +0 -11
  122. package/dist-tests/helpers/env.js.map +0 -1
  123. package/docs/agent-hub-grooming.md +0 -301
  124. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
  125. package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
  126. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
  127. package/docs/datasource-introspection-ddl-analysis.md +0 -326
  128. package/docs/datasource-introspection-implementation-plan.md +0 -306
  129. package/docs/grouping-enhancements.md +0 -89
  130. package/docs/java-spring/README.md +0 -3
  131. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  132. package/docs/module-package-import-handoff.md +0 -691
  133. package/docs/seed-changes.md +0 -65
  134. package/docs/test-data-workflow.md +0 -200
  135. package/docs/type-declaration-import-issue.md +0 -24
  136. /package/src/entities/{legacy-common.entity.ts → legacy-common.entity-with-existing-id.entity.ts} +0 -0
@@ -84,6 +84,7 @@ const saved_filters_repository_1 = require("../repository/saved-filters.reposito
84
84
  const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
85
85
  const setting_repository_1 = require("../repository/setting.repository");
86
86
  const model_sequence_repository_1 = require("../repository/model-sequence.repository");
87
+ const locale_repository_1 = require("../repository/locale.repository");
87
88
  const model_sequence_entity_1 = require("../entities/model-sequence.entity");
88
89
  const saved_filters_entity_1 = require("../entities/saved-filters.entity");
89
90
  const scheduled_job_entity_1 = require("../entities/scheduled-job.entity");
@@ -94,7 +95,7 @@ const model_metadata_entity_1 = require("../entities/model-metadata.entity");
94
95
  const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
95
96
  const view_metadata_entity_1 = require("../entities/view-metadata.entity");
96
97
  let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMetadataSeederService {
97
- constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo) {
98
+ constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo, localeRepo) {
98
99
  this.moduleMetadataService = moduleMetadataService;
99
100
  this.modelMetadataService = modelMetadataService;
100
101
  this.fieldMetadataService = fieldMetadataService;
@@ -117,6 +118,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
117
118
  this.savedFiltersRepo = savedFiltersRepo;
118
119
  this.dataSource = dataSource;
119
120
  this.modelSequenceRepo = modelSequenceRepo;
121
+ this.localeRepo = localeRepo;
120
122
  this.logger = new common_1.Logger(ModuleMetadataSeederService_1.name);
121
123
  this.seedTimingTag = 'SEED_TIMING';
122
124
  this.permissionSeedBatchSize = 500;
@@ -181,6 +183,10 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
181
183
  this.logger.log(`Seeding Module / Model / Fields`);
182
184
  const moduleModelFieldCounts = await this.timeOperation('seed-module-model-fields', () => this.seedModuleModelFields(moduleMetadata), { moduleName: moduleMetadata.name, component: 'module-model-fields' });
183
185
  console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
186
+ currentStep = 'seedLocales';
187
+ this.logger.log(`Seeding Locales`);
188
+ const localeCounts = await this.seedLocales(overallMetadata);
189
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Locales', localeCounts)}`);
184
190
  currentStep = 'seedPermissions';
185
191
  this.logger.log(`Seeding Permissions`);
186
192
  const permissionCounts = await this.timeOperation('seed-permissions', () => this.seedPermissions(overallMetadata), { moduleName: moduleMetadata.name, component: 'permissions' });
@@ -401,6 +407,19 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
401
407
  });
402
408
  return { pruned, upserted: listOfValues.length };
403
409
  }
410
+ async seedLocales(overallMetadata) {
411
+ this.logger.debug(`[Start] Processing locales`);
412
+ const locales = this.getSeedArray(overallMetadata?.locales);
413
+ const existingLocales = await this.localeRepo.find();
414
+ if (existingLocales.length > 0) {
415
+ this.solidRegistry.registerlocales(existingLocales);
416
+ this.logger.debug(`[End] Skipping locale seed because locales already exist`);
417
+ return { pruned: 0, upserted: 0 };
418
+ }
419
+ await this.handleSeedLocales(locales);
420
+ this.logger.debug(`[End] Processing locales`);
421
+ return { pruned: 0, upserted: locales.length };
422
+ }
404
423
  async setupDefaultRolesWithPermissions() {
405
424
  this.logger.debug(`About to add all permissions to the Admin role`);
406
425
  await this.timeOperation('role-add-all-permissions', () => this.roleService.addAllPermissionsToRole(create_role_metadata_dto_1.ADMIN_ROLE_NAME), {
@@ -504,7 +523,11 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
504
523
  const roles = this.getSeedArray(overallMetadata?.roles);
505
524
  await this.timeOperation('roles-create-if-not-exists', () => this.roleService.createRolesIfNotExists(roles
506
525
  .filter((role) => role?.name)
507
- .map((role) => ({ name: role.name }))), {
526
+ .map((role) => ({
527
+ name: role.name,
528
+ moduleId: role.moduleId,
529
+ moduleUserKey: role.moduleUserKey ?? overallMetadata?.moduleMetadata?.name,
530
+ }))), {
508
531
  moduleName: overallMetadata?.moduleMetadata?.name,
509
532
  component: 'roles',
510
533
  serviceCall: 'roleService.createRolesIfNotExists',
@@ -1475,6 +1498,40 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
1475
1498
  });
1476
1499
  }
1477
1500
  }
1501
+ async handleSeedLocales(localesDto) {
1502
+ if (!localesDto || localesDto.length === 0) {
1503
+ this.logger.debug(`No locales found to seed`);
1504
+ return;
1505
+ }
1506
+ for (const dto of localesDto) {
1507
+ if (dto.isDefault) {
1508
+ const existingDefaultLocales = await this.localeRepo.find({
1509
+ where: {
1510
+ isDefault: true,
1511
+ },
1512
+ });
1513
+ for (const locale of existingDefaultLocales) {
1514
+ if (locale.locale !== dto.locale) {
1515
+ await this.localeRepo.save({
1516
+ ...locale,
1517
+ isDefault: false,
1518
+ });
1519
+ }
1520
+ }
1521
+ }
1522
+ const existingLocale = await this.localeRepo.findOne({
1523
+ where: {
1524
+ locale: dto.locale,
1525
+ },
1526
+ });
1527
+ await this.localeRepo.save(this.localeRepo.create({
1528
+ ...existingLocale,
1529
+ ...dto,
1530
+ }));
1531
+ }
1532
+ const locales = await this.localeRepo.find();
1533
+ this.solidRegistry.registerlocales(locales);
1534
+ }
1478
1535
  validateSavedFilterQueryJsonWrapper(dto) {
1479
1536
  const filterName = dto?.name ?? '<unnamed>';
1480
1537
  const filterQueryJson = dto?.filterQueryJson;
@@ -2036,6 +2093,7 @@ exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetada
2036
2093
  scheduled_job_repository_1.ScheduledJobRepository,
2037
2094
  saved_filters_repository_1.SavedFiltersRepository,
2038
2095
  typeorm_1.DataSource,
2039
- model_sequence_repository_1.ModelSequenceRepository])
2096
+ model_sequence_repository_1.ModelSequenceRepository,
2097
+ locale_repository_1.LocaleRepository])
2040
2098
  ], ModuleMetadataSeederService);
2041
2099
  //# sourceMappingURL=module-metadata-seeder.service.js.map