@social-mail/social-mail-web-server 1.8.446 → 1.8.449
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/common/AsyncTaskManager.d.ts.map +1 -1
- package/dist/common/AsyncTaskManager.js.map +1 -1
- package/dist/server/workflows/email/index/IndexEmailContentWorkflow.d.ts +5 -2
- package/dist/server/workflows/email/index/IndexEmailContentWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/email/index/IndexEmailContentWorkflow.js +84 -18
- package/dist/server/workflows/email/index/IndexEmailContentWorkflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/common/AsyncTaskManager.ts +1 -1
- package/src/server/workflows/email/index/IndexEmailContentWorkflow.ts +23 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/common/AsyncTaskManager.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"AsyncTaskManager.d.ts","sourceRoot":"","sources":["../../src/common/AsyncTaskManager.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAE9B,SAAS,SAAM;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,OAAO,CAA+C;IAE9D,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IAevD,IAAI;IAIJ;;;;;OAKG;IACI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG;IAiBhC,SAAS,CAAC,YAAY;CA8BzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/common/AsyncTaskManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAC/C,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAArC;
|
|
1
|
+
{"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/common/AsyncTaskManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAC/C,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAArC;QAEO,cAAS,GAAG,EAAE,CAAC;QAEV,YAAO,GAAa,IAAI,GAAG,EAAE,CAAC;QAE9B,YAAO,GAAmC,IAAI,KAAK,EAAE,CAAC;IA0ElE,CAAC;IAxEG,GAAG,CAAK,EAAiC;QAErC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,sCAAsC;QACtC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,EAAiB,CAAC;IAC7B,CAAC;IAED,IAAI;QACA,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,EAAa;QAC5B,CAAC,KAAK,IAAI,EAAE;YACR,SAAQ,CAAC;gBACL,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBACD,MAAM;YACV,CAAC;YACD,EAAE,EAAE,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAES,YAAY;QAClB,SAAQ,CAAC;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,OAAO;YACX,CAAC;YAED,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACL,OAAO;YACX,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAErB,EAAE,EAAE,CAAC,IAAI,CACL,CAAC,CAAC,EAAE,EAAE;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzC,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CACJ,CAAC;QAEN,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import Workflow from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
2
2
|
import WorkflowContext from "@entity-access/entity-access/dist/workflows/WorkflowContext.js";
|
|
3
3
|
import SocialMailContext from "../../../model/SocialMailContext.js";
|
|
4
|
-
import IndexEmailService from "../../../services/emails/IndexEmailService.js";
|
|
5
4
|
export default class IndexEmailContentWorkflow extends Workflow {
|
|
6
5
|
static taskGroup: string;
|
|
7
6
|
static queue(context: WorkflowContext): Promise<string>;
|
|
8
7
|
run(): Promise<void>;
|
|
9
|
-
index(db?: SocialMailContext
|
|
8
|
+
index(db?: SocialMailContext): Promise<void>;
|
|
9
|
+
indexEmail(email: {
|
|
10
|
+
emailID: number;
|
|
11
|
+
textBody: string;
|
|
12
|
+
}): Promise<void>;
|
|
10
13
|
}
|
|
11
14
|
//# sourceMappingURL=IndexEmailContentWorkflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexEmailContentWorkflow.d.ts","sourceRoot":"","sources":["../../../../../src/server/workflows/email/index/IndexEmailContentWorkflow.ts"],"names":[],"mappings":"AAEA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AACnG,OAAO,eAAe,MAAM,gEAAgE,CAAC;AAC7F,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"IndexEmailContentWorkflow.d.ts","sourceRoot":"","sources":["../../../../../src/server/workflows/email/index/IndexEmailContentWorkflow.ts"],"names":[],"mappings":"AAEA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AACnG,OAAO,eAAe,MAAM,gEAAgE,CAAC;AAC7F,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AAMpE,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,QAAQ;IAE3D,MAAM,CAAC,SAAS,SAAW;IAE3B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe;IAM/B,GAAG;IAMH,KAAK,CACC,EAAE,CAAC,EAAE,iBAAiB;IA0B5B,UAAU,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE;CAajE"}
|
|
@@ -10,12 +10,66 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
14
|
+
if (value !== null && value !== void 0) {
|
|
15
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
16
|
+
var dispose, inner;
|
|
17
|
+
if (async) {
|
|
18
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
19
|
+
dispose = value[Symbol.asyncDispose];
|
|
20
|
+
}
|
|
21
|
+
if (dispose === void 0) {
|
|
22
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
23
|
+
dispose = value[Symbol.dispose];
|
|
24
|
+
if (async) inner = dispose;
|
|
25
|
+
}
|
|
26
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
27
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
28
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
29
|
+
}
|
|
30
|
+
else if (async) {
|
|
31
|
+
env.stack.push({ async: true });
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
};
|
|
35
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
36
|
+
return function (env) {
|
|
37
|
+
function fail(e) {
|
|
38
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
39
|
+
env.hasError = true;
|
|
40
|
+
}
|
|
41
|
+
var r, s = 0;
|
|
42
|
+
function next() {
|
|
43
|
+
while (r = env.stack.pop()) {
|
|
44
|
+
try {
|
|
45
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
46
|
+
if (r.dispose) {
|
|
47
|
+
var result = r.dispose.call(r.value);
|
|
48
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
49
|
+
}
|
|
50
|
+
else s |= 1;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
fail(e);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
57
|
+
if (env.hasError) throw env.error;
|
|
58
|
+
}
|
|
59
|
+
return next();
|
|
60
|
+
};
|
|
61
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
62
|
+
var e = new Error(message);
|
|
63
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
64
|
+
});
|
|
13
65
|
/* eslint-disable no-console */
|
|
14
|
-
import Inject from "@entity-access/entity-access/dist/di/di.js";
|
|
66
|
+
import Inject, { ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
15
67
|
import Workflow, { UniqueActivity } from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
16
68
|
import SocialMailContext from "../../../model/SocialMailContext.js";
|
|
17
69
|
import IndexEmailService from "../../../services/emails/IndexEmailService.js";
|
|
18
70
|
import TimeSpan from "@entity-access/entity-access/dist/types/TimeSpan.js";
|
|
71
|
+
import { globalEnv } from "../../../../common/globalEnv.js";
|
|
72
|
+
import AsyncTaskManager from "../../../../common/AsyncTaskManager.js";
|
|
19
73
|
class IndexEmailContentWorkflow extends Workflow {
|
|
20
74
|
static queue(context) {
|
|
21
75
|
return context.queue(IndexEmailContentWorkflow, "", {
|
|
@@ -26,43 +80,55 @@ class IndexEmailContentWorkflow extends Workflow {
|
|
|
26
80
|
this.preserveTime = TimeSpan.fromSeconds(15);
|
|
27
81
|
await this.index();
|
|
28
82
|
}
|
|
29
|
-
async index(db
|
|
83
|
+
async index(db) {
|
|
30
84
|
for (let i = 0; i < 1000; i++) {
|
|
31
|
-
let trace;
|
|
32
85
|
const pending = await db.emails.where(void 0, (p) => (x) => x.searchIndexed === false
|
|
33
86
|
&& x.statePostReceiveInvoked === true)
|
|
34
87
|
.orderByDescending(void 0, (p) => (x) => x.emailID)
|
|
35
88
|
.map(void 0, (p) => (x) => ({ emailID: x.emailID, textBody: x.textBody }))
|
|
36
89
|
.limit(100)
|
|
37
|
-
.trace((text) => trace = text)
|
|
38
90
|
.toArray();
|
|
39
91
|
if (!pending.length) {
|
|
40
|
-
console.log(`No more emails to index
|
|
92
|
+
console.log(`No more emails to index for ${globalEnv.serverID}`);
|
|
41
93
|
return;
|
|
42
94
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
console.error(error);
|
|
49
|
-
}
|
|
50
|
-
const { emailID } = email;
|
|
51
|
-
await db.emails.statements.update({ searchIndexed: true }, { emailID });
|
|
52
|
-
}
|
|
95
|
+
const at = new AsyncTaskManager();
|
|
96
|
+
at.rateLimit = 5;
|
|
97
|
+
await Promise.all(pending.map((x) => at.run(() => this.indexEmail(x))));
|
|
53
98
|
db.changeSet.clear();
|
|
54
99
|
}
|
|
55
100
|
}
|
|
101
|
+
async indexEmail(email) {
|
|
102
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
103
|
+
try {
|
|
104
|
+
const scope = __addDisposableResource(env_1, ServiceProvider.createScope(this.context), false);
|
|
105
|
+
const db = scope.resolve(SocialMailContext);
|
|
106
|
+
const indexService = scope.resolve(IndexEmailService);
|
|
107
|
+
try {
|
|
108
|
+
await indexService.indexEmail(email);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
console.error(error);
|
|
112
|
+
}
|
|
113
|
+
const { emailID } = email;
|
|
114
|
+
await db.emails.statements.update({ searchIndexed: true }, { emailID });
|
|
115
|
+
}
|
|
116
|
+
catch (e_1) {
|
|
117
|
+
env_1.error = e_1;
|
|
118
|
+
env_1.hasError = true;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
__disposeResources(env_1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
56
124
|
}
|
|
57
125
|
IndexEmailContentWorkflow.taskGroup = "batch";
|
|
58
126
|
export default IndexEmailContentWorkflow;
|
|
59
127
|
__decorate([
|
|
60
128
|
UniqueActivity,
|
|
61
129
|
__param(0, Inject),
|
|
62
|
-
__param(1, Inject),
|
|
63
130
|
__metadata("design:type", Function),
|
|
64
|
-
__metadata("design:paramtypes", [SocialMailContext,
|
|
65
|
-
IndexEmailService]),
|
|
131
|
+
__metadata("design:paramtypes", [SocialMailContext]),
|
|
66
132
|
__metadata("design:returntype", Promise)
|
|
67
133
|
], IndexEmailContentWorkflow.prototype, "index", null);
|
|
68
134
|
//# sourceMappingURL=IndexEmailContentWorkflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexEmailContentWorkflow.js","sourceRoot":"","sources":["../../../../../src/server/workflows/email/index/IndexEmailContentWorkflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IndexEmailContentWorkflow.js","sourceRoot":"","sources":["../../../../../src/server/workflows/email/index/IndexEmailContentWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAEnG,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AACpE,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAEtE,MAAqB,yBAA0B,SAAQ,QAAQ;IAI3D,MAAM,CAAC,KAAK,CAAC,OAAwB;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,EAAE;YAChD,EAAE,EAAE,aAAa;SACpB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAG;QACL,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CACC,EAAsB;QAG9B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAE,CAAC;YAEvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK;mBAC9E,CAAC,CAAC,uBAAuB,KAAK,IAAI,CAAC;iBACrC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBAClD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAC,CAAC,CAAC;iBACxE,KAAK,CAAC,GAAG,CAAC;iBACV,OAAO,EAAE,CAAC;YAEf,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC;YAClC,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;YAEjB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAA6C;;;YAC1D,MAAM,KAAK,kCAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAA,CAAC;YACxD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtD,IAAI,CAAC;gBACD,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;;;;;;;;;KAC3E;;AApDM,mCAAS,GAAG,OAAO,CAAC;eAFV,yBAAyB;AAgBpC;IADL,cAAc;IAEV,WAAA,MAAM,CAAA;;qCAAM,iBAAiB;;sDAwBjC"}
|