open-local-audit 0.12.0 → 0.14.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/dist/discovery.js CHANGED
@@ -358,6 +358,85 @@ function opportunityScoreFor(input) {
358
358
  }
359
359
  return input.resolution.hasWebsite ? 55 : 95;
360
360
  }
361
+ function opportunityReasonsFor(input) {
362
+ if (input.resolution.status === "missing") {
363
+ return ["No website URL found", "Website-build opportunity"];
364
+ }
365
+ if (input.resolution.status === "invalid") {
366
+ return ["Website URL is invalid", "Manual cleanup needed before audit"];
367
+ }
368
+ if (input.audit?.status === "failed") {
369
+ return ["Audit failed and needs manual review"];
370
+ }
371
+ if (input.audit?.status === "success") {
372
+ const score = input.audit.score ?? 0;
373
+ const reasons = [];
374
+ if (score < 60) {
375
+ reasons.push("Audit score is below 60");
376
+ }
377
+ else if (score < 80) {
378
+ reasons.push("Audit score is below 80");
379
+ }
380
+ else {
381
+ reasons.push("Audit score is 80 or higher");
382
+ }
383
+ if (input.audit.topFinding) {
384
+ reasons.push(`Top finding: ${input.audit.topFinding}`);
385
+ }
386
+ return reasons;
387
+ }
388
+ return input.resolution.hasWebsite ? ["Website found but not audited yet"] : ["No website URL found"];
389
+ }
390
+ function enrichmentFor(input) {
391
+ const reasons = opportunityReasonsFor(input);
392
+ if (input.resolution.status === "missing") {
393
+ return {
394
+ pitchAngle: "Launch a credible local website",
395
+ recommendedOffer: "Starter website build",
396
+ estimatedNeed: "High",
397
+ outreachPriorityReason: reasons.join("; ")
398
+ };
399
+ }
400
+ if (input.audit?.status === "success") {
401
+ const score = input.audit.score ?? 0;
402
+ if (score < 60) {
403
+ return {
404
+ pitchAngle: "Fix visible conversion blockers",
405
+ recommendedOffer: "Conversion-focused website tune-up",
406
+ estimatedNeed: "High",
407
+ outreachPriorityReason: reasons.join("; ")
408
+ };
409
+ }
410
+ if (score < 80) {
411
+ return {
412
+ pitchAngle: "Improve local trust signals",
413
+ recommendedOffer: "Local SEO and trust cleanup",
414
+ estimatedNeed: "Medium",
415
+ outreachPriorityReason: reasons.join("; ")
416
+ };
417
+ }
418
+ return {
419
+ pitchAngle: "Maintain a healthy local presence",
420
+ recommendedOffer: "Monitoring and periodic audit",
421
+ estimatedNeed: "Low",
422
+ outreachPriorityReason: reasons.join("; ")
423
+ };
424
+ }
425
+ if (input.audit?.status === "failed") {
426
+ return {
427
+ pitchAngle: "Manually qualify technical blockers",
428
+ recommendedOffer: "Manual audit follow-up",
429
+ estimatedNeed: "Medium",
430
+ outreachPriorityReason: reasons.join("; ")
431
+ };
432
+ }
433
+ return {
434
+ pitchAngle: input.resolution.hasWebsite ? "Qualify website improvement potential" : "Launch a credible local website",
435
+ recommendedOffer: input.resolution.hasWebsite ? "Website audit follow-up" : "Starter website build",
436
+ estimatedNeed: input.resolution.hasWebsite ? "Medium" : "High",
437
+ outreachPriorityReason: reasons.join("; ")
438
+ };
439
+ }
361
440
  function hasWebsiteValue(resolution) {
362
441
  if (resolution.status === "resolved") {
363
442
  return "yes";
@@ -371,6 +450,7 @@ export function buildProspectRows(inputs) {
371
450
  return inputs.map((input) => {
372
451
  const audit = input.audit ?? { status: "not-audited" };
373
452
  const priority = priorityFor(input);
453
+ const enrichment = enrichmentFor(input);
374
454
  return {
375
455
  leadKey: stableLeadKey(input),
376
456
  source: input.candidate.source,
@@ -384,6 +464,8 @@ export function buildProspectRows(inputs) {
384
464
  score: audit.score,
385
465
  topFinding: audit.topFinding,
386
466
  opportunityScore: opportunityScoreFor(input),
467
+ opportunityReasons: opportunityReasonsFor(input),
468
+ ...enrichment,
387
469
  ...priority,
388
470
  reviewStatus: "new",
389
471
  reportPath: audit.reportPath,
@@ -424,6 +506,11 @@ export function renderProspectRowsCsv(rows) {
424
506
  "score",
425
507
  "topFinding",
426
508
  "opportunityScore",
509
+ "opportunityReasons",
510
+ "pitchAngle",
511
+ "recommendedOffer",
512
+ "estimatedNeed",
513
+ "outreachPriorityReason",
427
514
  "priority",
428
515
  "nextAction",
429
516
  "reviewStatus",
@@ -445,6 +532,11 @@ export function renderProspectRowsCsv(rows) {
445
532
  row.score?.toString() ?? "",
446
533
  row.topFinding ?? "",
447
534
  row.opportunityScore.toString(),
535
+ row.opportunityReasons.join("; "),
536
+ row.pitchAngle,
537
+ row.recommendedOffer,
538
+ row.estimatedNeed,
539
+ row.outreachPriorityReason,
448
540
  row.priority,
449
541
  row.nextAction,
450
542
  row.reviewStatus,
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  export { auditUrl, auditSnapshot } from "./audit.js";
2
2
  export { readBatchInput, readInputUrls, runBatchReports, safeReportSlug } from "./batch.js";
3
+ export { readBrandConfig } from "./brand.js";
3
4
  export { buildDiscoverySummary, buildProspectRows, findDuplicateProspectGroups, fetchGooglePlacesCandidates, filterSuppressedProspects, mergeDiscoveryReviewRows, readLeadSuppressionCsv, readLeadReviewCsv, readManualDiscoveryCsv, renderDiscoveryReviewCsv, renderProspectRowsCsv, resolveCandidateWebsite, stableLeadKey } from "./discovery.js";
4
5
  export { shouldFailOnThreshold } from "./exit-policy.js";
5
6
  export { auditProfiles } from "./profiles.js";
6
7
  export { writeReportOutputs } from "./output.js";
8
+ export { runLighthouseAudit } from "./lighthouse.js";
9
+ export { renderPdfReport } from "./pdf.js";
7
10
  export { renderHtmlReport, renderJsonReport, renderMarkdownReport } from "./reporters.js";
8
11
  export { renderTerminalSummary } from "./summary.js";
9
12
  export type { BatchAuditContext, BatchIndexOptions, BatchInputEntry, BatchReportOptions, BatchReportResult, FailedBatchReportResult, SuccessfulBatchReportResult } from "./batch.js";
10
13
  export type { DiscoveryAuditResult, DiscoveryProviderName, DiscoverySummary, DuplicateProspectGroup, FetchGooglePlacesCandidatesOptions, LeadReviewRow, LeadSuppressionEntry, PlaceCandidate, ProspectExportRow, ProspectRowInput, ReadManualDiscoveryCsvOptions, WebsiteResolution } from "./discovery.js";
11
- export type { AuditOptions, AuditProfile, AuditReport, AuditSummary, Evidence, Finding, FindingCategory, PageSnapshot, Score, Severity } from "./types.js";
14
+ export type { AuditOptions, AuditProfile, AuditReport, AuditSummary, Evidence, Finding, FindingCategory, LighthouseCategoryScores, LighthouseRunner, LighthouseSummary, ReportBrandConfig, ReportRenderOptions, PageSnapshot, Score, Severity } from "./types.js";
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  export { auditUrl, auditSnapshot } from "./audit.js";
2
2
  export { readBatchInput, readInputUrls, runBatchReports, safeReportSlug } from "./batch.js";
3
+ export { readBrandConfig } from "./brand.js";
3
4
  export { buildDiscoverySummary, buildProspectRows, findDuplicateProspectGroups, fetchGooglePlacesCandidates, filterSuppressedProspects, mergeDiscoveryReviewRows, readLeadSuppressionCsv, readLeadReviewCsv, readManualDiscoveryCsv, renderDiscoveryReviewCsv, renderProspectRowsCsv, resolveCandidateWebsite, stableLeadKey } from "./discovery.js";
4
5
  export { shouldFailOnThreshold } from "./exit-policy.js";
5
6
  export { auditProfiles } from "./profiles.js";
6
7
  export { writeReportOutputs } from "./output.js";
8
+ export { runLighthouseAudit } from "./lighthouse.js";
9
+ export { renderPdfReport } from "./pdf.js";
7
10
  export { renderHtmlReport, renderJsonReport, renderMarkdownReport } from "./reporters.js";
8
11
  export { renderTerminalSummary } from "./summary.js";
9
12
  //# 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,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,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,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,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,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,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,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"}
@@ -0,0 +1,4 @@
1
+ import type { LighthouseSummary } from "./types.js";
2
+ export declare function runLighthouseAudit(url: string, options: {
3
+ timeoutMs: number;
4
+ }): Promise<LighthouseSummary>;
@@ -0,0 +1,49 @@
1
+ function normalizeScore(score) {
2
+ return typeof score === "number" ? Math.round(score * 100) : undefined;
3
+ }
4
+ function categoryScores(categories) {
5
+ return {
6
+ performance: normalizeScore(categories.performance?.score),
7
+ accessibility: normalizeScore(categories.accessibility?.score),
8
+ bestPractices: normalizeScore(categories["best-practices"]?.score),
9
+ seo: normalizeScore(categories.seo?.score)
10
+ };
11
+ }
12
+ export async function runLighthouseAudit(url, options) {
13
+ const [{ default: lighthouse }, chromeLauncher] = await Promise.all([
14
+ import("lighthouse"),
15
+ import("chrome-launcher")
16
+ ]);
17
+ let chrome;
18
+ try {
19
+ chrome = await chromeLauncher.launch({
20
+ chromeFlags: ["--headless=new", "--disable-gpu", "--no-sandbox"]
21
+ });
22
+ const result = await lighthouse(url, {
23
+ port: chrome.port,
24
+ logLevel: "error",
25
+ onlyCategories: ["performance", "accessibility", "best-practices", "seo"],
26
+ maxWaitForLoad: options.timeoutMs,
27
+ output: ["json"]
28
+ });
29
+ if (!result) {
30
+ throw new Error("Lighthouse did not return a result");
31
+ }
32
+ const lhr = result.lhr;
33
+ return {
34
+ requestedUrl: lhr.requestedUrl ?? url,
35
+ finalUrl: lhr.finalDisplayedUrl || lhr.finalUrl,
36
+ fetchTime: lhr.fetchTime,
37
+ categories: categoryScores(lhr.categories),
38
+ warnings: lhr.runWarnings.length > 0 ? lhr.runWarnings : undefined
39
+ };
40
+ }
41
+ catch (error) {
42
+ const message = error instanceof Error ? error.message : "Unknown Lighthouse error";
43
+ throw new Error(`Lighthouse audit failed: ${message}`);
44
+ }
45
+ finally {
46
+ await chrome?.kill();
47
+ }
48
+ }
49
+ //# sourceMappingURL=lighthouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lighthouse.js","sourceRoot":"","sources":["../src/lighthouse.ts"],"names":[],"mappings":"AAKA,SAAS,cAAc,CAAC,KAAgC;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,SAAS,cAAc,CAAC,UAAiE;IACvF,OAAO;QACL,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;QAC1D,aAAa,EAAE,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC;QAC9D,aAAa,EAAE,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAClE,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAA8B;IAClF,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,cAAc,CAAC,GAA6C,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5G,MAAM,CAAC,YAAY,CAAC;QACpB,MAAM,CAAC,iBAAiB,CAAC;KAC1B,CAAC,CAAC;IACH,IAAI,MAAuE,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC;YACnC,WAAW,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;YACzE,cAAc,EAAE,OAAO,CAAC,SAAS;YACjC,MAAM,EAAE,CAAC,MAAM,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,OAAO;YACL,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG;YACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;YAC1C,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
package/dist/output.d.ts CHANGED
@@ -1,14 +1,15 @@
1
- import type { AuditReport } from "./types.js";
2
- export type OutputFormat = "json" | "markdown" | "html" | "all";
1
+ import type { AuditReport, ReportBrandConfig } from "./types.js";
2
+ export type OutputFormat = "json" | "markdown" | "html" | "pdf" | "all";
3
3
  export interface ReportOutputOptions {
4
4
  format: OutputFormat;
5
5
  out?: string;
6
6
  outDir?: string;
7
7
  pretty?: boolean;
8
+ brand?: ReportBrandConfig;
8
9
  }
9
10
  export interface ReportOutput {
10
11
  format: Exclude<OutputFormat, "all">;
11
- content: string;
12
+ content: string | Buffer;
12
13
  path?: string;
13
14
  }
14
15
  export declare function writeReportOutputs(report: AuditReport, options: ReportOutputOptions): Promise<ReportOutput[]>;
package/dist/output.js CHANGED
@@ -1,34 +1,41 @@
1
1
  import { mkdir, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
+ import { renderPdfReport } from "./pdf.js";
3
4
  import { renderHtmlReport, renderJsonReport, renderMarkdownReport } from "./reporters.js";
4
- function outputFor(report, format, pretty) {
5
- const contentByFormat = {
6
- json: renderJsonReport(report, pretty),
7
- markdown: renderMarkdownReport(report),
8
- html: renderHtmlReport(report)
9
- };
5
+ async function outputFor(report, format, options) {
6
+ const pretty = options.pretty ?? false;
10
7
  return {
11
8
  format,
12
- content: contentByFormat[format]
9
+ content: format === "json"
10
+ ? renderJsonReport(report, pretty)
11
+ : format === "markdown"
12
+ ? renderMarkdownReport(report, { brand: options.brand })
13
+ : format === "html"
14
+ ? renderHtmlReport(report, { brand: options.brand })
15
+ : await renderPdfReport(report, { brand: options.brand })
13
16
  };
14
17
  }
15
18
  function defaultReportName(format) {
16
19
  const extension = {
17
20
  json: "json",
18
21
  markdown: "md",
19
- html: "html"
22
+ html: "html",
23
+ pdf: "pdf"
20
24
  }[format];
21
25
  return `open-local-audit-report.${extension}`;
22
26
  }
23
27
  export async function writeReportOutputs(report, options) {
24
28
  const pretty = options.pretty ?? false;
25
29
  const formats = options.format === "all" ? ["json", "markdown", "html"] : [options.format];
26
- const outputs = formats.map((format) => outputFor(report, format, pretty));
30
+ const outputs = await Promise.all(formats.map((format) => outputFor(report, format, { pretty, brand: options.brand })));
31
+ if (options.format === "pdf" && !options.outDir && !options.out) {
32
+ throw new Error("--out or --out-dir is required when --format pdf is used");
33
+ }
27
34
  if (options.outDir) {
28
35
  await mkdir(options.outDir, { recursive: true });
29
36
  for (const output of outputs) {
30
37
  output.path = join(options.outDir, defaultReportName(output.format));
31
- await writeFile(output.path, output.content, "utf8");
38
+ await writeFile(output.path, output.content);
32
39
  }
33
40
  return outputs;
34
41
  }
@@ -37,7 +44,7 @@ export async function writeReportOutputs(report, options) {
37
44
  }
38
45
  if (options.out) {
39
46
  outputs[0].path = options.out;
40
- await writeFile(options.out, outputs[0].content, "utf8");
47
+ await writeFile(options.out, outputs[0].content);
41
48
  }
42
49
  return outputs;
43
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAkB1F,SAAS,SAAS,CAAC,MAAmB,EAAE,MAAoC,EAAE,MAAe;IAC3F,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;QACtC,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;KAC/B,CAAC;IAEF,OAAO;QACL,MAAM;QACN,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAoC;IAC7D,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM;KACb,CAAC,MAAM,CAAC,CAAC;IAEV,OAAO,2BAA2B,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAmB,EAAE,OAA4B;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;QAC9B,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/dist/pdf.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import type { AuditReport, ReportRenderOptions } from "./types.js";
2
+ export declare function renderPdfReport(report: AuditReport, options?: ReportRenderOptions): Promise<Buffer>;
package/dist/pdf.js ADDED
@@ -0,0 +1,84 @@
1
+ import PDFDocument from "pdfkit";
2
+ function overallScore(report) {
3
+ const scores = Object.values(report.scores);
4
+ return scores.length === 0 ? 0 : Math.round(scores.reduce((total, score) => total + score.score, 0) / scores.length);
5
+ }
6
+ function severityLabel(severity) {
7
+ return severity.toUpperCase();
8
+ }
9
+ function writeKeyValue(doc, label, value) {
10
+ doc.font("Helvetica-Bold").text(`${label}: `, { continued: true });
11
+ doc.font("Helvetica").text(value);
12
+ }
13
+ function writeSectionTitle(doc, title) {
14
+ doc.moveDown(1);
15
+ doc.font("Helvetica-Bold").fontSize(14).fillColor("#145a73").text(title);
16
+ doc.moveDown(0.3);
17
+ doc.font("Helvetica").fontSize(10).fillColor("#172026");
18
+ }
19
+ export async function renderPdfReport(report, options = {}) {
20
+ const brand = options.brand;
21
+ const brandName = brand?.name ?? "Open Local Audit";
22
+ const primaryColor = brand?.primaryColor ?? "#145a73";
23
+ const accentColor = brand?.accentColor ?? "#2f7d5f";
24
+ const doc = new PDFDocument({
25
+ size: "A4",
26
+ margin: 48,
27
+ info: {
28
+ Title: `${brandName} Report`,
29
+ Author: brandName
30
+ }
31
+ });
32
+ const chunks = [];
33
+ doc.on("data", (chunk) => chunks.push(chunk));
34
+ const finished = new Promise((resolve, reject) => {
35
+ doc.on("end", () => resolve(Buffer.concat(chunks)));
36
+ doc.on("error", reject);
37
+ });
38
+ doc.rect(0, 0, doc.page.width, 92).fill(primaryColor);
39
+ doc.fillColor("#ffffff").font("Helvetica-Bold").fontSize(22).text(`${brandName} Report`, 48, 32);
40
+ doc.font("Helvetica").fontSize(10).text("Evidence-backed local business website audit", 48, 60);
41
+ doc.fillColor("#172026").fontSize(10).text("", 48, 118);
42
+ writeKeyValue(doc, "URL", report.url);
43
+ writeKeyValue(doc, "Final URL", report.finalUrl);
44
+ writeKeyValue(doc, "Scanned at", report.scannedAt);
45
+ writeKeyValue(doc, "Profile", report.profile ?? "generic");
46
+ doc.moveDown(0.8);
47
+ doc.font("Helvetica-Bold").fontSize(18).fillColor(accentColor).text(`Overall Health: ${overallScore(report)}/100`);
48
+ doc.font("Helvetica").fontSize(10).fillColor("#172026").text(`Priority Findings: ${report.summary.high + report.summary.medium} Total Findings: ${report.summary.totalFindings}`);
49
+ writeSectionTitle(doc, "Score Summary");
50
+ for (const score of Object.values(report.scores)) {
51
+ writeKeyValue(doc, score.label, `${score.score}/${score.max}`);
52
+ }
53
+ writeSectionTitle(doc, "Executive Summary");
54
+ const firstFinding = [...report.findings].sort((left, right) => {
55
+ const ranks = { high: 0, medium: 1, low: 2, info: 3 };
56
+ return ranks[left.severity] - ranks[right.severity];
57
+ })[0];
58
+ writeKeyValue(doc, "Recommended first fix", firstFinding?.recommendation ?? "Keep monitoring the page as content and templates change.");
59
+ if (report.lighthouse) {
60
+ writeSectionTitle(doc, "Lighthouse Summary");
61
+ const categories = report.lighthouse.categories;
62
+ writeKeyValue(doc, "Performance", categories.performance?.toString() ?? "N/A");
63
+ writeKeyValue(doc, "Accessibility", categories.accessibility?.toString() ?? "N/A");
64
+ writeKeyValue(doc, "Best practices", categories.bestPractices?.toString() ?? "N/A");
65
+ writeKeyValue(doc, "SEO", categories.seo?.toString() ?? "N/A");
66
+ }
67
+ writeSectionTitle(doc, "Priority Findings");
68
+ for (const finding of report.findings.slice(0, 8)) {
69
+ doc.font("Helvetica-Bold").fillColor("#172026").text(`${severityLabel(finding.severity)} - ${finding.title}`);
70
+ doc.font("Helvetica").fillColor("#172026").text(finding.recommendation);
71
+ doc.moveDown(0.35);
72
+ }
73
+ writeSectionTitle(doc, "Recommendations");
74
+ for (const recommendation of report.recommendations.slice(0, 10)) {
75
+ doc.text(`- ${recommendation}`);
76
+ }
77
+ if (brand?.footerText || brand?.contact) {
78
+ doc.moveDown(1);
79
+ doc.fontSize(8).fillColor("#5f6b75").text([brand.footerText, brand.contact].filter(Boolean).join(" | "));
80
+ }
81
+ doc.end();
82
+ return await finished;
83
+ }
84
+ //# sourceMappingURL=pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AuditReport } from "./types.js";
1
+ import type { AuditReport, ReportRenderOptions } from "./types.js";
2
2
  export declare function renderJsonReport(report: AuditReport, pretty?: boolean): string;
3
- export declare function renderMarkdownReport(report: AuditReport): string;
4
- export declare function renderHtmlReport(report: AuditReport): string;
3
+ export declare function renderMarkdownReport(report: AuditReport, options?: ReportRenderOptions): string;
4
+ export declare function renderHtmlReport(report: AuditReport, options?: ReportRenderOptions): string;