@punks/backend-entity-manager 0.0.121 → 0.0.122
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 +248 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/files.d.ts +64 -0
- package/dist/cjs/types/abstractions/index.d.ts +1 -0
- package/dist/cjs/types/abstractions/settings.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/appFileReference.entity.d.ts +13 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/appFileReference.repository.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/decorators/files.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/provider/bucket.d.ts +14 -0
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/provider/files.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/provider/index.d.ts +2 -14
- package/dist/cjs/types/platforms/nest/plugins/buckets/aws-s3/settings/index.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/plugins/buckets/testing/mock.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/services/files/index.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/services/providers.d.ts +2 -1
- package/dist/cjs/types/providers/services.d.ts +8 -3
- package/dist/cjs/types/symbols/ioc.d.ts +4 -0
- package/dist/esm/index.js +250 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/files.d.ts +64 -0
- package/dist/esm/types/abstractions/index.d.ts +1 -0
- package/dist/esm/types/abstractions/settings.d.ts +2 -1
- package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/appFileReference.entity.d.ts +13 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/appFileReference.repository.d.ts +11 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
- package/dist/esm/types/platforms/nest/decorators/files.d.ts +7 -0
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +2 -0
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/provider/bucket.d.ts +14 -0
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/provider/files.d.ts +12 -0
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/provider/index.d.ts +2 -14
- package/dist/esm/types/platforms/nest/plugins/buckets/aws-s3/settings/index.d.ts +5 -0
- package/dist/esm/types/platforms/nest/plugins/buckets/testing/mock.d.ts +10 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/services/files/index.d.ts +12 -0
- package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/services/providers.d.ts +2 -1
- package/dist/esm/types/providers/services.d.ts +8 -3
- package/dist/esm/types/symbols/ioc.d.ts +4 -0
- package/dist/index.d.ts +96 -4
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -627,7 +627,7 @@ class EntitiesDeleteCommand {
|
|
|
627
627
|
}
|
|
628
628
|
}
|
|
629
629
|
|
|
630
|
-
const createDayPath = (d) => `${d.getFullYear()}/${(d.getMonth() + 1).toString().padStart(2, "0")}/${d
|
|
630
|
+
const createDayPath$1 = (d) => `${d.getFullYear()}/${(d.getMonth() + 1).toString().padStart(2, "0")}/${d
|
|
631
631
|
.getDate()
|
|
632
632
|
.toString()
|
|
633
633
|
.padStart(2, "0")}`;
|
|
@@ -666,7 +666,7 @@ class EntitiesExportCommand {
|
|
|
666
666
|
});
|
|
667
667
|
}
|
|
668
668
|
buildAbsoluteBucketPath(relativePath) {
|
|
669
|
-
return `${this.settings.exportBucket.rootFolderPath ?? ""}/exports/${createDayPath(new Date())}/${relativePath}`;
|
|
669
|
+
return `${this.settings.exportBucket.rootFolderPath ?? ""}/exports/${createDayPath$1(new Date())}/${relativePath}`;
|
|
670
670
|
}
|
|
671
671
|
async getExportEntities(filters) {
|
|
672
672
|
return this.services.resolveSearchQuery().execute(filters ?? {});
|
|
@@ -723,7 +723,7 @@ class EntitiesImportCommand {
|
|
|
723
723
|
});
|
|
724
724
|
}
|
|
725
725
|
buildAbsoluteBucketPath(relativePath) {
|
|
726
|
-
return `${this.settings.exportBucket.rootFolderPath ?? ""}/imports/${createDayPath(new Date())}/${relativePath}`;
|
|
726
|
+
return `${this.settings.exportBucket.rootFolderPath ?? ""}/imports/${createDayPath$1(new Date())}/${relativePath}`;
|
|
727
727
|
}
|
|
728
728
|
get bucket() {
|
|
729
729
|
return this.services.getRootServices().resolveDefaultBucketProvider();
|
|
@@ -763,7 +763,7 @@ class EntitiesSampleDownloadCommand {
|
|
|
763
763
|
});
|
|
764
764
|
}
|
|
765
765
|
buildAbsoluteBucketPath(relativePath) {
|
|
766
|
-
return `${this.settings.exportBucket.rootFolderPath ?? ""}/samples/${createDayPath(new Date())}/${relativePath}`;
|
|
766
|
+
return `${this.settings.exportBucket.rootFolderPath ?? ""}/samples/${createDayPath$1(new Date())}/${relativePath}`;
|
|
767
767
|
}
|
|
768
768
|
get bucket() {
|
|
769
769
|
return this.services.getRootServices().resolveDefaultBucketProvider();
|
|
@@ -1124,6 +1124,9 @@ const EntityServices = {
|
|
|
1124
1124
|
},
|
|
1125
1125
|
};
|
|
1126
1126
|
const GlobalServices = {
|
|
1127
|
+
Files: {
|
|
1128
|
+
IFilesReferenceRepo: "IFilesReferenceRepo",
|
|
1129
|
+
},
|
|
1127
1130
|
Events: {
|
|
1128
1131
|
IEventEmitter: "IEventEmitter",
|
|
1129
1132
|
IEventsTracker: "IEventsTracker",
|
|
@@ -1138,6 +1141,7 @@ const GlobalServices = {
|
|
|
1138
1141
|
IEmailProvider: "IEmailProvider",
|
|
1139
1142
|
IEmailTemplatesCollection: "IEmailTemplatesCollection",
|
|
1140
1143
|
IBucketProvider: "IBucketProvider",
|
|
1144
|
+
IFileProvider: "IFileProvider",
|
|
1141
1145
|
},
|
|
1142
1146
|
Settings: {
|
|
1143
1147
|
EntityManagerSettings: "EntityManagerSettings",
|
|
@@ -1327,13 +1331,31 @@ class EntitiesServiceLocator {
|
|
|
1327
1331
|
}
|
|
1328
1332
|
resolveDefaultBucketProvider() {
|
|
1329
1333
|
const settings = this.resolveSettings();
|
|
1330
|
-
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IBucketProvider, settings.
|
|
1334
|
+
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IBucketProvider, settings.defaultBucketProvider);
|
|
1335
|
+
}
|
|
1336
|
+
resolveDefaultFilesProvider() {
|
|
1337
|
+
const settings = this.resolveSettings();
|
|
1338
|
+
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IFileProvider, settings.defaultFilesProvider);
|
|
1331
1339
|
}
|
|
1332
1340
|
resolveBucketProviders() {
|
|
1333
|
-
return this.provider.resolveMultiple(GlobalServices.Plugins.
|
|
1341
|
+
return this.provider.resolveMultiple(GlobalServices.Plugins.IFileProvider);
|
|
1334
1342
|
}
|
|
1335
1343
|
registerBucketProvider(name, instance) {
|
|
1336
1344
|
this.provider.registerMultiple(GlobalServices.Plugins.IBucketProvider, name, instance);
|
|
1345
|
+
return this;
|
|
1346
|
+
}
|
|
1347
|
+
resolveFileProvider(providerId) {
|
|
1348
|
+
return this.provider.resolveMultipleNamed(GlobalServices.Plugins.IFileProvider, providerId);
|
|
1349
|
+
}
|
|
1350
|
+
registerFileProvider(name, instance) {
|
|
1351
|
+
this.provider.registerMultiple(GlobalServices.Plugins.IFileProvider, name, instance);
|
|
1352
|
+
return this;
|
|
1353
|
+
}
|
|
1354
|
+
resolveFilesReferenceRepositoryProviders() {
|
|
1355
|
+
return this.provider.resolve(GlobalServices.Files.IFilesReferenceRepo);
|
|
1356
|
+
}
|
|
1357
|
+
registerFilesReferenceRepositoryProviders(instance) {
|
|
1358
|
+
this.provider.register(GlobalServices.Files.IFilesReferenceRepo, instance);
|
|
1337
1359
|
}
|
|
1338
1360
|
resolveEventsTracker() {
|
|
1339
1361
|
return this.provider.resolve(GlobalServices.Events.IEventsTracker);
|
|
@@ -2219,6 +2241,8 @@ const EntityManagerSymbols = {
|
|
|
2219
2241
|
EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
|
|
2220
2242
|
EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
|
|
2221
2243
|
BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
|
|
2244
|
+
FileProvider: Symbol.for("WP:FILE_PROVIDER"),
|
|
2245
|
+
FileReferenceRepository: Symbol.for("WP:FILE_REFERENCE_REPO"),
|
|
2222
2246
|
PipelineTemplate: Symbol.for("WP:PIPELINE_TEMPLATE"),
|
|
2223
2247
|
};
|
|
2224
2248
|
|
|
@@ -20173,6 +20197,79 @@ exports.EmailService = __decorate([
|
|
|
20173
20197
|
__metadata("design:paramtypes", [exports.EntityManagerRegistry])
|
|
20174
20198
|
], exports.EmailService);
|
|
20175
20199
|
|
|
20200
|
+
exports.FilesService = class FilesService {
|
|
20201
|
+
constructor(registry) {
|
|
20202
|
+
this.registry = registry;
|
|
20203
|
+
}
|
|
20204
|
+
async uploadFile(file) {
|
|
20205
|
+
const uploadResult = await this.defaultFileProvider.uploadFile({
|
|
20206
|
+
content: file.content,
|
|
20207
|
+
contentType: file.contentType,
|
|
20208
|
+
fileName: file.fileName,
|
|
20209
|
+
});
|
|
20210
|
+
const record = await this.referencesRepo.createReference({
|
|
20211
|
+
providerId: uploadResult.reference,
|
|
20212
|
+
reference: uploadResult.reference,
|
|
20213
|
+
contentType: file.contentType,
|
|
20214
|
+
fileName: file.fileName,
|
|
20215
|
+
filePath: file.folderPath,
|
|
20216
|
+
fileSize: file.content.length,
|
|
20217
|
+
metadata: file.metadata,
|
|
20218
|
+
});
|
|
20219
|
+
return {
|
|
20220
|
+
fileId: record.fileId,
|
|
20221
|
+
providerId: record.providerId,
|
|
20222
|
+
reference: record.reference,
|
|
20223
|
+
};
|
|
20224
|
+
}
|
|
20225
|
+
async getFileContent(fileId) {
|
|
20226
|
+
const ref = await this.referencesRepo.getReference(fileId);
|
|
20227
|
+
const content = await this.getFileProvider(ref.providerId).downloadFile({
|
|
20228
|
+
reference: ref.reference,
|
|
20229
|
+
});
|
|
20230
|
+
return {
|
|
20231
|
+
content: content.content,
|
|
20232
|
+
contentType: ref.contentType,
|
|
20233
|
+
fileName: ref.fileName,
|
|
20234
|
+
folderPath: ref.filePath,
|
|
20235
|
+
metadata: ref.metadata,
|
|
20236
|
+
};
|
|
20237
|
+
}
|
|
20238
|
+
async getFileDownloadUrl(fileId) {
|
|
20239
|
+
const ref = await this.referencesRepo.getReference(fileId);
|
|
20240
|
+
const downloadUrl = await this.getFileProvider(ref.providerId).getFileProviderDownloadUrl({
|
|
20241
|
+
reference: ref.reference,
|
|
20242
|
+
});
|
|
20243
|
+
return {
|
|
20244
|
+
contentType: ref.contentType,
|
|
20245
|
+
fileName: ref.fileName,
|
|
20246
|
+
downloadUrl: downloadUrl.downloadUrl,
|
|
20247
|
+
};
|
|
20248
|
+
}
|
|
20249
|
+
getFileProvider(providerId) {
|
|
20250
|
+
return this.registry
|
|
20251
|
+
.getContainer()
|
|
20252
|
+
.getEntitiesServicesLocator()
|
|
20253
|
+
.resolveFileProvider(providerId);
|
|
20254
|
+
}
|
|
20255
|
+
get defaultFileProvider() {
|
|
20256
|
+
return this.registry
|
|
20257
|
+
.getContainer()
|
|
20258
|
+
.getEntitiesServicesLocator()
|
|
20259
|
+
.resolveDefaultFilesProvider();
|
|
20260
|
+
}
|
|
20261
|
+
get referencesRepo() {
|
|
20262
|
+
return this.registry
|
|
20263
|
+
.getContainer()
|
|
20264
|
+
.getEntitiesServicesLocator()
|
|
20265
|
+
.resolveFilesReferenceRepositoryProviders();
|
|
20266
|
+
}
|
|
20267
|
+
};
|
|
20268
|
+
exports.FilesService = __decorate([
|
|
20269
|
+
common.Injectable(),
|
|
20270
|
+
__metadata("design:paramtypes", [exports.EntityManagerRegistry])
|
|
20271
|
+
], exports.FilesService);
|
|
20272
|
+
|
|
20176
20273
|
exports.EventsService = class EventsService {
|
|
20177
20274
|
constructor(registry) {
|
|
20178
20275
|
this.registry = registry;
|
|
@@ -20903,6 +21000,7 @@ const Services$1 = [
|
|
|
20903
21000
|
exports.EntityManagerService,
|
|
20904
21001
|
exports.EmailService,
|
|
20905
21002
|
exports.EventsService,
|
|
21003
|
+
exports.FilesService,
|
|
20906
21004
|
exports.TrackingService,
|
|
20907
21005
|
];
|
|
20908
21006
|
|
|
@@ -21202,6 +21300,8 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21202
21300
|
await this.registerEmailProviders();
|
|
21203
21301
|
await this.registerEventTrackingProviders();
|
|
21204
21302
|
await this.registerVersioningProviders();
|
|
21303
|
+
await this.registerFilesReferenceRepositoryProviders();
|
|
21304
|
+
await this.registerFileProviders();
|
|
21205
21305
|
await this.registerBucketProviders();
|
|
21206
21306
|
await this.executeInitializers(app);
|
|
21207
21307
|
await this.executeSeeders();
|
|
@@ -21287,6 +21387,20 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21287
21387
|
this.logger.log(`Entity seeder initializer ${initializer.discoveredClass.name} initialized 💪`);
|
|
21288
21388
|
}
|
|
21289
21389
|
}
|
|
21390
|
+
async registerFileProviders() {
|
|
21391
|
+
const providers = await this.discoverFileProviders();
|
|
21392
|
+
if (!providers.length) {
|
|
21393
|
+
this.logger.warn("No file providers found ⚠️");
|
|
21394
|
+
return;
|
|
21395
|
+
}
|
|
21396
|
+
for (const provider of providers) {
|
|
21397
|
+
this.registry
|
|
21398
|
+
.getContainer()
|
|
21399
|
+
.getEntitiesServicesLocator()
|
|
21400
|
+
.registerFileProvider(provider.meta.providerId, provider.discoveredClass.instance);
|
|
21401
|
+
this.logger.log(`File provider ${provider.discoveredClass.name} registered 🚜`);
|
|
21402
|
+
}
|
|
21403
|
+
}
|
|
21290
21404
|
async registerBucketProviders() {
|
|
21291
21405
|
const providers = await this.discoverBucketProviders();
|
|
21292
21406
|
if (!providers.length) {
|
|
@@ -21301,6 +21415,18 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21301
21415
|
this.logger.log(`Bucket provider ${provider.discoveredClass.name} registered 🚜`);
|
|
21302
21416
|
}
|
|
21303
21417
|
}
|
|
21418
|
+
async registerFilesReferenceRepositoryProviders() {
|
|
21419
|
+
const providers = await this.discoverFilesReferenceRepositoryProviders();
|
|
21420
|
+
if (!providers.length) {
|
|
21421
|
+
this.logger.warn("No files repository ⚠️");
|
|
21422
|
+
return;
|
|
21423
|
+
}
|
|
21424
|
+
this.registry
|
|
21425
|
+
.getContainer()
|
|
21426
|
+
.getEntitiesServicesLocator()
|
|
21427
|
+
.registerFilesReferenceRepositoryProviders(providers[0].discoveredClass.instance);
|
|
21428
|
+
this.logger.log(`Files Reference Repository ${providers[0].discoveredClass.name} registered 🚜`);
|
|
21429
|
+
}
|
|
21304
21430
|
async registerEventTrackingProviders() {
|
|
21305
21431
|
const providers = await this.discoverEventTrackingProviders();
|
|
21306
21432
|
if (!providers.length) {
|
|
@@ -21405,6 +21531,12 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21405
21531
|
async discoverBucketProviders() {
|
|
21406
21532
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.BucketProvider);
|
|
21407
21533
|
}
|
|
21534
|
+
async discoverFileProviders() {
|
|
21535
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.FileProvider);
|
|
21536
|
+
}
|
|
21537
|
+
async discoverFilesReferenceRepositoryProviders() {
|
|
21538
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.FileReferenceRepository);
|
|
21539
|
+
}
|
|
21408
21540
|
};
|
|
21409
21541
|
exports.EntityManagerInitializer = EntityManagerInitializer_1 = __decorate([
|
|
21410
21542
|
common.Injectable(),
|
|
@@ -22452,9 +22584,70 @@ exports.AwsS3BucketProvider = __decorate([
|
|
|
22452
22584
|
__metadata("design:paramtypes", [])
|
|
22453
22585
|
], exports.AwsS3BucketProvider);
|
|
22454
22586
|
|
|
22587
|
+
const WpFileProvider = (providerId) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.FileProvider, {
|
|
22588
|
+
providerId,
|
|
22589
|
+
}));
|
|
22590
|
+
|
|
22591
|
+
const createDayPath = (d) => `${d.getFullYear()}/${(d.getMonth() + 1).toString().padStart(2, "0")}/${d
|
|
22592
|
+
.getDate()
|
|
22593
|
+
.toString()
|
|
22594
|
+
.padStart(2, "0")}`;
|
|
22595
|
+
let AwsS3FileProvider = class AwsS3FileProvider {
|
|
22596
|
+
constructor(bucket) {
|
|
22597
|
+
this.bucket = bucket;
|
|
22598
|
+
}
|
|
22599
|
+
getProviderId() {
|
|
22600
|
+
return "awsS3";
|
|
22601
|
+
}
|
|
22602
|
+
async uploadFile(file) {
|
|
22603
|
+
const path = this.getBucketFileUploadPath(file.fileName, new Date());
|
|
22604
|
+
await this.bucket.fileUpload({
|
|
22605
|
+
bucket: awsBucketSettings.value.defaultBucket,
|
|
22606
|
+
filePath: path,
|
|
22607
|
+
content: file.content,
|
|
22608
|
+
contentType: file.contentType,
|
|
22609
|
+
});
|
|
22610
|
+
return {
|
|
22611
|
+
reference: path,
|
|
22612
|
+
};
|
|
22613
|
+
}
|
|
22614
|
+
async deleteFile(reference) {
|
|
22615
|
+
await this.bucket.fileDelete({
|
|
22616
|
+
bucket: awsBucketSettings.value.defaultBucket,
|
|
22617
|
+
filePath: reference.reference,
|
|
22618
|
+
});
|
|
22619
|
+
}
|
|
22620
|
+
async downloadFile(reference) {
|
|
22621
|
+
const content = await this.bucket.fileDownload({
|
|
22622
|
+
bucket: awsBucketSettings.value.defaultBucket,
|
|
22623
|
+
filePath: reference.reference,
|
|
22624
|
+
});
|
|
22625
|
+
return {
|
|
22626
|
+
content,
|
|
22627
|
+
};
|
|
22628
|
+
}
|
|
22629
|
+
async getFileProviderDownloadUrl(reference) {
|
|
22630
|
+
const url = await this.bucket.filePublicUrlCreate({
|
|
22631
|
+
bucket: awsBucketSettings.value.defaultBucket,
|
|
22632
|
+
expirationMinutes: awsBucketSettings.value.publicLinksExpirationMinutes,
|
|
22633
|
+
filePath: reference.reference,
|
|
22634
|
+
});
|
|
22635
|
+
return {
|
|
22636
|
+
downloadUrl: url,
|
|
22637
|
+
};
|
|
22638
|
+
}
|
|
22639
|
+
getBucketFileUploadPath(fileName, date) {
|
|
22640
|
+
return `${backendCore.ensureTailingSlash(awsBucketSettings.value.paths.filesUpload)}${createDayPath(date)}${backendCore.ensureStartSlash(backendCore.newUuid())}_${fileName}`;
|
|
22641
|
+
}
|
|
22642
|
+
};
|
|
22643
|
+
AwsS3FileProvider = __decorate([
|
|
22644
|
+
WpFileProvider("awsS3"),
|
|
22645
|
+
__metadata("design:paramtypes", [exports.AwsS3BucketProvider])
|
|
22646
|
+
], AwsS3FileProvider);
|
|
22647
|
+
|
|
22455
22648
|
var AwsBucketModule_1;
|
|
22456
22649
|
const ModuleData$2 = {
|
|
22457
|
-
providers: [exports.AwsS3BucketProvider],
|
|
22650
|
+
providers: [exports.AwsS3BucketProvider, AwsS3FileProvider],
|
|
22458
22651
|
};
|
|
22459
22652
|
exports.AwsBucketModule = AwsBucketModule_1 = class AwsBucketModule {
|
|
22460
22653
|
static forRoot(input) {
|
|
@@ -22471,6 +22664,54 @@ exports.AwsBucketModule = AwsBucketModule_1 = __decorate([
|
|
|
22471
22664
|
})
|
|
22472
22665
|
], exports.AwsBucketModule);
|
|
22473
22666
|
|
|
22667
|
+
let InMemoryFileProvider = class InMemoryFileProvider {
|
|
22668
|
+
constructor() {
|
|
22669
|
+
this.provider = new exports.InMemoryBucketProvider();
|
|
22670
|
+
}
|
|
22671
|
+
getProviderId() {
|
|
22672
|
+
return "inMemory";
|
|
22673
|
+
}
|
|
22674
|
+
async uploadFile(file) {
|
|
22675
|
+
const filePath = `${backendCore.newUuid()}/${file.fileName}`;
|
|
22676
|
+
await this.provider.fileUpload({
|
|
22677
|
+
bucket: "test",
|
|
22678
|
+
content: file.content,
|
|
22679
|
+
contentType: file.contentType,
|
|
22680
|
+
filePath,
|
|
22681
|
+
});
|
|
22682
|
+
return {
|
|
22683
|
+
reference: filePath,
|
|
22684
|
+
};
|
|
22685
|
+
}
|
|
22686
|
+
async deleteFile(reference) {
|
|
22687
|
+
await this.provider.fileDelete({
|
|
22688
|
+
bucket: "test",
|
|
22689
|
+
filePath: reference.reference,
|
|
22690
|
+
});
|
|
22691
|
+
}
|
|
22692
|
+
async downloadFile(reference) {
|
|
22693
|
+
const content = await this.provider.fileDownload({
|
|
22694
|
+
bucket: "test",
|
|
22695
|
+
filePath: reference.reference,
|
|
22696
|
+
});
|
|
22697
|
+
return {
|
|
22698
|
+
content,
|
|
22699
|
+
};
|
|
22700
|
+
}
|
|
22701
|
+
async getFileProviderDownloadUrl(reference) {
|
|
22702
|
+
return {
|
|
22703
|
+
downloadUrl: await this.provider.filePublicUrlCreate({
|
|
22704
|
+
bucket: "test",
|
|
22705
|
+
filePath: reference.reference,
|
|
22706
|
+
expirationMinutes: 60,
|
|
22707
|
+
}),
|
|
22708
|
+
};
|
|
22709
|
+
}
|
|
22710
|
+
};
|
|
22711
|
+
InMemoryFileProvider = __decorate([
|
|
22712
|
+
WpFileProvider("inMemory"),
|
|
22713
|
+
__metadata("design:paramtypes", [])
|
|
22714
|
+
], InMemoryFileProvider);
|
|
22474
22715
|
exports.InMemoryBucketProvider = class InMemoryBucketProvider {
|
|
22475
22716
|
constructor() {
|
|
22476
22717
|
this.inMemoryStorage = {};
|