@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.
- package/dist/dtos/create-ai-interaction.dto.d.ts +1 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-ai-interaction.dto.js +10 -1
- package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.d.ts +1 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.js +7 -1
- package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
- package/dist/entities/ai-interaction.entity.d.ts +1 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
- package/dist/entities/ai-interaction.entity.js +9 -1
- package/dist/entities/ai-interaction.entity.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +1 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +6 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
- package/dist/entities/dashboard-question.entity.d.ts +1 -0
- package/dist/entities/dashboard-question.entity.d.ts.map +1 -1
- package/dist/entities/dashboard-question.entity.js +6 -1
- package/dist/entities/dashboard-question.entity.js.map +1 -1
- package/dist/interfaces.d.ts +2 -2
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +4 -2
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/mappers/dashboard-mapper.d.ts.map +1 -1
- package/dist/mappers/dashboard-mapper.js +2 -0
- package/dist/mappers/dashboard-mapper.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +61 -0
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +1 -0
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts +10 -5
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +25 -22
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +2 -2
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js +3 -3
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -1
- package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.d.ts +10 -0
- package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.d.ts.map +1 -0
- package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.js +18 -0
- package/dist/services/computed-fields/entity/noops-entity-computed-field-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +14 -2
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +15 -0
- package/dist/services/user.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +4 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +5 -3
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/dtos/create-ai-interaction.dto.ts +51 -55
- package/src/dtos/update-ai-interaction.dto.ts +51 -56
- package/src/entities/ai-interaction.entity.ts +29 -34
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +3 -0
- package/src/entities/dashboard-question.entity.ts +3 -0
- package/src/interfaces.ts +2 -2
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +4 -2
- package/src/mappers/dashboard-mapper.ts +2 -1
- package/src/seeders/seed-data/solid-core-metadata.json +61 -0
- package/src/services/ai-interaction.service.ts +3 -0
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +31 -33
- package/src/services/computed-fields/entity/concat-entity-computed-field-provider.service.ts +4 -5
- package/src/services/computed-fields/entity/noops-entity-computed-field-provider.service.ts +22 -0
- package/src/services/setting.service.ts +14 -2
- package/src/services/user.service.ts +22 -0
- package/src/solid-core.module.ts +4 -0
- 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({
|
package/src/solid-core.module.ts
CHANGED
|
@@ -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.
|
|
93
|
-
|
|
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
|
|
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
|
}
|