@punks/backend-entity-manager 0.0.120 → 0.0.121

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/cjs/index.js CHANGED
@@ -672,7 +672,7 @@ class EntitiesExportCommand {
672
672
  return this.services.resolveSearchQuery().execute(filters ?? {});
673
673
  }
674
674
  get bucket() {
675
- return this.services.getRootServices().resolveBucketProvider();
675
+ return this.services.getRootServices().resolveDefaultBucketProvider();
676
676
  }
677
677
  }
678
678
 
@@ -726,7 +726,7 @@ class EntitiesImportCommand {
726
726
  return `${this.settings.exportBucket.rootFolderPath ?? ""}/imports/${createDayPath(new Date())}/${relativePath}`;
727
727
  }
728
728
  get bucket() {
729
- return this.services.getRootServices().resolveBucketProvider();
729
+ return this.services.getRootServices().resolveDefaultBucketProvider();
730
730
  }
731
731
  }
732
732
 
@@ -766,7 +766,7 @@ class EntitiesSampleDownloadCommand {
766
766
  return `${this.settings.exportBucket.rootFolderPath ?? ""}/samples/${createDayPath(new Date())}/${relativePath}`;
767
767
  }
768
768
  get bucket() {
769
- return this.services.getRootServices().resolveBucketProvider();
769
+ return this.services.getRootServices().resolveDefaultBucketProvider();
770
770
  }
771
771
  }
772
772
 
