@emailens/engine 0.9.2 → 0.9.4

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/index.cjs CHANGED
@@ -8872,8 +8872,9 @@ var PREHEADER_ACCESSORY_PATTERNS = [
8872
8872
  /color\s*:\s*transparent/,
8873
8873
  /line-height\s*:\s*0/
8874
8874
  ];
8875
+ var INVISIBLE_CHARS = /[​-‏⁠᠎­]/g;
8875
8876
  function isLikelyPreheader(style, text) {
8876
- if (text.length > 200) return false;
8877
+ if (text.replace(INVISIBLE_CHARS, "").trim().length > 200) return false;
8877
8878
  return PREHEADER_ACCESSORY_PATTERNS.some((p) => p.test(style));
8878
8879
  }
8879
8880
  function checkHiddenText($) {
@@ -8995,13 +8996,17 @@ Href: ${href}`
8995
8996
  });
8996
8997
  return issues;
8997
8998
  }
8998
- var STREET_ADDRESS_PATTERN = /\b\d{1,5}\s+[A-Za-z]+\s+(St(reet)?|Ave(nue)?|Blvd|Boulevard|Dr(ive)?|Rd|Road|Ln|Lane|Way|Ct|Court|Pl(ace)?|Pkwy|Parkway|Cir(cle)?|Terr(ace)?|Loop)\b/i;
8999
+ var STREET_ADDRESS_PATTERN = /\b\d{1,5}[A-Za-z]?\s+[A-Za-z]+\s+(St(reet)?|Ave(nue)?|Blvd|Boulevard|Dr(ive)?|Rd|Road|Ln|Lane|Way|Ct|Court|Pl(ace)?|Pkwy|Parkway|Cir(cle)?|Terr(ace)?|Loop)\b/i;
9000
+ var STREET_TYPE_FIRST_PATTERN = /\b\d{1,5}\s+(rue|chemin|avenue|av|boulevard|bd|impasse|all[ée]e|place|route|quai|cours|via|viale|piazza|strada)\b/i;
9001
+ var STREET_TYPE_LEADING_PATTERN = /\b(calle|avenida|avda|plaza|paseo|carrer|rua|travessa)\s+[A-Za-zÀ-ÿ]+.{0,30}?\d{1,4}\b/i;
9002
+ var STREET_TYPE_SUFFIX_PATTERN = /\b[A-Za-zÀ-ÿ]+(stra(ss|ß)e|straat|weg|gasse|allee|platz|vej|gata|gate)\s+\d{1,4}\b/i;
8999
9003
  var PO_BOX_PATTERN = /\bP\.?\s*O\.?\s*Box\s+\d+/i;
9000
- var ZIP_CODE_PATTERN = /\b\d{5}(-\d{4})?\b/;
9004
+ var ZIP_CODE_PATTERN = /\b(\d{5}(-\d{4})?|[A-Z]{1,2}\d[A-Z\d]?\s*\d[A-Z]{2}|\d{4}\s*[A-Z]{2})\b/i;
9001
9005
  var ADDRESS_CLASS_PATTERN = /address|mailing|postal|footer-address|physical-address/i;
9002
9006
  function checkPhysicalAddress($, text, options) {
9003
9007
  if ((options == null ? void 0 : options.emailType) === "transactional") return null;
9004
- if (STREET_ADDRESS_PATTERN.test(text) && ZIP_CODE_PATTERN.test(text)) return null;
9008
+ const hasStreet = STREET_ADDRESS_PATTERN.test(text) || STREET_TYPE_FIRST_PATTERN.test(text) || STREET_TYPE_LEADING_PATTERN.test(text) || STREET_TYPE_SUFFIX_PATTERN.test(text);
9009
+ if (hasStreet && ZIP_CODE_PATTERN.test(text)) return null;
9005
9010
  if (PO_BOX_PATTERN.test(text) && ZIP_CODE_PATTERN.test(text)) return null;
9006
9011
  let foundByClass = false;
9007
9012
  $("[class]").each((_, el) => {