@drax/media-back 3.10.0 → 3.12.0
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/controllers/MediaController.js +17 -83
- package/dist/index.js +2 -1
- package/dist/services/MediaService.js +123 -0
- package/env.d.ts +10 -0
- package/package.json +3 -3
- package/src/controllers/MediaController.ts +17 -97
- package/src/index.ts +15 -1
- package/src/services/MediaService.ts +198 -0
- package/test/{modules/media/File → endpoints}/File-endpoints.test.ts +4 -4
- package/test/endpoints/Media-endpoints.test.ts +124 -0
- package/test/service/Media-service.test.ts +112 -0
- package/test/setup/TestSetup.ts +11 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/controllers/MediaController.d.ts +2 -1
- package/types/controllers/MediaController.d.ts.map +1 -1
- package/types/index.d.ts +4 -2
- package/types/index.d.ts.map +1 -1
- package/types/schemas/FileSchema.d.ts +1 -1
- package/types/services/MediaService.d.ts +56 -0
- package/types/services/MediaService.d.ts.map +1 -0
- package/test/store/087fd8919e269ac2-test.jpg +0 -0
- package/test/store/134ce2d244520699-test.jpg +0 -0
- package/test/store/1cf908a6a99e5dfc-test.jpg +0 -0
- package/test/store/41f86768454e8d13-test.jpg +0 -0
- package/test/store/578e5f99ca2db751-test.jpg +0 -0
- package/test/store/71a6d03abe415748-test.jpg +0 -0
- package/test/store/9d73f482a69e78c0-test.jpg +0 -0
- package/test/store/ddd197b164e9b35f-test.jpg +0 -0
- package/test/store/test.jpg +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CommonController } from "@drax/common-back";
|
|
2
|
+
import { MediaService } from "../services/MediaService.js";
|
|
2
3
|
declare class MediaController extends CommonController {
|
|
4
|
+
protected mediaService: MediaService;
|
|
3
5
|
constructor();
|
|
4
|
-
validateDir(dir: string): boolean;
|
|
5
6
|
uploadFile(request: any, reply: any): Promise<{
|
|
6
7
|
filename: string;
|
|
7
8
|
filepath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaController.d.ts","sourceRoot":"","sources":["../../src/controllers/MediaController.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,
|
|
1
|
+
{"version":3,"file":"MediaController.d.ts","sourceRoot":"","sources":["../../src/controllers/MediaController.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAEzD,cAAM,eAAgB,SAAQ,gBAAgB;IAC1C,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;;IAO/B,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;;;;;;;IAqCnC,YAAY,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;CAgBpC;AAED,eAAe,eAAe,CAAA;AAC9B,OAAO,EAAC,eAAe,EAAC,CAAA"}
|
package/types/index.d.ts
CHANGED
|
@@ -7,10 +7,12 @@ import FileModel from "./models/FileModel.js";
|
|
|
7
7
|
import FileMongoRepository from "./repository/mongo/FileMongoRepository.js";
|
|
8
8
|
import FileSqliteRepository from "./repository/sqlite/FileSqliteRepository.js";
|
|
9
9
|
import FileService from "./services/FileService.js";
|
|
10
|
+
import MediaService from "./services/MediaService.js";
|
|
10
11
|
import FileServiceFactory from "./factory/services/FileServiceFactory.js";
|
|
11
12
|
import FileController from "./controllers/FileController.js";
|
|
12
13
|
import type { IFile, IFileBase } from "./interfaces/IFile";
|
|
13
14
|
import type { IFileRepository } from "./interfaces/IFileRepository";
|
|
14
|
-
|
|
15
|
-
export {
|
|
15
|
+
import type { IMediaCreatedBy, IMediaSaveFileParams, IMediaSaveFileResult, IMediaGetFileParams, IMediaGetFileResult } from "./services/MediaService.js";
|
|
16
|
+
export type { IFile, IFileBase, IFileRepository, IMediaCreatedBy, IMediaSaveFileParams, IMediaSaveFileResult, IMediaGetFileParams, IMediaGetFileResult, };
|
|
17
|
+
export { MediaRoutes, FileRoutes, MediaPermissions, FilePermissions, FileSchema, FileModel, FileMongoRepository, FileSqliteRepository, FileService, MediaService, FileServiceFactory, FileController };
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAC1E,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAC1E,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EACR,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACtB,CAAA;AAED,OAAO,EAEH,WAAW,EACX,UAAU,EAGV,gBAAgB,EAChB,eAAe,EAGf,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACjB,CAAA"}
|
|
@@ -28,7 +28,6 @@ declare const FileBaseSchema: z.ZodObject<{
|
|
|
28
28
|
tenant: z.ZodOptional<z.ZodNullable<z.ZodCoercedString<unknown>>>;
|
|
29
29
|
}, z.core.$strip>;
|
|
30
30
|
declare const FileSchema: z.ZodObject<{
|
|
31
|
-
type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
31
|
filename: z.ZodString;
|
|
33
32
|
relativePath: z.ZodString;
|
|
34
33
|
url: z.ZodString;
|
|
@@ -38,6 +37,7 @@ declare const FileSchema: z.ZodObject<{
|
|
|
38
37
|
encoding: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
39
38
|
extension: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
40
39
|
size: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
40
|
+
type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
41
|
lastAccess: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
|
|
42
42
|
createdFor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
43
43
|
ttlSeconds: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodNumber>>>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { IUploadFile, IUploadFileResult } from "@drax/common-back";
|
|
2
|
+
interface IMediaCreatedBy {
|
|
3
|
+
id: string;
|
|
4
|
+
username: string;
|
|
5
|
+
}
|
|
6
|
+
interface IMediaSaveFileParams {
|
|
7
|
+
dir: string;
|
|
8
|
+
file: IUploadFile;
|
|
9
|
+
createdBy?: IMediaCreatedBy;
|
|
10
|
+
date?: Date;
|
|
11
|
+
}
|
|
12
|
+
interface IMediaSaveFileResult extends IUploadFileResult {
|
|
13
|
+
fileDir: string;
|
|
14
|
+
relativePath: string;
|
|
15
|
+
absolutePath: string;
|
|
16
|
+
extension: string;
|
|
17
|
+
type: string;
|
|
18
|
+
url: string;
|
|
19
|
+
}
|
|
20
|
+
interface IMediaGetFileParams {
|
|
21
|
+
dir: string;
|
|
22
|
+
year: string;
|
|
23
|
+
month: string;
|
|
24
|
+
filename: string;
|
|
25
|
+
registerHit?: boolean;
|
|
26
|
+
}
|
|
27
|
+
interface IMediaGetFileResult {
|
|
28
|
+
dir: string;
|
|
29
|
+
year: string;
|
|
30
|
+
month: string;
|
|
31
|
+
filename: string;
|
|
32
|
+
fileDir: string;
|
|
33
|
+
relativePath: string;
|
|
34
|
+
absolutePath: string;
|
|
35
|
+
}
|
|
36
|
+
declare class MediaService {
|
|
37
|
+
protected getBaseFileDir(): string;
|
|
38
|
+
protected getBaseUrl(): string;
|
|
39
|
+
validateDir(dir: string): boolean;
|
|
40
|
+
validateYear(year: string): boolean;
|
|
41
|
+
validateMonth(month: string): boolean;
|
|
42
|
+
protected assertDir(dir: string): void;
|
|
43
|
+
protected assertYear(year: string): void;
|
|
44
|
+
protected assertMonth(month: string): void;
|
|
45
|
+
protected isMetadataEnabled(): boolean;
|
|
46
|
+
protected buildDatePathParts(date: Date): {
|
|
47
|
+
year: string;
|
|
48
|
+
month: string;
|
|
49
|
+
};
|
|
50
|
+
saveFile(params: IMediaSaveFileParams): Promise<IMediaSaveFileResult>;
|
|
51
|
+
getFile(params: IMediaGetFileParams): Promise<IMediaGetFileResult>;
|
|
52
|
+
}
|
|
53
|
+
export default MediaService;
|
|
54
|
+
export { MediaService, };
|
|
55
|
+
export type { IMediaCreatedBy, IMediaSaveFileParams, IMediaSaveFileResult, IMediaGetFileParams, IMediaGetFileResult, };
|
|
56
|
+
//# sourceMappingURL=MediaService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaService.d.ts","sourceRoot":"","sources":["../../src/services/MediaService.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAKtE,UAAU,eAAe;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;CACf;AAED,UAAU,oBAAqB,SAAQ,iBAAiB;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,mBAAmB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,cAAM,YAAY;IACd,SAAS,CAAC,cAAc,IAAI,MAAM;IAIlC,SAAS,CAAC,UAAU,IAAI,MAAM;IAM9B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMtC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1C,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAMtC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IAOjE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgDrE,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA+B3E;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EACH,YAAY,GACf,CAAC;AACF,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACtB,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
package/test/store/test.jpg
DELETED
|
Binary file
|