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
@@ -1,7 +1,7 @@
1
1
  msgid ""
2
2
  msgstr ""
3
3
  "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2026-03-31 08:47+0000\n"
4
+ "POT-Creation-Date: 2026-06-15 18:35+0000\n"
5
5
  "PO-Revision-Date: \n"
6
6
  "Last-Translator: \n"
7
7
  "Language-Team: \n"
@@ -12,7 +12,7 @@ msgstr ""
12
12
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
13
13
  "X-Generator: Poedit 3.9\n"
14
14
 
15
- #: views/error.hbs:4 workers/api.js:7103
15
+ #: views/error.hbs:4 workers/api.js:2957
16
16
  msgid "Something went wrong"
17
17
  msgstr "Un problème est survenu"
18
18
 
@@ -28,7 +28,7 @@ msgstr "Retour"
28
28
  msgid "Dashboard"
29
29
  msgstr "Tableau de bord"
30
30
 
31
- #: views/config/license.hbs:45 lib/routes-ui.js:2497
31
+ #: views/config/license.hbs:45 lib/ui-routes/oauth-config-routes.js:217
32
32
  msgid "%d day"
33
33
  msgid_plural "%d days"
34
34
  msgstr[0] "%d jour"
@@ -38,6 +38,35 @@ msgstr[1] "%d jours"
38
38
  msgid "Click <a href=\"%s\">here</a> to continue&mldr;"
39
39
  msgstr "Cliquez sur <a href=\"%s\">ici</a> pour continuer&mldr;"
40
40
 
41
+ #: views/oauth-scope-error.hbs:2
42
+ msgid "Insufficient Permissions"
43
+ msgstr "Autorisations insuffisantes"
44
+
45
+ #: views/oauth-scope-error.hbs:8
46
+ msgid ""
47
+ "All requested permissions are required for this service to function "
48
+ "properly. Some required permissions were not granted during sign-in."
49
+ msgstr ""
50
+ "Toutes les autorisations demandées sont nécessaires au bon fonctionnement de "
51
+ "ce service. Certaines autorisations requises n'ont pas été accordées lors de "
52
+ "la connexion."
53
+
54
+ #: views/oauth-scope-error.hbs:12
55
+ msgid "The following permissions were not granted:"
56
+ msgstr "Les autorisations suivantes n'ont pas été accordées :"
57
+
58
+ #: views/oauth-scope-error.hbs:21
59
+ msgid ""
60
+ "Please try again and make sure all permission checkboxes are selected on the "
61
+ "Google consent screen."
62
+ msgstr ""
63
+ "Veuillez réessayer et vous assurer que toutes les cases d'autorisation sont "
64
+ "cochées sur l'écran de consentement de Google."
65
+
66
+ #: views/oauth-scope-error.hbs:27
67
+ msgid "Try Again"
68
+ msgstr "Essayer de nouveau"
69
+
41
70
  #: views/unsubscribe.hbs:3 views/unsubscribe.hbs:62 views/unsubscribe.hbs:85
42
71
  msgid "Unsubscribe"
43
72
  msgstr "Se désabonner"
@@ -82,35 +111,6 @@ msgstr "Adresse e-mail"
82
111
  msgid "Enter your email address"
83
112
  msgstr "Entrez votre adresse e-mail"
84
113
 
85
- #: views/oauth-scope-error.hbs:2
86
- msgid "Insufficient Permissions"
87
- msgstr "Autorisations insuffisantes"
88
-
89
- #: views/oauth-scope-error.hbs:8
90
- msgid ""
91
- "All requested permissions are required for this service to function properly. "
92
- "Some required permissions were not granted during sign-in."
93
- msgstr ""
94
- "Toutes les autorisations demandées sont nécessaires au bon fonctionnement de "
95
- "ce service. Certaines autorisations requises n'ont pas été accordées lors de "
96
- "la connexion."
97
-
98
- #: views/oauth-scope-error.hbs:12
99
- msgid "The following permissions were not granted:"
100
- msgstr "Les autorisations suivantes n'ont pas été accordées :"
101
-
102
- #: views/oauth-scope-error.hbs:21
103
- msgid ""
104
- "Please try again and make sure all permission checkboxes are selected on the "
105
- "Google consent screen."
106
- msgstr ""
107
- "Veuillez réessayer et vous assurer que toutes les cases d'autorisation sont "
108
- "cochées sur l'écran de consentement de Google."
109
-
110
- #: views/oauth-scope-error.hbs:27
111
- msgid "Try Again"
112
- msgstr "Essayer de nouveau"
113
-
114
114
  #: views/accounts/register/imap.hbs:11
