open-local-audit 0.75.0 → 0.77.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 (48) hide show
  1. package/CHANGELOG.md +512 -492
  2. package/LICENSE +21 -21
  3. package/README.md +543 -538
  4. package/dist/audit.d.ts +2 -0
  5. package/dist/audit.js +13 -0
  6. package/dist/audit.js.map +1 -1
  7. package/dist/cli.js +37 -12
  8. package/dist/cli.js.map +1 -1
  9. package/dist/compare.d.ts +17 -1
  10. package/dist/compare.js +170 -6
  11. package/dist/compare.js.map +1 -1
  12. package/dist/contact.d.ts +7 -0
  13. package/dist/contact.js +106 -2
  14. package/dist/contact.js.map +1 -1
  15. package/dist/discovery.d.ts +1 -0
  16. package/dist/discovery.js +140 -4
  17. package/dist/discovery.js.map +1 -1
  18. package/dist/index.d.ts +4 -2
  19. package/dist/index.js +2 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/overture.js +8 -1
  22. package/dist/overture.js.map +1 -1
  23. package/dist/pdf.js +2 -1
  24. package/dist/pdf.js.map +1 -1
  25. package/dist/pitch-brief.d.ts +33 -0
  26. package/dist/pitch-brief.js +160 -0
  27. package/dist/pitch-brief.js.map +1 -0
  28. package/dist/report-pack.js +2 -1
  29. package/dist/report-pack.js.map +1 -1
  30. package/dist/reporters.js +4 -2
  31. package/dist/reporters.js.map +1 -1
  32. package/dist/rules.js +34 -0
  33. package/dist/rules.js.map +1 -1
  34. package/dist/shortlist-runner.d.ts +4 -0
  35. package/dist/shortlist-runner.js +10 -0
  36. package/dist/shortlist-runner.js.map +1 -1
  37. package/dist/tls-probe.d.ts +2 -0
  38. package/dist/tls-probe.js +46 -0
  39. package/dist/tls-probe.js.map +1 -0
  40. package/dist/types.d.ts +9 -0
  41. package/dist/website-enrichment.d.ts +3 -0
  42. package/dist/website-enrichment.js +27 -1
  43. package/dist/website-enrichment.js.map +1 -1
  44. package/dist/workflow.d.ts +1 -1
  45. package/dist/workflow.js +2 -2
  46. package/dist/workflow.js.map +1 -1
  47. package/docs/guides/free-discovery.md +4 -2
  48. package/package.json +1 -1
