emailengine-app 2.70.0 → 2.71.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.
Files changed (43) hide show
  1. package/.github/workflows/test.yml +73 -12
  2. package/.ncurc.js +3 -3
  3. package/CHANGELOG.md +18 -0
  4. package/Gruntfile.js +19 -23
  5. package/bin/emailengine.js +8 -1
  6. package/config/default.toml +5 -0
  7. package/config/test.toml +5 -0
  8. package/data/google-crawlers.json +1 -1
  9. package/getswagger.sh +4 -0
  10. package/lib/account.js +31 -25
  11. package/lib/api-routes/message-routes.js +125 -121
  12. package/lib/document-store.js +22 -1
  13. package/lib/email-client/base-client.js +3 -2
  14. package/lib/email-client/imap/mailbox.js +2 -2
  15. package/lib/email-client/notification-handler.js +2 -2
  16. package/lib/export.js +12 -0
  17. package/lib/feature-flags.js +6 -0
  18. package/lib/license-beacon.js +367 -0
  19. package/lib/logger.js +11 -1
  20. package/lib/routes-ui.js +2 -1
  21. package/lib/tools.js +26 -2
  22. package/lib/ui-routes/admin-config-routes.js +4 -3
  23. package/lib/ui-routes/document-store-routes.js +7 -1
  24. package/package.json +19 -16
  25. package/sbom.json +1 -1
  26. package/server.js +30 -8
  27. package/static/licenses.html +43 -123
  28. package/translations/de.mo +0 -0
  29. package/translations/de.po +154 -142
  30. package/translations/et.mo +0 -0
  31. package/translations/et.po +129 -131
  32. package/translations/fr.mo +0 -0
  33. package/translations/fr.po +133 -136
  34. package/translations/ja.mo +0 -0
  35. package/translations/ja.po +126 -129
  36. package/translations/messages.pot +37 -37
  37. package/translations/nl.mo +0 -0
  38. package/translations/nl.po +128 -130
  39. package/translations/pl.mo +0 -0
  40. package/translations/pl.po +125 -128
  41. package/views/dashboard.hbs +22 -0
  42. package/workers/api.js +22 -5
  43. package/workers/export.js +58 -43
package/server.js CHANGED
@@ -121,6 +121,8 @@ const { compare: cv } = require('compare-versions');
121
121
  const Joi = require('joi');
122
122
  const { settingsSchema } = require('./lib/schemas');
123
123
  const settings = require('./lib/settings');
124
+ const { documentStoreFeatureEnabled } = require('./lib/document-store');
125
+ const { attachBeacon, persistBeaconMarkers } = require('./lib/license-beacon');
124
126
  const tokens = require('./lib/tokens');
125
127
 
126
128
  const { checkRateLimit } = require('./lib/rate-limit');
