@social-mail/social-mail-web-server 1.5.455 → 1.7.2
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/model/SocialMailContext.d.ts +2 -2
- package/dist/server/model/SocialMailContext.js +2 -2
- package/dist/server/model/SocialMailContextEvents.js +2 -2
- package/dist/server/model/entities/AppFile.d.ts +2 -0
- package/dist/server/model/entities/AppFile.d.ts.map +1 -1
- package/dist/server/model/entities/AppFile.js.map +1 -1
- package/dist/server/model/entities/{MailboxEmail.d.ts → ChannelEmail.d.ts} +5 -2
- package/dist/server/model/entities/ChannelEmail.d.ts.map +1 -0
- package/dist/server/model/entities/{MailboxEmail.js → ChannelEmail.js} +26 -13
- package/dist/server/model/entities/ChannelEmail.js.map +1 -0
- package/dist/server/model/entities/Email.d.ts +2 -2
- package/dist/server/model/entities/Email.d.ts.map +1 -1
- package/dist/server/model/entities/Email.js.map +1 -1
- package/dist/server/model/entities/EmailAddress.d.ts +2 -0
- package/dist/server/model/entities/EmailAddress.d.ts.map +1 -1
- package/dist/server/model/entities/EmailAddress.js.map +1 -1
- package/dist/server/model/entities/Mailbox.d.ts +2 -2
- package/dist/server/model/entities/MailboxContactEmail.d.ts +1 -1
- package/dist/server/model/entities/MailboxContactEmail.d.ts.map +1 -1
- package/dist/server/model/entities/MailboxContactEmail.js +5 -0
- package/dist/server/model/entities/MailboxContactEmail.js.map +1 -1
- package/dist/server/model/events/AppFileEvents.d.ts +3 -0
- package/dist/server/model/events/AppFileEvents.d.ts.map +1 -1
- package/dist/server/model/events/AppFileEvents.js +25 -5
- package/dist/server/model/events/AppFileEvents.js.map +1 -1
- package/dist/server/model/events/AppFileTagEvents.d.ts.map +1 -1
- package/dist/server/model/events/AppFileTagEvents.js +2 -3
- package/dist/server/model/events/AppFileTagEvents.js.map +1 -1
- package/dist/server/model/events/EmailAddressEvents.d.ts.map +1 -1
- package/dist/server/model/events/EmailAddressEvents.js +2 -4
- package/dist/server/model/events/EmailAddressEvents.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.js +6 -6
- package/dist/server/model/events/EmailEvents.js.map +1 -1
- package/dist/server/model/events/EmailLogEvents.js +1 -1
- package/dist/server/model/events/EmailLogEvents.js.map +1 -1
- package/dist/server/model/events/EmailRecipientEvents.js +1 -1
- package/dist/server/model/events/EmailRecipientEvents.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/FileContentEvents.d.ts.map +1 -1
- package/dist/server/model/events/FileContentEvents.js +2 -3
- package/dist/server/model/events/FileContentEvents.js.map +1 -1
- package/dist/server/model/events/MailboxContactEvents.js +4 -4
- package/dist/server/model/events/MailboxContactEvents.js.map +1 -1
- package/dist/server/model/events/MailboxEmailEvents.d.ts +9 -6
- package/dist/server/model/events/MailboxEmailEvents.d.ts.map +1 -1
- package/dist/server/model/events/MailboxEmailEvents.js +11 -2
- package/dist/server/model/events/MailboxEmailEvents.js.map +1 -1
- package/dist/server/model/events/MailboxEvents.d.ts.map +1 -1
- package/dist/server/model/events/MailboxEvents.js +6 -6
- package/dist/server/model/events/MailboxEvents.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 +2 -2
- 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/seed/ui/seed-ui.js.map +1 -1
- package/dist/server/services/channels/ChannelPageService.d.ts +3 -1
- package/dist/server/services/channels/ChannelPageService.d.ts.map +1 -1
- package/dist/server/services/channels/ChannelPageService.js +21 -17
- package/dist/server/services/channels/ChannelPageService.js.map +1 -1
- package/dist/server/services/dom/HtmlSanitizer.js +5 -5
- package/dist/server/services/dom/HtmlSanitizer.js.map +1 -1
- package/dist/server/services/puppeteer/PuppeteerServer.d.ts +1 -19
- package/dist/server/services/puppeteer/PuppeteerServer.d.ts.map +1 -1
- package/dist/server/services/puppeteer/PuppeteerServer.js +176 -268
- package/dist/server/services/puppeteer/PuppeteerServer.js.map +1 -1
- package/dist/server/services/puppeteer/PuppeteerService.d.ts +1 -1
- package/dist/server/services/puppeteer/PuppeteerService.d.ts.map +1 -1
- package/dist/server/services/puppeteer/PuppeteerService.js +2 -1
- package/dist/server/services/puppeteer/PuppeteerService.js.map +1 -1
- package/dist/server/smtp/services/CachedEmailService.js +1 -1
- package/dist/server/smtp/services/EmailReferenceService.d.ts.map +1 -1
- package/dist/server/smtp/services/EmailReferenceService.js +34 -35
- package/dist/server/smtp/services/EmailReferenceService.js.map +1 -1
- package/dist/server/smtp/services/EngagementService.js +1 -1
- package/dist/server/workflows/channel/BroadcastEmail.d.ts.map +1 -1
- package/dist/server/workflows/channel/BroadcastEmail.js +16 -8
- package/dist/server/workflows/channel/BroadcastEmail.js.map +1 -1
- package/dist/server/workflows/repair/channel/RepairChannelEmailCountsWorkflow.js +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.js +1 -1
- package/dist/server/workflows/repair/tags/RepairEmailTagsWorkflow.js.map +1 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts +1 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts.map +1 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.js +9 -7
- package/dist/server/workflows/smtp/DispatchEmailToMX.js.map +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.d.ts +3 -2
- package/dist/server/workflows/smtp/MailDispatcherService.d.ts.map +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.js +4 -4
- package/dist/server/workflows/smtp/MailDispatcherService.js.map +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.d.ts +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.js +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.js.map +1 -1
- package/dist/server/workflows/sync/SyncMailboxWorkflow.js +2 -2
- package/dist/server/workflows/sync/SyncMailboxWorkflow.js.map +1 -1
- package/dist/server/workflows/web-hooks/InvokeWebHookWorkflow.js +1 -1
- package/dist/server/workflows/web-hooks/InvokeWebHookWorkflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/api/emails/channel/content/attachment/index.js +2 -2
- package/dist/wwwroot/routes/api/emails/channel/content/attachment/index.js.map +1 -1
- package/dist/wwwroot/routes/api/emails/channel/content/html/index.js +6 -6
- package/dist/wwwroot/routes/api/emails/channel/content/html/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/public/email/attachment/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/public/email/attachment/index.js +2 -1
- package/dist/wwwroot/routes/social-mail/public/email/attachment/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/buttons/get.d.ts +1 -25
- package/dist/wwwroot/routes/social-mail/social/buttons/get.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/buttons/get.js +106 -120
- package/dist/wwwroot/routes/social-mail/social/buttons/get.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/buttons-3x/get.d.ts +1 -26
- package/dist/wwwroot/routes/social-mail/social/buttons-3x/get.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/social/buttons-3x/get.js +116 -130
- package/dist/wwwroot/routes/social-mail/social/buttons-3x/get.js.map +1 -1
- package/package.json +2 -3
- package/src/server/model/SocialMailContext.ts +2 -2
- package/src/server/model/SocialMailContextEvents.ts +2 -2
- package/src/server/model/entities/AppFile.ts +2 -2
- package/src/server/model/entities/{MailboxEmail.ts → ChannelEmail.ts} +16 -2
- package/src/server/model/entities/Email.ts +3 -2
- package/src/server/model/entities/EmailAddress.ts +2 -0
- package/src/server/model/entities/Mailbox.ts +2 -2
- package/src/server/model/entities/MailboxContactEmail.ts +5 -1
- package/src/server/model/events/AppFileEvents.ts +24 -5
- package/src/server/model/events/AppFileTagEvents.ts +4 -5
- package/src/server/model/events/EmailAddressEvents.ts +5 -8
- package/src/server/model/events/EmailEngagementEvents.ts +1 -1
- package/src/server/model/events/EmailEvents.ts +6 -6
- package/src/server/model/events/EmailLogEvents.ts +1 -1
- package/src/server/model/events/EmailRecipientEvents.ts +1 -1
- package/src/server/model/events/EmailTagEvents.ts +1 -1
- package/src/server/model/events/FileContentEvents.ts +3 -4
- package/src/server/model/events/MailboxContactEvents.ts +4 -4
- package/src/server/model/events/MailboxEmailEvents.ts +16 -7
- package/src/server/model/events/MailboxEvents.ts +7 -6
- package/src/server/model/events/TagEvents.ts +2 -2
- package/src/server/model/events/TextDocumentEvents.ts +3 -3
- package/src/server/model/events/ThreadParticipantEvents.ts +1 -1
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/channels/ChannelPageService.tsx +22 -17
- package/src/server/services/dom/HtmlSanitizer.tsx +6 -6
- package/src/server/services/emails/UnreadCountService.ts +1 -1
- package/src/server/services/puppeteer/PuppeteerServer.ts +194 -194
- package/src/server/services/puppeteer/PuppeteerService.ts +1 -1
- package/src/server/smtp/services/CachedEmailService.ts +1 -1
- package/src/server/smtp/services/EmailReferenceService.ts +36 -37
- package/src/server/smtp/services/EngagementService.ts +1 -1
- package/src/server/workflows/channel/BroadcastEmail.ts +21 -8
- package/src/server/workflows/repair/channel/RepairChannelEmailCountsWorkflow.ts +1 -1
- package/src/server/workflows/repair/counts/RepairEmailCountsWorkflow.ts +1 -1
- package/src/server/workflows/repair/tags/RepairEmailTagsWorkflow.ts +1 -1
- package/src/server/workflows/smtp/DispatchEmailToMX.ts +11 -8
- package/src/server/workflows/smtp/MailDispatcherService.ts +5 -5
- package/src/server/workflows/smtp/PrepareEmailToSend.ts +1 -1
- package/src/server/workflows/sync/SyncMailboxWorkflow.ts +2 -2
- package/src/server/workflows/web-hooks/InvokeWebHookWorkflow.ts +1 -1
- package/src/wwwroot/routes/api/emails/channel/content/attachment/index.ts +2 -2
- package/src/wwwroot/routes/api/emails/channel/content/html/index.ts +6 -6
- package/src/wwwroot/routes/social-mail/public/email/attachment/index.ts +3 -1
- package/src/wwwroot/routes/social-mail/social/buttons/get.tsx +130 -130
- package/src/wwwroot/routes/social-mail/social/buttons-3x/get.tsx +143 -143
- package/dist/server/model/entities/MailboxEmail.d.ts.map +0 -1
- package/dist/server/model/entities/MailboxEmail.js.map +0 -1
|
@@ -1,269 +1,177 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
omitBackground: true
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
catch (e_2) {
|
|
181
|
-
env_2.error = e_2;
|
|
182
|
-
env_2.hasError = true;
|
|
183
|
-
}
|
|
184
|
-
finally {
|
|
185
|
-
const result_2 = __disposeResources(env_2);
|
|
186
|
-
if (result_2)
|
|
187
|
-
await result_2;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
await writeFile(outputFile, buffer);
|
|
192
|
-
if (/Node\shas\s0\swidth/i.test(error.message ?? error)) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
console.log(content);
|
|
196
|
-
console.error(error);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
async svgToPng(svgFile, outputFile) {
|
|
200
|
-
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
201
|
-
try {
|
|
202
|
-
const page = __addDisposableResource(env_3, await this.newPage(), true);
|
|
203
|
-
await page.goto(svgFile, { waitUntil: "networkidle2" });
|
|
204
|
-
await page.screenshot({ path: outputFile });
|
|
205
|
-
}
|
|
206
|
-
catch (e_3) {
|
|
207
|
-
env_3.error = e_3;
|
|
208
|
-
env_3.hasError = true;
|
|
209
|
-
}
|
|
210
|
-
finally {
|
|
211
|
-
const result_3 = __disposeResources(env_3);
|
|
212
|
-
if (result_3)
|
|
213
|
-
await result_3;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
async newPage({ deviceScaleFactor } = {}) {
|
|
217
|
-
const lf = await LockFile.lock("puppeteer-html-to-image");
|
|
218
|
-
const userDataDir = `/tmp/${Date.now().toString(36)}`;
|
|
219
|
-
if (!existsSync(userDataDir)) {
|
|
220
|
-
try {
|
|
221
|
-
mkdirSync(userDataDir, { recursive: true });
|
|
222
|
-
}
|
|
223
|
-
catch {
|
|
224
|
-
// ignore this...
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
const browser = await puppeteer.launch({
|
|
228
|
-
executablePath: globalEnv.puppeteerExecutablePath,
|
|
229
|
-
userDataDir,
|
|
230
|
-
args: options,
|
|
231
|
-
// dumpio: true,
|
|
232
|
-
// ignoreHTTPSErrors: true,
|
|
233
|
-
ignoreDefaultArgs: ["--mute-audio"]
|
|
234
|
-
});
|
|
235
|
-
const page = await browser.newPage();
|
|
236
|
-
await page.setViewport({
|
|
237
|
-
...(page.viewport() ?? {}),
|
|
238
|
-
deviceScaleFactor
|
|
239
|
-
});
|
|
240
|
-
// we will kill browser in 15 seconds..
|
|
241
|
-
const ct = setTimeout(() => browser.close().catch(console.error), 15000);
|
|
242
|
-
page[Symbol.asyncDispose] = async () => {
|
|
243
|
-
clearTimeout(ct);
|
|
244
|
-
lf[Symbol.dispose]();
|
|
245
|
-
try {
|
|
246
|
-
await browser.close();
|
|
247
|
-
}
|
|
248
|
-
catch {
|
|
249
|
-
// ignore error.
|
|
250
|
-
}
|
|
251
|
-
try {
|
|
252
|
-
await rmdir(userDataDir);
|
|
253
|
-
}
|
|
254
|
-
catch {
|
|
255
|
-
// ignore
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
return page;
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
__decorate([
|
|
262
|
-
Inject,
|
|
263
|
-
__metadata("design:type", HtmlSanitizer)
|
|
264
|
-
], PuppeteerServer.prototype, "htmlSanitizer", void 0);
|
|
265
|
-
PuppeteerServer = __decorate([
|
|
266
|
-
RegisterSingleton
|
|
267
|
-
], PuppeteerServer);
|
|
268
|
-
export default PuppeteerServer;
|
|
1
|
+
// /* eslint-disable no-console */
|
|
2
|
+
// import Inject, { RegisterSingleton } from "@entity-access/entity-access/dist/di/di.js";
|
|
3
|
+
// import puppeteer, { Page } from "puppeteer-core";
|
|
4
|
+
// import { globalEnv } from "../../../common/globalEnv.js";
|
|
5
|
+
// import HtmlSanitizer from "../dom/HtmlSanitizer.js";
|
|
6
|
+
// import GlobalEvents from "../../../common/GlobalEvents.js";
|
|
7
|
+
// import { rmdir, writeFile } from "node:fs/promises";
|
|
8
|
+
// import { existsSync, mkdirSync, unlinkSync } from "node:fs";
|
|
9
|
+
// import LockFile from "../../storage/LockFile.js";
|
|
10
|
+
export {};
|
|
11
|
+
// const options = [
|
|
12
|
+
// '--disable-background-networking',
|
|
13
|
+
// '--disable-background-timer-throttling',
|
|
14
|
+
// '--disable-backgrounding-occluded-windows',
|
|
15
|
+
// '--disable-breakpad',
|
|
16
|
+
// '--disable-client-side-phishing-detection',
|
|
17
|
+
// '--disable-component-update',
|
|
18
|
+
// '--disable-default-apps',
|
|
19
|
+
// '--disable-dev-shm-usage',
|
|
20
|
+
// '--disable-domain-reliability',
|
|
21
|
+
// '--disable-extensions',
|
|
22
|
+
// '--disable-features=AudioServiceOutOfProcess',
|
|
23
|
+
// '--disable-hang-monitor',
|
|
24
|
+
// '--disable-ipc-flooding-protection',
|
|
25
|
+
// '--disable-notifications',
|
|
26
|
+
// '--disable-offer-store-unmasked-wallet-cards',
|
|
27
|
+
// '--disable-popup-blocking',
|
|
28
|
+
// '--disable-print-preview',
|
|
29
|
+
// '--disable-prompt-on-repost',
|
|
30
|
+
// '--disable-renderer-backgrounding',
|
|
31
|
+
// '--disable-setuid-sandbox',
|
|
32
|
+
// '--disable-speech-api',
|
|
33
|
+
// '--disable-sync',
|
|
34
|
+
// '--disk-cache-size=33554432',
|
|
35
|
+
// // '--hide-scrollbars',
|
|
36
|
+
// // '--ignore-gpu-blacklist',
|
|
37
|
+
// // '--metrics-recording-only',
|
|
38
|
+
// '--mute-audio',
|
|
39
|
+
// '--no-default-browser-check',
|
|
40
|
+
// '--no-first-run',
|
|
41
|
+
// '--no-pings',
|
|
42
|
+
// '--no-sandbox',
|
|
43
|
+
// '--no-zygote',
|
|
44
|
+
// '--password-store=basic',
|
|
45
|
+
// '--use-mock-keychain',
|
|
46
|
+
// // '--single-process',
|
|
47
|
+
// '--autoplay-policy=no-user-gesture-required',
|
|
48
|
+
// // '--enable-logging=stderr',
|
|
49
|
+
// // '--v=1',
|
|
50
|
+
// // '--disable-gpu',
|
|
51
|
+
// // '--window-size=400,800',
|
|
52
|
+
// ];
|
|
53
|
+
// // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
54
|
+
// export type DisposablePage = Partial<Page> & AsyncDisposable ;
|
|
55
|
+
// const buffer = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAtJREFUGFdjYAACAAAFAAGq1chRAAAAAElFTkSuQmCC", "base64");
|
|
56
|
+
// @RegisterSingleton
|
|
57
|
+
// export default class PuppeteerServer {
|
|
58
|
+
// @Inject
|
|
59
|
+
// htmlSanitizer: HtmlSanitizer;
|
|
60
|
+
// public async htmlToPdf(content: string, { outputFile, deviceScaleFactor, pdfOptions }: { outputFile: string, pdfOptions?: string, deviceScaleFactor?: number }) {
|
|
61
|
+
// try {
|
|
62
|
+
// await using page = await this.newPage({ deviceScaleFactor });
|
|
63
|
+
// content = this.htmlSanitizer.prepareForPreview(content);
|
|
64
|
+
// if(typeof pdfOptions === "string") {
|
|
65
|
+
// pdfOptions = JSON.parse(pdfOptions);
|
|
66
|
+
// }
|
|
67
|
+
// await page.pdf({ ... pdfOptions as any,
|
|
68
|
+
// path: outputFile
|
|
69
|
+
// });
|
|
70
|
+
// } catch (error) {
|
|
71
|
+
// await writeFile(outputFile, buffer);
|
|
72
|
+
// if (/Node\shas\s0\swidth/i.test(error.message ?? error)) {
|
|
73
|
+
// return;
|
|
74
|
+
// }
|
|
75
|
+
// console.log(content);
|
|
76
|
+
// console.error(error);
|
|
77
|
+
// }
|
|
78
|
+
// }
|
|
79
|
+
// public async htmlToPng(content: string, {
|
|
80
|
+
// selector,
|
|
81
|
+
// outputFile,
|
|
82
|
+
// count,
|
|
83
|
+
// deviceScaleFactor
|
|
84
|
+
// }: { selector?: string; outputFile: string, count?: string, deviceScaleFactor?: number}) {
|
|
85
|
+
// try {
|
|
86
|
+
// await using page = await this.newPage({ deviceScaleFactor });
|
|
87
|
+
// content = this.htmlSanitizer.prepareForPreview(content);
|
|
88
|
+
// await page.setContent(content, {
|
|
89
|
+
// waitUntil: "networkidle2"
|
|
90
|
+
// });
|
|
91
|
+
// const element = await page.$(selector);
|
|
92
|
+
// if (!element) {
|
|
93
|
+
// await writeFile(buffer, outputFile);
|
|
94
|
+
// return;
|
|
95
|
+
// }
|
|
96
|
+
// if (count) {
|
|
97
|
+
// await element.evaluate((e, c) => {
|
|
98
|
+
// const span = e.querySelector(`[data-social-mail-element="count"]`);
|
|
99
|
+
// if (span) {
|
|
100
|
+
// span.textContent = c;
|
|
101
|
+
// }
|
|
102
|
+
// }, count);
|
|
103
|
+
// }
|
|
104
|
+
// await element.scrollIntoView();
|
|
105
|
+
// const clip = await element.boundingBox();
|
|
106
|
+
// let top = Math.floor(clip.y);
|
|
107
|
+
// if (top < clip.y) {
|
|
108
|
+
// clip.height++;
|
|
109
|
+
// } else {
|
|
110
|
+
// top-=2;
|
|
111
|
+
// clip.height+=4;
|
|
112
|
+
// }
|
|
113
|
+
// clip.height = Math.ceil(clip.height);
|
|
114
|
+
// clip.y = top;
|
|
115
|
+
// await page.screenshot({
|
|
116
|
+
// path: outputFile,
|
|
117
|
+
// clip,
|
|
118
|
+
// omitBackground: true
|
|
119
|
+
// });
|
|
120
|
+
// // change the dpi...
|
|
121
|
+
// } catch (error) {
|
|
122
|
+
// await writeFile(outputFile, buffer);
|
|
123
|
+
// if (/Node\shas\s0\swidth/i.test(error.message ?? error)) {
|
|
124
|
+
// return;
|
|
125
|
+
// }
|
|
126
|
+
// console.log(content);
|
|
127
|
+
// console.error(error);
|
|
128
|
+
// }
|
|
129
|
+
// }
|
|
130
|
+
// public async svgToPng(svgFile: string, outputFile: string) {
|
|
131
|
+
// await using page = await this.newPage();
|
|
132
|
+
// await page.goto(svgFile, { waitUntil: "networkidle2"});
|
|
133
|
+
// await page.screenshot({ path: outputFile });
|
|
134
|
+
// }
|
|
135
|
+
// public async newPage({ deviceScaleFactor }: Partial<puppeteer.Viewport> = {}): Promise<DisposablePage> {
|
|
136
|
+
// const lf = await LockFile.lock("puppeteer-html-to-image");
|
|
137
|
+
// const userDataDir = `/tmp/${Date.now().toString(36)}`;
|
|
138
|
+
// if(!existsSync(userDataDir)) {
|
|
139
|
+
// try {
|
|
140
|
+
// mkdirSync(userDataDir, { recursive: true });
|
|
141
|
+
// } catch {
|
|
142
|
+
// // ignore this...
|
|
143
|
+
// }
|
|
144
|
+
// }
|
|
145
|
+
// const browser = await puppeteer.launch({
|
|
146
|
+
// executablePath: globalEnv.puppeteerExecutablePath,
|
|
147
|
+
// userDataDir,
|
|
148
|
+
// args: options,
|
|
149
|
+
// // dumpio: true,
|
|
150
|
+
// // ignoreHTTPSErrors: true,
|
|
151
|
+
// ignoreDefaultArgs: ["--mute-audio"]
|
|
152
|
+
// });
|
|
153
|
+
// const page = await browser.newPage();
|
|
154
|
+
// await page.setViewport({
|
|
155
|
+
// ... (page.viewport() ?? {} as any),
|
|
156
|
+
// deviceScaleFactor
|
|
157
|
+
// });
|
|
158
|
+
// // we will kill browser in 15 seconds..
|
|
159
|
+
// const ct = setTimeout(() => browser.close().catch(console.error), 15000);
|
|
160
|
+
// page[Symbol.asyncDispose] = async () => {
|
|
161
|
+
// clearTimeout(ct);
|
|
162
|
+
// lf[Symbol.dispose]();
|
|
163
|
+
// try {
|
|
164
|
+
// await browser.close();
|
|
165
|
+
// } catch {
|
|
166
|
+
// // ignore error.
|
|
167
|
+
// }
|
|
168
|
+
// try {
|
|
169
|
+
// await rmdir(userDataDir);
|
|
170
|
+
// } catch {
|
|
171
|
+
// // ignore
|
|
172
|
+
// }
|
|
173
|
+
// };
|
|
174
|
+
// return page as any as DisposablePage;
|
|
175
|
+
// }
|
|
176
|
+
// }
|
|
269
177
|
//# sourceMappingURL=PuppeteerServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuppeteerServer.js","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PuppeteerServer.js","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=PuppeteerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuppeteerService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PuppeteerService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerService.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuppeteerService.js","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerService.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"PuppeteerService.js","sourceRoot":"","sources":["../../../../src/server/services/puppeteer/PuppeteerService.ts"],"names":[],"mappings":";AAAA,sEAAsE"}
|
|
@@ -76,7 +76,7 @@ let CachedEmailService = class CachedEmailService {
|
|
|
76
76
|
return htmlFile;
|
|
77
77
|
};
|
|
78
78
|
const ef = await this.cacheService.get({
|
|
79
|
-
key: `cached-email-html-
|
|
79
|
+
key: `cached-email-html-a9-${emailID}-${emailAddressID}-${signedFileLogID}`,
|
|
80
80
|
factory,
|
|
81
81
|
ttl: TimeSpan.fromDays(30)
|
|
82
82
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailReferenceService.d.ts","sourceRoot":"","sources":["../../../../src/server/smtp/services/EmailReferenceService.ts"],"names":[],"mappings":"AAIA,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAI3E,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAQtD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAErB,CAAC;AAEF,MAAM,WAAW,0BAA0B;IAAG,OAAO,MAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;CAAE;AAGtH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAE/B,cAAc,UAAQ;IAG7B,OAAO,CAAC,EAAE,CAAoB;IAG9B,OAAO,CAAC,QAAQ,CAAkB;IAGlC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,OAAO,CAAC,UAAU,CAAa;IAElB,gBAAgB,CAAC,OAAO,EAAE,0BAA0B;IAW3D,YAAY,CAAE,EAAE,EAAE,kBAAkB;YAkM5B,cAAc;YAoBd,qBAAqB;
|
|
1
|
+
{"version":3,"file":"EmailReferenceService.d.ts","sourceRoot":"","sources":["../../../../src/server/smtp/services/EmailReferenceService.ts"],"names":[],"mappings":"AAIA,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAI3E,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAQtD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAErB,CAAC;AAEF,MAAM,WAAW,0BAA0B;IAAG,OAAO,MAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;CAAE;AAGtH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAE/B,cAAc,UAAQ;IAG7B,OAAO,CAAC,EAAE,CAAoB;IAG9B,OAAO,CAAC,QAAQ,CAAkB;IAGlC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,OAAO,CAAC,UAAU,CAAa;IAElB,gBAAgB,CAAC,OAAO,EAAE,0BAA0B;IAW3D,YAAY,CAAE,EAAE,EAAE,kBAAkB;YAkM5B,cAAc;YAoBd,qBAAqB;CA0NtC"}
|
|
@@ -207,7 +207,6 @@ let EmailReferenceService = class EmailReferenceService {
|
|
|
207
207
|
.include((x) => [
|
|
208
208
|
x.recipients.forEach((r) => r.emailAddress.mailbox),
|
|
209
209
|
x.senderEmail.mailbox,
|
|
210
|
-
x.mailboxes.forEach((r) => r.mailbox),
|
|
211
210
|
x.thread.lastReply
|
|
212
211
|
])
|
|
213
212
|
.first();
|
|
@@ -299,17 +298,17 @@ let EmailReferenceService = class EmailReferenceService {
|
|
|
299
298
|
});
|
|
300
299
|
}
|
|
301
300
|
// event sent emails are part of mailbox
|
|
302
|
-
await db.mailboxEmails.statements.selectOrInsert({
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
});
|
|
301
|
+
// await db.mailboxEmails.statements.selectOrInsert({
|
|
302
|
+
// mailboxID: senderID,
|
|
303
|
+
// emailID
|
|
304
|
+
// });
|
|
306
305
|
if (mailbox) {
|
|
307
306
|
// this is the case when email was sent from the system
|
|
308
307
|
// we will insert in respective mailboxes here...
|
|
309
|
-
await db.mailboxEmails.statements.selectOrInsert({
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
});
|
|
308
|
+
// await db.mailboxEmails.statements.selectOrInsert({
|
|
309
|
+
// mailboxID: emailAddressID,
|
|
310
|
+
// emailID
|
|
311
|
+
// });
|
|
313
312
|
saved.add(emailAddressID);
|
|
314
313
|
// Recipient's thread - Inbox
|
|
315
314
|
await this.updateThread({
|
|
@@ -338,10 +337,10 @@ let EmailReferenceService = class EmailReferenceService {
|
|
|
338
337
|
// we will only store in mailboxes that exist on the system
|
|
339
338
|
saved.add(emailAddressID);
|
|
340
339
|
if (mailbox) {
|
|
341
|
-
await db.mailboxEmails.statements.selectOrInsert({
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
});
|
|
340
|
+
// await db.mailboxEmails.statements.selectOrInsert({
|
|
341
|
+
// mailboxID: emailAddressID,
|
|
342
|
+
// emailID
|
|
343
|
+
// });
|
|
345
344
|
const mailboxID = emailAddressID;
|
|
346
345
|
await this.updateThread({
|
|
347
346
|
engagement,
|
|
@@ -364,28 +363,28 @@ let EmailReferenceService = class EmailReferenceService {
|
|
|
364
363
|
// this is the case when mail is either forwarded
|
|
365
364
|
// or sent as bcc to hosted mailbox
|
|
366
365
|
// in that case we will put mail in sender's folder
|
|
367
|
-
if (email.mailboxes) {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
366
|
+
// if (email.mailboxes) {
|
|
367
|
+
// for (const { mailbox } of email.mailboxes) {
|
|
368
|
+
// const mailboxID = mailbox.mailboxID;
|
|
369
|
+
// if (saved.has(mailboxID)) {
|
|
370
|
+
// continue;
|
|
371
|
+
// }
|
|
372
|
+
// await this.updateThread({
|
|
373
|
+
// engagement,
|
|
374
|
+
// mailbox,
|
|
375
|
+
// mailboxID,
|
|
376
|
+
// emailAddressID: senderID,
|
|
377
|
+
// lastEmailID: emailID,
|
|
378
|
+
// silent,
|
|
379
|
+
// timeRead,
|
|
380
|
+
// dateUpdated,
|
|
381
|
+
// tagIDs,
|
|
382
|
+
// email,
|
|
383
|
+
// newOpenThread,
|
|
384
|
+
// newThread,
|
|
385
|
+
// });
|
|
386
|
+
// }
|
|
387
|
+
// }
|
|
389
388
|
return email;
|
|
390
389
|
}
|
|
391
390
|
};
|