@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.
Files changed (53) hide show
  1. package/dist/server/model/entities/WebSiteVersion.d.ts +1 -0
  2. package/dist/server/model/entities/WebSiteVersion.d.ts.map +1 -1
  3. package/dist/server/model/entities/WebSiteVersion.js +4 -0
  4. package/dist/server/model/entities/WebSiteVersion.js.map +1 -1
  5. package/dist/server/model/events/WebSiteEvents.d.ts +1 -1
  6. package/dist/server/model/events/WebSiteEvents.d.ts.map +1 -1
  7. package/dist/server/model/events/WebSiteEvents.js +5 -4
  8. package/dist/server/model/events/WebSiteEvents.js.map +1 -1
  9. package/dist/server/model/events/WebSiteVersionEvents.d.ts.map +1 -1
  10. package/dist/server/model/events/WebSiteVersionEvents.js +7 -0
  11. package/dist/server/model/events/WebSiteVersionEvents.js.map +1 -1
  12. package/dist/server/seed/ui/seed-ui.js +1 -1
  13. package/dist/server/services/files/SnapshotService.d.ts.map +1 -1
  14. package/dist/server/services/files/SnapshotService.js +0 -323
  15. package/dist/server/services/files/SnapshotService.js.map +1 -1
  16. package/dist/server/services/files/WebSiteContentService.d.ts +1 -0
  17. package/dist/server/services/files/WebSiteContentService.d.ts.map +1 -1
  18. package/dist/server/services/files/WebSiteContentService.js +3 -0
  19. package/dist/server/services/files/WebSiteContentService.js.map +1 -1
  20. package/dist/server/services/files/WebSiteVersionService.d.ts +1 -1
  21. package/dist/server/services/files/WebSiteVersionService.d.ts.map +1 -1
  22. package/dist/server/services/files/WebSiteVersionService.js +6 -6
  23. package/dist/server/services/files/WebSiteVersionService.js.map +1 -1
  24. package/dist/server/workflows/SocialWorkflowContext.d.ts.map +1 -1
  25. package/dist/server/workflows/SocialWorkflowContext.js +2 -0
  26. package/dist/server/workflows/SocialWorkflowContext.js.map +1 -1
  27. package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.d.ts.map +1 -1
  28. package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.js +1 -3
  29. package/dist/server/workflows/clean-up/CleanupDeletedFilesWorkflow.js.map +1 -1
  30. package/dist/server/workflows/files/DeleteFileWorkflow.d.ts.map +1 -1
  31. package/dist/server/workflows/files/DeleteFileWorkflow.js +1 -0
  32. package/dist/server/workflows/files/DeleteFileWorkflow.js.map +1 -1
  33. package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.d.ts +11 -0
  34. package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.d.ts.map +1 -0
  35. package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.js +55 -0
  36. package/dist/server/workflows/web-site/DeleteWebSiteVersionWorkflow.js.map +1 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/dist/wwwroot/routes/social-mail/site/download/files/get.d.ts.map +1 -1
  39. package/dist/wwwroot/routes/social-mail/site/download/files/get.js +2 -25
  40. package/dist/wwwroot/routes/social-mail/site/download/files/get.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/server/model/entities/WebSiteVersion.ts +4 -0
  43. package/src/server/model/events/WebSiteEvents.ts +5 -4
  44. package/src/server/model/events/WebSiteVersionEvents.ts +8 -0
  45. package/src/server/seed/ui/seed-ui.ts +1 -1
  46. package/src/server/services/files/SnapshotService.ts +2 -384
  47. package/src/server/services/files/WebSiteContentService.ts +4 -0
  48. package/src/server/services/files/WebSiteVersionService.ts +8 -6
  49. package/src/server/workflows/SocialWorkflowContext.ts +2 -0
  50. package/src/server/workflows/clean-up/CleanupDeletedFilesWorkflow.ts +1 -3
  51. package/src/server/workflows/files/DeleteFileWorkflow.ts +1 -0
  52. package/src/server/workflows/web-site/DeleteWebSiteVersionWorkflow.ts +54 -0
  53. 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.getSnapshotFile(snapshot, path);
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
  }