@solidstarters/solid-core 1.2.170 → 1.2.171

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 (83) hide show
  1. package/dist/config/iam.config.d.ts +2 -0
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +2 -1
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  6. package/dist/controllers/authentication.controller.js +0 -8
  7. package/dist/controllers/authentication.controller.js.map +1 -1
  8. package/dist/controllers/email-template.controller.d.ts +1 -1
  9. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  10. package/dist/controllers/email-template.controller.js +3 -6
  11. package/dist/controllers/email-template.controller.js.map +1 -1
  12. package/dist/controllers/google-authentication.controller.d.ts +3 -3
  13. package/dist/controllers/google-authentication.controller.d.ts.map +1 -1
  14. package/dist/controllers/google-authentication.controller.js +5 -8
  15. package/dist/controllers/google-authentication.controller.js.map +1 -1
  16. package/dist/controllers/media.controller.d.ts +1 -1
  17. package/dist/controllers/media.controller.d.ts.map +1 -1
  18. package/dist/controllers/media.controller.js +1 -5
  19. package/dist/controllers/media.controller.js.map +1 -1
  20. package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
  21. package/dist/controllers/model-metadata.controller.js +0 -5
  22. package/dist/controllers/model-metadata.controller.js.map +1 -1
  23. package/dist/controllers/otp-authentication.controller.js +0 -3
  24. package/dist/controllers/otp-authentication.controller.js.map +1 -1
  25. package/dist/controllers/service.controller.d.ts +2 -2
  26. package/dist/controllers/service.controller.d.ts.map +1 -1
  27. package/dist/controllers/service.controller.js +3 -7
  28. package/dist/controllers/service.controller.js.map +1 -1
  29. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  30. package/dist/controllers/sms-template.controller.js +0 -3
  31. package/dist/controllers/sms-template.controller.js.map +1 -1
  32. package/dist/entities/user.entity.d.ts +3 -0
  33. package/dist/entities/user.entity.d.ts.map +1 -1
  34. package/dist/entities/user.entity.js +13 -1
  35. package/dist/entities/user.entity.js.map +1 -1
  36. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.d.ts +2 -1
  37. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.d.ts.map +1 -1
  38. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.js +3 -3
  39. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.js.map +1 -1
  40. package/dist/passport-strategies/local.strategy.js +1 -1
  41. package/dist/passport-strategies/local.strategy.js.map +1 -1
  42. package/dist/seeders/seed-data/solid-core-metadata.json +43 -0
  43. package/dist/services/authentication.service.d.ts +2 -1
  44. package/dist/services/authentication.service.d.ts.map +1 -1
  45. package/dist/services/authentication.service.js +28 -5
  46. package/dist/services/authentication.service.js.map +1 -1
  47. package/dist/services/bcrypt.service.d.ts +11 -1
  48. package/dist/services/bcrypt.service.d.ts.map +1 -1
  49. package/dist/services/bcrypt.service.js +35 -5
  50. package/dist/services/bcrypt.service.js.map +1 -1
  51. package/dist/services/crud.service.d.ts.map +1 -1
  52. package/dist/services/crud.service.js +2 -1
  53. package/dist/services/crud.service.js.map +1 -1
  54. package/dist/services/hashing.service.d.ts +4 -1
  55. package/dist/services/hashing.service.d.ts.map +1 -1
  56. package/dist/services/hashing.service.js.map +1 -1
  57. package/dist/solid-core.module.d.ts.map +1 -1
  58. package/dist/solid-core.module.js +46 -61
  59. package/dist/solid-core.module.js.map +1 -1
  60. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  61. package/dist/subscribers/audit.subscriber.js +1 -1
  62. package/dist/subscribers/audit.subscriber.js.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +1 -1
  65. package/src/config/iam.config.ts +2 -1
  66. package/src/controllers/authentication.controller.ts +8 -10
  67. package/src/controllers/email-template.controller.ts +7 -10
  68. package/src/controllers/google-authentication.controller.ts +9 -10
  69. package/src/controllers/media.controller.ts +5 -6
  70. package/src/controllers/model-metadata.controller.ts +5 -6
  71. package/src/controllers/otp-authentication.controller.ts +2 -2
  72. package/src/controllers/service.controller.ts +8 -9
  73. package/src/controllers/sms-template.controller.ts +3 -4
  74. package/src/entities/user.entity.ts +9 -0
  75. package/src/helpers/field-crud-managers/PasswordFieldCrudManager.ts +4 -3
  76. package/src/passport-strategies/local.strategy.ts +1 -1
  77. package/src/seeders/seed-data/solid-core-metadata.json +43 -0
  78. package/src/services/authentication.service.ts +32 -3
  79. package/src/services/bcrypt.service.ts +45 -7
  80. package/src/services/crud.service.ts +2 -1
  81. package/src/services/hashing.service.ts +5 -2
  82. package/src/solid-core.module.ts +59 -61
  83. package/src/subscribers/audit.subscriber.ts +6 -1
