@ainyc/canonry 4.186.7 → 4.186.8

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.
@@ -10778,6 +10778,16 @@ var log13 = createLogger("SiteAudit");
10778
10778
  var SiteAuditCancelledError = class extends Error {
10779
10779
  name = "SiteAuditCancelledError";
10780
10780
  };
10781
+ var NON_PAGE_MEDIA_EXTENSIONS = /\.(?:jpe?g|png|gif|webp|avif|bmp|ico|tiff?|svg|mp4|webm|mov|avi|mp3|wav|ogg|woff2?|ttf|otf|eot)(?:$|\?)/i;
10782
+ var NON_PAGE_MEDIA_CONTENT_TYPE = /^(?:image|video|audio|font)\//i;
10783
+ function isNonPageMedia(page) {
10784
+ if (page.contentType && NON_PAGE_MEDIA_CONTENT_TYPE.test(page.contentType.trim())) return true;
10785
+ try {
10786
+ return NON_PAGE_MEDIA_EXTENSIONS.test(new URL(page.requestedUrl).pathname);
10787
+ } catch {
10788
+ return NON_PAGE_MEDIA_EXTENSIONS.test(page.requestedUrl);
10789
+ }
10790
+ }
10781
10791
  function toHomepageUrl(canonicalDomain) {
10782
10792
  const trimmed = canonicalDomain.trim().replace(/\/+$/, "");
10783
10793
  return /^https?:\/\//i.test(trimmed) ? trimmed : `https://${trimmed}`;
@@ -11083,8 +11093,10 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
11083
11093
  };
11084
11094
  const persistPages = (tx, pages, now) => {
11085
11095
  const changedUrls = /* @__PURE__ */ new Set();
11086
- for (const page of pages) registerPageNode(page, changedUrls);
11087
- for (const page of pages) persistPage(tx, page, now);
11096
+ for (const page of pages) observedPages.set(page.key, page);
11097
+ const pageNodes = pages.filter((page) => !isNonPageMedia(page));
11098
+ for (const page of pageNodes) registerPageNode(page, changedUrls);
11099
+ for (const page of pageNodes) persistPage(tx, page, now);
11088
11100
  bindReferences(tx, changedUrls, now);
11089
11101
  };
11090
11102
  const edgePlacementColumns = (edge) => ({
package/dist/cli.js CHANGED
@@ -28,7 +28,7 @@ import {
28
28
  trackCliCommandFinished,
29
29
  trackEvent,
30
30
  waitForServerRuntimeStartup
31
- } from "./chunk-FGEHMYIW.js";
31
+ } from "./chunk-YYNL73BT.js";
32
32
  import {
33
33
  autoSyncSkills,
34
34
  formatAutoSyncNotice
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-FGEHMYIW.js";
6
+ } from "./chunk-YYNL73BT.js";
7
7
  import {
8
8
  loadConfig
9
9
  } from "./chunk-42P3CXIH.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.186.7",
3
+ "version": "4.186.8",
4
4
  "type": "module",
5
5
  "description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
6
6
  "license": "FSL-1.1-ALv2",
@@ -71,28 +71,28 @@
71
71
  "tsup": "^8.5.1",
72
72
  "tsx": "^4.19.0",
73
73
  "@ainyc/canonry-web": "0.0.0",
74
- "@ainyc/canonry-api-routes": "0.0.0",
75
74
  "@ainyc/canonry-api-client": "0.0.0",
76
- "@ainyc/canonry-contracts": "0.0.0",
75
+ "@ainyc/canonry-api-routes": "0.0.0",
77
76
  "@ainyc/canonry-config": "0.0.0",
77
+ "@ainyc/canonry-contracts": "0.0.0",
78
78
  "@ainyc/canonry-db": "0.0.0",
79
79
  "@ainyc/canonry-integration-bing": "0.0.0",
80
- "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
81
80
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
82
81
  "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
82
+ "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
83
83
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
84
84
  "@ainyc/canonry-integration-google": "0.0.0",
85
85
  "@ainyc/canonry-integration-google-ads": "0.0.0",
86
- "@ainyc/canonry-integration-google-business-profile": "0.0.0",
87
- "@ainyc/canonry-integration-google-places": "0.0.0",
88
86
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
87
+ "@ainyc/canonry-integration-google-places": "0.0.0",
89
88
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
90
89
  "@ainyc/canonry-integration-traffic": "0.0.0",
91
90
  "@ainyc/canonry-integration-wordpress": "0.0.0",
92
- "@ainyc/canonry-provider-claude": "0.0.0",
93
- "@ainyc/canonry-provider-gemini": "0.0.0",
94
- "@ainyc/canonry-provider-cdp": "0.0.0",
91
+ "@ainyc/canonry-integration-google-business-profile": "0.0.0",
95
92
  "@ainyc/canonry-intelligence": "0.0.0",
93
+ "@ainyc/canonry-provider-cdp": "0.0.0",
94
+ "@ainyc/canonry-provider-gemini": "0.0.0",
95
+ "@ainyc/canonry-provider-claude": "0.0.0",
96
96
  "@ainyc/canonry-provider-local": "0.0.0",
97
97
  "@ainyc/canonry-provider-openai": "0.0.0",
98
98
  "@ainyc/canonry-provider-perplexity": "0.0.0"