@punks/backend-entity-manager 0.0.211 → 0.0.213
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 +173 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/buckets.d.ts +2 -2
- package/dist/cjs/types/abstractions/index.d.ts +2 -1
- package/dist/cjs/types/abstractions/media.d.ts +77 -0
- package/dist/cjs/types/abstractions/settings.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/media.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/errors/index.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/module.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/provider/media.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/settings/index.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/plugins/media/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/plugins/media/testing/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/plugins/media/testing/mock.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/services/media/index.d.ts +21 -0
- package/dist/cjs/types/platforms/nest/services/providers.d.ts +2 -1
- package/dist/cjs/types/providers/services.d.ts +8 -1
- package/dist/cjs/types/symbols/ioc.d.ts +3 -0
- package/dist/esm/index.js +172 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/buckets.d.ts +2 -2
- package/dist/esm/types/abstractions/index.d.ts +2 -1
- package/dist/esm/types/abstractions/media.d.ts +77 -0
- package/dist/esm/types/abstractions/settings.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/media.d.ts +12 -0
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +3 -0
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/errors/index.d.ts +3 -0
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/module.d.ts +5 -0
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/provider/media.d.ts +11 -0
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/settings/index.d.ts +12 -0
- package/dist/esm/types/platforms/nest/plugins/media/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/plugins/media/testing/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/plugins/media/testing/mock.d.ts +10 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +6 -0
- package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/services/media/index.d.ts +21 -0
- package/dist/esm/types/platforms/nest/services/providers.d.ts +2 -1
- package/dist/esm/types/providers/services.d.ts +8 -1
- package/dist/esm/types/symbols/ioc.d.ts +3 -0
- package/dist/index.d.ts +121 -3
- package/package.json +1 -1
- package/dist/cjs/types/utils/labels.d.ts +0 -2
- package/dist/esm/types/utils/labels.d.ts +0 -2
package/dist/cjs/index.js
CHANGED
|
@@ -46,7 +46,6 @@ const getOperationLabel = (operation) => {
|
|
|
46
46
|
return "find";
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
|
|
50
49
|
class EntityManagerException extends Error {
|
|
51
50
|
constructor(message) {
|
|
52
51
|
super(message);
|
|
@@ -1212,6 +1211,9 @@ const GlobalServices = {
|
|
|
1212
1211
|
IBucketProvider: "IBucketProvider",
|
|
1213
1212
|
ISecretsProvider: "ISecretsProvider",
|
|
1214
1213
|
IFileProvider: "IFileProvider",
|
|
1214
|
+
IMediaProvider: "IMediaProvider",
|
|
1215
|
+
IMediaFolderRepository: "IMediaFolderRepository",
|
|
1216
|
+
IMediaReferenceRepository: "IMediaReferenceRepository",
|
|
1215
1217
|
},
|
|
1216
1218
|
Settings: {
|
|
1217
1219
|
EntityManagerSettings: "EntityManagerSettings",
|
|
@@ -1416,6 +1418,10 @@ class EntitiesServiceLocator {
|
|
|
1416
1418
|
const settings = this.resolveSettings();
|
|
1417
1419
|
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IFileProvider, settings.defaultFilesProvider);
|
|
1418
1420
|
}
|
|
1421
|
+
resolveDefaultMediaProvider() {
|
|
1422
|
+
const settings = this.resolveSettings();
|
|
1423
|
+
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IMediaProvider, settings.defaultMediaProvider);
|
|
1424
|
+
}
|
|
1419
1425
|
resolveCacheInstance(name) {
|
|
1420
1426
|
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.ICacheInstance, name);
|
|
1421
1427
|
}
|
|
@@ -1449,6 +1455,25 @@ class EntitiesServiceLocator {
|
|
|
1449
1455
|
this.provider.registerMultiple(GlobalServices.Authentication.IAuthenticationMiddleware, name, instance);
|
|
1450
1456
|
return this;
|
|
1451
1457
|
}
|
|
1458
|
+
resolveMediaReferenceRepository() {
|
|
1459
|
+
return this.provider.resolve(GlobalServices.Plugins.IMediaReferenceRepository);
|
|
1460
|
+
}
|
|
1461
|
+
registerMediaReferenceRepository(instance) {
|
|
1462
|
+
this.provider.register(GlobalServices.Plugins.IMediaReferenceRepository, instance);
|
|
1463
|
+
}
|
|
1464
|
+
resolveMediaFolderRepository() {
|
|
1465
|
+
return this.provider.resolve(GlobalServices.Plugins.IMediaFolderRepository);
|
|
1466
|
+
}
|
|
1467
|
+
registerMediaFolderRepository(instance) {
|
|
1468
|
+
this.provider.register(GlobalServices.Plugins.IMediaFolderRepository, instance);
|
|
1469
|
+
}
|
|
1470
|
+
resolveMediaProvider(providerId) {
|
|
1471
|
+
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IMediaProvider, providerId);
|
|
1472
|
+
}
|
|
1473
|
+
registerMediaProvider(name, instance) {
|
|
1474
|
+
this.provider.registerMultiple(GlobalServices.Plugins.IMediaProvider, name, instance);
|
|
1475
|
+
return this;
|
|
1476
|
+
}
|
|
1452
1477
|
resolveFileProvider(providerId) {
|
|
1453
1478
|
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IFileProvider, providerId);
|
|
1454
1479
|
}
|
|
@@ -3314,6 +3339,9 @@ const EntityManagerSymbols = {
|
|
|
3314
3339
|
EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
|
|
3315
3340
|
EmailLogger: Symbol.for("WP:EMAIL_LOGGER"),
|
|
3316
3341
|
BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
|
|
3342
|
+
MediaProvider: Symbol.for("WP:MEDIA_PROVIDER"),
|
|
3343
|
+
MediaReferenceRepository: Symbol.for("WP:MEDIA_REFERENCE_REPOSITORY"),
|
|
3344
|
+
MediaFolderRepository: Symbol.for("WP:MEDIA_FOLDER_REPOSITORY"),
|
|
3317
3345
|
SecretsProvider: Symbol.for("WP:SECRETS_PROVIDER"),
|
|
3318
3346
|
FileProvider: Symbol.for("WP:FILE_PROVIDER"),
|
|
3319
3347
|
FileReferenceRepository: Symbol.for("WP:FILE_REFERENCE_REPO"),
|
|
@@ -3389,6 +3417,10 @@ const WpEntityManager = (entityName, props = {}) => common.applyDecorators(commo
|
|
|
3389
3417
|
...props,
|
|
3390
3418
|
}));
|
|
3391
3419
|
|
|
3420
|
+
const WpMediaProvider = (providerId) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.MediaProvider, {
|
|
3421
|
+
providerId,
|
|
3422
|
+
}));
|
|
3423
|
+
|
|
3392
3424
|
const WpEntityQueryBuilder = (entityName, props = {}) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EntityQueryBuilder, {
|
|
3393
3425
|
entityName,
|
|
3394
3426
|
...props,
|
|
@@ -21240,6 +21272,92 @@ exports.EntityManagerService = __decorate([
|
|
|
21240
21272
|
__metadata("design:paramtypes", [exports.EntityManagerRegistry])
|
|
21241
21273
|
], exports.EntityManagerService);
|
|
21242
21274
|
|
|
21275
|
+
exports.MediaLibraryService = class MediaLibraryService {
|
|
21276
|
+
constructor(registry) {
|
|
21277
|
+
this.registry = registry;
|
|
21278
|
+
}
|
|
21279
|
+
async mediaUpload(input) {
|
|
21280
|
+
const reference = await this.defaultMediaProvider.mediaUpload(input);
|
|
21281
|
+
await this.mediaReferenceRepository.createReference(reference, input.folderId);
|
|
21282
|
+
return reference;
|
|
21283
|
+
}
|
|
21284
|
+
async mediaDelete(input) {
|
|
21285
|
+
await this.getMediaProvider(this.parseReferenceProviderId(input)).mediaDelete(input);
|
|
21286
|
+
await this.mediaReferenceRepository.deleteReference(input);
|
|
21287
|
+
}
|
|
21288
|
+
async mediaDownload(input) {
|
|
21289
|
+
return await this.getMediaProvider(this.parseReferenceProviderId(input)).mediaDownload(input);
|
|
21290
|
+
}
|
|
21291
|
+
async folderCreate(input) {
|
|
21292
|
+
return await this.mediaFolderRepository.folderCreate({
|
|
21293
|
+
name: input.folderName,
|
|
21294
|
+
parentId: input.parentId,
|
|
21295
|
+
});
|
|
21296
|
+
}
|
|
21297
|
+
async folderMove(input) {
|
|
21298
|
+
await this.mediaFolderRepository.folderMove(input.id, input.folderId);
|
|
21299
|
+
}
|
|
21300
|
+
async folderRename(input) {
|
|
21301
|
+
await this.mediaFolderRepository.folderRename(input.id, input.folderName ?? "");
|
|
21302
|
+
}
|
|
21303
|
+
async folderDelete(input) {
|
|
21304
|
+
const folderFiles = await this.mediaReferenceRepository.getFolderReferences(input.id);
|
|
21305
|
+
if (folderFiles.length > 0) {
|
|
21306
|
+
throw new Error("Cannot delete folder with files inside");
|
|
21307
|
+
}
|
|
21308
|
+
const subfolders = await this.mediaFolderRepository.foldersList(input.id);
|
|
21309
|
+
if (subfolders.length > 0) {
|
|
21310
|
+
throw new Error("Cannot delete folder with subfolders inside");
|
|
21311
|
+
}
|
|
21312
|
+
await this.mediaFolderRepository.folderDelete(input.id);
|
|
21313
|
+
}
|
|
21314
|
+
async foldersList(parent) {
|
|
21315
|
+
const subfolders = await this.mediaFolderRepository.foldersList(parent?.id);
|
|
21316
|
+
return subfolders.map((f) => ({
|
|
21317
|
+
id: f.id,
|
|
21318
|
+
name: f.name,
|
|
21319
|
+
}));
|
|
21320
|
+
}
|
|
21321
|
+
async getFolderMedia(input) {
|
|
21322
|
+
const folderFiles = await this.mediaReferenceRepository.getFolderReferences(input.id);
|
|
21323
|
+
return folderFiles.map((f) => ({
|
|
21324
|
+
ref: f.ref,
|
|
21325
|
+
fileName: this.getMediaProvider(this.parseReferenceProviderId(f)).getFileName(f),
|
|
21326
|
+
}));
|
|
21327
|
+
}
|
|
21328
|
+
parseReferenceProviderId(ref) {
|
|
21329
|
+
return ref.ref.split(":")[0];
|
|
21330
|
+
}
|
|
21331
|
+
getMediaProvider(providerId) {
|
|
21332
|
+
return this.registry
|
|
21333
|
+
.getContainer()
|
|
21334
|
+
.getEntitiesServicesLocator()
|
|
21335
|
+
.resolveMediaProvider(providerId);
|
|
21336
|
+
}
|
|
21337
|
+
get defaultMediaProvider() {
|
|
21338
|
+
return this.registry
|
|
21339
|
+
.getContainer()
|
|
21340
|
+
.getEntitiesServicesLocator()
|
|
21341
|
+
.resolveDefaultMediaProvider();
|
|
21342
|
+
}
|
|
21343
|
+
get mediaFolderRepository() {
|
|
21344
|
+
return this.registry
|
|
21345
|
+
.getContainer()
|
|
21346
|
+
.getEntitiesServicesLocator()
|
|
21347
|
+
.resolveMediaFolderRepository();
|
|
21348
|
+
}
|
|
21349
|
+
get mediaReferenceRepository() {
|
|
21350
|
+
return this.registry
|
|
21351
|
+
.getContainer()
|
|
21352
|
+
.getEntitiesServicesLocator()
|
|
21353
|
+
.resolveMediaReferenceRepository();
|
|
21354
|
+
}
|
|
21355
|
+
};
|
|
21356
|
+
exports.MediaLibraryService = __decorate([
|
|
21357
|
+
common.Injectable(),
|
|
21358
|
+
__metadata("design:paramtypes", [exports.EntityManagerRegistry])
|
|
21359
|
+
], exports.MediaLibraryService);
|
|
21360
|
+
|
|
21243
21361
|
exports.EmailService = class EmailService {
|
|
21244
21362
|
constructor(registry) {
|
|
21245
21363
|
this.registry = registry;
|
|
@@ -22174,8 +22292,9 @@ const Services$1 = [
|
|
|
22174
22292
|
exports.EmailService,
|
|
22175
22293
|
exports.EventsService,
|
|
22176
22294
|
exports.FilesService,
|
|
22177
|
-
exports.
|
|
22295
|
+
exports.MediaLibraryService,
|
|
22178
22296
|
exports.SecretsService,
|
|
22297
|
+
exports.TrackingService,
|
|
22179
22298
|
];
|
|
22180
22299
|
|
|
22181
22300
|
const IoC = [exports.EntityManagerRegistry];
|
|
@@ -22244,6 +22363,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
22244
22363
|
await this.registerEmailLogger();
|
|
22245
22364
|
await this.registerFilesReferenceRepositoryProviders();
|
|
22246
22365
|
await this.registerFileProviders();
|
|
22366
|
+
await this.registerMediaProviders();
|
|
22367
|
+
await this.registerMediaReferenceRepositoryProviders();
|
|
22368
|
+
await this.registerMediaFolderRepositoryProviders();
|
|
22247
22369
|
await this.registerGlobalAuthenticationMiddlewares();
|
|
22248
22370
|
await this.registerBucketProviders();
|
|
22249
22371
|
await this.registerSecretsProviders();
|
|
@@ -22351,6 +22473,44 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
22351
22473
|
this.logger.log(`File provider ${provider.discoveredClass.name} registered 🚜`);
|
|
22352
22474
|
}
|
|
22353
22475
|
}
|
|
22476
|
+
async registerMediaProviders() {
|
|
22477
|
+
const providers = await this.discoverMediaProviders();
|
|
22478
|
+
if (!providers.length) {
|
|
22479
|
+
this.logger.warn("No media providers found ⚠️");
|
|
22480
|
+
return;
|
|
22481
|
+
}
|
|
22482
|
+
for (const provider of providers) {
|
|
22483
|
+
this.registry
|
|
22484
|
+
.getContainer()
|
|
22485
|
+
.getEntitiesServicesLocator()
|
|
22486
|
+
.registerMediaProvider(provider.meta.providerId, provider.discoveredClass.instance);
|
|
22487
|
+
this.logger.log(`Media provider ${provider.discoveredClass.name} registered 🚜`);
|
|
22488
|
+
}
|
|
22489
|
+
}
|
|
22490
|
+
async registerMediaReferenceRepositoryProviders() {
|
|
22491
|
+
const providers = await this.discoverMediaReferenceRepositories();
|
|
22492
|
+
if (!providers.length) {
|
|
22493
|
+
this.logger.warn("No media reference repository ⚠️");
|
|
22494
|
+
return;
|
|
22495
|
+
}
|
|
22496
|
+
this.registry
|
|
22497
|
+
.getContainer()
|
|
22498
|
+
.getEntitiesServicesLocator()
|
|
22499
|
+
.registerMediaReferenceRepository(providers[0].discoveredClass.instance);
|
|
22500
|
+
this.logger.log(`Media Reference Repository ${providers[0].discoveredClass.name} registered 🚜`);
|
|
22501
|
+
}
|
|
22502
|
+
async registerMediaFolderRepositoryProviders() {
|
|
22503
|
+
const providers = await this.discoverMediaFolderRepositories();
|
|
22504
|
+
if (!providers.length) {
|
|
22505
|
+
this.logger.warn("No media folder repository ⚠️");
|
|
22506
|
+
return;
|
|
22507
|
+
}
|
|
22508
|
+
this.registry
|
|
22509
|
+
.getContainer()
|
|
22510
|
+
.getEntitiesServicesLocator()
|
|
22511
|
+
.registerMediaFolderRepository(providers[0].discoveredClass.instance);
|
|
22512
|
+
this.logger.log(`Media Folder Repository ${providers[0].discoveredClass.name} registered 🚜`);
|
|
22513
|
+
}
|
|
22354
22514
|
async registerGlobalAuthenticationMiddlewares() {
|
|
22355
22515
|
const providers = await this.discoverGlobalAuthenticationMiddlewares();
|
|
22356
22516
|
for (const provider of providers) {
|
|
@@ -22548,6 +22708,15 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
22548
22708
|
async discoverFilesReferenceRepositoryProviders() {
|
|
22549
22709
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.FileReferenceRepository);
|
|
22550
22710
|
}
|
|
22711
|
+
async discoverMediaProviders() {
|
|
22712
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.MediaProvider);
|
|
22713
|
+
}
|
|
22714
|
+
async discoverMediaReferenceRepositories() {
|
|
22715
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.MediaReferenceRepository);
|
|
22716
|
+
}
|
|
22717
|
+
async discoverMediaFolderRepositories() {
|
|
22718
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.MediaFolderRepository);
|
|
22719
|
+
}
|
|
22551
22720
|
};
|
|
22552
22721
|
exports.EntityManagerInitializer = EntityManagerInitializer_1 = __decorate([
|
|
22553
22722
|
common.Injectable(),
|
|
@@ -28961,7 +29130,7 @@ exports.AuthenticationEmailTemplates = AuthenticationEmailTemplates;
|
|
|
28961
29130
|
exports.AuthenticationError = AuthenticationError;
|
|
28962
29131
|
exports.AuthenticationEvents = AuthenticationEvents;
|
|
28963
29132
|
exports.AuthenticationExtensionSymbols = AuthenticationExtensionSymbols;
|
|
28964
|
-
exports.
|
|
29133
|
+
exports.AwsS3BucketError = AwsS3BucketError;
|
|
28965
29134
|
exports.AwsSesEmailTemplate = AwsSesEmailTemplate;
|
|
28966
29135
|
exports.CurrentUser = CurrentUser;
|
|
28967
29136
|
exports.EntityManagerConfigurationError = EntityManagerConfigurationError;
|
|
@@ -29024,6 +29193,7 @@ exports.WpEventsTracker = WpEventsTracker;
|
|
|
29024
29193
|
exports.WpFileProvider = WpFileProvider;
|
|
29025
29194
|
exports.WpFileReferenceRepository = WpFileReferenceRepository;
|
|
29026
29195
|
exports.WpGlobalAuthenticationMiddleware = WpGlobalAuthenticationMiddleware;
|
|
29196
|
+
exports.WpMediaProvider = WpMediaProvider;
|
|
29027
29197
|
exports.WpPermissionsService = WpPermissionsService;
|
|
29028
29198
|
exports.WpPipeline = WpPipeline;
|
|
29029
29199
|
exports.WpRolesService = WpRolesService;
|