@social-mail/social-mail-web-server 1.7.190 → 1.7.192

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.
@@ -5,6 +5,7 @@ export default class CachedItem {
5
5
  key: string;
6
6
  expiry: DateTime;
7
7
  ready: boolean;
8
+ value: string;
8
9
  slide: boolean;
9
10
  }
10
11
  //# sourceMappingURL=CachedItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CachedItem.d.ts","sourceRoot":"","sources":["../../../../src/server/model/entities/CachedItem.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAgB3E,MAAM,CAAC,OAAO,OAAO,UAAU;IAGpB,MAAM,EAAE,MAAM,CAAC;IAGf,OAAO,EAAE,MAAM,CAAC;IAGhB,GAAG,EAAE,MAAM,CAAC;IAGZ,MAAM,EAAE,QAAQ,CAAC;IAGjB,KAAK,EAAE,OAAO,CAAC;IAGf,KAAK,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"CachedItem.d.ts","sourceRoot":"","sources":["../../../../src/server/model/entities/CachedItem.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAgB3E,MAAM,CAAC,OAAO,OAAO,UAAU;IAGpB,MAAM,EAAE,MAAM,CAAC;IAGf,OAAO,EAAE,MAAM,CAAC;IAGhB,GAAG,EAAE,MAAM,CAAC;IAGZ,MAAM,EAAE,QAAQ,CAAC;IAGjB,KAAK,EAAE,OAAO,CAAC;IAGf,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,OAAO,CAAC;CACzB"}
@@ -33,6 +33,10 @@ __decorate([
33
33
  Column({ dataType: "Boolean", default: () => false }),
34
34
  __metadata("design:type", Boolean)
35
35
  ], CachedItem.prototype, "ready", void 0);
