@solidstarters/solid-core 1.2.141 → 1.2.142

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 (78) hide show
  1. package/dist/dtos/create-ai-interaction.dto.d.ts +1 -0
  2. package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
  3. package/dist/dtos/create-ai-interaction.dto.js +10 -1
  4. package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
  5. package/dist/dtos/update-ai-interaction.dto.d.ts +1 -0
  6. package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
  7. package/dist/dtos/update-ai-interaction.dto.js +7 -1
  8. package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
  9. package/dist/entities/ai-interaction.entity.d.ts +1 -0
  10. package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
  11. package/dist/entities/ai-interaction.entity.js +9 -1
  12. package/dist/entities/ai-interaction.entity.js.map +1 -1
  13. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +1 -0
  14. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -1
  15. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +6 -1
  16. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
  17. package/dist/entities/dashboard-question.entity.d.ts +1 -0
  18. package/dist/entities/dashboard-question.entity.d.ts.map +1 -1
  19. package/dist/entities/dashboard-question.entity.js +6 -1
  20. package/dist/entities/dashboard-question.entity.js.map +1 -1
  21. package/dist/interfaces.d.ts +2 -2
  22. package/dist/interfaces.d.ts.map +1 -1
  23. package/dist/interfaces.js.map +1 -1
  24. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  25. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +4 -2
  26. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  27. package/dist/mappers/dashboard-mapper.d.ts.map +1 -1
  28. package/dist/mappers/dashboard-mapper.js +2 -0
  29. package/dist/mappers/dashboard-mapper.js.map +1 -1
  30. package/dist/seeders/seed-data/solid-core-metadata.json +61 -0
  31. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  32. package/dist/services/ai-interaction.service.js +1 -0
  33. package/dist/services/ai-interaction.service.js.map +1 -1
  34. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts +10 -5
  35. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  36. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +25 -22
  37. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  38. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +2 -2
  39. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts.map +1 -1
  40. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js +3 -3
  41. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -1
  42. package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.d.ts +10 -0
  43. package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.d.ts.map +1 -0
  44. package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.js +18 -0
  45. package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.js.map +1 -0
  46. package/dist/services/setting.service.d.ts.map +1 -1
  47. package/dist/services/setting.service.js +14 -2
  48. package/dist/services/setting.service.js.map +1 -1
  49. package/dist/services/user.service.d.ts +2 -0
  50. package/dist/services/user.service.d.ts.map +1 -1
  51. package/dist/services/user.service.js +15 -0
  52. package/dist/services/user.service.js.map +1 -1
  53. package/dist/solid-core.module.d.ts.map +1 -1
  54. package/dist/solid-core.module.js +4 -0
  55. package/dist/solid-core.module.js.map +1 -1
  56. package/dist/subscribers/computed-entity-field.subscriber.d.ts +1 -1
  57. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  58. package/dist/subscribers/computed-entity-field.subscriber.js +5 -3
  59. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +1 -1
  62. package/src/dtos/create-ai-interaction.dto.ts +51 -55
  63. package/src/dtos/update-ai-interaction.dto.ts +51 -56
  64. package/src/entities/ai-interaction.entity.ts +29 -34
  65. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +3 -0
  66. package/src/entities/dashboard-question.entity.ts +3 -0
  67. package/src/interfaces.ts +2 -2
  68. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +4 -2
  69. package/src/mappers/dashboard-mapper.ts +2 -1
  70. package/src/seeders/seed-data/solid-core-metadata.json +61 -0
  71. package/src/services/ai-interaction.service.ts +3 -0
  72. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +31 -33
  73. package/src/services/computed-fields/entity/concat-entity-computed-field-provider.service.ts +4 -5
  74. package/src/services/computed-fields/entity/noops-entity-computed-field-provider.service.ts +22 -0
  75. package/src/services/setting.service.ts +14 -2
  76. package/src/services/user.service.ts +22 -0
  77. package/src/solid-core.module.ts +4 -0
  78. package/src/subscribers/computed-entity-field.subscriber.ts +6 -4
@@ -39,6 +39,28 @@ export class UserService extends CRUDService<User> {
39
39
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'user', 'solid-core', moduleRef);
40
40
  }
41
41
 