@@ -993,6 +993,7 @@ class EntityActions {
993
993
  class ServiceLocator {
994
994
  constructor() {
995
995
  this.services = {};
996
+ this.multipleServices = {};
996
997
  }
997
998
  all() {
998
999
  return this.services;
@@ -1000,6 +1001,15 @@ class ServiceLocator {
1000
1001
  register(name, service) {
1001
1002
  this.services[name] = service;
1002
1003
  }
1004
+ registerMultiple(serviceName, instanceName, service) {
1005
+ if (!this.services[serviceName]) {
1006
+ this.multipleServices[serviceName] = {};
1007
+ }
1008
+ if (this.multipleServices[serviceName][instanceName]) {
1009
+ throw new Error(`Service instance "${serviceName}" already registered in ServiceLocator`);
1010
+ }
1011
+ this.multipleServices[serviceName][instanceName] = service;
1012
+ }
1003
1013
  registerEntityService(serviceName, entityName, service) {
1004
1014
  this.register(this.buildServiceName(serviceName, entityName), service);
1005
1015
  }
@@ -1013,6 +1023,24 @@ class ServiceLocator {
1013
1023
  }
1014
1024
  return service;
1015
1025
  }
1026
+ resolveMultiple(serviceName, options) {
1027
+ const services = this.multipleServices[serviceName];
1028
+ if (!services && !options?.optional) {
1029
+ throw new Error(`Service type "${serviceName}" not found in ServiceLocator`);
1030
+ }
1031
+ return Object.entries(services).map(([, value]) => value);
1032
+ }
1033
+ resolveMultipleNamed(serviceName, instanceName, options) {
1034
+ const services = this.multipleServices[serviceName];
1035
+ if (!services && !options?.optional) {
1036
+ throw new Error(`Service type "${serviceName}" not found in ServiceLocator`);
1037
+ }
1038
+ const service = services[instanceName];
1039
+ if (!service && !options?.optional) {
1040
+ throw new Error(`Service instance "${serviceName}" not found in ServiceLocator`);
1041
+ }
1042
+ return service;
1043
+ }
1016
1044
  resolveEntityService(serviceName, entityName, options) {
1017
1045
  return this.resolve(this.buildServiceName(serviceName, entityName), options);
1018
1046
  }
@@ -1111,6 +1139,9 @@ const GlobalServices = {
1111
1139
  IEmailTemplatesCollection: "IEmailTemplatesCollection",
1112
1140
  IBucketProvider: "IBucketProvider",
1113
1141
  },
1142
+ Settings: {
1143
+ EntityManagerSettings: "EntityManagerSettings",
1144
+ },
1114
1145
  Versioning: {
1115
1146
  IEntityVersioningProvider: "IEntityVersioningProvider",
1116
1147
  },
@@ -1267,6 +1298,13 @@ class EntitiesServiceLocator {
1267
1298
  getProvider() {
1268
1299
  return this.provider;
1269
1300
  }
1301
+ registerSettings(settings) {
1302
+ this.provider.register(GlobalServices.Settings.EntityManagerSettings, settings);
1303
+ return this;
1304
+ }
1305
+ resolveSettings() {
1306
+ return this.provider.resolve(GlobalServices.Settings.EntityManagerSettings);
1307
+ }
1270
1308
  resolveEventEmitter() {
1271
1309
  return this.provider.resolve(GlobalServices.Events.IEventEmitter, {
1272
1310
  optional: true,
@@ -1287,11 +1325,15 @@ class EntitiesServiceLocator {
1287
1325
  registerEntityVersioningProvider(instance) {
1288
1326
  this.provider.register(GlobalServices.Versioning.IEntityVersioningProvider, instance);
1289
1327
  }
1290
- resolveBucketProvider() {
1291
- return this.provider.resolve(GlobalServices.Plugins.IBucketProvider);
1328
+ resolveDefaultBucketProvider() {
1329
+ const settings = this.resolveSettings();
1330
+ return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IBucketProvider, settings.defaultBuckerProvider);
1331
+ }
1332
+ resolveBucketProviders() {
1333
+ return this.provider.resolveMultiple(GlobalServices.Plugins.IBucketProvider);
1292
1334
  }
1293
- registerBucketProvider(instance) {
1294
- this.provider.register(GlobalServices.Plugins.IBucketProvider, instance);
1335
+ registerBucketProvider(name, instance) {
1336
+ this.provider.registerMultiple(GlobalServices.Plugins.IBucketProvider, name, instance);
1295
1337
  }
1296
1338
  resolveEventsTracker() {
1297
1339
  return this.provider.resolve(GlobalServices.Events.IEventsTracker);
@@ -21188,6 +21230,10 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
21188
21230
  this.logger.log(`Discovered entities: \n${sortedEntities
21189
21231
  .map((x) => x.discoveredClass.name)
21190
21232
  .join(" \n")}`);
21233
+ this.registry
21234
+ .getContainer()
21235
+ .getEntitiesServicesLocator()
21236
+ .registerSettings(staticProviders.settings);
21191
21237
  for (const entity of sortedEntities) {
21192
21238
  const entityName = entity.meta.name;
21193
21239
  const repository = repositoriesDict[entityName];
@@ -21247,12 +21293,13 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
21247
21293
  this.logger.warn("No bucket providers found ⚠️");
21248
21294
  return;
21249
21295
  }
21250
- // todo: handle multiple trackers
21251
- this.registry
21252
- .getContainer()
21253
- .getEntitiesServicesLocator()
21254
- .registerBucketProvider(providers[0].discoveredClass.instance);
21255
- this.logger.log(`Bucket provider ${providers[0].discoveredClass.name} registered 🚜`);
21296
+ for (const provider of providers) {
21297
+ this.registry
21298
+ .getContainer()
21299
+ .getEntitiesServicesLocator()
21300
+ .registerBucketProvider(provider.meta.providerId, provider.discoveredClass.instance);
21301
+ this.logger.log(`Bucket provider ${provider.discoveredClass.name} registered 🚜`);
21302
+ }
21256
21303
  }
21257
21304
  async registerEventTrackingProviders() {
21258
21305
  const providers = await this.discoverEventTrackingProviders();
@@ -22287,10 +22334,10 @@ class NestPipelineTemplate {
22287
22334
  }
22288
22335
  }
22289
22336
 
22290
- class AwsS2BucketError extends Error {
22337
+ class AwsS3BucketError extends Error {
22291
22338
  constructor(message) {
22292
22339
  super(message);
22293
- this.name = "AwsS2BucketError";
22340
+ this.name = "AwsS3BucketError";
22294
22341
  }
22295
22342
  }
22296
22343
 
@@ -22318,7 +22365,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22318
22365
  }));
22319
22366
  }
22320
22367
  catch (e) {
22321
- throw new AwsS2BucketError(`AWS BUCKET | listObjectsV2 | ${input.bucket} | ${input.path} | Error -> ${e.message}`);
22368
+ throw new AwsS3BucketError(`AWS BUCKET | listObjectsV2 | ${input.bucket} | ${input.path} | Error -> ${e.message}`);
22322
22369
  }
22323
22370
  }
22324
22371
  async folderEnsure(input) {
@@ -22335,7 +22382,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22335
22382
  }));
22336
22383
  }
22337
22384
  catch (e) {
22338
- throw new AwsS2BucketError(`AwsS3Bucket | folderCreate | ${input.bucket} | ${input.path} | Error -> ${e.message}`);
22385
+ throw new AwsS3BucketError(`AwsS3Bucket | folderCreate | ${input.bucket} | ${input.path} | Error -> ${e.message}`);
22339
22386
  }
22340
22387
  }
22341
22388
  async folderExists(input) {
@@ -22347,7 +22394,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22347
22394
  return (result.ContentLength ?? 0) > 0;
22348
22395
  }
22349
22396
  catch (e) {
22350
- throw new AwsS2BucketError(`AwsS3Bucket | folderExists | Error -> ${e.message}`);
22397
+ throw new AwsS3BucketError(`AwsS3Bucket | folderExists | Error -> ${e.message}`);
22351
22398
  }
22352
22399
  }
