@social-mail/social-mail-web-server 1.7.366 → 1.7.368
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/WebSiteVersion.d.ts +1 -0
- package/dist/server/model/entities/WebSiteVersion.d.ts.map +1 -1
- package/dist/server/model/entities/WebSiteVersion.js +4 -0
- package/dist/server/model/entities/WebSiteVersion.js.map +1 -1
- package/dist/server/model/events/WebSiteEvents.d.ts +1 -1
- package/dist/server/model/events/WebSiteEvents.d.ts.map +1 -1
- package/dist/server/model/events/WebSiteEvents.js +5 -4
- package/dist/server/model/events/WebSiteEvents.js.map +1 -1
- package/dist/server/model/events/WebSiteVersionEvents.d.ts.map +1 -1
- package/dist/server/model/events/WebSiteVersionEvents.js +7 -0
- package/dist/server/model/events/WebSiteVersionEvents.js.map +1 -1
- package/dist/server/seed/ui/seed-ui.js +1 -1
- package/dist/server/services/files/SnapshotService.d.ts.map +1 -1
- package/dist/server/services/files/SnapshotService.js +0 -323
- package/dist/server/services/files/SnapshotService.js.map +1 -1
- package/dist/server/services/files/WebSiteContentService.d.ts +1 -0
- package/dist/server/services/files/WebSiteContentService.d.ts.map +1 -1
- package/dist/server/services/files/WebSiteContentService.js +3 -0
- package/dist/server/services/files/WebSiteContentService.js.map +1 -1
- package/dist/server/services/files/WebSiteVersionService.d.ts +1 -1
- package/dist/server/services/files/WebSiteVersionService.d.ts.map +1 -1
- package/dist/server/services/files/WebSiteVersionService.js +6 -6
- package/dist/server/services/files/WebSiteVersionService.js.map +1 -1
- package/dist/server/workflows/SocialWorkflowContext.d.ts.map +1 -1
- package/dist/server/workflows/SocialWorkflowContext.js +2 -0
- package/dist/server/workflows/SocialWorkflowContext.js.map +1 -1
- package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.js +1 -3
- package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.js.map +1 -1
- package/dist/server/workflows/files/DeleteFileWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/files/DeleteFileWorkflow.js +1 -0
- package/dist/server/workflows/files/DeleteFileWorkflow.js.map +1 -1
- package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.d.ts +11 -0
- package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.d.ts.map +1 -0
- package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.js +55 -0
- package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/social-mail/site/download/files/get.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/site/download/files/get.js +2 -25
- package/dist/wwwroot/routes/social-mail/site/download/files/get.js.map +1 -1
- package/package.json +1 -1
- package/src/server/model/entities/WebSiteVersion.ts +4 -0
- package/src/server/model/events/WebSiteEvents.ts +5 -4
- package/src/server/model/events/WebSiteVersionEvents.ts +8 -0
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/files/SnapshotService.ts +2 -384
- package/src/server/services/files/WebSiteContentService.ts +4 -0
- package/src/server/services/files/WebSiteVersionService.ts +8 -6
- package/src/server/workflows/SocialWorkflowContext.ts +2 -0
- package/src/server/workflows/clean-up/CleanupDeletedFilesWorkflow.ts +1 -3
- package/src/server/workflows/files/DeleteFileWorkflow.ts +1 -0
- package/src/server/workflows/web-site/DeleteWebSiteVersionWorkflow.ts +54 -0
- package/src/wwwroot/routes/social-mail/site/download/files/get.tsx +2 -26
|
@@ -31,6 +31,7 @@ export default class DeleteFileWorkflow extends Workflow<{ fileID }> {
|
|
|
31
31
|
|
|
32
32
|
@UniqueActivity
|
|
33
33
|
async deleteFile(@Inject db?: SocialMailContext) {
|
|
34
|
+
await db.websiteVersions.asQuery().delete(this.input, (p) => (x) => x.snapshotFolderID === p.fileID);
|
|
34
35
|
await db.websiteFolders.asQuery().delete(this.input, (p) => (x) => x.folderID === p.fileID);
|
|
35
36
|
await db.appFiles.statements.delete({ appFileID: this.input.fileID});
|
|
36
37
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import Workflow, { UniqueActivity } from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
2
|
+
import { WebSiteVersion } from "../../model/entities/WebSiteVersion.js";
|
|
3
|
+
import Inject from "@entity-access/entity-access/dist/di/di.js";
|
|
4
|
+
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
5
|
+
import DeleteFileWorkflow from "../files/DeleteFileWorkflow.js";
|
|
6
|
+
|
|
7
|
+
export default class DeleteWebSiteVersionWorkflow extends Workflow<Partial<WebSiteVersion>> {
|
|
8
|
+
|
|
9
|
+
async run() {
|
|
10
|
+
let start = 0;
|
|
11
|
+
do {
|
|
12
|
+
const { start: startNext, children } = await this.deleteChildren(start);
|
|
13
|
+
|
|
14
|
+
if (!startNext) {
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
start = startNext;
|
|
19
|
+
const all = children.map((fileID) => this.runChild(DeleteFileWorkflow, { fileID }));
|
|
20
|
+
await this.all(all);
|
|
21
|
+
|
|
22
|
+
} while(BigInt(start) > 0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@UniqueActivity
|
|
26
|
+
async deleteChildren(
|
|
27
|
+
start: number,
|
|
28
|
+
@Inject db?: SocialMailContext
|
|
29
|
+
) {
|
|
30
|
+
|
|
31
|
+
const { folderID, snapshotFolderID } = this.input;
|
|
32
|
+
const files = await db.websiteVersions.where({ folderID, snapshotFolderID , start }, (p) => (x) =>
|
|
33
|
+
x.folderID === p.folderID
|
|
34
|
+
&& x.snapshotFolderID !== p.snapshotFolderID
|
|
35
|
+
&& x.snapshotFolderID > p.start
|
|
36
|
+
)
|
|
37
|
+
.limit(10)
|
|
38
|
+
.toArray();
|
|
39
|
+
|
|
40
|
+
const children = [];
|
|
41
|
+
|
|
42
|
+
if (files.length === 0) {
|
|
43
|
+
return { start: 0, children };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
for (const version of files) {
|
|
47
|
+
start = version.snapshotFolderID;
|
|
48
|
+
children.push(version.snapshotFolderID);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return { start, children };
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -26,31 +26,6 @@ export default class extends Page {
|
|
|
26
26
|
return this.notFound();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
// this will be handled by the site route
|
|
30
|
-
// if (snapshot.remoteUrl) {
|
|
31
|
-
// // proxy remote url
|
|
32
|
-
// const url = snapshot.remoteUrl + this.request.URL.pathname + this.request.URL.search;
|
|
33
|
-
// const r = await fetch(url);
|
|
34
|
-
// if (r.status >= 400) {
|
|
35
|
-
// return this.content({
|
|
36
|
-
// body: await r.text(),
|
|
37
|
-
// contentType: "text/plain"
|
|
38
|
-
// });
|
|
39
|
-
// }
|
|
40
|
-
// const buffer = await r.arrayBuffer();
|
|
41
|
-
// const contentType = r.headers.get("content-type") || "text/plain";
|
|
42
|
-
// let compress = false;
|
|
43
|
-
// if (/text|json/i.test(contentType)) {
|
|
44
|
-
// compress = true;
|
|
45
|
-
// }
|
|
46
|
-
// return this.content({
|
|
47
|
-
// status: r.status,
|
|
48
|
-
// body: Buffer.from(buffer),
|
|
49
|
-
// compress,
|
|
50
|
-
// contentType
|
|
51
|
-
// });
|
|
52
|
-
// }
|
|
53
|
-
|
|
54
29
|
const path = this.childPath as string[] ?? [];
|
|
55
30
|
|
|
56
31
|
const file = path?.length
|
|
@@ -84,9 +59,10 @@ export default class extends Page {
|
|
|
84
59
|
});
|
|
85
60
|
}
|
|
86
61
|
|
|
87
|
-
const appFile = await this.wcs.
|
|
62
|
+
const appFile = await this.wcs.getFileFromInfo(file);
|
|
88
63
|
return new TempFileResult(appFile, {
|
|
89
64
|
contentDisposition: "inline",
|
|
65
|
+
contentType: file.contentType
|
|
90
66
|
});
|
|
91
67
|
}
|
|
92
68
|
}
|