spamscanner 7.0.9 → 7.0.10
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/dist/cjs/index.cjs +13 -3
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/cli.js +12 -2
- package/dist/esm/cli.js.map +2 -2
- package/dist/esm/index.js +12 -2
- package/dist/esm/index.js.map +2 -2
- package/package.json +1 -1
package/dist/esm/cli.js
CHANGED
|
@@ -6089,7 +6089,7 @@ import net from "node:net";
|
|
|
6089
6089
|
var package_default = {
|
|
6090
6090
|
name: "spamscanner",
|
|
6091
6091
|
description: "Spam, phishing and malware filter for email in any language: a trainable classifier, link and attachment checks, SPF/DKIM/DMARC, and an optional AI second opinion from any LLM, including local Ollama models. Works as a library, CLI, Postfix milter or HTTP API.",
|
|
6092
|
-
version: "7.0.
|
|
6092
|
+
version: "7.0.10",
|
|
6093
6093
|
author: "Forward Email (https://forwardemail.net)",
|
|
6094
6094
|
bin: {
|
|
6095
6095
|
spamscanner: "./dist/esm/cli.js"
|
|
@@ -7780,6 +7780,7 @@ var MACRO_EXTENSIONS = /* @__PURE__ */ new Set(["docm", "dotm", "xlsm", "xltm",
|
|
|
7780
7780
|
var DOCUMENT_EXTENSIONS = /* @__PURE__ */ new Set(["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "rtf", "jpg", "jpeg", "png", "gif", "zip", "csv", "odt", "ods", "html", "htm", "mp3", "mp4", "mov", "wav", "eml", "msg", "xml", "json"]);
|
|
7781
7781
|
var TEMPORARY_EXTENSIONS = /* @__PURE__ */ new Set(["tmp"]);
|
|
7782
7782
|
var BIDI_CONTROLS = characterClass([[8234, 8238], [8294, 8297]], "u");
|
|
7783
|
+
var ALL_BIDI_CONTROLS = characterClass([[8234, 8238], [8294, 8297]], "gu");
|
|
7783
7784
|
var ARCHIVE_TYPES = /* @__PURE__ */ new Set(["zip", "rar", "7z", "gz", "bz2", "xz", "cab", "iso", "tar", "zst", "lzh", "ace", "arj"]);
|
|
7784
7785
|
function sniff(buffer) {
|
|
7785
7786
|
if (!Buffer11.isBuffer(buffer) || buffer.length < 4) {
|
|
@@ -7963,7 +7964,16 @@ function shorten(name, max = 100) {
|
|
|
7963
7964
|
return characters.length <= max ? name : `${characters.slice(0, max - 41).join("")}\u2026${characters.slice(-40).join("")}`;
|
|
7964
7965
|
}
|
|
7965
7966
|
function extensionOf(name) {
|
|
7966
|
-
const base = trimEndOf(String(name).toLowerCase().split(/[/\\]/).pop(), ". ");
|
|
7967
|
+
const base = trimEndOf(String(name).toLowerCase().replace(ALL_BIDI_CONTROLS, "").split(/[/\\]/).pop(), ". ");
|
|
7968
|
+
const whole = lastExtension(base);
|
|
7969
|
+
const file = base.replace(/^[a-z]:/, "");
|
|
7970
|
+
const colon = file.indexOf(":");
|
|
7971
|
+
if (colon !== -1 && /^(?::?\$data)?$/.test(file.slice(colon + 1))) {
|
|
7972
|
+
return lastExtension(trimEndOf(file.slice(0, colon), ". "));
|
|
7973
|
+
}
|
|
7974
|
+
return whole;
|
|
7975
|
+
}
|
|
7976
|
+
function lastExtension(base) {
|
|
7967
7977
|
const dot = base.lastIndexOf(".");
|
|
7968
7978
|
return dot === -1 ? "" : base.slice(dot + 1).trim();
|
|
7969
7979
|
}
|