@punks/backend-entity-manager 0.0.185 → 0.0.188

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 (60) hide show
  1. package/dist/cjs/index.js +91 -1
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/cache.d.ts +21 -0
  4. package/dist/cjs/types/abstractions/index.d.ts +1 -0
  5. package/dist/cjs/types/integrations/cache/index.d.ts +1 -0
  6. package/dist/cjs/types/integrations/cache/typeorm/index.d.ts +2 -0
  7. package/dist/cjs/types/integrations/cache/typeorm/instance.d.ts +21 -0
  8. package/dist/cjs/types/integrations/cache/typeorm/types.d.ts +9 -0
  9. package/dist/cjs/types/integrations/index.d.ts +1 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/appCacheEntry.entity.d.ts +9 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities.d.ts +2 -1
  12. package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  13. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/cache/module.d.ts +2 -0
  14. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/cache/providers/default-instance/index.d.ts +6 -0
  15. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/cache/providers/index.d.ts +2 -0
  16. package/dist/cjs/types/platforms/nest/__test__/tests/caching/caching.test.d.ts +1 -0
  17. package/dist/cjs/types/platforms/nest/decorators/cache.d.ts +4 -0
  18. package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
  19. package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
  20. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/handlers.d.ts +2 -1
  21. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-impersonate/index.d.ts +12 -0
  22. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-impersonate/types.d.ts +8 -0
  23. package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +5 -1
  24. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -0
  25. package/dist/cjs/types/platforms/nest/services/cache/index.d.ts +7 -0
  26. package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
  27. package/dist/cjs/types/platforms/nest/services/providers.d.ts +2 -1
  28. package/dist/cjs/types/providers/services.d.ts +4 -1
  29. package/dist/cjs/types/symbols/ioc.d.ts +1 -0
  30. package/dist/esm/index.js +91 -2
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/types/abstractions/cache.d.ts +21 -0
  33. package/dist/esm/types/abstractions/index.d.ts +1 -0
  34. package/dist/esm/types/integrations/cache/index.d.ts +1 -0
  35. package/dist/esm/types/integrations/cache/typeorm/index.d.ts +2 -0
  36. package/dist/esm/types/integrations/cache/typeorm/instance.d.ts +21 -0
  37. package/dist/esm/types/integrations/cache/typeorm/types.d.ts +9 -0
  38. package/dist/esm/types/integrations/index.d.ts +1 -0
  39. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/appCacheEntry.entity.d.ts +9 -0
  40. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities.d.ts +2 -1
  41. package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  42. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/cache/module.d.ts +2 -0
  43. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/cache/providers/default-instance/index.d.ts +6 -0
  44. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/cache/providers/index.d.ts +2 -0
  45. package/dist/esm/types/platforms/nest/__test__/tests/caching/caching.test.d.ts +1 -0
  46. package/dist/esm/types/platforms/nest/decorators/cache.d.ts +4 -0
  47. package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
  48. package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
  49. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/handlers.d.ts +2 -1
  50. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-impersonate/index.d.ts +12 -0
  51. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-impersonate/types.d.ts +8 -0
  52. package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +5 -1
  53. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -0
  54. package/dist/esm/types/platforms/nest/services/cache/index.d.ts +7 -0
  55. package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
  56. package/dist/esm/types/platforms/nest/services/providers.d.ts +2 -1
  57. package/dist/esm/types/providers/services.d.ts +4 -1
  58. package/dist/esm/types/symbols/ioc.d.ts +1 -0
  59. package/dist/index.d.ts +61 -2
  60. package/package.json +3 -3
package/dist/cjs/index.js CHANGED
@@ -1186,6 +1186,7 @@ const GlobalServices = {
1186
1186
  IPipelineController: "IPipelineController",
1187
1187
  },
1188
1188
  Plugins: {
1189
+ ICacheInstance: "ICacheInstance",
1189
1190
  IEmailProvider: "IEmailProvider",
1190
1191
  IEmailLogger: "IEmailLogger",
1191
1192
  IEmailTemplatesCollection: "IEmailTemplatesCollection",
@@ -1395,6 +1396,16 @@ class EntitiesServiceLocator {
1395
1396
  const settings = this.resolveSettings();
1396
1397
  return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IFileProvider, settings.defaultFilesProvider);
1397
1398
  }
