@social-mail/social-mail-web-server 1.7.539 → 1.7.541
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/Hashtags.js +1 -1
- package/dist/common/Hashtags.js.map +1 -1
- package/dist/server/model/events/EmailEngagementEvents.js +1 -1
- package/dist/server/model/events/EmailEngagementEvents.js.map +1 -1
- package/dist/server/model/events/EmailEvents.d.ts.map +1 -1
- package/dist/server/model/events/EmailEvents.js +13 -0
- package/dist/server/model/events/EmailEvents.js.map +1 -1
- package/dist/server/model/events/EmailTagEvents.js +1 -1
- package/dist/server/model/events/EmailTagEvents.js.map +1 -1
- package/dist/server/model/events/TagEvents.js +1 -1
- package/dist/server/model/events/TagEvents.js.map +1 -1
- package/dist/server/model/events/TextDocumentEvents.js +1 -1
- package/dist/server/model/events/TextDocumentEvents.js.map +1 -1
- package/dist/server/model/events/ThreadParticipantEvents.js +1 -1
- package/dist/server/model/events/ThreadParticipantEvents.js.map +1 -1
- package/dist/server/seed/ui/seed-ui.js +1 -1
- package/dist/server/smtp/services/EmailReferenceService.d.ts.map +1 -1
- package/dist/server/smtp/services/EmailReferenceService.js.map +1 -1
- package/dist/server/workflows/repair/counts/RepairEmailCountsWorkflow.js +1 -1
- package/dist/server/workflows/repair/counts/RepairEmailCountsWorkflow.js.map +1 -1
- package/dist/server/workflows/repair/tags/RepairEmailTagsWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/repair/tags/RepairEmailTagsWorkflow.js +11 -3
- package/dist/server/workflows/repair/tags/RepairEmailTagsWorkflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/common/Hashtags.ts +1 -1
- package/src/server/model/events/EmailEngagementEvents.ts +1 -1
- package/src/server/model/events/EmailEvents.ts +16 -0
- package/src/server/model/events/EmailTagEvents.ts +1 -1
- package/src/server/model/events/TagEvents.ts +1 -1
- package/src/server/model/events/TextDocumentEvents.ts +1 -1
- package/src/server/model/events/ThreadParticipantEvents.ts +1 -1
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/smtp/services/EmailReferenceService.ts +0 -1
- package/src/server/workflows/repair/counts/RepairEmailCountsWorkflow.ts +1 -1
- package/src/server/workflows/repair/tags/RepairEmailTagsWorkflow.ts +10 -2
package/package.json
CHANGED
package/src/common/Hashtags.ts
CHANGED
|
@@ -14,7 +14,7 @@ export default class EmailEngagementEvents extends AuthenticatedEvents<EmailEnga
|
|
|
14
14
|
}
|
|
15
15
|
const { userID } = sessionUser;
|
|
16
16
|
return query.where({ userID }, (p) => (x) =>
|
|
17
|
-
x.email.
|
|
17
|
+
x.email.threadContacts.some((m) =>
|
|
18
18
|
m.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
19
19
|
|| m.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
20
20
|
)
|
|
@@ -278,6 +278,22 @@ export default class EmailEvents extends AuthenticatedEvents<Email> {
|
|
|
278
278
|
await this.db.channelEmails.where(entity, (p) => (x) => x.emailID === p.emailID && x.mailbox.isChannel === true)
|
|
279
279
|
.update(entity, (p) => (x) => ({ datePublished: Sql.cast.asDateTime(p.dateSent) as any }));
|
|
280
280
|
break;
|
|
281
|
+
case "deleted":
|
|
282
|
+
await this.db.channelEmails.where(entity, (p) => (x) => x.emailID === p.emailID && x.mailbox.isChannel === true)
|
|
283
|
+
.update(entity, (p) => (x) => ({ datePublished: null }));
|
|
284
|
+
|
|
285
|
+
// subtract tag counts...
|
|
286
|
+
await this.db.mailboxTags.where(entity, (p) => (x) => x.tag.emailTags.some((e) => e.emailID === p.emailID))
|
|
287
|
+
.update(void 0, (p) => (x) => ({
|
|
288
|
+
count: Sql.math.max(0, x.count -1 )
|
|
289
|
+
}));
|
|
290
|
+
|
|
291
|
+
await this.db.mailboxContactTags.where(entity, (p) => (x) => x.tag.emailTags.some((e) => e.emailID === p.emailID))
|
|
292
|
+
.update(void 0, (p) => (x) => ({
|
|
293
|
+
count: Sql.math.max(0, x.count -1 )
|
|
294
|
+
}));
|
|
295
|
+
|
|
296
|
+
break;
|
|
281
297
|
default:
|
|
282
298
|
await this.db.channelEmails.where(entity, (p) => (x) => x.emailID === p.emailID && x.mailbox.isChannel === true)
|
|
283
299
|
.update(void 0, (p) => (x) => ({ datePublished: Sql.cast.asDateTime(null) as any }));
|
|
@@ -13,7 +13,7 @@ export default class EmailTagEvents extends AuthenticatedEvents<EmailTag> {
|
|
|
13
13
|
}
|
|
14
14
|
const { userID } = this.sessionUser;
|
|
15
15
|
return query.where({ userID }, (p) => (x) =>
|
|
16
|
-
x.email.
|
|
16
|
+
x.email.threadContacts.some((m) =>
|
|
17
17
|
m.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
18
18
|
|| m.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
19
19
|
)
|
|
@@ -23,7 +23,7 @@ export default class TagEvents extends AuthenticatedEvents<Tag> {
|
|
|
23
23
|
const { userID } = this.sessionUser;
|
|
24
24
|
return query.where({ userID }, (p) => (x) =>
|
|
25
25
|
x.emailTags.some((et) =>
|
|
26
|
-
et.email.
|
|
26
|
+
et.email.threadContacts.some((m) =>
|
|
27
27
|
m.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
28
28
|
|| m.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
29
29
|
)
|
|
@@ -22,7 +22,7 @@ export default class TextDocumentEvents extends AuthenticatedEvents<TextDocument
|
|
|
22
22
|
|| t.mailbox.userMailboxes.some((u) => u.userID === p.userID)
|
|
23
23
|
|| t.mailbox.domain.hostedDomain.domainUsers.some((u) => u.userID === p.userID))
|
|
24
24
|
||
|
|
25
|
-
af.email.
|
|
25
|
+
af.email.threadContacts.some((m) =>
|
|
26
26
|
m.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
27
27
|
|| m.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
28
28
|
)
|
|
@@ -14,7 +14,7 @@ export default class ThreadParticipantEvents extends AuthenticatedEvents<ThreadP
|
|
|
14
14
|
}
|
|
15
15
|
const { userID } = this.sessionUser;
|
|
16
16
|
return query.where({ userID }, (p) => (x) =>
|
|
17
|
-
x.email.
|
|
17
|
+
x.email.threadContacts.some((m) =>
|
|
18
18
|
m.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
19
19
|
|| m.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
20
20
|
)
|
|
@@ -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.8.
|
|
8
|
+
version: "1.8.115"
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
await config.saveVersion(WebComponentsPackageConfig, {
|
|
@@ -13,7 +13,6 @@ import EngagementService from "./EngagementService.js";
|
|
|
13
13
|
// import PostReceiveWorkflow from "../../workflows/post-receive/PostReceiveWorkflow.js";
|
|
14
14
|
import Hashtags from "../../../common/Hashtags.js";
|
|
15
15
|
import TagService from "../../services/tags/TagService.js";
|
|
16
|
-
import EmailTag from "../../model/entities/EmailTag.js";
|
|
17
16
|
import ChangeEntry from "@entity-access/entity-access/dist/model/changes/ChangeEntry.js";
|
|
18
17
|
|
|
19
18
|
export type IMailboxThreadInfo = Partial<MailboxContact> & {
|
|
@@ -56,7 +56,7 @@ export default class RepairEmailCountsWorkflow extends Workflow<{ mailboxID? }>
|
|
|
56
56
|
const q = db.emails
|
|
57
57
|
.where({ start, mailboxID }, (p) => (x) => x.emailID > p.start
|
|
58
58
|
&& x.threadID === null
|
|
59
|
-
&& x.
|
|
59
|
+
&& x.threadContacts.some((t) => t.mailboxID === p.mailboxID)
|
|
60
60
|
&& x.lastReplyID === null
|
|
61
61
|
);
|
|
62
62
|
const list = await q
|
|
@@ -108,7 +108,9 @@ export default class RepairEmailTagsWorkflow extends Workflow<{ mailboxID? }> {
|
|
|
108
108
|
tagID: x.tagID,
|
|
109
109
|
count: Sql.coll.sum(
|
|
110
110
|
x.emailTags.filter((e) =>
|
|
111
|
-
e.email.
|
|
111
|
+
e.email.status !== "draft"
|
|
112
|
+
&& e.email.status !== "deleted"
|
|
113
|
+
&& e.email.threadContacts.some((m) =>
|
|
112
114
|
m.mailboxID === p.mailboxID
|
|
113
115
|
&& m.emailAddressID === p.emailAddressID
|
|
114
116
|
)
|
|
@@ -125,6 +127,9 @@ export default class RepairEmailTagsWorkflow extends Workflow<{ mailboxID? }> {
|
|
|
125
127
|
&& x.emailTags.some((t) => t.tagID === p.tagID)
|
|
126
128
|
).orderByDescending(void 0, (p) => (x) => x.dateCreated).first();
|
|
127
129
|
|
|
130
|
+
if (!last) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
128
133
|
const dateUpdated = last.dateCreated;
|
|
129
134
|
|
|
130
135
|
await db.mailboxContactTags.statements.upsert({ emailAddressID, mailboxID, tagID, count, dateUpdated },
|
|
@@ -173,9 +178,12 @@ export default class RepairEmailTagsWorkflow extends Workflow<{ mailboxID? }> {
|
|
|
173
178
|
|
|
174
179
|
// get last updated...
|
|
175
180
|
const last = await db.emails.where({ tagID, mailboxID}, (p) => (x) =>
|
|
176
|
-
x.
|
|
181
|
+
x.threadContacts.some((m) => m.mailboxID === p.mailboxID)
|
|
177
182
|
&& x.emailTags.some((t) => t.tagID === p.tagID)
|
|
178
183
|
).orderByDescending(void 0, (p) => (x) => x.dateCreated).first();
|
|
184
|
+
if (!last) {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
179
187
|
|
|
180
188
|
const dateUpdated = last.dateCreated;
|
|
181
189
|
|