@solidstarters/solid-core 1.2.143 → 1.2.144

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 (85) hide show
  1. package/dist/constants/error-messages.d.ts +83 -0
  2. package/dist/constants/error-messages.d.ts.map +1 -0
  3. package/dist/constants/error-messages.js +86 -0
  4. package/dist/constants/error-messages.js.map +1 -0
  5. package/dist/constants/success-messages.d.ts +11 -0
  6. package/dist/constants/success-messages.d.ts.map +1 -0
  7. package/dist/constants/success-messages.js +14 -0
  8. package/dist/constants/success-messages.js.map +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  14. package/dist/services/ai-interaction.service.js +4 -3
  15. package/dist/services/ai-interaction.service.js.map +1 -1
  16. package/dist/services/authentication.service.d.ts.map +1 -1
  17. package/dist/services/authentication.service.js +66 -64
  18. package/dist/services/authentication.service.js.map +1 -1
  19. package/dist/services/crud-helper.service.d.ts.map +1 -1
  20. package/dist/services/crud-helper.service.js +3 -2
  21. package/dist/services/crud-helper.service.js.map +1 -1
  22. package/dist/services/crud.service.d.ts.map +1 -1
  23. package/dist/services/crud.service.js +23 -21
  24. package/dist/services/crud.service.js.map +1 -1
  25. package/dist/services/csv.service.d.ts.map +1 -1
  26. package/dist/services/csv.service.js +3 -2
  27. package/dist/services/csv.service.js.map +1 -1
  28. package/dist/services/excel.service.d.ts.map +1 -1
  29. package/dist/services/excel.service.js +3 -2
  30. package/dist/services/excel.service.js.map +1 -1
  31. package/dist/services/export-transaction.service.d.ts.map +1 -1
  32. package/dist/services/export-transaction.service.js +2 -1
  33. package/dist/services/export-transaction.service.js.map +1 -1
  34. package/dist/services/field-metadata.service.d.ts.map +1 -1
  35. package/dist/services/field-metadata.service.js +9 -8
  36. package/dist/services/field-metadata.service.js.map +1 -1
  37. package/dist/services/file.service.d.ts.map +1 -1
  38. package/dist/services/file.service.js +5 -4
  39. package/dist/services/file.service.js.map +1 -1
  40. package/dist/services/import-transaction.service.d.ts.map +1 -1
  41. package/dist/services/import-transaction.service.js +10 -9
  42. package/dist/services/import-transaction.service.js.map +1 -1
  43. package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
  44. package/dist/services/media-storage-provider-metadata.service.js +4 -3
  45. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  46. package/dist/services/media.service.d.ts.map +1 -1
  47. package/dist/services/media.service.js +2 -1
  48. package/dist/services/media.service.js.map +1 -1
  49. package/dist/services/model-metadata.service.d.ts.map +1 -1
  50. package/dist/services/model-metadata.service.js +10 -9
  51. package/dist/services/model-metadata.service.js.map +1 -1
  52. package/dist/services/module-metadata.service.d.ts.map +1 -1
  53. package/dist/services/module-metadata.service.js +11 -10
  54. package/dist/services/module-metadata.service.js.map +1 -1
  55. package/dist/services/role-metadata.service.d.ts.map +1 -1
  56. package/dist/services/role-metadata.service.js +3 -2
  57. package/dist/services/role-metadata.service.js.map +1 -1
  58. package/dist/services/sql-expression-resolver.service.d.ts.map +1 -1
  59. package/dist/services/sql-expression-resolver.service.js +2 -1
  60. package/dist/services/sql-expression-resolver.service.js.map +1 -1
  61. package/dist/services/user.service.d.ts.map +1 -1
  62. package/dist/services/user.service.js +11 -10
  63. package/dist/services/user.service.js.map +1 -1
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +1 -1
  66. package/src/constants/error-messages.ts +123 -0
  67. package/src/constants/success-messages.ts +13 -0
  68. package/src/index.ts +3 -1
  69. package/src/services/ai-interaction.service.ts +4 -3
  70. package/src/services/authentication.service.ts +66 -64
  71. package/src/services/crud-helper.service.ts +3 -2
  72. package/src/services/crud.service.ts +23 -23
  73. package/src/services/csv.service.ts +3 -2
  74. package/src/services/excel.service.ts +3 -2
  75. package/src/services/export-transaction.service.ts +2 -1
  76. package/src/services/field-metadata.service.ts +9 -8
  77. package/src/services/file.service.ts +5 -4
  78. package/src/services/import-transaction.service.ts +10 -9
  79. package/src/services/media-storage-provider-metadata.service.ts +4 -3
  80. package/src/services/media.service.ts +2 -1
  81. package/src/services/model-metadata.service.ts +10 -9
  82. package/src/services/module-metadata.service.ts +11 -10
  83. package/src/services/role-metadata.service.ts +3 -2
  84. package/src/services/sql-expression-resolver.service.ts +2 -1
  85. package/src/services/user.service.ts +11 -10
