emailengine-app 2.63.4 → 2.65.0
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/.github/workflows/test.yml +4 -0
- package/CHANGELOG.md +70 -0
- package/copy-static-files.sh +1 -1
- package/data/google-crawlers.json +1 -1
- package/eslint.config.js +2 -0
- package/lib/account.js +13 -9
- package/lib/api-routes/account-routes.js +7 -1
- package/lib/consts.js +17 -1
- package/lib/email-client/gmail/gmail-api.js +1 -12
- package/lib/email-client/imap-client.js +5 -3
- package/lib/email-client/outlook/graph-api.js +9 -15
- package/lib/email-client/outlook-client.js +406 -177
- package/lib/export.js +17 -0
- package/lib/imapproxy/imap-server.js +3 -2
- package/lib/oauth/gmail.js +12 -1
- package/lib/oauth/outlook.js +99 -1
- package/lib/oauth/pubsub/google.js +253 -85
- package/lib/oauth2-apps.js +620 -389
- package/lib/outbox.js +1 -1
- package/lib/routes-ui.js +193 -238
- package/lib/schemas.js +189 -12
- package/lib/ui-routes/account-routes.js +7 -2
- package/lib/ui-routes/admin-entities-routes.js +3 -3
- package/lib/ui-routes/oauth-routes.js +27 -175
- package/package.json +21 -21
- package/sbom.json +1 -1
- package/server.js +54 -22
- package/static/licenses.html +30 -90
- package/translations/de.mo +0 -0
- package/translations/de.po +54 -42
- package/translations/en.mo +0 -0
- package/translations/en.po +55 -43
- package/translations/et.mo +0 -0
- package/translations/et.po +54 -42
- package/translations/fr.mo +0 -0
- package/translations/fr.po +54 -42
- package/translations/ja.mo +0 -0
- package/translations/ja.po +54 -42
- package/translations/messages.pot +93 -71
- package/translations/nl.mo +0 -0
- package/translations/nl.po +54 -42
- package/translations/pl.mo +0 -0
- package/translations/pl.po +54 -42
- package/views/config/oauth/app.hbs +12 -0
- package/views/config/oauth/edit.hbs +2 -0
- package/views/config/oauth/index.hbs +4 -1
- package/views/config/oauth/new.hbs +2 -0
- package/views/config/oauth/subscriptions.hbs +175 -0
- package/views/error.hbs +4 -4
- package/views/partials/oauth_form.hbs +179 -4
- package/views/partials/oauth_tabs.hbs +8 -0
- package/views/partials/scope_info.hbs +10 -0
- package/workers/api.js +174 -96
- package/workers/documents.js +1 -0
- package/workers/export.js +6 -2
- package/workers/imap.js +33 -49
- package/workers/smtp.js +1 -0
- package/workers/submit.js +1 -0
- package/workers/webhooks.js +42 -30
package/server.js
CHANGED
|
@@ -2753,30 +2753,61 @@ async function onCommand(worker, message) {
|
|
|
2753
2753
|
return await call(assignedWorker, message, []);
|
|
2754
2754
|
}
|
|
2755
2755
|
|
|
2756
|
-
case 'googlePubSub':
|
|
2757
|
-
|
|
2756
|
+
case 'googlePubSub':
|
|
2757
|
+
case 'googlePubSubRemove': {
|
|
2758
|
+
// Notify all webhook workers about PubSub app changes
|
|
2759
|
+
if (!workers.has('webhooks')) {
|
|
2760
|
+
return true;
|
|
2761
|
+
}
|
|
2762
|
+
let proms = [];
|
|
2758
2763
|
for (let worker of workers.get('webhooks')) {
|
|
2759
|
-
|
|
2764
|
+
proms.push(
|
|
2765
|
+
call(worker, message).catch(err => {
|
|
2766
|
+
logger.error({ msg: 'Failed to notify webhook worker about PubSub change', cmd: message.cmd, err });
|
|
2767
|
+
})
|
|
2768
|
+
);
|
|
2760
2769
|
}
|
|
2770
|
+
await Promise.all(proms);
|
|
2761
2771
|
return true;
|
|
2762
2772
|
}
|
|
2763
2773
|
|
|
2764
2774
|
case 'externalNotify': {
|
|
2765
2775
|
// External notification (e.g., Google Push)
|
|
2766
|
-
|
|
2776
|
+
let proms = [];
|
|
2777
|
+
for (let account of message.accounts || []) {
|
|
2767
2778
|
if (!assigned.has(account)) {
|
|
2768
2779
|
continue;
|
|
2769
2780
|
}
|
|
2770
2781
|
|
|
2771
2782
|
let assignedWorker = assigned.get(account);
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2783
|
+
proms.push(
|
|
2784
|
+
call(assignedWorker, { cmd: 'externalNotify', account, historyId: message.historyId }).catch(err => {
|
|
2785
|
+
logger.error({ msg: 'External notification failed', cmd: 'externalNotify', account, historyId: message.historyId, err });
|
|
2786
|
+
})
|
|
2787
|
+
);
|
|
2777
2788
|
}
|
|
2789
|
+
await Promise.all(proms);
|
|
2778
2790
|
return true;
|
|
2779
2791
|
}
|
|
2792
|
+
|
|
2793
|
+
case 'subscriptionLifecycle': {
|
|
2794
|
+
// MS Graph subscription lifecycle event (reauthorizationRequired, subscriptionRemoved)
|
|
2795
|
+
if (!assigned.has(message.account)) {
|
|
2796
|
+
logger.warn({
|
|
2797
|
+
msg: 'Subscription lifecycle event for unassigned account',
|
|
2798
|
+
account: message.account,
|
|
2799
|
+
event: message.event
|
|
2800
|
+
});
|
|
2801
|
+
return false;
|
|
2802
|
+
}
|
|
2803
|
+
let assignedWorker = assigned.get(message.account);
|
|
2804
|
+
return await call(assignedWorker, {
|
|
2805
|
+
cmd: 'subscriptionLifecycle',
|
|
2806
|
+
account: message.account,
|
|
2807
|
+
event: message.event,
|
|
2808
|
+
timeout: message.timeout
|
|
2809
|
+
});
|
|
2810
|
+
}
|
|
2780
2811
|
}
|
|
2781
2812
|
|
|
2782
2813
|
return 999;
|
|
@@ -2853,20 +2884,22 @@ async function collectMetrics() {
|
|
|
2853
2884
|
*/
|
|
2854
2885
|
const closeQueues = cb => {
|
|
2855
2886
|
let proms = [];
|
|
2856
|
-
if (queueEvents.notify) {
|
|
2857
|
-
proms.push(queueEvents.notify.close());
|
|
2858
|
-
}
|
|
2859
|
-
|
|
2860
|
-
if (queueEvents.submit) {
|
|
2861
|
-
proms.push(queueEvents.submit.close());
|
|
2862
|
-
}
|
|
2863
2887
|
|
|
2864
|
-
|
|
2865
|
-
|
|
2888
|
+
// Signal webhooks workers to stop Pub/Sub pull loops before exiting
|
|
2889
|
+
if (workers.has('webhooks')) {
|
|
2890
|
+
for (let worker of workers.get('webhooks')) {
|
|
2891
|
+
proms.push(
|
|
2892
|
+
call(worker, { cmd: 'close', timeout: 4000 }).catch(err => {
|
|
2893
|
+
logger.error({ msg: 'Failed to signal webhooks worker to close', err });
|
|
2894
|
+
})
|
|
2895
|
+
);
|
|
2896
|
+
}
|
|
2866
2897
|
}
|
|
2867
2898
|
|
|
2868
|
-
|
|
2869
|
-
|
|
2899
|
+
for (let name of ['notify', 'submit', 'documents', 'export']) {
|
|
2900
|
+
if (queueEvents[name]) {
|
|
2901
|
+
proms.push(queueEvents[name].close());
|
|
2902
|
+
}
|
|
2870
2903
|
}
|
|
2871
2904
|
|
|
2872
2905
|
if (!proms.length) {
|
|
@@ -2876,13 +2909,12 @@ const closeQueues = cb => {
|
|
|
2876
2909
|
let returned;
|
|
2877
2910
|
|
|
2878
2911
|
let closeTimeout = setTimeout(() => {
|
|
2879
|
-
clearTimeout(closeTimeout);
|
|
2880
2912
|
if (returned) {
|
|
2881
2913
|
return;
|
|
2882
2914
|
}
|
|
2883
2915
|
returned = true;
|
|
2884
2916
|
cb();
|
|
2885
|
-
},
|
|
2917
|
+
}, 5000);
|
|
2886
2918
|
|
|
2887
2919
|
Promise.allSettled(proms).then(() => {
|
|
2888
2920
|
clearTimeout(closeTimeout);
|
package/static/licenses.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!doctype html><html><head><meta charset="utf-8"><title>EmailEngine Licenses</title><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous"></head><body>
|
|
2
2
|
<div class="container-fluid">
|
|
3
|
-
<h1>EmailEngine v2.
|
|
3
|
+
<h1>EmailEngine v2.64.0</h1><p>EmailEngine includes code from the following software packages:</p>
|
|
4
4
|
<table class="table table-sm">
|
|
5
5
|
<tr><thead class="thead-dark"><th>Package</th><th>Version</th><th>License</th><th>Publisher</th><th>Publisher's Email</th><th>Package URL</th></tr>
|
|
6
6
|
<tbody>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
</tr>
|
|
147
147
|
<tr>
|
|
148
148
|
<td><a href="https://npmjs.com/package/@bull-board/api">@bull-board/api</a></td>
|
|
149
|
-
<td>6.20.
|
|
149
|
+
<td>6.20.6</td>
|
|
150
150
|
<td>MIT</td>
|
|
151
151
|
<td>felixmosh</td>
|
|
152
152
|
<td></td>
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
</tr>
|
|
157
157
|
<tr>
|
|
158
158
|
<td><a href="https://npmjs.com/package/@bull-board/hapi">@bull-board/hapi</a></td>
|
|
159
|
-
<td>6.20.
|
|
159
|
+
<td>6.20.6</td>
|
|
160
160
|
<td>MIT</td>
|
|
161
161
|
<td>felixmosh</td>
|
|
162
162
|
<td></td>
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
</tr>
|
|
167
167
|
<tr>
|
|
168
168
|
<td><a href="https://npmjs.com/package/@bull-board/ui">@bull-board/ui</a></td>
|
|
169
|
-
<td>6.20.
|
|
169
|
+
<td>6.20.6</td>
|
|
170
170
|
<td>MIT</td>
|
|
171
171
|
<td>felixmosh</td>
|
|
172
172
|
<td></td>
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
</tr>
|
|
217
217
|
<tr>
|
|
218
218
|
<td><a href="https://npmjs.com/package/@csstools/css-syntax-patches-for-csstree">@csstools/css-syntax-patches-for-csstree</a></td>
|
|
219
|
-
<td>1.1.
|
|
219
|
+
<td>1.1.1</td>
|
|
220
220
|
<td>MIT-0</td>
|
|
221
221
|
<td></td>
|
|
222
222
|
<td></td>
|
|
@@ -906,7 +906,7 @@
|
|
|
906
906
|
</tr>
|
|
907
907
|
<tr>
|
|
908
908
|
<td><a href="https://npmjs.com/package/@postalsys/bounce-classifier">@postalsys/bounce-classifier</a></td>
|
|
909
|
-
<td>2.
|
|
909
|
+
<td>2.4.0</td>
|
|
910
910
|
<td>MIT</td>
|
|
911
911
|
<td>Andris Reinman</td>
|
|
912
912
|
<td></td>
|
|
@@ -916,7 +916,7 @@
|
|
|
916
916
|
</tr>
|
|
917
917
|
<tr>
|
|
918
918
|
<td><a href="https://npmjs.com/package/@postalsys/certs">@postalsys/certs</a></td>
|
|
919
|
-
<td>1.0.
|
|
919
|
+
<td>1.0.14</td>
|
|
920
920
|
<td>ISC</td>
|
|
921
921
|
<td>Postal Systems OÜ</td>
|
|
922
922
|
<td>acme@postalsys.com</td>
|
|
@@ -936,7 +936,7 @@
|
|
|
936
936
|
</tr>
|
|
937
937
|
<tr>
|
|
938
938
|
<td><a href="https://npmjs.com/package/@postalsys/email-ai-tools">@postalsys/email-ai-tools</a></td>
|
|
939
|
-
<td>1.
|
|
939
|
+
<td>1.12.1</td>
|
|
940
940
|
<td>MIT</td>
|
|
941
941
|
<td>Postal Systems OÜ</td>
|
|
942
942
|
<td></td>
|
|
@@ -946,7 +946,7 @@
|
|
|
946
946
|
</tr>
|
|
947
947
|
<tr>
|
|
948
948
|
<td><a href="https://npmjs.com/package/@postalsys/email-text-tools">@postalsys/email-text-tools</a></td>
|
|
949
|
-
<td>2.4.
|
|
949
|
+
<td>2.4.3</td>
|
|
950
950
|
<td>MIT</td>
|
|
951
951
|
<td>Postal Systems OÜ</td>
|
|
952
952
|
<td></td>
|
|
@@ -1616,7 +1616,7 @@
|
|
|
1616
1616
|
</tr>
|
|
1617
1617
|
<tr>
|
|
1618
1618
|
<td><a href="https://npmjs.com/package/bullmq">bullmq</a></td>
|
|
1619
|
-
<td>5.
|
|
1619
|
+
<td>5.71.0</td>
|
|
1620
1620
|
<td>MIT</td>
|
|
1621
1621
|
<td>Taskforce.sh Inc.</td>
|
|
1622
1622
|
<td></td>
|
|
@@ -2226,7 +2226,7 @@
|
|
|
2226
2226
|
</tr>
|
|
2227
2227
|
<tr>
|
|
2228
2228
|
<td><a href="https://npmjs.com/package/dompurify">dompurify</a></td>
|
|
2229
|
-
<td>3.3.
|
|
2229
|
+
<td>3.3.3</td>
|
|
2230
2230
|
<td>(MPL-2.0 OR Apache-2.0)</td>
|
|
2231
2231
|
<td>Dr.-Ing. Mario Heiderich, Cure53</td>
|
|
2232
2232
|
<td>mario@cure53.de</td>
|
|
@@ -2525,7 +2525,7 @@
|
|
|
2525
2525
|
</tr>
|
|
2526
2526
|
<tr>
|
|
2527
2527
|
<td><a href="https://npmjs.com/package/eslint">eslint</a></td>
|
|
2528
|
-
<td>10.0
|
|
2528
|
+
<td>10.1.0</td>
|
|
2529
2529
|
<td>MIT</td>
|
|
2530
2530
|
<td>Nicholas C. Zakas</td>
|
|
2531
2531
|
<td>nicholas+npm@nczconsulting.com</td>
|
|
@@ -2845,7 +2845,7 @@
|
|
|
2845
2845
|
</tr>
|
|
2846
2846
|
<tr>
|
|
2847
2847
|
<td><a href="https://npmjs.com/package/flatted">flatted</a></td>
|
|
2848
|
-
<td>3.4.
|
|
2848
|
+
<td>3.4.2</td>
|
|
2849
2849
|
<td>ISC</td>
|
|
2850
2850
|
<td>Andrea Giammarchi</td>
|
|
2851
2851
|
<td></td>
|
|
@@ -3475,7 +3475,7 @@
|
|
|
3475
3475
|
</tr>
|
|
3476
3476
|
<tr>
|
|
3477
3477
|
<td><a href="https://npmjs.com/package/imapflow">imapflow</a></td>
|
|
3478
|
-
<td>1.2.
|
|
3478
|
+
<td>1.2.16</td>
|
|
3479
3479
|
<td>MIT</td>
|
|
3480
3480
|
<td>Postal Systems OÜ</td>
|
|
3481
3481
|
<td></td>
|
|
@@ -3535,17 +3535,7 @@
|
|
|
3535
3535
|
</tr>
|
|
3536
3536
|
<tr>
|
|
3537
3537
|
<td><a href="https://npmjs.com/package/ioredfour">ioredfour</a></td>
|
|
3538
|
-
<td>1.
|
|
3539
|
-
<td>MIT</td>
|
|
3540
|
-
<td>Mixmax</td>
|
|
3541
|
-
<td>hello@mixmax.com</td>
|
|
3542
|
-
<td>
|
|
3543
|
-
<a href="https://github.com/nodemailer/ioredfour">github.com/nodemailer/ioredfour</a>
|
|
3544
|
-
</td
|
|
3545
|
-
</tr>
|
|
3546
|
-
<tr>
|
|
3547
|
-
<td><a href="https://npmjs.com/package/ioredfour">ioredfour</a></td>
|
|
3548
|
-
<td>1.4.0</td>
|
|
3538
|
+
<td>1.4.1</td>
|
|
3549
3539
|
<td>MIT</td>
|
|
3550
3540
|
<td>Mixmax</td>
|
|
3551
3541
|
<td>hello@mixmax.com</td>
|
|
@@ -3555,17 +3545,7 @@
|
|
|
3555
3545
|
</tr>
|
|
3556
3546
|
<tr>
|
|
3557
3547
|
<td><a href="https://npmjs.com/package/ioredis">ioredis</a></td>
|
|
3558
|
-
<td>5.10.
|
|
3559
|
-
<td>MIT</td>
|
|
3560
|
-
<td>Zihua Li</td>
|
|
3561
|
-
<td>i@zihua.li</td>
|
|
3562
|
-
<td>
|
|
3563
|
-
<a href="https://github.com/luin/ioredis">github.com/luin/ioredis</a>
|
|
3564
|
-
</td
|
|
3565
|
-
</tr>
|
|
3566
|
-
<tr>
|
|
3567
|
-
<td><a href="https://npmjs.com/package/ioredis">ioredis</a></td>
|
|
3568
|
-
<td>5.3.2</td>
|
|
3548
|
+
<td>5.10.1</td>
|
|
3569
3549
|
<td>MIT</td>
|
|
3570
3550
|
<td>Zihua Li</td>
|
|
3571
3551
|
<td>i@zihua.li</td>
|
|
@@ -3815,7 +3795,7 @@
|
|
|
3815
3795
|
</tr>
|
|
3816
3796
|
<tr>
|
|
3817
3797
|
<td><a href="https://npmjs.com/package/joi">joi</a></td>
|
|
3818
|
-
<td>18.0.
|
|
3798
|
+
<td>18.0.2</td>
|
|
3819
3799
|
<td>BSD-3-Clause</td>
|
|
3820
3800
|
<td></td>
|
|
3821
3801
|
<td></td>
|
|
@@ -4115,7 +4095,7 @@
|
|
|
4115
4095
|
</tr>
|
|
4116
4096
|
<tr>
|
|
4117
4097
|
<td><a href="https://npmjs.com/package/lru-cache">lru-cache</a></td>
|
|
4118
|
-
<td>11.2.
|
|
4098
|
+
<td>11.2.7</td>
|
|
4119
4099
|
<td>BlueOak-1.0.0</td>
|
|
4120
4100
|
<td>Isaac Z. Schlueter</td>
|
|
4121
4101
|
<td>i@izs.me</td>
|
|
@@ -4155,7 +4135,7 @@
|
|
|
4155
4135
|
</tr>
|
|
4156
4136
|
<tr>
|
|
4157
4137
|
<td><a href="https://npmjs.com/package/mailparser">mailparser</a></td>
|
|
4158
|
-
<td>3.9.
|
|
4138
|
+
<td>3.9.5</td>
|
|
4159
4139
|
<td>MIT</td>
|
|
4160
4140
|
<td>Andris Reinman</td>
|
|
4161
4141
|
<td></td>
|
|
@@ -4515,27 +4495,7 @@
|
|
|
4515
4495
|
</tr>
|
|
4516
4496
|
<tr>
|
|
4517
4497
|
<td><a href="https://npmjs.com/package/nodemailer">nodemailer</a></td>
|
|
4518
|
-
<td>
|
|
4519
|
-
<td>MIT-0</td>
|
|
4520
|
-
<td>Andris Reinman</td>
|
|
4521
|
-
<td></td>
|
|
4522
|
-
<td>
|
|
4523
|
-
<a href="https://github.com/nodemailer/nodemailer">github.com/nodemailer/nodemailer</a>
|
|
4524
|
-
</td
|
|
4525
|
-
</tr>
|
|
4526
|
-
<tr>
|
|
4527
|
-
<td><a href="https://npmjs.com/package/nodemailer">nodemailer</a></td>
|
|
4528
|
-
<td>8.0.1</td>
|
|
4529
|
-
<td>MIT-0</td>
|
|
4530
|
-
<td>Andris Reinman</td>
|
|
4531
|
-
<td></td>
|
|
4532
|
-
<td>
|
|
4533
|
-
<a href="https://github.com/nodemailer/nodemailer">github.com/nodemailer/nodemailer</a>
|
|
4534
|
-
</td
|
|
4535
|
-
</tr>
|
|
4536
|
-
<tr>
|
|
4537
|
-
<td><a href="https://npmjs.com/package/nodemailer">nodemailer</a></td>
|
|
4538
|
-
<td>8.0.2</td>
|
|
4498
|
+
<td>8.0.3</td>
|
|
4539
4499
|
<td>MIT-0</td>
|
|
4540
4500
|
<td>Andris Reinman</td>
|
|
4541
4501
|
<td></td>
|
|
@@ -5005,16 +4965,6 @@
|
|
|
5005
4965
|
</tr>
|
|
5006
4966
|
<tr>
|
|
5007
4967
|
<td><a href="https://npmjs.com/package/pino">pino</a></td>
|
|
5008
|
-
<td>9.12.0</td>
|
|
5009
|
-
<td>MIT</td>
|
|
5010
|
-
<td>Matteo Collina</td>
|
|
5011
|
-
<td>hello@matteocollina.com</td>
|
|
5012
|
-
<td>
|
|
5013
|
-
<a href="https://github.com/pinojs/pino">github.com/pinojs/pino</a>
|
|
5014
|
-
</td
|
|
5015
|
-
</tr>
|
|
5016
|
-
<tr>
|
|
5017
|
-
<td><a href="https://npmjs.com/package/pino">pino</a></td>
|
|
5018
4968
|
<td>9.14.0</td>
|
|
5019
4969
|
<td>MIT</td>
|
|
5020
4970
|
<td>Matteo Collina</td>
|
|
@@ -5115,7 +5065,7 @@
|
|
|
5115
5065
|
</tr>
|
|
5116
5066
|
<tr>
|
|
5117
5067
|
<td><a href="https://npmjs.com/package/pubface">pubface</a></td>
|
|
5118
|
-
<td>1.0.
|
|
5068
|
+
<td>1.0.19</td>
|
|
5119
5069
|
<td>MIT-0</td>
|
|
5120
5070
|
<td>Postal Systems OÜ</td>
|
|
5121
5071
|
<td></td>
|
|
@@ -5445,7 +5395,7 @@
|
|
|
5445
5395
|
</tr>
|
|
5446
5396
|
<tr>
|
|
5447
5397
|
<td><a href="https://npmjs.com/package/sax">sax</a></td>
|
|
5448
|
-
<td>1.
|
|
5398
|
+
<td>1.6.0</td>
|
|
5449
5399
|
<td>BlueOak-1.0.0</td>
|
|
5450
5400
|
<td>Isaac Z. Schlueter</td>
|
|
5451
5401
|
<td>i@izs.me</td>
|
|
@@ -5604,16 +5554,6 @@
|
|
|
5604
5554
|
</td
|
|
5605
5555
|
</tr>
|
|
5606
5556
|
<tr>
|
|
5607
|
-
<td><a href="https://npmjs.com/package/slow-redact">slow-redact</a></td>
|
|
5608
|
-
<td>0.3.2</td>
|
|
5609
|
-
<td>MIT</td>
|
|
5610
|
-
<td>Matteo Collina</td>
|
|
5611
|
-
<td>hello@matteocollina.com</td>
|
|
5612
|
-
<td>
|
|
5613
|
-
<a href="https://github.com/pinojs/slow-redact">github.com/pinojs/slow-redact</a>
|
|
5614
|
-
</td
|
|
5615
|
-
</tr>
|
|
5616
|
-
<tr>
|
|
5617
5557
|
<td><a href="https://npmjs.com/package/smart-buffer">smart-buffer</a></td>
|
|
5618
5558
|
<td>4.2.0</td>
|
|
5619
5559
|
<td>MIT</td>
|
|
@@ -5625,7 +5565,7 @@
|
|
|
5625
5565
|
</tr>
|
|
5626
5566
|
<tr>
|
|
5627
5567
|
<td><a href="https://npmjs.com/package/smtp-server">smtp-server</a></td>
|
|
5628
|
-
<td>3.18.
|
|
5568
|
+
<td>3.18.2</td>
|
|
5629
5569
|
<td>MIT-0</td>
|
|
5630
5570
|
<td>Andris Reinman</td>
|
|
5631
5571
|
<td></td>
|
|
@@ -5945,7 +5885,7 @@
|
|
|
5945
5885
|
</tr>
|
|
5946
5886
|
<tr>
|
|
5947
5887
|
<td><a href="https://npmjs.com/package/swagger-ui-dist">swagger-ui-dist</a></td>
|
|
5948
|
-
<td>5.32.
|
|
5888
|
+
<td>5.32.1</td>
|
|
5949
5889
|
<td>Apache-2.0</td>
|
|
5950
5890
|
<td></td>
|
|
5951
5891
|
<td></td>
|
|
@@ -6025,7 +5965,7 @@
|
|
|
6025
5965
|
</tr>
|
|
6026
5966
|
<tr>
|
|
6027
5967
|
<td><a href="https://npmjs.com/package/tldts-core">tldts-core</a></td>
|
|
6028
|
-
<td>7.0.
|
|
5968
|
+
<td>7.0.27</td>
|
|
6029
5969
|
<td>MIT</td>
|
|
6030
5970
|
<td>Rémi Berson</td>
|
|
6031
5971
|
<td></td>
|
|
@@ -6035,7 +5975,7 @@
|
|
|
6035
5975
|
</tr>
|
|
6036
5976
|
<tr>
|
|
6037
5977
|
<td><a href="https://npmjs.com/package/tldts">tldts</a></td>
|
|
6038
|
-
<td>7.0.
|
|
5978
|
+
<td>7.0.27</td>
|
|
6039
5979
|
<td>MIT</td>
|
|
6040
5980
|
<td>Rémi Berson</td>
|
|
6041
5981
|
<td></td>
|
|
@@ -6075,7 +6015,7 @@
|
|
|
6075
6015
|
</tr>
|
|
6076
6016
|
<tr>
|
|
6077
6017
|
<td><a href="https://npmjs.com/package/tough-cookie">tough-cookie</a></td>
|
|
6078
|
-
<td>6.0.
|
|
6018
|
+
<td>6.0.1</td>
|
|
6079
6019
|
<td>BSD-3-Clause</td>
|
|
6080
6020
|
<td>Jeremy Stashewsky</td>
|
|
6081
6021
|
<td>jstash@gmail.com</td>
|
|
@@ -6195,7 +6135,7 @@
|
|
|
6195
6135
|
</tr>
|
|
6196
6136
|
<tr>
|
|
6197
6137
|
<td><a href="https://npmjs.com/package/undici">undici</a></td>
|
|
6198
|
-
<td>6.
|
|
6138
|
+
<td>6.24.1</td>
|
|
6199
6139
|
<td>MIT</td>
|
|
6200
6140
|
<td></td>
|
|
6201
6141
|
<td></td>
|
|
@@ -6205,7 +6145,7 @@
|
|
|
6205
6145
|
</tr>
|
|
6206
6146
|
<tr>
|
|
6207
6147
|
<td><a href="https://npmjs.com/package/undici">undici</a></td>
|
|
6208
|
-
<td>7.
|
|
6148
|
+
<td>7.24.5</td>
|
|
6209
6149
|
<td>MIT</td>
|
|
6210
6150
|
<td></td>
|
|
6211
6151
|
<td></td>
|
|
@@ -6455,7 +6395,7 @@
|
|
|
6455
6395
|
</tr>
|
|
6456
6396
|
<tr>
|
|
6457
6397
|
<td><a href="https://npmjs.com/package/ws">ws</a></td>
|
|
6458
|
-
<td>8.
|
|
6398
|
+
<td>8.20.0</td>
|
|
6459
6399
|
<td>MIT</td>
|
|
6460
6400
|
<td>Einar Otto Stangvik</td>
|
|
6461
6401
|
<td>einaros@gmail.com</td>
|
package/translations/de.mo
CHANGED
|
Binary file
|
package/translations/de.po
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: \n"
|
|
4
|
-
"POT-Creation-Date: 2026-
|
|
4
|
+
"POT-Creation-Date: 2026-03-10 13:39+0000\n"
|
|
5
5
|
"PO-Revision-Date: \n"
|
|
6
6
|
"Last-Translator: \n"
|
|
7
7
|
"Language-Team: \n"
|
|
@@ -12,16 +12,28 @@ msgstr ""
|
|
|
12
12
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
13
13
|
"X-Generator: Poedit 3.8\n"
|
|
14
14
|
|
|
15
|
+
#: views/error.hbs:4 workers/api.js:7043
|
|
16
|
+
msgid "Something went wrong"
|
|
17
|
+
msgstr "Leider ist ein Fehler aufgetreten"
|
|
18
|
+
|
|
19
|
+
#: views/error.hbs:6
|
|
20
|
+
msgid "Error code: %s"
|
|
21
|
+
msgstr "Fehlercode: %s"
|
|
22
|
+
|
|
23
|
+
#: views/error.hbs:14
|
|
24
|
+
msgid "Go back"
|
|
25
|
+
msgstr "Zurueck"
|
|
26
|
+
|
|
27
|
+
#: views/error.hbs:17
|
|
28
|
+
msgid "Dashboard"
|
|
29
|
+
msgstr "Dashboard"
|
|
30
|
+
|
|
15
31
|
#: views/config/license.hbs:45
|
|
16
32
|
msgid "%d day"
|
|
17
33
|
msgid_plural "%d days"
|
|
18
34
|
msgstr[0] "%d Tag"
|
|
19
35
|
msgstr[1] "%d Tage"
|
|
20
36
|
|
|
21
|
-
#: views/redirect.hbs:1
|
|
22
|
-
msgid "Click <a href=\"%s\">here</a> to continue…"
|
|
23
|
-
msgstr "Klicken Sie <a href=\"%s\">hier</a>, um fortzufahren…"
|
|
24
|
-
|
|
25
37
|
#: views/unsubscribe.hbs:3 views/unsubscribe.hbs:62 views/unsubscribe.hbs:85
|
|
26
38
|
msgid "Unsubscribe"
|
|
27
39
|
msgstr "Abmelden"
|
|
@@ -69,6 +81,10 @@ msgstr "E-Mail-Adresse"
|
|
|
69
81
|
msgid "Enter your email address"
|
|
70
82
|
msgstr "Geben Sie Ihre E-Mail-Adresse ein"
|
|
71
83
|
|
|
84
|
+
#: views/redirect.hbs:1
|
|
85
|
+
msgid "Click <a href=\"%s\">here</a> to continue…"
|
|
86
|
+
msgstr "Klicken Sie <a href=\"%s\">hier</a>, um fortzufahren…"
|
|
87
|
+
|
|
72
88
|
#: views/accounts/register/imap.hbs:11
|
|
73
89
|
msgid "Your name"
|
|
74
90
|
msgstr "Ihr Name"
|
|
@@ -91,14 +107,6 @@ msgstr "Passwort für Ihr Konto eingeben"
|
|
|
91
107
|
msgid "Continue"
|
|
92
108
|
msgstr "Weiter"
|
|
93
109
|
|
|
94
|
-
#: views/accounts/register/index.hbs:2
|
|
95
|
-
msgid "Choose your email account provider"
|
|
96
|
-
msgstr "Wählen Sie Ihren E-Mail-Kontoanbieter"
|
|
97
|
-
|
|
98
|
-
#: views/accounts/register/index.hbs:15
|
|
99
|
-
msgid "Standard IMAP"
|
|
100
|
-
msgstr "Standard IMAP"
|
|
101
|
-
|
|
102
110
|
#: views/accounts/register/imap-server.hbs:19
|
|
103
111
|
msgid "IMAP"
|
|
104
112
|
msgstr "IMAP"
|
|
@@ -222,15 +230,23 @@ msgstr "Verbindung zum SMTP-Server nicht moeglich"
|
|
|
222
230
|
msgid "Request failed."
|
|
223
231
|
msgstr "Anfrage fehlgeschlagen."
|
|
224
232
|
|
|
225
|
-
#:
|
|
233
|
+
#: views/accounts/register/index.hbs:2
|
|
234
|
+
msgid "Choose your email account provider"
|
|
235
|
+
msgstr "Wählen Sie Ihren E-Mail-Kontoanbieter"
|
|
236
|
+
|
|
237
|
+
#: views/accounts/register/index.hbs:15
|
|
238
|
+
msgid "Standard IMAP"
|
|
239
|
+
msgstr "Standard IMAP"
|
|
240
|
+
|
|
241
|
+
#: lib/routes-ui.js:523 lib/ui-routes/account-routes.js:60
|
|
226
242
|
msgid "Delegated"
|
|
227
243
|
msgstr "Delegiert"
|
|
228
244
|
|
|
229
|
-
#: lib/routes-ui.js:
|
|
245
|
+
#: lib/routes-ui.js:524 lib/ui-routes/account-routes.js:61
|
|
230
246
|
msgid "Using credentials from \"%s\""
|
|
231
247
|
msgstr "Verwendung von Anmeldeinformationen aus \"%s\""
|
|
232
248
|
|
|
233
|
-
#: lib/routes-ui.js:
|
|
249
|
+
#: lib/routes-ui.js:574 lib/ui-routes/account-routes.js:111
|
|
234
250
|
msgid ""
|
|
235
251
|
"Connection timed out. This usually occurs if you are behind a firewall or "
|
|
236
252
|
"connecting to the wrong port."
|
|
@@ -239,11 +255,11 @@ msgstr ""
|
|
|
239
255
|
"sich hinter einer Firewall befinden oder eine Verbindung zum falschen Port "
|
|
240
256
|
"herstellen."
|
|
241
257
|
|
|
242
|
-
#: lib/routes-ui.js:
|
|
258
|
+
#: lib/routes-ui.js:577 lib/ui-routes/account-routes.js:114
|
|
243
259
|
msgid "The server unexpectedly closed the connection."
|
|
244
260
|
msgstr "Der Server hat die Verbindung unerwartet geschlossen."
|
|
245
261
|
|
|
246
|
-
#: lib/routes-ui.js:
|
|
262
|
+
#: lib/routes-ui.js:580 lib/ui-routes/account-routes.js:117
|
|
247
263
|
msgid ""
|
|
248
264
|
"The server unexpectedly closed the connection. This usually happens when "
|
|
249
265
|
"attempting to connect to a TLS port without TLS enabled."
|
|
@@ -252,7 +268,7 @@ msgstr ""
|
|
|
252
268
|
"Regel, wenn versucht wird, eine Verbindung zu einem TLS-Port ohne "
|
|
253
269
|
"aktiviertes TLS herzustellen."
|
|
254
270
|
|
|
255
|
-
#: lib/routes-ui.js:
|
|
271
|
+
#: lib/routes-ui.js:585 lib/ui-routes/account-routes.js:122
|
|
256
272
|
msgid ""
|
|
257
273
|
"The server refused the connection. This typically occurs if the server is "
|
|
258
274
|
"not running, is overloaded, or you are connecting to the wrong host or port."
|
|
@@ -261,90 +277,86 @@ msgstr ""
|
|
|
261
277
|
"der Server nicht läuft, überlastet ist oder Sie sich mit dem falschen Host "
|
|
262
278
|
"oder Port verbinden."
|
|
263
279
|
|
|
264
|
-
#: lib/routes-ui.js:
|
|
280
|
+
#: lib/routes-ui.js:712
|
|
265
281
|
msgid "Invalid API key for OpenAI"
|
|
266
282
|
msgstr "Ungültiger API-Schlüssel für OpenAI"
|
|
267
283
|
|
|
268
|
-
#: lib/routes-ui.js:
|
|
269
|
-
#: lib/routes-ui.js:
|
|
270
|
-
#: workers/api.js:
|
|
284
|
+
#: lib/routes-ui.js:4754 lib/routes-ui.js:4789 lib/routes-ui.js:4904
|
|
285
|
+
#: lib/routes-ui.js:4951 lib/routes-ui.js:5198 lib/routes-ui.js:5234
|
|
286
|
+
#: workers/api.js:2557 lib/ui-routes/account-routes.js:549
|
|
271
287
|
#: lib/ui-routes/account-routes.js:585 lib/ui-routes/account-routes.js:702
|
|
272
288
|
#: lib/ui-routes/account-routes.js:749 lib/ui-routes/account-routes.js:998
|
|
273
289
|
#: lib/ui-routes/account-routes.js:1034
|
|
274
290
|
msgid "Email Account Setup"
|
|
275
291
|
msgstr "E-Mail-Konto einrichten"
|
|
276
292
|
|
|
277
|
-
#: lib/routes-ui.js:
|
|
293
|
+
#: lib/routes-ui.js:4814 lib/routes-ui.js:4847 lib/routes-ui.js:7807
|
|
278
294
|
#: lib/ui-routes/account-routes.js:610 lib/ui-routes/account-routes.js:644
|
|
279
295
|
msgid "Invalid request. Check your input and try again."
|
|
280
296
|
msgstr "Validierung der Anforderungsargumente fehlgeschlagen."
|
|
281
297
|
|
|
282
|
-
#: lib/routes-ui.js:
|
|
298
|
+
#: lib/routes-ui.js:5007 lib/routes-ui.js:5018
|
|
283
299
|
#: lib/ui-routes/account-routes.js:806 lib/ui-routes/account-routes.js:817
|
|
284
300
|
#: lib/ui-routes/admin-entities-routes.js:2020
|
|
285
301
|
msgid "Server hostname was not found"
|
|
286
302
|
msgstr "Server-Hostname wurde nicht gefunden"
|
|
287
303
|
|
|
288
|
-
#: lib/routes-ui.js:
|
|
304
|
+
#: lib/routes-ui.js:5010 lib/routes-ui.js:5021
|
|
289
305
|
#: lib/ui-routes/account-routes.js:809 lib/ui-routes/account-routes.js:820
|
|
290
306
|
#: lib/ui-routes/admin-entities-routes.js:2023
|
|
291
307
|
msgid "Invalid username or password"
|
|
292
308
|
msgstr "Ungültiger Benutzername oder Passwort"
|
|
293
309
|
|
|
294
|
-
#: lib/routes-ui.js:
|
|
310
|
+
#: lib/routes-ui.js:5024 lib/ui-routes/account-routes.js:823
|
|
295
311
|
#: lib/ui-routes/admin-entities-routes.js:2026
|
|
296
312
|
msgid "Authentication credentials were not provided"
|
|
297
313
|
msgstr "Es wurden keine Authentifizierungsdaten angegeben"
|
|
298
314
|
|
|
299
|
-
#: lib/routes-ui.js:
|
|
315
|
+
#: lib/routes-ui.js:5027 lib/ui-routes/account-routes.js:826
|
|
300
316
|
#: lib/ui-routes/admin-entities-routes.js:2029
|
|
301
317
|
msgid "OAuth2 authentication failed"
|
|
302
318
|
msgstr "OAuth2-Authentifizierung fehlgeschlagen"
|
|
303
319
|
|
|
304
|
-
#: lib/routes-ui.js:
|
|
320
|
+
#: lib/routes-ui.js:5030 lib/routes-ui.js:5034
|
|
305
321
|
#: lib/ui-routes/account-routes.js:829 lib/ui-routes/account-routes.js:833
|
|
306
322
|
#: lib/ui-routes/admin-entities-routes.js:2032
|
|
307
323
|
#: lib/ui-routes/admin-entities-routes.js:2036
|
|
308
324
|
msgid "TLS protocol error"
|
|
309
325
|
msgstr "TLS-Protokollfehler"
|
|
310
326
|
|
|
311
|
-
#: lib/routes-ui.js:
|
|
327
|
+
#: lib/routes-ui.js:5038 lib/ui-routes/account-routes.js:837
|
|
312
328
|
#: lib/ui-routes/admin-entities-routes.js:2040
|
|
313
329
|
msgid "Connection timed out"
|
|
314
330
|
msgstr "Verbindung abgelaufen"
|
|
315
331
|
|
|
316
|
-
#: lib/routes-ui.js:
|
|
332
|
+
#: lib/routes-ui.js:5041 lib/ui-routes/account-routes.js:840
|
|
317
333
|
#: lib/ui-routes/admin-entities-routes.js:2043
|
|
318
334
|
msgid "Could not connect to server"
|
|
319
335
|
msgstr "Es konnte keine Verbindung zum Server hergestellt werden"
|
|
320
336
|
|
|
321
|
-
#: lib/routes-ui.js:
|
|
337
|
+
#: lib/routes-ui.js:5044 lib/ui-routes/account-routes.js:843
|
|
322
338
|
#: lib/ui-routes/admin-entities-routes.js:2046
|
|
323
339
|
msgid "Unexpected server response"
|
|
324
340
|
msgstr "Unerwartete Serverantwort"
|
|
325
341
|
|
|
326
|
-
#: lib/routes-ui.js:
|
|
342
|
+
#: lib/routes-ui.js:7770 lib/tools.js:950
|
|
327
343
|
msgid "Invalid input"
|
|
328
344
|
msgstr "Ungültige Eingabe"
|
|
329
345
|
|
|
330
|
-
#: lib/routes-ui.js:
|
|
331
|
-
#: lib/routes-ui.js:
|
|
346
|
+
#: lib/routes-ui.js:7780 lib/routes-ui.js:7898 lib/routes-ui.js:7915
|
|
347
|
+
#: lib/routes-ui.js:7951
|
|
332
348
|
msgid "Subscription Management"
|
|
333
349
|
msgstr "Mitgliederverwaltung"
|
|
334
350
|
|
|
335
|
-
#: workers/api.js:
|
|
351
|
+
#: workers/api.js:7042 workers/api.js:7159
|
|
336
352
|
msgid "Requested page not found"
|
|
337
353
|
msgstr "Gewünschte Seite nicht gefunden"
|
|
338
354
|
|
|
339
|
-
#:
|
|
340
|
-
msgid "Something went wrong"
|
|
341
|
-
msgstr "Leider ist ein Fehler aufgetreten"
|
|
342
|
-
|
|
343
|
-
#: lib/tools.js:1477
|
|
355
|
+
#: lib/tools.js:1653
|
|
344
356
|
msgid "Signature validation failed"
|
|
345
357
|
msgstr "Signaturüberprüfung fehlgeschlagen"
|
|
346
358
|
|
|
347
|
-
#: lib/tools.js:
|
|
359
|
+
#: lib/tools.js:1662 lib/tools.js:1667
|
|
348
360
|
msgid "Invalid or expired account setup URL"
|
|
349
361
|
msgstr "Ungültige oder abgelaufene URL für die Kontoeinrichtung"
|
|
350
362
|
|