22353
22400
  async fileDownload(input) {
@@ -22359,7 +22406,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22359
22406
  return result.Body;
22360
22407
  }
22361
22408
  catch (e) {
22362
- throw new AwsS2BucketError(`AWS BUCKET | downloadFile | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22409
+ throw new AwsS3BucketError(`AWS BUCKET | downloadFile | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22363
22410
  }
22364
22411
  }
22365
22412
  async filePublicUrlCreate(input) {
@@ -22372,7 +22419,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22372
22419
  });
22373
22420
  }
22374
22421
  catch (e) {
22375
- throw new AwsS2BucketError(`AwsS3Bucket | filePublicUrlCreate | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22422
+ throw new AwsS3BucketError(`AwsS3Bucket | filePublicUrlCreate | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22376
22423
  }
22377
22424
  }
22378
22425
  async fileUpload(input) {
@@ -22385,7 +22432,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22385
22432
  }));
22386
22433
  }
22387
22434
  catch (e) {
22388
- throw new AwsS2BucketError(`AwsS3Bucket | fileUpload | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22435
+ throw new AwsS3BucketError(`AwsS3Bucket | fileUpload | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22389
22436
  }
22390
22437
  }
22391
22438
  async fileDelete(input) {
@@ -22396,7 +22443,7 @@ exports.AwsS3BucketProvider = class AwsS3BucketProvider {
22396
22443
  }));
22397
22444
  }
22398
22445
  catch (e) {
22399
- throw new AwsS2BucketError(`AwsS3Bucket | fileDelete | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22446
+ throw new AwsS3BucketError(`AwsS3Bucket | fileDelete | ${input.bucket} | ${input.filePath} | Error -> ${e.message}`);
22400
22447
  }
22401
22448
  }
22402
22449
  };
@@ -22485,7 +22532,7 @@ exports.InMemoryBucketProvider = class InMemoryBucketProvider {
22485
22532
  }
22486
22533
  };
22487
22534
  exports.InMemoryBucketProvider = __decorate([
22488
- WpBucketProvider("in-memory")
22535
+ WpBucketProvider("inMemory")
22489
22536
  ], exports.InMemoryBucketProvider);
22490
22537
 
22491
22538
  const AwsSesModuleSymbols = {
@@ -27735,7 +27782,7 @@ exports.AuthenticationEmailTemplates = AuthenticationEmailTemplates;
27735
27782
  exports.AuthenticationError = AuthenticationError;
27736
27783
  exports.AuthenticationEvents = AuthenticationEvents;
27737
27784
  exports.AuthenticationExtensionSymbols = AuthenticationExtensionSymbols;
27738
- exports.AwsS2BucketError = AwsS2BucketError;
27785
+ exports.AwsS2BucketError = AwsS3BucketError;
27739
27786
  exports.AwsSesEmailTemplate = AwsSesEmailTemplate;
27740
27787
  exports.BooleanFacet = BooleanFacet;
27741
27788
  exports.BooleanFacetItem = BooleanFacetItem;