@@ -83,16 +83,16 @@ import { ApiEmailQueuePublisher } from './jobs/api-email-publisher.service';
83
83
  import { ApiEmailQueueSubscriber } from './jobs/api-email-subscriber.service';
84
84
  import { TestQueuePublisherDatabase } from './jobs/database/test-queue-publisher-database.service';
85
85
  import { TestQueueSubscriberDatabase } from './jobs/database/test-queue-subscriber-database.service';
86
- import { SmtpEmailQueuePublisherRabbitmq } from './jobs/smtp-email-publisher.service';
87
- import { SmtpEmailQueueSubscriberRabbitmq } from './jobs/smtp-email-subscriber.service';
86
+ import { Msg91WhatsappQueuePublisher } from './jobs/msg91-whatsapp-publisher.service';
87
+ import { Msg91WhatsappQueueSubscriber } from './jobs/msg91-whatsapp-subscriber.service';
88
88
  import { OTPQueuePublisher } from './jobs/otp-publisher.service';
89
89
  import { OTPQueueSubscriber } from './jobs/otp-subscriber.service';
90
90
  import { SmsQueuePublisher } from './jobs/sms-publisher.service';
91
91
  import { SmsQueueSubscriber } from './jobs/sms-subscriber.service';
92
+ import { SmtpEmailQueuePublisherRabbitmq } from './jobs/smtp-email-publisher.service';
93
+ import { SmtpEmailQueueSubscriberRabbitmq } from './jobs/smtp-email-subscriber.service';
92
94
  import { TestQueuePublisher } from './jobs/test-queue-publisher.service';
93
95
  import { TestQueueSubscriber } from './jobs/test-queue-subscriber.service';
94
- import { Msg91WhatsappQueuePublisher } from './jobs/msg91-whatsapp-publisher.service';
95
- import { Msg91WhatsappQueueSubscriber } from './jobs/msg91-whatsapp-subscriber.service';
96
96
  import { UserRegistrationListener } from './listeners/user-registration.listener';
97
97
  import { GoogleOauthStrategy } from './passport-strategies/google-oauth.strategy';
98
98
  import { LocalStrategy } from './passport-strategies/local.strategy';
@@ -175,36 +175,61 @@ import { ApiEmailQueuePublisherDatabase } from './jobs/database/api-email-publis
175
175
  import { ApiEmailQueueSubscriberDatabase } from './jobs/database/api-email-subscriber-database.service';
176
176
  import { ComputedFieldEvaluationPublisherDatabase } from './jobs/database/computed-field-evaluation-publisher-database.service';
177
177
  import { ComputedFieldEvaluationSubscriberDatabase } from './jobs/database/computed-field-evaluation-subscriber-database.service';
178
- import { SmtpEmailQueuePublisherDatabase } from './jobs/database/smtp-email-publisher-database.service';
179
- import { SmtpEmailQueueSubscriberDatabase } from './jobs/database/smtp-email-subscriber-database.service';
180
178
  import { GenerateCodePublisherDatabase } from './jobs/database/generate-code-publisher-database.service';
181
179
  import { GenerateCodeSubscriberDatabase } from './jobs/database/generate-code-subscriber-database.service';