115
115
  msgid "Your name"
116
116
  msgstr "Votre nom"
@@ -188,12 +188,12 @@ msgstr "TLS pour IMAP"
188
188
 
189
189
  #: views/accounts/register/imap-server.hbs:100
190
190
  msgid ""
191
- "TLS (also known as SSL) is usually only needed when using port 993. For other "
192
- "ports EmailEngine falls back to using STARTTLS based encryption."
191
+ "TLS (also known as SSL) is usually only needed when using port 993. For "
192
+ "other ports EmailEngine falls back to using STARTTLS based encryption."
193
193
  msgstr ""
194
194
  "TLS (également connu sous le nom de SSL) n'est généralement nécessaire que "
195
- "lors de l'utilisation du port 993. Pour les autres ports, EmailEngine revient "
196
- "à l'utilisation du cryptage basé sur STARTTLS."
195
+ "lors de l'utilisation du port 993. Pour les autres ports, EmailEngine "
196
+ "revient à l'utilisation du cryptage basé sur STARTTLS."
197
197
 
198
198
  #: views/accounts/register/imap-server.hbs:102
199
199
  #: views/accounts/register/imap-server.hbs:193
@@ -210,12 +210,12 @@ msgstr "TLS pour SMTP"
210
210
 
211
211
  #: views/accounts/register/imap-server.hbs:191
212
212
  msgid ""
213
- "TLS (also known as SSL) is usually only needed when using port 465. For other "
214
- "ports EmailEngine falls back to using STARTTLS based encryption."
213
+ "TLS (also known as SSL) is usually only needed when using port 465. For "
214
+ "other ports EmailEngine falls back to using STARTTLS based encryption."
215
215
  msgstr ""
216
216
  "TLS (également connu sous le nom de SSL) n'est généralement nécessaire que "
217
- "lors de l'utilisation du port 465. Pour les autres ports, EmailEngine revient "
218
- "à l'utilisation du cryptage basé sur STARTTLS."
217
+ "lors de l'utilisation du port 465. Pour les autres ports, EmailEngine "
218
+ "revient à l'utilisation du cryptage basé sur STARTTLS."
219
219
 
220
220
  #: views/accounts/register/imap-server.hbs:209
221
221
  msgid "Verify connection"
@@ -264,156 +264,153 @@ msgstr "Impossible de se connecter au serveur SMTP"
264
264
  msgid "Request failed."
265
265
  msgstr "La requête a échoué."
266
266
 
267
- #: lib/routes-ui.js:384 lib/ui-routes/account-routes.js:60
268
- msgid "Delegated"
269
- msgstr "Délégué"
270
-
271
- #: lib/routes-ui.js:385 lib/ui-routes/account-routes.js:61
272
- msgid "Using credentials from \"%s\""
273
- msgstr "Utilisation des informations d'identification de \"%s\""
274
-
275
- #: lib/routes-ui.js:435 lib/ui-routes/account-routes.js:111
276
- msgid ""
277
- "Connection timed out. This usually occurs if you are behind a firewall or "
278
- "connecting to the wrong port."
279
- msgstr ""
280
- "La connexion a expiré. Cela se produit généralement si vous êtes derrière un "
281
- "pare-feu ou si vous vous connectez au mauvais port."
282
-
283
- #: lib/routes-ui.js:438 lib/ui-routes/account-routes.js:114
284
- msgid "The server unexpectedly closed the connection."
285
- msgstr "Le serveur a fermé la connexion de manière inattendue."
286
-
287
- #: lib/routes-ui.js:441 lib/ui-routes/account-routes.js:117
288
- msgid ""
289
- "The server unexpectedly closed the connection. This usually happens when "
290
- "attempting to connect to a TLS port without TLS enabled."
291
- msgstr ""
292
- "Le serveur a fermé la connexion de manière inattendue. Cela se produit "
293
- "généralement lors d'une tentative de connexion à un port TLS sans que le "
294
- "protocole TLS soit activé."
295
-
296
- #: lib/routes-ui.js:446 lib/ui-routes/account-routes.js:122
267
+ #: lib/autodetect-imap-settings.js:80
297
268
  msgid ""