@@ -0,0 +1,160 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
3
+ // Only findings a business owner understands without technical background become pitch points, in this order.
4
+ // Everything else stays in the full audit report.
5
+ const pitchReasons = [
6
+ [/^website-placeholder$/, "People who find the business online land on a placeholder instead of a website."],
7
+ [/^http-status-ok$/, "The page returns an error, so visitors and Google may not see it at all."],
8
+ [/^tls-certificate-valid$/, "Browsers show, or will soon show, a security warning instead of the site."],
9
+ [/^page-indexable$/, "The page tells Google not to list it, so it cannot appear in search results."],
10
+ [/^https-enabled$/, "Browsers mark the site as \"Not secure\"."],
11
+ [/^viewport-present$/, "The page does not adapt to phones, where most local searches happen."],
12
+ [/^phone-link-present$/, "The phone number is not tap-to-call on mobile."],
13
+ [/^primary-cta-present$|-cta$/, "There is no clear booking or contact button, so ready-to-buy visitors have to hunt for the next step."],
14
+ [/^contact-form-present$/, "Visitors who do not want to call have no way to send an enquiry."],
15
+ [/^broken-internal-links$/, "Some links on the site lead to dead pages."],
16
+ [/^title-present$/, "The page has no title, so Google and browser tabs show a generic label."],
17
+ [/^meta-description-present$/, "Without a meta description, Google writes its own snippet for the search result."],
18
+ [/^single-h1$/, "The page has no clear main heading telling visitors and Google what the business does."],
19
+ [/^mixed-content-absent$/, "Some files load insecurely, so browsers may block them or warn visitors."],
20
+ [/^current-date-signals$/, "An outdated year on the page makes the business look inactive."],
21
+ [/^visible-address-present$/, "Visitors cannot see where the business is."],
22
+ [/^opening-hours-present$/, "Visitors cannot see when the business is open."],
23
+ [/^map-link-present$/, "There is no map or directions link."],
24
+ [/^image-alt-coverage$/, "Images have no text descriptions, which hurts accessibility and image search."],
25
+ [/^review-cue-present$/, "No reviews or testimonials are shown, so new visitors have less reason to trust the business."]
26
+ ];
27
+ const maxPoints = 3;
28
+ // The chain, public-body, and location reasons that discovery writes into opportunityReasons.
29
+ const placementFlagPattern = /public-sector domain|looks like a multi-location brand|branch page on a larger site|phone area code \S+ differs/i;
30
+ const severities = new Set(["high", "medium", "low", "info"]);
31
+ function pitchRank(finding) {
32
+ return pitchReasons.findIndex(([pattern]) => pattern.test(finding.id));
33
+ }
34
+ function evidenceText(finding) {
35
+ return Array.isArray(finding.evidence) ? finding.evidence.map((item) => item?.value ?? "").join("; ") : "";
36
+ }
37
+ function pitchPoints(report) {
38
+ const seen = new Set();
39
+ return report.findings
40
+ .filter((finding) => pitchRank(finding) >= 0 && !/^not checked$/i.test(evidenceText(finding).trim()))
41
+ .sort((left, right) => pitchRank(left) - pitchRank(right))
42
+ // Profile rules can repeat a generic finding (a dental appointment CTA and the general CTA), so keep one point per reason.
43
+ .filter((finding) => !seen.has(pitchRank(finding)) && Boolean(seen.add(pitchRank(finding))))
44
+ .map((finding) => ({
45
+ findingId: finding.id,
46
+ severity: finding.severity,
47
+ title: finding.title,
48
+ whyItMatters: pitchReasons[pitchRank(finding)][1],
49
+ evidence: evidenceText(finding),
50
+ fix: finding.recommendation
51
+ }));
52
+ }
53
+ function offerFor(lead, report, points) {
54
+ if (points.some((point) => point.findingId === "website-placeholder") || lead.hasWebsite === "no") {
55
+ return "Starter website: the business has no working site to fix.";
56
+ }
57
+ if (!report) {
58
+ return "No offer yet: audit the website first.";
59
+ }
60
+ if (points.length === 0) {
61
+ return "No quick-fix pitch: the audit found nothing an owner would notice. Keep for monitoring.";
62
+ }
63
+ return points.length > maxPoints
64
+ ? `Quick-fix sprint for the ${maxPoints} points below, with the remaining ${points.length - maxPoints} as a follow-up tune-up.`
65
+ : `Quick-fix sprint for the ${points.length === 1 ? "point" : `${points.length} points`} below.`;
66
+ }
67
+ function checksFor(lead, report) {
68
+ const checks = ["Re-check each pitch point on the live site; audits can be wrong or out of date."];
69
+ const identity = report?.businessIdentity?.status;
70
+ if (identity && identity !== "matched") {
71
+ checks.push(`Confirm the website belongs to this business; the identity check is ${identity}.`);
72
+ }
73
+ if (placementFlagPattern.test(lead.reason)) {
74
+ checks.push("Confirm this is an independent local business in the searched area, not a chain branch or public body.");
75
+ }
76
+ checks.push("Check the business's legal form and local rules before a cold email. In the UK (PECR), unsolicited marketing email is allowed to limited companies and LLPs but needs prior consent from sole traders and partnerships; use the phone or the contact form instead.", "Say who you are, include your company details, and give an easy way to opt out.");
77
+ return checks;
78
+ }
79
+ export function buildPitchBrief(lead, report, reportStatus) {
80
+ const points = report ? pitchPoints(report) : [];
81
+ return {
82
+ rank: lead.rank,
83
+ companyName: lead.companyName,
84
+ website: lead.website,
85
+ leadKey: lead.leadKey,
86
+ priority: lead.priority,
87
+ opportunityScore: lead.opportunityScore,
88
+ reasons: lead.reason
89
+ .split(";")
90
+ .map((reason) => reason.trim())
91
+ .filter(Boolean),
92
+ contactChannel: lead.preferredContactChannel,
93
+ contactabilityReason: lead.contactabilityReason,
94
+ reportStatus,
95
+ offer: offerFor(lead, report, points),
96
+ points: points.slice(0, maxPoints),
97
+ morePoints: Math.max(points.length - maxPoints, 0),
98
+ checks: checksFor(lead, report)
99
+ };
100
+ }
101
+ // Lead CSVs store the report path relative to the reports directory, pointing at any of the report formats.
102
+ export async function readLeadReport(reportsDir, reportPath) {
103
+ if (!reportPath.trim()) {
104
+ return { status: "none" };
105
+ }
106
+ const resolved = resolve(reportsDir, reportPath.trim());
107
+ const inside = relative(resolve(reportsDir), resolved);
108
+ if (!inside || inside.startsWith("..") || isAbsolute(inside)) {
109
+ return { status: "missing" };
110
+ }
111
+ try {
112
+ const content = await readFile(join(dirname(resolved), "open-local-audit-report.json"), "utf8");
113
+ const report = JSON.parse(content.replace(/^\uFEFF/, ""));
114
+ if (!Array.isArray(report.findings)) {
115
+ return { status: "missing" };
116
+ }
117
+ // Skip malformed findings instead of failing the whole brief.
118
+ const findings = report.findings.filter((finding) => typeof finding?.id === "string" &&
119
+ typeof finding.title === "string" &&
120
+ typeof finding.recommendation === "string" &&
121
+ severities.has(finding.severity));
122
+ return { report: { ...report, findings }, status: "found" };
123
+ }
124
+ catch {
125
+ return { status: "missing" };
126
+ }
127
+ }
128
+ function inline(value) {
129
+ return value.replace(/\r?\n/g, " ").replace(/([`*_\[\]<>|])/g, "\\$1");
130
+ }
131
+ export function renderPitchBriefsMarkdown(briefs, generatedAt) {
132
+ const lines = [
133
+ "# Pitch Briefs",
134
+ "",
135
+ `Generated ${generatedAt} for ${briefs.length} shortlisted lead${briefs.length === 1 ? "" : "s"}.`,
136
+ "These are operator notes for writing your own outreach, not messages to send as they are.",
137
+ ""
138
+ ];
139
+ for (const brief of briefs) {
140
+ lines.push(`## ${brief.rank}. ${inline(brief.companyName)}`, "", `- Website: ${brief.website ? inline(brief.website) : "None found"}`, `- Offer: ${brief.offer}`, `- Priority: ${brief.priority || "unknown"}${brief.opportunityScore === undefined ? "" : ` (opportunity score ${brief.opportunityScore})`}`, `- Contact: ${brief.contactChannel ? inline(brief.contactChannel) : "unknown"}${brief.contactabilityReason ? ` - ${inline(brief.contactabilityReason)}` : ""}`, ...(brief.reasons.length > 0 ? [`- Why it was shortlisted: ${brief.reasons.map(inline).join("; ")}`] : []), `- Lead key: ${inline(brief.leadKey)}`, "");
141
+ if (brief.reportStatus !== "found") {
142
+ lines.push(brief.reportStatus === "none"
143
+ ? "No audit report is linked to this lead, so there are no pitch points yet."
144
+ : "The linked audit report could not be read, so there are no pitch points yet.", "");
145
+ }
146
+ else if (brief.points.length > 0) {
147
+ lines.push("### Pitch points", "");
148
+ brief.points.forEach((point, index) => {
149
+ lines.push(`${index + 1}. **${inline(point.title)}** (${point.severity}). ${point.whyItMatters}`, ` - Evidence: ${inline(point.evidence)}`, ` - Fix: ${inline(point.fix)}`);
150
+ });
151
+ if (brief.morePoints > 0) {
152
+ lines.push("", `${brief.morePoints} more owner-visible issue${brief.morePoints === 1 ? "" : "s"} in the full report.`);
153
+ }
154
+ lines.push("");
155
+ }
156
+ lines.push("### Before contacting", "", ...brief.checks.map((check) => `- [ ] ${check}`), "");
157
+ }
158
+ return `${lines.join("\n")}\n`;
159
+ }
160
+ //# sourceMappingURL=pitch-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pitch-brief.js","sourceRoot":"","sources":["../src/pitch-brief.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,8 @@ function renderNextActions(report) {
82
82
  `- Confidence: ${report.contact?.contactConfidence ?? "None"}`,
83
83
  `- Public email: ${report.contact?.publicEmail ?? ""}`,
84
84
  `- Public phone: ${report.contact?.publicPhone ?? ""}`,
85
- `- Contact page: ${report.contact?.contactPageUrl ?? ""}`
85
+ `- Contact page: ${report.contact?.contactPageUrl ?? ""}`,
86
+ `- Contact form: ${report.contact?.contactFormUrl ?? ""}`
86
87
  ].join("\n")}\n`;
87
88
  }
88
89
  export async function packageReport(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"report-pack.js","sourceRoot":"","sources":["../src/report-pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-pack.js","sourceRoot":"","sources":["../src/report-pack.ts"],"names":[],"mappings":"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"}
package/dist/reporters.js CHANGED
@@ -112,7 +112,7 @@ function renderMarkdownLighthouse(report) {
112
112
  ];
113
113
  }
114
114
  function renderMarkdownContactReadiness(report) {
115
- if (!report.contact || report.contact.contactConfidence === "None") {
115
+ if (!report.contact || (report.contact.contactConfidence === "None" && !report.contact.contactFormUrl)) {
116
116
  return [];
117
117
  }
118
118
  return [
@@ -125,6 +125,7 @@ function renderMarkdownContactReadiness(report) {
125
125
  `| Public phone | ${escapeCell(report.contact.publicPhone ?? "")} |`,
126
126
  `| WhatsApp | ${escapeCell(report.contact.whatsappUrl ?? "")} |`,
127
127
  `| Contact page | ${escapeCell(report.contact.contactPageUrl ?? "")} |`,
128
+ `| Contact form | ${escapeCell(report.contact.contactFormUrl ?? "")} |`,
128
129
  `| Social profiles | ${escapeCell(report.contact.socialProfiles.join("; "))} |`,
129
130
  ""
130
131
  ];
@@ -192,7 +193,7 @@ ${warnings}
192
193
  `;