182
180
  import { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-database.service';
183
181
  import { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';
184
182
  import { SmsQueuePublisherDatabase } from './jobs/database/sms-publisher-database.service';
185
183
  import { SmsQueueSubscriberDatabase } from './jobs/database/sms-subscriber-database.service';
184
+ import { SmtpEmailQueuePublisherDatabase } from './jobs/database/smtp-email-publisher-database.service';
185
+ import { SmtpEmailQueueSubscriberDatabase } from './jobs/database/smtp-email-subscriber-database.service';
186
186
 
187
187
  import { TwilioSmsQueuePublisherDatabase } from './jobs/database/twilio-sms-publisher-database.service';
188
188
  import { TwilioSmsQueueSubscriberDatabase } from './jobs/database/twilio-sms-subscriber-database.service';
189
189
 
190
190
 
191
- import { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';
192
- import { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';
191
+ import { ThrottlerModule } from '@nestjs/throttler';
192
+ import { IngestCommand } from './commands/ingest.command';
193
+ import { MailFactory } from './factories/mail.factory';
194
+ import { ErrorMapperService } from './helpers/error-mapper.service';
195
+ import { SolidCoreErrorCodesProvider } from './helpers/solid-core-error-codes-provider.service';
196
+ import { ComputedFieldEvaluationPublisherRabbitmq } from './jobs/computed-field-evaluation-publisher.service';
197
+ import { ComputedFieldEvaluationSubscriberRabbitmq } from './jobs/computed-field-evaluation-subscriber.service';
193
198
  import { Msg91WhatsappQueuePublisherDatabase } from './jobs/database/msg91-whatsapp-publisher-database.service';
194
199
  import { Msg91WhatsappQueueSubscriberDatabase } from './jobs/database/msg91-whatsapp-subscriber-database.service';
200
+ import { Three60WhatsappQueuePublisherDatabase } from './jobs/database/three60-whatsapp-publisher-database.service';
201
+ import { Three60WhatsappQueueSubscriberDatabase } from './jobs/database/three60-whatsapp-subscriber-database.service';
202
+ import { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';
203
+ import { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';
204
+ import { GenerateCodePublisherRabbitmq } from './jobs/generate-code-publisher.service';
205
+ import { GenerateCodeSubscriberRabbitmq } from './jobs/generate-code-subscriber.service';
206
+ import { Three60WhatsappQueuePublisher } from './jobs/three60-whatsapp-publisher.service';
207
+ import { Three60WhatsappQueueSubscriber } from './jobs/three60-whatsapp-subscriber.service';
208
+ import { TriggerMcpClientPublisherRabbitmq } from './jobs/trigger-mcp-client-publisher.service';
209
+ import { TriggerMcpClientSubscriberRabbitmq } from './jobs/trigger-mcp-client-subscriber.service';
210
+ import { TwilioSmsQueuePublisherRabbitmq } from './jobs/twilio-sms-publisher.service';
211
+ import { TwilioSmsQueueSubscriberRabbitmq } from './jobs/twilio-sms-subscriber.service';
195
212
  import { DashboardMapper } from './mappers/dashboard-mapper';
213
+ import { ListOfValuesMapper } from './mappers/list-of-values-mapper';
214
+ import { ChatterMessageDetailsRepository } from './repository/chatter-message-details.repository';
215
+ import { ChatterMessageRepository } from './repository/chatter-message.repository';
196
216
  import { DashboardRepository } from './repository/dashboard.repository';
197
217
  import { FieldMetadataRepository } from './repository/field-metadata.repository';
198
218
  import { FieldRepository } from './repository/field.repository';
199
219
  import { MediaRepository } from './repository/media.repository';
220
+ import { ScheduledJobRepository } from './repository/scheduled-job.repository';
200
221
  import { SecurityRuleRepository } from './repository/security-rule.repository';
222
+ import { UserRepository } from './repository/user.repository';
223
+ import { ViewMetadataRepository } from './repository/view-metadata.repository';
201
224
  import { PermissionMetadataSeederService } from './seeders/permission-metadata-seeder.service';
202
225
  import { SystemFieldsSeederService } from './seeders/system-fields-seeder.service';
203
226
  import { AiInteractionService } from './services/ai-interaction.service';
204
227
  import { ChatterMessageDetailsService } from './services/chatter-message-details.service';
205
228
  import { ChatterMessageService } from './services/chatter-message.service';
206
229
  import { ConcatComputedFieldProvider } from './services/computed-fields/concat-computed-field-provider.service';
230
+ import { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';
207
231
  import { ConcatEntityComputedFieldProvider } from './services/computed-fields/entity/concat-entity-computed-field-provider.service';
232
+ import { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';
208
233
  import { CRUDService } from './services/crud.service';
209
234
  import { CsvService } from './services/csv.service';
210
235
  import { DashboardQuestionSqlDatasetConfigService } from './services/dashboard-question-sql-dataset-config.service';
@@ -216,16 +241,24 @@ import { DashboardService } from './services/dashboard.service';
216
241
  import { ExcelService } from './services/excel.service';
217
242
  import { ExportTemplateService } from './services/export-template.service';
218
243
  import { ExportTransactionService } from './services/export-transaction.service';
244
+ import { IngestMetadataService } from './services/genai/ingest-metadata.service';
245
+ import { R2RHelperService } from './services/genai/r2r-helper.service';
219
246
  import { ImportTransactionErrorLogService } from './services/import-transaction-error-log.service';
220
247
  import { ImportTransactionService } from './services/import-transaction.service';
248
+ import { ListOfValuesMetadataService } from './services/list-of-values-metadata.service';
221
249
  import { LocaleService } from './services/locale.service';
222
250
  import { McpToolResponseHandlerFactory } from './services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service';
251
+ import { SolidAddFieldMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service';
223
252
  import { SolidCreateDashboardMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service';
224
253
  import { SolidCreateDashboardQuestionMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service';
225
254
  import { SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service';
255
+ import { SolidCreateDashboardWidgetMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service';
256
+ import { SolidCreateModelWithFieldsMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service';
226
257
  import { SolidCreateModuleMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service';
258
+ import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service';
227
259
  import { FileS3StorageProvider } from './services/mediaStorageProviders/file-s3-storage-provider';
228
260
  import { FileStorageProvider } from './services/mediaStorageProviders/file-storage-provider';
261
+ import { PollerService } from './services/poller.service';
229
262
  import { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';
230
263
  import { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';
231
264
  import { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';
@@ -241,10 +274,13 @@ import { ListOfDashboardVariableProvidersSelectionProvider } from './services/se
241
274
  import { ListOfScheduledJobsSelectionProvider } from './services/selection-providers/list-of-scheduled-jobs-selection-provider.service';
242
275
  import { LocaleListSelectionProvider } from './services/selection-providers/locale-list-selection-provider.service';
243
276
  import { SettingService } from './services/setting.service';
277
+ import { TwilioSMSService } from './services/sms/TwilioSMSService';
244
278
  import { SqlExpressionResolverService } from './services/sql-expression-resolver.service';
279
+ import { TextractService } from './services/textract.service';
245
280
  import { UserActivityHistoryService } from './services/user-activity-history.service';
246
281
  import { UserViewMetadataService } from './services/user-view-metadata.service';
247
282
  import { UserService } from './services/user.service';
283
+ import { Three60WhatsappService } from './services/whatsapp/Three60WhatsappService';
248
284
  import { AuditSubscriber } from './subscribers/audit.subscriber';
249
285
  import { ComputedEntityFieldSubscriber } from './subscribers/computed-entity-field.subscriber';
250
286
  import { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';
@@ -252,48 +288,10 @@ import { DashboardQuestionSqlDatasetConfigSubscriber } from './subscribers/dashb
252
288
  import { DashboardQuestionSubscriber } from './subscribers/dashboard-question.subscriber';
253
289
  import { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';
254
290
  import { DashboardSubscriber } from './subscribers/dashboard.subscriber';
291
+ import { ListOfValuesMetadataSubscriber } from './subscribers/list-of-values-metadata.subscriber';
292
+ import { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';
255
293
  import { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';
256
294
  import { ViewMetadataSubsciber } from './subscribers/view-metadata.subscriber';
257
- import { SolidCreateDashboardWidgetMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service';
258
- import { SolidCreateModelWithFieldsMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service';
259
- import { SolidAddFieldMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service';
260
- import { ViewMetadataRepository } from './repository/view-metadata.repository';
261
- import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service';
262
- import { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';
263
- import { ScheduledJobRepository } from './repository/scheduled-job.repository';
264
- import { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';
265
- import { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';
266
- import { ListOfValuesMapper } from './mappers/list-of-values-mapper';
267
- import { ListOfValuesMetadataSubscriber } from './subscribers/list-of-values-metadata.subscriber';
268
- import { ListOfValuesMetadataService } from './services/list-of-values-metadata.service';
269
- import { MailFactory } from './factories/mail.factory';
270
- import { TwilioSMSService } from './services/sms/TwilioSMSService';
271
- import { PollerService } from './services/poller.service';
272
- import { TextractService } from './services/textract.service';
273
- import { seconds, ThrottlerModule } from '@nestjs/throttler';
274
- import { ChatterMessageRepository } from './repository/chatter-message.repository';
275
- import { ChatterMessageDetailsRepository } from './repository/chatter-message-details.repository';
276
- import { Three60WhatsappQueuePublisher } from './jobs/three60-whatsapp-publisher.service';
277
- import { Three60WhatsappQueueSubscriber } from './jobs/three60-whatsapp-subscriber.service';
278
- import { Three60WhatsappQueuePublisherDatabase } from './jobs/database/three60-whatsapp-publisher-database.service';
279
- import { Three60WhatsappQueueSubscriberDatabase } from './jobs/database/three60-whatsapp-subscriber-database.service';
280
- import { Three60WhatsappService } from './services/whatsapp/Three60WhatsappService';
281
- import { ThrottlerStorageRedisService } from '@nest-lab/throttler-storage-redis/src/throttler-storage-redis.service';
282
- import { isRedisConfigured } from './helpers/environment.helper';
283
- import { UserRepository } from './repository/user.repository';
284
- import { ErrorMapperService } from './helpers/error-mapper.service';
285
- import { IngestCommand } from './commands/ingest.command';
286
- import { R2RHelperService } from './services/genai/r2r-helper.service';
287
- import { IngestMetadataService } from './services/genai/ingest-metadata.service';
288
- import { ComputedFieldEvaluationPublisherRabbitmq } from './jobs/computed-field-evaluation-publisher.service';
289
- import { ComputedFieldEvaluationSubscriberRabbitmq } from './jobs/computed-field-evaluation-subscriber.service';
290
- import { GenerateCodePublisherRabbitmq } from './jobs/generate-code-publisher.service';
291
- import { GenerateCodeSubscriberRabbitmq } from './jobs/generate-code-subscriber.service';
292
- import { TriggerMcpClientPublisherRabbitmq } from './jobs/trigger-mcp-client-publisher.service';
293
- import { TriggerMcpClientSubscriberRabbitmq } from './jobs/trigger-mcp-client-subscriber.service';
294
- import { TwilioSmsQueuePublisherRabbitmq } from './jobs/twilio-sms-publisher.service';
295
- import { TwilioSmsQueueSubscriberRabbitmq } from './jobs/twilio-sms-subscriber.service';
296
- import { SolidCoreErrorCodesProvider } from './helpers/solid-core-error-codes-provider.service';
297
295
 
298
296
 
299
297
  @Global()
@@ -368,19 +366,19 @@ import { SolidCoreErrorCodesProvider } from './helpers/solid-core-error-codes-pr
368
366
  HttpModule,
369
367
  ConfigModule,
370
368
  ClsModule,
371
- ThrottlerModule.forRootAsync({
372
- imports: [ConfigModule],
373
- inject: [ConfigService],
374
- useFactory: (configService: ConfigService) => ({
375
- throttlers: [
376
- { name: 'short', ttl: seconds(10), limit: 10 },
377
- { name: 'login', ttl: seconds(10), limit: 5 },
378
- { name: 'burst', ttl: seconds(1), limit: 100 },
379
- { name: 'sustained', ttl: seconds(300), limit: 500 },
380
- ],
381
- storage: isRedisConfigured(configService) ? new ThrottlerStorageRedisService(`redis://${configService.get<string>('REDIS_HOST')}:${configService.get<string>('REDIS_PORT')}`) : undefined,
382
- }),
383
- }),
369
+ // ThrottlerModule.forRootAsync({
370
+ // imports: [ConfigModule],
371
+ // inject: [ConfigService],
372
+ // useFactory: (configService: ConfigService) => ({
373
+ // throttlers: [
374
+ // { name: 'short', ttl: seconds(10), limit: 10 },
375
+ // { name: 'login', ttl: seconds(10), limit: 5 },
376
+ // { name: 'burst', ttl: seconds(1), limit: 100 },
377
+ // { name: 'sustained', ttl: seconds(300), limit: 500 },
378
+ // ],
379
+ // storage: isRedisConfigured(configService) ? new ThrottlerStorageRedisService(`redis://${configService.get<string>('REDIS_HOST')}:${configService.get<string>('REDIS_PORT')}`) : undefined,
380
+ // }),
381
+ // }),
384
382
  ],
385
383
  controllers: [
386
384
  ModuleMetadataController,
@@ -64,7 +64,12 @@ export class AuditSubscriber implements EntitySubscriberInterface {
64
64
  return false;
65
65
  }
66
66
 
67
- return auditFields.some(field => {
67
+ // if (!entity) {
68
+ // console.warn(`[AuditSubscriber] Skipping audit for ${metadata.name} – entity is undefined or null`);
69
+ // return false;
70
+ // }
71
+
72
+ return entity && auditFields.some(field => {
68
73
  const fieldValue = entity[field.name];
69
74
  return fieldValue !== undefined && fieldValue !== null;
70
75
  });