open-local-audit 0.20.0 → 0.22.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.
- package/CHANGELOG.md +14 -0
- package/README.md +22 -1
- package/dist/cli.js +63 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/report-pack.d.ts +17 -0
- package/dist/report-pack.js +117 -0
- package/dist/report-pack.js.map +1 -0
- package/dist/shortlist.d.ts +29 -0
- package/dist/shortlist.js +149 -0
- package/dist/shortlist.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@ All notable changes to Open Local Audit will be documented here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## v0.22.0 - 2026-05-31
|
|
8
|
+
|
|
9
|
+
- Added `shortlist --input <path> --out <path>` for local lead shortlist reports.
|
|
10
|
+
- Added Markdown and JSON shortlist output for discovery and CRM CSV exports.
|
|
11
|
+
- Ranked leads by opportunity score, priority, contact confidence, audit score, and company name.
|
|
12
|
+
- Kept shortlist generation local-only with no API calls, outreach sending, or CRM sync.
|
|
13
|
+
|
|
14
|
+
## v0.21.0 - 2026-05-28
|
|
15
|
+
|
|
16
|
+
- Added `package-report --input <path> --out <path>` for local customer-shareable report packs.
|
|
17
|
+
- Added report-pack `README.md`, `next-actions.md`, and `manifest.json` generation from existing single-site JSON reports.
|
|
18
|
+
- Copied available JSON, Markdown, HTML, and PDF report artifacts into the local package.
|
|
19
|
+
- Kept report packaging local-only with no uploads, outreach sending, or CRM sync.
|
|
20
|
+
|
|
7
21
|
## v0.20.0 - 2026-05-27
|
|
8
22
|
|
|
9
23
|
- Added `validate-export --input <path> --preset crm` for local CRM CSV import checks.
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Open Local Audit is an open-source website and local presence auditor for small
|
|
|
4
4
|
|
|
5
5
|
## Current stage
|
|
6
6
|
|
|
7
|
-
Published CLI. The project can run a single URL audit, an opt-in Playwright-rendered audit with screenshot evidence, optional Lighthouse category scoring, branded customer-facing reports, public contact readiness extraction, a plain-text batch URL list, or a profile-aware CSV batch file, optionally check same-origin links, and produce JSON, Markdown, HTML, PDF, or all standard report formats. Batch runs can use controlled concurrency, write per-site reports, add aggregate insight sections and contact/outreach rollups to the top-level index, and optionally export prospect CSV data for triage. Discovery runs can control Google Places result counts, cap website audits, write summary JSON, merge local review CSVs, explain opportunity scores, enrich outreach and public-contact columns, select a preferred manual outreach channel, and report exact duplicate lead groups plus advisory fuzzy duplicate review candidates. CRM-ready CSV exports can be validated locally before import.
|
|
7
|
+
Published CLI. The project can run a single URL audit, an opt-in Playwright-rendered audit with screenshot evidence, optional Lighthouse category scoring, branded customer-facing reports, public contact readiness extraction, a plain-text batch URL list, or a profile-aware CSV batch file, optionally check same-origin links, and produce JSON, Markdown, HTML, PDF, or all standard report formats. Batch runs can use controlled concurrency, write per-site reports, add aggregate insight sections and contact/outreach rollups to the top-level index, and optionally export prospect CSV data for triage. Discovery runs can control Google Places result counts, cap website audits, write summary JSON, merge local review CSVs, explain opportunity scores, enrich outreach and public-contact columns, select a preferred manual outreach channel, and report exact duplicate lead groups plus advisory fuzzy duplicate review candidates. CRM-ready CSV exports can be validated locally before import, lead CSVs can be ranked into local shortlist reports, and single-site report folders can be packaged for local customer sharing.
|
|
8
8
|
|
|
9
9
|
## Business purpose
|
|
10
10
|
|
|
@@ -237,6 +237,23 @@ open-local-audit validate-export --input crm-leads.csv --preset crm --format jso
|
|
|
237
237
|
|
|
238
238
|
`validate-export` checks the local CSV shape before a manual import. It reports missing CRM columns, missing `companyName`, missing `website`, missing `leadKey`, duplicate `leadKey` values, low or empty contact confidence, and rows that still need manual contact review. Markdown output is the default; JSON is available for automation. Any issue returns exit code `1`, while a clean file returns exit code `0`.
|
|
239
239
|
|
|
240
|
+
Create a local lead shortlist from a discovery or CRM CSV export:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
open-local-audit shortlist --input leads.csv --out shortlist.md --top 20
|
|
244
|
+
open-local-audit shortlist --input crm-leads.csv --out shortlist.json --format json
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
`shortlist` ranks local CSV rows by `opportunityScore`, `priority`, `contactConfidence`, `score`, and company name. Markdown output is the default; JSON is available for automation. The command only reads local CSV files and writes a local report. It does not call APIs, send outreach, or sync to a CRM.
|
|
248
|
+
|
|
249
|
+
Package an existing single-site report folder for local customer sharing:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
open-local-audit package-report --input reports/example-com --out packages/example-com
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
`package-report` reads `open-local-audit-report.json` from the input folder, copies available JSON, Markdown, HTML, and PDF report artifacts into `reports/`, and writes `README.md`, `next-actions.md`, and `manifest.json`. It is local file packaging only; it does not upload reports, send outreach, or sync to a CRM.
|
|
256
|
+
|
|
240
257
|
The `google-places` provider is opt-in and requires `GOOGLE_MAPS_API_KEY`. It uses the official Places Text Search API and requests only `places.id`, `places.displayName`, and `places.websiteUri`. It does not scrape Google Maps, collect reviews/photos/ratings, send outreach, or store raw Places responses. Google Maps Platform billing and quota limits apply to API use, and the CLI prints a billing warning when this provider is selected.
|
|
241
258
|
|
|
242
259
|
Discovery CSV exports include `leadKey`, `opportunityScore`, `opportunityReasons`, `pitchAngle`, `recommendedOffer`, `estimatedNeed`, `outreachPriorityReason`, website-derived public contact columns, manual outreach handoff columns, and review columns for local triage. Contact columns are populated only from audited public website HTML and include `publicEmail`, `publicPhone`, `whatsappUrl`, `contactPageUrl`, `socialProfiles`, `contactConfidence`, and `contactSource`. Handoff columns include `preferredContactChannel`, `outreachAction`, and `contactabilityReason`; they are advisory only and do not send outreach. Duplicate review JSON includes exact `duplicateGroups` and advisory `fuzzyDuplicateGroups` with confidence and matching reasons for local operator review. Fuzzy duplicate candidates do not auto-suppress leads, change review status, send outreach, or sync to a CRM. The CRM export preset writes `companyName`, `website`, `segment`, `profile`, `priority`, `score`, `opportunityScore`, `topFinding`, `contactConfidence`, `preferredContactChannel`, `contactabilityReason`, `publicEmail`, `publicPhone`, `contactPageUrl`, `source`, `leadKey`, and `reportPath`; it is a local import file only and does not call CRM APIs. A suppression list can reuse a prior discovery CSV or a smaller CSV with `leadKey`, `sourceId`, `websiteUrl`, or `label` plus optional `reviewStatus`, `reviewReason`, and `lastReviewedAt` columns. Rows marked `rejected`, `contacted`, `not-fit`, `do-not-contact`, or `suppressed` are skipped before audits run. `--review-csv` preserves prior operator decisions and adds new leads as `pending`. Spreadsheet formula-like cell values are neutralized before export, so values such as phone numbers starting with `+` may be prefixed for spreadsheet safety.
|
|
@@ -270,6 +287,8 @@ The first implementation milestone is a CLI that accepts one URL and outputs:
|
|
|
270
287
|
- Batch contact and outreach rollups for audited public website contact readiness.
|
|
271
288
|
- CRM-ready local CSV export preset for batch and discovery exports.
|
|
272
289
|
- Local CRM export validation with Markdown and JSON issue reports.
|
|
290
|
+
- Local lead shortlist reports from discovery and CRM CSV exports.
|
|
291
|
+
- Local report packaging with shareable summaries and copied report artifacts.
|
|
273
292
|
- Industry profiles for generic, dental, beauty, restaurant, contractor, lawyer, clinic, gym, hotel, and auto-service audits.
|
|
274
293
|
- Profile-specific findings for dental, beauty, restaurant, and contractor conversion/trust signals.
|
|
275
294
|
- Prospect CSV export with profile, score, top finding, contact handoff, report path, and error columns.
|
|
@@ -308,6 +327,8 @@ Example report artifacts are available under [`examples/reports`](./examples/rep
|
|
|
308
327
|
- Batch contact and outreach rollups are advisory local triage metadata; they do not send outreach or sync to a CRM.
|
|
309
328
|
- `--export-preset crm` changes CSV columns only; it does not create, update, or sync CRM records.
|
|
310
329
|
- `validate-export` checks local CSV files only; it does not create, update, or sync CRM records.
|
|
330
|
+
- `shortlist` ranks local CSV files only; it does not call APIs, send outreach, or sync CRM records.
|
|
331
|
+
- `package-report` packages local files only; it does not upload reports, send outreach, or sync CRM records.
|
|
311
332
|
- `--export-csv` is supported for batch audits and discovery exports.
|
|
312
333
|
- `discover --provider google-places` requires `GOOGLE_MAPS_API_KEY` and may incur Google Maps Platform billing.
|
|
313
334
|
- `--limit` caps Google Places candidates at 50; it does not paginate beyond one Text Search request.
|
package/dist/cli.js
CHANGED
|
@@ -9,8 +9,10 @@ import { buildDiscoverySummary, buildProspectRows, findDuplicateProspectGroups,
|
|
|
9
9
|
import { shouldFailOnThreshold } from "./exit-policy.js";
|
|
10
10
|
import { renderExportValidationJson, renderExportValidationMarkdown, validateCrmExportCsv } from "./export-validation.js";
|
|
11
11
|
import { writeReportOutputs } from "./output.js";
|
|
12
|
+
import { packageReport } from "./report-pack.js";
|
|
12
13
|
import { cliOptionsSchema, inputUrlSchema } from "./schema.js";
|
|
13
14
|
import { resolveGoogleMapsApiKey } from "./secrets.js";
|
|
15
|
+
import { buildLeadShortlist, renderShortlistJson, renderShortlistMarkdown } from "./shortlist.js";
|
|
14
16
|
import { renderTerminalSummary } from "./summary.js";
|
|
15
17
|
const program = new Command();
|
|
16
18
|
const discoveryProgram = program
|
|
@@ -241,6 +243,67 @@ const validateExportProgram = program
|
|
|
241
243
|
process.exitCode = 1;
|
|
242
244
|
}
|
|
243
245
|
});
|
|
246
|
+
const packageReportProgram = program
|
|
247
|
+
.command("package-report")
|
|
248
|
+
.description("Package an existing single-site report directory for local customer sharing.")
|
|
249
|
+
.option("--input <path>", "read an existing report directory")
|
|
250
|
+
.option("--out <path>", "write the report pack to a directory")
|
|
251
|
+
.action(async () => {
|
|
252
|
+
try {
|
|
253
|
+
const options = packageReportProgram.optsWithGlobals();
|
|
254
|
+
if (!options.input) {
|
|
255
|
+
throw new Error("--input is required for package-report");
|
|
256
|
+
}
|
|
257
|
+
if (!options.out) {
|
|
258
|
+
throw new Error("--out is required for package-report");
|
|
259
|
+
}
|
|
260
|
+
const result = await packageReport({
|
|
261
|
+
inputDir: options.input,
|
|
262
|
+
outDir: options.out
|
|
263
|
+
});
|
|
264
|
+
process.stdout.write(`Packaged report for ${result.manifest.finalUrl}\n`);
|
|
265
|
+
process.stdout.write(`Files: ${result.manifest.files.length}\n`);
|
|
266
|
+
process.stdout.write(`Output: ${result.outDir}\n`);
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
270
|
+
process.stderr.write(`open-local-audit: ${message}\n`);
|
|
271
|
+
process.exitCode = 1;
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
const shortlistProgram = program
|
|
275
|
+
.command("shortlist")
|
|
276
|
+
.description("Rank a local discovery or CRM CSV export into a lead shortlist report.")
|
|
277
|
+
.option("--input <path>", "read a discovery or CRM CSV export")
|
|
278
|
+
.option("--out <path>", "write the shortlist report")
|
|
279
|
+
.option("--top <count>", "number of leads to include", "20")
|
|
280
|
+
.option("--format <format>", "shortlist report format: markdown or json", "markdown")
|
|
281
|
+
.action(async () => {
|
|
282
|
+
try {
|
|
283
|
+
const options = shortlistProgram.optsWithGlobals();
|
|
284
|
+
if (!options.input) {
|
|
285
|
+
throw new Error("--input is required for shortlist");
|
|
286
|
+
}
|
|
287
|
+
if (!options.out) {
|
|
288
|
+
throw new Error("--out is required for shortlist");
|
|
289
|
+
}
|
|
290
|
+
const format = options.format;
|
|
291
|
+
if (format !== "markdown" && format !== "json") {
|
|
292
|
+
throw new Error("shortlist --format must be markdown or json");
|
|
293
|
+
}
|
|
294
|
+
const top = Number(options.top);
|
|
295
|
+
const result = buildLeadShortlist(await readFile(options.input, "utf8"), { top });
|
|
296
|
+
await mkdir(dirname(options.out), { recursive: true });
|
|
297
|
+
await writeFile(options.out, format === "json" ? renderShortlistJson(result) : renderShortlistMarkdown(result), "utf8");
|
|
298
|
+
process.stdout.write(`Shortlisted ${result.selected} of ${result.totalRows} lead${result.totalRows === 1 ? "" : "s"}\n`);
|
|
299
|
+
process.stdout.write(`Output: ${options.out}\n`);
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
303
|
+
process.stderr.write(`open-local-audit: ${message}\n`);
|
|
304
|
+
process.exitCode = 1;
|
|
305
|
+
}
|
|
306
|
+
});
|
|
244
307
|
program
|
|
245
308
|
.name("open-local-audit")
|
|
246
309
|
.description("Audit a public local-business website and generate an evidence-backed report.")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,15 @@ export { shouldFailOnThreshold } from "./exit-policy.js";
|
|
|
7
7
|
export { renderExportValidationJson, renderExportValidationMarkdown, validateCrmExportCsv } from "./export-validation.js";
|
|
8
8
|
export { auditProfiles } from "./profiles.js";
|
|
9
9
|
export { writeReportOutputs } from "./output.js";
|
|
10
|
+
export { packageReport } from "./report-pack.js";
|
|
10
11
|
export { runLighthouseAudit } from "./lighthouse.js";
|
|
11
12
|
export { renderPdfReport } from "./pdf.js";
|
|
12
13
|
export { renderHtmlReport, renderJsonReport, renderMarkdownReport } from "./reporters.js";
|
|
14
|
+
export { buildLeadShortlist, renderShortlistJson, renderShortlistMarkdown } from "./shortlist.js";
|
|
13
15
|
export { renderTerminalSummary } from "./summary.js";
|
|
14
16
|
export type { BatchAuditContext, BatchIndexOptions, BatchInputEntry, BatchReportOptions, BatchReportResult, BatchCsvExportPreset, FailedBatchReportResult, SuccessfulBatchReportResult } from "./batch.js";
|
|
15
17
|
export type { DiscoveryAuditResult, DiscoveryProviderName, DiscoverySummary, DuplicateProspectGroup, FetchGooglePlacesCandidatesOptions, FuzzyDuplicateConfidence, FuzzyDuplicateProspectGroup, LeadReviewRow, LeadSuppressionEntry, PlaceCandidate, ProspectExportRow, ProspectCsvExportPreset, ProspectRowInput, ReadManualDiscoveryCsvOptions, WebsiteResolution } from "./discovery.js";
|
|
16
18
|
export type { ExportValidationFormat, ExportValidationIssue, ExportValidationPreset, ExportValidationResult, ExportValidationSeverity, ExportValidationSummary } from "./export-validation.js";
|
|
19
|
+
export type { ReportPackManifest, ReportPackOptions, ReportPackResult } from "./report-pack.js";
|
|
20
|
+
export type { ShortlistFormat, ShortlistLead, ShortlistOptions, ShortlistResult } from "./shortlist.js";
|
|
17
21
|
export type { AuditOptions, AuditProfile, AuditReport, AuditSummary, Evidence, Finding, FindingCategory, LighthouseCategoryScores, LighthouseRunner, LighthouseSummary, PublicContact, ReportBrandConfig, ReportRenderOptions, PageSnapshot, Score, Severity } from "./types.js";
|
package/dist/index.js
CHANGED
|
@@ -7,8 +7,10 @@ export { shouldFailOnThreshold } from "./exit-policy.js";
|
|
|
7
7
|
export { renderExportValidationJson, renderExportValidationMarkdown, validateCrmExportCsv } from "./export-validation.js";
|
|
8
8
|
export { auditProfiles } from "./profiles.js";
|
|
9
9
|
export { writeReportOutputs } from "./output.js";
|
|
10
|
+
export { packageReport } from "./report-pack.js";
|
|
10
11
|
export { runLighthouseAudit } from "./lighthouse.js";
|
|
11
12
|
export { renderPdfReport } from "./pdf.js";
|
|
12
13
|
export { renderHtmlReport, renderJsonReport, renderMarkdownReport } from "./reporters.js";
|
|
14
|
+
export { buildLeadShortlist, renderShortlistJson, renderShortlistMarkdown } from "./shortlist.js";
|
|
13
15
|
export { renderTerminalSummary } from "./summary.js";
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface ReportPackOptions {
|
|
2
|
+
inputDir: string;
|
|
3
|
+
outDir: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ReportPackManifest {
|
|
6
|
+
generatedAt: string;
|
|
7
|
+
sourceReport: string;
|
|
8
|
+
url: string;
|
|
9
|
+
finalUrl: string;
|
|
10
|
+
score: number;
|
|
11
|
+
files: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface ReportPackResult {
|
|
14
|
+
outDir: string;
|
|
15
|
+
manifest: ReportPackManifest;
|
|
16
|
+
}
|
|
17
|
+
export declare function packageReport(options: ReportPackOptions): Promise<ReportPackResult>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { copyFile, mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
const reportFileNames = [
|
|
4
|
+
"open-local-audit-report.json",
|
|
5
|
+
"open-local-audit-report.md",
|
|
6
|
+
"open-local-audit-report.html",
|
|
7
|
+
"open-local-audit-report.pdf"
|
|
8
|
+
];
|
|
9
|
+
function totalScore(report) {
|
|
10
|
+
const scores = Object.values(report.scores);
|
|
11
|
+
return scores.length === 0 ? 0 : Math.round(scores.reduce((total, score) => total + score.score, 0) / scores.length);
|
|
12
|
+
}
|
|
13
|
+
function severityRank(finding) {
|
|
14
|
+
return {
|
|
15
|
+
high: 0,
|
|
16
|
+
medium: 1,
|
|
17
|
+
low: 2,
|
|
18
|
+
info: 3
|
|
19
|
+
}[finding.severity];
|
|
20
|
+
}
|
|
21
|
+
function topFindings(report) {
|
|
22
|
+
return [...report.findings].sort((left, right) => severityRank(left) - severityRank(right)).slice(0, 5);
|
|
23
|
+
}
|
|
24
|
+
async function fileExists(path) {
|
|
25
|
+
try {
|
|
26
|
+
const info = await stat(path);
|
|
27
|
+
return info.isFile();
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function readAuditReport(inputDir) {
|
|
37
|
+
const reportPath = join(inputDir, "open-local-audit-report.json");
|
|
38
|
+
if (!(await fileExists(reportPath))) {
|
|
39
|
+
throw new Error("package-report requires open-local-audit-report.json in the input directory");
|
|
40
|
+
}
|
|
41
|
+
return JSON.parse(await readFile(reportPath, "utf8"));
|
|
42
|
+
}
|
|
43
|
+
function renderReadme(report, manifest) {
|
|
44
|
+
const findings = topFindings(report);
|
|
45
|
+
return `${[
|
|
46
|
+
"# Open Local Audit Report Pack",
|
|
47
|
+
"",
|
|
48
|
+
`- Website: ${report.finalUrl}`,
|
|
49
|
+
`- Overall score: ${manifest.score}/100`,
|
|
50
|
+
`- Generated: ${manifest.generatedAt}`,
|
|
51
|
+
"",
|
|
52
|
+
"## Included Files",
|
|
53
|
+
"",
|
|
54
|
+
...manifest.files.map((file) => `- ${file}`),
|
|
55
|
+
"",
|
|
56
|
+
"## Top Findings",
|
|
57
|
+
"",
|
|
58
|
+
...(findings.length > 0
|
|
59
|
+
? findings.map((finding) => `- [${finding.severity}] ${finding.title}: ${finding.recommendation}`)
|
|
60
|
+
: ["- No findings were detected by the current rule set."]),
|
|
61
|
+
"",
|
|
62
|
+
"## Notes",
|
|
63
|
+
"",
|
|
64
|
+
"This package is local output only. It does not send outreach, upload reports, or sync data to a CRM."
|
|
65
|
+
].join("\n")}\n`;
|
|
66
|
+
}
|
|
67
|
+
function renderNextActions(report) {
|
|
68
|
+
const findings = topFindings(report);
|
|
69
|
+
return `${[
|
|
70
|
+
"# Next Actions",
|
|
71
|
+
"",
|
|
72
|
+
`Website: ${report.finalUrl}`,
|
|
73
|
+
"",
|
|
74
|
+
"## Recommended Fix Order",
|
|
75
|
+
"",
|
|
76
|
+
...(findings.length > 0
|
|
77
|
+
? findings.map((finding, index) => `${index + 1}. ${finding.recommendation}`)
|
|
78
|
+
: ["1. Keep monitoring the page as content and templates change."]),
|
|
79
|
+
"",
|
|
80
|
+
"## Contact Readiness",
|
|
81
|
+
"",
|
|
82
|
+
`- Confidence: ${report.contact?.contactConfidence ?? "None"}`,
|
|
83
|
+
`- Public email: ${report.contact?.publicEmail ?? ""}`,
|
|
84
|
+
`- Public phone: ${report.contact?.publicPhone ?? ""}`,
|
|
85
|
+
`- Contact page: ${report.contact?.contactPageUrl ?? ""}`
|
|
86
|
+
].join("\n")}\n`;
|
|
87
|
+
}
|
|
88
|
+
export async function packageReport(options) {
|
|
89
|
+
const report = await readAuditReport(options.inputDir);
|
|
90
|
+
const reportsDir = join(options.outDir, "reports");
|
|
91
|
+
await mkdir(reportsDir, { recursive: true });
|
|
92
|
+
const files = [];
|
|
93
|
+
for (const fileName of reportFileNames) {
|
|
94
|
+
const sourcePath = join(options.inputDir, fileName);
|
|
95
|
+
if (await fileExists(sourcePath)) {
|
|
96
|
+
const targetPath = join(reportsDir, fileName);
|
|
97
|
+
await copyFile(sourcePath, targetPath);
|
|
98
|
+
files.push(`reports/${basename(targetPath)}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const manifest = {
|
|
102
|
+
generatedAt: new Date().toISOString(),
|
|
103
|
+
sourceReport: "open-local-audit-report.json",
|
|
104
|
+
url: report.url,
|
|
105
|
+
finalUrl: report.finalUrl,
|
|
106
|
+
score: totalScore(report),
|
|
107
|
+
files: ["README.md", "next-actions.md", "manifest.json", ...files]
|
|
108
|
+
};
|
|
109
|
+
await writeFile(join(options.outDir, "README.md"), renderReadme(report, manifest), "utf8");
|
|
110
|
+
await writeFile(join(options.outDir, "next-actions.md"), renderNextActions(report), "utf8");
|
|
111
|
+
await writeFile(join(options.outDir, "manifest.json"), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
112
|
+
return {
|
|
113
|
+
outDir: options.outDir,
|
|
114
|
+
manifest
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=report-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-pack.js","sourceRoot":"","sources":["../src/report-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type ShortlistFormat = "markdown" | "json";
|
|
2
|
+
export interface ShortlistOptions {
|
|
3
|
+
top?: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ShortlistLead {
|
|
6
|
+
rank: number;
|
|
7
|
+
companyName: string;
|
|
8
|
+
website: string;
|
|
9
|
+
segment: string;
|
|
10
|
+
profile: string;
|
|
11
|
+
priority: string;
|
|
12
|
+
score?: number;
|
|
13
|
+
opportunityScore?: number;
|
|
14
|
+
topFinding: string;
|
|
15
|
+
contactConfidence: string;
|
|
16
|
+
preferredContactChannel: string;
|
|
17
|
+
contactabilityReason: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
reportPath: string;
|
|
20
|
+
leadKey: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ShortlistResult {
|
|
23
|
+
totalRows: number;
|
|
24
|
+
selected: number;
|
|
25
|
+
leads: ShortlistLead[];
|
|
26
|
+
}
|
|
27
|
+
export declare function buildLeadShortlist(content: string, options?: ShortlistOptions): ShortlistResult;
|
|
28
|
+
export declare function renderShortlistJson(result: ShortlistResult): string;
|
|
29
|
+
export declare function renderShortlistMarkdown(result: ShortlistResult): string;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { cleanInputLines, parseCsvLine } from "./csv.js";
|
|
2
|
+
const priorityRank = {
|
|
3
|
+
high: 3,
|
|
4
|
+
medium: 2,
|
|
5
|
+
low: 1
|
|
6
|
+
};
|
|
7
|
+
const confidenceRank = {
|
|
8
|
+
High: 3,
|
|
9
|
+
Medium: 2,
|
|
10
|
+
Low: 1,
|
|
11
|
+
None: 0
|
|
12
|
+
};
|
|
13
|
+
function value(row, ...columns) {
|
|
14
|
+
for (const column of columns) {
|
|
15
|
+
const raw = row[column]?.trim();
|
|
16
|
+
if (raw) {
|
|
17
|
+
return raw;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return "";
|
|
21
|
+
}
|
|
22
|
+
function numberValue(row, ...columns) {
|
|
23
|
+
const raw = value(row, ...columns);
|
|
24
|
+
if (!raw) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const parsed = Number(raw);
|
|
28
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
29
|
+
}
|
|
30
|
+
function parseRows(content) {
|
|
31
|
+
const lines = cleanInputLines(content);
|
|
32
|
+
if (lines.length < 2) {
|
|
33
|
+
throw new Error("shortlist requires a CSV file with a header and at least one lead row");
|
|
34
|
+
}
|
|
35
|
+
const headers = parseCsvLine(lines[0]);
|
|
36
|
+
return lines.slice(1).map((line) => {
|
|
37
|
+
const cells = parseCsvLine(line);
|
|
38
|
+
return Object.fromEntries(headers.map((header, index) => [header, cells[index] ?? ""]));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function fallbackCompanyName(row) {
|
|
42
|
+
const direct = value(row, "companyName", "label");
|
|
43
|
+
if (direct) {
|
|
44
|
+
return direct;
|
|
45
|
+
}
|
|
46
|
+
const website = value(row, "website", "websiteUrl", "url");
|
|
47
|
+
if (website) {
|
|
48
|
+
try {
|
|
49
|
+
return new URL(website).hostname.replace(/^www\./, "");
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return website;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return value(row, "leadKey") || "Unknown lead";
|
|
56
|
+
}
|
|
57
|
+
function leadReason(row) {
|
|
58
|
+
const opportunityReasons = value(row, "opportunityReasons");
|
|
59
|
+
if (opportunityReasons) {
|
|
60
|
+
return opportunityReasons;
|
|
61
|
+
}
|
|
62
|
+
const topFinding = value(row, "topFinding");
|
|
63
|
+
if (topFinding) {
|
|
64
|
+
return topFinding;
|
|
65
|
+
}
|
|
66
|
+
const contactabilityReason = value(row, "contactabilityReason");
|
|
67
|
+
if (contactabilityReason) {
|
|
68
|
+
return contactabilityReason;
|
|
69
|
+
}
|
|
70
|
+
return "Review the report for the strongest local improvement opportunity.";
|
|
71
|
+
}
|
|
72
|
+
function normalizeLead(row) {
|
|
73
|
+
return {
|
|
74
|
+
companyName: fallbackCompanyName(row),
|
|
75
|
+
website: value(row, "website", "websiteUrl", "url"),
|
|
76
|
+
segment: value(row, "segment"),
|
|
77
|
+
profile: value(row, "profile"),
|
|
78
|
+
priority: value(row, "priority"),
|
|
79
|
+
score: numberValue(row, "score"),
|
|
80
|
+
opportunityScore: numberValue(row, "opportunityScore"),
|
|
81
|
+
topFinding: value(row, "topFinding"),
|
|
82
|
+
contactConfidence: value(row, "contactConfidence") || "None",
|
|
83
|
+
preferredContactChannel: value(row, "preferredContactChannel"),
|
|
84
|
+
contactabilityReason: value(row, "contactabilityReason"),
|
|
85
|
+
reason: leadReason(row),
|
|
86
|
+
reportPath: value(row, "reportPath", "report paths"),
|
|
87
|
+
leadKey: value(row, "leadKey")
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function sortLeads(left, right) {
|
|
91
|
+
return ((right.opportunityScore ?? -1) - (left.opportunityScore ?? -1) ||
|
|
92
|
+
(priorityRank[right.priority.toLowerCase()] ?? 0) - (priorityRank[left.priority.toLowerCase()] ?? 0) ||
|
|
93
|
+
(confidenceRank[right.contactConfidence] ?? 0) - (confidenceRank[left.contactConfidence] ?? 0) ||
|
|
94
|
+
(right.score ?? -1) - (left.score ?? -1) ||
|
|
95
|
+
left.companyName.localeCompare(right.companyName));
|
|
96
|
+
}
|
|
97
|
+
export function buildLeadShortlist(content, options = {}) {
|
|
98
|
+
const rows = parseRows(content);
|
|
99
|
+
const top = options.top ?? 20;
|
|
100
|
+
if (!Number.isInteger(top) || top < 1) {
|
|
101
|
+
throw new Error("shortlist --top must be a positive integer");
|
|
102
|
+
}
|
|
103
|
+
const leads = rows
|
|
104
|
+
.map(normalizeLead)
|
|
105
|
+
.sort(sortLeads)
|
|
106
|
+
.slice(0, top)
|
|
107
|
+
.map((lead, index) => ({
|
|
108
|
+
rank: index + 1,
|
|
109
|
+
...lead
|
|
110
|
+
}));
|
|
111
|
+
return {
|
|
112
|
+
totalRows: rows.length,
|
|
113
|
+
selected: leads.length,
|
|
114
|
+
leads
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export function renderShortlistJson(result) {
|
|
118
|
+
return `${JSON.stringify(result, null, 2)}\n`;
|
|
119
|
+
}
|
|
120
|
+
function markdownCell(value) {
|
|
121
|
+
return (value ?? "").toString().replace(/\|/g, "\\|").replace(/\r?\n/g, " ");
|
|
122
|
+
}
|
|
123
|
+
export function renderShortlistMarkdown(result) {
|
|
124
|
+
const rows = result.leads.map((lead) => `| ${[
|
|
125
|
+
lead.rank,
|
|
126
|
+
lead.companyName,
|
|
127
|
+
lead.website,
|
|
128
|
+
lead.priority,
|
|
129
|
+
lead.opportunityScore ?? "",
|
|
130
|
+
lead.score ?? "",
|
|
131
|
+
lead.contactConfidence,
|
|
132
|
+
lead.preferredContactChannel,
|
|
133
|
+
lead.reason,
|
|
134
|
+
lead.reportPath
|
|
135
|
+
]
|
|
136
|
+
.map(markdownCell)
|
|
137
|
+
.join(" | ")} |`);
|
|
138
|
+
return `${[
|
|
139
|
+
"# Lead Shortlist",
|
|
140
|
+
"",
|
|
141
|
+
`- Total rows: ${result.totalRows}`,
|
|
142
|
+
`- Selected leads: ${result.selected}`,
|
|
143
|
+
"",
|
|
144
|
+
"| Rank | Company | Website | Priority | Opportunity | Score | Contact | Channel | Reason | Report |",
|
|
145
|
+
"| ---: | --- | --- | --- | ---: | ---: | --- | --- | --- | --- |",
|
|
146
|
+
...rows
|
|
147
|
+
].join("\n")}\n`;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=shortlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortlist.js","sourceRoot":"","sources":["../src/shortlist.ts"],"names":[],"mappings":"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"}
|