193
194
  }
194
195
  function renderHtmlContactReadiness(report) {
195
- if (!report.contact || report.contact.contactConfidence === "None") {
196
+ if (!report.contact || (report.contact.contactConfidence === "None" && !report.contact.contactFormUrl)) {
196
197
  return "";
197
198
  }
198
199
  const rows = [
@@ -201,6 +202,7 @@ function renderHtmlContactReadiness(report) {
201
202
  ["Public phone", report.contact.publicPhone ?? ""],
202
203
  ["WhatsApp", report.contact.whatsappUrl ?? ""],
203
204
  ["Contact page", report.contact.contactPageUrl ?? ""],
205
+ ["Contact form", report.contact.contactFormUrl ?? ""],
204
206
  ["Social profiles", report.contact.socialProfiles.join("; ")]
205
207
  ]
206
208
  .map(([label, value]) => `<tr><td>${escapeHtml(label)}</td><td>${escapeHtml(value)}</td></tr>`)
@@ -1 +1 @@
1
- {"version":3,"file":"reporters.js","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporters.js","sourceRoot":"","sources":["../src/reporters.ts"],"names":[],"mappings":"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"}
package/dist/rules.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { load } from "cheerio";
2
2
  import { findPhoneNumbersInText, getCountries, parsePhoneNumberFromString } from "libphonenumber-js/max";
3
+ import { detectPageForms, hasContactOrBookingLink } from "./contact.js";
3
4
  function finding(rule, context) {
4
5
  return {
5
6
  id: rule.id,
@@ -837,6 +838,17 @@ function mixedContentUrls($, snapshot) {
837
838
  }
838
839
  return Array.from(urls);
839
840
  }
841
+ // Let's Encrypt and most automated issuers renew at 30 days left, so fewer than 14 means automatic renewal is failing.
842
+ const certificateWarningDays = 14;
843
+ function tlsCertificateEvidence(tls) {
844
+ const date = tls.validTo.slice(0, 10);
845
+ const status = tls.daysRemaining < 0
846
+ ? `Certificate expired ${date}`
847
+ : !tls.authorized
848
+ ? `Certificate not trusted: ${tls.error ?? "unknown reason"}`
849
+ : `Certificate expires ${date} (${tls.daysRemaining} day${tls.daysRemaining === 1 ? "" : "s"})`;
850
+ return tls.issuer ? `${status}; issuer ${tls.issuer}` : status;
851
+ }
840
852
  function hasPlaceholderSocialLinks($) {
841
853
  return $("a")
842
854
  .toArray()
@@ -863,6 +875,16 @@ const rules = [
863
875
  check: ({ snapshot }) => snapshot.finalUrl.startsWith("https://"),
864
876
  evidence: ({ snapshot }) => snapshot.finalUrl
865
877
  },
878
+ {
879
+ id: "tls-certificate-valid",
880
+ title: "HTTPS certificate is invalid or about to expire",
881
+ category: "technical-health",
882
+ severity: "high",
883
+ source: "TLS certificate",
884
+ recommendation: "Renew or fix the site's HTTPS certificate so visitors do not see a security warning, and turn on automatic renewal with your host.",
885
+ check: ({ snapshot }) => !snapshot.tls || (snapshot.tls.authorized && snapshot.tls.daysRemaining >= certificateWarningDays),
886
+ evidence: ({ snapshot }) => (snapshot.tls ? tlsCertificateEvidence(snapshot.tls) : "")
887
+ },
866
888
  {
867
889
  id: "page-indexable",
868
890
  title: "Page tells search engines not to index it",
@@ -1078,6 +1100,18 @@ const rules = [
1078
1100
  check: ({ $ }) => hasPrimaryCta($),
1079
1101
  evidence: () => "No primary booking/contact CTA found"
1080
1102
  },
1103
+ {
1104
+ id: "contact-form-present",
1105
+ title: "No way to send an enquiry from the page",
1106
+ category: "trust-contact",
1107
+ severity: "medium",
1108
+ source: "Contact options",
1109
+ recommendation: "Add a short enquiry form or a clear link to a contact page so visitors who don't want to call can still reach you.",
1110
+ check: ({ $, snapshot }) => detectPageForms($, snapshot.finalUrl).enquiryForm ||
1111
+ hasContactOrBookingLink($, snapshot.finalUrl) ||
1112
+ hasLink($, (href) => href.toLowerCase().startsWith("mailto:")),
1113
+ evidence: ({ $, snapshot }) => `No enquiry form, contact page link, or email link${detectPageForms($, snapshot.finalUrl).newsletterForm ? "; only a newsletter signup form" : ""}`
1114
+ },
1081
1115
  {
1082
1116
  id: "placeholder-copy-absent",
1083
1117
  title: "Placeholder copy is still visible",