fix(defer): Added new setting const:sender:defer_times ZMS 63 (#574)

* Added new setting const:sender:defer_times

* Bumped deps
This commit is contained in:
Andris Reinman 2023-12-14 14:00:31 +02:00 committed by GitHub
parent 1fe04810be
commit 9aab24267b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 842 additions and 738 deletions

View file

@ -2,6 +2,9 @@ module.exports = {
upgrade: true, upgrade: true,
reject: [ reject: [
// mongodb 5.x driver does not support callbacks, only promises // mongodb 5.x driver does not support callbacks, only promises
'mongodb' 'mongodb',
// no support for Node 16
'undici'
] ]
}; };

View file

@ -125,6 +125,18 @@ const SETTING_KEYS = [
type: 'number', type: 'number',
constKey: 'MAX_FILTERS', constKey: 'MAX_FILTERS',
schema: Joi.number() schema: Joi.number()
},
{
key: 'const:sender:defer_times',
name: 'Deferred email delay',
description: 'Comma separated list of times between deferred delivery attempts. Eg. "5m, 15m, 20m, 1h, 1h, 1h"',
type: 'string',
confValue: '5m, 7m, 8m, 25m, 75m, 2h, 4h, 4h, 4h, 4h, 4h, 4h, 4h, 4h, 4h, 4h, 4h',
schema: Joi.string()
.allow('')
.trim()
.pattern(/^\d+\s*[a-z]*(\s*,\s*\d+\s*[a-z]*)*$/)
} }
]; ];

1516
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -11,7 +11,8 @@
"runci": "npm run printconf && npm run runtest", "runci": "npm run printconf && npm run runtest",
"apidoc": "apidoc -i lib/api/ -o docs/api/", "apidoc": "apidoc -i lib/api/ -o docs/api/",
"show": "NODE_CONFIG_ONLY=true node server.js", "show": "NODE_CONFIG_ONLY=true node server.js",
"start": "node server.js" "start": "node server.js",
"update": "rm -rf node_modules package-lock.json && ncu -u && npm install"
}, },
"keywords": [ "keywords": [
"imap", "imap",
@ -27,16 +28,16 @@
"ajv": "8.12.0", "ajv": "8.12.0",
"chai": "4.3.10", "chai": "4.3.10",
"docsify-cli": "4.4.4", "docsify-cli": "4.4.4",
"eslint": "8.51.0", "eslint": "8.55.0",
"eslint-config-nodemailer": "1.2.0", "eslint-config-nodemailer": "1.2.0",
"eslint-config-prettier": "9.0.0", "eslint-config-prettier": "9.1.0",
"grunt": "1.6.1", "grunt": "1.6.1",
"grunt-cli": "1.4.3", "grunt-cli": "1.4.3",
"grunt-eslint": "24.3.0", "grunt-eslint": "24.3.0",
"grunt-mocha-test": "0.13.3", "grunt-mocha-test": "0.13.3",
"grunt-shell-spawn": "0.4.0", "grunt-shell-spawn": "0.4.0",
"grunt-wait": "0.3.0", "grunt-wait": "0.3.0",
"imapflow": "1.0.144", "imapflow": "1.0.147",
"mailparser": "3.6.5", "mailparser": "3.6.5",
"mocha": "10.2.0", "mocha": "10.2.0",
"request": "2.88.2", "request": "2.88.2",
@ -50,15 +51,15 @@
"@root/acme": "3.1.0", "@root/acme": "3.1.0",
"@root/csr": "0.8.1", "@root/csr": "0.8.1",
"accesscontrol": "2.2.1", "accesscontrol": "2.2.1",
"axios": "1.5.1", "axios": "1.6.2",
"base32.js": "0.1.0", "base32.js": "0.1.0",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"bson": "6.1.0", "bson": "6.2.0",
"bullmq": "4.12.4", "bullmq": "4.15.3",
"fido2-lib": "3.4.1", "fido2-lib": "3.4.3",
"gelf": "2.0.1", "gelf": "2.0.1",
"generate-password": "1.7.0", "generate-password": "1.7.1",
"hash-wasm": "4.10.0", "hash-wasm": "4.11.0",
"he": "1.2.0", "he": "1.2.0",
"html-to-text": "9.0.5", "html-to-text": "9.0.5",
"humanname": "0.2.2", "humanname": "0.2.2",
@ -74,7 +75,7 @@
"libmime": "5.2.1", "libmime": "5.2.1",
"libqp": "2.0.1", "libqp": "2.0.1",
"logic-query-parser": "0.0.5", "logic-query-parser": "0.0.5",
"mailauth": "4.5.2", "mailauth": "4.6.0",
"mailsplit": "5.4.0", "mailsplit": "5.4.0",
"mobileconfig": "2.4.0", "mobileconfig": "2.4.0",
"mongo-cursor-pagination": "8.1.3", "mongo-cursor-pagination": "8.1.3",
@ -82,12 +83,12 @@
"mongodb-extended-json": "1.11.1", "mongodb-extended-json": "1.11.1",
"msgpack5": "6.0.2", "msgpack5": "6.0.2",
"node-forge": "1.3.1", "node-forge": "1.3.1",
"node-html-parser": "6.1.10", "node-html-parser": "6.1.11",
"nodemailer": "6.9.6", "nodemailer": "6.9.7",
"npmlog": "7.0.1", "npmlog": "7.0.1",
"openpgp": "5.10.2", "openpgp": "5.11.0",
"pem-jwk": "2.0.0", "pem-jwk": "2.0.0",
"punycode": "2.3.0", "punycode": "2.3.1",
"pwnedpasswords": "1.0.6", "pwnedpasswords": "1.0.6",
"qrcode": "1.5.3", "qrcode": "1.5.3",
"restify": "11.1.0", "restify": "11.1.0",
@ -98,7 +99,7 @@
"seq-index": "1.1.0", "seq-index": "1.1.0",
"smtp-server": "3.13.0", "smtp-server": "3.13.0",
"speakeasy": "2.0.0", "speakeasy": "2.0.0",
"undici": "5.26.3", "undici": "5.28.2",
"unix-crypt-td-js": "1.1.4", "unix-crypt-td-js": "1.1.4",
"unixcrypt": "1.2.0", "unixcrypt": "1.2.0",
"uuid": "9.0.1", "uuid": "9.0.1",

View file

@ -191,8 +191,18 @@
if (setting.default) { if (setting.default) {
let defaultTextElm = document.createElement('code'); let defaultTextElm = document.createElement('code');
defaultTextElm.textContent = formatNumber(setting.default, setting.type);
defaultTdElm.title = setting.description; let formattedValue = formatNumber(setting.default, setting.type);
let settingTitle = setting.description;
if (typeof formattedValue !== 'string' || formattedValue.length < 12) {
defaultTextElm.textContent = formattedValue;
} else {
defaultTextElm.textContent = formattedValue.substr(0, 8) + '…';
settingTitle += '\nDefault: "' + formattedValue + '"';
}
defaultTdElm.title = settingTitle;
defaultTdElm.appendChild(defaultTextElm); defaultTdElm.appendChild(defaultTextElm);
} else { } else {
defaultTdElm.textContent = ' '; defaultTdElm.textContent = ' ';