298
- "The server refused the connection. This typically occurs if the server is not "
299
- "running, is overloaded, or you are connecting to the wrong host or port."
269
+ "Microsoft has disabled password-based sign-ins (including app passwords) for "
270
+ "Outlook.com, Hotmail.com, and Microsoft 365 email accounts. To continue, "
271
+ "please use the \"Sign in with Microsoft\" button to securely connect your "
272
+ "account."
300
273
  msgstr ""
301
- "Le serveur a refusé la connexion. Cela se produit généralement si le serveur "
302
- "ne fonctionne pas, s'il est surchargé ou si vous vous connectez au mauvais "
303
- "hôte ou au mauvais port."
274
+ "Microsoft a désactivé les connexions basées sur un mot de passe (y compris "
275
+ "les mots de passe des applications) pour les comptes de messagerie "
276
+ "Outlook.com, Hotmail.com et Microsoft 365. Pour continuer, veuillez utiliser "
277
+ "le bouton \"Sign in with Microsoft\" pour connecter votre compte en toute "
278
+ "sécurité."
304
279
 
305
- #: lib/routes-ui.js:573
306
- msgid "Invalid API key for OpenAI"
307
- msgstr "Clé API invalide pour OpenAI"
280
+ #: lib/tools.js:975 lib/ui-routes/unsubscribe-routes.js:28
281
+ msgid "Invalid input"
282
+ msgstr "Entrée invalide"
308
283
 
309
- #: lib/routes-ui.js:2490
310
- msgid "Unknown"
311
- msgstr "Inconnu"
284
+ #: lib/tools.js:1742
285
+ msgid "Signature validation failed"
286
+ msgstr "La validation de la signature a échoué"
312
287
 
313
- #: lib/routes-ui.js:2499
314
- msgid "Indefinite"
315
- msgstr "Indéfini"
288
+ #: lib/tools.js:1751 lib/tools.js:1756
289
+ msgid "Invalid or expired account setup URL"
290
+ msgstr "URL de configuration du compte invalide ou expirée"
316
291
 
317
- #: lib/routes-ui.js:5133 lib/routes-ui.js:5168 lib/routes-ui.js:5283
318
- #: lib/routes-ui.js:5330 lib/routes-ui.js:5577 lib/routes-ui.js:5613
319
- #: workers/api.js:2279 workers/api.js:2607 lib/ui-routes/account-routes.js:554
320
- #: lib/ui-routes/account-routes.js:590 lib/ui-routes/account-routes.js:707
321
- #: lib/ui-routes/account-routes.js:754 lib/ui-routes/account-routes.js:1003
322
- #: lib/ui-routes/account-routes.js:1039
292
+ #: lib/ui-routes/account-routes.js:402 lib/ui-routes/account-routes.js:437
293
+ #: lib/ui-routes/account-routes.js:552 lib/ui-routes/account-routes.js:599
294
+ #: lib/ui-routes/account-routes.js:846 lib/ui-routes/account-routes.js:882
295
+ #: workers/api.js:2158 workers/api.js:2486
323
296
  msgid "Email Account Setup"
324
297
  msgstr "Configuration du compte de messagerie"
325
298
 
326
- #: lib/routes-ui.js:5193 lib/routes-ui.js:5226 lib/routes-ui.js:8186
327
- #: lib/ui-routes/account-routes.js:615 lib/ui-routes/account-routes.js:649
299
+ #: lib/ui-routes/account-routes.js:462 lib/ui-routes/account-routes.js:495
300
+ #: lib/ui-routes/unsubscribe-routes.js:65
328
301
  msgid "Invalid request. Check your input and try again."
329
302
  msgstr "Requête invalide. Vérifiez vos informations et réessayez."
330
303
 
331
- #: lib/routes-ui.js:5386 lib/routes-ui.js:5397
332
- #: lib/ui-routes/account-routes.js:811 lib/ui-routes/account-routes.js:822
304
+ #: lib/ui-routes/account-routes.js:592 lib/ui-routes/account-routes.js:875
305
+ msgid "Couldn't set up account. Try again."
306
+ msgstr "Impossible de créer un compte. Veuillez réessayer."
307
+
308
+ #: lib/ui-routes/account-routes.js:655 lib/ui-routes/account-routes.js:666
333
309
  #: lib/ui-routes/admin-entities-routes.js:2020
