seo 0.13.3 → 0.15.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/PRIVACY.md +244 -510
- package/TERMS.md +57 -72
- package/dist/cli.js +88 -84
- package/dist/cli.js.map +1 -1
- package/dist/{dist-BbTqJIE_.js → dist-Dik5MNDk.js} +1 -1
- package/dist/dist-pwGymked.js +449 -0
- package/dist/dist-pwGymked.js.map +1 -0
- package/dist/{esm-hHlvm1W0.js → esm-DieyhVZ-.js} +95 -188
- package/dist/{esm-hHlvm1W0.js.map → esm-DieyhVZ-.js.map} +1 -1
- package/dist/index.d.ts +274 -425
- package/dist/index.js +5295 -1345
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +0 -14
- package/dist/mcp.js +5048 -1769
- package/dist/mcp.js.map +1 -1
- package/dist/provider-sdk.d.ts +0 -2
- package/dist/provider-sdk.js +1 -2
- package/package.json +6 -5
- package/site-kit/README.md +13 -0
- package/site-kit/guide/build.md +70 -0
- package/site-kit/guide/data.md +49 -0
- package/site-kit/guide/golden-page.md +50 -0
- package/site-kit/guide/grow.md +58 -0
- package/site-kit/guide/launch.md +55 -0
- package/site-kit/guide/market.md +57 -0
- package/site-kit/guide/plan.md +49 -0
- package/site-kit/guide/scale.md +41 -0
- package/site-kit/guide/setup.md +59 -0
- package/site-kit/guide/writing.md +55 -0
- package/site-kit/starter/.github/workflows/refresh-data.yml +88 -0
- package/site-kit/starter/.node-version +1 -0
- package/site-kit/starter/AGENTS.md +65 -0
- package/site-kit/starter/README.md +11 -0
- package/site-kit/starter/astro.config.mjs +31 -0
- package/site-kit/starter/gitignore +7 -0
- package/site-kit/starter/llms.config.mjs +38 -0
- package/site-kit/starter/package.json +31 -0
- package/site-kit/starter/pnpm-workspace.yaml +5 -0
- package/site-kit/starter/public/_headers +5 -0
- package/site-kit/starter/public/favicon.svg +1 -0
- package/site-kit/starter/public/fonts/InterLatinVF.woff2 +0 -0
- package/site-kit/starter/public/fonts/JetBrainsMonoLatinVF.woff2 +0 -0
- package/site-kit/starter/public/fonts/LICENSE-inter.txt +93 -0
- package/site-kit/starter/public/fonts/LICENSE-jetbrains-mono.txt +93 -0
- package/site-kit/starter/scripts/deploy.mjs +60 -0
- package/site-kit/starter/scripts/markdown-rewrites.mjs +33 -0
- package/site-kit/starter/scripts/refresh-data.mjs +60 -0
- package/site-kit/starter/scripts/validate-data.mjs +47 -0
- package/site-kit/starter/site.config.json +9 -0
- package/site-kit/starter/src/components/Breadcrumbs.astro +27 -0
- package/site-kit/starter/src/components/Button.astro +46 -0
- package/site-kit/starter/src/components/Card.astro +54 -0
- package/site-kit/starter/src/components/CodeBlock.astro +62 -0
- package/site-kit/starter/src/components/FactTable.astro +45 -0
- package/site-kit/starter/src/components/FaqAccordion.astro +143 -0
- package/site-kit/starter/src/components/Footer.astro +34 -0
- package/site-kit/starter/src/components/FormInput.astro +18 -0
- package/site-kit/starter/src/components/FormSelect.astro +34 -0
- package/site-kit/starter/src/components/Header.astro +17 -0
- package/site-kit/starter/src/components/HugeIcon.astro +36 -0
- package/site-kit/starter/src/components/Logo.astro +21 -0
- package/site-kit/starter/src/components/PageHeader.astro +33 -0
- package/site-kit/starter/src/components/SectionHeading.astro +18 -0
- package/site-kit/starter/src/components/ui/button.ts +51 -0
- package/site-kit/starter/src/data/parks.json +106 -0
- package/site-kit/starter/src/data/sources.json +11 -0
- package/site-kit/starter/src/integrations/og-images.ts +49 -0
- package/site-kit/starter/src/integrations/sitemaps.ts +104 -0
- package/site-kit/starter/src/layouts/Base.astro +69 -0
- package/site-kit/starter/src/lib/cn.ts +5 -0
- package/site-kit/starter/src/lib/narrative.ts +115 -0
- package/site-kit/starter/src/lib/og/card.ts +85 -0
- package/site-kit/starter/src/lib/og/path.ts +14 -0
- package/site-kit/starter/src/lib/og/render.ts +30 -0
- package/site-kit/starter/src/lib/parks.ts +84 -0
- package/site-kit/starter/src/lib/seo.ts +97 -0
- package/site-kit/starter/src/pages/404.astro +30 -0
- package/site-kit/starter/src/pages/about.astro +39 -0
- package/site-kit/starter/src/pages/index.astro +52 -0
- package/site-kit/starter/src/pages/parks/[slug].astro +95 -0
- package/site-kit/starter/src/pages/regions/[region].astro +58 -0
- package/site-kit/starter/src/pages/robots.txt.ts +16 -0
- package/site-kit/starter/src/site.ts +29 -0
- package/site-kit/starter/src/styles/globals.css +561 -0
- package/site-kit/starter/tsconfig.json +5 -0
- package/site-kit/starter/wrangler.jsonc +16 -0
- package/skills/seo/SKILL.md +20 -1
- package/dist/dist-DBI-BioS.js +0 -420
- package/dist/dist-DBI-BioS.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { Headers as Headers$1, RequestInit as RequestInit$1, Response as Respons
|
|
|
5
5
|
import Libsql from "libsql";
|
|
6
6
|
import "htmlparser2";
|
|
7
7
|
import pino from "pino";
|
|
8
|
-
//#region packages/core/src/types/auth.d.ts
|
|
9
8
|
export declare const tokenSchema: z.ZodObject<{
|
|
10
9
|
provider: z.ZodLiteral<"google">;
|
|
11
10
|
account_email: z.ZodString;
|
|
@@ -40,8 +39,6 @@ export declare const tokenStoreSchema: z.ZodObject<{
|
|
|
40
39
|
}, z.core.$strip>>;
|
|
41
40
|
}, z.core.$strip>;
|
|
42
41
|
export type StoredTokenStore = z.infer<typeof tokenStoreSchema>;
|
|
43
|
-
//#endregion
|
|
44
|
-
//#region packages/core/src/types/config.d.ts
|
|
45
42
|
export declare const providerPreferenceSchema: z.ZodEnum<{
|
|
46
43
|
cheap: "cheap";
|
|
47
44
|
authoritative: "authoritative";
|
|
@@ -83,8 +80,6 @@ export declare const configSchema: z.ZodObject<{
|
|
|
83
80
|
export type AppConfig = z.infer<typeof configSchema>;
|
|
84
81
|
export type AnalyticsConnection = z.infer<typeof analyticsConnectionSchema>;
|
|
85
82
|
export type AnalyticsProvider = z.infer<typeof analyticsProviderSchema>;
|
|
86
|
-
//#endregion
|
|
87
|
-
//#region packages/core/src/extract/canonical.d.ts
|
|
88
83
|
type CanonicalSource = 'html-head' | 'html-body' | 'http-header';
|
|
89
84
|
type CanonicalCandidate = {
|
|
90
85
|
source: CanonicalSource;
|
|
@@ -106,8 +101,6 @@ type CanonicalEvidence = {
|
|
|
106
101
|
selectedUrl?: string;
|
|
107
102
|
candidates: CanonicalCandidate[];
|
|
108
103
|
};
|
|
109
|
-
//#endregion
|
|
110
|
-
//#region packages/core/src/types/pages.d.ts
|
|
111
104
|
export interface GscRow {
|
|
112
105
|
keys: string[];
|
|
113
106
|
clicks: number;
|
|
@@ -421,8 +414,6 @@ export interface ExtractedPage {
|
|
|
421
414
|
contentExtraction: ContentExtractionDiagnostics;
|
|
422
415
|
warnings: string[];
|
|
423
416
|
}
|
|
424
|
-
//#endregion
|
|
425
|
-
//#region packages/core/src/types/providers.d.ts
|
|
426
417
|
/** Calls and units one provider used during a report run. */
|
|
427
418
|
export interface CreditUsage {
|
|
428
419
|
provider: string;
|
|
@@ -432,8 +423,6 @@ export interface CreditUsage {
|
|
|
432
423
|
calls: number;
|
|
433
424
|
cacheHits?: number;
|
|
434
425
|
}
|
|
435
|
-
//#endregion
|
|
436
|
-
//#region packages/core/src/rules.d.ts
|
|
437
426
|
type RuleDefinition = {
|
|
438
427
|
id: string;
|
|
439
428
|
title: string;
|
|
@@ -934,6 +923,32 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
934
923
|
readonly evidenceFields: ["page.robotsTxt"];
|
|
935
924
|
readonly suggestedCommands: ["seo crawl <url> --json"];
|
|
936
925
|
};
|
|
926
|
+
}, {
|
|
927
|
+
readonly id: "robots_txt_html";
|
|
928
|
+
readonly title: "robots.txt returns an HTML page";
|
|
929
|
+
readonly category: "indexability";
|
|
930
|
+
readonly defaultSeverity: "medium";
|
|
931
|
+
readonly whyItMatters: "Crawlers read /robots.txt as plain text rules. An HTML page there, often the home page served for every path, holds no rules and no Sitemap line, so crawlers treat the site as having no robots.txt.";
|
|
932
|
+
readonly howToFix: "Serve a plain text /robots.txt with the rules the site needs and a Sitemap line. Check that the catch-all route does not answer before the static file.";
|
|
933
|
+
readonly impactIfIgnored: "Rules meant to keep crawlers out of some paths do nothing, and crawlers must find the sitemap another way.";
|
|
934
|
+
readonly howToVerify: "Request /robots.txt and confirm a 200 text/plain response with User-agent lines.";
|
|
935
|
+
readonly agentHints: {
|
|
936
|
+
readonly evidenceFields: ["report.ai.robotsTxt"];
|
|
937
|
+
readonly suggestedCommands: ["seo crawl <url> --json"];
|
|
938
|
+
};
|
|
939
|
+
}, {
|
|
940
|
+
readonly id: "sitemap_url_off_host";
|
|
941
|
+
readonly title: "Sitemap lists URLs on another host";
|
|
942
|
+
readonly category: "indexability";
|
|
943
|
+
readonly defaultSeverity: "high";
|
|
944
|
+
readonly whyItMatters: "A sitemap may list only URLs on its own host, unless the other host's robots.txt or Search Console vouches for it. Localhost URLs, left by a build that used a development base URL, can never be fetched. Either way, those entries tell search engines nothing about the real pages.";
|
|
945
|
+
readonly howToFix: "Build the sitemap with the production URL as the base, so every <loc> uses the same scheme and host as the live site.";
|
|
946
|
+
readonly impactIfIgnored: "Search engines find pages only through links, and new or deep pages can take longer to be crawled.";
|
|
947
|
+
readonly howToVerify: "Open the sitemap and confirm every <loc> starts with the live site URL, then re-run the crawl.";
|
|
948
|
+
readonly agentHints: {
|
|
949
|
+
readonly evidenceFields: ["report.sitemapDiscovery.roots[].offHost"];
|
|
950
|
+
readonly suggestedCommands: ["seo crawl <url> --json"];
|
|
951
|
+
};
|
|
937
952
|
}, {
|
|
938
953
|
readonly id: "canonicalized_page";
|
|
939
954
|
readonly title: "Canonicalized page";
|
|
@@ -1244,8 +1259,6 @@ export declare function listRules(): RuleInfo[];
|
|
|
1244
1259
|
export declare function explainRule(ruleId: string): RuleInfo | undefined;
|
|
1245
1260
|
export declare function recommendationForRule(ruleId: string): RuleRecommendation;
|
|
1246
1261
|
export declare function hasRule(ruleId: string): ruleId is RuleId;
|
|
1247
|
-
//#endregion
|
|
1248
|
-
//#region packages/core/src/brand-evidence.d.ts
|
|
1249
1262
|
type BrandQueryEvidence = {
|
|
1250
1263
|
query: string;
|
|
1251
1264
|
clicks: number;
|
|
@@ -1274,8 +1287,6 @@ type ReportBrandTerms = {
|
|
|
1274
1287
|
excluded: ExcludedBrandTerm[];
|
|
1275
1288
|
heuristic: boolean;
|
|
1276
1289
|
};
|
|
1277
|
-
//#endregion
|
|
1278
|
-
//#region packages/core/src/analyze/page-patterns.d.ts
|
|
1279
1290
|
type PageTemplate = {
|
|
1280
1291
|
id: string;
|
|
1281
1292
|
label: string;
|
|
@@ -1287,8 +1298,6 @@ type TemplateSummary = {
|
|
|
1287
1298
|
count: number;
|
|
1288
1299
|
sampleUrls: string[];
|
|
1289
1300
|
};
|
|
1290
|
-
//#endregion
|
|
1291
|
-
//#region packages/core/src/analyze/second-page-analysis-types.d.ts
|
|
1292
1301
|
type SecondPageSelection = {
|
|
1293
1302
|
sourceRows: number;
|
|
1294
1303
|
invalidRows: number;
|
|
@@ -1470,8 +1479,6 @@ type SecondPageReport = {
|
|
|
1470
1479
|
message: string;
|
|
1471
1480
|
}>;
|
|
1472
1481
|
};
|
|
1473
|
-
//#endregion
|
|
1474
|
-
//#region packages/core/src/types/reports.d.ts
|
|
1475
1482
|
export interface Recommendation {
|
|
1476
1483
|
principle: string;
|
|
1477
1484
|
evidenceRef: string;
|
|
@@ -1549,8 +1556,6 @@ export interface CacheStats {
|
|
|
1549
1556
|
maxSizeBytes: number;
|
|
1550
1557
|
counts: Record<string, number>;
|
|
1551
1558
|
}
|
|
1552
|
-
//#endregion
|
|
1553
|
-
//#region packages/core/src/analytics/providers.d.ts
|
|
1554
1559
|
export type AnalyticsProviderDetails = {
|
|
1555
1560
|
label: string;
|
|
1556
1561
|
landingMetricLabel: 'sessions' | 'landing-page visits';
|
|
@@ -1559,8 +1564,6 @@ export declare const ANALYTICS_PROVIDER_IDS: readonly ["google", "clicky"];
|
|
|
1559
1564
|
export declare function analyticsProviderDetails(provider: AnalyticsProvider | string): AnalyticsProviderDetails;
|
|
1560
1565
|
export declare function analyticsConnectionProviderId(connection: AnalyticsConnection): string;
|
|
1561
1566
|
export declare function analyticsConnectionLabel(connection: AnalyticsConnection): string;
|
|
1562
|
-
//#endregion
|
|
1563
|
-
//#region packages/core/src/analyze/agent-report.d.ts
|
|
1564
1567
|
export type AgentFindingStatus = 'open';
|
|
1565
1568
|
type AgentFindingBase = {
|
|
1566
1569
|
id: string;
|
|
@@ -1670,8 +1673,6 @@ export declare function buildAgentFindings(report: JsonRecord, options?: AgentRe
|
|
|
1670
1673
|
};
|
|
1671
1674
|
export declare function withAgentReportContract(report: JsonRecord, options?: AgentReportOptions): JsonRecord;
|
|
1672
1675
|
export declare function agentActionsView(report: JsonRecord, options?: AgentReportOptions): JsonRecord;
|
|
1673
|
-
//#endregion
|
|
1674
|
-
//#region packages/core/src/errors.d.ts
|
|
1675
1676
|
export type SeoErrorCode = 'ACCESS_DENIED' | 'AUTH_CONFIG_REQUIRED' | 'AUTH_EXPIRED' | 'AUTH_REQUIRED' | 'INSUFFICIENT_DATA' | 'INTERNAL_ERROR' | 'INVALID_INPUT' | 'OPTIONAL_PROVIDER_UNAVAILABLE' | 'PROPERTY_NOT_FOUND' | 'PROVIDER_UNAVAILABLE' | 'RATE_LIMITED';
|
|
1676
1677
|
export declare class SeoError extends Error {
|
|
1677
1678
|
readonly code: SeoErrorCode;
|
|
@@ -1689,8 +1690,6 @@ export declare function seoErrorEnvelope(error: unknown): {
|
|
|
1689
1690
|
retryable: boolean;
|
|
1690
1691
|
};
|
|
1691
1692
|
};
|
|
1692
|
-
//#endregion
|
|
1693
|
-
//#region packages/core/src/ga4/account-summaries.d.ts
|
|
1694
1693
|
interface Ga4PropertySummary {
|
|
1695
1694
|
property: string;
|
|
1696
1695
|
displayName?: string;
|
|
@@ -1702,8 +1701,6 @@ interface Ga4AccountSummary {
|
|
|
1702
1701
|
displayName?: string;
|
|
1703
1702
|
propertySummaries: Ga4PropertySummary[];
|
|
1704
1703
|
}
|
|
1705
|
-
//#endregion
|
|
1706
|
-
//#region packages/core/src/gsc/client/types.d.ts
|
|
1707
1704
|
export interface SearchAnalyticsRequest {
|
|
1708
1705
|
startDate: string;
|
|
1709
1706
|
endDate: string;
|
|
@@ -1764,8 +1761,6 @@ export interface UrlInspectionResult {
|
|
|
1764
1761
|
richResultsResult?: unknown;
|
|
1765
1762
|
};
|
|
1766
1763
|
}
|
|
1767
|
-
//#endregion
|
|
1768
|
-
//#region packages/core/src/google/api.d.ts
|
|
1769
1764
|
export type GoogleFetch = (url: string, init?: RequestInit) => Promise<Response>;
|
|
1770
1765
|
export type GoogleCallOptions = {
|
|
1771
1766
|
signIn: string;
|
|
@@ -1803,8 +1798,6 @@ export interface Ga4DataStream {
|
|
|
1803
1798
|
}
|
|
1804
1799
|
export declare function listAnalyticsDataStreams(gfetch: GoogleFetch, propertyId: string, options: GoogleCallOptions): Promise<Ga4DataStream[]>;
|
|
1805
1800
|
export declare function runAnalyticsReport<T = unknown>(gfetch: GoogleFetch, propertyId: string, body: unknown, options: GoogleCallOptions): Promise<T>;
|
|
1806
|
-
//#endregion
|
|
1807
|
-
//#region packages/core/src/ga4/client.d.ts
|
|
1808
1801
|
export interface Ga4ReportRequest {
|
|
1809
1802
|
dateRanges: Array<{
|
|
1810
1803
|
startDate: string;
|
|
@@ -1862,8 +1855,6 @@ export declare function listGa4DataStreams(propertyId: string, accountEmail?: st
|
|
|
1862
1855
|
export declare function ga4PropertyIdFromName(name: string): string;
|
|
1863
1856
|
export declare function ga4RowsToObjects(result: Ga4RunReportResult): Array<Record<string, string>>;
|
|
1864
1857
|
export declare function ga4ReportQualityWarnings(result: Ga4RunReportResult, label?: string): string[];
|
|
1865
|
-
//#endregion
|
|
1866
|
-
//#region packages/core/src/analyze/ai-referrals-types.d.ts
|
|
1867
1858
|
type AiReferralMetrics = {
|
|
1868
1859
|
sessions: number;
|
|
1869
1860
|
eventCount: number;
|
|
@@ -1957,8 +1948,6 @@ type AiReferralReport = {
|
|
|
1957
1948
|
}>;
|
|
1958
1949
|
caveats: string[];
|
|
1959
1950
|
};
|
|
1960
|
-
//#endregion
|
|
1961
|
-
//#region packages/core/src/analyze/ai-referrals-analysis.d.ts
|
|
1962
1951
|
type AiReferralAnalysisInput = {
|
|
1963
1952
|
property: string;
|
|
1964
1953
|
generatedAt: string;
|
|
@@ -1973,16 +1962,10 @@ type AiReferralAnalysisInput = {
|
|
|
1973
1962
|
totalUsersEvidence: AiReferralQueryEvidence;
|
|
1974
1963
|
};
|
|
1975
1964
|
export declare function analyzeAiReferralRows(input: AiReferralAnalysisInput): AiReferralReport;
|
|
1976
|
-
//#endregion
|
|
1977
|
-
//#region packages/core/src/analyze/ai-referrals-query.d.ts
|
|
1978
1965
|
export declare function sessionSourceInListFilter(values: string[]): unknown;
|
|
1979
|
-
//#endregion
|
|
1980
|
-
//#region packages/core/src/analyze/ai-referrals-sources.d.ts
|
|
1981
1966
|
export declare const AI_REFERRAL_SOURCES_VERSION: "ai-referral-sources@1";
|
|
1982
1967
|
export declare const AI_REFERRAL_SOURCES: readonly AiReferralSourceDefinition[];
|
|
1983
1968
|
export declare function aiReferralSourceForValue(value: string): AiReferralSourceDefinition | undefined;
|
|
1984
|
-
//#endregion
|
|
1985
|
-
//#region packages/core/src/analyze/ai-referrals.d.ts
|
|
1986
1969
|
type RunGa4Report = typeof runGa4Report;
|
|
1987
1970
|
export declare function aiReferralsReport(input: {
|
|
1988
1971
|
property: string;
|
|
@@ -1996,8 +1979,6 @@ export declare function aiReferralsReport(input: {
|
|
|
1996
1979
|
runGa4Report?: RunGa4Report;
|
|
1997
1980
|
now?: () => Date;
|
|
1998
1981
|
}): Promise<AiReferralReport>;
|
|
1999
|
-
//#endregion
|
|
2000
|
-
//#region packages/core/src/fetch/page-fetcher/types.d.ts
|
|
2001
1982
|
interface FetchRateControls {
|
|
2002
1983
|
concurrency?: number;
|
|
2003
1984
|
intervalCap?: number;
|
|
@@ -2057,11 +2038,7 @@ type RobotsResult = {
|
|
|
2057
2038
|
url: string;
|
|
2058
2039
|
};
|
|
2059
2040
|
type RobotsResolver = (origin: string, targetUrl: string) => Promise<RobotsResult>;
|
|
2060
|
-
//#endregion
|
|
2061
|
-
//#region packages/core/src/fetch/page-fetcher/plain.d.ts
|
|
2062
2041
|
declare function fetchPlain(url: string, refresh: boolean | undefined, timeoutMs: number | undefined, rate: NormalizedFetchRateControls, signal?: AbortSignal, respectRobots?: boolean, writeCache?: boolean): Promise<PageFetchResult>;
|
|
2063
|
-
//#endregion
|
|
2064
|
-
//#region packages/core/src/fetch/page-fetcher/rendered.d.ts
|
|
2065
2042
|
/**
|
|
2066
2043
|
* One renderer owns one browser process and a bounded number of isolated
|
|
2067
2044
|
* contexts. Create it once for a crawl, then close it after the crawl exits.
|
|
@@ -2069,19 +2046,13 @@ declare function fetchPlain(url: string, refresh: boolean | undefined, timeoutMs
|
|
|
2069
2046
|
export declare function createPageRenderer(input?: {
|
|
2070
2047
|
concurrency?: number;
|
|
2071
2048
|
}): PageRenderer;
|
|
2072
|
-
//#endregion
|
|
2073
|
-
//#region packages/core/src/fetch/page-fetcher/status-probe.d.ts
|
|
2074
2049
|
export declare function fetchPageStatus(url: string, opts?: FetchPageOptions): Promise<PageFetchResult>;
|
|
2075
|
-
//#endregion
|
|
2076
|
-
//#region packages/core/src/fetch/page-fetcher.d.ts
|
|
2077
2050
|
export type FetchPageDependencies = {
|
|
2078
2051
|
fetchPlain?: typeof fetchPlain;
|
|
2079
2052
|
createPageRenderer?: typeof createPageRenderer;
|
|
2080
2053
|
};
|
|
2081
2054
|
export declare function normalizeJavaScriptRenderingMode(input: JavaScriptRenderingInput | undefined): JavaScriptRenderingMode;
|
|
2082
2055
|
export declare function fetchPage(url: string, opts?: FetchPageOptions, dependencies?: FetchPageDependencies): Promise<PageFetchResult>;
|
|
2083
|
-
//#endregion
|
|
2084
|
-
//#region packages/core/src/gsc/client/inspection.d.ts
|
|
2085
2056
|
export declare function urlInspectionQuota(input: {
|
|
2086
2057
|
siteUrl: string;
|
|
2087
2058
|
accountEmail?: string;
|
|
@@ -2091,8 +2062,6 @@ export declare function urlInspectionQuota(input: {
|
|
|
2091
2062
|
resetAt: string;
|
|
2092
2063
|
}>;
|
|
2093
2064
|
export declare function inspectUrl(input: UrlInspectionRequest): Promise<UrlInspectionResult>;
|
|
2094
|
-
//#endregion
|
|
2095
|
-
//#region packages/core/src/gsc/client/search-analytics.d.ts
|
|
2096
2065
|
export type PageSearchMetrics = {
|
|
2097
2066
|
clicks: number;
|
|
2098
2067
|
impressions: number;
|
|
@@ -2119,15 +2088,11 @@ export declare function queryPagesMetricsBatch(site: string, pageUrls: string[],
|
|
|
2119
2088
|
export declare function queryPageTopQuery(site: string, pageUrl: string, days?: number): Promise<PageTopQuery | undefined>;
|
|
2120
2089
|
export declare function queryPagesTopQueries(site: string, pageUrls: string[], days?: number): Promise<Map<string, PageTopQuery>>;
|
|
2121
2090
|
export declare function queryPagesTopQueriesBatch(site: string, pageUrls: string[], range?: number | SearchDateWindow): Promise<SearchPageBatch<PageTopQuery>>;
|
|
2122
|
-
//#endregion
|
|
2123
|
-
//#region packages/core/src/gsc/client/sites.d.ts
|
|
2124
2091
|
export declare function listSites(_refresh?: boolean, accountEmail?: string): Promise<Array<{
|
|
2125
2092
|
siteUrl: string;
|
|
2126
2093
|
permissionLevel?: string;
|
|
2127
2094
|
siteType?: string;
|
|
2128
2095
|
}>>;
|
|
2129
|
-
//#endregion
|
|
2130
|
-
//#region packages/core/src/analyze/audit-page.d.ts
|
|
2131
2096
|
export declare const AUDIT_PAGE_RULE_IDS: readonly ["missing_title", "title_too_wide", "h1_missing", "canonical_invalid", "canonical_conflict", "canonical_multiple", "canonical_outside_head", "canonical_streamed_in_body", "canonical_mismatch"];
|
|
2132
2097
|
export type AuditPageDependencies = {
|
|
2133
2098
|
fetchPage: typeof fetchPage;
|
|
@@ -2141,8 +2106,6 @@ export declare function auditPage(input: {
|
|
|
2141
2106
|
refresh?: boolean;
|
|
2142
2107
|
extractor?: 'defuddle' | 'readability';
|
|
2143
2108
|
}, dependencies?: AuditPageDependencies): Promise<AuditPageReport>;
|
|
2144
|
-
//#endregion
|
|
2145
|
-
//#region packages/core/src/analyze/content-coverage-analysis.d.ts
|
|
2146
2109
|
/** Fetches one page. The local binding uses the cached page fetcher. */
|
|
2147
2110
|
export type PageFetcher = (url: string, options?: FetchPageOptions) => Promise<PageFetchResult>;
|
|
2148
2111
|
/** Extracts page fields from a fetched page. */
|
|
@@ -2186,14 +2149,10 @@ export declare function verifyQueryContentWith(input: VerifyQueryContentInput &
|
|
|
2186
2149
|
fetch: PageFetcher;
|
|
2187
2150
|
extract: PageExtractor;
|
|
2188
2151
|
}): Promise<QueryContentCoverage>;
|
|
2189
|
-
//#endregion
|
|
2190
|
-
//#region packages/core/src/analyze/content-coverage.d.ts
|
|
2191
2152
|
export declare function verifyQueryContent(input: VerifyQueryContentInput & {
|
|
2192
2153
|
fetch?: PageFetcher;
|
|
2193
2154
|
extract?: PageExtractor;
|
|
2194
2155
|
}): Promise<QueryContentCoverage>;
|
|
2195
|
-
//#endregion
|
|
2196
|
-
//#region packages/core/src/extract/content-sketch.d.ts
|
|
2197
2156
|
type ContentSketch = {
|
|
2198
2157
|
version: 1;
|
|
2199
2158
|
wordCount: number;
|
|
@@ -2201,8 +2160,6 @@ type ContentSketch = {
|
|
|
2201
2160
|
sampledShingles: number;
|
|
2202
2161
|
hashes: string[];
|
|
2203
2162
|
};
|
|
2204
|
-
//#endregion
|
|
2205
|
-
//#region packages/core/src/extract/main-content.d.ts
|
|
2206
2163
|
interface DefuddleResult {
|
|
2207
2164
|
content?: string;
|
|
2208
2165
|
description?: string;
|
|
@@ -2215,8 +2172,6 @@ interface MainContentDependencies {
|
|
|
2215
2172
|
useAsync: false;
|
|
2216
2173
|
}) => DefuddleResult;
|
|
2217
2174
|
}
|
|
2218
|
-
//#endregion
|
|
2219
|
-
//#region packages/core/src/extract/page-extractor.d.ts
|
|
2220
2175
|
type CrawlerExtractionEvidence = {
|
|
2221
2176
|
h1?: string;
|
|
2222
2177
|
h1Count: number;
|
|
@@ -2259,8 +2214,6 @@ type PageExtraction = ExtractedPage & {
|
|
|
2259
2214
|
crawlerEvidence?: CrawlerExtractionEvidence;
|
|
2260
2215
|
};
|
|
2261
2216
|
declare function extractPage(fetchResult: PageFetchResult, extractor?: ContentExtractor, dependencies?: MainContentDependencies): Promise<PageExtraction>;
|
|
2262
|
-
//#endregion
|
|
2263
|
-
//#region packages/core/src/analyze/page-opportunities-types.d.ts
|
|
2264
2217
|
type PageOpportunityType = 'ctr' | 'ranking' | 'content-gap' | 'serp-framing' | 'covered' | 'technical-check' | 'unverified';
|
|
2265
2218
|
type PageOpportunityBenchmark = {
|
|
2266
2219
|
applicable: boolean;
|
|
@@ -2350,11 +2303,7 @@ type PageOpportunityAnalysisInput = {
|
|
|
2350
2303
|
fetchDiagnostics?: PageFetchDiagnostics;
|
|
2351
2304
|
httpStatus?: number;
|
|
2352
2305
|
};
|
|
2353
|
-
//#endregion
|
|
2354
|
-
//#region packages/core/src/analyze/shared.d.ts
|
|
2355
2306
|
export declare function unicodeTokens(value: string): string[];
|
|
2356
|
-
//#endregion
|
|
2357
|
-
//#region packages/core/src/analyze/opportunity-primitives.d.ts
|
|
2358
2307
|
export type OpportunityBenchmarkRow = {
|
|
2359
2308
|
keys?: string[];
|
|
2360
2309
|
clicks: number;
|
|
@@ -2419,8 +2368,6 @@ export declare function queryOpportunityRecommendation(input: {
|
|
|
2419
2368
|
reason: string;
|
|
2420
2369
|
expectedImpact: string;
|
|
2421
2370
|
};
|
|
2422
|
-
//#endregion
|
|
2423
|
-
//#region packages/core/src/analyze/page-technical-signals.d.ts
|
|
2424
2371
|
type PageTechnicalSignal = Extract<QueryContentSignal, 'http-non-2xx' | 'http-no-content' | 'blocked' | 'fetch-incomplete' | 'redirected' | 'meta-noindex' | 'x-robots-noindex' | 'canonical-mismatch'>;
|
|
2425
2372
|
declare function pageTechnicalSignals(input: {
|
|
2426
2373
|
url: string;
|
|
@@ -2428,14 +2375,8 @@ declare function pageTechnicalSignals(input: {
|
|
|
2428
2375
|
fetchDiagnostics?: PageFetchDiagnostics;
|
|
2429
2376
|
httpStatus?: number;
|
|
2430
2377
|
}): PageTechnicalSignal[];
|
|
2431
|
-
//#endregion
|
|
2432
|
-
//#region packages/core/src/analyze/page-opportunities-analysis.d.ts
|
|
2433
2378
|
export declare function analyzePageOpportunitiesFromRows(input: PageOpportunityAnalysisInput): PageOpportunityAnalysis;
|
|
2434
|
-
//#endregion
|
|
2435
|
-
//#region packages/core/src/analyze/page-opportunities-presentation.d.ts
|
|
2436
2379
|
type PageOpportunityFocus = PageOpportunityType | 'no-data';
|
|
2437
|
-
//#endregion
|
|
2438
|
-
//#region packages/core/src/analyze/page-opportunities.d.ts
|
|
2439
2380
|
type SearchAnalytics$2 = typeof querySearchAnalytics;
|
|
2440
2381
|
type FetchPage = typeof fetchPage;
|
|
2441
2382
|
type ExtractPage = typeof extractPage;
|
|
@@ -2514,8 +2455,6 @@ type PageOpportunityDependencies = {
|
|
|
2514
2455
|
now: () => Date;
|
|
2515
2456
|
};
|
|
2516
2457
|
export declare function pageOpportunitiesReport(input: PageOpportunityInput, dependencies?: PageOpportunityDependencies): Promise<PageOpportunityReport>;
|
|
2517
|
-
//#endregion
|
|
2518
|
-
//#region packages/core/src/analyze/content-optimization.d.ts
|
|
2519
2458
|
export type ContentOptimizationIntent = 'comparison' | 'commercial' | 'how-to' | 'definition' | 'local' | 'navigational' | 'general';
|
|
2520
2459
|
export type ContentOptimizationReport = {
|
|
2521
2460
|
site: string;
|
|
@@ -2569,8 +2508,6 @@ export declare function contentOptimizationReport(input: {
|
|
|
2569
2508
|
refresh?: boolean;
|
|
2570
2509
|
js?: boolean | 'auto';
|
|
2571
2510
|
}): Promise<ContentOptimizationReport>;
|
|
2572
|
-
//#endregion
|
|
2573
|
-
//#region packages/core/src/analyze/monitoring/types.d.ts
|
|
2574
2511
|
export type CrawlPageSnapshot = {
|
|
2575
2512
|
url: string;
|
|
2576
2513
|
finalUrl: string;
|
|
@@ -2798,8 +2735,6 @@ export type CrawlRequestObservation = CrawlResponseObservation | {
|
|
|
2798
2735
|
error: string;
|
|
2799
2736
|
extraction: 'not-applicable';
|
|
2800
2737
|
};
|
|
2801
|
-
//#endregion
|
|
2802
|
-
//#region packages/core/src/analyze/monitoring/sitemaps.d.ts
|
|
2803
2738
|
export type SitemapInvalidLoc = {
|
|
2804
2739
|
sitemapUrl: string;
|
|
2805
2740
|
kind: 'url' | 'sitemap';
|
|
@@ -2883,8 +2818,6 @@ export declare function fetchSitemapUrls(input: {
|
|
|
2883
2818
|
limit?: number;
|
|
2884
2819
|
maxNested?: number;
|
|
2885
2820
|
}): Promise<SitemapFetchResult>;
|
|
2886
|
-
//#endregion
|
|
2887
|
-
//#region packages/core/src/analyze/crawler/crawl-skip-reasons.d.ts
|
|
2888
2821
|
export declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
|
|
2889
2822
|
export type CrawlSkipReason = (typeof CRAWL_SKIP_REASONS)[number];
|
|
2890
2823
|
export type CrawlSkipImpact = 'coverage-affecting' | 'non-impacting';
|
|
@@ -2907,11 +2840,7 @@ export declare function normalizeCrawlSkipReasonCounts(input: {
|
|
|
2907
2840
|
skippedUrlsByImpact: CrawlSkippedUrlsByImpact;
|
|
2908
2841
|
};
|
|
2909
2842
|
export declare function crawlSkipReasonCountsFromRecord(input?: Partial<Record<CrawlSkipReason, number>>): CrawlSkipReasonCount[];
|
|
2910
|
-
//#endregion
|
|
2911
|
-
//#region packages/core/src/analyze/crawler/crawl-status.d.ts
|
|
2912
2843
|
type CrawlStatusPhase = 'started' | 'url_queued' | 'url_skipped' | 'page_started' | 'page_completed' | 'page_failed' | 'page_skipped' | 'external_links_started' | 'external_links_completed' | 'cancelled' | 'completed';
|
|
2913
|
-
//#endregion
|
|
2914
|
-
//#region packages/core/src/analyze/monitoring/crawl-page.d.ts
|
|
2915
2844
|
export type CrawlOneResult = {
|
|
2916
2845
|
request?: CrawlRequestObservation;
|
|
2917
2846
|
page?: CrawlPageSnapshot;
|
|
@@ -2919,9 +2848,8 @@ export type CrawlOneResult = {
|
|
|
2919
2848
|
warning?: string;
|
|
2920
2849
|
};
|
|
2921
2850
|
export declare function crawlOne(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
|
|
2851
|
+
export declare function snapshotFetchedPage(url: string, fetched: PageFetchResult): Promise<CrawlOneResult>;
|
|
2922
2852
|
export declare function crawlStatusOnly(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
|
|
2923
|
-
//#endregion
|
|
2924
|
-
//#region packages/core/src/analyze/crawler/site-checks.d.ts
|
|
2925
2853
|
type CrawlSiteChecks = {
|
|
2926
2854
|
soft404: {
|
|
2927
2855
|
status: 'pass' | 'warning' | 'unknown';
|
|
@@ -2937,8 +2865,6 @@ type CrawlSiteChecks = {
|
|
|
2937
2865
|
complete: boolean;
|
|
2938
2866
|
};
|
|
2939
2867
|
};
|
|
2940
|
-
//#endregion
|
|
2941
|
-
//#region packages/core/src/analyze/crawler/site-crawl-ai-types.d.ts
|
|
2942
2868
|
type CrawlAiAvailability = 'available' | 'absent' | 'access-blocked' | 'rate-limited' | 'unreachable';
|
|
2943
2869
|
type CrawlAiBotAccess = {
|
|
2944
2870
|
userAgent: string;
|
|
@@ -2966,6 +2892,8 @@ type CrawlAiSignals = {
|
|
|
2966
2892
|
exists: boolean;
|
|
2967
2893
|
availability: CrawlAiAvailability;
|
|
2968
2894
|
status?: number;
|
|
2895
|
+
contentType?: string;
|
|
2896
|
+
servesHtml?: boolean;
|
|
2969
2897
|
error?: string;
|
|
2970
2898
|
sitemapUrls: string[];
|
|
2971
2899
|
contentSignals?: string[];
|
|
@@ -2976,6 +2904,8 @@ type CrawlAiSignals = {
|
|
|
2976
2904
|
exists: boolean;
|
|
2977
2905
|
availability?: CrawlAiAvailability;
|
|
2978
2906
|
status?: number;
|
|
2907
|
+
contentType?: string;
|
|
2908
|
+
servesHtml?: boolean;
|
|
2979
2909
|
error?: string;
|
|
2980
2910
|
links?: {
|
|
2981
2911
|
found: number;
|
|
@@ -3015,8 +2945,6 @@ type CrawlAiSignals = {
|
|
|
3015
2945
|
contentSignal?: string;
|
|
3016
2946
|
};
|
|
3017
2947
|
};
|
|
3018
|
-
//#endregion
|
|
3019
|
-
//#region packages/core/src/analyze/crawler/report.d.ts
|
|
3020
2948
|
export type CrawlMode = 'site' | 'page' | 'list' | 'sitemap';
|
|
3021
2949
|
export type CrawlStrategy = 'full' | 'health';
|
|
3022
2950
|
export declare const MAX_CRAWL_PAGES = 10000;
|
|
@@ -3118,6 +3046,12 @@ export type CrawlSitemapDiscovery = {
|
|
|
3118
3046
|
documents: SitemapDocument[];
|
|
3119
3047
|
possiblyTruncated: boolean;
|
|
3120
3048
|
warnings: string[];
|
|
3049
|
+
offHost?: {
|
|
3050
|
+
count: number;
|
|
3051
|
+
localhost: number;
|
|
3052
|
+
hosts: string[];
|
|
3053
|
+
samples: string[];
|
|
3054
|
+
};
|
|
3121
3055
|
}>;
|
|
3122
3056
|
};
|
|
3123
3057
|
export type CrawlExternalLinkVerification = {
|
|
@@ -3280,14 +3214,10 @@ export declare function createCrawlReport(input: {
|
|
|
3280
3214
|
generatedAt?: string;
|
|
3281
3215
|
}): CrawlReport;
|
|
3282
3216
|
export declare function normalizeLoadedCrawlReport(report: CrawlReport): CrawlReport;
|
|
3283
|
-
//#endregion
|
|
3284
|
-
//#region packages/core/src/analyze/crawler/audit.d.ts
|
|
3285
3217
|
export declare function auditCrawlRequests(requests: CrawlRequestObservation[]): CrawlIssue[];
|
|
3286
3218
|
export declare function auditCrawlPages(pages: CrawlPageSnapshot[], opts?: {
|
|
3287
3219
|
startUrl?: string;
|
|
3288
3220
|
}): CrawlIssue[];
|
|
3289
|
-
//#endregion
|
|
3290
|
-
//#region packages/core/src/analyze/crawler/top-fixes.d.ts
|
|
3291
3221
|
export type TopFixFilters = {
|
|
3292
3222
|
category?: RuleCategory | string;
|
|
3293
3223
|
severity?: RuleSeverity | string;
|
|
@@ -3321,8 +3251,6 @@ export type TopFix = CrawlIssueGroup & {
|
|
|
3321
3251
|
};
|
|
3322
3252
|
export declare function topFixes(report: CrawlReport, filters?: TopFixFilters): TopFix[];
|
|
3323
3253
|
export declare function reviewObservations(report: CrawlReport, filters?: Omit<TopFixFilters, 'recommendation'>): TopFix[];
|
|
3324
|
-
//#endregion
|
|
3325
|
-
//#region packages/core/src/analyze/crawler/export.d.ts
|
|
3326
3254
|
export type CrawlOutputFormat = 'pretty' | 'json' | 'csv' | 'html' | 'markdown' | 'junit';
|
|
3327
3255
|
export declare function renderCrawlCsv(report: CrawlReport): string;
|
|
3328
3256
|
export declare function renderCrawlPagesCsv(report: CrawlReport): string;
|
|
@@ -3330,8 +3258,6 @@ export declare function renderCrawlPretty(report: CrawlReport, fixes?: TopFix[])
|
|
|
3330
3258
|
export declare function renderCrawlJunit(report: CrawlReport): string;
|
|
3331
3259
|
export declare function renderCrawlHtml(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3332
3260
|
export declare function renderCrawlMarkdownTickets(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3333
|
-
//#endregion
|
|
3334
|
-
//#region packages/core/src/analyze/crawler/schemas.d.ts
|
|
3335
3261
|
export declare const crawlerRuleSeveritySchema: z.ZodEnum<{
|
|
3336
3262
|
high: "high";
|
|
3337
3263
|
low: "low";
|
|
@@ -5354,6 +5280,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5354
5280
|
unreachable: "unreachable";
|
|
5355
5281
|
}>;
|
|
5356
5282
|
status: z.ZodOptional<z.ZodNumber>;
|
|
5283
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
5284
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
5357
5285
|
error: z.ZodOptional<z.ZodString>;
|
|
5358
5286
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
5359
5287
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -5380,6 +5308,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5380
5308
|
unreachable: "unreachable";
|
|
5381
5309
|
}>>;
|
|
5382
5310
|
status: z.ZodOptional<z.ZodNumber>;
|
|
5311
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
5312
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
5383
5313
|
error: z.ZodOptional<z.ZodString>;
|
|
5384
5314
|
links: z.ZodOptional<z.ZodObject<{
|
|
5385
5315
|
found: z.ZodNumber;
|
|
@@ -5515,6 +5445,12 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5515
5445
|
}, z.core.$strip>>;
|
|
5516
5446
|
possiblyTruncated: z.ZodBoolean;
|
|
5517
5447
|
warnings: z.ZodArray<z.ZodString>;
|
|
5448
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
5449
|
+
count: z.ZodNumber;
|
|
5450
|
+
localhost: z.ZodNumber;
|
|
5451
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
5452
|
+
samples: z.ZodArray<z.ZodString>;
|
|
5453
|
+
}, z.core.$strip>>;
|
|
5518
5454
|
}, z.core.$strip>>;
|
|
5519
5455
|
}, z.core.$strip>>;
|
|
5520
5456
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -6659,6 +6595,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6659
6595
|
unreachable: "unreachable";
|
|
6660
6596
|
}>;
|
|
6661
6597
|
status: z.ZodOptional<z.ZodNumber>;
|
|
6598
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
6599
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
6662
6600
|
error: z.ZodOptional<z.ZodString>;
|
|
6663
6601
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
6664
6602
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -6685,6 +6623,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6685
6623
|
unreachable: "unreachable";
|
|
6686
6624
|
}>>;
|
|
6687
6625
|
status: z.ZodOptional<z.ZodNumber>;
|
|
6626
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
6627
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
6688
6628
|
error: z.ZodOptional<z.ZodString>;
|
|
6689
6629
|
links: z.ZodOptional<z.ZodObject<{
|
|
6690
6630
|
found: z.ZodNumber;
|
|
@@ -6820,6 +6760,12 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6820
6760
|
}, z.core.$strip>>;
|
|
6821
6761
|
possiblyTruncated: z.ZodBoolean;
|
|
6822
6762
|
warnings: z.ZodArray<z.ZodString>;
|
|
6763
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
6764
|
+
count: z.ZodNumber;
|
|
6765
|
+
localhost: z.ZodNumber;
|
|
6766
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
6767
|
+
samples: z.ZodArray<z.ZodString>;
|
|
6768
|
+
}, z.core.$strip>>;
|
|
6823
6769
|
}, z.core.$strip>>;
|
|
6824
6770
|
}, z.core.$strip>>;
|
|
6825
6771
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -7964,6 +7910,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7964
7910
|
unreachable: "unreachable";
|
|
7965
7911
|
}>;
|
|
7966
7912
|
status: z.ZodOptional<z.ZodNumber>;
|
|
7913
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
7914
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
7967
7915
|
error: z.ZodOptional<z.ZodString>;
|
|
7968
7916
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
7969
7917
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -7990,6 +7938,8 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7990
7938
|
unreachable: "unreachable";
|
|
7991
7939
|
}>>;
|
|
7992
7940
|
status: z.ZodOptional<z.ZodNumber>;
|
|
7941
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
7942
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
7993
7943
|
error: z.ZodOptional<z.ZodString>;
|
|
7994
7944
|
links: z.ZodOptional<z.ZodObject<{
|
|
7995
7945
|
found: z.ZodNumber;
|
|
@@ -8125,6 +8075,12 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
8125
8075
|
}, z.core.$strip>>;
|
|
8126
8076
|
possiblyTruncated: z.ZodBoolean;
|
|
8127
8077
|
warnings: z.ZodArray<z.ZodString>;
|
|
8078
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
8079
|
+
count: z.ZodNumber;
|
|
8080
|
+
localhost: z.ZodNumber;
|
|
8081
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
8082
|
+
samples: z.ZodArray<z.ZodString>;
|
|
8083
|
+
}, z.core.$strip>>;
|
|
8128
8084
|
}, z.core.$strip>>;
|
|
8129
8085
|
}, z.core.$strip>>;
|
|
8130
8086
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -9271,6 +9227,8 @@ export declare const crawlerSchemas: {
|
|
|
9271
9227
|
unreachable: "unreachable";
|
|
9272
9228
|
}>;
|
|
9273
9229
|
status: z.ZodOptional<z.ZodNumber>;
|
|
9230
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
9231
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
9274
9232
|
error: z.ZodOptional<z.ZodString>;
|
|
9275
9233
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
9276
9234
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -9297,6 +9255,8 @@ export declare const crawlerSchemas: {
|
|
|
9297
9255
|
unreachable: "unreachable";
|
|
9298
9256
|
}>>;
|
|
9299
9257
|
status: z.ZodOptional<z.ZodNumber>;
|
|
9258
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
9259
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
9300
9260
|
error: z.ZodOptional<z.ZodString>;
|
|
9301
9261
|
links: z.ZodOptional<z.ZodObject<{
|
|
9302
9262
|
found: z.ZodNumber;
|
|
@@ -9432,6 +9392,12 @@ export declare const crawlerSchemas: {
|
|
|
9432
9392
|
}, z.core.$strip>>;
|
|
9433
9393
|
possiblyTruncated: z.ZodBoolean;
|
|
9434
9394
|
warnings: z.ZodArray<z.ZodString>;
|
|
9395
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
9396
|
+
count: z.ZodNumber;
|
|
9397
|
+
localhost: z.ZodNumber;
|
|
9398
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
9399
|
+
samples: z.ZodArray<z.ZodString>;
|
|
9400
|
+
}, z.core.$strip>>;
|
|
9435
9401
|
}, z.core.$strip>>;
|
|
9436
9402
|
}, z.core.$strip>>;
|
|
9437
9403
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -10576,6 +10542,8 @@ export declare const crawlerSchemas: {
|
|
|
10576
10542
|
unreachable: "unreachable";
|
|
10577
10543
|
}>;
|
|
10578
10544
|
status: z.ZodOptional<z.ZodNumber>;
|
|
10545
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
10546
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
10579
10547
|
error: z.ZodOptional<z.ZodString>;
|
|
10580
10548
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
10581
10549
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -10602,6 +10570,8 @@ export declare const crawlerSchemas: {
|
|
|
10602
10570
|
unreachable: "unreachable";
|
|
10603
10571
|
}>>;
|
|
10604
10572
|
status: z.ZodOptional<z.ZodNumber>;
|
|
10573
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
10574
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
10605
10575
|
error: z.ZodOptional<z.ZodString>;
|
|
10606
10576
|
links: z.ZodOptional<z.ZodObject<{
|
|
10607
10577
|
found: z.ZodNumber;
|
|
@@ -10737,6 +10707,12 @@ export declare const crawlerSchemas: {
|
|
|
10737
10707
|
}, z.core.$strip>>;
|
|
10738
10708
|
possiblyTruncated: z.ZodBoolean;
|
|
10739
10709
|
warnings: z.ZodArray<z.ZodString>;
|
|
10710
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
10711
|
+
count: z.ZodNumber;
|
|
10712
|
+
localhost: z.ZodNumber;
|
|
10713
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
10714
|
+
samples: z.ZodArray<z.ZodString>;
|
|
10715
|
+
}, z.core.$strip>>;
|
|
10740
10716
|
}, z.core.$strip>>;
|
|
10741
10717
|
}, z.core.$strip>>;
|
|
10742
10718
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -11881,6 +11857,8 @@ export declare const crawlerSchemas: {
|
|
|
11881
11857
|
unreachable: "unreachable";
|
|
11882
11858
|
}>;
|
|
11883
11859
|
status: z.ZodOptional<z.ZodNumber>;
|
|
11860
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
11861
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
11884
11862
|
error: z.ZodOptional<z.ZodString>;
|
|
11885
11863
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
11886
11864
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -11907,6 +11885,8 @@ export declare const crawlerSchemas: {
|
|
|
11907
11885
|
unreachable: "unreachable";
|
|
11908
11886
|
}>>;
|
|
11909
11887
|
status: z.ZodOptional<z.ZodNumber>;
|
|
11888
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
11889
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
11910
11890
|
error: z.ZodOptional<z.ZodString>;
|
|
11911
11891
|
links: z.ZodOptional<z.ZodObject<{
|
|
11912
11892
|
found: z.ZodNumber;
|
|
@@ -12042,6 +12022,12 @@ export declare const crawlerSchemas: {
|
|
|
12042
12022
|
}, z.core.$strip>>;
|
|
12043
12023
|
possiblyTruncated: z.ZodBoolean;
|
|
12044
12024
|
warnings: z.ZodArray<z.ZodString>;
|
|
12025
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
12026
|
+
count: z.ZodNumber;
|
|
12027
|
+
localhost: z.ZodNumber;
|
|
12028
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
12029
|
+
samples: z.ZodArray<z.ZodString>;
|
|
12030
|
+
}, z.core.$strip>>;
|
|
12045
12031
|
}, z.core.$strip>>;
|
|
12046
12032
|
}, z.core.$strip>>;
|
|
12047
12033
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -14114,6 +14100,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
14114
14100
|
unreachable: "unreachable";
|
|
14115
14101
|
}>;
|
|
14116
14102
|
status: z.ZodOptional<z.ZodNumber>;
|
|
14103
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
14104
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
14117
14105
|
error: z.ZodOptional<z.ZodString>;
|
|
14118
14106
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
14119
14107
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -14140,6 +14128,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
14140
14128
|
unreachable: "unreachable";
|
|
14141
14129
|
}>>;
|
|
14142
14130
|
status: z.ZodOptional<z.ZodNumber>;
|
|
14131
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
14132
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
14143
14133
|
error: z.ZodOptional<z.ZodString>;
|
|
14144
14134
|
links: z.ZodOptional<z.ZodObject<{
|
|
14145
14135
|
found: z.ZodNumber;
|
|
@@ -14275,6 +14265,12 @@ export declare const crawlerJsonSchemas: {
|
|
|
14275
14265
|
}, z.core.$strip>>;
|
|
14276
14266
|
possiblyTruncated: z.ZodBoolean;
|
|
14277
14267
|
warnings: z.ZodArray<z.ZodString>;
|
|
14268
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
14269
|
+
count: z.ZodNumber;
|
|
14270
|
+
localhost: z.ZodNumber;
|
|
14271
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
14272
|
+
samples: z.ZodArray<z.ZodString>;
|
|
14273
|
+
}, z.core.$strip>>;
|
|
14278
14274
|
}, z.core.$strip>>;
|
|
14279
14275
|
}, z.core.$strip>>;
|
|
14280
14276
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -15419,6 +15415,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
15419
15415
|
unreachable: "unreachable";
|
|
15420
15416
|
}>;
|
|
15421
15417
|
status: z.ZodOptional<z.ZodNumber>;
|
|
15418
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
15419
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
15422
15420
|
error: z.ZodOptional<z.ZodString>;
|
|
15423
15421
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
15424
15422
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -15445,6 +15443,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
15445
15443
|
unreachable: "unreachable";
|
|
15446
15444
|
}>>;
|
|
15447
15445
|
status: z.ZodOptional<z.ZodNumber>;
|
|
15446
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
15447
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
15448
15448
|
error: z.ZodOptional<z.ZodString>;
|
|
15449
15449
|
links: z.ZodOptional<z.ZodObject<{
|
|
15450
15450
|
found: z.ZodNumber;
|
|
@@ -15580,6 +15580,12 @@ export declare const crawlerJsonSchemas: {
|
|
|
15580
15580
|
}, z.core.$strip>>;
|
|
15581
15581
|
possiblyTruncated: z.ZodBoolean;
|
|
15582
15582
|
warnings: z.ZodArray<z.ZodString>;
|
|
15583
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
15584
|
+
count: z.ZodNumber;
|
|
15585
|
+
localhost: z.ZodNumber;
|
|
15586
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
15587
|
+
samples: z.ZodArray<z.ZodString>;
|
|
15588
|
+
}, z.core.$strip>>;
|
|
15583
15589
|
}, z.core.$strip>>;
|
|
15584
15590
|
}, z.core.$strip>>;
|
|
15585
15591
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -16724,6 +16730,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
16724
16730
|
unreachable: "unreachable";
|
|
16725
16731
|
}>;
|
|
16726
16732
|
status: z.ZodOptional<z.ZodNumber>;
|
|
16733
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
16734
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
16727
16735
|
error: z.ZodOptional<z.ZodString>;
|
|
16728
16736
|
sitemapUrls: z.ZodArray<z.ZodString>;
|
|
16729
16737
|
contentSignals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -16750,6 +16758,8 @@ export declare const crawlerJsonSchemas: {
|
|
|
16750
16758
|
unreachable: "unreachable";
|
|
16751
16759
|
}>>;
|
|
16752
16760
|
status: z.ZodOptional<z.ZodNumber>;
|
|
16761
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
16762
|
+
servesHtml: z.ZodOptional<z.ZodBoolean>;
|
|
16753
16763
|
error: z.ZodOptional<z.ZodString>;
|
|
16754
16764
|
links: z.ZodOptional<z.ZodObject<{
|
|
16755
16765
|
found: z.ZodNumber;
|
|
@@ -16885,6 +16895,12 @@ export declare const crawlerJsonSchemas: {
|
|
|
16885
16895
|
}, z.core.$strip>>;
|
|
16886
16896
|
possiblyTruncated: z.ZodBoolean;
|
|
16887
16897
|
warnings: z.ZodArray<z.ZodString>;
|
|
16898
|
+
offHost: z.ZodOptional<z.ZodObject<{
|
|
16899
|
+
count: z.ZodNumber;
|
|
16900
|
+
localhost: z.ZodNumber;
|
|
16901
|
+
hosts: z.ZodArray<z.ZodString>;
|
|
16902
|
+
samples: z.ZodArray<z.ZodString>;
|
|
16903
|
+
}, z.core.$strip>>;
|
|
16888
16904
|
}, z.core.$strip>>;
|
|
16889
16905
|
}, z.core.$strip>>;
|
|
16890
16906
|
externalLinkVerification: z.ZodOptional<z.ZodObject<{
|
|
@@ -18020,13 +18036,9 @@ export declare const crawlerJsonSchemas: {
|
|
|
18020
18036
|
}, z.core.$strip>>;
|
|
18021
18037
|
}, z.core.$strip>>;
|
|
18022
18038
|
};
|
|
18023
|
-
//#endregion
|
|
18024
|
-
//#region packages/core/src/fetch/crawler-identity.d.ts
|
|
18025
18039
|
export declare const SEO_CRAWLER_TOKEN = "SEO-Skill";
|
|
18026
18040
|
export declare const SEO_CRAWLER_USER_AGENT: string;
|
|
18027
18041
|
export declare const SEO_CRAWLER_IDENTITY: CrawlerIdentity;
|
|
18028
|
-
//#endregion
|
|
18029
|
-
//#region packages/core/src/fetch/http-client.d.ts
|
|
18030
18042
|
export type HttpProfile = 'browser' | 'bot';
|
|
18031
18043
|
export declare class ResponseSizeLimitError extends Error {
|
|
18032
18044
|
readonly maxBytes: number;
|
|
@@ -18039,8 +18051,6 @@ export declare function publicHttpFetch(url: string, input?: RequestInit$1 & {
|
|
|
18039
18051
|
profile?: HttpProfile;
|
|
18040
18052
|
}): Promise<import("undici").Response>;
|
|
18041
18053
|
export declare function readBoundedResponseText(response: Awaited<ReturnType<typeof publicHttpFetch>>, maxBytes: number, label?: string): Promise<string>;
|
|
18042
|
-
//#endregion
|
|
18043
|
-
//#region packages/core/src/provider-extensions/contracts.d.ts
|
|
18044
18054
|
export declare const providerExtensionIdSchema: z.ZodString;
|
|
18045
18055
|
export declare const providerPackageNameSchema: z.ZodString;
|
|
18046
18056
|
export declare const providerExactVersionSchema: z.ZodString;
|
|
@@ -18110,8 +18120,6 @@ export declare const providerRegistrationSchema: z.ZodObject<{
|
|
|
18110
18120
|
export type ProviderPackageManifest = z.infer<typeof providerPackageManifestSchema>;
|
|
18111
18121
|
export type InstalledProviderPackage = z.infer<typeof installedProviderPackageSchema>;
|
|
18112
18122
|
export type InstalledProviderPackages = z.infer<typeof installedProviderPackagesSchema>;
|
|
18113
|
-
//#endregion
|
|
18114
|
-
//#region packages/core/src/provider-extensions/registry.d.ts
|
|
18115
18123
|
export type RegisteredProviderExtension = SeoProviderRegistration & {
|
|
18116
18124
|
package: string;
|
|
18117
18125
|
version: string;
|
|
@@ -18130,8 +18138,6 @@ export declare class ProviderExtensionRegistry {
|
|
|
18130
18138
|
action(providerId: string, actionId: string): SeoProviderActionAdapter | undefined;
|
|
18131
18139
|
list(): RegisteredProviderExtension[];
|
|
18132
18140
|
}
|
|
18133
|
-
//#endregion
|
|
18134
|
-
//#region packages/core/src/provider-extensions/loader.d.ts
|
|
18135
18141
|
type ImportedProviderModule = {
|
|
18136
18142
|
default?: unknown;
|
|
18137
18143
|
};
|
|
@@ -18158,16 +18164,12 @@ export declare function loadProviderPackage(input: {
|
|
|
18158
18164
|
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
18159
18165
|
}): Promise<RegisteredProviderExtension[]>;
|
|
18160
18166
|
export declare function loadInstalledProviderExtensions(options?: ProviderExtensionLoaderOptions): Promise<LoadedProviderExtensions>;
|
|
18161
|
-
//#endregion
|
|
18162
|
-
//#region packages/core/src/providers/imports/research-columns.d.ts
|
|
18163
18167
|
export declare const RESEARCH_IMPORT_COLUMN_KEYS: readonly ["keyword", "url", "position", "absolutePosition", "searchVolume", "keywordDifficulty", "cpc", "paidCompetition", "intent", "resultCount", "estimatedTraffic", "resultType", "searchVolumeUpdatedAt"];
|
|
18164
18168
|
export type ResearchImportColumn = (typeof RESEARCH_IMPORT_COLUMN_KEYS)[number];
|
|
18165
18169
|
export type ResearchImportColumns = Partial<Record<ResearchImportColumn, string>>;
|
|
18166
18170
|
export declare function normalizedResearchColumnName(value: string): string;
|
|
18167
18171
|
export declare function researchImportColumns(value: ResearchImportColumns | undefined): ResearchImportColumns | undefined;
|
|
18168
18172
|
export declare function validateResearchImportColumnSources(columns: ResearchImportColumns | undefined, includedFields: Iterable<string>): void;
|
|
18169
|
-
//#endregion
|
|
18170
|
-
//#region packages/core/src/providers/contracts.d.ts
|
|
18171
18173
|
export declare const providerIdSchema: z.ZodString;
|
|
18172
18174
|
export type ProviderId = z.infer<typeof providerIdSchema>;
|
|
18173
18175
|
export type ExternalServiceId = string;
|
|
@@ -18240,8 +18242,6 @@ export type KeywordMonthlySearch = {
|
|
|
18240
18242
|
month: number;
|
|
18241
18243
|
searchVolume: number;
|
|
18242
18244
|
};
|
|
18243
|
-
//#endregion
|
|
18244
|
-
//#region packages/core/src/providers/transport.d.ts
|
|
18245
18245
|
export type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
|
|
18246
18246
|
export type ProviderRequestInput = {
|
|
18247
18247
|
provider: ExternalServiceId;
|
|
@@ -18259,8 +18259,6 @@ export declare function providerRequestText(input: ProviderRequestInput): Promis
|
|
|
18259
18259
|
export declare function providerRequestJson<T>(input: ProviderRequestInput & {
|
|
18260
18260
|
schema: z.ZodType<T>;
|
|
18261
18261
|
}): Promise<T>;
|
|
18262
|
-
//#endregion
|
|
18263
|
-
//#region packages/core/src/provider-extensions/runtime.d.ts
|
|
18264
18262
|
export type ProviderRuntimeOptions = {
|
|
18265
18263
|
fetch?: ProviderFetch;
|
|
18266
18264
|
maxRequests?: number;
|
|
@@ -18276,8 +18274,6 @@ export declare function verifyProviderExtension(input: {
|
|
|
18276
18274
|
credentials: Readonly<Record<string, string>>;
|
|
18277
18275
|
runtime?: ProviderRuntimeOptions;
|
|
18278
18276
|
}): Promise<void>;
|
|
18279
|
-
//#endregion
|
|
18280
|
-
//#region packages/core/src/provider-extensions/analytics.d.ts
|
|
18281
18277
|
export type AnalyticsProviderRuntimeOptions = ProviderRuntimeOptions;
|
|
18282
18278
|
export declare function verifyAnalyticsProvider(input: {
|
|
18283
18279
|
providerId: string;
|
|
@@ -18295,8 +18291,6 @@ export declare function runAnalyticsProviderLandingPages(input: {
|
|
|
18295
18291
|
refresh?: boolean;
|
|
18296
18292
|
runtime?: AnalyticsProviderRuntimeOptions;
|
|
18297
18293
|
}): Promise<SeoLandingPageVisitsResult>;
|
|
18298
|
-
//#endregion
|
|
18299
|
-
//#region packages/core/src/analyze/workflows/analytics-value.d.ts
|
|
18300
18294
|
type LandingPageValue = {
|
|
18301
18295
|
sessions: number;
|
|
18302
18296
|
totalUsers?: number;
|
|
@@ -18330,8 +18324,6 @@ declare function fetchLandingPageValues(input: {
|
|
|
18330
18324
|
limit?: number;
|
|
18331
18325
|
refresh?: boolean;
|
|
18332
18326
|
}, dependencies?: Partial<LandingPageValueDependencies>): Promise<LandingPageValueResult>;
|
|
18333
|
-
//#endregion
|
|
18334
|
-
//#region packages/core/src/analyze/crawler/site-crawl-dependencies.d.ts
|
|
18335
18327
|
type ResolvedCrawlSiteDependencies = {
|
|
18336
18328
|
fetchPage: typeof crawlOne;
|
|
18337
18329
|
fetchStatusPage: typeof crawlStatusOnly;
|
|
@@ -18350,11 +18342,7 @@ type ResolvedCrawlSiteDependencies = {
|
|
|
18350
18342
|
totalMemory: () => number;
|
|
18351
18343
|
};
|
|
18352
18344
|
type CrawlSiteDependencies = Partial<ResolvedCrawlSiteDependencies>;
|
|
18353
|
-
//#endregion
|
|
18354
|
-
//#region packages/core/src/analyze/crawler/site-crawl.d.ts
|
|
18355
18345
|
export declare function crawlSite(input: CrawlConfigInput, dependencies?: CrawlSiteDependencies): Promise<CrawlReport>;
|
|
18356
|
-
//#endregion
|
|
18357
|
-
//#region packages/core/src/analyze/query-quality.d.ts
|
|
18358
18346
|
type QueryFlag = 'likely-automated' | 'navigational-other';
|
|
18359
18347
|
declare const QUERY_FLAG_METHOD: {
|
|
18360
18348
|
readonly id: "query_flags_v1";
|
|
@@ -18365,8 +18353,6 @@ declare const QUERY_FLAG_METHOD: {
|
|
|
18365
18353
|
readonly 'navigational-other': "Names a domain that is not the property's host, ends with a spoken domain suffix or a login/site/app word, starts with a large platform name and adds no topic word, or is one short ASCII word that is not a brand term. Such queries usually look for another site.";
|
|
18366
18354
|
};
|
|
18367
18355
|
};
|
|
18368
|
-
//#endregion
|
|
18369
|
-
//#region packages/core/src/analyze/ctr-underperformers-types.d.ts
|
|
18370
18356
|
type CtrUnderperformerSelection = {
|
|
18371
18357
|
sourceRows: number;
|
|
18372
18358
|
invalidRows: number;
|
|
@@ -18419,8 +18405,6 @@ type CtrUnderperformer = {
|
|
|
18419
18405
|
confidence: 'low';
|
|
18420
18406
|
};
|
|
18421
18407
|
};
|
|
18422
|
-
//#endregion
|
|
18423
|
-
//#region packages/core/src/analyze/min-impressions-policy.d.ts
|
|
18424
18408
|
type MinImpressionsScale = {
|
|
18425
18409
|
share: number;
|
|
18426
18410
|
floor: number;
|
|
@@ -18434,8 +18418,6 @@ type MinImpressionsPolicy = {
|
|
|
18434
18418
|
basisImpressions: number;
|
|
18435
18419
|
scale: MinImpressionsScale;
|
|
18436
18420
|
};
|
|
18437
|
-
//#endregion
|
|
18438
|
-
//#region packages/core/src/analyze/ctr-underperformers-report.d.ts
|
|
18439
18421
|
export interface CtrUnderperformerDependencies {
|
|
18440
18422
|
searchAnalytics: SearchAnalyticsQuery;
|
|
18441
18423
|
now: () => Date;
|
|
@@ -18547,8 +18529,6 @@ export declare function ctrUnderperformersReportWith(input: CtrUnderperformersIn
|
|
|
18547
18529
|
caveats: string[];
|
|
18548
18530
|
recommendations: string[];
|
|
18549
18531
|
}>;
|
|
18550
|
-
//#endregion
|
|
18551
|
-
//#region packages/core/src/analyze/ctr-underperformers-analysis.d.ts
|
|
18552
18532
|
export declare const CTR_MAX_MIN_IMPRESSIONS = 1000000000;
|
|
18553
18533
|
export declare const CTR_DEFAULT_LIMIT = 25;
|
|
18554
18534
|
export declare const CTR_MAX_LIMIT = 100;
|
|
@@ -18570,14 +18550,8 @@ export declare function analyzeCtrUnderperformersFromRows(input: {
|
|
|
18570
18550
|
brand: ReportBrandTerms;
|
|
18571
18551
|
benchmarkByPosition: Record<string, PositionBenchmark>;
|
|
18572
18552
|
};
|
|
18573
|
-
//#endregion
|
|
18574
|
-
//#region packages/core/src/analyze/ctr-underperformers.d.ts
|
|
18575
18553
|
export declare function ctrUnderperformersReport(input: CtrUnderperformersInput, dependencies?: CtrUnderperformerDependencies): Promise<CtrUnderperformersReport>;
|
|
18576
|
-
//#endregion
|
|
18577
|
-
//#region packages/core/src/progress.d.ts
|
|
18578
18554
|
export type ProgressReporter = (message: string) => void;
|
|
18579
|
-
//#endregion
|
|
18580
|
-
//#region packages/core/src/analyze/segment-impact-types.d.ts
|
|
18581
18555
|
type SegmentDimension = 'page' | 'query' | 'country' | 'device';
|
|
18582
18556
|
type SegmentRange = {
|
|
18583
18557
|
startDate: string;
|
|
@@ -18675,8 +18649,6 @@ type SegmentImpactReport = {
|
|
|
18675
18649
|
warnings: string[];
|
|
18676
18650
|
caveats: string[];
|
|
18677
18651
|
};
|
|
18678
|
-
//#endregion
|
|
18679
|
-
//#region packages/core/src/analyze/segment-impact-analysis.d.ts
|
|
18680
18652
|
export declare function analyzeSegmentRows(input: {
|
|
18681
18653
|
site: string;
|
|
18682
18654
|
dimension: SegmentImpactReport['dimension'];
|
|
@@ -18695,8 +18667,6 @@ export declare function analyzeSegmentRows(input: {
|
|
|
18695
18667
|
beforeRowsFetched?: number;
|
|
18696
18668
|
afterRowsFetched?: number;
|
|
18697
18669
|
}): SegmentImpactReport;
|
|
18698
|
-
//#endregion
|
|
18699
|
-
//#region packages/core/src/analyze/segment-impact-fallback.d.ts
|
|
18700
18670
|
export declare function unavailableSegmentImpactReport(input: {
|
|
18701
18671
|
site: string;
|
|
18702
18672
|
dimension: SegmentDimension;
|
|
@@ -18704,8 +18674,6 @@ export declare function unavailableSegmentImpactReport(input: {
|
|
|
18704
18674
|
reason: string;
|
|
18705
18675
|
generatedAt?: string;
|
|
18706
18676
|
}): SegmentImpactReport;
|
|
18707
|
-
//#endregion
|
|
18708
|
-
//#region packages/core/src/analyze/segment-impact-input.d.ts
|
|
18709
18677
|
export declare function segmentRangeDays(range: SegmentRange): number;
|
|
18710
18678
|
export declare function segmentComparisonRange(after: SegmentRange, compareDays: number): SegmentRange;
|
|
18711
18679
|
export declare function resolveSegmentRanges(input: {
|
|
@@ -18718,8 +18686,6 @@ export declare function resolveSegmentRanges(input: {
|
|
|
18718
18686
|
before: SegmentRange;
|
|
18719
18687
|
after: SegmentRange;
|
|
18720
18688
|
};
|
|
18721
|
-
//#endregion
|
|
18722
|
-
//#region packages/core/src/analyze/segment-impact.d.ts
|
|
18723
18689
|
type SearchAnalytics$1 = typeof querySearchAnalytics;
|
|
18724
18690
|
export interface SegmentImpactInput {
|
|
18725
18691
|
site: string;
|
|
@@ -18756,8 +18722,6 @@ export declare function compareSegmentRows(input: {
|
|
|
18756
18722
|
generatedAt?: string;
|
|
18757
18723
|
}): SegmentImpactReport;
|
|
18758
18724
|
export declare function segmentImpact(input: SegmentImpactInput, dependencies?: SegmentImpactDependencies): Promise<SegmentImpactReport>;
|
|
18759
|
-
//#endregion
|
|
18760
|
-
//#region packages/core/src/providers/domain-contracts.d.ts
|
|
18761
18725
|
type ResearchImportSource = {
|
|
18762
18726
|
dataset: 'ranked-keywords';
|
|
18763
18727
|
file: string;
|
|
@@ -18774,13 +18738,9 @@ type RankedKeyword = KeywordMetric & {
|
|
|
18774
18738
|
resultType: string;
|
|
18775
18739
|
estimatedMonthlyTraffic: ProviderValue<number>;
|
|
18776
18740
|
};
|
|
18777
|
-
//#endregion
|
|
18778
|
-
//#region packages/core/src/providers/imports/research-rows.d.ts
|
|
18779
18741
|
type ImportedResearchRow = RankedKeyword & {
|
|
18780
18742
|
domain: string;
|
|
18781
18743
|
};
|
|
18782
|
-
//#endregion
|
|
18783
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-types.d.ts
|
|
18784
18744
|
type CannibalSuppressionReason = 'brand_query';
|
|
18785
18745
|
interface CannibalSuppression {
|
|
18786
18746
|
query: string;
|
|
@@ -19042,8 +19002,6 @@ interface CannibalAnalysis {
|
|
|
19042
19002
|
suppressionSummary: Record<string, number>;
|
|
19043
19003
|
templates: TemplateSummary[];
|
|
19044
19004
|
}
|
|
19045
|
-
//#endregion
|
|
19046
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-report.d.ts
|
|
19047
19005
|
/** Search Console input. Local research-file imports use the Node binding. */
|
|
19048
19006
|
export interface CannibalSearchConsoleInput {
|
|
19049
19007
|
site: string;
|
|
@@ -19061,13 +19019,16 @@ export interface CannibalDependencies {
|
|
|
19061
19019
|
now: () => Date;
|
|
19062
19020
|
}
|
|
19063
19021
|
export declare function cannibalReportWith(input: CannibalSearchConsoleInput, dependencies: CannibalDependencies): Promise<CannibalReport>;
|
|
19064
|
-
//#endregion
|
|
19065
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-analysis.d.ts
|
|
19066
19022
|
export declare function analyzeCannibalRows(input: AnalyzeCannibalRowsInput): CannibalAnalysis;
|
|
19023
|
+
/**
|
|
19024
|
+
* Empty, partial, filtered or complete. Partial evidence (a possibly capped
|
|
19025
|
+
* source, invalid rows, or a candidate with no query-level demand row) never
|
|
19026
|
+
* becomes filtered, so it cannot read as an all-clear.
|
|
19027
|
+
*/
|
|
19028
|
+
export declare function cannibalDataStatus(selection: CannibalSelection, possiblyTruncated: boolean): CannibalReport['dataStatus'];
|
|
19029
|
+
export declare const CANNIBAL_MINIMUM_PAGE_IMPRESSIONS = 10;
|
|
19067
19030
|
export declare const CANNIBAL_MINIMUM_PAGE_SHARE = 0.1;
|
|
19068
19031
|
export declare const CANNIBAL_MAXIMUM_DOMINANT_SHARE = 0.8;
|
|
19069
|
-
//#endregion
|
|
19070
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-import.d.ts
|
|
19071
19032
|
export interface CannibalImportReportInput {
|
|
19072
19033
|
site: string;
|
|
19073
19034
|
researchFiles: ResearchImportSource[];
|
|
@@ -19080,8 +19041,6 @@ export interface CannibalImportDependencies {
|
|
|
19080
19041
|
}
|
|
19081
19042
|
export declare function analyzeCannibalImportRows(input: AnalyzeCannibalImportRowsInput): CannibalImportAnalysis;
|
|
19082
19043
|
export declare function cannibalImportReport(input: CannibalImportReportInput, dependencies?: CannibalImportDependencies): Promise<CannibalImportReport>;
|
|
19083
|
-
//#endregion
|
|
19084
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal.d.ts
|
|
19085
19044
|
export interface CannibalReportInput extends CannibalSearchConsoleInput {
|
|
19086
19045
|
researchFiles?: ResearchImportSource[];
|
|
19087
19046
|
}
|
|
@@ -19091,8 +19050,6 @@ export declare function cannibalReport(input: CannibalReportInput & {
|
|
|
19091
19050
|
export declare function cannibalReport(input: CannibalReportInput & {
|
|
19092
19051
|
researchFiles?: undefined;
|
|
19093
19052
|
}, dependencies?: CannibalDependencies): Promise<CannibalReport>;
|
|
19094
|
-
//#endregion
|
|
19095
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-types.d.ts
|
|
19096
19053
|
type DecayDiagnosis = 'lost_position' | 'lost_ctr' | 'lost_impressions' | 'lost_clicks';
|
|
19097
19054
|
type DecayComparison = 'previous-period' | 'year-over-year';
|
|
19098
19055
|
type DecaySignal = 'position_decline' | 'ctr_decline' | 'impression_decline' | 'click_decline';
|
|
@@ -19243,11 +19200,7 @@ interface DecayReport {
|
|
|
19243
19200
|
ledgerSummary: string;
|
|
19244
19201
|
warnings: string[];
|
|
19245
19202
|
}
|
|
19246
|
-
//#endregion
|
|
19247
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-analysis.d.ts
|
|
19248
19203
|
export declare function analyzeDecay(input: AnalyzeDecayInput): DecayAnalysis;
|
|
19249
|
-
//#endregion
|
|
19250
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-report-input.d.ts
|
|
19251
19204
|
export declare function decayComparisonRange(current: {
|
|
19252
19205
|
startDate: string;
|
|
19253
19206
|
endDate: string;
|
|
@@ -19255,8 +19208,6 @@ export declare function decayComparisonRange(current: {
|
|
|
19255
19208
|
startDate: string;
|
|
19256
19209
|
endDate: string;
|
|
19257
19210
|
};
|
|
19258
|
-
//#endregion
|
|
19259
|
-
//#region packages/core/src/analyze/site-diagnostics/decaying-report.d.ts
|
|
19260
19211
|
export interface DecayingReportInput {
|
|
19261
19212
|
site: string;
|
|
19262
19213
|
days?: number;
|
|
@@ -19276,11 +19227,7 @@ export interface DecayingDependencies {
|
|
|
19276
19227
|
now: () => Date;
|
|
19277
19228
|
}
|
|
19278
19229
|
export declare function decayingReportWith(input: DecayingReportInput, dependencies: DecayingDependencies): Promise<DecayReport>;
|
|
19279
|
-
//#endregion
|
|
19280
|
-
//#region packages/core/src/analyze/site-diagnostics/decaying.d.ts
|
|
19281
19230
|
export declare function decayingReport(input: DecayingReportInput, dependencies?: DecayingDependencies): Promise<DecayReport>;
|
|
19282
|
-
//#endregion
|
|
19283
|
-
//#region packages/core/src/analyze/site-ctr-curve.d.ts
|
|
19284
19231
|
declare const SITE_CTR_CURVE_METHOD: {
|
|
19285
19232
|
readonly method: "position_bucket_url_p75_v2";
|
|
19286
19233
|
readonly samplePopulation: "all_qualified_url_samples";
|
|
@@ -19302,8 +19249,6 @@ declare const SITE_CTR_CURVE_METHOD: {
|
|
|
19302
19249
|
readonly sharedWith: readonly ["quick-wins", "ctr-underperformers"];
|
|
19303
19250
|
readonly heuristic: true;
|
|
19304
19251
|
};
|
|
19305
|
-
//#endregion
|
|
19306
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-types.d.ts
|
|
19307
19252
|
type QuickWinSelection = {
|
|
19308
19253
|
sourceRows: number;
|
|
19309
19254
|
invalidRows: number;
|
|
@@ -19439,8 +19384,6 @@ type AnalyzeQuickWinsInput = {
|
|
|
19439
19384
|
brandTerms?: string[];
|
|
19440
19385
|
includeBrand?: boolean;
|
|
19441
19386
|
};
|
|
19442
|
-
//#endregion
|
|
19443
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-report.d.ts
|
|
19444
19387
|
export type QuickWinsInput = {
|
|
19445
19388
|
site: string;
|
|
19446
19389
|
days?: number;
|
|
@@ -19576,19 +19519,11 @@ export declare function quickWinsReportWith(input: QuickWinsInput, dependencies:
|
|
|
19576
19519
|
message: string;
|
|
19577
19520
|
})[];
|
|
19578
19521
|
}>;
|
|
19579
|
-
//#endregion
|
|
19580
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-analysis.d.ts
|
|
19581
19522
|
export declare function analyzeQuickWinsFromRows(input: AnalyzeQuickWinsInput): QuickWinAnalysis;
|
|
19582
|
-
//#endregion
|
|
19583
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins.d.ts
|
|
19584
19523
|
export declare function quickWinsReport(input: QuickWinsInput, dependencies?: QuickWinsDependencies): Promise<QuickWinsReport>;
|
|
19585
|
-
//#endregion
|
|
19586
|
-
//#region packages/core/src/analyze/site-diagnostics/types.d.ts
|
|
19587
19524
|
export interface TemplateAwareReport {
|
|
19588
19525
|
templates: TemplateSummary[];
|
|
19589
19526
|
}
|
|
19590
|
-
//#endregion
|
|
19591
|
-
//#region packages/core/src/analyze/striking-distance-analysis-types.d.ts
|
|
19592
19527
|
type StrikingDistanceSelection = {
|
|
19593
19528
|
sourceRows: number;
|
|
19594
19529
|
/** Source rows whose page URL had a #fragment; merged into the base URL. */
|
|
@@ -19703,11 +19638,7 @@ type AnalyzeStrikingDistanceInput = {
|
|
|
19703
19638
|
brandTerms?: string[];
|
|
19704
19639
|
includeBrand?: boolean;
|
|
19705
19640
|
};
|
|
19706
|
-
//#endregion
|
|
19707
|
-
//#region packages/core/src/analyze/striking-distance-analysis.d.ts
|
|
19708
19641
|
export declare function analyzeStrikingDistanceRows(input: AnalyzeStrikingDistanceInput): StrikingDistanceAnalysis;
|
|
19709
|
-
//#endregion
|
|
19710
|
-
//#region packages/core/src/analyze/striking-distance-report.d.ts
|
|
19711
19642
|
export type StrikingDistanceInput = {
|
|
19712
19643
|
site: string;
|
|
19713
19644
|
/** Window length in days; ignored when startDate and endDate are given. */
|
|
@@ -19784,11 +19715,7 @@ export type StrikingDistanceDependencies = {
|
|
|
19784
19715
|
now: () => Date;
|
|
19785
19716
|
};
|
|
19786
19717
|
export declare function strikingDistanceWith(input: StrikingDistanceInput, dependencies: StrikingDistanceDependencies): Promise<StrikingDistanceReport>;
|
|
19787
|
-
//#endregion
|
|
19788
|
-
//#region packages/core/src/analyze/striking-distance.d.ts
|
|
19789
19718
|
export declare function strikingDistance(input: StrikingDistanceInput, dependencies?: StrikingDistanceDependencies): Promise<StrikingDistanceReport>;
|
|
19790
|
-
//#endregion
|
|
19791
|
-
//#region packages/core/src/updates/search-updates.d.ts
|
|
19792
19719
|
interface SearchStatusIncident {
|
|
19793
19720
|
id: string;
|
|
19794
19721
|
begin: string;
|
|
@@ -19820,8 +19747,6 @@ export declare function findOverlappingSearchUpdates(input: {
|
|
|
19820
19747
|
endDate: string;
|
|
19821
19748
|
paddingDays?: number;
|
|
19822
19749
|
}): SearchUpdate[];
|
|
19823
|
-
//#endregion
|
|
19824
|
-
//#region packages/core/src/analyze/traffic-anomaly-analysis.d.ts
|
|
19825
19750
|
export interface TrafficAnomaly {
|
|
19826
19751
|
site: string;
|
|
19827
19752
|
metric: 'clicks' | 'impressions';
|
|
@@ -19971,8 +19896,6 @@ export declare function analyzeTrafficAnomalyRows(input: {
|
|
|
19971
19896
|
coverage: TrafficAnomalyCoverage;
|
|
19972
19897
|
detection: TrafficAnomalyDetection;
|
|
19973
19898
|
};
|
|
19974
|
-
//#endregion
|
|
19975
|
-
//#region packages/core/src/analyze/traffic-anomaly-report.d.ts
|
|
19976
19899
|
export type TrafficAnomalyInput = {
|
|
19977
19900
|
site: string;
|
|
19978
19901
|
days?: number;
|
|
@@ -19986,8 +19909,6 @@ export type TrafficAnomalyDependencies = {
|
|
|
19986
19909
|
now: () => Date;
|
|
19987
19910
|
};
|
|
19988
19911
|
export declare function trafficAnomalyWith(input: TrafficAnomalyInput, dependencies: TrafficAnomalyDependencies): Promise<TrafficAnomalyReport>;
|
|
19989
|
-
//#endregion
|
|
19990
|
-
//#region packages/core/src/analyze/traffic-anomaly.d.ts
|
|
19991
19912
|
export declare function trafficAnomaly(input: TrafficAnomalyInput, dependencies?: TrafficAnomalyDependencies): Promise<TrafficAnomalyReport>;
|
|
19992
19913
|
export declare function updateCorrelation(input: {
|
|
19993
19914
|
site: string;
|
|
@@ -20000,8 +19921,6 @@ export declare function updateCorrelation(input: {
|
|
|
20000
19921
|
refresh?: boolean;
|
|
20001
19922
|
trafficAnomalies?: TrafficAnomaly[];
|
|
20002
19923
|
}): Promise<UpdateCorrelationReport>;
|
|
20003
|
-
//#endregion
|
|
20004
|
-
//#region packages/core/src/analyze/diagnose-property.d.ts
|
|
20005
19924
|
export type DiagnosisPriority = {
|
|
20006
19925
|
label: string;
|
|
20007
19926
|
reason: string;
|
|
@@ -20076,8 +19995,6 @@ export declare function diagnoseProperty(input: {
|
|
|
20076
19995
|
skipSearchData?: boolean;
|
|
20077
19996
|
progress?: ProgressReporter;
|
|
20078
19997
|
}, dependencies?: Partial<DiagnosePropertyDependencies>): Promise<DiagnosePropertyReport>;
|
|
20079
|
-
//#endregion
|
|
20080
|
-
//#region packages/core/src/decision-model.d.ts
|
|
20081
19998
|
export type DecisionQuestion = {
|
|
20082
19999
|
type: 'noul';
|
|
20083
20000
|
instructions: unknown;
|
|
@@ -20151,8 +20068,6 @@ export declare class DecisionRunner {
|
|
|
20151
20068
|
private release;
|
|
20152
20069
|
ask(request: DecisionRequest): Promise<DecisionResponse | null>;
|
|
20153
20070
|
}
|
|
20154
|
-
//#endregion
|
|
20155
|
-
//#region packages/core/src/analyze/internal-links-placement.d.ts
|
|
20156
20071
|
interface LinkSentence {
|
|
20157
20072
|
text: string;
|
|
20158
20073
|
section: string;
|
|
@@ -20161,8 +20076,6 @@ interface LinkSentence {
|
|
|
20161
20076
|
interface TermWeights {
|
|
20162
20077
|
idf(term: string): number;
|
|
20163
20078
|
}
|
|
20164
|
-
//#endregion
|
|
20165
|
-
//#region packages/core/src/analyze/internal-links-index.d.ts
|
|
20166
20079
|
declare class SiteIndex implements TermWeights {
|
|
20167
20080
|
private readonly ids;
|
|
20168
20081
|
private readonly df;
|
|
@@ -20181,8 +20094,6 @@ declare class SiteIndex implements TermWeights {
|
|
|
20181
20094
|
score: number;
|
|
20182
20095
|
}>;
|
|
20183
20096
|
}
|
|
20184
|
-
//#endregion
|
|
20185
|
-
//#region packages/core/src/analyze/internal-links-crawl.d.ts
|
|
20186
20097
|
export declare const DEFAULT_MAX_PAGES = 500;
|
|
20187
20098
|
export declare const MAX_MAX_PAGES = 5000;
|
|
20188
20099
|
type CrawlSkipReason$1 = 'robots' | 'not-html' | 'http-error' | 'fetch-failed' | 'canonicalised' | 'duplicate' | 'off-site';
|
|
@@ -20203,6 +20114,13 @@ interface CrawledPage {
|
|
|
20203
20114
|
length: number;
|
|
20204
20115
|
};
|
|
20205
20116
|
}
|
|
20117
|
+
interface SentenceSource {
|
|
20118
|
+
read(ref: {
|
|
20119
|
+
offset: number;
|
|
20120
|
+
length: number;
|
|
20121
|
+
}): Promise<LinkSentence[]>;
|
|
20122
|
+
close(): Promise<void>;
|
|
20123
|
+
}
|
|
20206
20124
|
interface SiteCrawl {
|
|
20207
20125
|
origin: string;
|
|
20208
20126
|
method: 'sitemap' | 'links';
|
|
@@ -20210,7 +20128,7 @@ interface SiteCrawl {
|
|
|
20210
20128
|
urls: string[];
|
|
20211
20129
|
pageOfUrl: Map<number, number>;
|
|
20212
20130
|
index: SiteIndex;
|
|
20213
|
-
sentences:
|
|
20131
|
+
sentences: SentenceSource;
|
|
20214
20132
|
genericAnchors: Array<{
|
|
20215
20133
|
source: number;
|
|
20216
20134
|
href: string;
|
|
@@ -20229,22 +20147,6 @@ interface SiteCrawl {
|
|
|
20229
20147
|
};
|
|
20230
20148
|
warnings: string[];
|
|
20231
20149
|
}
|
|
20232
|
-
declare class SentenceStore {
|
|
20233
|
-
private readonly dir;
|
|
20234
|
-
private readonly handle;
|
|
20235
|
-
private size;
|
|
20236
|
-
private constructor();
|
|
20237
|
-
static open(): Promise<SentenceStore>;
|
|
20238
|
-
write(sentences: LinkSentence[]): Promise<{
|
|
20239
|
-
offset: number;
|
|
20240
|
-
length: number;
|
|
20241
|
-
}>;
|
|
20242
|
-
read(ref: {
|
|
20243
|
-
offset: number;
|
|
20244
|
-
length: number;
|
|
20245
|
-
}): Promise<LinkSentence[]>;
|
|
20246
|
-
close(): Promise<void>;
|
|
20247
|
-
}
|
|
20248
20150
|
interface CrawlInput {
|
|
20249
20151
|
startUrl: string;
|
|
20250
20152
|
maxPages: number;
|
|
@@ -20252,9 +20154,6 @@ interface CrawlInput {
|
|
|
20252
20154
|
refresh?: boolean;
|
|
20253
20155
|
progress?: ProgressReporter;
|
|
20254
20156
|
}
|
|
20255
|
-
declare function crawlForLinks(input: CrawlInput): Promise<SiteCrawl>;
|
|
20256
|
-
//#endregion
|
|
20257
|
-
//#region packages/core/src/analyze/internal-links-judge.d.ts
|
|
20258
20157
|
export declare const PAGE_TYPES: {
|
|
20259
20158
|
readonly pillar_guide: "A long, broad guide that covers a whole topic and would naturally link out to many narrower pages";
|
|
20260
20159
|
readonly support_article: "A focused article, post, tutorial, or explainer about one narrower subject";
|
|
@@ -20288,8 +20187,6 @@ export declare const LINK_ROLES: {
|
|
|
20288
20187
|
};
|
|
20289
20188
|
type LinkRole = keyof typeof LINK_ROLES;
|
|
20290
20189
|
type HeldBackReason = 'weak-sentence' | 'no-sentence';
|
|
20291
|
-
//#endregion
|
|
20292
|
-
//#region packages/core/src/analyze/internal-links-types.d.ts
|
|
20293
20190
|
interface InternalLinkSuggestion {
|
|
20294
20191
|
source: string;
|
|
20295
20192
|
target: string;
|
|
@@ -20419,8 +20316,6 @@ interface InternalLinksReport {
|
|
|
20419
20316
|
caveats: string[];
|
|
20420
20317
|
next: string | null;
|
|
20421
20318
|
}
|
|
20422
|
-
//#endregion
|
|
20423
|
-
//#region packages/core/src/analyze/internal-links.d.ts
|
|
20424
20319
|
export interface InternalLinksInput {
|
|
20425
20320
|
site: string;
|
|
20426
20321
|
targetUrl?: string;
|
|
@@ -20430,9 +20325,10 @@ export interface InternalLinksInput {
|
|
|
20430
20325
|
refresh?: boolean;
|
|
20431
20326
|
}
|
|
20432
20327
|
export interface InternalLinksDependencies {
|
|
20433
|
-
crawl:
|
|
20328
|
+
crawl: (input: CrawlInput) => Promise<SiteCrawl>;
|
|
20434
20329
|
searchConsole: {
|
|
20435
20330
|
property: string;
|
|
20331
|
+
maxRows?: number;
|
|
20436
20332
|
query: (request: SearchAnalyticsRequest) => Promise<{
|
|
20437
20333
|
rows: GscRow[];
|
|
20438
20334
|
rowsFetched: number;
|
|
@@ -20450,9 +20346,8 @@ export interface InternalLinksDependencies {
|
|
|
20450
20346
|
progress?: ProgressReporter;
|
|
20451
20347
|
}
|
|
20452
20348
|
export declare function siteStartUrl(site: string): string;
|
|
20349
|
+
export declare function internalLinksReportWith(input: InternalLinksInput, dependencies: Partial<InternalLinksDependencies> & Pick<InternalLinksDependencies, 'crawl' | 'searchConsole' | 'decisionModel'>): Promise<InternalLinksReport>;
|
|
20453
20350
|
export declare function internalLinksReport(input: InternalLinksInput, dependencies: Partial<InternalLinksDependencies> & Pick<InternalLinksDependencies, 'searchConsole' | 'decisionModel'>): Promise<InternalLinksReport>;
|
|
20454
|
-
//#endregion
|
|
20455
|
-
//#region packages/core/src/analyze/url-templates.d.ts
|
|
20456
20351
|
type PseoTemplateCluster = {
|
|
20457
20352
|
id: string;
|
|
20458
20353
|
signature: string;
|
|
@@ -20475,8 +20370,6 @@ type PseoTemplateShape = {
|
|
|
20475
20370
|
tokenExamples: string[];
|
|
20476
20371
|
}>;
|
|
20477
20372
|
};
|
|
20478
|
-
//#endregion
|
|
20479
|
-
//#region packages/core/src/analyze/monitoring/index-coverage.d.ts
|
|
20480
20373
|
export type IndexCoverageSourceCompleteness = 'complete' | 'partial' | 'truncated' | 'unknown' | 'unavailable';
|
|
20481
20374
|
export type IndexCoverageSourceEvidence = {
|
|
20482
20375
|
completeness: IndexCoverageSourceCompleteness;
|
|
@@ -20619,8 +20512,6 @@ export type IndexCoverageSignalsReport = {
|
|
|
20619
20512
|
caveats: string[];
|
|
20620
20513
|
};
|
|
20621
20514
|
export declare function analyzeIndexCoverageSignals(input: IndexCoverageInput): IndexCoverageSignalsReport;
|
|
20622
|
-
//#endregion
|
|
20623
|
-
//#region packages/core/src/analyze/monitoring/index-coverage-report.d.ts
|
|
20624
20515
|
type SearchAnalytics = typeof querySearchAnalytics;
|
|
20625
20516
|
type FetchSitemap = typeof fetchSitemapUrls;
|
|
20626
20517
|
export type IndexCoverageReportInput = {
|
|
@@ -20666,8 +20557,6 @@ export type IndexCoverageReportDependencies = {
|
|
|
20666
20557
|
now: () => Date;
|
|
20667
20558
|
};
|
|
20668
20559
|
export declare function indexCoverageSignals(input: IndexCoverageReportInput, dependencies?: IndexCoverageReportDependencies): Promise<IndexCoverageReport>;
|
|
20669
|
-
//#endregion
|
|
20670
|
-
//#region packages/core/src/analyze/monitoring/redirect-trace.d.ts
|
|
20671
20560
|
export type RedirectTraceStep = {
|
|
20672
20561
|
url: string;
|
|
20673
20562
|
status: number;
|
|
@@ -20703,8 +20592,6 @@ export declare function redirectTrace(input: {
|
|
|
20703
20592
|
refresh?: boolean;
|
|
20704
20593
|
js?: boolean | 'auto';
|
|
20705
20594
|
}): Promise<RedirectTraceReport>;
|
|
20706
|
-
//#endregion
|
|
20707
|
-
//#region packages/core/src/analyze/monitoring/link-recover.d.ts
|
|
20708
20595
|
export type LinkRecoverItem = {
|
|
20709
20596
|
url: string;
|
|
20710
20597
|
finalUrl: string;
|
|
@@ -20753,8 +20640,6 @@ export declare function linkRecover(input: {
|
|
|
20753
20640
|
refresh?: boolean;
|
|
20754
20641
|
js?: boolean | 'auto';
|
|
20755
20642
|
}): Promise<LinkRecoverReport>;
|
|
20756
|
-
//#endregion
|
|
20757
|
-
//#region packages/core/src/analyze/performance-types.d.ts
|
|
20758
20643
|
export type PerformanceRating = 'good' | 'needs-work' | 'poor' | 'unknown';
|
|
20759
20644
|
export type PerformanceMetric = {
|
|
20760
20645
|
value?: number;
|
|
@@ -20859,8 +20744,6 @@ export type PerformanceAuditReport = {
|
|
|
20859
20744
|
caveats: string[];
|
|
20860
20745
|
raw?: unknown;
|
|
20861
20746
|
};
|
|
20862
|
-
//#endregion
|
|
20863
|
-
//#region packages/core/src/analyze/performance-crux.d.ts
|
|
20864
20747
|
type CruxResult = {
|
|
20865
20748
|
fieldData?: PerformanceAuditReport['fieldData'];
|
|
20866
20749
|
status: PerformanceAuditReport['fieldDataStatus'];
|
|
@@ -20873,8 +20756,6 @@ export declare function fetchCruxFieldData(input: {
|
|
|
20873
20756
|
fetchImpl?: typeof fetch$1;
|
|
20874
20757
|
timeoutMs?: number;
|
|
20875
20758
|
}): Promise<CruxResult>;
|
|
20876
|
-
//#endregion
|
|
20877
|
-
//#region packages/core/src/analyze/performance.d.ts
|
|
20878
20759
|
export declare function performanceReportIsCacheable(input: {
|
|
20879
20760
|
report: PerformanceAuditReport;
|
|
20880
20761
|
customCrux?: boolean;
|
|
@@ -20893,8 +20774,6 @@ export declare function performanceAudit(input: {
|
|
|
20893
20774
|
includeRaw?: boolean;
|
|
20894
20775
|
now?: () => Date;
|
|
20895
20776
|
}): Promise<PerformanceAuditReport>;
|
|
20896
|
-
//#endregion
|
|
20897
|
-
//#region packages/core/src/analyze/query-cluster-primitives.d.ts
|
|
20898
20777
|
type QueryClusterRow = {
|
|
20899
20778
|
query: string;
|
|
20900
20779
|
impressions: number;
|
|
@@ -20910,8 +20789,6 @@ type QueryClusterPage = {
|
|
|
20910
20789
|
};
|
|
20911
20790
|
export declare function queryClusterTokens(query: string): string[];
|
|
20912
20791
|
export declare function clusterQueryRows(rows: QueryClusterRow[]): QueryClusterRow[][];
|
|
20913
|
-
//#endregion
|
|
20914
|
-
//#region packages/core/src/analyze/query-cluster-analysis.d.ts
|
|
20915
20792
|
export declare function analyzeQueryClustersFromRows(input: {
|
|
20916
20793
|
rows: QueryClusterRow[];
|
|
20917
20794
|
brand?: string;
|
|
@@ -20928,8 +20805,6 @@ export declare function analyzeQueryClustersFromRows(input: {
|
|
|
20928
20805
|
minImpressions: number;
|
|
20929
20806
|
limit: number;
|
|
20930
20807
|
};
|
|
20931
|
-
//#endregion
|
|
20932
|
-
//#region packages/core/src/analyze/query-cluster.d.ts
|
|
20933
20808
|
export type QueryClusterReport = {
|
|
20934
20809
|
site: string;
|
|
20935
20810
|
scope?: string;
|
|
@@ -20981,8 +20856,6 @@ export declare function buildQueryClusterReportFromRows(input: {
|
|
|
20981
20856
|
minImpressions?: number;
|
|
20982
20857
|
limit?: number;
|
|
20983
20858
|
}): QueryClusterReport;
|
|
20984
|
-
//#endregion
|
|
20985
|
-
//#region packages/core/src/analyze/reports/types.d.ts
|
|
20986
20859
|
export type NarrativeSection = {
|
|
20987
20860
|
title: string;
|
|
20988
20861
|
bullets: string[];
|
|
@@ -21006,8 +20879,6 @@ export type ReportNarrative = {
|
|
|
21006
20879
|
}>;
|
|
21007
20880
|
diagnosis: DiagnosePropertyReport;
|
|
21008
20881
|
};
|
|
21009
|
-
//#endregion
|
|
21010
|
-
//#region packages/core/src/analyze/reports/narrative.d.ts
|
|
21011
20882
|
export declare function reportNarrative(input: {
|
|
21012
20883
|
site: string;
|
|
21013
20884
|
days?: number;
|
|
@@ -21027,8 +20898,6 @@ export declare function reportNarrative(input: {
|
|
|
21027
20898
|
}): Promise<ReportNarrative & {
|
|
21028
20899
|
markdown: string;
|
|
21029
20900
|
}>;
|
|
21030
|
-
//#endregion
|
|
21031
|
-
//#region packages/core/src/analyze/second-page-report.d.ts
|
|
21032
20901
|
export type SecondPageInput = {
|
|
21033
20902
|
site: string;
|
|
21034
20903
|
/** Window length in days; ignored when startDate and endDate are given. */
|
|
@@ -21056,14 +20925,8 @@ export type SecondPageDependencies = {
|
|
|
21056
20925
|
now: () => Date;
|
|
21057
20926
|
};
|
|
21058
20927
|
export declare function secondPageWith(input: SecondPageInput, dependencies: SecondPageDependencies): Promise<SecondPageReport>;
|
|
21059
|
-
//#endregion
|
|
21060
|
-
//#region packages/core/src/analyze/second-page-analysis.d.ts
|
|
21061
20928
|
export declare function analyzeSecondPageRows(input: AnalyzeSecondPageInput): SecondPageAnalysis;
|
|
21062
|
-
//#endregion
|
|
21063
|
-
//#region packages/core/src/analyze/second-page.d.ts
|
|
21064
20929
|
export declare function secondPage(input: SecondPageInput, dependencies?: SecondPageDependencies): Promise<SecondPageReport>;
|
|
21065
|
-
//#endregion
|
|
21066
|
-
//#region packages/core/src/analyze/title-width.d.ts
|
|
21067
20930
|
export declare const SERP_TITLE_REFERENCE_WIDTH_PX = 580;
|
|
21068
20931
|
export declare const SERP_TITLE_WIDTH_PROFILE: {
|
|
21069
20932
|
readonly id: "arial-20-v1";
|
|
@@ -21081,8 +20944,6 @@ export type TitleWidthEstimate = {
|
|
|
21081
20944
|
fallbackGraphemes: string[];
|
|
21082
20945
|
};
|
|
21083
20946
|
export declare function estimateSerpTitleWidth(title: string): TitleWidthEstimate;
|
|
21084
|
-
//#endregion
|
|
21085
|
-
//#region packages/core/src/analyze/workflows/types.d.ts
|
|
21086
20947
|
export type WorkflowStep = {
|
|
21087
20948
|
tool: string;
|
|
21088
20949
|
status: 'completed' | 'skipped';
|
|
@@ -21152,8 +21013,6 @@ export type PriorityQueueItem = {
|
|
|
21152
21013
|
action: string;
|
|
21153
21014
|
evidence: string;
|
|
21154
21015
|
};
|
|
21155
|
-
//#endregion
|
|
21156
|
-
//#region packages/core/src/analyze/workflows/crawl-implementation-queue.d.ts
|
|
21157
21016
|
export type CrawlImplementationQueueItem = PriorityQueueItem & {
|
|
21158
21017
|
ruleId: string;
|
|
21159
21018
|
severity: RuleSeverity;
|
|
@@ -21173,8 +21032,6 @@ export type CrawlImplementationQueueInput = CrawlConfigInput & {
|
|
|
21173
21032
|
};
|
|
21174
21033
|
export declare function crawlFixToQueueItem(fix: TopFix): CrawlImplementationQueueItem;
|
|
21175
21034
|
export declare function crawlImplementationQueueWorkflow(input: CrawlImplementationQueueInput, dependencies?: CrawlSiteDependencies): Promise<WorkflowReport<CrawlImplementationQueueOutput>>;
|
|
21176
|
-
//#endregion
|
|
21177
|
-
//#region packages/core/src/analyze/workflows/diagnose-property.d.ts
|
|
21178
21035
|
export declare function diagnosePropertyWorkflow(input: {
|
|
21179
21036
|
site: string;
|
|
21180
21037
|
days?: number;
|
|
@@ -21187,13 +21044,9 @@ export declare function diagnosePropertyWorkflow(input: {
|
|
|
21187
21044
|
}): Promise<WorkflowReport<{
|
|
21188
21045
|
narrative: Awaited<ReturnType<typeof reportNarrative>>;
|
|
21189
21046
|
}>>;
|
|
21190
|
-
//#endregion
|
|
21191
|
-
//#region packages/core/src/analyze/workflows/markdown.d.ts
|
|
21192
21047
|
export declare function renderWorkflowMarkdown(report: WorkflowReport<unknown>, options?: {
|
|
21193
21048
|
queueLimit?: number;
|
|
21194
21049
|
}): string;
|
|
21195
|
-
//#endregion
|
|
21196
|
-
//#region packages/core/src/presentation.d.ts
|
|
21197
21050
|
export type PresentationScalar = boolean | number | string | null;
|
|
21198
21051
|
export type PresentationTableColumn = {
|
|
21199
21052
|
key: string;
|
|
@@ -21218,17 +21071,11 @@ export type Presentation = {
|
|
|
21218
21071
|
tables: PresentationTable[];
|
|
21219
21072
|
charts: PresentationChart[];
|
|
21220
21073
|
};
|
|
21221
|
-
//#endregion
|
|
21222
|
-
//#region packages/core/src/analyze/workflows/presentation.d.ts
|
|
21223
21074
|
export declare function workflowPresentation(report: WorkflowReport<unknown>, options?: {
|
|
21224
21075
|
queueLimit?: number;
|
|
21225
21076
|
}): Presentation;
|
|
21226
|
-
//#endregion
|
|
21227
|
-
//#region packages/core/src/analyze/workflows/priority-scoring.d.ts
|
|
21228
21077
|
type PriorityCategory = 'technical' | 'content' | 'serp' | 'authority' | 'strategy';
|
|
21229
21078
|
declare function priorityCategory(source: PriorityQueueItem['source'], verification?: QueryContentClassification): PriorityCategory;
|
|
21230
|
-
//#endregion
|
|
21231
|
-
//#region packages/core/src/analyze/workflows/refresh-priorities.d.ts
|
|
21232
21079
|
type QueueDraft = Omit<PriorityQueueItem, 'category' | 'score' | 'impact' | 'scoreBreakdown'> & {
|
|
21233
21080
|
impact: number;
|
|
21234
21081
|
effort?: 'S' | 'M' | 'L';
|
|
@@ -21267,8 +21114,6 @@ export declare function refreshPrioritiesWorkflow(input: {
|
|
|
21267
21114
|
warnings: string[];
|
|
21268
21115
|
diagnosis: Awaited<ReturnType<typeof diagnoseProperty>>;
|
|
21269
21116
|
}>>;
|
|
21270
|
-
//#endregion
|
|
21271
|
-
//#region packages/core/src/analyze/workflows/segments.d.ts
|
|
21272
21117
|
type WorkflowSegmentCoverage = {
|
|
21273
21118
|
evidenceScope: 'matched-retained-segments';
|
|
21274
21119
|
eligibleRows: number;
|
|
@@ -21290,8 +21135,6 @@ type WorkflowSegmentSplit = {
|
|
|
21290
21135
|
warnings: string[];
|
|
21291
21136
|
};
|
|
21292
21137
|
declare function splitSegments(report: SegmentImpactReport): WorkflowSegmentSplit;
|
|
21293
|
-
//#endregion
|
|
21294
|
-
//#region packages/core/src/analyze/workflows/update-postmortem.d.ts
|
|
21295
21138
|
type SplitSegment = ReturnType<typeof splitSegments>;
|
|
21296
21139
|
type PostmortemInsight = {
|
|
21297
21140
|
dimension: 'page' | 'query' | 'device' | 'country';
|
|
@@ -21342,8 +21185,6 @@ export declare function updatePostmortemWorkflow(input: {
|
|
|
21342
21185
|
updateCorrelation?: typeof updateCorrelation;
|
|
21343
21186
|
segmentImpact?: typeof segmentImpact;
|
|
21344
21187
|
}): Promise<WorkflowReport<PostmortemOutput>>;
|
|
21345
|
-
//#endregion
|
|
21346
|
-
//#region packages/core/src/brand.d.ts
|
|
21347
21188
|
export declare function normalizeBrandText(value: string): string;
|
|
21348
21189
|
/**
|
|
21349
21190
|
* The registrable part of a Search Console property host, using the small
|
|
@@ -21367,8 +21208,6 @@ export declare function shouldExcludeBrandQuery(input: {
|
|
|
21367
21208
|
brandTerms?: string[];
|
|
21368
21209
|
includeBrand?: boolean;
|
|
21369
21210
|
}): boolean;
|
|
21370
|
-
//#endregion
|
|
21371
|
-
//#region packages/core/src/brand-detect.d.ts
|
|
21372
21211
|
type BrandEvidence = {
|
|
21373
21212
|
query: string;
|
|
21374
21213
|
clicks: number;
|
|
@@ -21396,8 +21235,6 @@ export declare function detectBrandTerms(input: {
|
|
|
21396
21235
|
suggestedTerms: string[];
|
|
21397
21236
|
candidates: BrandTermCandidate[];
|
|
21398
21237
|
}>;
|
|
21399
|
-
//#endregion
|
|
21400
|
-
//#region packages/core/src/storage/provider-secrets.d.ts
|
|
21401
21238
|
export declare const PROVIDER_SECRET_NAMES: {
|
|
21402
21239
|
readonly ahrefsApiKey: "ahrefs-api-key";
|
|
21403
21240
|
readonly bingApiKey: "bing-api-key";
|
|
@@ -21419,8 +21256,6 @@ export declare function readProviderSecret(input: {
|
|
|
21419
21256
|
export declare function writeProviderSecret(name: string, value: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
21420
21257
|
export declare function deleteProviderSecret(name: string): Promise<void>;
|
|
21421
21258
|
export declare function deleteManagedProviderSecrets(): Promise<void>;
|
|
21422
|
-
//#endregion
|
|
21423
|
-
//#region packages/core/src/clicky/credentials.d.ts
|
|
21424
21259
|
export declare const CLICKY_SITEKEY_ENV = "SEO_CLICKY_SITEKEY";
|
|
21425
21260
|
export declare const CLICKY_SITE_KEYS_SECRET: "clicky-sitekeys";
|
|
21426
21261
|
export type StoredClickySiteKey = {
|
|
@@ -21435,23 +21270,15 @@ export declare function readClickySiteKey(siteIdValue: string, input?: {
|
|
|
21435
21270
|
}): Promise<StoredClickySiteKey | undefined>;
|
|
21436
21271
|
export declare function writeClickySiteKey(siteIdValue: string, siteKeyValue: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
21437
21272
|
export declare function deleteClickySiteKey(siteIdValue: string): Promise<void>;
|
|
21438
|
-
//#endregion
|
|
21439
|
-
//#region packages/core/src/bing/api.d.ts
|
|
21440
21273
|
type BingCall = (method: string, params?: Record<string, string>) => Promise<unknown>;
|
|
21441
|
-
//#endregion
|
|
21442
|
-
//#region packages/core/src/commands/sites.d.ts
|
|
21443
21274
|
type GoogleAccount = {
|
|
21444
21275
|
email: string | null;
|
|
21445
21276
|
google: GoogleFetch;
|
|
21446
21277
|
};
|
|
21447
|
-
//#endregion
|
|
21448
|
-
//#region packages/core/src/commands/analytics-site.d.ts
|
|
21449
21278
|
type AnalyticsAccess = {
|
|
21450
21279
|
accounts: () => Promise<GoogleAccount[]>;
|
|
21451
21280
|
signIn: string;
|
|
21452
21281
|
};
|
|
21453
|
-
//#endregion
|
|
21454
|
-
//#region packages/core/src/commands/audit-checks.d.ts
|
|
21455
21282
|
type AuditCheckRow = {
|
|
21456
21283
|
url: string;
|
|
21457
21284
|
in_sitemap: boolean;
|
|
@@ -21517,8 +21344,6 @@ type AuditChecks = {
|
|
|
21517
21344
|
started: boolean;
|
|
21518
21345
|
as_of: number;
|
|
21519
21346
|
};
|
|
21520
|
-
//#endregion
|
|
21521
|
-
//#region packages/core/src/commands/audit.d.ts
|
|
21522
21347
|
type AuditSummary = {
|
|
21523
21348
|
status: 'done' | 'failed';
|
|
21524
21349
|
complete: boolean;
|
|
@@ -21601,8 +21426,6 @@ type AuditAccess = {
|
|
|
21601
21426
|
checks: (site: string, offset: number, limit: number) => Promise<AuditChecks | null>;
|
|
21602
21427
|
add: (site: string) => Promise<'added' | 'exists' | 'full'>;
|
|
21603
21428
|
};
|
|
21604
|
-
//#endregion
|
|
21605
|
-
//#region packages/core/src/commands/page-facts.d.ts
|
|
21606
21429
|
type RedirectKind = 'permanent' | 'temporary';
|
|
21607
21430
|
type LiveCheck = {
|
|
21608
21431
|
first: PageFacts;
|
|
@@ -21614,8 +21437,6 @@ type LiveCheck = {
|
|
|
21614
21437
|
}[];
|
|
21615
21438
|
last: PageFacts | null;
|
|
21616
21439
|
};
|
|
21617
|
-
//#endregion
|
|
21618
|
-
//#region packages/core/src/commands/types.d.ts
|
|
21619
21440
|
declare const COMMANDS: {
|
|
21620
21441
|
readonly report: {
|
|
21621
21442
|
readonly where: "anywhere";
|
|
@@ -21649,6 +21470,10 @@ declare const COMMANDS: {
|
|
|
21649
21470
|
readonly where: "local";
|
|
21650
21471
|
readonly summary: "Pages that could link to a target page.";
|
|
21651
21472
|
};
|
|
21473
|
+
readonly lint: {
|
|
21474
|
+
readonly where: "anywhere";
|
|
21475
|
+
readonly summary: "Check copy for patterns common in AI-written text, weak copy and title and description length.";
|
|
21476
|
+
};
|
|
21652
21477
|
};
|
|
21653
21478
|
type CommandId = keyof typeof COMMANDS;
|
|
21654
21479
|
type Caller = (command: CommandId, args?: Record<string, string | number | undefined>) => string;
|
|
@@ -21701,6 +21526,7 @@ type CommandDeps = {
|
|
|
21701
21526
|
audit?: AuditAccess;
|
|
21702
21527
|
week?: () => Promise<WeekData | null>;
|
|
21703
21528
|
startAudit?: (site: string) => Promise<StartAudit>;
|
|
21529
|
+
issues?: IssueStore;
|
|
21704
21530
|
now?: () => Date;
|
|
21705
21531
|
};
|
|
21706
21532
|
type StartAudit = {
|
|
@@ -21722,8 +21548,45 @@ type PageMarkdown = {
|
|
|
21722
21548
|
} | {
|
|
21723
21549
|
error: string;
|
|
21724
21550
|
};
|
|
21725
|
-
|
|
21726
|
-
|
|
21551
|
+
declare const ISSUE_MARKS: readonly ["open", "fixed", "ignored"];
|
|
21552
|
+
type IssueMark = (typeof ISSUE_MARKS)[number];
|
|
21553
|
+
type IssueSeen = 'found' | 'not-found' | 'not-checked';
|
|
21554
|
+
type StoredIssue = {
|
|
21555
|
+
id: string;
|
|
21556
|
+
kind: string;
|
|
21557
|
+
subject: string;
|
|
21558
|
+
evidence: string;
|
|
21559
|
+
mark: IssueMark;
|
|
21560
|
+
marked_at: string | null;
|
|
21561
|
+
note: string | null;
|
|
21562
|
+
first_found: string;
|
|
21563
|
+
last_found: string | null;
|
|
21564
|
+
seen: IssueSeen;
|
|
21565
|
+
checked_at: string | null;
|
|
21566
|
+
measures?: IssueMeasure[];
|
|
21567
|
+
};
|
|
21568
|
+
declare const MEASURE_DAYS: readonly [28, 56];
|
|
21569
|
+
type MeasureDays = (typeof MEASURE_DAYS)[number];
|
|
21570
|
+
type MeasurePeriod = {
|
|
21571
|
+
start: string;
|
|
21572
|
+
end: string;
|
|
21573
|
+
clicks: number;
|
|
21574
|
+
impressions: number;
|
|
21575
|
+
position: number | null;
|
|
21576
|
+
};
|
|
21577
|
+
type IssueMeasure = {
|
|
21578
|
+
days: MeasureDays;
|
|
21579
|
+
fixed_on: string;
|
|
21580
|
+
scope: 'page' | 'query on page';
|
|
21581
|
+
before: MeasurePeriod;
|
|
21582
|
+
after: MeasurePeriod;
|
|
21583
|
+
updates: string[] | null;
|
|
21584
|
+
measured_at: string;
|
|
21585
|
+
};
|
|
21586
|
+
type IssueStore = {
|
|
21587
|
+
read: (site: string) => Promise<StoredIssue[] | null>;
|
|
21588
|
+
write: (site: string, issues: StoredIssue[]) => Promise<void>;
|
|
21589
|
+
};
|
|
21727
21590
|
type WeekSite = {
|
|
21728
21591
|
property: string;
|
|
21729
21592
|
link: string | null;
|
|
@@ -21752,6 +21615,37 @@ type WeekSite = {
|
|
|
21752
21615
|
clicks: number;
|
|
21753
21616
|
previous: number;
|
|
21754
21617
|
} | null;
|
|
21618
|
+
opportunities?: WeekOpportunities | null;
|
|
21619
|
+
measured?: {
|
|
21620
|
+
total: number;
|
|
21621
|
+
items: (IssueMeasure & {
|
|
21622
|
+
subject: string;
|
|
21623
|
+
})[];
|
|
21624
|
+
};
|
|
21625
|
+
};
|
|
21626
|
+
type WeekOpportunities = {
|
|
21627
|
+
checked_at: number | null;
|
|
21628
|
+
competitors: string[];
|
|
21629
|
+
blocked: string | null;
|
|
21630
|
+
partial: boolean;
|
|
21631
|
+
items: WeekOpportunity[];
|
|
21632
|
+
};
|
|
21633
|
+
type WeekOpportunity = {
|
|
21634
|
+
keyword: string;
|
|
21635
|
+
kind: 'page' | 'tool';
|
|
21636
|
+
search_volume: number;
|
|
21637
|
+
cpc: number;
|
|
21638
|
+
intent: string;
|
|
21639
|
+
competitors: {
|
|
21640
|
+
domain: string;
|
|
21641
|
+
position: number;
|
|
21642
|
+
url: string;
|
|
21643
|
+
}[];
|
|
21644
|
+
site_dr: number;
|
|
21645
|
+
low_dr: number;
|
|
21646
|
+
top: number;
|
|
21647
|
+
cluster: number;
|
|
21648
|
+
relevance: number;
|
|
21755
21649
|
};
|
|
21756
21650
|
type WeekData = {
|
|
21757
21651
|
start: string;
|
|
@@ -21759,8 +21653,6 @@ type WeekData = {
|
|
|
21759
21653
|
account: string;
|
|
21760
21654
|
sites: WeekSite[];
|
|
21761
21655
|
};
|
|
21762
|
-
//#endregion
|
|
21763
|
-
//#region packages/core/src/cloud.d.ts
|
|
21764
21656
|
export declare const CLOUD_URL = "https://seoskill.dev";
|
|
21765
21657
|
type Pending = {
|
|
21766
21658
|
device: string;
|
|
@@ -21801,8 +21693,13 @@ export declare function pendingCloudLogin(): Pending | null;
|
|
|
21801
21693
|
export declare function finishCloudLogin(): Promise<'linked' | 'pending' | 'expired'>;
|
|
21802
21694
|
export declare function cloudLogout(): Promise<boolean>;
|
|
21803
21695
|
export declare function openCloudLink(url: string): Promise<void>;
|
|
21804
|
-
|
|
21805
|
-
|
|
21696
|
+
type LintSource = {
|
|
21697
|
+
path: string;
|
|
21698
|
+
text: string;
|
|
21699
|
+
} | {
|
|
21700
|
+
path: string;
|
|
21701
|
+
skipped: string;
|
|
21702
|
+
};
|
|
21806
21703
|
export type TokenStorageMode = 'keychain' | 'file';
|
|
21807
21704
|
export type TokenStorageStatus = {
|
|
21808
21705
|
configured: TokenStorageMode;
|
|
@@ -21840,8 +21737,6 @@ export declare function getPrivacySnapshot(): Array<{
|
|
|
21840
21737
|
mode: string;
|
|
21841
21738
|
sizeBytes: number;
|
|
21842
21739
|
}>;
|
|
21843
|
-
//#endregion
|
|
21844
|
-
//#region packages/core/src/gsc/auth/types.d.ts
|
|
21845
21740
|
interface OAuthClientConfig {
|
|
21846
21741
|
clientId: string;
|
|
21847
21742
|
clientSecret: string;
|
|
@@ -21850,8 +21745,6 @@ interface OAuthClientConfig {
|
|
|
21850
21745
|
interface GoogleAccessTokenClient {
|
|
21851
21746
|
getAccessToken(): Promise<string>;
|
|
21852
21747
|
}
|
|
21853
|
-
//#endregion
|
|
21854
|
-
//#region packages/core/src/gsc/auth/service-account.d.ts
|
|
21855
21748
|
type ServiceAccountSource = 'environment-json' | 'environment-file' | 'application-default-file';
|
|
21856
21749
|
export type ServiceAccountConfig = {
|
|
21857
21750
|
clientEmail: string;
|
|
@@ -21875,8 +21768,6 @@ export declare class ServiceAccountAccessTokenClient implements GoogleAccessToke
|
|
|
21875
21768
|
constructor(config: ServiceAccountConfig, fetchImpl?: typeof fetch);
|
|
21876
21769
|
getAccessToken(): Promise<string>;
|
|
21877
21770
|
}
|
|
21878
|
-
//#endregion
|
|
21879
|
-
//#region packages/core/src/gsc/auth/authorized-client.d.ts
|
|
21880
21771
|
export declare function createAuthorizedClient(accountEmail?: string): Promise<{
|
|
21881
21772
|
client: GoogleAccessTokenClient;
|
|
21882
21773
|
tokens: StoredTokens;
|
|
@@ -21903,25 +21794,17 @@ export declare function authStatus(): Promise<{
|
|
|
21903
21794
|
identity?: string;
|
|
21904
21795
|
serviceAccount: ServiceAccountStatus;
|
|
21905
21796
|
}>;
|
|
21906
|
-
//#endregion
|
|
21907
|
-
//#region packages/core/src/gsc/auth/client-config.d.ts
|
|
21908
21797
|
export declare function getAuthModeStatus(): {
|
|
21909
21798
|
sharedConfigured: boolean;
|
|
21910
21799
|
byoConfigured: boolean;
|
|
21911
21800
|
};
|
|
21912
21801
|
export declare function getClientConfig(source?: OAuthClientConfig['source']): OAuthClientConfig | undefined;
|
|
21913
21802
|
export declare function missingOAuthClientMessage(source: OAuthClientConfig['source']): string;
|
|
21914
|
-
//#endregion
|
|
21915
|
-
//#region packages/core/src/gsc/auth/loopback.d.ts
|
|
21916
21803
|
export declare function missingSharedClientLoginMessage(): string;
|
|
21917
21804
|
export declare function loginWithLoopback(clientConfig?: OAuthClientConfig | undefined): Promise<StoredTokens>;
|
|
21918
|
-
//#endregion
|
|
21919
|
-
//#region packages/core/src/gsc/client/fetch.d.ts
|
|
21920
21805
|
export declare const LOCAL_SIGN_IN: {
|
|
21921
21806
|
signIn: string;
|
|
21922
21807
|
};
|
|
21923
|
-
//#endregion
|
|
21924
|
-
//#region packages/core/src/commands-node.d.ts
|
|
21925
21808
|
export declare function nodeCommandDeps(options: {
|
|
21926
21809
|
call: Caller;
|
|
21927
21810
|
account?: string;
|
|
@@ -21943,8 +21826,6 @@ export declare function resolveLocalSite(site: string, options?: {
|
|
|
21943
21826
|
}): Promise<string>;
|
|
21944
21827
|
export declare function localError(error: unknown): unknown;
|
|
21945
21828
|
export declare function localGoogleFetch(account?: string): Promise<GoogleFetch>;
|
|
21946
|
-
//#endregion
|
|
21947
|
-
//#region packages/core/src/storage/sqlite.d.ts
|
|
21948
21829
|
type TransactionFunction = (...params: never[]) => unknown;
|
|
21949
21830
|
declare class Statement {
|
|
21950
21831
|
private readonly statement;
|
|
@@ -21969,8 +21850,6 @@ declare namespace SqliteDatabase {
|
|
|
21969
21850
|
lastInsertRowid: number | bigint;
|
|
21970
21851
|
};
|
|
21971
21852
|
}
|
|
21972
|
-
//#endregion
|
|
21973
|
-
//#region packages/core/src/storage/database.d.ts
|
|
21974
21853
|
export declare function ensurePrivateDatabaseFiles(path: string): void;
|
|
21975
21854
|
export declare function getDb(): SqliteDatabase.Database;
|
|
21976
21855
|
export declare function cacheDb(): SqliteDatabase.Database;
|
|
@@ -21982,8 +21861,6 @@ export declare function checkDatabaseReadiness(): {
|
|
|
21982
21861
|
export declare function hashKey(parts: unknown[]): string;
|
|
21983
21862
|
export declare function getCacheStats(): CacheStats;
|
|
21984
21863
|
export declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'dataforseo' | 'ahrefs' | 'clicky' | 'http', olderThanMs?: number): number;
|
|
21985
|
-
//#endregion
|
|
21986
|
-
//#region packages/core/src/doctor.d.ts
|
|
21987
21864
|
export type DoctorCheck = {
|
|
21988
21865
|
id: string;
|
|
21989
21866
|
label: string;
|
|
@@ -21999,8 +21876,6 @@ export declare function runDoctor(dependencies?: DoctorDependencies): Promise<{
|
|
|
21999
21876
|
generatedAt: string;
|
|
22000
21877
|
checks: DoctorCheck[];
|
|
22001
21878
|
}>;
|
|
22002
|
-
//#endregion
|
|
22003
|
-
//#region packages/core/src/export/csv.d.ts
|
|
22004
21879
|
export type CsvValue = string | number | boolean | null | undefined;
|
|
22005
21880
|
export type CsvRow = Record<string, CsvValue>;
|
|
22006
21881
|
export type CsvFile = {
|
|
@@ -22016,8 +21891,6 @@ export declare function refreshPrioritiesCsvFiles(report: WorkflowReport<{
|
|
|
22016
21891
|
warnings: string[];
|
|
22017
21892
|
diagnosis: DiagnosePropertyReport;
|
|
22018
21893
|
}>): CsvFile[];
|
|
22019
|
-
//#endregion
|
|
22020
|
-
//#region packages/core/src/export/update-postmortem.d.ts
|
|
22021
21894
|
type PostmortemCsvReport = WorkflowReport<{
|
|
22022
21895
|
update: {
|
|
22023
21896
|
attribution: string;
|
|
@@ -22096,8 +21969,6 @@ type SegmentItem = {
|
|
|
22096
21969
|
positionDelta: number | null;
|
|
22097
21970
|
};
|
|
22098
21971
|
export declare function updatePostmortemCsvFiles(report: PostmortemCsvReport): CsvFile[];
|
|
22099
|
-
//#endregion
|
|
22100
|
-
//#region packages/core/src/ga4/matching.d.ts
|
|
22101
21972
|
export type Ga4WebStreamCandidate = {
|
|
22102
21973
|
account: string;
|
|
22103
21974
|
property: string;
|
|
@@ -22111,8 +21982,6 @@ export type Ga4WebStreamMatch = Ga4WebStreamCandidate & {
|
|
|
22111
21982
|
};
|
|
22112
21983
|
export declare function matchGa4WebStreams(site: string, candidates: Ga4WebStreamCandidate[]): Ga4WebStreamMatch[];
|
|
22113
21984
|
export declare function ga4MatchReason(match: Ga4WebStreamMatch, site: string): string;
|
|
22114
|
-
//#endregion
|
|
22115
|
-
//#region packages/core/src/gsc/dates.d.ts
|
|
22116
21985
|
export declare const GSC_TIME_ZONE = "America/Los_Angeles";
|
|
22117
21986
|
export declare const GSC_FINAL_DATA_LAG_DAYS = 4;
|
|
22118
21987
|
export declare function shiftIsoDate(date: string, days: number): string;
|
|
@@ -22121,8 +21990,6 @@ export declare function finalGscDateRange(days?: number, now?: Date): {
|
|
|
22121
21990
|
startDate: string;
|
|
22122
21991
|
endDate: string;
|
|
22123
21992
|
};
|
|
22124
|
-
//#endregion
|
|
22125
|
-
//#region packages/core/src/gsc/local-export.d.ts
|
|
22126
21993
|
export declare const DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT = 5000;
|
|
22127
21994
|
export declare const MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT = 100000;
|
|
22128
21995
|
export declare const MAX_SEARCH_CONSOLE_EXPORT_FILES = 20;
|
|
@@ -22182,8 +22049,6 @@ export declare function loadSearchConsoleExport(input: {
|
|
|
22182
22049
|
now?: Date;
|
|
22183
22050
|
exportedAt?: Date;
|
|
22184
22051
|
}): Promise<SearchConsoleExportEvidence>;
|
|
22185
|
-
//#endregion
|
|
22186
|
-
//#region packages/core/src/gsc/local-export-reconcile.d.ts
|
|
22187
22052
|
export declare const DEFAULT_UNREACHED_PAGE_LIMIT = 100;
|
|
22188
22053
|
export type SearchConsoleExportReconciliation = {
|
|
22189
22054
|
joinBasis: 'path';
|
|
@@ -22201,25 +22066,18 @@ export declare function reconcileExportPagesWithCrawl(input: {
|
|
|
22201
22066
|
crawlOrigin: string;
|
|
22202
22067
|
limit?: number;
|
|
22203
22068
|
}): SearchConsoleExportReconciliation;
|
|
22204
|
-
//#endregion
|
|
22205
|
-
//#region packages/core/src/gsc/property-url.d.ts
|
|
22206
22069
|
export declare function normalizeHttpUrl(value: string): string;
|
|
22207
22070
|
export declare function assertUrlMatchesGscProperty(property: string, value: string): string;
|
|
22208
|
-
//#endregion
|
|
22209
|
-
//#region packages/core/src/http/read-json.d.ts
|
|
22210
22071
|
export declare function readJson<T = unknown>(response: Response, label: string, options?: {
|
|
22211
22072
|
maxBytes?: number;
|
|
22212
22073
|
}): Promise<T>;
|
|
22213
22074
|
export declare function readJsonOrUndefined<T = unknown>(response: Response, label: string): Promise<T | undefined>;
|
|
22214
|
-
|
|
22215
|
-
|
|
22075
|
+
export declare const LINT_MAX_FILES = 100;
|
|
22076
|
+
export declare function lintPaths(inputs: string[], cwd?: string): Promise<string[]>;
|
|
22077
|
+
export declare function readLintFiles(inputs: string[], cwd?: string): Promise<LintSource[]>;
|
|
22216
22078
|
export declare function createLogger(runId: string): pino.Logger;
|
|
22217
22079
|
export declare function makeRunId(): string;
|
|
22218
|
-
//#endregion
|
|
22219
|
-
//#region packages/core/src/markdown.d.ts
|
|
22220
22080
|
export declare function renderPresentationTablesMarkdown(tables: PresentationTable[]): string[];
|
|
22221
|
-
//#endregion
|
|
22222
|
-
//#region packages/core/src/paths.d.ts
|
|
22223
22081
|
export interface SeoCliPaths {
|
|
22224
22082
|
configDir: string;
|
|
22225
22083
|
cacheDir: string;
|
|
@@ -22243,12 +22101,8 @@ export declare function migrateLegacyMacConfig(input?: SeoCliPathOptions): void;
|
|
|
22243
22101
|
export declare function getSeoCliPaths(): SeoCliPaths;
|
|
22244
22102
|
export declare function ensureSeoCliDirs(): SeoCliPaths;
|
|
22245
22103
|
export declare function fileSize(path: string): number;
|
|
22246
|
-
//#endregion
|
|
22247
|
-
//#region packages/core/src/phrasing.d.ts
|
|
22248
22104
|
export declare function plural(count: number, singular: string, pluralLabel?: string): string;
|
|
22249
22105
|
export declare function countLabel(count: number, singular: string, pluralLabel?: string): string;
|
|
22250
|
-
//#endregion
|
|
22251
|
-
//#region packages/core/src/provider-extensions/actions.d.ts
|
|
22252
22106
|
export type ProviderActionResult = {
|
|
22253
22107
|
provider: string;
|
|
22254
22108
|
action: string;
|
|
@@ -22264,13 +22118,9 @@ export declare function runProviderExtensionAction(input: {
|
|
|
22264
22118
|
refresh?: boolean;
|
|
22265
22119
|
runtime?: ProviderRuntimeOptions;
|
|
22266
22120
|
}): Promise<ProviderActionResult>;
|
|
22267
|
-
//#endregion
|
|
22268
|
-
//#region packages/core/src/provider-extensions/connections.d.ts
|
|
22269
22121
|
export declare function readProviderExtensionAccount(providerIdValue: string): Record<string, string>;
|
|
22270
22122
|
export declare function writeProviderExtensionAccount(providerIdValue: string, account: Readonly<Record<string, string>>): Record<string, string>;
|
|
22271
22123
|
export declare function deleteProviderExtensionAccount(providerIdValue: string): void;
|
|
22272
|
-
//#endregion
|
|
22273
|
-
//#region packages/core/src/provider-extensions/credentials.d.ts
|
|
22274
22124
|
export declare function readProviderExtensionCredentials(input: {
|
|
22275
22125
|
providerId: string;
|
|
22276
22126
|
account: Readonly<Record<string, string>>;
|
|
@@ -22286,8 +22136,6 @@ export declare function deleteProviderExtensionCredentials(input: {
|
|
|
22286
22136
|
providerId: string;
|
|
22287
22137
|
account: Readonly<Record<string, string>>;
|
|
22288
22138
|
}): Promise<void>;
|
|
22289
|
-
//#endregion
|
|
22290
|
-
//#region packages/core/src/provider-extensions/discovery.d.ts
|
|
22291
22139
|
export declare function listInstalledProviderExtensions(): Promise<{
|
|
22292
22140
|
schemaVersion: 1;
|
|
22293
22141
|
installed: {
|
|
@@ -22326,8 +22174,6 @@ export declare function describeInstalledProviderExtension(id: string): Promise<
|
|
|
22326
22174
|
cacheTtlMs: number;
|
|
22327
22175
|
}[];
|
|
22328
22176
|
}>;
|
|
22329
|
-
//#endregion
|
|
22330
|
-
//#region packages/core/src/provider-extensions/installer.d.ts
|
|
22331
22177
|
declare const providerPackageReleaseSchema: z.ZodObject<{
|
|
22332
22178
|
package: z.ZodString;
|
|
22333
22179
|
version: z.ZodString;
|
|
@@ -22355,14 +22201,10 @@ export type ProviderInstallerOptions = {
|
|
|
22355
22201
|
export declare function inspectProviderPackage(value: string, options?: ProviderInstallerOptions): Promise<ProviderPackageRelease>;
|
|
22356
22202
|
export declare function installProviderPackage(input: ProviderPackageRelease, options?: ProviderInstallerOptions): Promise<InstalledProviderPackage>;
|
|
22357
22203
|
export declare function uninstallProviderExtension(id: string, options?: ProviderInstallerOptions): Promise<InstalledProviderPackage | undefined>;
|
|
22358
|
-
//#endregion
|
|
22359
|
-
//#region packages/core/src/provider-extensions/store.d.ts
|
|
22360
22204
|
export declare function readInstalledProviderPackages(): InstalledProviderPackages;
|
|
22361
22205
|
export declare function writeInstalledProviderPackages(value: InstalledProviderPackages): InstalledProviderPackages;
|
|
22362
22206
|
export declare function saveInstalledProviderPackage(value: InstalledProviderPackage): InstalledProviderPackages;
|
|
22363
22207
|
export declare function removeInstalledProviderPackage(id: string): InstalledProviderPackage | undefined;
|
|
22364
|
-
//#endregion
|
|
22365
|
-
//#region packages/core/src/providers/ahrefs/client.d.ts
|
|
22366
22208
|
export type AhrefsLimitsAndUsage = {
|
|
22367
22209
|
provider: 'ahrefs';
|
|
22368
22210
|
apiVersion: 3;
|
|
@@ -22402,8 +22244,6 @@ export declare class AhrefsClient {
|
|
|
22402
22244
|
private limitsAndUsageForKey;
|
|
22403
22245
|
limitsAndUsage(): Promise<AhrefsLimitsAndUsage>;
|
|
22404
22246
|
}
|
|
22405
|
-
//#endregion
|
|
22406
|
-
//#region packages/core/src/providers/ahrefs/credentials.d.ts
|
|
22407
22247
|
export declare const AHREFS_API_KEY_ENV = "SEO_AHREFS_API_KEY";
|
|
22408
22248
|
export declare const AHREFS_API_KEY_SECRET: "ahrefs-api-key";
|
|
22409
22249
|
declare const store: {
|
|
@@ -22425,8 +22265,6 @@ export declare function readAhrefsApiKey(input?: {
|
|
|
22425
22265
|
source: ProviderSecretSource;
|
|
22426
22266
|
} | undefined>;
|
|
22427
22267
|
export declare function deleteAhrefsApiKey(): Promise<void>;
|
|
22428
|
-
//#endregion
|
|
22429
|
-
//#region packages/core/src/providers/bing/credentials.d.ts
|
|
22430
22268
|
export declare const BING_API_KEY_ENV = "SEO_BING_API_KEY";
|
|
22431
22269
|
export declare const BING_API_KEY_SECRET: "bing-api-key";
|
|
22432
22270
|
export declare function writeBingApiKey(value: string): Promise<"file" | "keychain">;
|
|
@@ -22437,8 +22275,6 @@ export declare function readBingApiKey(input?: {
|
|
|
22437
22275
|
source: ProviderSecretSource;
|
|
22438
22276
|
} | undefined>;
|
|
22439
22277
|
export declare function deleteBingApiKey(): Promise<void>;
|
|
22440
|
-
//#endregion
|
|
22441
|
-
//#region packages/core/src/providers/dataforseo/credentials.d.ts
|
|
22442
22278
|
export declare const DATAFORSEO_LOGIN_ENV = "SEO_DATAFORSEO_LOGIN";
|
|
22443
22279
|
export declare const DATAFORSEO_PASSWORD_ENV = "SEO_DATAFORSEO_PASSWORD";
|
|
22444
22280
|
export declare const DATAFORSEO_CREDENTIAL_SECRET: "dataforseo-credentials";
|
|
@@ -22455,8 +22291,6 @@ export declare function readDataForSeoCredentials(input?: {
|
|
|
22455
22291
|
env?: NodeJS.ProcessEnv;
|
|
22456
22292
|
}): Promise<StoredDataForSeoCredentials | undefined>;
|
|
22457
22293
|
export declare function deleteDataForSeoCredentials(): Promise<void>;
|
|
22458
|
-
//#endregion
|
|
22459
|
-
//#region packages/core/src/providers/dataforseo/client-types.d.ts
|
|
22460
22294
|
type DataForSeoAccountSnapshot = {
|
|
22461
22295
|
provider: 'dataforseo';
|
|
22462
22296
|
login: string;
|
|
@@ -22476,8 +22310,6 @@ type DataForSeoClientOptions = {
|
|
|
22476
22310
|
maxResponseBytes?: number;
|
|
22477
22311
|
now?: () => Date;
|
|
22478
22312
|
};
|
|
22479
|
-
//#endregion
|
|
22480
|
-
//#region packages/core/src/providers/dataforseo/client.d.ts
|
|
22481
22313
|
export declare class DataForSeoClient {
|
|
22482
22314
|
private readonly fetch;
|
|
22483
22315
|
private readonly credentials;
|
|
@@ -22491,8 +22323,6 @@ export declare class DataForSeoClient {
|
|
|
22491
22323
|
private userDataForCredentials;
|
|
22492
22324
|
userData(): Promise<DataForSeoAccountSnapshot>;
|
|
22493
22325
|
}
|
|
22494
|
-
//#endregion
|
|
22495
|
-
//#region packages/core/src/providers/errors.d.ts
|
|
22496
22326
|
export type ProviderErrorCode = 'configuration' | 'authentication' | 'rate-limit' | 'timeout' | 'response-too-large' | 'invalid-response' | 'remote-error';
|
|
22497
22327
|
export declare const PROVIDER_ERROR_CODES: Record<ProviderErrorCode, SeoErrorCode>;
|
|
22498
22328
|
export declare class ProviderError extends Error {
|
|
@@ -22512,8 +22342,6 @@ export declare class ProviderError extends Error {
|
|
|
22512
22342
|
});
|
|
22513
22343
|
toJSON(): Record<string, unknown>;
|
|
22514
22344
|
}
|
|
22515
|
-
//#endregion
|
|
22516
|
-
//#region packages/core/src/robots-directives.d.ts
|
|
22517
22345
|
export type RobotsDirective = 'noindex' | 'nofollow' | 'nosnippet';
|
|
22518
22346
|
export type SnippetControlEvidence = {
|
|
22519
22347
|
source: 'meta-robots' | 'x-robots-tag';
|
|
@@ -22540,8 +22368,6 @@ export declare function effectiveSnippetControl(input: {
|
|
|
22540
22368
|
metaRobots?: string | string[];
|
|
22541
22369
|
xRobotsTag?: string | string[];
|
|
22542
22370
|
}): EffectiveSnippetControl;
|
|
22543
|
-
//#endregion
|
|
22544
|
-
//#region packages/core/src/runtime/interfaces.d.ts
|
|
22545
22371
|
export interface CredentialsProvider {
|
|
22546
22372
|
getGoogleOAuthClient(): OAuthClientConfig | undefined;
|
|
22547
22373
|
readGoogleTokens(): Promise<StoredTokens | undefined>;
|
|
@@ -22569,8 +22395,50 @@ export declare class JsonFileStorageAdapter implements StorageAdapter {
|
|
|
22569
22395
|
private writeAll;
|
|
22570
22396
|
}
|
|
22571
22397
|
export declare const localCredentialsProvider: LocalCredentialsProvider;
|
|
22572
|
-
|
|
22573
|
-
|
|
22398
|
+
type SiteCheckGroup = 'pages' | 'copy' | 'design' | 'data';
|
|
22399
|
+
type SiteCheckLevel = 'fail' | 'warn';
|
|
22400
|
+
export declare const SITE_CHECK_MAX_PAGES = 10000;
|
|
22401
|
+
export declare const SITE_CHECK_MAX_ISSUES = 1000;
|
|
22402
|
+
export declare const SITEMAP_FILE_URL_LIMIT = 5000;
|
|
22403
|
+
export type BuiltSite = {
|
|
22404
|
+
origin: string;
|
|
22405
|
+
files: readonly string[];
|
|
22406
|
+
readText: (path: string) => Promise<string>;
|
|
22407
|
+
readBytes: (path: string) => Promise<Uint8Array>;
|
|
22408
|
+
allowWords?: readonly string[];
|
|
22409
|
+
sources?: {
|
|
22410
|
+
files: readonly string[];
|
|
22411
|
+
readText: (path: string) => Promise<string>;
|
|
22412
|
+
};
|
|
22413
|
+
now?: Date;
|
|
22414
|
+
};
|
|
22415
|
+
export type SiteCheckIssue = {
|
|
22416
|
+
rule: string;
|
|
22417
|
+
group: SiteCheckGroup;
|
|
22418
|
+
level: SiteCheckLevel;
|
|
22419
|
+
file: string;
|
|
22420
|
+
found: string;
|
|
22421
|
+
fix: string;
|
|
22422
|
+
};
|
|
22423
|
+
export type SiteCheckResult = {
|
|
22424
|
+
status: 'passed' | 'failed' | 'partial';
|
|
22425
|
+
origin: string;
|
|
22426
|
+
pagesFound: number;
|
|
22427
|
+
pagesChecked: number;
|
|
22428
|
+
failures: number;
|
|
22429
|
+
warnings: number;
|
|
22430
|
+
rules: Array<{
|
|
22431
|
+
rule: string;
|
|
22432
|
+
group: SiteCheckGroup;
|
|
22433
|
+
level: SiteCheckLevel;
|
|
22434
|
+
count: number;
|
|
22435
|
+
fix: string;
|
|
22436
|
+
}>;
|
|
22437
|
+
issues: SiteCheckIssue[];
|
|
22438
|
+
issuesOmitted: number;
|
|
22439
|
+
};
|
|
22440
|
+
export declare function builtPagePath(file: string): string;
|
|
22441
|
+
export declare function checkBuiltSite(site: BuiltSite): Promise<SiteCheckResult>;
|
|
22574
22442
|
export declare class SessionLedger {
|
|
22575
22443
|
private readonly entries;
|
|
22576
22444
|
private gscCalls;
|
|
@@ -22579,8 +22447,6 @@ export declare class SessionLedger {
|
|
|
22579
22447
|
addGsc(calls: number, rows: number): void;
|
|
22580
22448
|
summary(): string;
|
|
22581
22449
|
}
|
|
22582
|
-
//#endregion
|
|
22583
|
-
//#region packages/core/src/storage/log-retention.d.ts
|
|
22584
22450
|
export declare const LOG_MAX_FILE_BYTES: number;
|
|
22585
22451
|
export declare const LOG_MAX_TOTAL_BYTES: number;
|
|
22586
22452
|
export declare const LOG_MAX_AGE_MS: number;
|
|
@@ -22596,11 +22462,7 @@ export declare function pruneLogs(options?: {
|
|
|
22596
22462
|
maxTotalBytes?: number;
|
|
22597
22463
|
maxAgeMs?: number;
|
|
22598
22464
|
}): LogPruneResult;
|
|
22599
|
-
//#endregion
|
|
22600
|
-
//#region packages/core/src/storage/reset.d.ts
|
|
22601
22465
|
export declare function resetSeoData(): Promise<void>;
|
|
22602
|
-
//#endregion
|
|
22603
|
-
//#region packages/core/src/telemetry-failures.d.ts
|
|
22604
22466
|
export declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "data", "database", "filesystem", "internal", "unknown"];
|
|
22605
22467
|
export declare const TELEMETRY_FAILURE_REASONS: readonly ["access_denied", "auth_config_required", "auth_expired", "auth_required", "crawl_timeout", "database_constraint", "database_corrupt", "database_locked", "database_read_only", "database_unique_constraint", "filesystem_full", "filesystem_not_found", "filesystem_permission", "insufficient_data", "internal_error", "invalid_input", "network_connection", "network_dns", "network_timeout", "network_tls", "optional_provider_unavailable", "property_not_found", "provider_unavailable", "rate_limited", "unknown"];
|
|
22606
22468
|
export declare const TELEMETRY_FAILURE_CONTEXTS: readonly ["crawl_pages_run_id_url"];
|
|
@@ -22616,13 +22478,9 @@ type TelemetryFailureClassification = {
|
|
|
22616
22478
|
};
|
|
22617
22479
|
export declare function classifyTelemetryFailure(error: unknown): TelemetryFailureClassification;
|
|
22618
22480
|
export declare function isTelemetryOperation(value: unknown): value is TelemetryOperation;
|
|
22619
|
-
//#endregion
|
|
22620
|
-
//#region packages/core/src/telemetry-shared.d.ts
|
|
22621
22481
|
export declare const TELEMETRY_ENDPOINT = "https://seoskill.dev/api/t";
|
|
22622
22482
|
export declare const TELEMETRY_SCHEMA_VERSION = 2;
|
|
22623
22483
|
export declare function isoWeek(date: Date): string;
|
|
22624
|
-
//#endregion
|
|
22625
|
-
//#region packages/core/src/telemetry.d.ts
|
|
22626
22484
|
export declare const TELEMETRY_TIMEOUT_MS = 2000;
|
|
22627
22485
|
export declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "command_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
|
|
22628
22486
|
export declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
|
|
@@ -22698,8 +22556,6 @@ export declare function trackTelemetryReportFailed(report: string, error: unknow
|
|
|
22698
22556
|
export declare function trackTelemetryCommandFailed(operation: string, error: unknown, options?: TelemetryOptions): void;
|
|
22699
22557
|
export declare function trackTelemetrySetupComplete(options?: TelemetryOptions): void;
|
|
22700
22558
|
export declare function telemetryErrorCategory(error: unknown): TelemetryErrorCategory;
|
|
22701
|
-
//#endregion
|
|
22702
|
-
//#region packages/core/src/update-notice.d.ts
|
|
22703
22559
|
export type UpdateNoticeOptions = {
|
|
22704
22560
|
argv?: string[];
|
|
22705
22561
|
cacheFile?: string;
|
|
@@ -22710,22 +22566,15 @@ export type UpdateNoticeOptions = {
|
|
|
22710
22566
|
};
|
|
22711
22567
|
export declare function isNewerVersion(current: string, latest: string): boolean;
|
|
22712
22568
|
export declare function updateNotice(options?: UpdateNoticeOptions): string | undefined;
|
|
22713
|
-
//#endregion
|
|
22714
|
-
//#region packages/core/src/updates/search-status.d.ts
|
|
22715
22569
|
export declare const INCIDENTS_URL = "https://status.search.google.com/incidents.json";
|
|
22716
22570
|
export declare function fetchSearchStatusIncidents(): Promise<SearchStatusIncident[]>;
|
|
22717
22571
|
export declare function listSearchUpdates(input?: {
|
|
22718
22572
|
product?: string;
|
|
22719
22573
|
limit?: number;
|
|
22720
22574
|
}): Promise<SearchUpdate[]>;
|
|
22721
|
-
//#endregion
|
|
22722
|
-
//#region packages/core/src/utils/time.d.ts
|
|
22723
22575
|
export declare function parseOlderThan(input?: string): number | undefined;
|
|
22724
22576
|
export declare function formatRelativeExpiry(expiresAt: number): string;
|
|
22725
22577
|
export declare function isoDate(daysAgo?: number): string;
|
|
22726
|
-
//#endregion
|
|
22727
|
-
//#region packages/core/src/version.d.ts
|
|
22728
22578
|
export declare const SEO_VERSION: string;
|
|
22729
|
-
//#endregion
|
|
22730
22579
|
export { type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, type AnalyzeCannibalImportRowsInput, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, type CannibalAnalysis, type CannibalImportAnalysis, type CannibalImportItem, type CannibalImportPage, type CannibalImportReport, type CannibalImportSelection, type CannibalItem, type CannibalPage, type CannibalReport, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, type CrawlAiAvailability, type CrawlAiBotAccess, type CrawlAiLinkCheck, type CrawlAiResourceSignal, type CrawlAiSignals, type CrawlSiteChecks, type CrawlSiteDependencies, type CrawlStatusPhase, type CtrUnderperformer, type CtrUnderperformerSelection, type DataForSeoAccountSnapshot, type DataForSeoClientOptions, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, type FetchPageOptions, type FetchRateControls, type Ga4AccountSummary, type Ga4PropertySummary, type GoogleAccessTokenClient, type InternalLinkSuggestion, type InternalLinksPage, type InternalLinksReport, type JavaScriptRenderingInput, type JavaScriptRenderingMode, type OAuthClientConfig, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, type PageOpportunityItem, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, type QueryClusterPage, type QueryClusterRow, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, SEO_PROVIDER_API_VERSION, type SearchStatusIncident, type SearchUpdate, type SecondPageAnalysis, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SeoAnalyticsConnection, SeoAnalyticsLandingPageResult, SeoLandingPageVisitRow, SeoLandingPageVisitsCapability, SeoLandingPageVisitsResult, SeoProviderActionAdapter, SeoProviderActivate, SeoProviderApiVersion, SeoProviderCapabilityAdapter, SeoProviderCapabilityId, SeoProviderConnection, SeoProviderConnectionAdapter, SeoProviderConnectionField, SeoProviderHost, SeoProviderJson, SeoProviderJsonSchema, SeoProviderKind, SeoProviderRegistration, SeoProviderRequest, SeoProviderRuntime, SeoSearchMarket, SeoSerpLocalPackResult, SeoSerpOrganicResult, SeoSerpSnapshotCapability, SeoSerpSnapshotResult, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, type TelemetryErrorCategory, type TelemetryFailureClassification, type TelemetryFailureContext, type TelemetryFailureReason, type TelemetryOperation, type UnmatchedSegment, pageTechnicalSignals as technicalPageSignals };
|
|
22731
22580
|
//# sourceMappingURL=index.d.ts.map
|