42
+ override async delete(id: number, solidRequestContext: any = {}) {
43
+ // Prevent user from deleting themselves
44
+ if (solidRequestContext?.activeUser?.sub === id) {
45
+ throw new BadRequestException('Deleting logged-in user is not allowed');
46
+ }
47
+
48
+ // ✅ Proceed with the default deletion logic
49
+ return super.delete(id, solidRequestContext);
50
+ }
51
+
52
+ override async deleteMany(ids: number[], solidRequestContext: any = {}): Promise<any> {
53
+ if (!ids || ids.length === 0) {
54
+ throw new Error('At least one ID is required for deletion');
55
+ }
56
+
57
+ // ❌ If the active user is trying to delete themselves
58
+ if (solidRequestContext?.activeUser?.sub && ids.includes(solidRequestContext.activeUser.id)) {
59
+ throw new BadRequestException('Deleting logged-in user is not allowed');
60
+ }
61
+
62
+ return super.deleteMany(ids, solidRequestContext);
63
+ }
42
64
 
43
65
  async findOneByEmail(email: string): Promise<User> {
44
66
  return await this.repo.findOne({
@@ -257,6 +257,8 @@ import { SolidCreateModelWithFieldsMcpToolResponseHandler } from './services/mcp
257
257
  import { SolidAddFieldMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service';
258
258
  import { ViewMetadataRepository } from './repository/view-metadata.repository';
259
259
  import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service';
260
+ import { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';
261
+ import { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';
260
262
 
261
263
 
262
264
  @Global()
@@ -536,6 +538,7 @@ import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-too
536
538
  DashboardVariableSubscriber,
537
539
  DashboardQuestionSubscriber,
538
540
  DashboardQuestionSqlDatasetConfigSubscriber,
541
+ NoopsEntityComputedFieldProviderService,
539
542
  SolidCreateDashboardMcpToolResponseHandler,
540
543
  SolidCreateDashboardQuestionMcpToolResponseHandler,
541
544
  SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler,
@@ -544,6 +547,7 @@ import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-too
544
547
  SolidAddFieldMcpToolResponseHandler,
545
548
  ViewMetadataRepository,
546
549
  SolidCreateModelLayoutMcpToolResponseHandler,
550
+ AlphaNumExternalIdComputationProvider,
547
551
  ],
548
552
  exports: [
549
553
  ModuleMetadataService,
@@ -89,17 +89,19 @@ export class ComputedEntityFieldSubscriber implements EntitySubscriberInterface
89
89
  }
90
90
 
91
91
  private async evaluateComputedField(computedFieldMetadata: ComputedFieldMetadata<any>, entity: any) {
92
- const computedValue = await this.getComputedValue(computedFieldMetadata, entity);
93
- entity[computedFieldMetadata.fieldName] = computedValue; // Set the computed value on the entity
92
+ const computedValue = await this.preComputeValue(computedFieldMetadata, entity);
93
+ if (computedValue) {
94
+ entity[computedFieldMetadata.fieldName] = computedValue; //TODO: This line here is just for backward compatibility, once the pre compute interface is change to return void, we will get rid of it.
95
+ }
94
96
  }
95
97
 
96
- private async getComputedValue(computedFieldMetadata: ComputedFieldMetadata<any>, entity: any) {
98
+ private async preComputeValue(computedFieldMetadata: ComputedFieldMetadata<any>, entity: any) {
97
99
  try {
98
100
  const provider = this.solidRegistry.getComputedFieldProvider(computedFieldMetadata.computedFieldValueProviderName);
99
101
  // Get the instance of the provider and assert it is of type IEntityComputedFieldProvider
100
102
  const providerInstance = provider.instance as IEntityPreComputeFieldProvider<any, any, any>; // IEntityComputedFieldProvider
101
103
  const computedValue = await providerInstance.preComputeValue(entity, computedFieldMetadata); //FIXME There should some way to check/assert if the provider actually has a postComputeAndSaveValue
102
- return computedValue;
104
+ return computedValue; //TODO: This line here is just for backward compatibility, once the pre compute interface is change to return void, we will get rid of it.
103
105
  } catch (error) {
104
106
  throw new InternalServerErrorException(`Error evaluating computed field ${computedFieldMetadata.fieldName} for model ${computedFieldMetadata.modelName} for triggered entity ${entity.constructor.name}: ${error.message}`);
105
107
  }