334
310
  msgid "Server hostname was not found"
335
311
  msgstr "Le nom d'hôte du serveur est introuvable"
336
312
 
337
- #: lib/routes-ui.js:5389 lib/routes-ui.js:5400
338
- #: lib/ui-routes/account-routes.js:814 lib/ui-routes/account-routes.js:825
313
+ #: lib/ui-routes/account-routes.js:658 lib/ui-routes/account-routes.js:669
339
314
  #: lib/ui-routes/admin-entities-routes.js:2023
340
315
  msgid "Invalid username or password"
341
316
  msgstr "Nom d'utilisateur ou mot de passe invalide"
342
317
 
343
- #: lib/routes-ui.js:5403 lib/ui-routes/account-routes.js:828
318
+ #: lib/ui-routes/account-routes.js:672
344
319
  #: lib/ui-routes/admin-entities-routes.js:2026
345
320
  msgid "Authentication credentials were not provided"
346
321
  msgstr "Les informations d'authentification n'ont pas été fournies"
347
322
 
348
- #: lib/routes-ui.js:5406 lib/ui-routes/account-routes.js:831
323
+ #: lib/ui-routes/account-routes.js:675
349
324
  #: lib/ui-routes/admin-entities-routes.js:2029
350
325
  msgid "OAuth2 authentication failed"
351
326
  msgstr "Échec de l'authentification OAuth2"
352
327
 
353
- #: lib/routes-ui.js:5409 lib/routes-ui.js:5413
354
- #: lib/ui-routes/account-routes.js:834 lib/ui-routes/account-routes.js:838
328
+ #: lib/ui-routes/account-routes.js:678 lib/ui-routes/account-routes.js:682
355
329
  #: lib/ui-routes/admin-entities-routes.js:2032
356
330
  #: lib/ui-routes/admin-entities-routes.js:2036
357
331
  msgid "TLS protocol error"
358
332
  msgstr "Erreur de protocole TLS"
359
333
 
360
- #: lib/routes-ui.js:5417 lib/ui-routes/account-routes.js:842
334
+ #: lib/ui-routes/account-routes.js:686
361
335
  #: lib/ui-routes/admin-entities-routes.js:2040
362
336
  msgid "Connection timed out"
363
337
  msgstr "Connexion expirée"
364
338
 
365
- #: lib/routes-ui.js:5420 lib/ui-routes/account-routes.js:845
339
+ #: lib/ui-routes/account-routes.js:689
366
340
  #: lib/ui-routes/admin-entities-routes.js:2043
367
341
  msgid "Could not connect to server"
368
342
  msgstr "Impossible de se connecter au serveur"
369
343
 
370
- #: lib/routes-ui.js:5423 lib/ui-routes/account-routes.js:848
344
+ #: lib/ui-routes/account-routes.js:692
371
345
  #: lib/ui-routes/admin-entities-routes.js:2046
372
346
  msgid "Unexpected server response"
373
347
  msgstr "Réponse inattendue du serveur"
374
348
 
375
- #: lib/routes-ui.js:8149 lib/tools.js:950
376
- msgid "Invalid input"
377
- msgstr "Entrée invalide"
349
+ #: lib/ui-routes/admin-config-routes.js:145
350
+ msgid "Invalid API key for OpenAI"
351
+ msgstr "Clé API invalide pour OpenAI"
378
352
 
379
- #: lib/routes-ui.js:8159 lib/routes-ui.js:8277 lib/routes-ui.js:8294
380
- #: lib/routes-ui.js:8330
381
- msgid "Subscription Management"
382
- msgstr "Gestion des abonnements"
353
+ #: lib/ui-routes/oauth-config-routes.js:210
354
+ msgid "Unknown"
355
+ msgstr "Inconnu"
383
356
 
384
- #: workers/api.js:7102 workers/api.js:7219
385
- msgid "Requested page not found"
386
- msgstr "La page demandée n'a pas été trouvée"
357
+ #: lib/ui-routes/oauth-config-routes.js:219
358
+ msgid "Indefinite"
359
+ msgstr "Indéfini"
387
360
 
