seo 0.13.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PRIVACY.md +37 -8
- package/dist/cli.js +84 -80
- package/dist/cli.js.map +1 -1
- package/dist/{dist-BBszRLUG.js → dist-4Yam8ps7.js} +1 -1
- package/dist/dist-B_2zww72.js +427 -0
- package/dist/dist-B_2zww72.js.map +1 -0
- package/dist/{esm-Dmtr8qrP.js → esm-BmuxgZyN.js} +95 -188
- package/dist/{esm-Dmtr8qrP.js.map → esm-BmuxgZyN.js.map} +1 -1
- package/dist/index.d.ts +92 -406
- package/dist/index.js +1558 -646
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +0 -14
- package/dist/mcp.js +1130 -889
- 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 +19 -1
- package/dist/dist-7TxFytBp.js +0 -420
- package/dist/dist-7TxFytBp.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;
|
|
@@ -1244,8 +1233,6 @@ export declare function listRules(): RuleInfo[];
|
|
|
1244
1233
|
export declare function explainRule(ruleId: string): RuleInfo | undefined;
|
|
1245
1234
|
export declare function recommendationForRule(ruleId: string): RuleRecommendation;
|
|
1246
1235
|
export declare function hasRule(ruleId: string): ruleId is RuleId;
|
|
1247
|
-
//#endregion
|
|
1248
|
-
//#region packages/core/src/brand-evidence.d.ts
|
|
1249
1236
|
type BrandQueryEvidence = {
|
|
1250
1237
|
query: string;
|
|
1251
1238
|
clicks: number;
|
|
@@ -1274,8 +1261,6 @@ type ReportBrandTerms = {
|
|
|
1274
1261
|
excluded: ExcludedBrandTerm[];
|
|
1275
1262
|
heuristic: boolean;
|
|
1276
1263
|
};
|
|
1277
|
-
//#endregion
|
|
1278
|
-
//#region packages/core/src/analyze/page-patterns.d.ts
|
|
1279
1264
|
type PageTemplate = {
|
|
1280
1265
|
id: string;
|
|
1281
1266
|
label: string;
|
|
@@ -1287,8 +1272,6 @@ type TemplateSummary = {
|
|
|
1287
1272
|
count: number;
|
|
1288
1273
|
sampleUrls: string[];
|
|
1289
1274
|
};
|
|
1290
|
-
//#endregion
|
|
1291
|
-
//#region packages/core/src/analyze/second-page-analysis-types.d.ts
|
|
1292
1275
|
type SecondPageSelection = {
|
|
1293
1276
|
sourceRows: number;
|
|
1294
1277
|
invalidRows: number;
|
|
@@ -1470,8 +1453,6 @@ type SecondPageReport = {
|
|
|
1470
1453
|
message: string;
|
|
1471
1454
|
}>;
|
|
1472
1455
|
};
|
|
1473
|
-
//#endregion
|
|
1474
|
-
//#region packages/core/src/types/reports.d.ts
|
|
1475
1456
|
export interface Recommendation {
|
|
1476
1457
|
principle: string;
|
|
1477
1458
|
evidenceRef: string;
|
|
@@ -1549,8 +1530,6 @@ export interface CacheStats {
|
|
|
1549
1530
|
maxSizeBytes: number;
|
|
1550
1531
|
counts: Record<string, number>;
|
|
1551
1532
|
}
|
|
1552
|
-
//#endregion
|
|
1553
|
-
//#region packages/core/src/analytics/providers.d.ts
|
|
1554
1533
|
export type AnalyticsProviderDetails = {
|
|
1555
1534
|
label: string;
|
|
1556
1535
|
landingMetricLabel: 'sessions' | 'landing-page visits';
|
|
@@ -1559,8 +1538,6 @@ export declare const ANALYTICS_PROVIDER_IDS: readonly ["google", "clicky"];
|
|
|
1559
1538
|
export declare function analyticsProviderDetails(provider: AnalyticsProvider | string): AnalyticsProviderDetails;
|
|
1560
1539
|
export declare function analyticsConnectionProviderId(connection: AnalyticsConnection): string;
|
|
1561
1540
|
export declare function analyticsConnectionLabel(connection: AnalyticsConnection): string;
|
|
1562
|
-
//#endregion
|
|
1563
|
-
//#region packages/core/src/analyze/agent-report.d.ts
|
|
1564
1541
|
export type AgentFindingStatus = 'open';
|
|
1565
1542
|
type AgentFindingBase = {
|
|
1566
1543
|
id: string;
|
|
@@ -1670,8 +1647,6 @@ export declare function buildAgentFindings(report: JsonRecord, options?: AgentRe
|
|
|
1670
1647
|
};
|
|
1671
1648
|
export declare function withAgentReportContract(report: JsonRecord, options?: AgentReportOptions): JsonRecord;
|
|
1672
1649
|
export declare function agentActionsView(report: JsonRecord, options?: AgentReportOptions): JsonRecord;
|
|
1673
|
-
//#endregion
|
|
1674
|
-
//#region packages/core/src/errors.d.ts
|
|
1675
1650
|
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
1651
|
export declare class SeoError extends Error {
|
|
1677
1652
|
readonly code: SeoErrorCode;
|
|
@@ -1689,8 +1664,6 @@ export declare function seoErrorEnvelope(error: unknown): {
|
|
|
1689
1664
|
retryable: boolean;
|
|
1690
1665
|
};
|
|
1691
1666
|
};
|
|
1692
|
-
//#endregion
|
|
1693
|
-
//#region packages/core/src/ga4/account-summaries.d.ts
|
|
1694
1667
|
interface Ga4PropertySummary {
|
|
1695
1668
|
property: string;
|
|
1696
1669
|
displayName?: string;
|
|
@@ -1702,8 +1675,6 @@ interface Ga4AccountSummary {
|
|
|
1702
1675
|
displayName?: string;
|
|
1703
1676
|
propertySummaries: Ga4PropertySummary[];
|
|
1704
1677
|
}
|
|
1705
|
-
//#endregion
|
|
1706
|
-
//#region packages/core/src/gsc/client/types.d.ts
|
|
1707
1678
|
export interface SearchAnalyticsRequest {
|
|
1708
1679
|
startDate: string;
|
|
1709
1680
|
endDate: string;
|
|
@@ -1764,8 +1735,6 @@ export interface UrlInspectionResult {
|
|
|
1764
1735
|
richResultsResult?: unknown;
|
|
1765
1736
|
};
|
|
1766
1737
|
}
|
|
1767
|
-
//#endregion
|
|
1768
|
-
//#region packages/core/src/google/api.d.ts
|
|
1769
1738
|
export type GoogleFetch = (url: string, init?: RequestInit) => Promise<Response>;
|
|
1770
1739
|
export type GoogleCallOptions = {
|
|
1771
1740
|
signIn: string;
|
|
@@ -1803,8 +1772,6 @@ export interface Ga4DataStream {
|
|
|
1803
1772
|
}
|
|
1804
1773
|
export declare function listAnalyticsDataStreams(gfetch: GoogleFetch, propertyId: string, options: GoogleCallOptions): Promise<Ga4DataStream[]>;
|
|
1805
1774
|
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
1775
|
export interface Ga4ReportRequest {
|
|
1809
1776
|
dateRanges: Array<{
|
|
1810
1777
|
startDate: string;
|
|
@@ -1862,8 +1829,6 @@ export declare function listGa4DataStreams(propertyId: string, accountEmail?: st
|
|
|
1862
1829
|
export declare function ga4PropertyIdFromName(name: string): string;
|
|
1863
1830
|
export declare function ga4RowsToObjects(result: Ga4RunReportResult): Array<Record<string, string>>;
|
|
1864
1831
|
export declare function ga4ReportQualityWarnings(result: Ga4RunReportResult, label?: string): string[];
|
|
1865
|
-
//#endregion
|
|
1866
|
-
//#region packages/core/src/analyze/ai-referrals-types.d.ts
|
|
1867
1832
|
type AiReferralMetrics = {
|
|
1868
1833
|
sessions: number;
|
|
1869
1834
|
eventCount: number;
|
|
@@ -1957,8 +1922,6 @@ type AiReferralReport = {
|
|
|
1957
1922
|
}>;
|
|
1958
1923
|
caveats: string[];
|
|
1959
1924
|
};
|
|
1960
|
-
//#endregion
|
|
1961
|
-
//#region packages/core/src/analyze/ai-referrals-analysis.d.ts
|
|
1962
1925
|
type AiReferralAnalysisInput = {
|
|
1963
1926
|
property: string;
|
|
1964
1927
|
generatedAt: string;
|
|
@@ -1973,16 +1936,10 @@ type AiReferralAnalysisInput = {
|
|
|
1973
1936
|
totalUsersEvidence: AiReferralQueryEvidence;
|
|
1974
1937
|
};
|
|
1975
1938
|
export declare function analyzeAiReferralRows(input: AiReferralAnalysisInput): AiReferralReport;
|
|
1976
|
-
//#endregion
|
|
1977
|
-
//#region packages/core/src/analyze/ai-referrals-query.d.ts
|
|
1978
1939
|
export declare function sessionSourceInListFilter(values: string[]): unknown;
|
|
1979
|
-
//#endregion
|
|
1980
|
-
//#region packages/core/src/analyze/ai-referrals-sources.d.ts
|
|
1981
1940
|
export declare const AI_REFERRAL_SOURCES_VERSION: "ai-referral-sources@1";
|
|
1982
1941
|
export declare const AI_REFERRAL_SOURCES: readonly AiReferralSourceDefinition[];
|
|
1983
1942
|
export declare function aiReferralSourceForValue(value: string): AiReferralSourceDefinition | undefined;
|
|
1984
|
-
//#endregion
|
|
1985
|
-
//#region packages/core/src/analyze/ai-referrals.d.ts
|
|
1986
1943
|
type RunGa4Report = typeof runGa4Report;
|
|
1987
1944
|
export declare function aiReferralsReport(input: {
|
|
1988
1945
|
property: string;
|
|
@@ -1996,8 +1953,6 @@ export declare function aiReferralsReport(input: {
|
|
|
1996
1953
|
runGa4Report?: RunGa4Report;
|
|
1997
1954
|
now?: () => Date;
|
|
1998
1955
|
}): Promise<AiReferralReport>;
|
|
1999
|
-
//#endregion
|
|
2000
|
-
//#region packages/core/src/fetch/page-fetcher/types.d.ts
|
|
2001
1956
|
interface FetchRateControls {
|
|
2002
1957
|
concurrency?: number;
|
|
2003
1958
|
intervalCap?: number;
|
|
@@ -2057,11 +2012,7 @@ type RobotsResult = {
|
|
|
2057
2012
|
url: string;
|
|
2058
2013
|
};
|
|
2059
2014
|
type RobotsResolver = (origin: string, targetUrl: string) => Promise<RobotsResult>;
|
|
2060
|
-
//#endregion
|
|
2061
|
-
//#region packages/core/src/fetch/page-fetcher/plain.d.ts
|
|
2062
2015
|
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
2016
|
/**
|
|
2066
2017
|
* One renderer owns one browser process and a bounded number of isolated
|
|
2067
2018
|
* contexts. Create it once for a crawl, then close it after the crawl exits.
|
|
@@ -2069,19 +2020,13 @@ declare function fetchPlain(url: string, refresh: boolean | undefined, timeoutMs
|
|
|
2069
2020
|
export declare function createPageRenderer(input?: {
|
|
2070
2021
|
concurrency?: number;
|
|
2071
2022
|
}): PageRenderer;
|
|
2072
|
-
//#endregion
|
|
2073
|
-
//#region packages/core/src/fetch/page-fetcher/status-probe.d.ts
|
|
2074
2023
|
export declare function fetchPageStatus(url: string, opts?: FetchPageOptions): Promise<PageFetchResult>;
|
|
2075
|
-
//#endregion
|
|
2076
|
-
//#region packages/core/src/fetch/page-fetcher.d.ts
|
|
2077
2024
|
export type FetchPageDependencies = {
|
|
2078
2025
|
fetchPlain?: typeof fetchPlain;
|
|
2079
2026
|
createPageRenderer?: typeof createPageRenderer;
|
|
2080
2027
|
};
|
|
2081
2028
|
export declare function normalizeJavaScriptRenderingMode(input: JavaScriptRenderingInput | undefined): JavaScriptRenderingMode;
|
|
2082
2029
|
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
2030
|
export declare function urlInspectionQuota(input: {
|
|
2086
2031
|
siteUrl: string;
|
|
2087
2032
|
accountEmail?: string;
|
|
@@ -2091,8 +2036,6 @@ export declare function urlInspectionQuota(input: {
|
|
|
2091
2036
|
resetAt: string;
|
|
2092
2037
|
}>;
|
|
2093
2038
|
export declare function inspectUrl(input: UrlInspectionRequest): Promise<UrlInspectionResult>;
|
|
2094
|
-
//#endregion
|
|
2095
|
-
//#region packages/core/src/gsc/client/search-analytics.d.ts
|
|
2096
2039
|
export type PageSearchMetrics = {
|
|
2097
2040
|
clicks: number;
|
|
2098
2041
|
impressions: number;
|
|
@@ -2119,15 +2062,11 @@ export declare function queryPagesMetricsBatch(site: string, pageUrls: string[],
|
|
|
2119
2062
|
export declare function queryPageTopQuery(site: string, pageUrl: string, days?: number): Promise<PageTopQuery | undefined>;
|
|
2120
2063
|
export declare function queryPagesTopQueries(site: string, pageUrls: string[], days?: number): Promise<Map<string, PageTopQuery>>;
|
|
2121
2064
|
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
2065
|
export declare function listSites(_refresh?: boolean, accountEmail?: string): Promise<Array<{
|
|
2125
2066
|
siteUrl: string;
|
|
2126
2067
|
permissionLevel?: string;
|
|
2127
2068
|
siteType?: string;
|
|
2128
2069
|
}>>;
|
|
2129
|
-
//#endregion
|
|
2130
|
-
//#region packages/core/src/analyze/audit-page.d.ts
|
|
2131
2070
|
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
2071
|
export type AuditPageDependencies = {
|
|
2133
2072
|
fetchPage: typeof fetchPage;
|
|
@@ -2141,8 +2080,6 @@ export declare function auditPage(input: {
|
|
|
2141
2080
|
refresh?: boolean;
|
|
2142
2081
|
extractor?: 'defuddle' | 'readability';
|
|
2143
2082
|
}, dependencies?: AuditPageDependencies): Promise<AuditPageReport>;
|
|
2144
|
-
//#endregion
|
|
2145
|
-
//#region packages/core/src/analyze/content-coverage-analysis.d.ts
|
|
2146
2083
|
/** Fetches one page. The local binding uses the cached page fetcher. */
|
|
2147
2084
|
export type PageFetcher = (url: string, options?: FetchPageOptions) => Promise<PageFetchResult>;
|
|
2148
2085
|
/** Extracts page fields from a fetched page. */
|
|
@@ -2186,14 +2123,10 @@ export declare function verifyQueryContentWith(input: VerifyQueryContentInput &
|
|
|
2186
2123
|
fetch: PageFetcher;
|
|
2187
2124
|
extract: PageExtractor;
|
|
2188
2125
|
}): Promise<QueryContentCoverage>;
|
|
2189
|
-
//#endregion
|
|
2190
|
-
//#region packages/core/src/analyze/content-coverage.d.ts
|
|
2191
2126
|
export declare function verifyQueryContent(input: VerifyQueryContentInput & {
|
|
2192
2127
|
fetch?: PageFetcher;
|
|
2193
2128
|
extract?: PageExtractor;
|
|
2194
2129
|
}): Promise<QueryContentCoverage>;
|
|
2195
|
-
//#endregion
|
|
2196
|
-
//#region packages/core/src/extract/content-sketch.d.ts
|
|
2197
2130
|
type ContentSketch = {
|
|
2198
2131
|
version: 1;
|
|
2199
2132
|
wordCount: number;
|
|
@@ -2201,8 +2134,6 @@ type ContentSketch = {
|
|
|
2201
2134
|
sampledShingles: number;
|
|
2202
2135
|
hashes: string[];
|
|
2203
2136
|
};
|
|
2204
|
-
//#endregion
|
|
2205
|
-
//#region packages/core/src/extract/main-content.d.ts
|
|
2206
2137
|
interface DefuddleResult {
|
|
2207
2138
|
content?: string;
|
|
2208
2139
|
description?: string;
|
|
@@ -2215,8 +2146,6 @@ interface MainContentDependencies {
|
|
|
2215
2146
|
useAsync: false;
|
|
2216
2147
|
}) => DefuddleResult;
|
|
2217
2148
|
}
|
|
2218
|
-
//#endregion
|
|
2219
|
-
//#region packages/core/src/extract/page-extractor.d.ts
|
|
2220
2149
|
type CrawlerExtractionEvidence = {
|
|
2221
2150
|
h1?: string;
|
|
2222
2151
|
h1Count: number;
|
|
@@ -2259,8 +2188,6 @@ type PageExtraction = ExtractedPage & {
|
|
|
2259
2188
|
crawlerEvidence?: CrawlerExtractionEvidence;
|
|
2260
2189
|
};
|
|
2261
2190
|
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
2191
|
type PageOpportunityType = 'ctr' | 'ranking' | 'content-gap' | 'serp-framing' | 'covered' | 'technical-check' | 'unverified';
|
|
2265
2192
|
type PageOpportunityBenchmark = {
|
|
2266
2193
|
applicable: boolean;
|
|
@@ -2350,11 +2277,7 @@ type PageOpportunityAnalysisInput = {
|
|
|
2350
2277
|
fetchDiagnostics?: PageFetchDiagnostics;
|
|
2351
2278
|
httpStatus?: number;
|
|
2352
2279
|
};
|
|
2353
|
-
//#endregion
|
|
2354
|
-
//#region packages/core/src/analyze/shared.d.ts
|
|
2355
2280
|
export declare function unicodeTokens(value: string): string[];
|
|
2356
|
-
//#endregion
|
|
2357
|
-
//#region packages/core/src/analyze/opportunity-primitives.d.ts
|
|
2358
2281
|
export type OpportunityBenchmarkRow = {
|
|
2359
2282
|
keys?: string[];
|
|
2360
2283
|
clicks: number;
|
|
@@ -2419,8 +2342,6 @@ export declare function queryOpportunityRecommendation(input: {
|
|
|
2419
2342
|
reason: string;
|
|
2420
2343
|
expectedImpact: string;
|
|
2421
2344
|
};
|
|
2422
|
-
//#endregion
|
|
2423
|
-
//#region packages/core/src/analyze/page-technical-signals.d.ts
|
|
2424
2345
|
type PageTechnicalSignal = Extract<QueryContentSignal, 'http-non-2xx' | 'http-no-content' | 'blocked' | 'fetch-incomplete' | 'redirected' | 'meta-noindex' | 'x-robots-noindex' | 'canonical-mismatch'>;
|
|
2425
2346
|
declare function pageTechnicalSignals(input: {
|
|
2426
2347
|
url: string;
|
|
@@ -2428,14 +2349,8 @@ declare function pageTechnicalSignals(input: {
|
|
|
2428
2349
|
fetchDiagnostics?: PageFetchDiagnostics;
|
|
2429
2350
|
httpStatus?: number;
|
|
2430
2351
|
}): PageTechnicalSignal[];
|
|
2431
|
-
//#endregion
|
|
2432
|
-
//#region packages/core/src/analyze/page-opportunities-analysis.d.ts
|
|
2433
2352
|
export declare function analyzePageOpportunitiesFromRows(input: PageOpportunityAnalysisInput): PageOpportunityAnalysis;
|
|
2434
|
-
//#endregion
|
|
2435
|
-
//#region packages/core/src/analyze/page-opportunities-presentation.d.ts
|
|
2436
2353
|
type PageOpportunityFocus = PageOpportunityType | 'no-data';
|
|
2437
|
-
//#endregion
|
|
2438
|
-
//#region packages/core/src/analyze/page-opportunities.d.ts
|
|
2439
2354
|
type SearchAnalytics$2 = typeof querySearchAnalytics;
|
|
2440
2355
|
type FetchPage = typeof fetchPage;
|
|
2441
2356
|
type ExtractPage = typeof extractPage;
|
|
@@ -2514,8 +2429,6 @@ type PageOpportunityDependencies = {
|
|
|
2514
2429
|
now: () => Date;
|
|
2515
2430
|
};
|
|
2516
2431
|
export declare function pageOpportunitiesReport(input: PageOpportunityInput, dependencies?: PageOpportunityDependencies): Promise<PageOpportunityReport>;
|
|
2517
|
-
//#endregion
|
|
2518
|
-
//#region packages/core/src/analyze/content-optimization.d.ts
|
|
2519
2432
|
export type ContentOptimizationIntent = 'comparison' | 'commercial' | 'how-to' | 'definition' | 'local' | 'navigational' | 'general';
|
|
2520
2433
|
export type ContentOptimizationReport = {
|
|
2521
2434
|
site: string;
|
|
@@ -2569,8 +2482,6 @@ export declare function contentOptimizationReport(input: {
|
|
|
2569
2482
|
refresh?: boolean;
|
|
2570
2483
|
js?: boolean | 'auto';
|
|
2571
2484
|
}): Promise<ContentOptimizationReport>;
|
|
2572
|
-
//#endregion
|
|
2573
|
-
//#region packages/core/src/analyze/monitoring/types.d.ts
|
|
2574
2485
|
export type CrawlPageSnapshot = {
|
|
2575
2486
|
url: string;
|
|
2576
2487
|
finalUrl: string;
|
|
@@ -2798,8 +2709,6 @@ export type CrawlRequestObservation = CrawlResponseObservation | {
|
|
|
2798
2709
|
error: string;
|
|
2799
2710
|
extraction: 'not-applicable';
|
|
2800
2711
|
};
|
|
2801
|
-
//#endregion
|
|
2802
|
-
//#region packages/core/src/analyze/monitoring/sitemaps.d.ts
|
|
2803
2712
|
export type SitemapInvalidLoc = {
|
|
2804
2713
|
sitemapUrl: string;
|
|
2805
2714
|
kind: 'url' | 'sitemap';
|
|
@@ -2883,8 +2792,6 @@ export declare function fetchSitemapUrls(input: {
|
|
|
2883
2792
|
limit?: number;
|
|
2884
2793
|
maxNested?: number;
|
|
2885
2794
|
}): Promise<SitemapFetchResult>;
|
|
2886
|
-
//#endregion
|
|
2887
|
-
//#region packages/core/src/analyze/crawler/crawl-skip-reasons.d.ts
|
|
2888
2795
|
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
2796
|
export type CrawlSkipReason = (typeof CRAWL_SKIP_REASONS)[number];
|
|
2890
2797
|
export type CrawlSkipImpact = 'coverage-affecting' | 'non-impacting';
|
|
@@ -2907,11 +2814,7 @@ export declare function normalizeCrawlSkipReasonCounts(input: {
|
|
|
2907
2814
|
skippedUrlsByImpact: CrawlSkippedUrlsByImpact;
|
|
2908
2815
|
};
|
|
2909
2816
|
export declare function crawlSkipReasonCountsFromRecord(input?: Partial<Record<CrawlSkipReason, number>>): CrawlSkipReasonCount[];
|
|
2910
|
-
//#endregion
|
|
2911
|
-
//#region packages/core/src/analyze/crawler/crawl-status.d.ts
|
|
2912
2817
|
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
2818
|
export type CrawlOneResult = {
|
|
2916
2819
|
request?: CrawlRequestObservation;
|
|
2917
2820
|
page?: CrawlPageSnapshot;
|
|
@@ -2919,9 +2822,8 @@ export type CrawlOneResult = {
|
|
|
2919
2822
|
warning?: string;
|
|
2920
2823
|
};
|
|
2921
2824
|
export declare function crawlOne(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
|
|
2825
|
+
export declare function snapshotFetchedPage(url: string, fetched: PageFetchResult): Promise<CrawlOneResult>;
|
|
2922
2826
|
export declare function crawlStatusOnly(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
|
|
2923
|
-
//#endregion
|
|
2924
|
-
//#region packages/core/src/analyze/crawler/site-checks.d.ts
|
|
2925
2827
|
type CrawlSiteChecks = {
|
|
2926
2828
|
soft404: {
|
|
2927
2829
|
status: 'pass' | 'warning' | 'unknown';
|
|
@@ -2937,8 +2839,6 @@ type CrawlSiteChecks = {
|
|
|
2937
2839
|
complete: boolean;
|
|
2938
2840
|
};
|
|
2939
2841
|
};
|
|
2940
|
-
//#endregion
|
|
2941
|
-
//#region packages/core/src/analyze/crawler/site-crawl-ai-types.d.ts
|
|
2942
2842
|
type CrawlAiAvailability = 'available' | 'absent' | 'access-blocked' | 'rate-limited' | 'unreachable';
|
|
2943
2843
|
type CrawlAiBotAccess = {
|
|
2944
2844
|
userAgent: string;
|
|
@@ -3015,8 +2915,6 @@ type CrawlAiSignals = {
|
|
|
3015
2915
|
contentSignal?: string;
|
|
3016
2916
|
};
|
|
3017
2917
|
};
|
|
3018
|
-
//#endregion
|
|
3019
|
-
//#region packages/core/src/analyze/crawler/report.d.ts
|
|
3020
2918
|
export type CrawlMode = 'site' | 'page' | 'list' | 'sitemap';
|
|
3021
2919
|
export type CrawlStrategy = 'full' | 'health';
|
|
3022
2920
|
export declare const MAX_CRAWL_PAGES = 10000;
|
|
@@ -3280,14 +3178,10 @@ export declare function createCrawlReport(input: {
|
|
|
3280
3178
|
generatedAt?: string;
|
|
3281
3179
|
}): CrawlReport;
|
|
3282
3180
|
export declare function normalizeLoadedCrawlReport(report: CrawlReport): CrawlReport;
|
|
3283
|
-
//#endregion
|
|
3284
|
-
//#region packages/core/src/analyze/crawler/audit.d.ts
|
|
3285
3181
|
export declare function auditCrawlRequests(requests: CrawlRequestObservation[]): CrawlIssue[];
|
|
3286
3182
|
export declare function auditCrawlPages(pages: CrawlPageSnapshot[], opts?: {
|
|
3287
3183
|
startUrl?: string;
|
|
3288
3184
|
}): CrawlIssue[];
|
|
3289
|
-
//#endregion
|
|
3290
|
-
//#region packages/core/src/analyze/crawler/top-fixes.d.ts
|
|
3291
3185
|
export type TopFixFilters = {
|
|
3292
3186
|
category?: RuleCategory | string;
|
|
3293
3187
|
severity?: RuleSeverity | string;
|
|
@@ -3321,8 +3215,6 @@ export type TopFix = CrawlIssueGroup & {
|
|
|
3321
3215
|
};
|
|
3322
3216
|
export declare function topFixes(report: CrawlReport, filters?: TopFixFilters): TopFix[];
|
|
3323
3217
|
export declare function reviewObservations(report: CrawlReport, filters?: Omit<TopFixFilters, 'recommendation'>): TopFix[];
|
|
3324
|
-
//#endregion
|
|
3325
|
-
//#region packages/core/src/analyze/crawler/export.d.ts
|
|
3326
3218
|
export type CrawlOutputFormat = 'pretty' | 'json' | 'csv' | 'html' | 'markdown' | 'junit';
|
|
3327
3219
|
export declare function renderCrawlCsv(report: CrawlReport): string;
|
|
3328
3220
|
export declare function renderCrawlPagesCsv(report: CrawlReport): string;
|
|
@@ -3330,8 +3222,6 @@ export declare function renderCrawlPretty(report: CrawlReport, fixes?: TopFix[])
|
|
|
3330
3222
|
export declare function renderCrawlJunit(report: CrawlReport): string;
|
|
3331
3223
|
export declare function renderCrawlHtml(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3332
3224
|
export declare function renderCrawlMarkdownTickets(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3333
|
-
//#endregion
|
|
3334
|
-
//#region packages/core/src/analyze/crawler/schemas.d.ts
|
|
3335
3225
|
export declare const crawlerRuleSeveritySchema: z.ZodEnum<{
|
|
3336
3226
|
high: "high";
|
|
3337
3227
|
low: "low";
|
|
@@ -18020,13 +17910,9 @@ export declare const crawlerJsonSchemas: {
|
|
|
18020
17910
|
}, z.core.$strip>>;
|
|
18021
17911
|
}, z.core.$strip>>;
|
|
18022
17912
|
};
|
|
18023
|
-
//#endregion
|
|
18024
|
-
//#region packages/core/src/fetch/crawler-identity.d.ts
|
|
18025
17913
|
export declare const SEO_CRAWLER_TOKEN = "SEO-Skill";
|
|
18026
17914
|
export declare const SEO_CRAWLER_USER_AGENT: string;
|
|
18027
17915
|
export declare const SEO_CRAWLER_IDENTITY: CrawlerIdentity;
|
|
18028
|
-
//#endregion
|
|
18029
|
-
//#region packages/core/src/fetch/http-client.d.ts
|
|
18030
17916
|
export type HttpProfile = 'browser' | 'bot';
|
|
18031
17917
|
export declare class ResponseSizeLimitError extends Error {
|
|
18032
17918
|
readonly maxBytes: number;
|
|
@@ -18039,8 +17925,6 @@ export declare function publicHttpFetch(url: string, input?: RequestInit$1 & {
|
|
|
18039
17925
|
profile?: HttpProfile;
|
|
18040
17926
|
}): Promise<import("undici").Response>;
|
|
18041
17927
|
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
17928
|
export declare const providerExtensionIdSchema: z.ZodString;
|
|
18045
17929
|
export declare const providerPackageNameSchema: z.ZodString;
|
|
18046
17930
|
export declare const providerExactVersionSchema: z.ZodString;
|
|
@@ -18110,8 +17994,6 @@ export declare const providerRegistrationSchema: z.ZodObject<{
|
|
|
18110
17994
|
export type ProviderPackageManifest = z.infer<typeof providerPackageManifestSchema>;
|
|
18111
17995
|
export type InstalledProviderPackage = z.infer<typeof installedProviderPackageSchema>;
|
|
18112
17996
|
export type InstalledProviderPackages = z.infer<typeof installedProviderPackagesSchema>;
|
|
18113
|
-
//#endregion
|
|
18114
|
-
//#region packages/core/src/provider-extensions/registry.d.ts
|
|
18115
17997
|
export type RegisteredProviderExtension = SeoProviderRegistration & {
|
|
18116
17998
|
package: string;
|
|
18117
17999
|
version: string;
|
|
@@ -18130,8 +18012,6 @@ export declare class ProviderExtensionRegistry {
|
|
|
18130
18012
|
action(providerId: string, actionId: string): SeoProviderActionAdapter | undefined;
|
|
18131
18013
|
list(): RegisteredProviderExtension[];
|
|
18132
18014
|
}
|
|
18133
|
-
//#endregion
|
|
18134
|
-
//#region packages/core/src/provider-extensions/loader.d.ts
|
|
18135
18015
|
type ImportedProviderModule = {
|
|
18136
18016
|
default?: unknown;
|
|
18137
18017
|
};
|
|
@@ -18158,16 +18038,12 @@ export declare function loadProviderPackage(input: {
|
|
|
18158
18038
|
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
18159
18039
|
}): Promise<RegisteredProviderExtension[]>;
|
|
18160
18040
|
export declare function loadInstalledProviderExtensions(options?: ProviderExtensionLoaderOptions): Promise<LoadedProviderExtensions>;
|
|
18161
|
-
//#endregion
|
|
18162
|
-
//#region packages/core/src/providers/imports/research-columns.d.ts
|
|
18163
18041
|
export declare const RESEARCH_IMPORT_COLUMN_KEYS: readonly ["keyword", "url", "position", "absolutePosition", "searchVolume", "keywordDifficulty", "cpc", "paidCompetition", "intent", "resultCount", "estimatedTraffic", "resultType", "searchVolumeUpdatedAt"];
|
|
18164
18042
|
export type ResearchImportColumn = (typeof RESEARCH_IMPORT_COLUMN_KEYS)[number];
|
|
18165
18043
|
export type ResearchImportColumns = Partial<Record<ResearchImportColumn, string>>;
|
|
18166
18044
|
export declare function normalizedResearchColumnName(value: string): string;
|
|
18167
18045
|
export declare function researchImportColumns(value: ResearchImportColumns | undefined): ResearchImportColumns | undefined;
|
|
18168
18046
|
export declare function validateResearchImportColumnSources(columns: ResearchImportColumns | undefined, includedFields: Iterable<string>): void;
|
|
18169
|
-
//#endregion
|
|
18170
|
-
//#region packages/core/src/providers/contracts.d.ts
|
|
18171
18047
|
export declare const providerIdSchema: z.ZodString;
|
|
18172
18048
|
export type ProviderId = z.infer<typeof providerIdSchema>;
|
|
18173
18049
|
export type ExternalServiceId = string;
|
|
@@ -18240,8 +18116,6 @@ export type KeywordMonthlySearch = {
|
|
|
18240
18116
|
month: number;
|
|
18241
18117
|
searchVolume: number;
|
|
18242
18118
|
};
|
|
18243
|
-
//#endregion
|
|
18244
|
-
//#region packages/core/src/providers/transport.d.ts
|
|
18245
18119
|
export type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
|
|
18246
18120
|
export type ProviderRequestInput = {
|
|
18247
18121
|
provider: ExternalServiceId;
|
|
@@ -18259,8 +18133,6 @@ export declare function providerRequestText(input: ProviderRequestInput): Promis
|
|
|
18259
18133
|
export declare function providerRequestJson<T>(input: ProviderRequestInput & {
|
|
18260
18134
|
schema: z.ZodType<T>;
|
|
18261
18135
|
}): Promise<T>;
|
|
18262
|
-
//#endregion
|
|
18263
|
-
//#region packages/core/src/provider-extensions/runtime.d.ts
|
|
18264
18136
|
export type ProviderRuntimeOptions = {
|
|
18265
18137
|
fetch?: ProviderFetch;
|
|
18266
18138
|
maxRequests?: number;
|
|
@@ -18276,8 +18148,6 @@ export declare function verifyProviderExtension(input: {
|
|
|
18276
18148
|
credentials: Readonly<Record<string, string>>;
|
|
18277
18149
|
runtime?: ProviderRuntimeOptions;
|
|
18278
18150
|
}): Promise<void>;
|
|
18279
|
-
//#endregion
|
|
18280
|
-
//#region packages/core/src/provider-extensions/analytics.d.ts
|
|
18281
18151
|
export type AnalyticsProviderRuntimeOptions = ProviderRuntimeOptions;
|
|
18282
18152
|
export declare function verifyAnalyticsProvider(input: {
|
|
18283
18153
|
providerId: string;
|
|
@@ -18295,8 +18165,6 @@ export declare function runAnalyticsProviderLandingPages(input: {
|
|
|
18295
18165
|
refresh?: boolean;
|
|
18296
18166
|
runtime?: AnalyticsProviderRuntimeOptions;
|
|
18297
18167
|
}): Promise<SeoLandingPageVisitsResult>;
|
|
18298
|
-
//#endregion
|
|
18299
|
-
//#region packages/core/src/analyze/workflows/analytics-value.d.ts
|
|
18300
18168
|
type LandingPageValue = {
|
|
18301
18169
|
sessions: number;
|
|
18302
18170
|
totalUsers?: number;
|
|
@@ -18330,8 +18198,6 @@ declare function fetchLandingPageValues(input: {
|
|
|
18330
18198
|
limit?: number;
|
|
18331
18199
|
refresh?: boolean;
|
|
18332
18200
|
}, dependencies?: Partial<LandingPageValueDependencies>): Promise<LandingPageValueResult>;
|
|
18333
|
-
//#endregion
|
|
18334
|
-
//#region packages/core/src/analyze/crawler/site-crawl-dependencies.d.ts
|
|
18335
18201
|
type ResolvedCrawlSiteDependencies = {
|
|
18336
18202
|
fetchPage: typeof crawlOne;
|
|
18337
18203
|
fetchStatusPage: typeof crawlStatusOnly;
|
|
@@ -18350,11 +18216,7 @@ type ResolvedCrawlSiteDependencies = {
|
|
|
18350
18216
|
totalMemory: () => number;
|
|
18351
18217
|
};
|
|
18352
18218
|
type CrawlSiteDependencies = Partial<ResolvedCrawlSiteDependencies>;
|
|
18353
|
-
//#endregion
|
|
18354
|
-
//#region packages/core/src/analyze/crawler/site-crawl.d.ts
|
|
18355
18219
|
export declare function crawlSite(input: CrawlConfigInput, dependencies?: CrawlSiteDependencies): Promise<CrawlReport>;
|
|
18356
|
-
//#endregion
|
|
18357
|
-
//#region packages/core/src/analyze/query-quality.d.ts
|
|
18358
18220
|
type QueryFlag = 'likely-automated' | 'navigational-other';
|
|
18359
18221
|
declare const QUERY_FLAG_METHOD: {
|
|
18360
18222
|
readonly id: "query_flags_v1";
|
|
@@ -18365,8 +18227,6 @@ declare const QUERY_FLAG_METHOD: {
|
|
|
18365
18227
|
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
18228
|
};
|
|
18367
18229
|
};
|
|
18368
|
-
//#endregion
|
|
18369
|
-
//#region packages/core/src/analyze/ctr-underperformers-types.d.ts
|
|
18370
18230
|
type CtrUnderperformerSelection = {
|
|
18371
18231
|
sourceRows: number;
|
|
18372
18232
|
invalidRows: number;
|
|
@@ -18419,8 +18279,6 @@ type CtrUnderperformer = {
|
|
|
18419
18279
|
confidence: 'low';
|
|
18420
18280
|
};
|
|
18421
18281
|
};
|
|
18422
|
-
//#endregion
|
|
18423
|
-
//#region packages/core/src/analyze/min-impressions-policy.d.ts
|
|
18424
18282
|
type MinImpressionsScale = {
|
|
18425
18283
|
share: number;
|
|
18426
18284
|
floor: number;
|
|
@@ -18434,8 +18292,6 @@ type MinImpressionsPolicy = {
|
|
|
18434
18292
|
basisImpressions: number;
|
|
18435
18293
|
scale: MinImpressionsScale;
|
|
18436
18294
|
};
|
|
18437
|
-
//#endregion
|
|
18438
|
-
//#region packages/core/src/analyze/ctr-underperformers-report.d.ts
|
|
18439
18295
|
export interface CtrUnderperformerDependencies {
|
|
18440
18296
|
searchAnalytics: SearchAnalyticsQuery;
|
|
18441
18297
|
now: () => Date;
|
|
@@ -18547,8 +18403,6 @@ export declare function ctrUnderperformersReportWith(input: CtrUnderperformersIn
|
|
|
18547
18403
|
caveats: string[];
|
|
18548
18404
|
recommendations: string[];
|
|
18549
18405
|
}>;
|
|
18550
|
-
//#endregion
|
|
18551
|
-
//#region packages/core/src/analyze/ctr-underperformers-analysis.d.ts
|
|
18552
18406
|
export declare const CTR_MAX_MIN_IMPRESSIONS = 1000000000;
|
|
18553
18407
|
export declare const CTR_DEFAULT_LIMIT = 25;
|
|
18554
18408
|
export declare const CTR_MAX_LIMIT = 100;
|
|
@@ -18570,14 +18424,8 @@ export declare function analyzeCtrUnderperformersFromRows(input: {
|
|
|
18570
18424
|
brand: ReportBrandTerms;
|
|
18571
18425
|
benchmarkByPosition: Record<string, PositionBenchmark>;
|
|
18572
18426
|
};
|
|
18573
|
-
//#endregion
|
|
18574
|
-
//#region packages/core/src/analyze/ctr-underperformers.d.ts
|
|
18575
18427
|
export declare function ctrUnderperformersReport(input: CtrUnderperformersInput, dependencies?: CtrUnderperformerDependencies): Promise<CtrUnderperformersReport>;
|
|
18576
|
-
//#endregion
|
|
18577
|
-
//#region packages/core/src/progress.d.ts
|
|
18578
18428
|
export type ProgressReporter = (message: string) => void;
|
|
18579
|
-
//#endregion
|
|
18580
|
-
//#region packages/core/src/analyze/segment-impact-types.d.ts
|
|
18581
18429
|
type SegmentDimension = 'page' | 'query' | 'country' | 'device';
|
|
18582
18430
|
type SegmentRange = {
|
|
18583
18431
|
startDate: string;
|
|
@@ -18675,8 +18523,6 @@ type SegmentImpactReport = {
|
|
|
18675
18523
|
warnings: string[];
|
|
18676
18524
|
caveats: string[];
|
|
18677
18525
|
};
|
|
18678
|
-
//#endregion
|
|
18679
|
-
//#region packages/core/src/analyze/segment-impact-analysis.d.ts
|
|
18680
18526
|
export declare function analyzeSegmentRows(input: {
|
|
18681
18527
|
site: string;
|
|
18682
18528
|
dimension: SegmentImpactReport['dimension'];
|
|
@@ -18695,8 +18541,6 @@ export declare function analyzeSegmentRows(input: {
|
|
|
18695
18541
|
beforeRowsFetched?: number;
|
|
18696
18542
|
afterRowsFetched?: number;
|
|
18697
18543
|
}): SegmentImpactReport;
|
|
18698
|
-
//#endregion
|
|
18699
|
-
//#region packages/core/src/analyze/segment-impact-fallback.d.ts
|
|
18700
18544
|
export declare function unavailableSegmentImpactReport(input: {
|
|
18701
18545
|
site: string;
|
|
18702
18546
|
dimension: SegmentDimension;
|
|
@@ -18704,8 +18548,6 @@ export declare function unavailableSegmentImpactReport(input: {
|
|
|
18704
18548
|
reason: string;
|
|
18705
18549
|
generatedAt?: string;
|
|
18706
18550
|
}): SegmentImpactReport;
|
|
18707
|
-
//#endregion
|
|
18708
|
-
//#region packages/core/src/analyze/segment-impact-input.d.ts
|
|
18709
18551
|
export declare function segmentRangeDays(range: SegmentRange): number;
|
|
18710
18552
|
export declare function segmentComparisonRange(after: SegmentRange, compareDays: number): SegmentRange;
|
|
18711
18553
|
export declare function resolveSegmentRanges(input: {
|
|
@@ -18718,8 +18560,6 @@ export declare function resolveSegmentRanges(input: {
|
|
|
18718
18560
|
before: SegmentRange;
|
|
18719
18561
|
after: SegmentRange;
|
|
18720
18562
|
};
|
|
18721
|
-
//#endregion
|
|
18722
|
-
//#region packages/core/src/analyze/segment-impact.d.ts
|
|
18723
18563
|
type SearchAnalytics$1 = typeof querySearchAnalytics;
|
|
18724
18564
|
export interface SegmentImpactInput {
|
|
18725
18565
|
site: string;
|
|
@@ -18756,8 +18596,6 @@ export declare function compareSegmentRows(input: {
|
|
|
18756
18596
|
generatedAt?: string;
|
|
18757
18597
|
}): SegmentImpactReport;
|
|
18758
18598
|
export declare function segmentImpact(input: SegmentImpactInput, dependencies?: SegmentImpactDependencies): Promise<SegmentImpactReport>;
|
|
18759
|
-
//#endregion
|
|
18760
|
-
//#region packages/core/src/providers/domain-contracts.d.ts
|
|
18761
18599
|
type ResearchImportSource = {
|
|
18762
18600
|
dataset: 'ranked-keywords';
|
|
18763
18601
|
file: string;
|
|
@@ -18774,13 +18612,9 @@ type RankedKeyword = KeywordMetric & {
|
|
|
18774
18612
|
resultType: string;
|
|
18775
18613
|
estimatedMonthlyTraffic: ProviderValue<number>;
|
|
18776
18614
|
};
|
|
18777
|
-
//#endregion
|
|
18778
|
-
//#region packages/core/src/providers/imports/research-rows.d.ts
|
|
18779
18615
|
type ImportedResearchRow = RankedKeyword & {
|
|
18780
18616
|
domain: string;
|
|
18781
18617
|
};
|
|
18782
|
-
//#endregion
|
|
18783
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-types.d.ts
|
|
18784
18618
|
type CannibalSuppressionReason = 'brand_query';
|
|
18785
18619
|
interface CannibalSuppression {
|
|
18786
18620
|
query: string;
|
|
@@ -19042,8 +18876,6 @@ interface CannibalAnalysis {
|
|
|
19042
18876
|
suppressionSummary: Record<string, number>;
|
|
19043
18877
|
templates: TemplateSummary[];
|
|
19044
18878
|
}
|
|
19045
|
-
//#endregion
|
|
19046
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-report.d.ts
|
|
19047
18879
|
/** Search Console input. Local research-file imports use the Node binding. */
|
|
19048
18880
|
export interface CannibalSearchConsoleInput {
|
|
19049
18881
|
site: string;
|
|
@@ -19061,13 +18893,16 @@ export interface CannibalDependencies {
|
|
|
19061
18893
|
now: () => Date;
|
|
19062
18894
|
}
|
|
19063
18895
|
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
18896
|
export declare function analyzeCannibalRows(input: AnalyzeCannibalRowsInput): CannibalAnalysis;
|
|
18897
|
+
/**
|
|
18898
|
+
* Empty, partial, filtered or complete. Partial evidence (a possibly capped
|
|
18899
|
+
* source, invalid rows, or a candidate with no query-level demand row) never
|
|
18900
|
+
* becomes filtered, so it cannot read as an all-clear.
|
|
18901
|
+
*/
|
|
18902
|
+
export declare function cannibalDataStatus(selection: CannibalSelection, possiblyTruncated: boolean): CannibalReport['dataStatus'];
|
|
18903
|
+
export declare const CANNIBAL_MINIMUM_PAGE_IMPRESSIONS = 10;
|
|
19067
18904
|
export declare const CANNIBAL_MINIMUM_PAGE_SHARE = 0.1;
|
|
19068
18905
|
export declare const CANNIBAL_MAXIMUM_DOMINANT_SHARE = 0.8;
|
|
19069
|
-
//#endregion
|
|
19070
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal-import.d.ts
|
|
19071
18906
|
export interface CannibalImportReportInput {
|
|
19072
18907
|
site: string;
|
|
19073
18908
|
researchFiles: ResearchImportSource[];
|
|
@@ -19080,8 +18915,6 @@ export interface CannibalImportDependencies {
|
|
|
19080
18915
|
}
|
|
19081
18916
|
export declare function analyzeCannibalImportRows(input: AnalyzeCannibalImportRowsInput): CannibalImportAnalysis;
|
|
19082
18917
|
export declare function cannibalImportReport(input: CannibalImportReportInput, dependencies?: CannibalImportDependencies): Promise<CannibalImportReport>;
|
|
19083
|
-
//#endregion
|
|
19084
|
-
//#region packages/core/src/analyze/site-diagnostics/cannibal.d.ts
|
|
19085
18918
|
export interface CannibalReportInput extends CannibalSearchConsoleInput {
|
|
19086
18919
|
researchFiles?: ResearchImportSource[];
|
|
19087
18920
|
}
|
|
@@ -19091,8 +18924,6 @@ export declare function cannibalReport(input: CannibalReportInput & {
|
|
|
19091
18924
|
export declare function cannibalReport(input: CannibalReportInput & {
|
|
19092
18925
|
researchFiles?: undefined;
|
|
19093
18926
|
}, dependencies?: CannibalDependencies): Promise<CannibalReport>;
|
|
19094
|
-
//#endregion
|
|
19095
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-types.d.ts
|
|
19096
18927
|
type DecayDiagnosis = 'lost_position' | 'lost_ctr' | 'lost_impressions' | 'lost_clicks';
|
|
19097
18928
|
type DecayComparison = 'previous-period' | 'year-over-year';
|
|
19098
18929
|
type DecaySignal = 'position_decline' | 'ctr_decline' | 'impression_decline' | 'click_decline';
|
|
@@ -19243,11 +19074,7 @@ interface DecayReport {
|
|
|
19243
19074
|
ledgerSummary: string;
|
|
19244
19075
|
warnings: string[];
|
|
19245
19076
|
}
|
|
19246
|
-
//#endregion
|
|
19247
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-analysis.d.ts
|
|
19248
19077
|
export declare function analyzeDecay(input: AnalyzeDecayInput): DecayAnalysis;
|
|
19249
|
-
//#endregion
|
|
19250
|
-
//#region packages/core/src/analyze/site-diagnostics/decay-report-input.d.ts
|
|
19251
19078
|
export declare function decayComparisonRange(current: {
|
|
19252
19079
|
startDate: string;
|
|
19253
19080
|
endDate: string;
|
|
@@ -19255,8 +19082,6 @@ export declare function decayComparisonRange(current: {
|
|
|
19255
19082
|
startDate: string;
|
|
19256
19083
|
endDate: string;
|
|
19257
19084
|
};
|
|
19258
|
-
//#endregion
|
|
19259
|
-
//#region packages/core/src/analyze/site-diagnostics/decaying-report.d.ts
|
|
19260
19085
|
export interface DecayingReportInput {
|
|
19261
19086
|
site: string;
|
|
19262
19087
|
days?: number;
|
|
@@ -19276,11 +19101,7 @@ export interface DecayingDependencies {
|
|
|
19276
19101
|
now: () => Date;
|
|
19277
19102
|
}
|
|
19278
19103
|
export declare function decayingReportWith(input: DecayingReportInput, dependencies: DecayingDependencies): Promise<DecayReport>;
|
|
19279
|
-
//#endregion
|
|
19280
|
-
//#region packages/core/src/analyze/site-diagnostics/decaying.d.ts
|
|
19281
19104
|
export declare function decayingReport(input: DecayingReportInput, dependencies?: DecayingDependencies): Promise<DecayReport>;
|
|
19282
|
-
//#endregion
|
|
19283
|
-
//#region packages/core/src/analyze/site-ctr-curve.d.ts
|
|
19284
19105
|
declare const SITE_CTR_CURVE_METHOD: {
|
|
19285
19106
|
readonly method: "position_bucket_url_p75_v2";
|
|
19286
19107
|
readonly samplePopulation: "all_qualified_url_samples";
|
|
@@ -19302,8 +19123,6 @@ declare const SITE_CTR_CURVE_METHOD: {
|
|
|
19302
19123
|
readonly sharedWith: readonly ["quick-wins", "ctr-underperformers"];
|
|
19303
19124
|
readonly heuristic: true;
|
|
19304
19125
|
};
|
|
19305
|
-
//#endregion
|
|
19306
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-types.d.ts
|
|
19307
19126
|
type QuickWinSelection = {
|
|
19308
19127
|
sourceRows: number;
|
|
19309
19128
|
invalidRows: number;
|
|
@@ -19439,8 +19258,6 @@ type AnalyzeQuickWinsInput = {
|
|
|
19439
19258
|
brandTerms?: string[];
|
|
19440
19259
|
includeBrand?: boolean;
|
|
19441
19260
|
};
|
|
19442
|
-
//#endregion
|
|
19443
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-report.d.ts
|
|
19444
19261
|
export type QuickWinsInput = {
|
|
19445
19262
|
site: string;
|
|
19446
19263
|
days?: number;
|
|
@@ -19576,19 +19393,11 @@ export declare function quickWinsReportWith(input: QuickWinsInput, dependencies:
|
|
|
19576
19393
|
message: string;
|
|
19577
19394
|
})[];
|
|
19578
19395
|
}>;
|
|
19579
|
-
//#endregion
|
|
19580
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins-analysis.d.ts
|
|
19581
19396
|
export declare function analyzeQuickWinsFromRows(input: AnalyzeQuickWinsInput): QuickWinAnalysis;
|
|
19582
|
-
//#endregion
|
|
19583
|
-
//#region packages/core/src/analyze/site-diagnostics/quick-wins.d.ts
|
|
19584
19397
|
export declare function quickWinsReport(input: QuickWinsInput, dependencies?: QuickWinsDependencies): Promise<QuickWinsReport>;
|
|
19585
|
-
//#endregion
|
|
19586
|
-
//#region packages/core/src/analyze/site-diagnostics/types.d.ts
|
|
19587
19398
|
export interface TemplateAwareReport {
|
|
19588
19399
|
templates: TemplateSummary[];
|
|
19589
19400
|
}
|
|
19590
|
-
//#endregion
|
|
19591
|
-
//#region packages/core/src/analyze/striking-distance-analysis-types.d.ts
|
|
19592
19401
|
type StrikingDistanceSelection = {
|
|
19593
19402
|
sourceRows: number;
|
|
19594
19403
|
/** Source rows whose page URL had a #fragment; merged into the base URL. */
|
|
@@ -19703,11 +19512,7 @@ type AnalyzeStrikingDistanceInput = {
|
|
|
19703
19512
|
brandTerms?: string[];
|
|
19704
19513
|
includeBrand?: boolean;
|
|
19705
19514
|
};
|
|
19706
|
-
//#endregion
|
|
19707
|
-
//#region packages/core/src/analyze/striking-distance-analysis.d.ts
|
|
19708
19515
|
export declare function analyzeStrikingDistanceRows(input: AnalyzeStrikingDistanceInput): StrikingDistanceAnalysis;
|
|
19709
|
-
//#endregion
|
|
19710
|
-
//#region packages/core/src/analyze/striking-distance-report.d.ts
|
|
19711
19516
|
export type StrikingDistanceInput = {
|
|
19712
19517
|
site: string;
|
|
19713
19518
|
/** Window length in days; ignored when startDate and endDate are given. */
|
|
@@ -19784,11 +19589,7 @@ export type StrikingDistanceDependencies = {
|
|
|
19784
19589
|
now: () => Date;
|
|
19785
19590
|
};
|
|
19786
19591
|
export declare function strikingDistanceWith(input: StrikingDistanceInput, dependencies: StrikingDistanceDependencies): Promise<StrikingDistanceReport>;
|
|
19787
|
-
//#endregion
|
|
19788
|
-
//#region packages/core/src/analyze/striking-distance.d.ts
|
|
19789
19592
|
export declare function strikingDistance(input: StrikingDistanceInput, dependencies?: StrikingDistanceDependencies): Promise<StrikingDistanceReport>;
|
|
19790
|
-
//#endregion
|
|
19791
|
-
//#region packages/core/src/updates/search-updates.d.ts
|
|
19792
19593
|
interface SearchStatusIncident {
|
|
19793
19594
|
id: string;
|
|
19794
19595
|
begin: string;
|
|
@@ -19820,8 +19621,6 @@ export declare function findOverlappingSearchUpdates(input: {
|
|
|
19820
19621
|
endDate: string;
|
|
19821
19622
|
paddingDays?: number;
|
|
19822
19623
|
}): SearchUpdate[];
|
|
19823
|
-
//#endregion
|
|
19824
|
-
//#region packages/core/src/analyze/traffic-anomaly-analysis.d.ts
|
|
19825
19624
|
export interface TrafficAnomaly {
|
|
19826
19625
|
site: string;
|
|
19827
19626
|
metric: 'clicks' | 'impressions';
|
|
@@ -19971,8 +19770,6 @@ export declare function analyzeTrafficAnomalyRows(input: {
|
|
|
19971
19770
|
coverage: TrafficAnomalyCoverage;
|
|
19972
19771
|
detection: TrafficAnomalyDetection;
|
|
19973
19772
|
};
|
|
19974
|
-
//#endregion
|
|
19975
|
-
//#region packages/core/src/analyze/traffic-anomaly-report.d.ts
|
|
19976
19773
|
export type TrafficAnomalyInput = {
|
|
19977
19774
|
site: string;
|
|
19978
19775
|
days?: number;
|
|
@@ -19986,8 +19783,6 @@ export type TrafficAnomalyDependencies = {
|
|
|
19986
19783
|
now: () => Date;
|
|
19987
19784
|
};
|
|
19988
19785
|
export declare function trafficAnomalyWith(input: TrafficAnomalyInput, dependencies: TrafficAnomalyDependencies): Promise<TrafficAnomalyReport>;
|
|
19989
|
-
//#endregion
|
|
19990
|
-
//#region packages/core/src/analyze/traffic-anomaly.d.ts
|
|
19991
19786
|
export declare function trafficAnomaly(input: TrafficAnomalyInput, dependencies?: TrafficAnomalyDependencies): Promise<TrafficAnomalyReport>;
|
|
19992
19787
|
export declare function updateCorrelation(input: {
|
|
19993
19788
|
site: string;
|
|
@@ -20000,8 +19795,6 @@ export declare function updateCorrelation(input: {
|
|
|
20000
19795
|
refresh?: boolean;
|
|
20001
19796
|
trafficAnomalies?: TrafficAnomaly[];
|
|
20002
19797
|
}): Promise<UpdateCorrelationReport>;
|
|
20003
|
-
//#endregion
|
|
20004
|
-
//#region packages/core/src/analyze/diagnose-property.d.ts
|
|
20005
19798
|
export type DiagnosisPriority = {
|
|
20006
19799
|
label: string;
|
|
20007
19800
|
reason: string;
|
|
@@ -20076,8 +19869,6 @@ export declare function diagnoseProperty(input: {
|
|
|
20076
19869
|
skipSearchData?: boolean;
|
|
20077
19870
|
progress?: ProgressReporter;
|
|
20078
19871
|
}, dependencies?: Partial<DiagnosePropertyDependencies>): Promise<DiagnosePropertyReport>;
|
|
20079
|
-
//#endregion
|
|
20080
|
-
//#region packages/core/src/decision-model.d.ts
|
|
20081
19872
|
export type DecisionQuestion = {
|
|
20082
19873
|
type: 'noul';
|
|
20083
19874
|
instructions: unknown;
|
|
@@ -20151,8 +19942,6 @@ export declare class DecisionRunner {
|
|
|
20151
19942
|
private release;
|
|
20152
19943
|
ask(request: DecisionRequest): Promise<DecisionResponse | null>;
|
|
20153
19944
|
}
|
|
20154
|
-
//#endregion
|
|
20155
|
-
//#region packages/core/src/analyze/internal-links-placement.d.ts
|
|
20156
19945
|
interface LinkSentence {
|
|
20157
19946
|
text: string;
|
|
20158
19947
|
section: string;
|
|
@@ -20161,8 +19950,6 @@ interface LinkSentence {
|
|
|
20161
19950
|
interface TermWeights {
|
|
20162
19951
|
idf(term: string): number;
|
|
20163
19952
|
}
|
|
20164
|
-
//#endregion
|
|
20165
|
-
//#region packages/core/src/analyze/internal-links-index.d.ts
|
|
20166
19953
|
declare class SiteIndex implements TermWeights {
|
|
20167
19954
|
private readonly ids;
|
|
20168
19955
|
private readonly df;
|
|
@@ -20181,8 +19968,6 @@ declare class SiteIndex implements TermWeights {
|
|
|
20181
19968
|
score: number;
|
|
20182
19969
|
}>;
|
|
20183
19970
|
}
|
|
20184
|
-
//#endregion
|
|
20185
|
-
//#region packages/core/src/analyze/internal-links-crawl.d.ts
|
|
20186
19971
|
export declare const DEFAULT_MAX_PAGES = 500;
|
|
20187
19972
|
export declare const MAX_MAX_PAGES = 5000;
|
|
20188
19973
|
type CrawlSkipReason$1 = 'robots' | 'not-html' | 'http-error' | 'fetch-failed' | 'canonicalised' | 'duplicate' | 'off-site';
|
|
@@ -20253,8 +20038,6 @@ interface CrawlInput {
|
|
|
20253
20038
|
progress?: ProgressReporter;
|
|
20254
20039
|
}
|
|
20255
20040
|
declare function crawlForLinks(input: CrawlInput): Promise<SiteCrawl>;
|
|
20256
|
-
//#endregion
|
|
20257
|
-
//#region packages/core/src/analyze/internal-links-judge.d.ts
|
|
20258
20041
|
export declare const PAGE_TYPES: {
|
|
20259
20042
|
readonly pillar_guide: "A long, broad guide that covers a whole topic and would naturally link out to many narrower pages";
|
|
20260
20043
|
readonly support_article: "A focused article, post, tutorial, or explainer about one narrower subject";
|
|
@@ -20288,8 +20071,6 @@ export declare const LINK_ROLES: {
|
|
|
20288
20071
|
};
|
|
20289
20072
|
type LinkRole = keyof typeof LINK_ROLES;
|
|
20290
20073
|
type HeldBackReason = 'weak-sentence' | 'no-sentence';
|
|
20291
|
-
//#endregion
|
|
20292
|
-
//#region packages/core/src/analyze/internal-links-types.d.ts
|
|
20293
20074
|
interface InternalLinkSuggestion {
|
|
20294
20075
|
source: string;
|
|
20295
20076
|
target: string;
|
|
@@ -20419,8 +20200,6 @@ interface InternalLinksReport {
|
|
|
20419
20200
|
caveats: string[];
|
|
20420
20201
|
next: string | null;
|
|
20421
20202
|
}
|
|
20422
|
-
//#endregion
|
|
20423
|
-
//#region packages/core/src/analyze/internal-links.d.ts
|
|
20424
20203
|
export interface InternalLinksInput {
|
|
20425
20204
|
site: string;
|
|
20426
20205
|
targetUrl?: string;
|
|
@@ -20451,8 +20230,6 @@ export interface InternalLinksDependencies {
|
|
|
20451
20230
|
}
|
|
20452
20231
|
export declare function siteStartUrl(site: string): string;
|
|
20453
20232
|
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
20233
|
type PseoTemplateCluster = {
|
|
20457
20234
|
id: string;
|
|
20458
20235
|
signature: string;
|
|
@@ -20475,8 +20252,6 @@ type PseoTemplateShape = {
|
|
|
20475
20252
|
tokenExamples: string[];
|
|
20476
20253
|
}>;
|
|
20477
20254
|
};
|
|
20478
|
-
//#endregion
|
|
20479
|
-
//#region packages/core/src/analyze/monitoring/index-coverage.d.ts
|
|
20480
20255
|
export type IndexCoverageSourceCompleteness = 'complete' | 'partial' | 'truncated' | 'unknown' | 'unavailable';
|
|
20481
20256
|
export type IndexCoverageSourceEvidence = {
|
|
20482
20257
|
completeness: IndexCoverageSourceCompleteness;
|
|
@@ -20619,8 +20394,6 @@ export type IndexCoverageSignalsReport = {
|
|
|
20619
20394
|
caveats: string[];
|
|
20620
20395
|
};
|
|
20621
20396
|
export declare function analyzeIndexCoverageSignals(input: IndexCoverageInput): IndexCoverageSignalsReport;
|
|
20622
|
-
//#endregion
|
|
20623
|
-
//#region packages/core/src/analyze/monitoring/index-coverage-report.d.ts
|
|
20624
20397
|
type SearchAnalytics = typeof querySearchAnalytics;
|
|
20625
20398
|
type FetchSitemap = typeof fetchSitemapUrls;
|
|
20626
20399
|
export type IndexCoverageReportInput = {
|
|
@@ -20666,8 +20439,6 @@ export type IndexCoverageReportDependencies = {
|
|
|
20666
20439
|
now: () => Date;
|
|
20667
20440
|
};
|
|
20668
20441
|
export declare function indexCoverageSignals(input: IndexCoverageReportInput, dependencies?: IndexCoverageReportDependencies): Promise<IndexCoverageReport>;
|
|
20669
|
-
//#endregion
|
|
20670
|
-
//#region packages/core/src/analyze/monitoring/redirect-trace.d.ts
|
|
20671
20442
|
export type RedirectTraceStep = {
|
|
20672
20443
|
url: string;
|
|
20673
20444
|
status: number;
|
|
@@ -20703,8 +20474,6 @@ export declare function redirectTrace(input: {
|
|
|
20703
20474
|
refresh?: boolean;
|
|
20704
20475
|
js?: boolean | 'auto';
|
|
20705
20476
|
}): Promise<RedirectTraceReport>;
|
|
20706
|
-
//#endregion
|
|
20707
|
-
//#region packages/core/src/analyze/monitoring/link-recover.d.ts
|
|
20708
20477
|
export type LinkRecoverItem = {
|
|
20709
20478
|
url: string;
|
|
20710
20479
|
finalUrl: string;
|
|
@@ -20753,8 +20522,6 @@ export declare function linkRecover(input: {
|
|
|
20753
20522
|
refresh?: boolean;
|
|
20754
20523
|
js?: boolean | 'auto';
|
|
20755
20524
|
}): Promise<LinkRecoverReport>;
|
|
20756
|
-
//#endregion
|
|
20757
|
-
//#region packages/core/src/analyze/performance-types.d.ts
|
|
20758
20525
|
export type PerformanceRating = 'good' | 'needs-work' | 'poor' | 'unknown';
|
|
20759
20526
|
export type PerformanceMetric = {
|
|
20760
20527
|
value?: number;
|
|
@@ -20859,8 +20626,6 @@ export type PerformanceAuditReport = {
|
|
|
20859
20626
|
caveats: string[];
|
|
20860
20627
|
raw?: unknown;
|
|
20861
20628
|
};
|
|
20862
|
-
//#endregion
|
|
20863
|
-
//#region packages/core/src/analyze/performance-crux.d.ts
|
|
20864
20629
|
type CruxResult = {
|
|
20865
20630
|
fieldData?: PerformanceAuditReport['fieldData'];
|
|
20866
20631
|
status: PerformanceAuditReport['fieldDataStatus'];
|
|
@@ -20873,8 +20638,6 @@ export declare function fetchCruxFieldData(input: {
|
|
|
20873
20638
|
fetchImpl?: typeof fetch$1;
|
|
20874
20639
|
timeoutMs?: number;
|
|
20875
20640
|
}): Promise<CruxResult>;
|
|
20876
|
-
//#endregion
|
|
20877
|
-
//#region packages/core/src/analyze/performance.d.ts
|
|
20878
20641
|
export declare function performanceReportIsCacheable(input: {
|
|
20879
20642
|
report: PerformanceAuditReport;
|
|
20880
20643
|
customCrux?: boolean;
|
|
@@ -20893,8 +20656,6 @@ export declare function performanceAudit(input: {
|
|
|
20893
20656
|
includeRaw?: boolean;
|
|
20894
20657
|
now?: () => Date;
|
|
20895
20658
|
}): Promise<PerformanceAuditReport>;
|
|
20896
|
-
//#endregion
|
|
20897
|
-
//#region packages/core/src/analyze/query-cluster-primitives.d.ts
|
|
20898
20659
|
type QueryClusterRow = {
|
|
20899
20660
|
query: string;
|
|
20900
20661
|
impressions: number;
|
|
@@ -20910,8 +20671,6 @@ type QueryClusterPage = {
|
|
|
20910
20671
|
};
|
|
20911
20672
|
export declare function queryClusterTokens(query: string): string[];
|
|
20912
20673
|
export declare function clusterQueryRows(rows: QueryClusterRow[]): QueryClusterRow[][];
|
|
20913
|
-
//#endregion
|
|
20914
|
-
//#region packages/core/src/analyze/query-cluster-analysis.d.ts
|
|
20915
20674
|
export declare function analyzeQueryClustersFromRows(input: {
|
|
20916
20675
|
rows: QueryClusterRow[];
|
|
20917
20676
|
brand?: string;
|
|
@@ -20928,8 +20687,6 @@ export declare function analyzeQueryClustersFromRows(input: {
|
|
|
20928
20687
|
minImpressions: number;
|
|
20929
20688
|
limit: number;
|
|
20930
20689
|
};
|
|
20931
|
-
//#endregion
|
|
20932
|
-
//#region packages/core/src/analyze/query-cluster.d.ts
|
|
20933
20690
|
export type QueryClusterReport = {
|
|
20934
20691
|
site: string;
|
|
20935
20692
|
scope?: string;
|
|
@@ -20981,8 +20738,6 @@ export declare function buildQueryClusterReportFromRows(input: {
|
|
|
20981
20738
|
minImpressions?: number;
|
|
20982
20739
|
limit?: number;
|
|
20983
20740
|
}): QueryClusterReport;
|
|
20984
|
-
//#endregion
|
|
20985
|
-
//#region packages/core/src/analyze/reports/types.d.ts
|
|
20986
20741
|
export type NarrativeSection = {
|
|
20987
20742
|
title: string;
|
|
20988
20743
|
bullets: string[];
|
|
@@ -21006,8 +20761,6 @@ export type ReportNarrative = {
|
|
|
21006
20761
|
}>;
|
|
21007
20762
|
diagnosis: DiagnosePropertyReport;
|
|
21008
20763
|
};
|
|
21009
|
-
//#endregion
|
|
21010
|
-
//#region packages/core/src/analyze/reports/narrative.d.ts
|
|
21011
20764
|
export declare function reportNarrative(input: {
|
|
21012
20765
|
site: string;
|
|
21013
20766
|
days?: number;
|
|
@@ -21027,8 +20780,6 @@ export declare function reportNarrative(input: {
|
|
|
21027
20780
|
}): Promise<ReportNarrative & {
|
|
21028
20781
|
markdown: string;
|
|
21029
20782
|
}>;
|
|
21030
|
-
//#endregion
|
|
21031
|
-
//#region packages/core/src/analyze/second-page-report.d.ts
|
|
21032
20783
|
export type SecondPageInput = {
|
|
21033
20784
|
site: string;
|
|
21034
20785
|
/** Window length in days; ignored when startDate and endDate are given. */
|
|
@@ -21056,14 +20807,8 @@ export type SecondPageDependencies = {
|
|
|
21056
20807
|
now: () => Date;
|
|
21057
20808
|
};
|
|
21058
20809
|
export declare function secondPageWith(input: SecondPageInput, dependencies: SecondPageDependencies): Promise<SecondPageReport>;
|
|
21059
|
-
//#endregion
|
|
21060
|
-
//#region packages/core/src/analyze/second-page-analysis.d.ts
|
|
21061
20810
|
export declare function analyzeSecondPageRows(input: AnalyzeSecondPageInput): SecondPageAnalysis;
|
|
21062
|
-
//#endregion
|
|
21063
|
-
//#region packages/core/src/analyze/second-page.d.ts
|
|
21064
20811
|
export declare function secondPage(input: SecondPageInput, dependencies?: SecondPageDependencies): Promise<SecondPageReport>;
|
|
21065
|
-
//#endregion
|
|
21066
|
-
//#region packages/core/src/analyze/title-width.d.ts
|
|
21067
20812
|
export declare const SERP_TITLE_REFERENCE_WIDTH_PX = 580;
|
|
21068
20813
|
export declare const SERP_TITLE_WIDTH_PROFILE: {
|
|
21069
20814
|
readonly id: "arial-20-v1";
|
|
@@ -21081,8 +20826,6 @@ export type TitleWidthEstimate = {
|
|
|
21081
20826
|
fallbackGraphemes: string[];
|
|
21082
20827
|
};
|
|
21083
20828
|
export declare function estimateSerpTitleWidth(title: string): TitleWidthEstimate;
|
|
21084
|
-
//#endregion
|
|
21085
|
-
//#region packages/core/src/analyze/workflows/types.d.ts
|
|
21086
20829
|
export type WorkflowStep = {
|
|
21087
20830
|
tool: string;
|
|
21088
20831
|
status: 'completed' | 'skipped';
|
|
@@ -21152,8 +20895,6 @@ export type PriorityQueueItem = {
|
|
|
21152
20895
|
action: string;
|
|
21153
20896
|
evidence: string;
|
|
21154
20897
|
};
|
|
21155
|
-
//#endregion
|
|
21156
|
-
//#region packages/core/src/analyze/workflows/crawl-implementation-queue.d.ts
|
|
21157
20898
|
export type CrawlImplementationQueueItem = PriorityQueueItem & {
|
|
21158
20899
|
ruleId: string;
|
|
21159
20900
|
severity: RuleSeverity;
|
|
@@ -21173,8 +20914,6 @@ export type CrawlImplementationQueueInput = CrawlConfigInput & {
|
|
|
21173
20914
|
};
|
|
21174
20915
|
export declare function crawlFixToQueueItem(fix: TopFix): CrawlImplementationQueueItem;
|
|
21175
20916
|
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
20917
|
export declare function diagnosePropertyWorkflow(input: {
|
|
21179
20918
|
site: string;
|
|
21180
20919
|
days?: number;
|
|
@@ -21187,13 +20926,9 @@ export declare function diagnosePropertyWorkflow(input: {
|
|
|
21187
20926
|
}): Promise<WorkflowReport<{
|
|
21188
20927
|
narrative: Awaited<ReturnType<typeof reportNarrative>>;
|
|
21189
20928
|
}>>;
|
|
21190
|
-
//#endregion
|
|
21191
|
-
//#region packages/core/src/analyze/workflows/markdown.d.ts
|
|
21192
20929
|
export declare function renderWorkflowMarkdown(report: WorkflowReport<unknown>, options?: {
|
|
21193
20930
|
queueLimit?: number;
|
|
21194
20931
|
}): string;
|
|
21195
|
-
//#endregion
|
|
21196
|
-
//#region packages/core/src/presentation.d.ts
|
|
21197
20932
|
export type PresentationScalar = boolean | number | string | null;
|
|
21198
20933
|
export type PresentationTableColumn = {
|
|
21199
20934
|
key: string;
|
|
@@ -21218,17 +20953,11 @@ export type Presentation = {
|
|
|
21218
20953
|
tables: PresentationTable[];
|
|
21219
20954
|
charts: PresentationChart[];
|
|
21220
20955
|
};
|
|
21221
|
-
//#endregion
|
|
21222
|
-
//#region packages/core/src/analyze/workflows/presentation.d.ts
|
|
21223
20956
|
export declare function workflowPresentation(report: WorkflowReport<unknown>, options?: {
|
|
21224
20957
|
queueLimit?: number;
|
|
21225
20958
|
}): Presentation;
|
|
21226
|
-
//#endregion
|
|
21227
|
-
//#region packages/core/src/analyze/workflows/priority-scoring.d.ts
|
|
21228
20959
|
type PriorityCategory = 'technical' | 'content' | 'serp' | 'authority' | 'strategy';
|
|
21229
20960
|
declare function priorityCategory(source: PriorityQueueItem['source'], verification?: QueryContentClassification): PriorityCategory;
|
|
21230
|
-
//#endregion
|
|
21231
|
-
//#region packages/core/src/analyze/workflows/refresh-priorities.d.ts
|
|
21232
20961
|
type QueueDraft = Omit<PriorityQueueItem, 'category' | 'score' | 'impact' | 'scoreBreakdown'> & {
|
|
21233
20962
|
impact: number;
|
|
21234
20963
|
effort?: 'S' | 'M' | 'L';
|
|
@@ -21267,8 +20996,6 @@ export declare function refreshPrioritiesWorkflow(input: {
|
|
|
21267
20996
|
warnings: string[];
|
|
21268
20997
|
diagnosis: Awaited<ReturnType<typeof diagnoseProperty>>;
|
|
21269
20998
|
}>>;
|
|
21270
|
-
//#endregion
|
|
21271
|
-
//#region packages/core/src/analyze/workflows/segments.d.ts
|
|
21272
20999
|
type WorkflowSegmentCoverage = {
|
|
21273
21000
|
evidenceScope: 'matched-retained-segments';
|
|
21274
21001
|
eligibleRows: number;
|
|
@@ -21290,8 +21017,6 @@ type WorkflowSegmentSplit = {
|
|
|
21290
21017
|
warnings: string[];
|
|
21291
21018
|
};
|
|
21292
21019
|
declare function splitSegments(report: SegmentImpactReport): WorkflowSegmentSplit;
|
|
21293
|
-
//#endregion
|
|
21294
|
-
//#region packages/core/src/analyze/workflows/update-postmortem.d.ts
|
|
21295
21020
|
type SplitSegment = ReturnType<typeof splitSegments>;
|
|
21296
21021
|
type PostmortemInsight = {
|
|
21297
21022
|
dimension: 'page' | 'query' | 'device' | 'country';
|
|
@@ -21342,8 +21067,6 @@ export declare function updatePostmortemWorkflow(input: {
|
|
|
21342
21067
|
updateCorrelation?: typeof updateCorrelation;
|
|
21343
21068
|
segmentImpact?: typeof segmentImpact;
|
|
21344
21069
|
}): Promise<WorkflowReport<PostmortemOutput>>;
|
|
21345
|
-
//#endregion
|
|
21346
|
-
//#region packages/core/src/brand.d.ts
|
|
21347
21070
|
export declare function normalizeBrandText(value: string): string;
|
|
21348
21071
|
/**
|
|
21349
21072
|
* The registrable part of a Search Console property host, using the small
|
|
@@ -21367,8 +21090,6 @@ export declare function shouldExcludeBrandQuery(input: {
|
|
|
21367
21090
|
brandTerms?: string[];
|
|
21368
21091
|
includeBrand?: boolean;
|
|
21369
21092
|
}): boolean;
|
|
21370
|
-
//#endregion
|
|
21371
|
-
//#region packages/core/src/brand-detect.d.ts
|
|
21372
21093
|
type BrandEvidence = {
|
|
21373
21094
|
query: string;
|
|
21374
21095
|
clicks: number;
|
|
@@ -21396,8 +21117,6 @@ export declare function detectBrandTerms(input: {
|
|
|
21396
21117
|
suggestedTerms: string[];
|
|
21397
21118
|
candidates: BrandTermCandidate[];
|
|
21398
21119
|
}>;
|
|
21399
|
-
//#endregion
|
|
21400
|
-
//#region packages/core/src/storage/provider-secrets.d.ts
|
|
21401
21120
|
export declare const PROVIDER_SECRET_NAMES: {
|
|
21402
21121
|
readonly ahrefsApiKey: "ahrefs-api-key";
|
|
21403
21122
|
readonly bingApiKey: "bing-api-key";
|
|
@@ -21419,8 +21138,6 @@ export declare function readProviderSecret(input: {
|
|
|
21419
21138
|
export declare function writeProviderSecret(name: string, value: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
21420
21139
|
export declare function deleteProviderSecret(name: string): Promise<void>;
|
|
21421
21140
|
export declare function deleteManagedProviderSecrets(): Promise<void>;
|
|
21422
|
-
//#endregion
|
|
21423
|
-
//#region packages/core/src/clicky/credentials.d.ts
|
|
21424
21141
|
export declare const CLICKY_SITEKEY_ENV = "SEO_CLICKY_SITEKEY";
|
|
21425
21142
|
export declare const CLICKY_SITE_KEYS_SECRET: "clicky-sitekeys";
|
|
21426
21143
|
export type StoredClickySiteKey = {
|
|
@@ -21435,23 +21152,15 @@ export declare function readClickySiteKey(siteIdValue: string, input?: {
|
|
|
21435
21152
|
}): Promise<StoredClickySiteKey | undefined>;
|
|
21436
21153
|
export declare function writeClickySiteKey(siteIdValue: string, siteKeyValue: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
21437
21154
|
export declare function deleteClickySiteKey(siteIdValue: string): Promise<void>;
|
|
21438
|
-
//#endregion
|
|
21439
|
-
//#region packages/core/src/bing/api.d.ts
|
|
21440
21155
|
type BingCall = (method: string, params?: Record<string, string>) => Promise<unknown>;
|
|
21441
|
-
//#endregion
|
|
21442
|
-
//#region packages/core/src/commands/sites.d.ts
|
|
21443
21156
|
type GoogleAccount = {
|
|
21444
21157
|
email: string | null;
|
|
21445
21158
|
google: GoogleFetch;
|
|
21446
21159
|
};
|
|
21447
|
-
//#endregion
|
|
21448
|
-
//#region packages/core/src/commands/analytics-site.d.ts
|
|
21449
21160
|
type AnalyticsAccess = {
|
|
21450
21161
|
accounts: () => Promise<GoogleAccount[]>;
|
|
21451
21162
|
signIn: string;
|
|
21452
21163
|
};
|
|
21453
|
-
//#endregion
|
|
21454
|
-
//#region packages/core/src/commands/audit-checks.d.ts
|
|
21455
21164
|
type AuditCheckRow = {
|
|
21456
21165
|
url: string;
|
|
21457
21166
|
in_sitemap: boolean;
|
|
@@ -21517,8 +21226,6 @@ type AuditChecks = {
|
|
|
21517
21226
|
started: boolean;
|
|
21518
21227
|
as_of: number;
|
|
21519
21228
|
};
|
|
21520
|
-
//#endregion
|
|
21521
|
-
//#region packages/core/src/commands/audit.d.ts
|
|
21522
21229
|
type AuditSummary = {
|
|
21523
21230
|
status: 'done' | 'failed';
|
|
21524
21231
|
complete: boolean;
|
|
@@ -21539,6 +21246,12 @@ type AuditSummary = {
|
|
|
21539
21246
|
capped_rules: string[];
|
|
21540
21247
|
resolution: 'all' | 'crawled-pages-only';
|
|
21541
21248
|
};
|
|
21249
|
+
rendering?: {
|
|
21250
|
+
mode: 'on' | 'off' | 'unavailable' | null;
|
|
21251
|
+
rendered: number;
|
|
21252
|
+
failed: number;
|
|
21253
|
+
browser_ms: number;
|
|
21254
|
+
};
|
|
21542
21255
|
changes: {
|
|
21543
21256
|
compared: boolean;
|
|
21544
21257
|
new_urls: number;
|
|
@@ -21595,8 +21308,26 @@ type AuditAccess = {
|
|
|
21595
21308
|
checks: (site: string, offset: number, limit: number) => Promise<AuditChecks | null>;
|
|
21596
21309
|
add: (site: string) => Promise<'added' | 'exists' | 'full'>;
|
|
21597
21310
|
};
|
|
21598
|
-
|
|
21599
|
-
|
|
21311
|
+
declare const ISSUE_MARKS: readonly ["open", "fixed", "ignored"];
|
|
21312
|
+
type IssueMark = (typeof ISSUE_MARKS)[number];
|
|
21313
|
+
type IssueSeen = 'found' | 'not-found' | 'not-checked';
|
|
21314
|
+
type StoredIssue = {
|
|
21315
|
+
id: string;
|
|
21316
|
+
kind: string;
|
|
21317
|
+
subject: string;
|
|
21318
|
+
evidence: string;
|
|
21319
|
+
mark: IssueMark;
|
|
21320
|
+
marked_at: string | null;
|
|
21321
|
+
note: string | null;
|
|
21322
|
+
first_found: string;
|
|
21323
|
+
last_found: string | null;
|
|
21324
|
+
seen: IssueSeen;
|
|
21325
|
+
checked_at: string | null;
|
|
21326
|
+
};
|
|
21327
|
+
type IssueStore = {
|
|
21328
|
+
read: (site: string) => Promise<StoredIssue[] | null>;
|
|
21329
|
+
write: (site: string, issues: StoredIssue[]) => Promise<void>;
|
|
21330
|
+
};
|
|
21600
21331
|
type RedirectKind = 'permanent' | 'temporary';
|
|
21601
21332
|
type LiveCheck = {
|
|
21602
21333
|
first: PageFacts;
|
|
@@ -21608,8 +21339,6 @@ type LiveCheck = {
|
|
|
21608
21339
|
}[];
|
|
21609
21340
|
last: PageFacts | null;
|
|
21610
21341
|
};
|
|
21611
|
-
//#endregion
|
|
21612
|
-
//#region packages/core/src/commands/types.d.ts
|
|
21613
21342
|
declare const COMMANDS: {
|
|
21614
21343
|
readonly report: {
|
|
21615
21344
|
readonly where: "anywhere";
|
|
@@ -21694,8 +21423,22 @@ type CommandDeps = {
|
|
|
21694
21423
|
analytics?: AnalyticsAccess;
|
|
21695
21424
|
audit?: AuditAccess;
|
|
21696
21425
|
week?: () => Promise<WeekData | null>;
|
|
21426
|
+
startAudit?: (site: string) => Promise<StartAudit>;
|
|
21427
|
+
issues?: IssueStore;
|
|
21697
21428
|
now?: () => Date;
|
|
21698
21429
|
};
|
|
21430
|
+
type StartAudit = {
|
|
21431
|
+
status: 'added' | 'exists' | 'pending';
|
|
21432
|
+
} | {
|
|
21433
|
+
status: 'checkout';
|
|
21434
|
+
url: string;
|
|
21435
|
+
price: number;
|
|
21436
|
+
} | {
|
|
21437
|
+
status: 'full';
|
|
21438
|
+
limit: number;
|
|
21439
|
+
} | {
|
|
21440
|
+
status: 'payment_failed';
|
|
21441
|
+
};
|
|
21699
21442
|
type PageMarkdown = {
|
|
21700
21443
|
markdown: string;
|
|
21701
21444
|
characters: number;
|
|
@@ -21703,8 +21446,6 @@ type PageMarkdown = {
|
|
|
21703
21446
|
} | {
|
|
21704
21447
|
error: string;
|
|
21705
21448
|
};
|
|
21706
|
-
//#endregion
|
|
21707
|
-
//#region packages/core/src/commands/week.d.ts
|
|
21708
21449
|
type WeekSite = {
|
|
21709
21450
|
property: string;
|
|
21710
21451
|
link: string | null;
|
|
@@ -21740,8 +21481,6 @@ type WeekData = {
|
|
|
21740
21481
|
account: string;
|
|
21741
21482
|
sites: WeekSite[];
|
|
21742
21483
|
};
|
|
21743
|
-
//#endregion
|
|
21744
|
-
//#region packages/core/src/cloud.d.ts
|
|
21745
21484
|
export declare const CLOUD_URL = "https://seoskill.dev";
|
|
21746
21485
|
type Pending = {
|
|
21747
21486
|
device: string;
|
|
@@ -21782,8 +21521,6 @@ export declare function pendingCloudLogin(): Pending | null;
|
|
|
21782
21521
|
export declare function finishCloudLogin(): Promise<'linked' | 'pending' | 'expired'>;
|
|
21783
21522
|
export declare function cloudLogout(): Promise<boolean>;
|
|
21784
21523
|
export declare function openCloudLink(url: string): Promise<void>;
|
|
21785
|
-
//#endregion
|
|
21786
|
-
//#region packages/core/src/storage/config.d.ts
|
|
21787
21524
|
export type TokenStorageMode = 'keychain' | 'file';
|
|
21788
21525
|
export type TokenStorageStatus = {
|
|
21789
21526
|
configured: TokenStorageMode;
|
|
@@ -21821,8 +21558,6 @@ export declare function getPrivacySnapshot(): Array<{
|
|
|
21821
21558
|
mode: string;
|
|
21822
21559
|
sizeBytes: number;
|
|
21823
21560
|
}>;
|
|
21824
|
-
//#endregion
|
|
21825
|
-
//#region packages/core/src/gsc/auth/types.d.ts
|
|
21826
21561
|
interface OAuthClientConfig {
|
|
21827
21562
|
clientId: string;
|
|
21828
21563
|
clientSecret: string;
|
|
@@ -21831,8 +21566,6 @@ interface OAuthClientConfig {
|
|
|
21831
21566
|
interface GoogleAccessTokenClient {
|
|
21832
21567
|
getAccessToken(): Promise<string>;
|
|
21833
21568
|
}
|
|
21834
|
-
//#endregion
|
|
21835
|
-
//#region packages/core/src/gsc/auth/service-account.d.ts
|
|
21836
21569
|
type ServiceAccountSource = 'environment-json' | 'environment-file' | 'application-default-file';
|
|
21837
21570
|
export type ServiceAccountConfig = {
|
|
21838
21571
|
clientEmail: string;
|
|
@@ -21856,8 +21589,6 @@ export declare class ServiceAccountAccessTokenClient implements GoogleAccessToke
|
|
|
21856
21589
|
constructor(config: ServiceAccountConfig, fetchImpl?: typeof fetch);
|
|
21857
21590
|
getAccessToken(): Promise<string>;
|
|
21858
21591
|
}
|
|
21859
|
-
//#endregion
|
|
21860
|
-
//#region packages/core/src/gsc/auth/authorized-client.d.ts
|
|
21861
21592
|
export declare function createAuthorizedClient(accountEmail?: string): Promise<{
|
|
21862
21593
|
client: GoogleAccessTokenClient;
|
|
21863
21594
|
tokens: StoredTokens;
|
|
@@ -21884,25 +21615,17 @@ export declare function authStatus(): Promise<{
|
|
|
21884
21615
|
identity?: string;
|
|
21885
21616
|
serviceAccount: ServiceAccountStatus;
|
|
21886
21617
|
}>;
|
|
21887
|
-
//#endregion
|
|
21888
|
-
//#region packages/core/src/gsc/auth/client-config.d.ts
|
|
21889
21618
|
export declare function getAuthModeStatus(): {
|
|
21890
21619
|
sharedConfigured: boolean;
|
|
21891
21620
|
byoConfigured: boolean;
|
|
21892
21621
|
};
|
|
21893
21622
|
export declare function getClientConfig(source?: OAuthClientConfig['source']): OAuthClientConfig | undefined;
|
|
21894
21623
|
export declare function missingOAuthClientMessage(source: OAuthClientConfig['source']): string;
|
|
21895
|
-
//#endregion
|
|
21896
|
-
//#region packages/core/src/gsc/auth/loopback.d.ts
|
|
21897
21624
|
export declare function missingSharedClientLoginMessage(): string;
|
|
21898
21625
|
export declare function loginWithLoopback(clientConfig?: OAuthClientConfig | undefined): Promise<StoredTokens>;
|
|
21899
|
-
//#endregion
|
|
21900
|
-
//#region packages/core/src/gsc/client/fetch.d.ts
|
|
21901
21626
|
export declare const LOCAL_SIGN_IN: {
|
|
21902
21627
|
signIn: string;
|
|
21903
21628
|
};
|
|
21904
|
-
//#endregion
|
|
21905
|
-
//#region packages/core/src/commands-node.d.ts
|
|
21906
21629
|
export declare function nodeCommandDeps(options: {
|
|
21907
21630
|
call: Caller;
|
|
21908
21631
|
account?: string;
|
|
@@ -21924,8 +21647,6 @@ export declare function resolveLocalSite(site: string, options?: {
|
|
|
21924
21647
|
}): Promise<string>;
|
|
21925
21648
|
export declare function localError(error: unknown): unknown;
|
|
21926
21649
|
export declare function localGoogleFetch(account?: string): Promise<GoogleFetch>;
|
|
21927
|
-
//#endregion
|
|
21928
|
-
//#region packages/core/src/storage/sqlite.d.ts
|
|
21929
21650
|
type TransactionFunction = (...params: never[]) => unknown;
|
|
21930
21651
|
declare class Statement {
|
|
21931
21652
|
private readonly statement;
|
|
@@ -21950,8 +21671,6 @@ declare namespace SqliteDatabase {
|
|
|
21950
21671
|
lastInsertRowid: number | bigint;
|
|
21951
21672
|
};
|
|
21952
21673
|
}
|
|
21953
|
-
//#endregion
|
|
21954
|
-
//#region packages/core/src/storage/database.d.ts
|
|
21955
21674
|
export declare function ensurePrivateDatabaseFiles(path: string): void;
|
|
21956
21675
|
export declare function getDb(): SqliteDatabase.Database;
|
|
21957
21676
|
export declare function cacheDb(): SqliteDatabase.Database;
|
|
@@ -21963,8 +21682,6 @@ export declare function checkDatabaseReadiness(): {
|
|
|
21963
21682
|
export declare function hashKey(parts: unknown[]): string;
|
|
21964
21683
|
export declare function getCacheStats(): CacheStats;
|
|
21965
21684
|
export declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'dataforseo' | 'ahrefs' | 'clicky' | 'http', olderThanMs?: number): number;
|
|
21966
|
-
//#endregion
|
|
21967
|
-
//#region packages/core/src/doctor.d.ts
|
|
21968
21685
|
export type DoctorCheck = {
|
|
21969
21686
|
id: string;
|
|
21970
21687
|
label: string;
|
|
@@ -21980,8 +21697,6 @@ export declare function runDoctor(dependencies?: DoctorDependencies): Promise<{
|
|
|
21980
21697
|
generatedAt: string;
|
|
21981
21698
|
checks: DoctorCheck[];
|
|
21982
21699
|
}>;
|
|
21983
|
-
//#endregion
|
|
21984
|
-
//#region packages/core/src/export/csv.d.ts
|
|
21985
21700
|
export type CsvValue = string | number | boolean | null | undefined;
|
|
21986
21701
|
export type CsvRow = Record<string, CsvValue>;
|
|
21987
21702
|
export type CsvFile = {
|
|
@@ -21997,8 +21712,6 @@ export declare function refreshPrioritiesCsvFiles(report: WorkflowReport<{
|
|
|
21997
21712
|
warnings: string[];
|
|
21998
21713
|
diagnosis: DiagnosePropertyReport;
|
|
21999
21714
|
}>): CsvFile[];
|
|
22000
|
-
//#endregion
|
|
22001
|
-
//#region packages/core/src/export/update-postmortem.d.ts
|
|
22002
21715
|
type PostmortemCsvReport = WorkflowReport<{
|
|
22003
21716
|
update: {
|
|
22004
21717
|
attribution: string;
|
|
@@ -22077,8 +21790,6 @@ type SegmentItem = {
|
|
|
22077
21790
|
positionDelta: number | null;
|
|
22078
21791
|
};
|
|
22079
21792
|
export declare function updatePostmortemCsvFiles(report: PostmortemCsvReport): CsvFile[];
|
|
22080
|
-
//#endregion
|
|
22081
|
-
//#region packages/core/src/ga4/matching.d.ts
|
|
22082
21793
|
export type Ga4WebStreamCandidate = {
|
|
22083
21794
|
account: string;
|
|
22084
21795
|
property: string;
|
|
@@ -22092,8 +21803,6 @@ export type Ga4WebStreamMatch = Ga4WebStreamCandidate & {
|
|
|
22092
21803
|
};
|
|
22093
21804
|
export declare function matchGa4WebStreams(site: string, candidates: Ga4WebStreamCandidate[]): Ga4WebStreamMatch[];
|
|
22094
21805
|
export declare function ga4MatchReason(match: Ga4WebStreamMatch, site: string): string;
|
|
22095
|
-
//#endregion
|
|
22096
|
-
//#region packages/core/src/gsc/dates.d.ts
|
|
22097
21806
|
export declare const GSC_TIME_ZONE = "America/Los_Angeles";
|
|
22098
21807
|
export declare const GSC_FINAL_DATA_LAG_DAYS = 4;
|
|
22099
21808
|
export declare function shiftIsoDate(date: string, days: number): string;
|
|
@@ -22102,8 +21811,6 @@ export declare function finalGscDateRange(days?: number, now?: Date): {
|
|
|
22102
21811
|
startDate: string;
|
|
22103
21812
|
endDate: string;
|
|
22104
21813
|
};
|
|
22105
|
-
//#endregion
|
|
22106
|
-
//#region packages/core/src/gsc/local-export.d.ts
|
|
22107
21814
|
export declare const DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT = 5000;
|
|
22108
21815
|
export declare const MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT = 100000;
|
|
22109
21816
|
export declare const MAX_SEARCH_CONSOLE_EXPORT_FILES = 20;
|
|
@@ -22163,8 +21870,6 @@ export declare function loadSearchConsoleExport(input: {
|
|
|
22163
21870
|
now?: Date;
|
|
22164
21871
|
exportedAt?: Date;
|
|
22165
21872
|
}): Promise<SearchConsoleExportEvidence>;
|
|
22166
|
-
//#endregion
|
|
22167
|
-
//#region packages/core/src/gsc/local-export-reconcile.d.ts
|
|
22168
21873
|
export declare const DEFAULT_UNREACHED_PAGE_LIMIT = 100;
|
|
22169
21874
|
export type SearchConsoleExportReconciliation = {
|
|
22170
21875
|
joinBasis: 'path';
|
|
@@ -22182,25 +21887,15 @@ export declare function reconcileExportPagesWithCrawl(input: {
|
|
|
22182
21887
|
crawlOrigin: string;
|
|
22183
21888
|
limit?: number;
|
|
22184
21889
|
}): SearchConsoleExportReconciliation;
|
|
22185
|
-
//#endregion
|
|
22186
|
-
//#region packages/core/src/gsc/property-url.d.ts
|
|
22187
21890
|
export declare function normalizeHttpUrl(value: string): string;
|
|
22188
21891
|
export declare function assertUrlMatchesGscProperty(property: string, value: string): string;
|
|
22189
|
-
//#endregion
|
|
22190
|
-
//#region packages/core/src/http/read-json.d.ts
|
|
22191
21892
|
export declare function readJson<T = unknown>(response: Response, label: string, options?: {
|
|
22192
21893
|
maxBytes?: number;
|
|
22193
21894
|
}): Promise<T>;
|
|
22194
21895
|
export declare function readJsonOrUndefined<T = unknown>(response: Response, label: string): Promise<T | undefined>;
|
|
22195
|
-
//#endregion
|
|
22196
|
-
//#region packages/core/src/logger.d.ts
|
|
22197
21896
|
export declare function createLogger(runId: string): pino.Logger;
|
|
22198
21897
|
export declare function makeRunId(): string;
|
|
22199
|
-
//#endregion
|
|
22200
|
-
//#region packages/core/src/markdown.d.ts
|
|
22201
21898
|
export declare function renderPresentationTablesMarkdown(tables: PresentationTable[]): string[];
|
|
22202
|
-
//#endregion
|
|
22203
|
-
//#region packages/core/src/paths.d.ts
|
|
22204
21899
|
export interface SeoCliPaths {
|
|
22205
21900
|
configDir: string;
|
|
22206
21901
|
cacheDir: string;
|
|
@@ -22224,12 +21919,8 @@ export declare function migrateLegacyMacConfig(input?: SeoCliPathOptions): void;
|
|
|
22224
21919
|
export declare function getSeoCliPaths(): SeoCliPaths;
|
|
22225
21920
|
export declare function ensureSeoCliDirs(): SeoCliPaths;
|
|
22226
21921
|
export declare function fileSize(path: string): number;
|
|
22227
|
-
//#endregion
|
|
22228
|
-
//#region packages/core/src/phrasing.d.ts
|
|
22229
21922
|
export declare function plural(count: number, singular: string, pluralLabel?: string): string;
|
|
22230
21923
|
export declare function countLabel(count: number, singular: string, pluralLabel?: string): string;
|
|
22231
|
-
//#endregion
|
|
22232
|
-
//#region packages/core/src/provider-extensions/actions.d.ts
|
|
22233
21924
|
export type ProviderActionResult = {
|
|
22234
21925
|
provider: string;
|
|
22235
21926
|
action: string;
|
|
@@ -22245,13 +21936,9 @@ export declare function runProviderExtensionAction(input: {
|
|
|
22245
21936
|
refresh?: boolean;
|
|
22246
21937
|
runtime?: ProviderRuntimeOptions;
|
|
22247
21938
|
}): Promise<ProviderActionResult>;
|
|
22248
|
-
//#endregion
|
|
22249
|
-
//#region packages/core/src/provider-extensions/connections.d.ts
|
|
22250
21939
|
export declare function readProviderExtensionAccount(providerIdValue: string): Record<string, string>;
|
|
22251
21940
|
export declare function writeProviderExtensionAccount(providerIdValue: string, account: Readonly<Record<string, string>>): Record<string, string>;
|
|
22252
21941
|
export declare function deleteProviderExtensionAccount(providerIdValue: string): void;
|
|
22253
|
-
//#endregion
|
|
22254
|
-
//#region packages/core/src/provider-extensions/credentials.d.ts
|
|
22255
21942
|
export declare function readProviderExtensionCredentials(input: {
|
|
22256
21943
|
providerId: string;
|
|
22257
21944
|
account: Readonly<Record<string, string>>;
|
|
@@ -22267,8 +21954,6 @@ export declare function deleteProviderExtensionCredentials(input: {
|
|
|
22267
21954
|
providerId: string;
|
|
22268
21955
|
account: Readonly<Record<string, string>>;
|
|
22269
21956
|
}): Promise<void>;
|
|
22270
|
-
//#endregion
|
|
22271
|
-
//#region packages/core/src/provider-extensions/discovery.d.ts
|
|
22272
21957
|
export declare function listInstalledProviderExtensions(): Promise<{
|
|
22273
21958
|
schemaVersion: 1;
|
|
22274
21959
|
installed: {
|
|
@@ -22307,8 +21992,6 @@ export declare function describeInstalledProviderExtension(id: string): Promise<
|
|
|
22307
21992
|
cacheTtlMs: number;
|
|
22308
21993
|
}[];
|
|
22309
21994
|
}>;
|
|
22310
|
-
//#endregion
|
|
22311
|
-
//#region packages/core/src/provider-extensions/installer.d.ts
|
|
22312
21995
|
declare const providerPackageReleaseSchema: z.ZodObject<{
|
|
22313
21996
|
package: z.ZodString;
|
|
22314
21997
|
version: z.ZodString;
|
|
@@ -22336,14 +22019,10 @@ export type ProviderInstallerOptions = {
|
|
|
22336
22019
|
export declare function inspectProviderPackage(value: string, options?: ProviderInstallerOptions): Promise<ProviderPackageRelease>;
|
|
22337
22020
|
export declare function installProviderPackage(input: ProviderPackageRelease, options?: ProviderInstallerOptions): Promise<InstalledProviderPackage>;
|
|
22338
22021
|
export declare function uninstallProviderExtension(id: string, options?: ProviderInstallerOptions): Promise<InstalledProviderPackage | undefined>;
|
|
22339
|
-
//#endregion
|
|
22340
|
-
//#region packages/core/src/provider-extensions/store.d.ts
|
|
22341
22022
|
export declare function readInstalledProviderPackages(): InstalledProviderPackages;
|
|
22342
22023
|
export declare function writeInstalledProviderPackages(value: InstalledProviderPackages): InstalledProviderPackages;
|
|
22343
22024
|
export declare function saveInstalledProviderPackage(value: InstalledProviderPackage): InstalledProviderPackages;
|
|
22344
22025
|
export declare function removeInstalledProviderPackage(id: string): InstalledProviderPackage | undefined;
|
|
22345
|
-
//#endregion
|
|
22346
|
-
//#region packages/core/src/providers/ahrefs/client.d.ts
|
|
22347
22026
|
export type AhrefsLimitsAndUsage = {
|
|
22348
22027
|
provider: 'ahrefs';
|
|
22349
22028
|
apiVersion: 3;
|
|
@@ -22383,8 +22062,6 @@ export declare class AhrefsClient {
|
|
|
22383
22062
|
private limitsAndUsageForKey;
|
|
22384
22063
|
limitsAndUsage(): Promise<AhrefsLimitsAndUsage>;
|
|
22385
22064
|
}
|
|
22386
|
-
//#endregion
|
|
22387
|
-
//#region packages/core/src/providers/ahrefs/credentials.d.ts
|
|
22388
22065
|
export declare const AHREFS_API_KEY_ENV = "SEO_AHREFS_API_KEY";
|
|
22389
22066
|
export declare const AHREFS_API_KEY_SECRET: "ahrefs-api-key";
|
|
22390
22067
|
declare const store: {
|
|
@@ -22406,8 +22083,6 @@ export declare function readAhrefsApiKey(input?: {
|
|
|
22406
22083
|
source: ProviderSecretSource;
|
|
22407
22084
|
} | undefined>;
|
|
22408
22085
|
export declare function deleteAhrefsApiKey(): Promise<void>;
|
|
22409
|
-
//#endregion
|
|
22410
|
-
//#region packages/core/src/providers/bing/credentials.d.ts
|
|
22411
22086
|
export declare const BING_API_KEY_ENV = "SEO_BING_API_KEY";
|
|
22412
22087
|
export declare const BING_API_KEY_SECRET: "bing-api-key";
|
|
22413
22088
|
export declare function writeBingApiKey(value: string): Promise<"file" | "keychain">;
|
|
@@ -22418,8 +22093,6 @@ export declare function readBingApiKey(input?: {
|
|
|
22418
22093
|
source: ProviderSecretSource;
|
|
22419
22094
|
} | undefined>;
|
|
22420
22095
|
export declare function deleteBingApiKey(): Promise<void>;
|
|
22421
|
-
//#endregion
|
|
22422
|
-
//#region packages/core/src/providers/dataforseo/credentials.d.ts
|
|
22423
22096
|
export declare const DATAFORSEO_LOGIN_ENV = "SEO_DATAFORSEO_LOGIN";
|
|
22424
22097
|
export declare const DATAFORSEO_PASSWORD_ENV = "SEO_DATAFORSEO_PASSWORD";
|
|
22425
22098
|
export declare const DATAFORSEO_CREDENTIAL_SECRET: "dataforseo-credentials";
|
|
@@ -22436,8 +22109,6 @@ export declare function readDataForSeoCredentials(input?: {
|
|
|
22436
22109
|
env?: NodeJS.ProcessEnv;
|
|
22437
22110
|
}): Promise<StoredDataForSeoCredentials | undefined>;
|
|
22438
22111
|
export declare function deleteDataForSeoCredentials(): Promise<void>;
|
|
22439
|
-
//#endregion
|
|
22440
|
-
//#region packages/core/src/providers/dataforseo/client-types.d.ts
|
|
22441
22112
|
type DataForSeoAccountSnapshot = {
|
|
22442
22113
|
provider: 'dataforseo';
|
|
22443
22114
|
login: string;
|
|
@@ -22457,8 +22128,6 @@ type DataForSeoClientOptions = {
|
|
|
22457
22128
|
maxResponseBytes?: number;
|
|
22458
22129
|
now?: () => Date;
|
|
22459
22130
|
};
|
|
22460
|
-
//#endregion
|
|
22461
|
-
//#region packages/core/src/providers/dataforseo/client.d.ts
|
|
22462
22131
|
export declare class DataForSeoClient {
|
|
22463
22132
|
private readonly fetch;
|
|
22464
22133
|
private readonly credentials;
|
|
@@ -22472,8 +22141,6 @@ export declare class DataForSeoClient {
|
|
|
22472
22141
|
private userDataForCredentials;
|
|
22473
22142
|
userData(): Promise<DataForSeoAccountSnapshot>;
|
|
22474
22143
|
}
|
|
22475
|
-
//#endregion
|
|
22476
|
-
//#region packages/core/src/providers/errors.d.ts
|
|
22477
22144
|
export type ProviderErrorCode = 'configuration' | 'authentication' | 'rate-limit' | 'timeout' | 'response-too-large' | 'invalid-response' | 'remote-error';
|
|
22478
22145
|
export declare const PROVIDER_ERROR_CODES: Record<ProviderErrorCode, SeoErrorCode>;
|
|
22479
22146
|
export declare class ProviderError extends Error {
|
|
@@ -22493,8 +22160,6 @@ export declare class ProviderError extends Error {
|
|
|
22493
22160
|
});
|
|
22494
22161
|
toJSON(): Record<string, unknown>;
|
|
22495
22162
|
}
|
|
22496
|
-
//#endregion
|
|
22497
|
-
//#region packages/core/src/robots-directives.d.ts
|
|
22498
22163
|
export type RobotsDirective = 'noindex' | 'nofollow' | 'nosnippet';
|
|
22499
22164
|
export type SnippetControlEvidence = {
|
|
22500
22165
|
source: 'meta-robots' | 'x-robots-tag';
|
|
@@ -22521,8 +22186,6 @@ export declare function effectiveSnippetControl(input: {
|
|
|
22521
22186
|
metaRobots?: string | string[];
|
|
22522
22187
|
xRobotsTag?: string | string[];
|
|
22523
22188
|
}): EffectiveSnippetControl;
|
|
22524
|
-
//#endregion
|
|
22525
|
-
//#region packages/core/src/runtime/interfaces.d.ts
|
|
22526
22189
|
export interface CredentialsProvider {
|
|
22527
22190
|
getGoogleOAuthClient(): OAuthClientConfig | undefined;
|
|
22528
22191
|
readGoogleTokens(): Promise<StoredTokens | undefined>;
|
|
@@ -22550,8 +22213,50 @@ export declare class JsonFileStorageAdapter implements StorageAdapter {
|
|
|
22550
22213
|
private writeAll;
|
|
22551
22214
|
}
|
|
22552
22215
|
export declare const localCredentialsProvider: LocalCredentialsProvider;
|
|
22553
|
-
|
|
22554
|
-
|
|
22216
|
+
type SiteCheckGroup = 'pages' | 'copy' | 'design' | 'data';
|
|
22217
|
+
type SiteCheckLevel = 'fail' | 'warn';
|
|
22218
|
+
export declare const SITE_CHECK_MAX_PAGES = 10000;
|
|
22219
|
+
export declare const SITE_CHECK_MAX_ISSUES = 1000;
|
|
22220
|
+
export declare const SITEMAP_FILE_URL_LIMIT = 5000;
|
|
22221
|
+
export type BuiltSite = {
|
|
22222
|
+
origin: string;
|
|
22223
|
+
files: readonly string[];
|
|
22224
|
+
readText: (path: string) => Promise<string>;
|
|
22225
|
+
readBytes: (path: string) => Promise<Uint8Array>;
|
|
22226
|
+
allowWords?: readonly string[];
|
|
22227
|
+
sources?: {
|
|
22228
|
+
files: readonly string[];
|
|
22229
|
+
readText: (path: string) => Promise<string>;
|
|
22230
|
+
};
|
|
22231
|
+
now?: Date;
|
|
22232
|
+
};
|
|
22233
|
+
export type SiteCheckIssue = {
|
|
22234
|
+
rule: string;
|
|
22235
|
+
group: SiteCheckGroup;
|
|
22236
|
+
level: SiteCheckLevel;
|
|
22237
|
+
file: string;
|
|
22238
|
+
found: string;
|
|
22239
|
+
fix: string;
|
|
22240
|
+
};
|
|
22241
|
+
export type SiteCheckResult = {
|
|
22242
|
+
status: 'passed' | 'failed' | 'partial';
|
|
22243
|
+
origin: string;
|
|
22244
|
+
pagesFound: number;
|
|
22245
|
+
pagesChecked: number;
|
|
22246
|
+
failures: number;
|
|
22247
|
+
warnings: number;
|
|
22248
|
+
rules: Array<{
|
|
22249
|
+
rule: string;
|
|
22250
|
+
group: SiteCheckGroup;
|
|
22251
|
+
level: SiteCheckLevel;
|
|
22252
|
+
count: number;
|
|
22253
|
+
fix: string;
|
|
22254
|
+
}>;
|
|
22255
|
+
issues: SiteCheckIssue[];
|
|
22256
|
+
issuesOmitted: number;
|
|
22257
|
+
};
|
|
22258
|
+
export declare function builtPagePath(file: string): string;
|
|
22259
|
+
export declare function checkBuiltSite(site: BuiltSite): Promise<SiteCheckResult>;
|
|
22555
22260
|
export declare class SessionLedger {
|
|
22556
22261
|
private readonly entries;
|
|
22557
22262
|
private gscCalls;
|
|
@@ -22560,8 +22265,6 @@ export declare class SessionLedger {
|
|
|
22560
22265
|
addGsc(calls: number, rows: number): void;
|
|
22561
22266
|
summary(): string;
|
|
22562
22267
|
}
|
|
22563
|
-
//#endregion
|
|
22564
|
-
//#region packages/core/src/storage/log-retention.d.ts
|
|
22565
22268
|
export declare const LOG_MAX_FILE_BYTES: number;
|
|
22566
22269
|
export declare const LOG_MAX_TOTAL_BYTES: number;
|
|
22567
22270
|
export declare const LOG_MAX_AGE_MS: number;
|
|
@@ -22577,11 +22280,7 @@ export declare function pruneLogs(options?: {
|
|
|
22577
22280
|
maxTotalBytes?: number;
|
|
22578
22281
|
maxAgeMs?: number;
|
|
22579
22282
|
}): LogPruneResult;
|
|
22580
|
-
//#endregion
|
|
22581
|
-
//#region packages/core/src/storage/reset.d.ts
|
|
22582
22283
|
export declare function resetSeoData(): Promise<void>;
|
|
22583
|
-
//#endregion
|
|
22584
|
-
//#region packages/core/src/telemetry-failures.d.ts
|
|
22585
22284
|
export declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "data", "database", "filesystem", "internal", "unknown"];
|
|
22586
22285
|
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"];
|
|
22587
22286
|
export declare const TELEMETRY_FAILURE_CONTEXTS: readonly ["crawl_pages_run_id_url"];
|
|
@@ -22597,13 +22296,9 @@ type TelemetryFailureClassification = {
|
|
|
22597
22296
|
};
|
|
22598
22297
|
export declare function classifyTelemetryFailure(error: unknown): TelemetryFailureClassification;
|
|
22599
22298
|
export declare function isTelemetryOperation(value: unknown): value is TelemetryOperation;
|
|
22600
|
-
//#endregion
|
|
22601
|
-
//#region packages/core/src/telemetry-shared.d.ts
|
|
22602
22299
|
export declare const TELEMETRY_ENDPOINT = "https://seoskill.dev/api/t";
|
|
22603
22300
|
export declare const TELEMETRY_SCHEMA_VERSION = 2;
|
|
22604
22301
|
export declare function isoWeek(date: Date): string;
|
|
22605
|
-
//#endregion
|
|
22606
|
-
//#region packages/core/src/telemetry.d.ts
|
|
22607
22302
|
export declare const TELEMETRY_TIMEOUT_MS = 2000;
|
|
22608
22303
|
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"];
|
|
22609
22304
|
export declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
|
|
@@ -22679,8 +22374,6 @@ export declare function trackTelemetryReportFailed(report: string, error: unknow
|
|
|
22679
22374
|
export declare function trackTelemetryCommandFailed(operation: string, error: unknown, options?: TelemetryOptions): void;
|
|
22680
22375
|
export declare function trackTelemetrySetupComplete(options?: TelemetryOptions): void;
|
|
22681
22376
|
export declare function telemetryErrorCategory(error: unknown): TelemetryErrorCategory;
|
|
22682
|
-
//#endregion
|
|
22683
|
-
//#region packages/core/src/update-notice.d.ts
|
|
22684
22377
|
export type UpdateNoticeOptions = {
|
|
22685
22378
|
argv?: string[];
|
|
22686
22379
|
cacheFile?: string;
|
|
@@ -22691,22 +22384,15 @@ export type UpdateNoticeOptions = {
|
|
|
22691
22384
|
};
|
|
22692
22385
|
export declare function isNewerVersion(current: string, latest: string): boolean;
|
|
22693
22386
|
export declare function updateNotice(options?: UpdateNoticeOptions): string | undefined;
|
|
22694
|
-
//#endregion
|
|
22695
|
-
//#region packages/core/src/updates/search-status.d.ts
|
|
22696
22387
|
export declare const INCIDENTS_URL = "https://status.search.google.com/incidents.json";
|
|
22697
22388
|
export declare function fetchSearchStatusIncidents(): Promise<SearchStatusIncident[]>;
|
|
22698
22389
|
export declare function listSearchUpdates(input?: {
|
|
22699
22390
|
product?: string;
|
|
22700
22391
|
limit?: number;
|
|
22701
22392
|
}): Promise<SearchUpdate[]>;
|
|
22702
|
-
//#endregion
|
|
22703
|
-
//#region packages/core/src/utils/time.d.ts
|
|
22704
22393
|
export declare function parseOlderThan(input?: string): number | undefined;
|
|
22705
22394
|
export declare function formatRelativeExpiry(expiresAt: number): string;
|
|
22706
22395
|
export declare function isoDate(daysAgo?: number): string;
|
|
22707
|
-
//#endregion
|
|
22708
|
-
//#region packages/core/src/version.d.ts
|
|
22709
22396
|
export declare const SEO_VERSION: string;
|
|
22710
|
-
//#endregion
|
|
22711
22397
|
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 };
|
|
22712
22398
|
//# sourceMappingURL=index.d.ts.map
|