36
+ __decorate([
37
+ Column({ dataType: "Char", nullable: true }),
38
+ __metadata("design:type", String)
39
+ ], CachedItem.prototype, "value", void 0);
36
40
  __decorate([
37
41
  Column({ dataType: "Boolean", default: () => true }),
38
42
  __metadata("design:type", Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"CachedItem.js","sourceRoot":"","sources":["../../../../src/server/model/entities/CachedItem.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,wDAAwD,CAAC;AAC5E,OAAO,KAAK,MAAM,uDAAuD,CAAC;AAC1E,OAAO,KAAK,MAAM,uDAAuD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAgB5D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAmB9B,CAAA;AAhBU;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAC,CAAC;;0CAC1C;AAGf;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;2CACnB;AAGhB;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;;uCACT;AAGZ;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC;8BACjB,QAAQ;0CAAC;AAGjB;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;;yCAChC;AAGf;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;;yCAC/B;AAlBL,UAAU;IAd9B,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,CAAC;QACH,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;SAChD;QACD,MAAM,EAAE,IAAI;KACf,CAAC;IACD,KAAK,CAAC;QACH,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;SAC/C;KACJ,CAAC;GACmB,UAAU,CAmB9B;eAnBoB,UAAU"}
1
+ {"version":3,"file":"CachedItem.js","sourceRoot":"","sources":["../../../../src/server/model/entities/CachedItem.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,wDAAwD,CAAC;AAC5E,OAAO,KAAK,MAAM,uDAAuD,CAAC;AAC1E,OAAO,KAAK,MAAM,uDAAuD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAgB5D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAsB9B,CAAA;AAnBU;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAC,CAAC;;0CAC1C;AAGf;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;2CACnB;AAGhB;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;;uCACT;AAGZ;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC;8BACjB,QAAQ;0CAAC;AAGjB;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;;yCAChC;AAGf;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACxB;AAGd;IADN,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;;yCAC/B;AArBL,UAAU;IAd9B,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,CAAC;QACH,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;SAChD;QACD,MAAM,EAAE,IAAI;KACf,CAAC;IACD,KAAK,CAAC;QACH,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;SAC/C;KACJ,CAAC;GACmB,UAAU,CAsB9B;eAtBoB,UAAU"}
@@ -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.4.137";
4
+ const version = "1.4.138";
5
5
  const existing = await config.getValue(UIPackageConfig, false);
6
6
  if (existing) {
7
7
  if (semver.gte(existing.version, version)) {
@@ -1 +1 @@
1
- {"version":3,"file":"DiskCacheService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/cache/DiskCacheService.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAqB/E,MAAM,CAAC,OAAO,OAAO,gBAAgB;;IAU3B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS;IAsC5E,KAAK;CA+Ed"}
1
+ {"version":3,"file":"DiskCacheService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/cache/DiskCacheService.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAqB/E,MAAM,CAAC,OAAO,OAAO,gBAAgB;;IAQ3B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS;IAyC5E,KAAK;CAiFd"}
@@ -60,7 +60,6 @@ import { join, parse } from "path";
60
60
  import { globalEnv } from "../../../common/globalEnv.js";
61
61
  import fsp from "node:fs/promises";
62
62
  import FileSize from "../../../common/FileSize.js";
63
- import cluster from "cluster";
64
63
  import ensureDir from "../../../common/FileApi.js";
65
64
  import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
66
65
  import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
@@ -69,7 +68,6 @@ import { existsSync } from "fs";
69
68
  import { randomUUID } from "crypto";
70
69
  import sleep from "../../../common/sleep.js";
71
70
  import EntityAccessError from "@entity-access/entity-access/dist/common/EntityAccessError.js";
72
- import { parentPort } from "worker_threads";
73
71
  import { unlink } from "fs/promises";
74
72
  const cacheRoot = globalEnv.cacheDir;
75
73
  const serverCache = globalEnv.cacheDir;
@@ -79,11 +77,9 @@ const minSize = tempSize / 2;
79
77
  const doNothing = () => void 0;
80
78
  let DiskCacheService = class DiskCacheService {
81
79
  constructor() {
82
- if (cluster.isPrimary && !parentPort) {
83
- this.clear().catch(console.error);
84
- console.log(`Cleanup scheduled`);
85
- setTimeout(() => this.clear().catch(console.error), 60000);
86
- }
80
+ // it is important to clean
81
+ // in the beginning to avoid no file space errors.
82
+ setTimeout(() => this.clear().catch(console.error), 1000);
87
83
  }
88
84
  async getOrCreate(path, factory, ext = ".dat") {
89
85
  path = join(serverCache, path);
@@ -95,6 +91,7 @@ let DiskCacheService = class DiskCacheService {
95
91
  try {
96
92
  const lock = __addDisposableResource(env_1, await LockFile.lock(path), false);
97
93
  if (existsSync(path)) {
94
+ // change
98
95
  return new LocalFile(path, void 0, void 0, doNothing);
99
96
  }
100
97
  const tmpPath = join(serverCache, randomUUID() + (parsedPath.ext || ext));
@@ -124,70 +121,82 @@ let DiskCacheService = class DiskCacheService {
124
121
  }
125
122
  async clear() {
126
123
  try {
127
- const s = await fsp.statfs(cacheRoot);
128
- const freeSize = s.bavail * s.bsize;
129
- if (freeSize < minSize) {
130
- let target = minSize - freeSize;
131
- const finalTarget = target;
132
- console.log(`Clearing temp files to delete ${target} bytes.`);
133
- let old = DateTime.now.addDays(-8);
134
- while (target > 0) {
135
- old = old.addDays(1);
136
- const dir = await fsp.opendir(cacheRoot, { recursive: true });
137
- const filesToDelete = [];
138
- try {
139
- for await (const entry of dir) {
140
- if (!entry.isFile()) {
141
- continue;
142
- }
143
- try {
144
- const filePath = join(entry.path, entry.name);
145
- const st = await fsp.stat(filePath);
146
- if (st.mtimeMs < old.msSinceEpoch) {
147
- target -= st.size;
148
- if (filesToDelete.length < 100) {
149
- filesToDelete.push(filePath);
150
- }
151
- else {
152
- break;
153
- }
154
- // console.log(`${filePath} deleted.`);
155
- // await fsp.unlink(filePath);
156
- if (target < 0) {
157
- break;
124
+ const env_2 = { stack: [], error: void 0, hasError: false };
125
+ try {
126
+ const l = __addDisposableResource(env_2, await LockFile.lock("clean-" + cacheRoot, void 0, 10000), false);
127
+ const s = await fsp.statfs(cacheRoot);
128
+ const freeSize = s.bavail * s.bsize;
129
+ if (freeSize < minSize) {
130
+ let target = minSize - freeSize;
131
+ const finalTarget = target;
132
+ console.log(`Clearing temp files to delete ${target} bytes.`);
133
+ let old = DateTime.now.addDays(-8);
134
+ while (target > 0) {
135
+ old = old.addDays(1);
136
+ const dir = await fsp.opendir(cacheRoot, { recursive: true });
137
+ const filesToDelete = [];
138
+ try {
139
+ for await (const entry of dir) {
140
+ if (!entry.isFile()) {
141
+ continue;
142
+ }
143
+ try {
144
+ const filePath = join(entry.path, entry.name);
145
+ const st = await fsp.stat(filePath);
146
+ if (st.mtimeMs < old.msSinceEpoch) {
147
+ target -= st.size;
148
+ if (filesToDelete.length < 100) {
149
+ filesToDelete.push(filePath);
150
+ }
151
+ else {
152
+ break;
153
+ }
154
+ // console.log(`${filePath} deleted.`);
155
+ // await fsp.unlink(filePath);
156
+ if (target < 0) {
157
+ break;
158
+ }
158
159
  }
159
160
  }
161
+ catch {
162
+ // we will ignore the error...
163
+ }
164
+ }
165
+ }
166
+ finally {
167
+ try {
168
+ await dir.close();
160
169
  }
161
170
  catch {
162
- // we will ignore the error...
171
+ // ignore error..
163
172
  }
164
173
  }
165
- }
166
- finally {
167
- try {
168
- await dir.close();
169
- }
170
- catch {
171
- // ignore error..
172
- }
173
- }
174
- for (const element of filesToDelete) {
175
- console.log(`${element} deleted.`);
176
- try {
177
- await fsp.unlink(element);
178
- }
179
- catch {
180
- // ignore this error as someone else might have deleted
181
- // it
174
+ for (const element of filesToDelete) {
175
+ console.log(`${element} deleted.`);
176
+ try {
177
+ await fsp.unlink(element);
178
+ }
179
+ catch {
180
+ // ignore this error as someone else might have deleted
181
+ // it
182
+ }
182
183
  }
183
184
  }
185
+ console.log(`Temp folder cleared, ${finalTarget - target} bytes freed.`);
184
186
  }
185
- console.log(`Temp folder cleared, ${finalTarget - target} bytes freed.`);
187
+ }
188
+ catch (e_2) {
189
+ env_2.error = e_2;
190
+ env_2.hasError = true;
191
+ }
192
+ finally {
193
+ __disposeResources(env_2);
186
194
  }
187
195
  }
188
196
  catch (error) {
189
197
  console.error(error);
190
198
  }
199
+ await sleep(30000);
191
200
  setTimeout(() => this.clear().catch(console.error), 60000);
192
201
  }
193
202
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DiskCacheService.js","sourceRoot":"","sources":["../../../../src/server/services/cache/DiskCacheService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiskCacheService.js","sourceRoot":"","sources":["../../../../src/server/services/cache/DiskCacheService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export default class LockFile implements Disposable {
2
2
  private readonly lockFile;
3
- static lock(someKey: string, timeout?: number): Promise<LockFile>;
3
+ static lock(someKey: string, timeout?: number, interval?: number): Promise<LockFile>;
4
4
  timer: any;
5
5
  fd: any;
6
6
  constructor(lockFile: any);
@@ -1 +1 @@
1
- {"version":3,"file":"LockFile.d.ts","sourceRoot":"","sources":["../../../src/server/storage/LockFile.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,UAAU;IAyCnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;WAvCxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAY;IAoCtD,KAAK,EAAE,GAAG,CAAC;IACX,EAAE,EAAE,GAAG,CAAC;gBAEqB,QAAQ,KAAA;IAerC,CAAC,MAAM,CAAC,OAAO,CAAC;CAWnB"}
1
+ {"version":3,"file":"LockFile.d.ts","sourceRoot":"","sources":["../../../src/server/storage/LockFile.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,UAAU;IAyCnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;WAvCxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAY,EAAE,QAAQ,SAAO;IAoCvE,KAAK,EAAE,GAAG,CAAC;IACX,EAAE,EAAE,GAAG,CAAC;gBAEqB,QAAQ,KAAA;IAerC,CAAC,MAAM,CAAC,OAAO,CAAC;CAWnB"}
@@ -16,7 +16,7 @@ const { O_EXCL, O_DIRECT, O_SYNC } = constants;
16
16
  // eslint-disable-next-line no-bitwise
17
17
  const openMode = O_EXCL | O_DIRECT | O_SYNC;
18
18
  export default class LockFile {
19
- static async lock(someKey, timeout = 2 * hours) {
19
+ static async lock(someKey, timeout = 2 * hours, interval = 3000) {
20
20
  const sha256 = createHash("sha256");
21
21
  const hash = sha256.update(someKey).digest("hex");
22
22
  const lockFile = join(lockFolder, hash + ".lock");
@@ -40,7 +40,7 @@ export default class LockFile {
40
40
  // do nothing
41
41
  console.error(error);
42
42
  }
43
- await sleep(3000);
43
+ await sleep(interval);
44
44
  now = Date.now();
45
45
  } while (now < till);
46
46
  throw new Error("Could not acquire lock");
@@ -1 +1 @@
1
- {"version":3,"file":"LockFile.js","sourceRoot":"","sources":["../../../src/server/storage/LockFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LockFile.js","sourceRoot":"","sources":["../../../src/server/storage/LockFile.ts"],"names":[],"mappings":"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"}