@@ -243,6 +245,9 @@ const API_PROXY = hasEnvValue('EENGINE_API_PROXY') ? getBoolean(readEnvValue('EE
243
245
  // API authentication requirement configuration (default: true)
244
246
  const REQUIRE_API_AUTH = hasEnvValue('EENGINE_REQUIRE_API_AUTH') ? getBoolean(readEnvValue('EENGINE_REQUIRE_API_AUTH')) : null;
245
247
 
248
+ // Opt-out for the license-validation feature beacon (telemetry rides on the existing license call)
249
+ const BEACON_DISABLED = hasEnvValue('EENGINE_BEACON_DISABLED') ? getBoolean(readEnvValue('EENGINE_BEACON_DISABLED')) : false;
250
+
246
251
  // OAuth2 token access configuration
247
252
  const ENABLE_OAUTH_TOKENS_API = hasEnvValue('EENGINE_ENABLE_OAUTH_TOKENS_API') ? getBoolean(readEnvValue('EENGINE_ENABLE_OAUTH_TOKENS_API')) : null;
248
253
 
@@ -1857,6 +1862,21 @@ let licenseCheckHandler = async opts => {
1857
1862
  (await redis.hUpdateBigger(`${REDIS_PREFIX}settings`, 'subcheck', now - subscriptionCheckTimeout, now))
1858
1863
  ) {
1859
1864
  try {
1865
+ let body = {
1866
+ key: licenseInfo.details.key,
1867
+ version: packageData.version,
1868
+ app: '@postalsys/emailengine-app',
1869
+ instance: (await settings.get('serviceId')) || ''
1870
+ };
1871
+
1872
+ // Best-effort feature beacon: enrich the existing call with a compact, anonymized
1873
+ // feature snapshot. Time-boxed and fully isolated (attachBeacon never throws) so it
1874
+ // can never block, delay, or alter license validation. The full snapshot is only sent
1875
+ // when its digest changes or once every 30 days; otherwise just the digest rides along.
1876
+ if (!BEACON_DISABLED) {
1877
+ await attachBeacon(body, { redis, logger, now });
1878
+ }
1879
+
1860
1880
  // Call license validation API
1861
1881
  let res = await fetchCmd(`https://postalsys.com/licenses/validate`, {
1862
1882
  method: 'post',
@@ -1864,12 +1884,7 @@ let licenseCheckHandler = async opts => {
1864
1884
  'User-Agent': `${packageData.name}/${packageData.version} (+${packageData.homepage})`,
1865
1885
  'Content-Type': 'application/json'
1866
1886
  },
1867
- body: JSON.stringify({
1868
- key: licenseInfo.details.key,
1869
- version: packageData.version,
1870
- app: '@postalsys/emailengine-app',
1871
- instance: (await settings.get('serviceId')) || ''
1872
- }),
1887
+ body: JSON.stringify(body),
1873
1888
  dispatcher: httpAgent.retry
1874
1889
  });
1875
1890
 
@@ -1901,6 +1916,11 @@ let licenseCheckHandler = async opts => {
1901
1916
  let nextCheck = Math.min(now + MAX_LICENSE_CHECK_DELAY, validatedUntil.getTime());
1902
1917
  await redis.hset(`${REDIS_PREFIX}settings`, 'ks', new Date(nextCheck).getTime().toString(16));
1903
1918
  }
1919
+
1920
+ // Persist beacon markers so the full snapshot is only resent when it changes.
1921
+ if (!BEACON_DISABLED) {
1922
+ await persistBeaconMarkers({ redis, logger, body, now, needFull: data.needFull });
1923
+ }
1904
1924
  }
1905
1925
  } catch (err) {
1906
1926
  logger.error({ msg: 'License validation error', err });
@@ -3418,8 +3438,10 @@ const startApplication = async () => {
3418
3438
  await spawnWorker('export');
3419
3439
  }
3420
3440
 
3421
- // Start document processing worker
3422
- await spawnWorker('documents');
3441
+ // Start document processing worker (deprecated Document Store feature; only when enabled)
3442
+ if (documentStoreFeatureEnabled) {
3443
+ await spawnWorker('documents');
3444
+ }
3423
3445
 
3424
3446
  // Start SMTP proxy if enabled
3425
3447
  if (await settings.get('smtpServerEnabled')) {
@@ -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.69.0</h1><p>EmailEngine includes code from the following software packages:</p>
3
+ <h1>EmailEngine v2.70.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>
@@ -285,16 +285,6 @@
285
285
  </td
286
286
  </tr>
287
287
  <tr>
288
- <td><a href="https://npmjs.com/package/@hapi/address">@hapi/address</a></td>
289
- <td>5.1.1</td>
290
- <td>BSD-3-Clause</td>
291
- <td></td>
292
- <td></td>
293
- <td>
294
- <a href="https://github.com/hapijs/address">github.com/hapijs/address</a>
295
- </td
296
- </tr>
297
- <tr>
298
288
  <td><a href="https://npmjs.com/package/@hapi/ammo">@hapi/ammo</a></td>
299
289
  <td>6.0.1</td>
300
290
  <td>BSD-3-Clause</td>
@@ -435,16 +425,6 @@
435
425
  </td
436
426
  </tr>
437
427
  <tr>
438
- <td><a href="https://npmjs.com/package/@hapi/formula">@hapi/formula</a></td>
439
- <td>3.0.2</td>
440
- <td>BSD-3-Clause</td>
441
- <td></td>
442
- <td></td>
443
- <td>
444
- <a href="https://github.com/hapijs/formula">github.com/hapijs/formula</a>
445
- </td
446
- </tr>
447
- <tr>
448
428
  <td><a href="https://npmjs.com/package/@hapi/hapi">@hapi/hapi</a></td>
449
429
  <td>21.4.9</td>
450
430
  <td>BSD-3-Clause</td>
@@ -535,16 +515,6 @@
535
515
  </td
536
516
  </tr>
537
517
  <tr>
538
- <td><a href="https://npmjs.com/package/@hapi/pinpoint">@hapi/pinpoint</a></td>
539
- <td>2.0.1</td>
540
- <td>BSD-3-Clause</td>
541
- <td></td>
542
- <td></td>
543
- <td>
544
- <a href="https://github.com/hapijs/pinpoint">github.com/hapijs/pinpoint</a>
545
- </td
546
- </tr>
547
- <tr>
548
518
  <td><a href="https://npmjs.com/package/@hapi/podium">@hapi/podium</a></td>
549
519
  <td>5.0.2</td>
550
520
  <td>BSD-3-Clause</td>
@@ -605,16 +575,6 @@
605
575
  </td
606
576
  </tr>
607
577
  <tr>
608
- <td><a href="https://npmjs.com/package/@hapi/tlds">@hapi/tlds</a></td>
609
- <td>1.1.7</td>
610
- <td>BSD-3-Clause</td>
611
- <td></td>
612
- <td></td>
613
- <td>
614
- <a href="https://github.com/hapijs/tlds">github.com/hapijs/tlds</a>
615
- </td
616
- </tr>
617
- <tr>
618
578
  <td><a href="https://npmjs.com/package/@hapi/topo">@hapi/topo</a></td>
619
579
  <td>5.1.0</td>
620
580
  <td>BSD-3-Clause</td>
@@ -826,7 +786,7 @@
826
786
  </tr>
827
787
  <tr>
828
788
  <td><a href="https://npmjs.com/package/@opentelemetry/core">@opentelemetry/core</a></td>
829
- <td>2.7.1</td>
789
+ <td>2.8.0</td>
830
790
  <td>Apache-2.0</td>
831
791
  <td>OpenTelemetry Authors</td>
832
792
  <td></td>
@@ -846,7 +806,7 @@
846
806
  </tr>
847
807
  <tr>
848
808
  <td><a href="https://npmjs.com/package/@opentelemetry/resources">@opentelemetry/resources</a></td>
849
- <td>2.7.1</td>
809
+ <td>2.8.0</td>
850
810
  <td>Apache-2.0</td>
851
811
  <td>OpenTelemetry Authors</td>
852
812
  <td></td>
@@ -856,7 +816,7 @@
856
816
  </tr>
857
817
  <tr>
858
818
  <td><a href="https://npmjs.com/package/@opentelemetry/sdk-trace-base">@opentelemetry/sdk-trace-base</a></td>
859
- <td>2.7.1</td>
819
+ <td>2.8.0</td>
860
820
  <td>Apache-2.0</td>
861
821
  <td>OpenTelemetry Authors</td>
862
822
  <td></td>
@@ -886,7 +846,7 @@
886
846
  </tr>
887
847
  <tr>
888
848
  <td><a href="https://npmjs.com/package/@peculiar/asn1-android">@peculiar/asn1-android</a></td>
889
- <td>2.7.0</td>
849
+ <td>2.8.0</td>
890
850
  <td>MIT</td>
891
851
  <td>PeculiarVentures, LLC</td>
892
852
  <td></td>
@@ -896,7 +856,7 @@
896
856
  </tr>
897
857
  <tr>
898
858
  <td><a href="https://npmjs.com/package/@peculiar/asn1-cms">@peculiar/asn1-cms</a></td>
899
- <td>2.7.0</td>
859
+ <td>2.8.0</td>
900
860
  <td>MIT</td>
901
861
  <td>PeculiarVentures, LLC</td>
902
862
  <td></td>
@@ -906,7 +866,7 @@
906
866
  </tr>
907
867
  <tr>
908
868
  <td><a href="https://npmjs.com/package/@peculiar/asn1-csr">@peculiar/asn1-csr</a></td>
909
- <td>2.7.0</td>
869
+ <td>2.8.0</td>
910
870
  <td>MIT</td>
911
871
  <td>PeculiarVentures, LLC</td>
912
872
  <td></td>
@@ -916,7 +876,7 @@
916
876
  </tr>
917
877
  <tr>
918
878
  <td><a href="https://npmjs.com/package/@peculiar/asn1-ecc">@peculiar/asn1-ecc</a></td>
919
- <td>2.7.0</td>
879
+ <td>2.8.0</td>
920
880
  <td>MIT</td>
921
881
  <td>PeculiarVentures, LLC</td>
922
882
  <td></td>
@@ -926,7 +886,7 @@
926
886
  </tr>
927
887
  <tr>
928
888
  <td><a href="https://npmjs.com/package/@peculiar/asn1-pfx">@peculiar/asn1-pfx</a></td>
929
- <td>2.7.0</td>
889
+ <td>2.8.0</td>
930
890
  <td>MIT</td>
931
891
  <td>PeculiarVentures, LLC</td>
932
892
  <td></td>
@@ -936,7 +896,7 @@
936
896
  </tr>
937
897
  <tr>
938
898
  <td><a href="https://npmjs.com/package/@peculiar/asn1-pkcs8">@peculiar/asn1-pkcs8</a></td>
939
- <td>2.7.0</td>
899
+ <td>2.8.0</td>
940
900
  <td>MIT</td>
941
901
  <td>PeculiarVentures, LLC</td>
942
902
  <td></td>
@@ -946,7 +906,7 @@
946
906
  </tr>
947
907
  <tr>
948
908
  <td><a href="https://npmjs.com/package/@peculiar/asn1-pkcs9">@peculiar/asn1-pkcs9</a></td>
949
- <td>2.7.0</td>
909
+ <td>2.8.0</td>
950
910
  <td>MIT</td>
951
911
  <td>PeculiarVentures, LLC</td>
952
912
  <td></td>
@@ -956,7 +916,7 @@
956
916
  </tr>
957
917
  <tr>
958
918
  <td><a href="https://npmjs.com/package/@peculiar/asn1-rsa">@peculiar/asn1-rsa</a></td>
959
- <td>2.7.0</td>
919
+ <td>2.8.0</td>
960
920
  <td>MIT</td>
961
921
  <td>PeculiarVentures, LLC</td>
962
922
  <td></td>
@@ -966,7 +926,7 @@
966
926
  </tr>
967
927
  <tr>
968
928
  <td><a href="https://npmjs.com/package/@peculiar/asn1-schema">@peculiar/asn1-schema</a></td>
969
- <td>2.7.0</td>
929
+ <td>2.8.0</td>
970
930
  <td>MIT</td>
971
931
  <td>PeculiarVentures, LLC</td>
972
932
  <td></td>
@@ -976,7 +936,7 @@
976
936
  </tr>
977
937
  <tr>
978
938
  <td><a href="https://npmjs.com/package/@peculiar/asn1-x509-attr">@peculiar/asn1-x509-attr</a></td>
979
- <td>2.7.0</td>
939
+ <td>2.8.0</td>
980
940
  <td>MIT</td>
981
941
  <td>PeculiarVentures, LLC</td>
982
942
  <td></td>
@@ -986,7 +946,7 @@
986
946
  </tr>
987
947
  <tr>
988
948
  <td><a href="https://npmjs.com/package/@peculiar/asn1-x509">@peculiar/asn1-x509</a></td>
989
- <td>2.7.0</td>
949
+ <td>2.8.0</td>
990
950
  <td>MIT</td>
991
951
  <td>PeculiarVentures, LLC</td>
992
952
  <td></td>
@@ -1056,7 +1016,7 @@
1056
1016
  </tr>
1057
1017
  <tr>
1058
1018
  <td><a href="https://npmjs.com/package/@postalsys/certs">@postalsys/certs</a></td>
1059
- <td>1.0.14</td>
1019
+ <td>1.0.15</td>
1060
1020
  <td>ISC</td>
1061
1021
  <td>Postal Systems O&#xDC;</td>
1062
1022
  <td>acme@postalsys.com</td>
@@ -1076,7 +1036,7 @@
1076
1036
  </tr>
1077
1037
  <tr>
1078
1038
  <td><a href="https://npmjs.com/package/@postalsys/email-ai-tools">@postalsys/email-ai-tools</a></td>
1079
- <td>1.13.5</td>
1039
+ <td>1.13.6</td>
1080
1040
  <td>MIT</td>
1081
1041
  <td>Postal Systems O&#xDC;</td>
1082
1042
  <td></td>
@@ -1086,7 +1046,7 @@
1086
1046
  </tr>
1087
1047
  <tr>
1088
1048
  <td><a href="https://npmjs.com/package/@postalsys/email-text-tools">@postalsys/email-text-tools</a></td>
1089
- <td>2.4.6</td>
1049
+ <td>2.4.7</td>
1090
1050
  <td>MIT</td>
1091
1051
  <td>Postal Systems O&#xDC;</td>
1092
1052
  <td></td>
@@ -1225,8 +1185,8 @@
1225
1185
  </td
1226
1186
  </tr>
1227
1187
  <tr>
1228
- <td><a href="https://npmjs.com/package/@sentry-internal/server-utils">@sentry-internal/server-utils</a></td>
1229
- <td>10.57.0</td>
1188
+ <td><a href="https://npmjs.com/package/@sentry/core">@sentry/core</a></td>
1189
+ <td>10.58.0</td>
1230
1190
  <td>MIT</td>
1231
1191
  <td>Sentry</td>
1232
1192
  <td></td>
@@ -1235,8 +1195,8 @@
1235
1195
  </td
1236
1196
  </tr>
1237
1197
  <tr>
1238
- <td><a href="https://npmjs.com/package/@sentry/core">@sentry/core</a></td>
1239
- <td>10.57.0</td>
1198
+ <td><a href="https://npmjs.com/package/@sentry/node-core">@sentry/node-core</a></td>
1199
+ <td>10.58.0</td>
1240
1200
  <td>MIT</td>
1241
1201
  <td>Sentry</td>
1242
1202
  <td></td>
@@ -1245,8 +1205,8 @@
1245
1205
  </td
1246
1206
  </tr>
1247
1207
  <tr>
1248
- <td><a href="https://npmjs.com/package/@sentry/node-core">@sentry/node-core</a></td>
1249
- <td>10.57.0</td>
1208
+ <td><a href="https://npmjs.com/package/@sentry/node">@sentry/node</a></td>
1209
+ <td>10.58.0</td>
1250
1210
  <td>MIT</td>
1251
1211
  <td>Sentry</td>
1252
1212
  <td></td>
@@ -1255,8 +1215,8 @@
1255
1215
  </td
1256
1216
  </tr>
1257
1217
  <tr>
1258
- <td><a href="https://npmjs.com/package/@sentry/node">@sentry/node</a></td>
1259
- <td>10.57.0</td>
1218
+ <td><a href="https://npmjs.com/package/@sentry/opentelemetry">@sentry/opentelemetry</a></td>
1219
+ <td>10.58.0</td>
1260
1220
  <td>MIT</td>
1261
1221
  <td>Sentry</td>
1262
1222
  <td></td>
@@ -1265,8 +1225,8 @@
1265
1225
  </td
1266
1226
  </tr>
1267
1227
  <tr>
1268
- <td><a href="https://npmjs.com/package/@sentry/opentelemetry">@sentry/opentelemetry</a></td>
1269
- <td>10.57.0</td>
1228
+ <td><a href="https://npmjs.com/package/@sentry/server-utils">@sentry/server-utils</a></td>
1229
+ <td>10.58.0</td>
1270
1230
  <td>MIT</td>
1271
1231
  <td>Sentry</td>
1272
1232
  <td></td>
@@ -1325,16 +1285,6 @@
1325
1285
  </td
1326
1286
  </tr>
1327
1287
  <tr>
1328
- <td><a href="https://npmjs.com/package/@standard-schema/spec">@standard-schema/spec</a></td>
1329
- <td>1.1.0</td>
1330
- <td>MIT</td>
1331
- <td>Colin McDonnell</td>
1332
- <td></td>
1333
- <td>
1334
- <a href="https://github.com/standard-schema/standard-schema">github.com/standard-schema/standard-schema</a>
1335
- </td
1336
- </tr>
1337
- <tr>
1338
1288
  <td><a href="https://npmjs.com/package/@types/esrecurse">@types/esrecurse</a></td>
1339
1289
  <td>4.3.1</td>
1340
1290
  <td>MIT</td>
@@ -1476,7 +1426,7 @@
1476
1426
  </tr>
1477
1427
  <tr>
1478
1428
  <td><a href="https://npmjs.com/package/acorn">acorn</a></td>
1479
- <td>8.16.0</td>
1429
+ <td>8.17.0</td>
1480
1430
  <td>MIT</td>
1481
1431
  <td></td>
1482
1432
  <td></td>
@@ -1826,7 +1776,7 @@
1826
1776
  </tr>
1827
1777
  <tr>
1828
1778
  <td><a href="https://npmjs.com/package/bullmq">bullmq</a></td>
1829
- <td>5.78.0</td>
1779
+ <td>5.78.1</td>
1830
1780
  <td>MIT</td>
1831
1781
  <td>Taskforce.sh Inc.</td>
1832
1782
  <td></td>
@@ -2406,7 +2356,7 @@
2406
2356
  </tr>
2407
2357
  <tr>
2408
2358
  <td><a href="https://npmjs.com/package/dompurify">dompurify</a></td>
2409
- <td>3.4.7</td>
2359
+ <td>3.4.10</td>
2410
2360
  <td>(MPL-2.0 OR Apache-2.0)</td>
2411
2361
  <td>Dr.-Ing. Mario Heiderich, Cure53</td>
2412
2362
  <td>mario@cure53.de</td>
@@ -2696,7 +2646,7 @@
2696
2646
  </tr>
2697
2647
  <tr>
2698
2648
  <td><a href="https://npmjs.com/package/eslint">eslint</a></td>
2699
- <td>10.4.1</td>
2649
+ <td>10.5.0</td>
2700
2650
  <td>MIT</td>
2701
2651
  <td>Nicholas C. Zakas</td>
2702
2652
  <td>nicholas+npm@nczconsulting.com</td>
@@ -3046,7 +2996,7 @@
3046
2996
  </tr>
3047
2997
  <tr>
3048
2998
  <td><a href="https://npmjs.com/package/form-data">form-data</a></td>
3049
- <td>4.0.5</td>
2999
+ <td>4.0.6</td>
3050
3000
  <td>MIT</td>
3051
3001
  <td>Felix Geisend&#xF6;rfer</td>
3052
3002
  <td>felix@debuggable.com</td>
@@ -3335,16 +3285,6 @@
3335
3285
  </td
3336
3286
  </tr>
3337
3287
  <tr>
3338
- <td><a href="https://npmjs.com/package/grunt-wait">grunt-wait</a></td>
3339
- <td>0.3.0</td>
3340
- <td>MIT</td>
3341
- <td>Bart van der Schoor</td>
3342
- <td>bartvanderschoor@gmail.com</td>
3343
- <td>
3344
- <a href="https://github.com/Bartvds/grunt-wait">github.com/Bartvds/grunt-wait</a>
3345
- </td
3346
- </tr>
3347
- <tr>
3348
3288
  <td><a href="https://npmjs.com/package/grunt">grunt</a></td>
3349
3289
  <td>1.6.2</td>
3350
3290
  <td>MIT</td>
@@ -3626,7 +3566,7 @@
3626
3566
  </tr>
3627
3567
  <tr>
3628
3568
  <td><a href="https://npmjs.com/package/imapflow">imapflow</a></td>
3629
- <td>1.4.0</td>
3569
+ <td>1.4.1</td>
3630
3570
  <td>MIT</td>
3631
3571
  <td>Postal Systems O&#xDC;</td>
3632
3572
  <td></td>
@@ -3896,17 +3836,7 @@
3896
3836
  </tr>
3897
3837
  <tr>
3898
3838
  <td><a href="https://npmjs.com/package/joi">joi</a></td>
3899
- <td>17.13.3</td>
3900
- <td>BSD-3-Clause</td>
3901
- <td></td>
3902
- <td></td>
3903
- <td>
3904
- <a href="https://github.com/hapijs/joi">github.com/hapijs/joi</a>
3905
- </td
3906
- </tr>
3907
- <tr>
3908
- <td><a href="https://npmjs.com/package/joi">joi</a></td>
3909
- <td>18.0.2</td>
3839
+ <td>17.13.4</td>
3910
3840
  <td>BSD-3-Clause</td>
3911
3841
  <td></td>
3912
3842
  <td></td>
@@ -4236,7 +4166,7 @@
4236
4166
  </tr>
4237
4167
  <tr>
4238
4168
  <td><a href="https://npmjs.com/package/mailparser">mailparser</a></td>
4239
- <td>3.9.9</td>
4169
+ <td>3.9.10</td>
4240
4170
  <td>MIT</td>
4241
4171
  <td>Andris Reinman</td>
4242
4172
  <td></td>
@@ -4596,17 +4526,7 @@
4596
4526
  </tr>
4597
4527
  <tr>
4598
4528
  <td><a href="https://npmjs.com/package/nodemailer">nodemailer</a></td>
4599
- <td>8.0.10</td>
4600
- <td>MIT-0</td>
4601
- <td>Andris Reinman</td>
4602
- <td></td>
4603
- <td>
4604
- <a href="https://github.com/nodemailer/nodemailer">github.com/nodemailer/nodemailer</a>
4605
- </td
4606
- </tr>
4607
- <tr>
4608
- <td><a href="https://npmjs.com/package/nodemailer">nodemailer</a></td>
4609
- <td>8.0.11</td>
4529
+ <td>9.0.0</td>
4610
4530
  <td>MIT-0</td>
4611
4531
  <td>Andris Reinman</td>
4612
4532
  <td></td>
@@ -5146,7 +5066,7 @@
5146
5066
  </tr>
5147
5067
  <tr>
5148
5068
  <td><a href="https://npmjs.com/package/pubface">pubface</a></td>
5149
- <td>1.1.2</td>
5069
+ <td>1.1.3</td>
5150
5070
  <td>MIT-0</td>
5151
5071
  <td>Postal Systems O&#xDC;</td>
5152
5072
  <td></td>
@@ -5526,7 +5446,7 @@
5526
5446
  </tr>
5527
5447
  <tr>
5528
5448
  <td><a href="https://npmjs.com/package/semver">semver</a></td>
5529
- <td>7.8.0</td>
5449
+ <td>7.8.1</td>
5530
5450
  <td>ISC</td>
5531
5451
  <td>GitHub Inc.</td>
5532
5452
  <td></td>
@@ -5636,7 +5556,7 @@
5636
5556
  </tr>
5637
5557
  <tr>
5638
5558
  <td><a href="https://npmjs.com/package/smtp-server">smtp-server</a></td>
5639
- <td>3.18.5</td>
5559
+ <td>3.19.0</td>
5640
5560
  <td>MIT-0</td>
5641
5561
  <td>Andris Reinman</td>
5642
5562
  <td></td>
@@ -6006,7 +5926,7 @@
6006
5926
  </tr>
6007
5927
  <tr>
6008
5928
  <td><a href="https://npmjs.com/package/tldts-core">tldts-core</a></td>
6009
- <td>7.4.2</td>
5929
+ <td>7.4.3</td>
6010
5930
  <td>MIT</td>
6011
5931
  <td>R&#xE9;mi Berson</td>
6012
5932
  <td></td>
@@ -6016,7 +5936,7 @@
6016
5936
  </tr>
6017
5937
  <tr>
6018
5938
  <td><a href="https://npmjs.com/package/tldts">tldts</a></td>
6019
- <td>7.4.2</td>
5939
+ <td>7.4.3</td>
6020
5940
  <td>MIT</td>
6021
5941
  <td>R&#xE9;mi Berson</td>
6022
5942
  <td></td>
@@ -6186,7 +6106,7 @@
6186
6106
  </tr>
6187
6107
  <tr>
6188
6108
  <td><a href="https://npmjs.com/package/undici">undici</a></td>
6189
- <td>6.26.0</td>
6109
+ <td>6.27.0</td>
6190
6110
  <td>MIT</td>
6191
6111
  <td></td>
6192
6112
  <td></td>
Binary file