1399
+ resolveCacheInstance(name) {
1400
+ return this.provider.resolveMultipleNamed(GlobalServices.Plugins.ICacheInstance, name);
1401
+ }
1402
+ resolveCacheInstances() {
1403
+ return this.provider.resolveMultiple(GlobalServices.Plugins.ICacheInstance);
1404
+ }
1405
+ registerCacheInstance(name, instance) {
1406
+ this.provider.registerMultiple(GlobalServices.Plugins.ICacheInstance, name, instance);
1407
+ return this;
1408
+ }
1398
1409
  resolveBucketProviders() {
1399
1410
  return this.provider.resolveMultiple(GlobalServices.Plugins.IFileProvider);
1400
1411
  }
@@ -2404,6 +2415,7 @@ const EntityManagerSymbols = {
2404
2415
  FileProvider: Symbol.for("WP:FILE_PROVIDER"),
2405
2416
  FileReferenceRepository: Symbol.for("WP:FILE_REFERENCE_REPO"),
2406
2417
  PipelineTemplate: Symbol.for("WP:PIPELINE_TEMPLATE"),
2418
+ CacheInstance: Symbol.for("WP:CACHE_INSTANCE"),
2407
2419
  };
2408
2420
 
2409
2421
  const WpEntityAuthMiddleware = (entityName, props = {}) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EntityAuthMiddleware, {
@@ -2415,6 +2427,10 @@ const WpBucketProvider = (providerId) => common.applyDecorators(common.Injectabl
2415
2427
  providerId,
2416
2428
  }));
2417
2429
 
