@social-mail/social-mail-web-server 1.5.268 → 1.5.269
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/seed/ui/seed-ui.js +1 -1
- package/dist/server/services/StoreFileService.d.ts +2 -1
- package/dist/server/services/StoreFileService.d.ts.map +1 -1
- package/dist/server/services/StoreFileService.js +12 -13
- package/dist/server/services/StoreFileService.js.map +1 -1
- package/dist/server/workflows/repair/files/RepairFolderSizeWorkflow.d.ts +8 -0
- package/dist/server/workflows/repair/files/RepairFolderSizeWorkflow.d.ts.map +1 -0
- package/dist/server/workflows/repair/files/RepairFolderSizeWorkflow.js +52 -0
- package/dist/server/workflows/repair/files/RepairFolderSizeWorkflow.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/StoreFileService.ts +12 -13
- package/src/server/workflows/repair/files/RepairFolderSizeWorkflow.ts +45 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UIPackageConfig } from "../../services/DBConfig.js";
|
|
2
2
|
import semver from "semver";
|
|
3
3
|
export default async function seedUI(config) {
|
|
4
|
-
const version = "1.2.
|
|
4
|
+
const version = "1.2.668";
|
|
5
5
|
const existing = await config.getValue(UIPackageConfig, false);
|
|
6
6
|
if (existing) {
|
|
7
7
|
if (semver.gte(existing.version, version)) {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import SocialMailContext from "../model/SocialMailContext.js";
|
|
2
2
|
import { StoreItem } from "../model/entities/StoreItem.js";
|
|
3
3
|
import AtomicFolderService from "./files/AtomicFolderService.js";
|
|
4
|
+
import WorkflowContext from "@entity-access/entity-access/dist/workflows/WorkflowContext.js";
|
|
4
5
|
export default class StoreFileService {
|
|
5
6
|
db: SocialMailContext;
|
|
6
7
|
afs: AtomicFolderService;
|
|
7
|
-
|
|
8
|
+
context: WorkflowContext;
|
|
8
9
|
changeFolder(item: StoreItem): Promise<void>;
|
|
9
10
|
assignFolder(item: StoreItem): Promise<void>;
|
|
10
11
|
private createItemFolder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreFileService.d.ts","sourceRoot":"","sources":["../../../src/server/services/StoreFileService.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"StoreFileService.d.ts","sourceRoot":"","sources":["../../../src/server/services/StoreFileService.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AAKjE,OAAO,eAAe,MAAM,gEAAgE,CAAC;AAI7F,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAGjC,EAAE,EAAE,iBAAiB,CAAC;IAGtB,GAAG,EAAE,mBAAmB,CAAC;IAGzB,OAAO,EAAE,eAAe,CAAC;IAEnB,YAAY,CAAC,IAAI,EAAE,SAAS;IAO5B,YAAY,CAAC,IAAI,EAAE,SAAS;YAwDpB,gBAAgB;YAQhB,gBAAgB;CAGjC"}
|
|
@@ -14,20 +14,9 @@ import { SafeFileName } from "../../common/SafeFileName.js";
|
|
|
14
14
|
import { Base36 } from "../../common/Base36.js";
|
|
15
15
|
import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
|
|
16
16
|
import { cacheFor } from "../../common/cacheFor.js";
|
|
17
|
+
import WorkflowContext from "@entity-access/entity-access/dist/workflows/WorkflowContext.js";
|
|
18
|
+
import UpdateFolderSize from "../workflows/storage/files/UpdateFolderSize.js";
|
|
17
19
|
let StoreFileService = class StoreFileService {
|
|
18
|
-
async updateFolders() {
|
|
19
|
-
for (;;) {
|
|
20
|
-
const items = await this.db.storeItems.where(void 0, (p) => (x) => x.folderID === null)
|
|
21
|
-
.limit(100)
|
|
22
|
-
.toArray();
|
|
23
|
-
if (!items.length) {
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
for (const element of items) {
|
|
27
|
-
await this.assignFolder(element);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
20
|
async changeFolder(item) {
|
|
32
21
|
const folderName = SafeFileName.rename(item.name, `(${Base36.encode(item.storeItemID)})`);
|
|
33
22
|
await this.db.appFiles.statements.update({
|
|
@@ -62,10 +51,16 @@ let StoreFileService = class StoreFileService {
|
|
|
62
51
|
}
|
|
63
52
|
} while (true);
|
|
64
53
|
}
|
|
54
|
+
if (item.folderID) {
|
|
55
|
+
await this.context.queue(UpdateFolderSize, item.folderID);
|
|
56
|
+
}
|
|
65
57
|
item.folderID = item_folder.appFileID;
|
|
66
58
|
await this.db.storeItems.statements.update({
|
|
67
59
|
folderID: item.folderID
|
|
68
60
|
}, { storeItemID });
|
|
61
|
+
if (item.folderID) {
|
|
62
|
+
await this.context.queue(UpdateFolderSize, item.folderID);
|
|
63
|
+
}
|
|
69
64
|
}
|
|
70
65
|
async createItemFolder(storeID, name, storeItemID) {
|
|
71
66
|
const root = await this.createRootFolder(storeID);
|
|
@@ -85,6 +80,10 @@ __decorate([
|
|
|
85
80
|
Inject,
|
|
86
81
|
__metadata("design:type", AtomicFolderService)
|
|
87
82
|
], StoreFileService.prototype, "afs", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
Inject,
|
|
85
|
+
__metadata("design:type", WorkflowContext)
|
|
86
|
+
], StoreFileService.prototype, "context", void 0);
|
|
88
87
|
__decorate([
|
|
89
88
|
cacheFor(),
|
|
90
89
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreFileService.js","sourceRoot":"","sources":["../../../src/server/services/StoreFileService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAE9D,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"StoreFileService.js","sourceRoot":"","sources":["../../../src/server/services/StoreFileService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Workflow from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
2
|
+
import SocialMailContext from "../../../model/SocialMailContext.js";
|
|
3
|
+
export default class RepairFolderSizeWorkflow extends Workflow {
|
|
4
|
+
static taskGroup: string;
|
|
5
|
+
run(): Promise<void>;
|
|
6
|
+
fixFolderSize(start: number, db?: SocialMailContext): Promise<number>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=RepairFolderSizeWorkflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepairFolderSizeWorkflow.d.ts","sourceRoot":"","sources":["../../../../../src/server/workflows/repair/files/RepairFolderSizeWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AACnG,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AAIpE,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,QAAQ;IAE1D,MAAM,CAAC,SAAS,SAAW;IAErB,GAAG;IAQH,aAAa,CACf,KAAK,EAAE,MAAM,EACL,EAAE,CAAC,EAAE,iBAAiB;CAyBrC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import Workflow, { UniqueActivity } from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
14
|
+
import SocialMailContext from "../../../model/SocialMailContext.js";
|
|
15
|
+
import Inject from "@entity-access/entity-access/dist/di/di.js";
|
|
16
|
+
import UpdateFolderSize from "../../storage/files/UpdateFolderSize.js";
|
|
17
|
+
class RepairFolderSizeWorkflow extends Workflow {
|
|
18
|
+
async run() {
|
|
19
|
+
let start = 0;
|
|
20
|
+
do {
|
|
21
|
+
start = await this.fixFolderSize(start);
|
|
22
|
+
} while (BigInt(start));
|
|
23
|
+
}
|
|
24
|
+
async fixFolderSize(start, db) {
|
|
25
|
+
for (let i = 0; i < 100; i++) {
|
|
26
|
+
const files = await db.appFiles.where({ start }, (p) => (x) => x.appFileID > p.start
|
|
27
|
+
&& x.isFolder === false
|
|
28
|
+
&& x.parentID !== null)
|
|
29
|
+
.limit(100)
|
|
30
|
+
.toArray();
|
|
31
|
+
if (!files.length) {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
for (const iterator of files) {
|
|
35
|
+
await this.context.queue(UpdateFolderSize, iterator.parentID, { id: `update-folder-id-${iterator.parentID}` });
|
|
36
|
+
start = iterator.appFileID;
|
|
37
|
+
}
|
|
38
|
+
db.changeSet.clear();
|
|
39
|
+
}
|
|
40
|
+
return start;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
RepairFolderSizeWorkflow.taskGroup = "batch";
|
|
44
|
+
export default RepairFolderSizeWorkflow;
|
|
45
|
+
__decorate([
|
|
46
|
+
UniqueActivity,
|
|
47
|
+
__param(1, Inject),
|
|
48
|
+
__metadata("design:type", Function),
|
|
49
|
+
__metadata("design:paramtypes", [Number, SocialMailContext]),
|
|
50
|
+
__metadata("design:returntype", Promise)
|
|
51
|
+
], RepairFolderSizeWorkflow.prototype, "fixFolderSize", null);
|
|
52
|
+
//# sourceMappingURL=RepairFolderSizeWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepairFolderSizeWorkflow.js","sourceRoot":"","sources":["../../../../../src/server/workflows/repair/files/RepairFolderSizeWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACnG,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AACpE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE,MAAqB,wBAAyB,SAAQ,QAAQ;IAI1D,KAAK,CAAC,GAAG;QACL,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,GAAE,CAAC;YACC,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,QAAO,MAAM,CAAC,KAAK,CAAC,EAAE;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACf,KAAa,EACL,EAAsB;QAG9B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,GAAE,GAAG,EAAC,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;mBAClB,CAAC,CAAC,QAAQ,KAAK,KAAK;mBACpB,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC;iBACV,OAAO,EAAE,CAAC;YAEf,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC;YACb,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,oBAAoB,QAAQ,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;gBAC9G,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;;AAlCM,kCAAS,GAAG,OAAO,CAAC;eAFV,wBAAwB;AAYnC;IADL,cAAc;IAGV,WAAA,MAAM,CAAA;;6CAAM,iBAAiB;;6DAsBjC"}
|