388
- #: lib/tools.js:1653
389
- msgid "Signature validation failed"
390
- msgstr "La validation de la signature a échoué"
361
+ #: lib/ui-routes/route-helpers.js:81
362
+ msgid "Delegated"
363
+ msgstr "Délégué"
391
364
 
392
- #: lib/tools.js:1662 lib/tools.js:1667
393
- msgid "Invalid or expired account setup URL"
394
- msgstr "URL de configuration du compte invalide ou expirée"
365
+ #: lib/ui-routes/route-helpers.js:82
366
+ msgid "Using credentials from \"%s\""
367
+ msgstr "Utilisation des informations d'identification de \"%s\""
395
368
 
396
- #: lib/autodetect-imap-settings.js:80
369
+ #: lib/ui-routes/route-helpers.js:132
397
370
  msgid ""
398
- "Microsoft has disabled password-based sign-ins (including app passwords) for "
399
- "Outlook.com, Hotmail.com, and Microsoft 365 email accounts. To continue, "
400
- "please use the \"Sign in with Microsoft\" button to securely connect your "
401
- "account."
371
+ "Connection timed out. This usually occurs if you are behind a firewall or "
372
+ "connecting to the wrong port."
402
373
  msgstr ""
403
- "Microsoft a désactivé les connexions basées sur un mot de passe (y compris "
404
- "les mots de passe des applications) pour les comptes de messagerie "
405
- "Outlook.com, Hotmail.com et Microsoft 365. Pour continuer, veuillez utiliser "
406
- "le bouton \"Sign in with Microsoft\" pour connecter votre compte en toute "
407
- "sécurité."
374
+ "La connexion a expiré. Cela se produit généralement si vous êtes derrière un "
375
+ "pare-feu ou si vous vous connectez au mauvais port."
408
376
 
409
- #: lib/ui-routes/account-routes.js:747 lib/ui-routes/account-routes.js:1032
410
- msgid "Couldn't set up account. Try again."
411
- msgstr "Impossible de créer un compte. Veuillez réessayer."
377
+ #: lib/ui-routes/route-helpers.js:135
378
+ msgid "The server unexpectedly closed the connection."
379
+ msgstr "Le serveur a fermé la connexion de manière inattendue."
412
380
 
413
- #, fuzzy
414
- #~| msgid "Failed to process request"
415
- #~ msgid "Couldn't process request. Try again."
416
- #~ msgstr "Le traitement de la demande a échoué."
381
+ #: lib/ui-routes/route-helpers.js:138
382
+ msgid ""
383
+ "The server unexpectedly closed the connection. This usually happens when "
384
+ "attempting to connect to a TLS port without TLS enabled."
385
+ msgstr ""
386
+ "Le serveur a fermé la connexion de manière inattendue. Cela se produit "
387
+ "généralement lors d'une tentative de connexion à un port TLS sans que le "
388
+ "protocole TLS soit activé."
389
+
390
+ #: lib/ui-routes/route-helpers.js:143
391
+ msgid ""
392
+ "The server refused the connection. This typically occurs if the server is "
393
+ "not running, is overloaded, or you are connecting to the wrong host or port."
394
+ msgstr ""
395
+ "Le serveur a refusé la connexion. Cela se produit généralement si le serveur "
396
+ "ne fonctionne pas, s'il est surchargé ou si vous vous connectez au mauvais "
397
+ "hôte ou au mauvais port."
398
+
399
+ #: lib/ui-routes/unsubscribe-routes.js:38
400
+ #: lib/ui-routes/unsubscribe-routes.js:156
401
+ #: lib/ui-routes/unsubscribe-routes.js:173
402
+ #: lib/ui-routes/unsubscribe-routes.js:209
403
+ msgid "Subscription Management"
404
+ msgstr "Gestion des abonnements"
405
+
406
+ #: lib/ui-routes/unsubscribe-routes.js:167
407
+ #: lib/ui-routes/unsubscribe-routes.js:202
408
+ msgid "Couldn't process request. Try again."
409
+ msgstr "Impossible de traiter la demande. Veuillez réessayer."
410
+
411
+ #: workers/api.js:2956 workers/api.js:3071
412
+ msgid "Requested page not found"
413
+ msgstr "La page demandée n'a pas été trouvée"
417
414
 
418
415
  #~ msgid "Unknown OAuth provider"
419
416
  #~ msgstr "Fournisseur OAuth inconnu"
Binary file