@punks/backend-entity-manager 0.0.233 → 0.0.235
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 +20 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/files.d.ts +4 -0
- package/dist/cjs/types/abstractions/media.d.ts +6 -1
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/appFileReference.repository.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/services/files/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/services/media/index.d.ts +2 -2
- package/dist/esm/index.js +20 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/files.d.ts +4 -0
- package/dist/esm/types/abstractions/media.d.ts +6 -1
- package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/appFileReference.repository.d.ts +4 -0
- package/dist/esm/types/platforms/nest/services/files/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/services/media/index.d.ts +2 -2
- package/dist/index.d.ts +16 -3
- package/package.json +1 -1
|
@@ -36,6 +36,10 @@ export type FileReferenceRecord = FilesReferenceData & {
|
|
|
36
36
|
updatedOn: Date;
|
|
37
37
|
};
|
|
38
38
|
export interface IFilesReferenceRepository {
|
|
39
|
+
searchReference({ reference, providerId, }: {
|
|
40
|
+
reference: string;
|
|
41
|
+
providerId: string;
|
|
42
|
+
}): Promise<FileReferenceRecord>;
|
|
39
43
|
getReference(fileId: string): Promise<FileReferenceRecord>;
|
|
40
44
|
createReference(file: FilesReferenceData): Promise<FileReferenceRecord>;
|
|
41
45
|
updateReference(fileId: string, file: FilesReferenceData): Promise<FileReferenceRecord>;
|
|
@@ -8,6 +8,11 @@ export type MediaUploadInput = {
|
|
|
8
8
|
export type MediaReference = {
|
|
9
9
|
ref: string;
|
|
10
10
|
};
|
|
11
|
+
export type MediaItemReference = {
|
|
12
|
+
id: string;
|
|
13
|
+
ref: string;
|
|
14
|
+
folderId?: string;
|
|
15
|
+
};
|
|
11
16
|
export type IMediaProvider = {
|
|
12
17
|
mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
|
|
13
18
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
@@ -80,7 +85,7 @@ export type MediaFolderEnsureInput = {
|
|
|
80
85
|
organizationId?: string;
|
|
81
86
|
};
|
|
82
87
|
export type IMediaLibraryManager = {
|
|
83
|
-
mediaUpload(input: MediaUploadInput): Promise<
|
|
88
|
+
mediaUpload(input: MediaUploadInput): Promise<MediaItemReference>;
|
|
84
89
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
85
90
|
mediaDownload(input: MediaReference): Promise<Buffer>;
|
|
86
91
|
folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
|
|
@@ -4,6 +4,10 @@ import { AppFileReferenceEntity, AppFileReferenceEntityId } from "../entities/ap
|
|
|
4
4
|
import { FileReferenceRecord, FilesReferenceData, IFilesReferenceRepository } from "../../../../../../../abstractions";
|
|
5
5
|
export declare class AppFileReferenceRepository extends NestTypeOrmRepository<AppFileReferenceEntity, AppFileReferenceEntityId> implements IFilesReferenceRepository {
|
|
6
6
|
constructor(repository: Repository<AppFileReferenceEntity>);
|
|
7
|
+
searchReference({ reference, providerId, }: {
|
|
8
|
+
reference: string;
|
|
9
|
+
providerId: string;
|
|
10
|
+
}): Promise<FileReferenceRecord>;
|
|
7
11
|
getReference(fileId: string): Promise<FileReferenceRecord>;
|
|
8
12
|
createReference(file: FilesReferenceData): Promise<FileReferenceRecord>;
|
|
9
13
|
updateReference(fileId: string, file: FilesReferenceData): Promise<FileReferenceRecord>;
|
|
@@ -6,6 +6,10 @@ export declare class FilesManager implements IFileManager {
|
|
|
6
6
|
uploadFile(file: FileData): Promise<FileReference>;
|
|
7
7
|
getFileContent(fileId: string): Promise<FileData>;
|
|
8
8
|
getFileDownloadUrl(fileId: string): Promise<FileDownloadUrl>;
|
|
9
|
+
getFileReferenceDownloadUrl({ reference, providerId, }: {
|
|
10
|
+
reference: string;
|
|
11
|
+
providerId: string;
|
|
12
|
+
}): Promise<FileDownloadUrl>;
|
|
9
13
|
private getFileProvider;
|
|
10
14
|
private get defaultFileProvider();
|
|
11
15
|
private get referencesRepo();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderEnsureInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaReference, MediaUploadInput } from "../../../../abstractions";
|
|
2
|
+
import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderEnsureInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaItemReference, MediaReference, MediaUploadInput } from "../../../../abstractions";
|
|
3
3
|
import { EntityManagerRegistry } from "../../ioc";
|
|
4
4
|
export declare class MediaLibraryService implements IMediaLibraryManager {
|
|
5
5
|
private readonly registry;
|
|
6
6
|
constructor(registry: EntityManagerRegistry);
|
|
7
|
-
mediaUpload(input: MediaUploadInput): Promise<
|
|
7
|
+
mediaUpload(input: MediaUploadInput): Promise<MediaItemReference>;
|
|
8
8
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
9
9
|
mediaDownload(input: MediaReference): Promise<Buffer>;
|
|
10
10
|
folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
|
package/dist/esm/index.js
CHANGED
|
@@ -21397,14 +21397,18 @@ let MediaLibraryService = class MediaLibraryService {
|
|
|
21397
21397
|
}
|
|
21398
21398
|
async mediaUpload(input) {
|
|
21399
21399
|
const reference = await this.defaultMediaProvider.mediaUpload(input);
|
|
21400
|
-
await this.mediaReferenceRepository.createReference({
|
|
21400
|
+
const referenceItem = await this.mediaReferenceRepository.createReference({
|
|
21401
21401
|
media: reference,
|
|
21402
21402
|
fileName: input.fileName,
|
|
21403
21403
|
contentType: input.contentType,
|
|
21404
21404
|
folderId: input.folderId,
|
|
21405
21405
|
providerId: this.defaultMediaProvider.getProviderId(),
|
|
21406
21406
|
});
|
|
21407
|
-
return
|
|
21407
|
+
return {
|
|
21408
|
+
id: referenceItem.id,
|
|
21409
|
+
ref: referenceItem.ref,
|
|
21410
|
+
folderId: referenceItem.folderId,
|
|
21411
|
+
};
|
|
21408
21412
|
}
|
|
21409
21413
|
async mediaDelete(input) {
|
|
21410
21414
|
await this.getMediaProvider(this.parseReferenceProviderId(input)).mediaDelete(input);
|
|
@@ -21618,6 +21622,20 @@ let FilesManager = class FilesManager {
|
|
|
21618
21622
|
downloadUrl: downloadUrl.downloadUrl,
|
|
21619
21623
|
};
|
|
21620
21624
|
}
|
|
21625
|
+
async getFileReferenceDownloadUrl({ reference, providerId, }) {
|
|
21626
|
+
const ref = await this.referencesRepo.searchReference({
|
|
21627
|
+
providerId,
|
|
21628
|
+
reference,
|
|
21629
|
+
});
|
|
21630
|
+
const downloadUrl = await this.getFileProvider(ref.providerId).getFileProviderDownloadUrl({
|
|
21631
|
+
reference: ref.reference,
|
|
21632
|
+
});
|
|
21633
|
+
return {
|
|
21634
|
+
contentType: ref.contentType,
|
|
21635
|
+
fileName: ref.fileName,
|
|
21636
|
+
downloadUrl: downloadUrl.downloadUrl,
|
|
21637
|
+
};
|
|
21638
|
+
}
|
|
21621
21639
|
getFileProvider(providerId) {
|
|
21622
21640
|
return this.registry
|
|
21623
21641
|
.getContainer()
|