diff --git a/lib/routes-ui.js b/lib/routes-ui.js index f70fef1e..cb16e8a7 100644 --- a/lib/routes-ui.js +++ b/lib/routes-ui.js @@ -4944,7 +4944,7 @@ return payload;`) let subexp = await settings.get('subexp'); let expiresDays; - if (subexp) { + if (subexp && !(request.app.licenseInfo && request.app.licenseInfo.details && request.app.licenseInfo.details.lt)) { let delayMs = new Date(subexp) - Date.now(); expiresDays = Math.max(Math.ceil(delayMs / (24 * 3600 * 1000)), 0); } diff --git a/lib/tools.js b/lib/tools.js index 5f067542..61ed2f7a 100644 --- a/lib/tools.js +++ b/lib/tools.js @@ -669,6 +669,10 @@ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEV3QUiYsp13nD9suD1/ZkEXnuMoSg trial: rawLicenseData.t }; + if (rawLicenseData.l) { + licenseData.lt = true; + } + if (rawLicenseData.e) { if (Date.now() > rawLicenseData.e) { let err = new Error('License expired'); diff --git a/sbom.json b/sbom.json index d7bf3914..f85df664 100644 --- a/sbom.json +++ b/sbom.json @@ -1 +1 @@ -{"bomFormat":"CycloneDX","specVersion":"1.4","version":1,"metadata":{"timestamp":"2024-03-07T12:19:24Z","tools":[{"vendor":"advanced-security","name":"gh-sbom","version":"0.0.9"}],"licenses":[{"expression":"CC0-1.0"}]},"components":[{"type":"library","group":"@hapi","name":"crumb","version":"9.0.1","purl":"pkg:npm/%40hapi/crumb@9.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@hapi","name":"vision","version":"7.0.3","purl":"pkg:npm/%40hapi/vision@7.0.3","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"eslint","version":"8.57.0","purl":"pkg:npm/eslint@8.57.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"hapi-pino","version":"12.1.0","purl":"pkg:npm/hapi-pino@12.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"jquery","version":"3.7.1","purl":"pkg:npm/jquery@3.7.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"minimist","version":"1.2.8","purl":"pkg:npm/minimist@1.2.8","licenses":[{"expression":"MIT"}]},{"type":"library","name":"bull-arena","version":"4.2.0","purl":"pkg:npm/bull-arena@4.2.0"},{"type":"library","name":"bullmq","version":"5.4.2","purl":"pkg:npm/bullmq@5.4.2"},{"type":"library","name":"encoding-japanese","version":"2.0.0","purl":"pkg:npm/encoding-japanese@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"ioredfour","version":"1.3.0-ioredis-07","purl":"pkg:npm/ioredfour@1.3.0-ioredis-07","licenses":[{"expression":"MIT"}]},{"type":"library","name":"smtp-server","version":"3.13.3","purl":"pkg:npm/smtp-server@3.13.3"},{"type":"library","name":"grunt-eslint","version":"24.3.0","purl":"pkg:npm/grunt-eslint@24.3.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"imapflow","version":"1.0.155","purl":"pkg:npm/imapflow@1.0.155"},{"type":"library","name":"marked","version":"9.1.6","purl":"pkg:npm/marked@9.1.6","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pubface","version":"1.0.9","purl":"pkg:npm/pubface@1.0.9"},{"type":"library","group":"@elastic","name":"elasticsearch","version":"8.12.2","purl":"pkg:npm/%40elastic/elasticsearch@8.12.2"},{"type":"library","name":"base32.js","version":"0.1.0","purl":"pkg:npm/base32.js@0.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"libqp","version":"2.1.0","purl":"pkg:npm/libqp@2.1.0"},{"type":"library","name":"mailparser","version":"3.6.9","purl":"pkg:npm/mailparser@3.6.9"},{"type":"library","name":"murmurhash","version":"2.0.1","purl":"pkg:npm/murmurhash@2.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"bell","version":"13.0.1","purl":"pkg:npm/%40hapi/bell@13.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@phc","name":"pbkdf2","version":"1.1.14","purl":"pkg:npm/%40phc/pbkdf2@1.1.14","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"joi-messages","version":"1.0.1","purl":"pkg:npm/%40postalsys/joi-messages@1.0.1"},{"type":"library","name":"html-to-text","version":"9.0.5","purl":"pkg:npm/html-to-text@9.0.5","licenses":[{"expression":"MIT"}]},{"type":"library","name":"nodemailer","version":"6.9.11","purl":"pkg:npm/nodemailer@6.9.11","licenses":[{"expression":"MIT-0"}]},{"type":"library","name":"psl","version":"1.9.0","purl":"pkg:npm/psl@1.9.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"uuid","version":"9.0.1","purl":"pkg:npm/uuid@9.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pkg","version":"5.8.1","purl":"pkg:npm/pkg@5.8.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"xml2js","version":"0.6.2","purl":"pkg:npm/xml2js@0.6.2","licenses":[{"expression":"MIT"}]},{"type":"library","name":"he","version":"1.2.0","purl":"pkg:npm/he@1.2.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"nanoid","version":"3.3.4","purl":"pkg:npm/nanoid@3.3.4","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"boom","version":"10.0.1","purl":"pkg:npm/%40hapi/boom@10.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"eslint-config-nodemailer","version":"1.2.0","purl":"pkg:npm/eslint-config-nodemailer@1.2.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"express","version":"4.18.3","purl":"pkg:npm/express@4.18.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"grunt-cli","version":"1.4.3","purl":"pkg:npm/grunt-cli@1.4.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"handlebars","version":"4.7.8","purl":"pkg:npm/handlebars@4.7.8","licenses":[{"expression":"MIT"}]},{"type":"library","name":"libmime","version":"5.3.4","purl":"pkg:npm/libmime@5.3.4"},{"type":"library","name":"license-checker","version":"25.0.1","purl":"pkg:npm/license-checker@25.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"qrcode","version":"1.5.3","purl":"pkg:npm/qrcode@1.5.3","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"hecks","version":"3.0.0-fork.3","purl":"pkg:npm/%40postalsys/hecks@3.0.0-fork.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"humanize","version":"0.0.9","purl":"pkg:npm/humanize@0.0.9","licenses":[{"expression":"MIT"}]},{"type":"library","name":"startbootstrap-sb-admin-2","version":"3.3.7","purl":"pkg:npm/startbootstrap-sb-admin-2@3.3.7","licenses":[{"expression":"MIT"}]},{"type":"library","name":"undici","version":"5.28.3","purl":"pkg:npm/undici@5.28.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"eslint-config-prettier","version":"9.1.0","purl":"pkg:npm/eslint-config-prettier@9.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"iconv-lite","version":"0.6.3","purl":"pkg:npm/iconv-lite@0.6.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"msgpack5","version":"6.0.2","purl":"pkg:npm/msgpack5@6.0.2","licenses":[{"expression":"MIT"}]},{"type":"library","name":"prom-client","version":"15.1.0","purl":"pkg:npm/prom-client@15.1.0","licenses":[{"expression":"Apache-2.0"}]},{"type":"library","group":"@postalsys","name":"templates","version":"1.0.8","purl":"pkg:npm/%40postalsys/templates@1.0.8"},{"type":"library","name":"compare-versions","version":"6.1.0","purl":"pkg:npm/compare-versions@6.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"eerawlog","version":"1.5.1","purl":"pkg:npm/eerawlog@1.5.1","licenses":[{"expression":"ISC"}]},{"type":"library","name":"hapi-swagger","version":"17.2.1","purl":"pkg:npm/hapi-swagger@17.2.1"},{"type":"library","name":"ipaddr.js","version":"2.1.0","purl":"pkg:npm/ipaddr.js@2.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"jsxgettext","version":"0.11.0","purl":"pkg:npm/jsxgettext@0.11.0","licenses":[{"expression":"MPL-2.0"}]},{"type":"library","group":"@postalsys","name":"certs","version":"1.0.8","purl":"pkg:npm/%40postalsys/certs@1.0.8"},{"type":"library","name":"dotenv","version":"16.4.5","purl":"pkg:npm/dotenv@16.4.5","licenses":[{"expression":"BSD-2-Clause"}]},{"type":"library","name":"hapi-auth-bearer-token","version":"8.0.0","purl":"pkg:npm/hapi-auth-bearer-token@8.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pino","version":"8.19.0","purl":"pkg:npm/pino@8.19.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"resedit","version":"2.0.0","purl":"pkg:npm/resedit@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"wild-config","version":"1.7.1","purl":"pkg:npm/wild-config@1.7.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"email-text-tools","version":"2.1.7","purl":"pkg:npm/%40postalsys/email-text-tools@2.1.7"},{"type":"library","name":"node-gettext","version":"3.0.0","purl":"pkg:npm/node-gettext@3.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pino-pretty","version":"10.3.1","purl":"pkg:npm/pino-pretty@10.3.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"speakeasy","version":"2.0.0","purl":"pkg:npm/speakeasy@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"timezones-list","version":"3.0.3","purl":"pkg:npm/timezones-list@3.0.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"xgettext-template","version":"5.0.0","purl":"pkg:npm/xgettext-template@5.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"inert","version":"7.1.0","purl":"pkg:npm/%40hapi/inert@7.1.0","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"ace-builds","version":"1.32.7","purl":"pkg:npm/ace-builds@1.32.7"},{"type":"library","name":"chai","version":"4.3.10","purl":"pkg:npm/chai@4.3.10","licenses":[{"expression":"MIT"}]},{"type":"library","name":"grunt","version":"1.6.1","purl":"pkg:npm/grunt@1.6.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"mailsplit","version":"5.4.0","purl":"pkg:npm/mailsplit@5.4.0","licenses":[{"expression":"EUPL-1.1+ OR MIT OR (EUPL-1.1+ AND MIT)"}]},{"type":"library","group":"@bugsnag","name":"js","version":"7.22.4","purl":"pkg:npm/%40bugsnag/js@7.22.4"},{"type":"library","group":"@hapi","name":"hapi","version":"21.3.3","purl":"pkg:npm/%40hapi/hapi@21.3.3"},{"type":"library","name":"exponential-backoff","version":"3.1.1","purl":"pkg:npm/exponential-backoff@3.1.1","licenses":[{"expression":"Apache-2.0"}]},{"type":"library","name":"gettext-parser","version":"7.0.1","purl":"pkg:npm/gettext-parser@7.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"ical.js","version":"1.5.0","purl":"pkg:npm/ical.js@1.5.0","licenses":[{"expression":"MPL-2.0"}]},{"type":"library","name":"punycode","version":"2.3.1","purl":"pkg:npm/punycode@2.3.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"cookie","version":"12.0.1","purl":"pkg:npm/%40hapi/cookie@12.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@postalsys","name":"email-ai-tools","version":"1.8.6","purl":"pkg:npm/%40postalsys/email-ai-tools@1.8.6"},{"type":"library","name":"ioredis","version":"5.3.2","purl":"pkg:npm/ioredis@5.3.2","licenses":[{"expression":"MIT"}]},{"type":"library","name":"joi","version":"17.12.2","purl":"pkg:npm/joi@17.12.2","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"libbase64","version":"1.3.0","purl":"pkg:npm/libbase64@1.3.0"},{"type":"library","name":"socks","version":"2.8.1","purl":"pkg:npm/socks@2.8.1"},{"type":"library","group":"docker","name":"setup-qemu-action","version":"3","purl":"pkg:github/docker/setup-qemu-action@3"},{"type":"library","group":"actions","name":"setup-node","version":"3","purl":"pkg:github/actions/setup-node@3"},{"type":"library","group":"actions","name":"setup-node","version":"1","purl":"pkg:github/actions/setup-node@1"},{"type":"library","group":"actions","name":"checkout","version":"4","purl":"pkg:github/actions/checkout@4"},{"type":"library","group":"shimataro","name":"ssh-key-action","version":"2","purl":"pkg:github/shimataro/ssh-key-action@2"},{"type":"library","group":"docker","name":"build-push-action","version":"5","purl":"pkg:github/docker/build-push-action@5"},{"type":"library","group":"google-github-actions","name":"release-please-action","version":"3","purl":"pkg:github/google-github-actions/release-please-action@3"},{"type":"library","group":"docker","name":"login-action","version":"3","purl":"pkg:github/docker/login-action@3"},{"type":"library","group":"docker","name":"metadata-action","version":"5","purl":"pkg:github/docker/metadata-action@5"},{"type":"library","group":"docker","name":"setup-buildx-action","version":"3","purl":"pkg:github/docker/setup-buildx-action@3"}]} +{"bomFormat":"CycloneDX","specVersion":"1.4","version":1,"metadata":{"timestamp":"2024-03-08T09:05:15Z","tools":[{"vendor":"advanced-security","name":"gh-sbom","version":"0.0.9"}],"licenses":[{"expression":"CC0-1.0"}]},"components":[{"type":"library","group":"google-github-actions","name":"release-please-action","version":"3","purl":"pkg:github/google-github-actions/release-please-action@3"},{"type":"library","group":"actions","name":"checkout","version":"4","purl":"pkg:github/actions/checkout@4"},{"type":"library","group":"shimataro","name":"ssh-key-action","version":"2","purl":"pkg:github/shimataro/ssh-key-action@2"},{"type":"library","group":"docker","name":"login-action","version":"3","purl":"pkg:github/docker/login-action@3"},{"type":"library","group":"docker","name":"metadata-action","version":"5","purl":"pkg:github/docker/metadata-action@5"},{"type":"library","group":"docker","name":"build-push-action","version":"5","purl":"pkg:github/docker/build-push-action@5"},{"type":"library","group":"docker","name":"setup-buildx-action","version":"3","purl":"pkg:github/docker/setup-buildx-action@3"},{"type":"library","group":"docker","name":"setup-qemu-action","version":"3","purl":"pkg:github/docker/setup-qemu-action@3"},{"type":"library","group":"actions","name":"setup-node","version":"3","purl":"pkg:github/actions/setup-node@3"},{"type":"library","group":"actions","name":"setup-node","version":"1","purl":"pkg:github/actions/setup-node@1"},{"type":"library","name":"joi","version":"17.12.2","purl":"pkg:npm/joi@17.12.2","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@postalsys","name":"joi-messages","version":"1.0.1","purl":"pkg:npm/%40postalsys/joi-messages@1.0.1"},{"type":"library","name":"exponential-backoff","version":"3.1.1","purl":"pkg:npm/exponential-backoff@3.1.1","licenses":[{"expression":"Apache-2.0"}]},{"type":"library","group":"@postalsys","name":"email-text-tools","version":"2.1.7","purl":"pkg:npm/%40postalsys/email-text-tools@2.1.7"},{"type":"library","name":"punycode","version":"2.3.1","purl":"pkg:npm/punycode@2.3.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"humanize","version":"0.0.9","purl":"pkg:npm/humanize@0.0.9","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pubface","version":"1.0.9","purl":"pkg:npm/pubface@1.0.9"},{"type":"library","group":"@hapi","name":"vision","version":"7.0.3","purl":"pkg:npm/%40hapi/vision@7.0.3","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"gettext-parser","version":"7.0.1","purl":"pkg:npm/gettext-parser@7.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"timezones-list","version":"3.0.3","purl":"pkg:npm/timezones-list@3.0.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"undici","version":"5.28.3","purl":"pkg:npm/undici@5.28.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"base32.js","version":"0.1.0","purl":"pkg:npm/base32.js@0.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"minimist","version":"1.2.8","purl":"pkg:npm/minimist@1.2.8","licenses":[{"expression":"MIT"}]},{"type":"library","name":"chai","version":"4.3.10","purl":"pkg:npm/chai@4.3.10","licenses":[{"expression":"MIT"}]},{"type":"library","name":"msgpack5","version":"6.0.2","purl":"pkg:npm/msgpack5@6.0.2","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@bugsnag","name":"js","version":"7.22.4","purl":"pkg:npm/%40bugsnag/js@7.22.4"},{"type":"library","group":"@hapi","name":"crumb","version":"9.0.1","purl":"pkg:npm/%40hapi/crumb@9.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"imapflow","version":"1.0.156","purl":"pkg:npm/imapflow@1.0.156"},{"type":"library","name":"license-checker","version":"25.0.1","purl":"pkg:npm/license-checker@25.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"pkg","version":"5.8.1","purl":"pkg:npm/pkg@5.8.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"hecks","version":"3.0.0-fork.3","purl":"pkg:npm/%40postalsys/hecks@3.0.0-fork.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"eslint-config-prettier","version":"9.1.0","purl":"pkg:npm/eslint-config-prettier@9.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"grunt-cli","version":"1.4.3","purl":"pkg:npm/grunt-cli@1.4.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"hapi-auth-bearer-token","version":"8.0.0","purl":"pkg:npm/hapi-auth-bearer-token@8.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"mailparser","version":"3.6.9","purl":"pkg:npm/mailparser@3.6.9"},{"type":"library","group":"@elastic","name":"elasticsearch","version":"8.12.2","purl":"pkg:npm/%40elastic/elasticsearch@8.12.2"},{"type":"library","name":"bullmq","version":"5.4.2","purl":"pkg:npm/bullmq@5.4.2"},{"type":"library","name":"prom-client","version":"15.1.0","purl":"pkg:npm/prom-client@15.1.0","licenses":[{"expression":"Apache-2.0"}]},{"type":"library","name":"psl","version":"1.9.0","purl":"pkg:npm/psl@1.9.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"dotenv","version":"16.4.5","purl":"pkg:npm/dotenv@16.4.5","licenses":[{"expression":"BSD-2-Clause"}]},{"type":"library","name":"ipaddr.js","version":"2.1.0","purl":"pkg:npm/ipaddr.js@2.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"bull-arena","version":"4.2.0","purl":"pkg:npm/bull-arena@4.2.0"},{"type":"library","name":"grunt-eslint","version":"24.3.0","purl":"pkg:npm/grunt-eslint@24.3.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"encoding-japanese","version":"2.0.0","purl":"pkg:npm/encoding-japanese@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"ical.js","version":"1.5.0","purl":"pkg:npm/ical.js@1.5.0","licenses":[{"expression":"MPL-2.0"}]},{"type":"library","name":"libqp","version":"2.1.0","purl":"pkg:npm/libqp@2.1.0"},{"type":"library","name":"mailsplit","version":"5.4.0","purl":"pkg:npm/mailsplit@5.4.0","licenses":[{"expression":"EUPL-1.1+ OR MIT OR (EUPL-1.1+ AND MIT)"}]},{"type":"library","name":"qrcode","version":"1.5.3","purl":"pkg:npm/qrcode@1.5.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"wild-config","version":"1.7.1","purl":"pkg:npm/wild-config@1.7.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@phc","name":"pbkdf2","version":"1.1.14","purl":"pkg:npm/%40phc/pbkdf2@1.1.14","licenses":[{"expression":"MIT"}]},{"type":"library","name":"compare-versions","version":"6.1.0","purl":"pkg:npm/compare-versions@6.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"eslint-config-nodemailer","version":"1.2.0","purl":"pkg:npm/eslint-config-nodemailer@1.2.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"grunt","version":"1.6.1","purl":"pkg:npm/grunt@1.6.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"iconv-lite","version":"0.6.3","purl":"pkg:npm/iconv-lite@0.6.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"node-gettext","version":"3.0.0","purl":"pkg:npm/node-gettext@3.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"resedit","version":"2.0.0","purl":"pkg:npm/resedit@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"cookie","version":"12.0.1","purl":"pkg:npm/%40hapi/cookie@12.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@postalsys","name":"certs","version":"1.0.8","purl":"pkg:npm/%40postalsys/certs@1.0.8"},{"type":"library","name":"ioredis","version":"5.3.2","purl":"pkg:npm/ioredis@5.3.2","licenses":[{"expression":"MIT"}]},{"type":"library","name":"jsxgettext","version":"0.11.0","purl":"pkg:npm/jsxgettext@0.11.0","licenses":[{"expression":"MPL-2.0"}]},{"type":"library","name":"libmime","version":"5.3.4","purl":"pkg:npm/libmime@5.3.4"},{"type":"library","name":"nodemailer","version":"6.9.11","purl":"pkg:npm/nodemailer@6.9.11","licenses":[{"expression":"MIT-0"}]},{"type":"library","name":"speakeasy","version":"2.0.0","purl":"pkg:npm/speakeasy@2.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"email-ai-tools","version":"1.8.6","purl":"pkg:npm/%40postalsys/email-ai-tools@1.8.6"},{"type":"library","name":"he","version":"1.2.0","purl":"pkg:npm/he@1.2.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"hapi-pino","version":"12.1.0","purl":"pkg:npm/hapi-pino@12.1.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"jquery","version":"3.7.1","purl":"pkg:npm/jquery@3.7.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"libbase64","version":"1.3.0","purl":"pkg:npm/libbase64@1.3.0"},{"type":"library","name":"marked","version":"9.1.6","purl":"pkg:npm/marked@9.1.6","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pino-pretty","version":"10.3.1","purl":"pkg:npm/pino-pretty@10.3.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"socks","version":"2.8.1","purl":"pkg:npm/socks@2.8.1","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"boom","version":"10.0.1","purl":"pkg:npm/%40hapi/boom@10.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","group":"@hapi","name":"inert","version":"7.1.0","purl":"pkg:npm/%40hapi/inert@7.1.0","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"uuid","version":"9.0.1","purl":"pkg:npm/uuid@9.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"handlebars","version":"4.7.8","purl":"pkg:npm/handlebars@4.7.8","licenses":[{"expression":"MIT"}]},{"type":"library","name":"smtp-server","version":"3.13.3","purl":"pkg:npm/smtp-server@3.13.3"},{"type":"library","name":"startbootstrap-sb-admin-2","version":"3.3.7","purl":"pkg:npm/startbootstrap-sb-admin-2@3.3.7","licenses":[{"expression":"MIT"}]},{"type":"library","name":"xgettext-template","version":"5.0.0","purl":"pkg:npm/xgettext-template@5.0.0","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@postalsys","name":"templates","version":"1.0.8","purl":"pkg:npm/%40postalsys/templates@1.0.8"},{"type":"library","name":"ace-builds","version":"1.32.7","purl":"pkg:npm/ace-builds@1.32.7"},{"type":"library","name":"express","version":"4.18.3","purl":"pkg:npm/express@4.18.3","licenses":[{"expression":"MIT"}]},{"type":"library","name":"hapi-swagger","version":"17.2.1","purl":"pkg:npm/hapi-swagger@17.2.1"},{"type":"library","name":"html-to-text","version":"9.0.5","purl":"pkg:npm/html-to-text@9.0.5","licenses":[{"expression":"MIT"}]},{"type":"library","name":"nanoid","version":"3.3.4","purl":"pkg:npm/nanoid@3.3.4","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"hapi","version":"21.3.3","purl":"pkg:npm/%40hapi/hapi@21.3.3"},{"type":"library","name":"eslint","version":"8.57.0","purl":"pkg:npm/eslint@8.57.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"ioredfour","version":"1.3.0-ioredis-07","purl":"pkg:npm/ioredfour@1.3.0-ioredis-07","licenses":[{"expression":"MIT"}]},{"type":"library","name":"murmurhash","version":"2.0.1","purl":"pkg:npm/murmurhash@2.0.1","licenses":[{"expression":"MIT"}]},{"type":"library","name":"pino","version":"8.19.0","purl":"pkg:npm/pino@8.19.0","licenses":[{"expression":"MIT"}]},{"type":"library","name":"xml2js","version":"0.6.2","purl":"pkg:npm/xml2js@0.6.2","licenses":[{"expression":"MIT"}]},{"type":"library","group":"@hapi","name":"bell","version":"13.0.1","purl":"pkg:npm/%40hapi/bell@13.0.1","licenses":[{"expression":"BSD-3-Clause"}]},{"type":"library","name":"eerawlog","version":"1.5.1","purl":"pkg:npm/eerawlog@1.5.1","licenses":[{"expression":"ISC"}]}]} diff --git a/server.js b/server.js index c6e43f8c..733aac4e 100644 --- a/server.js +++ b/server.js @@ -1076,10 +1076,15 @@ let licenseCheckHandler = async opts => { checkKv = true; } + if (licenseInfo.details.lt) { + await redis.hdel(`${REDIS_PREFIX}settings`, 'subexp'); + } + if ( checkKv && licenseInfo.active && !(licenseInfo.details && licenseInfo.details.expires) && + !licenseInfo.details.lt && (await redis.hUpdateBigger(`${REDIS_PREFIX}settings`, 'subcheck', now - subscriptionCheckTimeout, now)) ) { try { diff --git a/static/licenses.html b/static/licenses.html index 78937f85..8665a126 100644 --- a/static/licenses.html +++ b/static/licenses.html @@ -2905,7 +2905,7 @@

EmailEngine v2.40.2

EmailEngine includes code from the following soft fast-redact -3.3.0 +3.4.0 MIT David Mark Clements david.clements@nearform.com diff --git a/translations/messages.pot b/translations/messages.pot index 14720afe..04ef4b71 100644 --- a/translations/messages.pot +++ b/translations/messages.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Content-Type: text/plain; charset=ascii\n" -"POT-Creation-Date: 2024-03-07 12:19+0000\n" +"POT-Creation-Date: 2024-03-08 09:05+0000\n" #: views/config/license.hbs:48 msgid "%d day" @@ -9,6 +9,10 @@ msgid_plural "%d days" msgstr[0] "" msgstr[1] "" +#: views/redirect.hbs:1 +msgid "Click here to continue…" +msgstr "" + #: views/unsubscribe.hbs:1 #: views/unsubscribe.hbs:79 msgid "Unsubscribe" @@ -53,10 +57,6 @@ msgstr "" msgid "Enter your email address" msgstr "" -#: views/redirect.hbs:1 -msgid "Click here to continue…" -msgstr "" - #: views/accounts/register/imap.hbs:11 msgid "Your name" msgstr "" @@ -80,6 +80,14 @@ msgstr "" msgid "Continue" msgstr "" +#: views/accounts/register/index.hbs:2 +msgid "Choose your email account provider" +msgstr "" + +#: views/accounts/register/index.hbs:15 +msgid "Standard IMAP" +msgstr "" + #: views/accounts/register/imap-server.hbs:18 msgid "IMAP" msgstr "" @@ -181,14 +189,6 @@ msgstr "" msgid "HTTP error!" msgstr "" -#: views/accounts/register/index.hbs:2 -msgid "Choose your email account provider" -msgstr "" - -#: views/accounts/register/index.hbs:15 -msgid "Standard IMAP" -msgstr "" - #: lib/routes-ui.js:580 msgid "Invalid API key for OpenAI" msgstr "" @@ -226,11 +226,11 @@ msgstr "" msgid "Failed to process request" msgstr "" -#: lib/tools.js:1395 +#: lib/tools.js:1399 msgid "Signature validation failed" msgstr "" -#: lib/tools.js:1404 -#: lib/tools.js:1409 +#: lib/tools.js:1408 +#: lib/tools.js:1413 msgid "Invalid or expired account setup URL" msgstr "" \ No newline at end of file diff --git a/views/config/license.hbs b/views/config/license.hbs index 5943f6eb..04f1a41a 100644 --- a/views/config/license.hbs +++ b/views/config/license.hbs @@ -125,14 +125,17 @@

Environment
{{licenseInfo.details.hostname}}
- {{#if licenseDetails.expires}}
License expires
in {{licenseDetails.expiresDays}} days
{{/if}} - + {{#if licenseDetails.lt}} +
License expires
+
This license does not expire
+ {{/if}} + diff --git a/workers/api.js b/workers/api.js index 4e533752..41b30b74 100644 --- a/workers/api.js +++ b/workers/api.js @@ -7854,7 +7854,7 @@ ${now}`, }); } - if (subexp) { + if (subexp && !(request.app.licenseInfo && request.app.licenseInfo.details && request.app.licenseInfo.details.lt)) { let delayMs = new Date(subexp) - Date.now(); let expiresDays = Math.max(Math.ceil(delayMs / (24 * 3600 * 1000)), 0);