@canonry/canonry 5.28.1 → 5.29.1

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 (33) hide show
  1. package/assets/assets/{AuditHistoryPanel-CWd9UN6L.js → AuditHistoryPanel-B_H7nIp7.js} +1 -1
  2. package/assets/assets/{BacklinksPage-B2gPTzyE.js → BacklinksPage-rhms6z2S.js} +1 -1
  3. package/assets/assets/{HistoryPage-xtkG8SZN.js → HistoryPage-CWPETgrG.js} +1 -1
  4. package/assets/assets/MeasurementPropertyPage-D9-54Je9.js +1 -0
  5. package/assets/assets/ProjectPage-eNVzxsZW.js +8 -0
  6. package/assets/assets/{RunRow-DnSo7Nle.js → RunRow-DQPW7FIF.js} +1 -1
  7. package/assets/assets/{RunsPage-FAEuo4Ra.js → RunsPage-BOM_RkNi.js} +1 -1
  8. package/assets/assets/{SettingsPage-C4OZ1HB9.js → SettingsPage-BDnT6wtM.js} +1 -1
  9. package/assets/assets/SiteHealthSection-lcZA1XpM.js +4 -0
  10. package/assets/assets/{TrafficPage-D03S6xF6.js → TrafficPage-D4nGSfXx.js} +2 -2
  11. package/assets/assets/{TrafficSourceDetailPage-DBu6oFFK.js → TrafficSourceDetailPage-CvZcCbic.js} +1 -1
  12. package/assets/assets/{extract-error-message-BuH2CCaJ.js → extract-error-message-BJ3f0StM.js} +1 -1
  13. package/assets/assets/index-Cncchurw.js +86 -0
  14. package/assets/assets/{react-sigma_core.esm.min-CxwZsgxR.js → react-sigma_core.esm.min-c7qzyLLe.js} +1 -1
  15. package/assets/assets/{v2-overview-adapter-DTCKxzZT.js → v2-overview-adapter-Dsd6dWtE.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-DX2JUC5H.js → chunk-ASYPQYVV.js} +3 -3
  18. package/dist/{chunk-KVQHG3WB.js → chunk-FKL5EGOW.js} +6302 -5914
  19. package/dist/{chunk-EP4STEPI.js → chunk-N2SVFXOB.js} +164 -96
  20. package/dist/{chunk-ONTEFAA7.js → chunk-PTTVDWMN.js} +57 -3
  21. package/dist/{chunk-7RKCDOWO.js → chunk-RHZKOXDZ.js} +263 -190
  22. package/dist/{chunk-MPICT6V7.js → chunk-WL2SHCPU.js} +3 -3
  23. package/dist/{chunk-FNGITGDF.js → chunk-XWBQWAVE.js} +2 -2
  24. package/dist/cli.js +134 -123
  25. package/dist/{demo-server-HWWIMGD6.js → demo-server-VGUIDC5T.js} +24 -32
  26. package/dist/index.js +6 -6
  27. package/dist/{intelligence-service-6LDMVI66.js → intelligence-service-IQA4U3RA.js} +2 -2
  28. package/dist/mcp.js +4 -4
  29. package/package.json +12 -12
  30. package/assets/assets/MeasurementPropertyPage-DxIMU3_T.js +0 -1
  31. package/assets/assets/ProjectPage-CMAFZq_s.js +0 -8
  32. package/assets/assets/SiteHealthSection-BzMxlz8-.js +0 -4
  33. package/assets/assets/index-Ba-Zs45G.js +0 -86
@@ -5,12 +5,64 @@ import {
5
5
  siteCrawlGraphNodes,
6
6
  siteCrawlPages,
7
7
  siteCrawlSnapshots
8
- } from "./chunk-7RKCDOWO.js";
8
+ } from "./chunk-RHZKOXDZ.js";
9
9
  import {
10
10
  SITE_CRAWL_GRAPH_MAX_EDGES,
11
11
  SITE_CRAWL_GRAPH_MAX_NODES,
12
- TEMPLATE_LINK_RATIO_THRESHOLD
13
- } from "./chunk-KVQHG3WB.js";
12
+ SiteAuditFactorStatuses,
13
+ TEMPLATE_LINK_RATIO_THRESHOLD,
14
+ factorStatusFromScore,
15
+ roundPreservingTotal
16
+ } from "./chunk-FKL5EGOW.js";
17
+
18
+ // src/site-audit-factors.ts
19
+ function recordedSharePct(factor) {
20
+ return typeof factor.sharePct === "number" && Number.isFinite(factor.sharePct) ? factor.sharePct : null;
21
+ }
22
+ function computeFactorAverages(pages) {
23
+ const byId = /* @__PURE__ */ new Map();
24
+ let auditedPages = 0;
25
+ let everyShareRecorded = true;
26
+ for (const page of pages) {
27
+ if (!page.audit) continue;
28
+ auditedPages++;
29
+ for (const factor of page.audit.factors) {
30
+ const current = byId.get(factor.id) ?? { name: factor.name, weight: factor.weight, scores: [], pass: 0, partial: 0, fail: 0, shareTotal: 0 };
31
+ byId.set(factor.id, current);
32
+ current.scores.push(factor.score);
33
+ switch (factorStatusFromScore(factor.score)) {
34
+ case SiteAuditFactorStatuses.pass:
35
+ current.pass++;
36
+ break;
37
+ case SiteAuditFactorStatuses.partial:
38
+ current.partial++;
39
+ break;
40
+ case SiteAuditFactorStatuses.fail:
41
+ current.fail++;
42
+ break;
43
+ }
44
+ const share = recordedSharePct(factor);
45
+ if (share === null) everyShareRecorded = false;
46
+ else current.shareTotal += share;
47
+ }
48
+ }
49
+ const rollups = [...byId.entries()].map(([id, value]) => ({ id, ...value })).sort((a, b) => b.weight - a.weight || a.name.localeCompare(b.name));
50
+ const shares = everyShareRecorded && auditedPages > 0 ? roundPreservingTotal(rollups.map((rollup) => rollup.shareTotal / auditedPages), 1) : null;
51
+ return rollups.map((rollup, index) => {
52
+ const avgScore = Math.round(rollup.scores.reduce((sum, score) => sum + score, 0) / rollup.scores.length);
53
+ return {
54
+ id: rollup.id,
55
+ name: rollup.name,
56
+ weight: rollup.weight,
57
+ sharePct: shares?.[index] ?? null,
58
+ avgScore,
59
+ status: factorStatusFromScore(avgScore),
60
+ pagesPassing: rollup.pass,
61
+ pagesPartial: rollup.partial,
62
+ pagesFailing: rollup.fail
63
+ };
64
+ });
65
+ }
14
66
 
15
67
  // src/site-crawl-graph-layout.ts
16
68
  import crypto from "crypto";
@@ -645,6 +697,8 @@ function deleteSiteCrawlGraphLayout(db, scope) {
645
697
  }
646
698
 
647
699
  export {
700
+ recordedSharePct,
701
+ computeFactorAverages,
648
702
  layoutSiteCrawlGraphInput,
649
703
  prepareSiteCrawlGraphLayout,
650
704
  persistSiteCrawlGraphLayout,