@@ -22,6 +22,7 @@ import { CrudHelperService } from './crud-helper.service';
22
22
  import { ModelMetadataService } from './model-metadata.service';
23
23
  import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
24
24
  import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
25
+ import { ERROR_MESSAGES } from 'src/constants/error-messages';
25
26
 
26
27
  @Injectable()
27
28
  export class ModuleMetadataService {
@@ -77,7 +78,7 @@ export class ModuleMetadataService {
77
78
 
78
79
  async findOneByUserKey(name: string, relations = {}) {
79
80
  if (!name) {
80
- throw new BadRequestException('name is required for finding entity');
81
+ throw new BadRequestException(ERROR_MESSAGES.ENTITY_NAME_REQUIRED);
81
82
  }
82
83
  const entity = await this.moduleMetadataRepo.findOne({
83
84
  where: {
@@ -90,7 +91,7 @@ export class ModuleMetadataService {
90
91
 
91
92
  async findOne(id: number, relations = {}) {
92
93
  if (!id) {
93
- throw new BadRequestException('ID is required for finding entity');
94
+ throw new BadRequestException(ERROR_MESSAGES.ENTITY_ID_REQUIRED);
94
95
  }
95
96
  const entity = await this.moduleMetadataRepo.findOne({
96
97
  where: {
@@ -99,7 +100,7 @@ export class ModuleMetadataService {
99
100
  relations: relations,
100
101
  });
101
102
  if (!entity) {
102
- throw new NotFoundException(`entity #${id} not found`);
103
+ throw new NotFoundException(ERROR_MESSAGES.ENTITY_NOT_FOUND());
103
104
  }
104
105
  return entity;
105
106
  }
@@ -194,7 +195,7 @@ export class ModuleMetadataService {
194
195
  } catch (error) {
195
196
  // console.error('File creation failed:', error);
196
197
  this.logger.error('File creation failed:', error);
197
- throw new Error('File creation failed, rolling back transaction'); // Trigger rollback
198
+ throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback
198
199
  }
199
200
  }
200
201
 
@@ -221,7 +222,7 @@ export class ModuleMetadataService {
221
222
  });
222
223
 
223
224
  if (!module) {
224
- throw new NotFoundException(`Module ${id} not found`);
225
+ throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(id));
225
226
  }
226
227
  if (files.length > 0) {
227
228
 
@@ -281,7 +282,7 @@ export class ModuleMetadataService {
281
282
  } catch (error) {
282
283
  // console.error('File creation failed:', error);
283
284
  this.logger.error('File creation failed:', error);
284
- throw new Error('File creation failed, rolling back transaction'); // Trigger rollback
285
+ throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback
285
286
  }
286
287
  }
287
288
 
@@ -320,7 +321,7 @@ export class ModuleMetadataService {
320
321
 
321
322
  async deleteMany(ids: number[]): Promise<any> {
322
323
  if (!ids || ids.length === 0) {
323
- throw new Error('At least one ID is required for deletion');
324
+ throw new Error(ERROR_MESSAGES.DELETE_IDS_REQUIRED);
324
325
  }
325
326
  const removedEntities = [];
326
327
  for (let i = 0; i < ids.length; i++) {
@@ -348,13 +349,13 @@ export class ModuleMetadataService {
348
349
  @DisallowInProduction()
349
350
  async generateCode(options: CodeGenerationOptions): Promise<string> {
350
351
  if (!options.moduleId && !options.moduleUserKey) {
351
- throw new BadRequestException('Module ID or Module Name is required for generating code');
352
+ throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);
352
353
  }
353
354
  const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);
354
355
 
355
356
  // Check if the module exists
356
357
  if (!module) {
357
- throw new NotFoundException(`Module ${options.moduleId} not found`);
358
+ throw new NotFoundException(ERROR_MESSAGES.MODULE_ID_NOT_FOUND(options.moduleId));
358
359
  }
359
360
 
360
361
  // Check if the module name already exists and is loaded
@@ -371,7 +372,7 @@ export class ModuleMetadataService {
371
372
 
372
373
  private async generateAddModuleCode(options: CodeGenerationOptions = { dryRun: false }): Promise<string> {
373
374
  if (!options.moduleId && !options.moduleUserKey) {
374
- throw new BadRequestException('Module ID or Module Name is required for generating code');
375
+ throw new BadRequestException(ERROR_MESSAGES.MODEL_REQUIRED_FOR_CODE_GENERATION);
375
376
  }
376
377
  const module = options.moduleId ? await this.findOne(options.moduleId) : await this.findOneByUserKey(options.moduleUserKey);
377
378
 
@@ -12,6 +12,7 @@ import { CrudHelperService } from "src/services/crud-helper.service";
12
12
  import { RoleMetadata } from '../entities/role-metadata.entity';
13
13
  import { PermissionMetadata } from '../entities/permission-metadata.entity';
14
14
  import { CreateRoleMetadataDto } from '../dtos/create-role-metadata.dto';
15
+ import { ERROR_MESSAGES } from 'src/constants/error-messages';
15
16
 
16
17
  @Injectable()
17
18
  export class RoleMetadataService extends CRUDService<RoleMetadata> {
@@ -180,7 +181,7 @@ export class RoleMetadataService extends CRUDService<RoleMetadata> {
180
181
  });
181
182
 
182
183
  if (!role) {
183
- throw new Error(`Role ${roleName} not found.`);
184
+ throw new Error(ERROR_MESSAGES.ROLE_NOT_FOUND(roleName));
184
185
  }
185
186
 
186
187
  // modify the permissions array.
@@ -194,7 +195,7 @@ export class RoleMetadataService extends CRUDService<RoleMetadata> {
194
195
  where: { name },
195
196
  });
196
197
  if (!existingPermission) {
197
- throw new NotFoundException(`Permission ${name} does not exist`)
198
+ throw new NotFoundException(ERROR_MESSAGES.PERMISSION_NOT_EXIST(name));
198
199
  }
199
200
  return existingPermission;
200
201
  }
@@ -1,6 +1,7 @@
1
1
  import { Injectable } from "@nestjs/common";
2
2
  import { SqlExpression, SqlExpressionOperator } from "./question-data-providers/chartjs-sql-data-provider.service";
3
3
  import { RequestContextService } from "./request-context.service";
4
+ import { ERROR_MESSAGES } from "src/constants/error-messages";
4
5
 
5
6
  export interface SqlReplacementResult {
6
7
  rawSql: string;
@@ -117,7 +118,7 @@ export class SqlExpressionResolverService {
117
118
  break;
118
119
 
119
120
  default:
120
- throw new Error(`Unsupported SQL operator: ${expr.operator}`);
121
+ throw new Error(ERROR_MESSAGES.UNSUPPORTED_SQL_OPERATOR(expr.operator));
121
122
  }
122
123
  simplifiedSql = simplifiedSql.replace(placeholder, sqlFragment);
123
124
  }
@@ -15,6 +15,7 @@ import { RoleMetadata } from '../entities/role-metadata.entity';
15
15
  import { User } from '../entities/user.entity';
16
16
  import { ActiveUserData } from '../interfaces/active-user-data.interface';
17
17
  import { iamConfig } from 'src/config/iam.config';
18
+ import { ERROR_MESSAGES } from 'src/constants/error-messages';
18
19
 
19
20
  @Injectable()
20
21
  export class UserService extends CRUDService<User> {
@@ -42,7 +43,7 @@ export class UserService extends CRUDService<User> {
42
43
  override async delete(id: number, solidRequestContext: any = {}) {
43
44
  // Prevent user from deleting themselves
44
45
  if (solidRequestContext?.activeUser?.sub === id) {
45
- throw new BadRequestException('Deleting logged-in user is not allowed');
46
+ throw new BadRequestException(ERROR_MESSAGES.DELETE_SELF_NOT_ALLOWED);
46
47
  }
47
48
 
48
49
  // ✅ Proceed with the default deletion logic
@@ -51,12 +52,12 @@ export class UserService extends CRUDService<User> {
51
52
 
52
53
  override async deleteMany(ids: number[], solidRequestContext: any = {}): Promise<any> {
53
54
  if (!ids || ids.length === 0) {
54
- throw new Error('At least one ID is required for deletion');
55
+ throw new Error(ERROR_MESSAGES.DELETE_IDS_REQUIRED);
55
56
  }
56
57
 
57
58
  // ❌ If the active user is trying to delete themselves
58
59
  if (solidRequestContext?.activeUser?.sub && ids.includes(solidRequestContext.activeUser.id)) {
59
- throw new BadRequestException('Deleting logged-in user is not allowed');
60
+ throw new BadRequestException(ERROR_MESSAGES.DELETE_SELF_NOT_ALLOWED);
60
61
  }
61
62
 
62
63
  return super.deleteMany(ids, solidRequestContext);
@@ -105,7 +106,7 @@ export class UserService extends CRUDService<User> {
105
106
  }
106
107
  });
107
108
  if (!user) {
108
- throw new Error(`User not found.`);
109
+ throw new Error(ERROR_MESSAGES.USER_NOT_FOUND);
109
110
  }
110
111
  const roles = updateDto.roles ? updateDto.roles : [];
111
112
  await this.addRolesToUser(user.username, roles);
@@ -121,11 +122,11 @@ export class UserService extends CRUDService<User> {
121
122
  }
122
123
  });
123
124
  if (!user) {
124
- throw new Error(`User with username '${username}' not found.`);
125
+ throw new Error(ERROR_MESSAGES.USER_NOT_FOUND_BY_USERNAME(username));
125
126
  }
126
127
  const role = await this.roleRepository.findOne({ where: { name: roleName } });
127
128
  if (!role) {
128
- throw new Error(`Role '${roleName}' not found.`);
129
+ throw new Error(ERROR_MESSAGES.ROLE_NOT_FOUND(roleName));
129
130
  }
130
131
 
131
132
  if (user.roles && user.roles.length > 0) {
@@ -145,7 +146,7 @@ export class UserService extends CRUDService<User> {
145
146
  });
146
147
 
147
148
  if (!user) {
148
- throw new Error(`User with username '${username}' not found.`);
149
+ throw new Error(ERROR_MESSAGES.USER_NOT_FOUND_BY_USERNAME(username));
149
150
  }
150
151
 
151
152
  const roles = await this.roleRepository.find({
@@ -155,7 +156,7 @@ export class UserService extends CRUDService<User> {
155
156
  if (roles.length !== roleNames.length) {
156
157
  const foundRoleNames = roles.map(role => role.name);
157
158
  const missingRoles = roleNames.filter(roleName => !foundRoleNames.includes(roleName));
158
- throw new Error(`The following roles were not found: ${missingRoles.join(', ')}`);
159
+ throw new Error(ERROR_MESSAGES.ROLES_NOT_FOUND(missingRoles));
159
160
  }
160
161
 
161
162
  const currentRoles = user.roles.map(role => role.name);
@@ -189,7 +190,7 @@ export class UserService extends CRUDService<User> {
189
190
  });
190
191
 
191
192
  if (!user) {
192
- throw new Error(`User with username '${username}' not found.`);
193
+ throw new Error(ERROR_MESSAGES.USER_NOT_FOUND_BY_USERNAME(username));
193
194
  }
194
195
 
195
196
  // modify the permissions array.
@@ -261,7 +262,7 @@ export class UserService extends CRUDService<User> {
261
262
 
262
263
  async initializeRolesForNewUser(roles: string[], user: User) {
263
264
  if (!user.id) {
264
- throw new BadRequestException('User must exist before initializing roles');
265
+ throw new BadRequestException(ERROR_MESSAGES.USER_MISSING_ID);
265
266
  }
266
267
  let userRoles = [];
267
268
  // Default Internal user role assigned