@social-mail/social-mail-web-server 1.7.547 → 1.7.549
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/server/model/entities/StoreItem.d.ts.map +1 -1
- package/dist/server/model/entities/StoreItem.js.map +1 -1
- package/dist/server/model/entities/StoreMediaFile.d.ts.map +1 -1
- package/dist/server/model/entities/StoreMediaFile.js.map +1 -1
- package/dist/server/model/events/StoreItemEvents.d.ts +4 -1
- package/dist/server/model/events/StoreItemEvents.d.ts.map +1 -1
- package/dist/server/model/events/StoreItemEvents.js +6 -6
- package/dist/server/model/events/StoreItemEvents.js.map +1 -1
- package/dist/server/model/events/StoreMediaFileEvents.d.ts +2 -2
- package/dist/server/model/events/StoreMediaFileEvents.d.ts.map +1 -1
- package/dist/server/model/events/StoreMediaFileEvents.js +9 -46
- package/dist/server/model/events/StoreMediaFileEvents.js.map +1 -1
- package/dist/server/services/SignerService.d.ts +1 -15
- package/dist/server/services/SignerService.d.ts.map +1 -1
- package/dist/server/services/SignerService.js +46 -54
- package/dist/server/services/SignerService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/api/signed/get1.d.ts +2 -0
- package/dist/wwwroot/routes/api/signed/get1.d.ts.map +1 -0
- package/dist/wwwroot/routes/api/signed/get1.js +68 -0
- package/dist/wwwroot/routes/api/signed/get1.js.map +1 -0
- package/dist/wwwroot/routes/social-mail/sd/[type]/[publicFolderID]/[fileID]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/sd/[type]/[publicFolderID]/[fileID]/index.js +2 -1
- package/dist/wwwroot/routes/social-mail/sd/[type]/[publicFolderID]/[fileID]/index.js.map +1 -1
- package/package.json +2 -2
- package/src/server/model/entities/StoreItem.ts +0 -4
- package/src/server/model/entities/StoreMediaFile.ts +0 -3
- package/src/server/model/events/StoreItemEvents.ts +7 -7
- package/src/server/model/events/StoreMediaFileEvents.ts +8 -46
- package/src/server/services/SignerService.ts +45 -45
- package/src/wwwroot/routes/api/signed/get1.tsx +79 -0
- package/src/wwwroot/routes/social-mail/sd/[type]/[publicFolderID]/[fileID]/index.ts +3 -1
- package/dist/wwwroot/routes/api/signed/get.d.ts +0 -10
- package/dist/wwwroot/routes/api/signed/get.d.ts.map +0 -1
- package/dist/wwwroot/routes/api/signed/get.js +0 -81
- package/dist/wwwroot/routes/api/signed/get.js.map +0 -1
- package/src/wwwroot/routes/api/signed/get.tsx +0 -80
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import Inject, { ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
2
|
-
import SocialMailContext from "../../../../server/model/SocialMailContext.js";
|
|
3
|
-
import TempFileService from "../../../../server/storage/TempFileService.js";
|
|
4
|
-
import ImageConverterService from "../../../../server/services/image-converter/ImageConverterService.js";
|
|
5
|
-
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
6
|
-
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
7
|
-
import CacheService from "../../../../server/services/cache/CacheService.js";
|
|
8
|
-
import TimeSpan from "@entity-access/entity-access/dist/types/TimeSpan.js";
|
|
9
|
-
import FileConversionService from "../../../../server/services/convert/FileConversionService.js";
|
|
10
|
-
import SignerService from "../../../../server/services/SignerService.js";
|
|
11
|
-
import AppFile from "../../../../server/model/entities/AppFile.js";
|
|
12
|
-
|
|
13
|
-
export default class extends Page {
|
|
14
|
-
|
|
15
|
-
@Inject
|
|
16
|
-
private tfs: TempFileService;
|
|
17
|
-
|
|
18
|
-
@Inject
|
|
19
|
-
private cacheService: CacheService;
|
|
20
|
-
|
|
21
|
-
@Inject
|
|
22
|
-
private db: SocialMailContext;
|
|
23
|
-
|
|
24
|
-
@Inject
|
|
25
|
-
private signerService: SignerService;
|
|
26
|
-
|
|
27
|
-
async run() {
|
|
28
|
-
|
|
29
|
-
const type = this.childPath[0];
|
|
30
|
-
// we will not convert as BigInt might have loss of data
|
|
31
|
-
const fileID = this.childPath[1] as unknown as number;
|
|
32
|
-
const fileContentID = this.childPath[2] as unknown as number;
|
|
33
|
-
const signature = this.childPath[3];
|
|
34
|
-
const expiry = this.childPath[4];
|
|
35
|
-
|
|
36
|
-
// verify hash ....
|
|
37
|
-
this.signerService.signer<AppFile>().verify({ appFileID: fileID , fileContentID }, signature, expiry);
|
|
38
|
-
|
|
39
|
-
this.db.verifyFilters = true;
|
|
40
|
-
const fc = await this.db.appFiles
|
|
41
|
-
.where({ fileID, fileContentID },
|
|
42
|
-
(p) => (x) => x.fileContentID === p.fileContentID
|
|
43
|
-
&& x.appFileID === p.fileID)
|
|
44
|
-
.include((x) => x.fileContent)
|
|
45
|
-
.firstOrFail();
|
|
46
|
-
this.db.verifyFilters = false;
|
|
47
|
-
this.db.raiseEvents = false;
|
|
48
|
-
this.cacheControl = "public, max-age=2592000, immutable";
|
|
49
|
-
let file = await this.tfs.downloadFileContent(fc.fileContent, fc);
|
|
50
|
-
|
|
51
|
-
const key = this.request.path;
|
|
52
|
-
|
|
53
|
-
const ttl = TimeSpan.fromDays(30);
|
|
54
|
-
|
|
55
|
-
// transform here...
|
|
56
|
-
if (/^(size|jpg|png|webp|gif|face\-circle)\(/i.test(type)) {
|
|
57
|
-
file = await this.cacheService.get({ key, ttl, factory: async () => {
|
|
58
|
-
// resize...
|
|
59
|
-
const ics = ServiceProvider.resolve(this, ImageConverterService);
|
|
60
|
-
return await ics.transform(type, file, this.childPath[this.childPath.length-1] );
|
|
61
|
-
} });
|
|
62
|
-
} else if (/^(pdf|html|webm)$/i.test(type)) {
|
|
63
|
-
file = await this.cacheService.get({ key, ttl, factory: async () => {
|
|
64
|
-
const ics = ServiceProvider.resolve(this, FileConversionService);
|
|
65
|
-
return await ics[type.toLowerCase()](file, this.childPath[this.childPath.length-1] );
|
|
66
|
-
} });
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return new TempFileResult(
|
|
70
|
-
file,
|
|
71
|
-
{
|
|
72
|
-
contentDisposition: type === "download"
|
|
73
|
-
? "attachment"
|
|
74
|
-
: "inline",
|
|
75
|
-
immutable: true,
|
|
76
|
-
etag: false
|
|
77
|
-
}
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|