@social-mail/social-mail-web-server 1.7.366 → 1.7.367
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/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/WebSiteVersionService.d.ts.map +1 -1
- package/dist/server/services/files/WebSiteVersionService.js +2 -1
- 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/package.json +1 -1
- package/src/server/model/entities/WebSiteVersion.ts +4 -0
- package/src/server/model/events/WebSiteVersionEvents.ts +8 -0
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/files/WebSiteVersionService.ts +2 -1
- 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/package.json
CHANGED
|
@@ -11,6 +11,8 @@ import { ForeignKeyFilter } from "@entity-access/entity-access/dist/model/events
|
|
|
11
11
|
import FileDeleteService from "../../services/files/FileDeleteService.js";
|
|
12
12
|
import SnapshotService from "../../services/files/SnapshotService.js";
|
|
13
13
|
import WebSiteVersionService from "../../services/files/WebSiteVersionService.js";
|
|
14
|
+
import WorkflowContext from "@entity-access/entity-access/dist/workflows/WorkflowContext.js";
|
|
15
|
+
import DeleteWebSiteVersionWorkflow from "../../workflows/web-site/DeleteWebSiteVersionWorkflow.js";
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
|
|
@@ -94,6 +96,12 @@ export class WebSiteVersionEvents extends AuthenticatedEvents<WebSiteVersion> {
|
|
|
94
96
|
isModified: false
|
|
95
97
|
}));
|
|
96
98
|
}
|
|
99
|
+
|
|
100
|
+
if(entity.clearHistory) {
|
|
101
|
+
const context = ServiceProvider.resolve(this, WorkflowContext);
|
|
102
|
+
const { folderID, snapshotFolderID } = entity;
|
|
103
|
+
await context.queue(DeleteWebSiteVersionWorkflow, { folderID, snapshotFolderID });
|
|
104
|
+
}
|
|
97
105
|
}
|
|
98
106
|
|
|
99
107
|
onForeignKeyFilter(filter: ForeignKeyFilter<WebSiteVersion, any>): IEntityQuery<any> {
|
|
@@ -5,7 +5,7 @@ export default async function seedUI(config: DBConfig) {
|
|
|
5
5
|
await config.saveVersion(UIPackageConfig, {
|
|
6
6
|
package: "@social-mail/social-mail-client",
|
|
7
7
|
view: "dist/web/AppIndex",
|
|
8
|
-
version: "1.4.
|
|
8
|
+
version: "1.4.215"
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
await config.saveVersion(WebComponentsPackageConfig, {
|
|
@@ -70,7 +70,8 @@ export default class WebSiteVersionService {
|
|
|
70
70
|
authorID: creatorID,
|
|
71
71
|
dateCreated,
|
|
72
72
|
folderID,
|
|
73
|
-
snapshotFolderID: snapshotRoot.appFileID
|
|
73
|
+
snapshotFolderID: snapshotRoot.appFileID,
|
|
74
|
+
name: await this.getNewVersion(site)
|
|
74
75
|
});
|
|
75
76
|
|
|
76
77
|
// delete previous versions...
|
|
@@ -50,6 +50,7 @@ import DeleteHostedDomainWorkflow from "./hosted-domain/DeleteHostedDomainWorkfl
|
|
|
50
50
|
import DeleteMailboxContactWorkflow from "./mailbox/DeleteMailboxContactWorkflow.js";
|
|
51
51
|
import DownloadExternalAttachmentWorkflow from "./external-body/DownloadExternalAttachmentWorkflow.js";
|
|
52
52
|
import FetchCheckoutResultWorkflow from "./store/FetchCheckoutResultWorkflow.js";
|
|
53
|
+
import DeleteWebSiteVersionWorkflow from "./web-site/DeleteWebSiteVersionWorkflow.js";
|
|
53
54
|
|
|
54
55
|
@RegisterSingleton
|
|
55
56
|
export default class SocialWorkflowContext extends WorkflowContext {
|
|
@@ -102,6 +103,7 @@ export default class SocialWorkflowContext extends WorkflowContext {
|
|
|
102
103
|
this.register(CopyTemplateWorkflow);
|
|
103
104
|
|
|
104
105
|
this.register(DeleteWebsiteWorkflow);
|
|
106
|
+
this.register(DeleteWebSiteVersionWorkflow);
|
|
105
107
|
this.register(DeleteFileWorkflow);
|
|
106
108
|
|
|
107
109
|
this.register(DeleteMailboxWorkflow);
|
|
@@ -51,9 +51,7 @@ export default class CleanupDeletedFilesWorkflow extends Workflow {
|
|
|
51
51
|
x.tempFiles.some((tf) => tf.rootID === p.tempFileID)
|
|
52
52
|
)
|
|
53
53
|
.update(void 0, (p) => (x) => ({ deleted: true }));
|
|
54
|
-
await db.appTempFiles.
|
|
55
|
-
rootID: tmpFolder.rootID
|
|
56
|
-
});
|
|
54
|
+
await db.appTempFiles.asQuery().delete(tmpFolder, (p) => (x) => x.rootID === p.tempFileID);
|
|
57
55
|
await db.appTempFiles.statements.delete({
|
|
58
56
|
tempFileID: tmpFolder.tempFileID
|
|
59
57
|
});
|
|
@@ -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
|
+
}
|