@social-mail/social-mail-web-server 1.8.422 → 1.8.424
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/services/replica/ReplicaReader.d.ts +7 -0
- package/dist/server/services/replica/ReplicaReader.d.ts.map +1 -0
- package/dist/server/services/replica/ReplicaReader.js +45 -0
- package/dist/server/services/replica/ReplicaReader.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/api/files/get.d.ts +2 -2
- package/dist/wwwroot/routes/api/files/get.d.ts.map +1 -1
- package/dist/wwwroot/routes/api/files/get.js +26 -13
- package/dist/wwwroot/routes/api/files/get.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.d.ts +2 -3
- package/dist/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.js +9 -5
- package/dist/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.d.ts +2 -3
- package/dist/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.js +9 -5
- package/dist/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.d.ts +2 -0
- package/dist/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.js +7 -2
- package/dist/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.d.ts +1 -1
- package/dist/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.js +5 -5
- package/dist/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.d.ts +2 -3
- package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.js +8 -4
- package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/t/index.d.ts +2 -0
- package/dist/wwwroot/routes/social-mail/social/t/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/t/index.js +12 -6
- package/dist/wwwroot/routes/social-mail/social/t/index.js.map +1 -1
- package/package.json +1 -1
- package/src/server/services/replica/ReplicaReader.ts +34 -0
- package/src/wwwroot/routes/api/files/get.ts +29 -15
- package/src/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.ts +9 -4
- package/src/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.ts +9 -4
- package/src/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.tsx +6 -2
- package/src/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.ts +4 -4
- package/src/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.ts +7 -3
- package/src/wwwroot/routes/social-mail/social/t/index.tsx +10 -4
- package/dist/wwwroot/routes/api/emails/content/attachment/index.d.ts +0 -2
- package/dist/wwwroot/routes/api/emails/content/attachment/index.d.ts.map +0 -1
- package/dist/wwwroot/routes/api/emails/content/attachment/index.js +0 -41
- package/dist/wwwroot/routes/api/emails/content/attachment/index.js.map +0 -1
- package/dist/wwwroot/routes/api/emails/content/html/index.d.ts +0 -2
- package/dist/wwwroot/routes/api/emails/content/html/index.d.ts.map +0 -1
- package/dist/wwwroot/routes/api/emails/content/html/index.js +0 -41
- package/dist/wwwroot/routes/api/emails/content/html/index.js.map +0 -1
- package/src/wwwroot/routes/api/emails/content/attachment/index.ts +0 -53
- package/src/wwwroot/routes/api/emails/content/html/index.ts +0 -52
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
2
1
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
2
|
export default class extends Page {
|
|
4
3
|
private fcs;
|
|
4
|
+
private replica;
|
|
5
5
|
private db;
|
|
6
|
-
run(): Promise<
|
|
6
|
+
run(): Promise<import("@entity-access/server-pages/dist/Content.js").default>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=get.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/api/files/get.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/api/files/get.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAO5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,EAAE,CAAoB;IAExB,GAAG;CAyDZ"}
|
|
@@ -8,11 +8,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import Inject from "@entity-access/entity-access/dist/di/di.js";
|
|
11
|
-
import SocialMailContext from "../../../../server/model/SocialMailContext.js";
|
|
12
11
|
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
13
12
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
14
13
|
import { Prepare } from "@entity-access/server-pages/dist/decorators/Prepare.js";
|
|
15
14
|
import FileConversionService from "../../../../server/services/convert/FileConversionService.js";
|
|
15
|
+
import ReplicaReader from "../../../../server/services/replica/ReplicaReader.js";
|
|
16
|
+
import SocialMailContext from "../../../../server/model/SocialMailContext.js";
|
|
16
17
|
let default_1 = class extends Page {
|
|
17
18
|
async run() {
|
|
18
19
|
const type = this.childPath[0];
|
|
@@ -20,20 +21,28 @@ let default_1 = class extends Page {
|
|
|
20
21
|
const fileID = this.childPath[1];
|
|
21
22
|
let fileContentID = this.childPath[2];
|
|
22
23
|
const fileName = this.childPath[this.childPath.length - 1];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.
|
|
24
|
+
const appFile = await this.replica.query(async (db) => {
|
|
25
|
+
if (!fileContentID) {
|
|
26
|
+
// redirect...
|
|
27
|
+
const fc1 = await db.appFiles.where({ fileID }, (p) => (x) => x.appFileID === p.fileID)
|
|
28
|
+
.select(void 0, (p) => (x) => ({ fileContentID: x.fileContentID }))
|
|
29
|
+
.first();
|
|
30
|
+
if (!fc1) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
fileContentID = fc1.fileContentID;
|
|
34
|
+
}
|
|
35
|
+
db.verifyFilters = true;
|
|
36
|
+
return await db.appFiles
|
|
37
|
+
.filtered("read")
|
|
38
|
+
.where({ fileID, fileContentID }, (p) => (x) => x.fileContentID === p.fileContentID
|
|
39
|
+
&& x.appFileID === p.fileID)
|
|
40
|
+
.include((x) => x.fileContent)
|
|
27
41
|
.first();
|
|
28
|
-
|
|
42
|
+
});
|
|
43
|
+
if (!appFile) {
|
|
44
|
+
return this.notFound();
|
|
29
45
|
}
|
|
30
|
-
this.db.verifyFilters = true;
|
|
31
|
-
const appFile = await this.db.appFiles
|
|
32
|
-
.filtered("read")
|
|
33
|
-
.where({ fileID, fileContentID }, (p) => (x) => x.fileContentID === p.fileContentID
|
|
34
|
-
&& x.appFileID === p.fileID)
|
|
35
|
-
.include((x) => x.fileContent)
|
|
36
|
-
.firstOrFail();
|
|
37
46
|
this.db.verifyFilters = false;
|
|
38
47
|
this.db.raiseEvents = false;
|
|
39
48
|
this.cacheControl = "public, max-age=2592000, immutable";
|
|
@@ -56,6 +65,10 @@ __decorate([
|
|
|
56
65
|
Inject,
|
|
57
66
|
__metadata("design:type", FileConversionService)
|
|
58
67
|
], default_1.prototype, "fcs", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
Inject,
|
|
70
|
+
__metadata("design:type", ReplicaReader)
|
|
71
|
+
], default_1.prototype, "replica", void 0);
|
|
59
72
|
__decorate([
|
|
60
73
|
Inject,
|
|
61
74
|
__metadata("design:type", SocialMailContext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/api/files/get.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/api/files/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
2
1
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
2
|
export default class extends Page {
|
|
4
3
|
private fcs;
|
|
5
|
-
private
|
|
4
|
+
private replica;
|
|
6
5
|
private ecs;
|
|
7
6
|
private domain;
|
|
8
7
|
private type;
|
|
9
8
|
private postID;
|
|
10
9
|
private fileID;
|
|
11
|
-
run(): Promise<
|
|
10
|
+
run(): Promise<import("@entity-access/server-pages/dist/Content.js").default>;
|
|
12
11
|
}
|
|
13
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAO5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,GAAG,CAAoB;IAG/B,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,IAAI,CAAS;IAGrB,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,MAAM,CAAM;IAEd,GAAG;CAyCZ"}
|
|
@@ -12,20 +12,24 @@ import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
|
12
12
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
13
13
|
import { Route } from "@entity-access/server-pages/dist/core/Route.js";
|
|
14
14
|
import { CORS } from "../../../../../../../../../common/CORS.js";
|
|
15
|
-
import SocialMailContext from "../../../../../../../../../server/model/SocialMailContext.js";
|
|
16
15
|
import FileConversionService from "../../../../../../../../../server/services/convert/FileConversionService.js";
|
|
17
16
|
import EncryptionService from "../../../../../../../../../server/services/encryption/EncryptionService.js";
|
|
17
|
+
import ReplicaReader from "../../../../../../../../../server/services/replica/ReplicaReader.js";
|
|
18
18
|
export default class default_1 extends Page {
|
|
19
19
|
async run() {
|
|
20
20
|
const { postID, type, fileID } = this;
|
|
21
21
|
const emailID = this.ecs.general.decrypt(postID);
|
|
22
22
|
const fileName = this.domain + "." + this.childPath[this.childPath.length - 1];
|
|
23
23
|
// verify host ...
|
|
24
|
-
const appFile = await this.db.appFiles
|
|
24
|
+
const appFile = await this.replica.query((db) => db.appFiles
|
|
25
25
|
.where({ fileID, emailID }, (p) => (x) => x.appFileID === p.fileID
|
|
26
26
|
&& x.emailID === p.emailID)
|
|
27
27
|
.include((x) => x.fileContent)
|
|
28
|
-
.first();
|
|
28
|
+
.first());
|
|
29
|
+
if (!appFile) {
|
|
30
|
+
this.cacheControl = "public, max-age=600";
|
|
31
|
+
return this.notFound();
|
|
32
|
+
}
|
|
29
33
|
this.cacheControl = "public, max-age=2592000, immutable";
|
|
30
34
|
const file = await this.fcs.downloadConvertedFile({
|
|
31
35
|
appFile,
|
|
@@ -48,8 +52,8 @@ __decorate([
|
|
|
48
52
|
], default_1.prototype, "fcs", void 0);
|
|
49
53
|
__decorate([
|
|
50
54
|
Inject,
|
|
51
|
-
__metadata("design:type",
|
|
52
|
-
], default_1.prototype, "
|
|
55
|
+
__metadata("design:type", ReplicaReader)
|
|
56
|
+
], default_1.prototype, "replica", void 0);
|
|
53
57
|
__decorate([
|
|
54
58
|
Inject,
|
|
55
59
|
__metadata("design:type", EncryptionService)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,2CAA2C,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/c/d/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,2CAA2C,CAAC;AACjE,OAAO,qBAAqB,MAAM,6EAA6E,CAAC;AAChH,OAAO,iBAAiB,MAAM,4EAA4E,CAAC;AAC3G,OAAO,aAAa,MAAM,qEAAqE,CAAC;AAEhG,MAAM,CAAC,OAAO,gBAAO,SAAQ,IAAI;IAuB7B,KAAK,CAAC,GAAG;QAEL,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAQ,CAAC;QAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAE7E,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ;aACvD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM;eACrB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CACrC;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC7B,KAAK,EAAE,CAAC,CAAC;QAEd,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;YAC1C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,oCAAoC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC9C,OAAO;YACP,QAAQ;YACR,IAAI;SACP,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CACrB,IAAI,EAAE;YACF,kBAAkB,EAAE,IAAI,KAAK,UAAU;gBACnC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CACJ,CAAC;IACN,CAAC;CACJ;AA7DW;IADP,MAAM;8BACM,qBAAqB;sCAAC;AAG3B;IADP,MAAM;8BACU,aAAa;0CAAC;AAGvB;IADP,MAAM;8BACM,iBAAiB;sCAAC;AAGvB;IADP,KAAK;;yCACiB;AAGf;IADP,KAAK;;uCACe;AAGb;IADP,KAAK;;yCACc;AAGZ;IADP,KAAK;;yCACc"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
2
1
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
2
|
export default class extends Page {
|
|
4
3
|
private fcs;
|
|
5
|
-
private
|
|
4
|
+
private replica;
|
|
6
5
|
private ecs;
|
|
7
6
|
private eDomain;
|
|
8
7
|
private type;
|
|
9
8
|
private eFileContentID;
|
|
10
|
-
run(): Promise<
|
|
9
|
+
run(): Promise<import("@entity-access/server-pages/dist/Content.js").default>;
|
|
11
10
|
}
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAO5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,GAAG,CAAoB;IAG/B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,IAAI,CAAS;IAGrB,OAAO,CAAC,cAAc,CAAM;IAEtB,GAAG;CA2CZ"}
|
|
@@ -12,9 +12,9 @@ import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
|
12
12
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
13
13
|
import { Route } from "@entity-access/server-pages/dist/core/Route.js";
|
|
14
14
|
import { CORS } from "../../../../../../../../common/CORS.js";
|
|
15
|
-
import SocialMailContext from "../../../../../../../../server/model/SocialMailContext.js";
|
|
16
15
|
import FileConversionService from "../../../../../../../../server/services/convert/FileConversionService.js";
|
|
17
16
|
import EncryptionService from "../../../../../../../../server/services/encryption/EncryptionService.js";
|
|
17
|
+
import ReplicaReader from "../../../../../../../../server/services/replica/ReplicaReader.js";
|
|
18
18
|
export default class default_1 extends Page {
|
|
19
19
|
async run() {
|
|
20
20
|
const { type } = this;
|
|
@@ -22,10 +22,14 @@ export default class default_1 extends Page {
|
|
|
22
22
|
const eFileContentID = this.ecs.general.decrypt(this.eFileContentID);
|
|
23
23
|
const fileName = senderDomain + "." + this.childPath[this.childPath.length - 1];
|
|
24
24
|
// verify host ...
|
|
25
|
-
const appFile = await this.db.appFiles
|
|
25
|
+
const appFile = await this.replica.query((db) => db.appFiles
|
|
26
26
|
.where({ eFileContentID }, (p) => (x) => x.fileContentID === p.eFileContentID)
|
|
27
27
|
.include((x) => x.fileContent)
|
|
28
|
-
.first();
|
|
28
|
+
.first());
|
|
29
|
+
if (!appFile) {
|
|
30
|
+
this.cacheControl = "public, max-age=600";
|
|
31
|
+
return this.notFound();
|
|
32
|
+
}
|
|
29
33
|
this.cacheControl = "public, max-age=2592000, immutable";
|
|
30
34
|
const file = await this.fcs.downloadConvertedFile({
|
|
31
35
|
appFile,
|
|
@@ -49,8 +53,8 @@ __decorate([
|
|
|
49
53
|
], default_1.prototype, "fcs", void 0);
|
|
50
54
|
__decorate([
|
|
51
55
|
Inject,
|
|
52
|
-
__metadata("design:type",
|
|
53
|
-
], default_1.prototype, "
|
|
56
|
+
__metadata("design:type", ReplicaReader)
|
|
57
|
+
], default_1.prototype, "replica", void 0);
|
|
54
58
|
__decorate([
|
|
55
59
|
Inject,
|
|
56
60
|
__metadata("design:type", EncryptionService)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/c/e/[eDomain]/[type]/[eFileContentID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,qBAAqB,MAAM,0EAA0E,CAAC;AAC7G,OAAO,iBAAiB,MAAM,yEAAyE,CAAC;AACxG,OAAO,aAAa,MAAM,kEAAkE,CAAC;AAE7F,MAAM,CAAC,OAAO,gBAAO,SAAQ,IAAI;IAoB7B,KAAK,CAAC,GAAG;QAEL,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAQ,CAAC;QAE5E,MAAM,QAAQ,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAE9E,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ;aACvD,KAAK,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,cAAc,CAC3C;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC7B,KAAK,EAAE,CAAC,CAAC;QAEd,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;YAC1C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,oCAAoC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC9C,OAAO;YACP,QAAQ;YACR,YAAY;YACZ,IAAI;SACP,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CACrB,IAAI,EAAE;YACF,kBAAkB,EAAE,IAAI,KAAK,UAAU;gBACnC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CACJ,CAAC;IACN,CAAC;CACJ;AA5DW;IADP,MAAM;8BACM,qBAAqB;sCAAC;AAG3B;IADP,MAAM;8BACU,aAAa;0CAAC;AAGvB;IADP,MAAM;8BACM,iBAAiB;sCAAC;AAGvB;IADP,KAAK;;0CACkB;AAGhB;IADP,KAAK;;uCACe;AAGb;IADP,KAAK;;iDACsB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import Content from "@entity-access/server-pages/dist/Content.js";
|
|
2
2
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
3
|
import SocialMailContext from "../../../../../../../server/model/SocialMailContext.js";
|
|
4
|
+
import ReplicaReader from "../../../../../../../server/services/replica/ReplicaReader.js";
|
|
4
5
|
export default class UnsubscribePage extends Page {
|
|
5
6
|
accessCode: string;
|
|
6
7
|
activityID: string;
|
|
7
8
|
db: SocialMailContext;
|
|
9
|
+
replica: ReplicaReader;
|
|
8
10
|
run(): Promise<Content>;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.tsx"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAIlE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,iBAAiB,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.tsx"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAIlE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,iBAAiB,MAAM,wDAAwD,CAAC;AAEvF,OAAO,aAAa,MAAM,+DAA+D,CAAC;AAE1F,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,IAAI;IAG7C,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,MAAM,CAAC;IAGnB,EAAE,EAAE,iBAAiB,CAAC;IAGtB,OAAO,EAAE,aAAa,CAAC;IAEjB,GAAG;CAmDZ"}
|
|
@@ -15,12 +15,13 @@ import XNode from "@entity-access/server-pages/dist/html/XNode.js";
|
|
|
15
15
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
16
16
|
import SocialMailContext from "../../../../../../../server/model/SocialMailContext.js";
|
|
17
17
|
import { Base36 } from "../../../../../../../common/Base36.js";
|
|
18
|
+
import ReplicaReader from "../../../../../../../server/services/replica/ReplicaReader.js";
|
|
18
19
|
export default class UnsubscribePage extends Page {
|
|
19
20
|
async run() {
|
|
20
21
|
const { accessCode, activityID } = this;
|
|
21
22
|
const uid = Base36.decode(activityID);
|
|
22
|
-
const sentActivity = await this.db.subscriberActivities.where({ uid, accessCode }, (p) => (x) => x.accessCode === p.accessCode
|
|
23
|
-
&& x.activityID === p.uid).first();
|
|
23
|
+
const sentActivity = await this.replica.query((db) => db.subscriberActivities.where({ uid, accessCode }, (p) => (x) => x.accessCode === p.accessCode
|
|
24
|
+
&& x.activityID === p.uid).first());
|
|
24
25
|
if (!sentActivity) {
|
|
25
26
|
return Content.html(XNode.create(HtmlDocument, null,
|
|
26
27
|
XNode.create("head", null,
|
|
@@ -57,4 +58,8 @@ __decorate([
|
|
|
57
58
|
Inject,
|
|
58
59
|
__metadata("design:type", SocialMailContext)
|
|
59
60
|
], UnsubscribePage.prototype, "db", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Inject,
|
|
63
|
+
__metadata("design:type", ReplicaReader)
|
|
64
|
+
], UnsubscribePage.prototype, "replica", void 0);
|
|
60
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,iBAAiB,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/wwwroot/routes/social-mail/c/u/[activityID]/[accessCode]/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,iBAAiB,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,aAAa,MAAM,+DAA+D,CAAC;AAE1F,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,IAAI;IAc7C,KAAK,CAAC,GAAG;QAEL,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAQ,CAAC;QAE7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAClH,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;eAC1B,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,GAAG,CAC5B,CAAC,KAAK,EAAE,CAAC,CAAC;QAEX,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,IAAI,CAAC,aAAC,YAAY;gBAC7B;oBACI,iDAAiC,CAC9B;gBACP;oBACI;wBACI,4GAEU,CACP,CACJ,CACI,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;QAEnD,oCAAoC;QACpC,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5C,MAAM,EAAE,cAAc;SACzB,EAAE;YACC,SAAS;YACT,cAAc;SACjB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,aAAC,YAAY;YAC7B;gBACI,qDAAqC,CAClC;YACP;gBACI;oBACI,4DAEU,CACP,CACJ,CACI,CAAC,CAAC;IACrB,CAAC;CAGJ;AA9DG;IADC,KAAK;;mDACa;AAGnB;IADC,KAAK;;mDACa;AAGnB;IADC,MAAM;8BACH,iBAAiB;2CAAC;AAGtB;IADC,MAAM;8BACE,aAAa;gDAAC"}
|
|
@@ -2,7 +2,7 @@ import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
|
2
2
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
3
|
export default class extends Page {
|
|
4
4
|
private fcs;
|
|
5
|
-
private
|
|
5
|
+
private replica;
|
|
6
6
|
private ecs;
|
|
7
7
|
private domain;
|
|
8
8
|
private type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAS5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAS5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,GAAG,CAAoB;IAG/B,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,IAAI,CAAS;IAGrB,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,MAAM,CAAM;IAEd,GAAG;CAoCZ"}
|
|
@@ -13,20 +13,20 @@ import Page from "@entity-access/server-pages/dist/Page.js";
|
|
|
13
13
|
import { Prepare } from "@entity-access/server-pages/dist/decorators/Prepare.js";
|
|
14
14
|
import { Route } from "@entity-access/server-pages/dist/core/Route.js";
|
|
15
15
|
import { CORS } from "../../../../../../../../common/CORS.js";
|
|
16
|
-
import SocialMailContext from "../../../../../../../../server/model/SocialMailContext.js";
|
|
17
16
|
import FileConversionService from "../../../../../../../../server/services/convert/FileConversionService.js";
|
|
18
17
|
import EncryptionService from "../../../../../../../../server/services/encryption/EncryptionService.js";
|
|
18
|
+
import ReplicaReader from "../../../../../../../../server/services/replica/ReplicaReader.js";
|
|
19
19
|
let default_1 = class extends Page {
|
|
20
20
|
async run() {
|
|
21
21
|
const { postID, type, fileID } = this;
|
|
22
22
|
const emailID = this.ecs.general.decrypt(postID);
|
|
23
23
|
const fileName = this.domain + "." + this.childPath[this.childPath.length - 1];
|
|
24
24
|
// verify host ...
|
|
25
|
-
const appFile = await this.db.appFiles
|
|
25
|
+
const appFile = await this.replica.query((db) => db.appFiles
|
|
26
26
|
.where({ fileID, emailID }, (p) => (x) => x.appFileID === p.fileID
|
|
27
27
|
&& x.emailID === p.emailID)
|
|
28
28
|
.include((x) => x.fileContent)
|
|
29
|
-
.first();
|
|
29
|
+
.first());
|
|
30
30
|
this.cacheControl = "public, max-age=2592000, immutable";
|
|
31
31
|
const file = await this.fcs.downloadConvertedFile({
|
|
32
32
|
appFile,
|
|
@@ -49,8 +49,8 @@ __decorate([
|
|
|
49
49
|
], default_1.prototype, "fcs", void 0);
|
|
50
50
|
__decorate([
|
|
51
51
|
Inject,
|
|
52
|
-
__metadata("design:type",
|
|
53
|
-
], default_1.prototype, "
|
|
52
|
+
__metadata("design:type", ReplicaReader)
|
|
53
|
+
], default_1.prototype, "replica", void 0);
|
|
54
54
|
__decorate([
|
|
55
55
|
Inject,
|
|
56
56
|
__metadata("design:type", EncryptionService)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/cd/[domain]/[type]/[postID]/[fileID]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,qBAAqB,MAAM,0EAA0E,CAAC;AAC7G,OAAO,iBAAiB,MAAM,yEAAyE,CAAC;AACxG,OAAO,aAAa,MAAM,kEAAkE,CAAC;AAG9E,gBAAA,KAAM,SAAQ,IAAI;IAuB7B,KAAK,CAAC,GAAG;QAEL,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAQ,CAAC;QAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAE7E,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ;aACvD,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM;eACrB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CACrC;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC7B,KAAK,EAAE,CAAC,CAAC;QAEd,IAAI,CAAC,YAAY,GAAG,oCAAoC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC9C,OAAO;YACP,QAAQ;YACR,IAAI;SACP,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CACrB,IAAI,EAAE;YACF,kBAAkB,EAAE,IAAI,KAAK,UAAU;gBACnC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAxDW;IADP,MAAM;8BACM,qBAAqB;sCAAC;AAG3B;IADP,MAAM;8BACU,aAAa;0CAAC;AAGvB;IADP,MAAM;8BACM,iBAAiB;sCAAC;AAGvB;IADP,KAAK;;yCACiB;AAGf;IADP,KAAK;;uCACe;AAGb;IADP,KAAK;;yCACc;AAGZ;IADP,KAAK;;yCACc;AArBT;IADd,OAAO,CAAC,SAAS;aA4DjB"}
|
package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
|
|
2
1
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
3
2
|
export default class extends Page {
|
|
4
3
|
private fcs;
|
|
5
|
-
private
|
|
4
|
+
private replica;
|
|
6
5
|
private sessionSecurity;
|
|
7
6
|
private ecs;
|
|
8
7
|
private eFileID;
|
|
9
8
|
private type;
|
|
10
9
|
private eFileContentID;
|
|
11
10
|
private name;
|
|
12
|
-
run(): Promise<
|
|
11
|
+
run(): Promise<import("@entity-access/server-pages/dist/Content.js").default>;
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAU5D,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,GAAG,CAAoB;IAG/B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,IAAI,CAAS;IAGrB,OAAO,CAAC,cAAc,CAAM;IAG5B,OAAO,CAAC,IAAI,CAAM;IAEZ,GAAG;CAmCZ"}
|
package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.js
CHANGED
|
@@ -13,16 +13,20 @@ import Page from "@entity-access/server-pages/dist/Page.js";
|
|
|
13
13
|
import { Prepare } from "@entity-access/server-pages/dist/decorators/Prepare.js";
|
|
14
14
|
import { Route } from "@entity-access/server-pages/dist/core/Route.js";
|
|
15
15
|
import { CORS } from "../../../../../../../../common/CORS.js";
|
|
16
|
-
import SocialMailContext from "../../../../../../../../server/model/SocialMailContext.js";
|
|
17
16
|
import FileConversionService from "../../../../../../../../server/services/convert/FileConversionService.js";
|
|
18
17
|
import EncryptionService from "../../../../../../../../server/services/encryption/EncryptionService.js";
|
|
19
18
|
import SessionSecurity from "@entity-access/server-pages/dist/services/SessionSecurity.js";
|
|
19
|
+
import ReplicaReader from "../../../../../../../../server/services/replica/ReplicaReader.js";
|
|
20
20
|
let default_1 = class extends Page {
|
|
21
21
|
async run() {
|
|
22
22
|
const keys = this.sessionSecurity.decryptKey(this.eFileID);
|
|
23
23
|
const fileContentID = this.ecs.general.decrypt(this.eFileContentID);
|
|
24
24
|
const { type } = this;
|
|
25
|
-
const appFile = await this.db.appFiles.loadByKeys(keys);
|
|
25
|
+
const appFile = await this.replica.query((db) => db.appFiles.loadByKeys(keys));
|
|
26
|
+
if (!appFile) {
|
|
27
|
+
this.cacheControl = "public, max-age=300";
|
|
28
|
+
return this.notFound();
|
|
29
|
+
}
|
|
26
30
|
this.cacheControl = "public, max-age=2592000, immutable";
|
|
27
31
|
const file = await this.fcs.downloadConvertedFile({
|
|
28
32
|
appFile,
|
|
@@ -46,8 +50,8 @@ __decorate([
|
|
|
46
50
|
], default_1.prototype, "fcs", void 0);
|
|
47
51
|
__decorate([
|
|
48
52
|
Inject,
|
|
49
|
-
__metadata("design:type",
|
|
50
|
-
], default_1.prototype, "
|
|
53
|
+
__metadata("design:type", ReplicaReader)
|
|
54
|
+
], default_1.prototype, "replica", void 0);
|
|
51
55
|
__decorate([
|
|
52
56
|
Inject,
|
|
53
57
|
__metadata("design:type", SessionSecurity)
|
package/dist/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/wwwroot/routes/social-mail/fd/[type]/[eFileID]/[eFileContentID]/[name]/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,qBAAqB,MAAM,0EAA0E,CAAC;AAC7G,OAAO,iBAAiB,MAAM,yEAAyE,CAAC;AACxG,OAAO,eAAe,MAAM,8DAA8D,CAAC;AAC3F,OAAO,aAAa,MAAM,kEAAkE,CAAC;AAG9E,gBAAA,KAAM,SAAQ,IAAI;IA0B7B,KAAK,CAAC,GAAG;QAEL,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAQ,CAAC;QAE3E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;YAC1C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,oCAAoC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC9C,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,IAAI;YACJ,aAAa;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CACrB,IAAI,EAAE;YACF,kBAAkB,EAAE,IAAI,KAAK,UAAU;gBACnC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CACJ,CAAC;IACN,CAAC;CACJ,CAAA;AA1DW;IADP,MAAM;8BACM,qBAAqB;sCAAC;AAG3B;IADP,MAAM;8BACU,aAAa;0CAAC;AAGvB;IADP,MAAM;8BACkB,eAAe;kDAAC;AAGjC;IADP,MAAM;8BACM,iBAAiB;sCAAC;AAGvB;IADP,KAAK;;0CACkB;AAGhB;IADP,KAAK;;uCACe;AAGb;IADP,KAAK;;iDACsB;AAGpB;IADP,KAAK;;uCACY;AAxBP;IADd,OAAO,CAAC,SAAS;aA8DjB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
2
2
|
import SocialMailContext from "../../../../../server/model/SocialMailContext.js";
|
|
3
3
|
import UnreadCountService from "../../../../../server/services/emails/UnreadCountService.js";
|
|
4
|
+
import ReplicaReader from "../../../../../server/services/replica/ReplicaReader.js";
|
|
4
5
|
/**
|
|
5
6
|
* Simple Social Mail Tracker
|
|
6
7
|
*
|
|
@@ -18,6 +19,7 @@ import UnreadCountService from "../../../../../server/services/emails/UnreadCoun
|
|
|
18
19
|
*/
|
|
19
20
|
export default class extends Page {
|
|
20
21
|
static canHandle(): boolean;
|
|
22
|
+
replica: ReplicaReader;
|
|
21
23
|
db: SocialMailContext;
|
|
22
24
|
ucr: UnreadCountService;
|
|
23
25
|
run(): Promise<import("@entity-access/server-pages/dist/Content.js").default>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/social/t/index.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAG5D,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,kBAAkB,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/social/t/index.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAG5D,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,kBAAkB,MAAM,6DAA6D,CAAC;AAC7F,OAAO,aAAa,MAAM,yDAAyD,CAAC;AAIpF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAE7B,MAAM,CAAC,SAAS;IAKhB,OAAO,EAAE,aAAa,CAAC;IAGvB,EAAE,EAAE,iBAAiB,CAAC;IAGtB,GAAG,EAAE,kBAAkB,CAAC;IAGlB,GAAG;CA+BZ"}
|
|
@@ -12,6 +12,7 @@ import { Base36 } from "../../../../../common/Base36.js";
|
|
|
12
12
|
import Inject from "@entity-access/entity-access/dist/di/di.js";
|
|
13
13
|
import SocialMailContext from "../../../../../server/model/SocialMailContext.js";
|
|
14
14
|
import UnreadCountService from "../../../../../server/services/emails/UnreadCountService.js";
|
|
15
|
+
import ReplicaReader from "../../../../../server/services/replica/ReplicaReader.js";
|
|
15
16
|
const body = Buffer.from("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", "base64");
|
|
16
17
|
/**
|
|
17
18
|
* Simple Social Mail Tracker
|
|
@@ -34,14 +35,15 @@ export default class default_1 extends Page {
|
|
|
34
35
|
}
|
|
35
36
|
// send 1x1 gif
|
|
36
37
|
async run() {
|
|
37
|
-
const { db } = this;
|
|
38
38
|
const [_p0, p1] = this.childPath;
|
|
39
|
-
db.verifyFilters = false;
|
|
40
39
|
const activityID = Base36.decode(p1);
|
|
41
40
|
if (activityID) {
|
|
42
|
-
const activity = await db
|
|
43
|
-
.
|
|
44
|
-
.
|
|
41
|
+
const activity = await this.replica.query((db) => {
|
|
42
|
+
db.verifyFilters = false;
|
|
43
|
+
return db.subscriberActivities
|
|
44
|
+
.where({ activityID }, (p) => (x) => x.activityID === p.activityID)
|
|
45
|
+
.first();
|
|
46
|
+
});
|
|
45
47
|
if (!activity) {
|
|
46
48
|
return;
|
|
47
49
|
}
|
|
@@ -49,7 +51,7 @@ export default class default_1 extends Page {
|
|
|
49
51
|
delete activity.activityID;
|
|
50
52
|
activity.activity = "view";
|
|
51
53
|
activity.ipAddress = this.request?.remoteIPAddress?.slice(0, 49);
|
|
52
|
-
await this.db.subscriberActivities.statements.insert(activity);
|
|
54
|
+
await this.db.subscriberActivities.statements.insert({ ...activity });
|
|
53
55
|
}
|
|
54
56
|
this.cacheControl = "public, max-age=860000";
|
|
55
57
|
return this.content({
|
|
@@ -58,6 +60,10 @@ export default class default_1 extends Page {
|
|
|
58
60
|
});
|
|
59
61
|
}
|
|
60
62
|
}
|
|
63
|
+
__decorate([
|
|
64
|
+
Inject,
|
|
65
|
+
__metadata("design:type", ReplicaReader)
|
|
66
|
+
], default_1.prototype, "replica", void 0);
|
|
61
67
|
__decorate([
|
|
62
68
|
Inject,
|
|
63
69
|
__metadata("design:type", SocialMailContext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/social/t/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,kBAAkB,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/social/t/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,kBAAkB,MAAM,6DAA6D,CAAC;AAC7F,OAAO,aAAa,MAAM,yDAAyD,CAAC;AAEpF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE,QAAQ,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,gBAAO,SAAQ,IAAI;IAE7B,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IAWD,eAAe;IACf,KAAK,CAAC,GAAG;QAGL,MAAM,CAAE,GAAG,EAAE,EAAE,CAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAQ,CAAC;QAE5C,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC7C,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC;gBAEzB,OAAO,EAAE,CAAC,oBAAoB;qBAC7B,KAAK,CAAC,EAAE,UAAU,EAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC;qBACjE,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO;YACX,CAAC;YACD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC,UAAU,CAAC;YAC3B,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC3B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAI,QAAQ,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC;YAChB,IAAI;YACJ,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAC;IACP,CAAC;CAEJ;AAxCG;IADC,MAAM;8BACE,aAAa;0CAAC;AAGvB;IADC,MAAM;8BACH,iBAAiB;qCAAC;AAGtB;IADC,MAAM;8BACF,kBAAkB;sCAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import Inject, { RegisterScoped } from "@entity-access/entity-access/dist/di/di.js";
|
|
2
|
+
import ReadOnlySocialMailContext from "../../model/ReadOnlySocialMailContext.js";
|
|
3
|
+
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
4
|
+
import { globalEnv } from "../../../common/globalEnv.js";
|
|
5
|
+
|
|
6
|
+
@RegisterScoped
|
|
7
|
+
export default class ReplicaReader {
|
|
8
|
+
|
|
9
|
+
@Inject
|
|
10
|
+
private replica: ReadOnlySocialMailContext;
|
|
11
|
+
|
|
12
|
+
@Inject
|
|
13
|
+
private db: SocialMailContext;
|
|
14
|
+
|
|
15
|
+
async query<T>(fx: (x: SocialMailContext) => Promise<T>): Promise<T> {
|
|
16
|
+
|
|
17
|
+
if (globalEnv.db.readOnlyReplica === globalEnv.db.host) {
|
|
18
|
+
return fx(this.db);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const result = await fx(this.replica);
|
|
22
|
+
if (result) {
|
|
23
|
+
if (Array.isArray(result)) {
|
|
24
|
+
if (result.length) {
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return await fx(this.db);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|