2430
+ const WpCacheInstance = (instanceName) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.CacheInstance, {
2431
+ instanceName,
2432
+ }));
2433
+
2418
2434
  const WpEntityActions = (entityName, props = {}) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EntityActions, {
2419
2435
  entityName,
2420
2436
  ...props,
@@ -20360,6 +20376,28 @@ exports.EmailService = __decorate([
20360
20376
  __metadata("design:paramtypes", [exports.EntityManagerRegistry])
20361
20377
  ], exports.EmailService);
20362
20378
 
20379
+ exports.CacheService = class CacheService {
20380
+ constructor(registry) {
20381
+ this.registry = registry;
20382
+ }
20383
+ getInstance(instanceName) {
20384
+ return this.registry
20385
+ .getContainer()
20386
+ .getEntitiesServicesLocator()
20387
+ .resolveCacheInstance(instanceName);
20388
+ }
20389
+ getInstances() {
20390
+ return this.registry
20391
+ .getContainer()
20392
+ .getEntitiesServicesLocator()
20393
+ .resolveCacheInstances();
20394
+ }
20395
+ };
20396
+ exports.CacheService = __decorate([
20397
+ common.Injectable(),
20398
+ __metadata("design:paramtypes", [exports.EntityManagerRegistry])
20399
+ ], exports.CacheService);
20400
+
20363
20401
  exports.FilesService = class FilesService {
20364
20402
  constructor(registry) {
20365
20403
  this.registry = registry;
@@ -21085,12 +21123,43 @@ UserDeleteHandler = __decorate([
21085
21123
  __metadata("design:paramtypes", [AuthenticationServicesResolver])
21086
21124
  ], UserDeleteHandler);
21087
21125
 
21126
+ let UserImpersonateHandler = class UserImpersonateHandler {
21127
+ constructor(services, jwtProvider) {
21128
+ this.services = services;
21129
+ this.jwtProvider = jwtProvider;
21130
+ }
21131
+ async execute(input) {
21132
+ const user = await this.resolveUser(input.userName, input.context);
21133
+ if (!user) {
21134
+ throw new Error(`User ${input.userName} not found`);
21135
+ }
21136
+ return {
21137
+ token: await this.generateUserJwtToken(user, input.context),
21138
+ };
21139
+ }
21140
+ async generateUserJwtToken(user, context) {
21141
+ return await this.jwtProvider.sign(extractUserTokenData(user, context));
21142
+ }
21143
+ async resolveUser(userName, context) {
21144
+ return ((await this.services
21145
+ .getUsersService()
21146
+ .getByUserName(userName, context)) ??
21147
+ (await this.services.getUsersService().getByEmail(userName, context)));
21148
+ }
21149
+ };
21150
+ UserImpersonateHandler = __decorate([
21151
+ common.Injectable(),
21152
+ __metadata("design:paramtypes", [AuthenticationServicesResolver,
21153
+ JwtProvider])
21154
+ ], UserImpersonateHandler);
21155
+
21088
21156
  exports.AuthenticationService = class AuthenticationService {
21089
- constructor(userCreationHandler, userDisableHandler, userDeleteHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler, resolver) {
21157
+ constructor(userCreationHandler, userDisableHandler, userDeleteHandler, userEnableHandler, userImpersonateHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler, resolver) {
21090
21158
  this.userCreationHandler = userCreationHandler;
21091
21159
  this.userDisableHandler = userDisableHandler;
21092
21160
  this.userDeleteHandler = userDeleteHandler;
21093
21161
  this.userEnableHandler = userEnableHandler;
21162
+ this.userImpersonateHandler = userImpersonateHandler;
21094
21163
  this.userLoginHandler = userLoginHandler;
21095
21164
  this.userPasswordChangeHandler = userPasswordChangeHandler;
21096
21165
  this.userPasswordResetFinalizeHandler = userPasswordResetFinalizeHandler;
@@ -21113,6 +21182,9 @@ exports.AuthenticationService = class AuthenticationService {
21113
21182
  async userEnable(input) {
21114
21183
  await this.userEnableHandler.execute(input);
21115
21184
  }
21185
+ async userImpersonate(input) {
21186
+ return await this.userImpersonateHandler.execute(input);
21187
+ }
21116
21188
  async userLogin(input) {
21117
21189
  return await this.userLoginHandler.execute(input);
21118
21190
  }
@@ -21153,6 +21225,7 @@ exports.AuthenticationService = __decorate([
21153
21225
  UserDisableHandler,
21154
21226
  UserDeleteHandler,
21155
21227
  UserEnableHandler,
21228
+ UserImpersonateHandler,
21156
21229
  UserLoginHandler,
21157
21230
  UserPasswordChangeHandler,
21158
21231
  UserPasswordResetCompleteHandler,
@@ -21169,6 +21242,7 @@ const Services$2 = [exports.AuthenticationService];
21169
21242
  const Services$1 = [
21170
21243
  exports.AppSessionService,
21171
21244
  exports.AppHashingService,
21245
+ exports.CacheService,
21172
21246
  exports.EntityManagerService,
21173
21247
  exports.EmailService,
21174
21248
  exports.EventsService,
@@ -21505,6 +21579,7 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
21505
21579
  await this.registerFilesReferenceRepositoryProviders();
21506
21580
  await this.registerFileProviders();
21507
21581
  await this.registerBucketProviders();
21582
+ await this.registerCacheInstances();
21508
21583
  await this.executeInitializers(app);
21509
21584
  await this.executeSeeders();
21510
21585
  this.logger.log("Entity manager initialization completed 🚀");
@@ -21622,6 +21697,16 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
21622
21697
  this.logger.log(`Bucket provider ${provider.discoveredClass.name} registered 🚜`);
21623
21698
  }
21624
21699
  }
21700
+ async registerCacheInstances() {
21701
+ const providers = await this.discoverCacheInstances();
21702
+ for (const provider of providers) {
21703
+ this.registry
21704
+ .getContainer()
21705
+ .getEntitiesServicesLocator()
21706
+ .registerCacheInstance(provider.meta.instanceName, provider.discoveredClass.instance);
21707
+ this.logger.log(`Cache instance ${provider.meta.instanceName} -> ${provider.discoveredClass.name} registered 🚜`);
21708
+ }
21709
+ }
21625
21710
  async registerFilesReferenceRepositoryProviders() {
21626
21711
  const providers = await this.discoverFilesReferenceRepositoryProviders();
21627
21712
  if (!providers.length) {
@@ -21756,6 +21841,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
21756
21841
  async discoverBucketProviders() {
21757
21842
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.BucketProvider);
21758
21843
  }
21844
+ async discoverCacheInstances() {
21845
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.CacheInstance);
21846
+ }
21759
21847
  async discoverFileProviders() {
21760
21848
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.FileProvider);
21761
21849
  }
@@ -21925,6 +22013,7 @@ const UserHandlers = [
21925
22013
  UserDisableHandler,
21926
22014
  UserDeleteHandler,
21927
22015
  UserEnableHandler,
22016
+ UserImpersonateHandler,
21928
22017
  UserLoginHandler,
21929
22018
  UserPasswordChangeHandler,
21930
22019
  UserPasswordResetCompleteHandler,
@@ -28455,6 +28544,7 @@ exports.SendgridEmailTemplate = SendgridEmailTemplate;
28455
28544
  exports.WpAppInitializer = WpAppInitializer;
28456
28545
  exports.WpAwsSesEmailTemplate = WpAwsSesEmailTemplate;
28457
28546
  exports.WpBucketProvider = WpBucketProvider;
28547
+ exports.WpCacheInstance = WpCacheInstance;
28458
28548
  exports.WpEmailLogger = WpEmailLogger;
28459
28549
  exports.WpEmailProvider = WpEmailProvider;
28460
28550
  exports.WpEmailTemplate = WpEmailTemplate;