seo 0.3.0 → 0.4.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 +10 -10
- package/README.md +38 -27
- package/SECURITY.md +2 -2
- package/dist/cli.js +85 -229
- package/dist/cli.js.map +1 -1
- package/dist/{dist-C9P8dY80.js → dist-Cv-Z5qD5.js} +1 -1
- package/dist/dist-VKoRyTMH.js +334 -0
- package/dist/dist-VKoRyTMH.js.map +1 -0
- package/dist/index.d.ts +506 -1657
- package/dist/index.js +11233 -14733
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +4992 -8873
- package/dist/mcp.js.map +1 -1
- package/dist/{package-7H_jIpAz.js → package-BfqlCbxN.js} +2 -2
- package/dist/{package-7H_jIpAz.js.map → package-BfqlCbxN.js.map} +1 -1
- package/evals/seo.json +2 -2
- package/package.json +5 -4
- package/skills/seo/SKILL.md +10 -11
- package/dist/dist-wSAqXmM1.js +0 -698
- package/dist/dist-wSAqXmM1.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -42,13 +42,6 @@ declare const tokenStoreSchema: z.ZodObject<{
|
|
|
42
42
|
type StoredTokenStore = z.infer<typeof tokenStoreSchema>;
|
|
43
43
|
//#endregion
|
|
44
44
|
//#region packages/core/src/types/config.d.ts
|
|
45
|
-
declare const siteSchema: z.ZodObject<{
|
|
46
|
-
siteUrl: z.ZodString;
|
|
47
|
-
displayName: z.ZodOptional<z.ZodString>;
|
|
48
|
-
permission: z.ZodOptional<z.ZodString>;
|
|
49
|
-
addedAt: z.ZodOptional<z.ZodNumber>;
|
|
50
|
-
isDefault: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
-
}, z.core.$strip>;
|
|
52
45
|
declare const providerPreferenceSchema: z.ZodEnum<{
|
|
53
46
|
cheap: "cheap";
|
|
54
47
|
authoritative: "authoritative";
|
|
@@ -69,102 +62,7 @@ declare const analyticsConnectionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
69
62
|
providerId: z.ZodString;
|
|
70
63
|
account: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
71
64
|
}, z.core.$strip>], "provider">;
|
|
72
|
-
declare const analyticsConnectionsSchema: z.ZodDefault<z.ZodObject<{
|
|
73
|
-
selected: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
74
|
-
google: "google";
|
|
75
|
-
clicky: "clicky";
|
|
76
|
-
}>, z.ZodString]>>;
|
|
77
|
-
google: z.ZodOptional<z.ZodObject<{
|
|
78
|
-
propertyId: z.ZodString;
|
|
79
|
-
}, z.core.$strip>>;
|
|
80
|
-
clicky: z.ZodOptional<z.ZodObject<{
|
|
81
|
-
siteId: z.ZodString;
|
|
82
|
-
}, z.core.$strip>>;
|
|
83
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
84
|
-
account: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
85
|
-
}, z.core.$strict>>>;
|
|
86
|
-
}, z.core.$strip>>;
|
|
87
|
-
declare const clientProfileSchema: z.ZodObject<{
|
|
88
|
-
id: z.ZodString;
|
|
89
|
-
name: z.ZodString;
|
|
90
|
-
siteUrl: z.ZodString;
|
|
91
|
-
startUrl: z.ZodOptional<z.ZodString>;
|
|
92
|
-
watchUrls: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
93
|
-
brandTerms: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
94
|
-
analytics: z.ZodDefault<z.ZodObject<{
|
|
95
|
-
selected: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
96
|
-
google: "google";
|
|
97
|
-
clicky: "clicky";
|
|
98
|
-
}>, z.ZodString]>>;
|
|
99
|
-
google: z.ZodOptional<z.ZodObject<{
|
|
100
|
-
propertyId: z.ZodString;
|
|
101
|
-
}, z.core.$strip>>;
|
|
102
|
-
clicky: z.ZodOptional<z.ZodObject<{
|
|
103
|
-
siteId: z.ZodString;
|
|
104
|
-
}, z.core.$strip>>;
|
|
105
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
106
|
-
account: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
107
|
-
}, z.core.$strict>>>;
|
|
108
|
-
}, z.core.$strip>>;
|
|
109
|
-
googleAccounts: z.ZodOptional<z.ZodObject<{
|
|
110
|
-
searchConsole: z.ZodOptional<z.ZodString>;
|
|
111
|
-
googleAnalytics: z.ZodOptional<z.ZodString>;
|
|
112
|
-
}, z.core.$strip>>;
|
|
113
|
-
technicalWeekday: z.ZodOptional<z.ZodNumber>;
|
|
114
|
-
isDefault: z.ZodOptional<z.ZodBoolean>;
|
|
115
|
-
createdAt: z.ZodNumber;
|
|
116
|
-
updatedAt: z.ZodNumber;
|
|
117
|
-
}, z.core.$strip>;
|
|
118
65
|
declare const configSchema: z.ZodObject<{
|
|
119
|
-
defaultSite: z.ZodOptional<z.ZodString>;
|
|
120
|
-
sites: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
121
|
-
siteUrl: z.ZodString;
|
|
122
|
-
displayName: z.ZodOptional<z.ZodString>;
|
|
123
|
-
permission: z.ZodOptional<z.ZodString>;
|
|
124
|
-
addedAt: z.ZodOptional<z.ZodNumber>;
|
|
125
|
-
isDefault: z.ZodOptional<z.ZodBoolean>;
|
|
126
|
-
}, z.core.$strip>>>;
|
|
127
|
-
clients: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
128
|
-
id: z.ZodString;
|
|
129
|
-
name: z.ZodString;
|
|
130
|
-
siteUrl: z.ZodString;
|
|
131
|
-
startUrl: z.ZodOptional<z.ZodString>;
|
|
132
|
-
watchUrls: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
133
|
-
brandTerms: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
134
|
-
analytics: z.ZodDefault<z.ZodObject<{
|
|
135
|
-
selected: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
136
|
-
google: "google";
|
|
137
|
-
clicky: "clicky";
|
|
138
|
-
}>, z.ZodString]>>;
|
|
139
|
-
google: z.ZodOptional<z.ZodObject<{
|
|
140
|
-
propertyId: z.ZodString;
|
|
141
|
-
}, z.core.$strip>>;
|
|
142
|
-
clicky: z.ZodOptional<z.ZodObject<{
|
|
143
|
-
siteId: z.ZodString;
|
|
144
|
-
}, z.core.$strip>>;
|
|
145
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
146
|
-
account: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
147
|
-
}, z.core.$strict>>>;
|
|
148
|
-
}, z.core.$strip>>;
|
|
149
|
-
googleAccounts: z.ZodOptional<z.ZodObject<{
|
|
150
|
-
searchConsole: z.ZodOptional<z.ZodString>;
|
|
151
|
-
googleAnalytics: z.ZodOptional<z.ZodString>;
|
|
152
|
-
}, z.core.$strip>>;
|
|
153
|
-
technicalWeekday: z.ZodOptional<z.ZodNumber>;
|
|
154
|
-
isDefault: z.ZodOptional<z.ZodBoolean>;
|
|
155
|
-
createdAt: z.ZodNumber;
|
|
156
|
-
updatedAt: z.ZodNumber;
|
|
157
|
-
}, z.core.$strip>>>;
|
|
158
|
-
analytics: z.ZodDefault<z.ZodObject<{
|
|
159
|
-
google: z.ZodDefault<z.ZodObject<{
|
|
160
|
-
defaultPropertyId: z.ZodOptional<z.ZodString>;
|
|
161
|
-
propertyMappings: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
162
|
-
siteUrl: z.ZodString;
|
|
163
|
-
propertyId: z.ZodString;
|
|
164
|
-
addedAt: z.ZodOptional<z.ZodNumber>;
|
|
165
|
-
}, z.core.$strip>>>;
|
|
166
|
-
}, z.core.$strip>>;
|
|
167
|
-
}, z.core.$strip>>;
|
|
168
66
|
providers: z.ZodDefault<z.ZodObject<{
|
|
169
67
|
dataForSeoLogin: z.ZodOptional<z.ZodString>;
|
|
170
68
|
dataForSeoPassword: z.ZodOptional<z.ZodString>;
|
|
@@ -181,11 +79,10 @@ declare const configSchema: z.ZodObject<{
|
|
|
181
79
|
sharedClientId: z.ZodOptional<z.ZodString>;
|
|
182
80
|
sharedClientSecret: z.ZodOptional<z.ZodString>;
|
|
183
81
|
}, z.core.$strip>>;
|
|
184
|
-
}, z.core.$
|
|
82
|
+
}, z.core.$loose>;
|
|
185
83
|
type AppConfig = z.infer<typeof configSchema>;
|
|
186
84
|
type AnalyticsConnection = z.infer<typeof analyticsConnectionSchema>;
|
|
187
85
|
type AnalyticsProvider = z.infer<typeof analyticsProviderSchema>;
|
|
188
|
-
type ClientProfile = z.infer<typeof clientProfileSchema>;
|
|
189
86
|
//#endregion
|
|
190
87
|
//#region packages/core/src/extract/canonical.d.ts
|
|
191
88
|
type CanonicalSource = 'html-head' | 'html-body' | 'http-header';
|
|
@@ -1074,7 +971,7 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
1074
971
|
readonly howToVerify: "Re-run the crawl with the same GSC property and review the query, sampled text, and any deliberate wording changes together.";
|
|
1075
972
|
readonly agentHints: {
|
|
1076
973
|
readonly evidenceFields: ["page.topQuery", "issue.evidence.missingTerms", "issue.evidence.coverage"];
|
|
1077
|
-
readonly suggestedCommands: ["seo crawl <url> --
|
|
974
|
+
readonly suggestedCommands: ["seo crawl <url> --site <site> --json"];
|
|
1078
975
|
};
|
|
1079
976
|
}, {
|
|
1080
977
|
readonly id: "image_missing_alt";
|
|
@@ -2516,91 +2413,6 @@ declare function contentOptimizationReport(input: {
|
|
|
2516
2413
|
js?: boolean | 'auto';
|
|
2517
2414
|
}): Promise<ContentOptimizationReport>;
|
|
2518
2415
|
//#endregion
|
|
2519
|
-
//#region packages/core/src/analyze/monitoring/sitemaps.d.ts
|
|
2520
|
-
type SitemapInvalidLoc = {
|
|
2521
|
-
sitemapUrl: string;
|
|
2522
|
-
kind: 'url' | 'sitemap';
|
|
2523
|
-
value: string;
|
|
2524
|
-
};
|
|
2525
|
-
type SitemapLastmodObservation = {
|
|
2526
|
-
sitemapUrl: string;
|
|
2527
|
-
kind: 'url' | 'sitemap';
|
|
2528
|
-
loc: string;
|
|
2529
|
-
value: string;
|
|
2530
|
-
};
|
|
2531
|
-
type SitemapDocument = {
|
|
2532
|
-
url: string;
|
|
2533
|
-
finalUrl?: string;
|
|
2534
|
-
redirected?: true;
|
|
2535
|
-
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
2536
|
-
status?: number;
|
|
2537
|
-
contentType?: string;
|
|
2538
|
-
compression: 'gzip' | 'none';
|
|
2539
|
-
bytes?: number;
|
|
2540
|
-
uncompressedBytes?: number;
|
|
2541
|
-
root?: 'urlset' | 'sitemapindex';
|
|
2542
|
-
warning?: string;
|
|
2543
|
-
};
|
|
2544
|
-
type SitemapFetchResult = {
|
|
2545
|
-
sitemapUrl: string;
|
|
2546
|
-
dataStatus: 'complete' | 'partial';
|
|
2547
|
-
urls: string[];
|
|
2548
|
-
nestedSitemaps: string[];
|
|
2549
|
-
source: {
|
|
2550
|
-
sitemapsFetched: number;
|
|
2551
|
-
urlLocs: number;
|
|
2552
|
-
sitemapLocs: number;
|
|
2553
|
-
duplicateUrlLocs: number;
|
|
2554
|
-
duplicateSitemapLocs: number;
|
|
2555
|
-
invalidLocs: {
|
|
2556
|
-
count: number;
|
|
2557
|
-
samples: SitemapInvalidLoc[];
|
|
2558
|
-
};
|
|
2559
|
-
lastmods: {
|
|
2560
|
-
trust: 'unverified';
|
|
2561
|
-
observed: number;
|
|
2562
|
-
parseable: number;
|
|
2563
|
-
malformed: {
|
|
2564
|
-
count: number;
|
|
2565
|
-
samples: SitemapLastmodObservation[];
|
|
2566
|
-
};
|
|
2567
|
-
future: {
|
|
2568
|
-
count: number;
|
|
2569
|
-
samples: SitemapLastmodObservation[];
|
|
2570
|
-
};
|
|
2571
|
-
};
|
|
2572
|
-
documents: SitemapDocument[];
|
|
2573
|
-
};
|
|
2574
|
-
truncation: {
|
|
2575
|
-
possiblyTruncated: boolean;
|
|
2576
|
-
urlLimitExceeded: boolean;
|
|
2577
|
-
nestedSitemapLimitExceeded: boolean;
|
|
2578
|
-
omittedUrlsAtLeast: number;
|
|
2579
|
-
unprocessedSitemaps: number;
|
|
2580
|
-
limits: {
|
|
2581
|
-
urls: number;
|
|
2582
|
-
sitemaps: number;
|
|
2583
|
-
};
|
|
2584
|
-
};
|
|
2585
|
-
warnings: string[];
|
|
2586
|
-
};
|
|
2587
|
-
type BoundedSitemapInventory = {
|
|
2588
|
-
urls: string[];
|
|
2589
|
-
truncation: {
|
|
2590
|
-
possiblyTruncated: boolean;
|
|
2591
|
-
sourceTruncated: boolean;
|
|
2592
|
-
inventoryLimitExceeded: boolean;
|
|
2593
|
-
omittedUrlsAtLeast: number;
|
|
2594
|
-
limit: number;
|
|
2595
|
-
};
|
|
2596
|
-
};
|
|
2597
|
-
declare function boundedSitemapInventory(results: Array<Pick<SitemapFetchResult, 'urls' | 'truncation'>>, limit: number): BoundedSitemapInventory;
|
|
2598
|
-
declare function fetchSitemapUrls(input: {
|
|
2599
|
-
sitemapUrl: string;
|
|
2600
|
-
limit?: number;
|
|
2601
|
-
maxNested?: number;
|
|
2602
|
-
}): Promise<SitemapFetchResult>;
|
|
2603
|
-
//#endregion
|
|
2604
2416
|
//#region packages/core/src/analyze/monitoring/types.d.ts
|
|
2605
2417
|
type CrawlPageSnapshot = {
|
|
2606
2418
|
url: string;
|
|
@@ -2829,242 +2641,91 @@ type CrawlRequestObservation = CrawlResponseObservation | {
|
|
|
2829
2641
|
error: string;
|
|
2830
2642
|
extraction: 'not-applicable';
|
|
2831
2643
|
};
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
urlCount: number;
|
|
2839
|
-
};
|
|
2840
|
-
type CrawlDiffItem = {
|
|
2841
|
-
url: string;
|
|
2842
|
-
kind: 'added' | 'removed' | 'changed';
|
|
2843
|
-
changes: string[];
|
|
2844
|
-
before?: Partial<CrawlPageSnapshot>;
|
|
2845
|
-
after?: Partial<CrawlPageSnapshot>;
|
|
2846
|
-
recommendation?: CrawlDiffRecommendation;
|
|
2847
|
-
};
|
|
2848
|
-
type CrawlDiffRecommendation = {
|
|
2849
|
-
severity: 'high' | 'medium' | 'low';
|
|
2850
|
-
category: 'status' | 'indexability' | 'canonical' | 'metadata' | 'content' | 'inventory';
|
|
2851
|
-
title: string;
|
|
2852
|
-
action: string;
|
|
2853
|
-
confidence: 'high' | 'medium' | 'low';
|
|
2644
|
+
//#endregion
|
|
2645
|
+
//#region packages/core/src/analyze/monitoring/sitemaps.d.ts
|
|
2646
|
+
type SitemapInvalidLoc = {
|
|
2647
|
+
sitemapUrl: string;
|
|
2648
|
+
kind: 'url' | 'sitemap';
|
|
2649
|
+
value: string;
|
|
2854
2650
|
};
|
|
2855
|
-
type
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
added: number;
|
|
2861
|
-
removed: number;
|
|
2862
|
-
changed: number;
|
|
2863
|
-
newErrors: number;
|
|
2864
|
-
indexabilityFlips: number;
|
|
2865
|
-
highPriorityRecommendations: number;
|
|
2866
|
-
};
|
|
2867
|
-
recommendations: Array<CrawlDiffRecommendation & {
|
|
2868
|
-
url: string;
|
|
2869
|
-
}>;
|
|
2870
|
-
items: CrawlDiffItem[];
|
|
2871
|
-
warnings: string[];
|
|
2651
|
+
type SitemapLastmodObservation = {
|
|
2652
|
+
sitemapUrl: string;
|
|
2653
|
+
kind: 'url' | 'sitemap';
|
|
2654
|
+
loc: string;
|
|
2655
|
+
value: string;
|
|
2872
2656
|
};
|
|
2873
|
-
type
|
|
2874
|
-
type IndexWatchChangeKind = 'baseline' | 'changed' | 'not-comparable' | 'recovery' | 'regression' | 'unchanged';
|
|
2875
|
-
type IndexWatchChange = {
|
|
2876
|
-
field: 'googleCanonical' | 'indexingState' | 'pageFetchState' | 'robotsTxtState' | 'userCanonical' | 'verdict';
|
|
2877
|
-
before?: string;
|
|
2878
|
-
after?: string;
|
|
2879
|
-
};
|
|
2880
|
-
type IndexWatchPrevious = {
|
|
2881
|
-
inspectedAt: string;
|
|
2882
|
-
verdict?: string;
|
|
2883
|
-
coverageState?: string;
|
|
2884
|
-
indexingState?: string;
|
|
2885
|
-
robotsTxtState?: string;
|
|
2886
|
-
pageFetchState?: string;
|
|
2887
|
-
googleCanonical?: string;
|
|
2888
|
-
userCanonical?: string;
|
|
2889
|
-
lastCrawlTime?: string;
|
|
2890
|
-
};
|
|
2891
|
-
type IndexWatchItem = {
|
|
2892
|
-
rootSite: string;
|
|
2893
|
-
property: string;
|
|
2657
|
+
type SitemapDocument = {
|
|
2894
2658
|
url: string;
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
issueCodes: IndexWatchIssueCode[];
|
|
2909
|
-
currentIssue: boolean;
|
|
2910
|
-
severity: 'high' | 'medium' | 'none';
|
|
2911
|
-
changes: IndexWatchChange[];
|
|
2912
|
-
changeKind: IndexWatchChangeKind;
|
|
2913
|
-
changed: boolean;
|
|
2914
|
-
regression: boolean;
|
|
2915
|
-
recovery: boolean;
|
|
2916
|
-
alert: boolean;
|
|
2917
|
-
errorCode?: string;
|
|
2918
|
-
errorMessage?: string;
|
|
2919
|
-
retryAt?: string;
|
|
2920
|
-
};
|
|
2921
|
-
type IndexWatchReport = {
|
|
2922
|
-
schemaVersion: 1;
|
|
2923
|
-
methodology: 'index-watch-v2';
|
|
2924
|
-
site: string;
|
|
2925
|
-
generatedAt: string;
|
|
2659
|
+
finalUrl?: string;
|
|
2660
|
+
redirected?: true;
|
|
2661
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
2662
|
+
status?: number;
|
|
2663
|
+
contentType?: string;
|
|
2664
|
+
compression: 'gzip' | 'none';
|
|
2665
|
+
bytes?: number;
|
|
2666
|
+
uncompressedBytes?: number;
|
|
2667
|
+
root?: 'urlset' | 'sitemapindex';
|
|
2668
|
+
warning?: string;
|
|
2669
|
+
};
|
|
2670
|
+
type SitemapFetchResult = {
|
|
2671
|
+
sitemapUrl: string;
|
|
2926
2672
|
dataStatus: 'complete' | 'partial';
|
|
2673
|
+
urls: string[];
|
|
2674
|
+
nestedSitemaps: string[];
|
|
2927
2675
|
source: {
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2676
|
+
sitemapsFetched: number;
|
|
2677
|
+
urlLocs: number;
|
|
2678
|
+
sitemapLocs: number;
|
|
2679
|
+
duplicateUrlLocs: number;
|
|
2680
|
+
duplicateSitemapLocs: number;
|
|
2681
|
+
invalidLocs: {
|
|
2682
|
+
count: number;
|
|
2683
|
+
samples: SitemapInvalidLoc[];
|
|
2684
|
+
};
|
|
2685
|
+
lastmods: {
|
|
2686
|
+
trust: 'unverified';
|
|
2687
|
+
observed: number;
|
|
2688
|
+
parseable: number;
|
|
2689
|
+
malformed: {
|
|
2690
|
+
count: number;
|
|
2691
|
+
samples: SitemapLastmodObservation[];
|
|
2692
|
+
};
|
|
2693
|
+
future: {
|
|
2694
|
+
count: number;
|
|
2695
|
+
samples: SitemapLastmodObservation[];
|
|
2696
|
+
};
|
|
2697
|
+
};
|
|
2698
|
+
documents: SitemapDocument[];
|
|
2932
2699
|
};
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
regressions: number;
|
|
2944
|
-
recoveries: number;
|
|
2945
|
-
alerts: number;
|
|
2700
|
+
truncation: {
|
|
2701
|
+
possiblyTruncated: boolean;
|
|
2702
|
+
urlLimitExceeded: boolean;
|
|
2703
|
+
nestedSitemapLimitExceeded: boolean;
|
|
2704
|
+
omittedUrlsAtLeast: number;
|
|
2705
|
+
unprocessedSitemaps: number;
|
|
2706
|
+
limits: {
|
|
2707
|
+
urls: number;
|
|
2708
|
+
sitemaps: number;
|
|
2709
|
+
};
|
|
2946
2710
|
};
|
|
2947
|
-
caveats: string[];
|
|
2948
2711
|
warnings: string[];
|
|
2949
|
-
items: IndexWatchItem[];
|
|
2950
|
-
};
|
|
2951
|
-
type IndexMonitorPropertyRun = {
|
|
2952
|
-
property: string;
|
|
2953
|
-
inventoryUrls: number;
|
|
2954
|
-
selectedUrls: number;
|
|
2955
|
-
attempted: number;
|
|
2956
|
-
inspected: number;
|
|
2957
|
-
failed: number;
|
|
2958
|
-
quotaBlocked: number;
|
|
2959
|
-
deferred: number;
|
|
2960
|
-
currentIssues: number;
|
|
2961
|
-
changed: number;
|
|
2962
|
-
regressions: number;
|
|
2963
|
-
recoveries: number;
|
|
2964
|
-
alerts: number;
|
|
2965
|
-
sampleUrls: string[];
|
|
2966
2712
|
};
|
|
2967
|
-
type
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
site: string;
|
|
2971
|
-
generatedAt: string;
|
|
2972
|
-
dataStatus: 'complete' | 'partial';
|
|
2973
|
-
source: {
|
|
2974
|
-
type: 'sitemap-url-inspection-indexed-snapshot';
|
|
2975
|
-
sitemaps: string[];
|
|
2976
|
-
maxUrls: number;
|
|
2977
|
-
dailyLimit: number;
|
|
2978
|
-
inspectLimit: number;
|
|
2979
|
-
staleAfterDays: number;
|
|
2980
|
-
failureRetryHours: number;
|
|
2713
|
+
type BoundedSitemapInventory = {
|
|
2714
|
+
urls: string[];
|
|
2715
|
+
truncation: {
|
|
2981
2716
|
possiblyTruncated: boolean;
|
|
2717
|
+
sourceTruncated: boolean;
|
|
2982
2718
|
inventoryLimitExceeded: boolean;
|
|
2983
2719
|
omittedUrlsAtLeast: number;
|
|
2984
|
-
|
|
2985
|
-
invalidUrls: number;
|
|
2986
|
-
};
|
|
2987
|
-
summary: {
|
|
2988
|
-
inventoryUrls: number;
|
|
2989
|
-
properties: number;
|
|
2990
|
-
dailyCapacity: number;
|
|
2991
|
-
neverAttempted: number;
|
|
2992
|
-
neverSucceeded: number;
|
|
2993
|
-
retryWaiting: number;
|
|
2994
|
-
fresh: number;
|
|
2995
|
-
stale: number;
|
|
2996
|
-
due: number;
|
|
2997
|
-
selected: number;
|
|
2998
|
-
unselectedDue: number;
|
|
2999
|
-
attempted: number;
|
|
3000
|
-
inspected: number;
|
|
3001
|
-
failed: number;
|
|
3002
|
-
quotaBlocked: number;
|
|
3003
|
-
deferred: number;
|
|
3004
|
-
currentIssues: number;
|
|
3005
|
-
changed: number;
|
|
3006
|
-
regressions: number;
|
|
3007
|
-
recoveries: number;
|
|
3008
|
-
alerts: number;
|
|
3009
|
-
skipped: number;
|
|
2720
|
+
limit: number;
|
|
3010
2721
|
};
|
|
3011
|
-
properties: IndexMonitorPropertyRun[];
|
|
3012
|
-
items: IndexWatchItem[];
|
|
3013
|
-
caveats: string[];
|
|
3014
|
-
warnings: string[];
|
|
3015
|
-
};
|
|
3016
|
-
type CrawlRunRow = {
|
|
3017
|
-
id: string;
|
|
3018
|
-
site_url: string;
|
|
3019
|
-
start_url: string;
|
|
3020
|
-
created_at: number;
|
|
3021
|
-
limit_count: number;
|
|
3022
|
-
url_count: number;
|
|
3023
|
-
};
|
|
3024
|
-
type CrawlPageRow = {
|
|
3025
|
-
run_id: string;
|
|
3026
|
-
url: string;
|
|
3027
|
-
final_url: string;
|
|
3028
|
-
status: number;
|
|
3029
|
-
title?: string | null;
|
|
3030
|
-
meta_description?: string | null;
|
|
3031
|
-
canonical?: string | null;
|
|
3032
|
-
meta_robots?: string | null;
|
|
3033
|
-
x_robots_tag?: string | null;
|
|
3034
|
-
h1?: string | null;
|
|
3035
|
-
indexable: number;
|
|
3036
|
-
word_count: number;
|
|
3037
|
-
content_hash: string;
|
|
3038
|
-
outgoing_internal_count: number;
|
|
3039
|
-
snapshot_json?: string | null;
|
|
3040
|
-
};
|
|
3041
|
-
type IndexWatchRow = {
|
|
3042
|
-
id?: string;
|
|
3043
|
-
root_site_url?: string | null;
|
|
3044
|
-
property_site_url?: string | null;
|
|
3045
|
-
verdict?: string | null;
|
|
3046
|
-
coverage_state?: string | null;
|
|
3047
|
-
indexing_state?: string | null;
|
|
3048
|
-
robots_txt_state?: string | null;
|
|
3049
|
-
page_fetch_state?: string | null;
|
|
3050
|
-
google_canonical?: string | null;
|
|
3051
|
-
user_canonical?: string | null;
|
|
3052
|
-
last_crawl_time?: string | null;
|
|
3053
|
-
error_code?: string | null;
|
|
3054
|
-
error_message?: string | null;
|
|
3055
|
-
inspection_status?: string | null;
|
|
3056
|
-
inspected_at?: number | null;
|
|
3057
|
-
};
|
|
3058
|
-
type LatestCrawlSummaryRow = CrawlRunRow & {
|
|
3059
|
-
status_errors: number;
|
|
3060
|
-
non_indexable: number;
|
|
3061
|
-
recommendation_count: number;
|
|
3062
|
-
high_recommendation_count: number;
|
|
3063
|
-
top_recommendation_url?: string | null;
|
|
3064
|
-
top_recommendation_title?: string | null;
|
|
3065
|
-
top_recommendation_action?: string | null;
|
|
3066
|
-
top_recommendation_severity?: string | null;
|
|
3067
2722
|
};
|
|
2723
|
+
declare function boundedSitemapInventory(results: Array<Pick<SitemapFetchResult, 'urls' | 'truncation'>>, limit: number): BoundedSitemapInventory;
|
|
2724
|
+
declare function fetchSitemapUrls(input: {
|
|
2725
|
+
sitemapUrl: string;
|
|
2726
|
+
limit?: number;
|
|
2727
|
+
maxNested?: number;
|
|
2728
|
+
}): Promise<SitemapFetchResult>;
|
|
3068
2729
|
//#endregion
|
|
3069
2730
|
//#region packages/core/src/analyze/crawler/crawl-skip-reasons.d.ts
|
|
3070
2731
|
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"];
|
|
@@ -3150,7 +2811,6 @@ type CrawlConfig = {
|
|
|
3150
2811
|
type CrawlConfigInput = Omit<Partial<CrawlConfig>, 'url' | 'js'> & {
|
|
3151
2812
|
url: string;
|
|
3152
2813
|
js?: JavaScriptRenderingInput;
|
|
3153
|
-
projectId?: string;
|
|
3154
2814
|
site?: string;
|
|
3155
2815
|
searchMetricsLimit?: number;
|
|
3156
2816
|
googleAnalyticsPropertyId?: string;
|
|
@@ -3350,7 +3010,6 @@ type CrawlAccessSummary = {
|
|
|
3350
3010
|
type CrawlReport = {
|
|
3351
3011
|
id: string;
|
|
3352
3012
|
definitionId: string;
|
|
3353
|
-
projectId?: string;
|
|
3354
3013
|
site?: string;
|
|
3355
3014
|
googleAnalyticsPropertyId?: string;
|
|
3356
3015
|
analyticsConnection?: AnalyticsConnection;
|
|
@@ -3403,7 +3062,6 @@ declare function createCrawlReport(input: {
|
|
|
3403
3062
|
additionalIssues?: CrawlIssue[];
|
|
3404
3063
|
linkGraph?: CrawlLinkGraph;
|
|
3405
3064
|
ai?: CrawlAiSignals;
|
|
3406
|
-
projectId?: string;
|
|
3407
3065
|
site?: string;
|
|
3408
3066
|
googleAnalyticsPropertyId?: string;
|
|
3409
3067
|
analyticsConnection?: AnalyticsConnection;
|
|
@@ -3419,469 +3077,17 @@ declare function createCrawlReport(input: {
|
|
|
3419
3077
|
}): CrawlReport;
|
|
3420
3078
|
declare function normalizeLoadedCrawlReport(report: CrawlReport): CrawlReport;
|
|
3421
3079
|
//#endregion
|
|
3422
|
-
//#region packages/core/src/analyze/crawler/affected-urls.d.ts
|
|
3423
|
-
type AffectedUrlFilters = {
|
|
3424
|
-
ruleId?: string;
|
|
3425
|
-
category?: string;
|
|
3426
|
-
severity?: string;
|
|
3427
|
-
limit?: number;
|
|
3428
|
-
};
|
|
3429
|
-
type AffectedUrl = {
|
|
3430
|
-
url: string;
|
|
3431
|
-
ruleId: RuleId;
|
|
3432
|
-
title: string;
|
|
3433
|
-
category: RuleCategory;
|
|
3434
|
-
severity: RuleSeverity;
|
|
3435
|
-
detail?: string;
|
|
3436
|
-
evidence?: Record<string, unknown>;
|
|
3437
|
-
clicks: number;
|
|
3438
|
-
impressions: number;
|
|
3439
|
-
sessions: number;
|
|
3440
|
-
};
|
|
3441
|
-
type AffectedUrlSelection = {
|
|
3442
|
-
totalMatchedRows: number;
|
|
3443
|
-
returnedRows: number;
|
|
3444
|
-
limit: number;
|
|
3445
|
-
truncated: boolean;
|
|
3446
|
-
};
|
|
3447
|
-
type AffectedUrlResult = {
|
|
3448
|
-
affectedUrls: AffectedUrl[];
|
|
3449
|
-
selection: AffectedUrlSelection;
|
|
3450
|
-
};
|
|
3451
|
-
declare function affectedUrls(report: CrawlReport, filters?: AffectedUrlFilters): AffectedUrl[];
|
|
3452
|
-
declare function selectAffectedUrls(report: CrawlReport, filters?: AffectedUrlFilters): AffectedUrlResult;
|
|
3453
|
-
//#endregion
|
|
3454
3080
|
//#region packages/core/src/analyze/crawler/audit.d.ts
|
|
3455
3081
|
declare function auditCrawlRequests(requests: CrawlRequestObservation[]): CrawlIssue[];
|
|
3456
3082
|
declare function auditCrawlPages(pages: CrawlPageSnapshot[], opts?: {
|
|
3457
3083
|
startUrl?: string;
|
|
3458
3084
|
}): CrawlIssue[];
|
|
3459
3085
|
//#endregion
|
|
3460
|
-
//#region packages/core/src/analyze/crawler/report-store.d.ts
|
|
3461
|
-
declare const CRAWL_REPORT_STORAGE_VERSION = 6;
|
|
3462
|
-
declare const AUTOMATIC_BASELINE_SITE_RETENTION = 2;
|
|
3463
|
-
declare const AUTOMATIC_BASELINE_TOTAL_RETENTION = 50;
|
|
3464
|
-
type CrawlReportSaveOptions = {
|
|
3465
|
-
retention?: 'saved' | 'baseline';
|
|
3466
|
-
};
|
|
3467
|
-
type CrawlReportMeta = {
|
|
3468
|
-
id: string;
|
|
3469
|
-
configHash: string;
|
|
3470
|
-
site?: string;
|
|
3471
|
-
url: string;
|
|
3472
|
-
status: CrawlReport['status'];
|
|
3473
|
-
totalPages: number;
|
|
3474
|
-
issueCount: number;
|
|
3475
|
-
createdAt: string;
|
|
3476
|
-
storageVersion: number;
|
|
3477
|
-
};
|
|
3478
|
-
type CrawlReportStorageEnvelope = {
|
|
3479
|
-
kind: 'seo.crawl_report';
|
|
3480
|
-
version: typeof CRAWL_REPORT_STORAGE_VERSION;
|
|
3481
|
-
savedAt: string;
|
|
3482
|
-
tenant?: {
|
|
3483
|
-
projectId?: string;
|
|
3484
|
-
site?: string;
|
|
3485
|
-
};
|
|
3486
|
-
report: CrawlReport;
|
|
3487
|
-
};
|
|
3488
|
-
type CrawlReportStoreAdapter = {
|
|
3489
|
-
save: (report: CrawlReport, options?: CrawlReportSaveOptions) => CrawlReportMeta;
|
|
3490
|
-
list: (input?: {
|
|
3491
|
-
site?: string;
|
|
3492
|
-
limit?: number;
|
|
3493
|
-
}) => CrawlReportMeta[];
|
|
3494
|
-
load: (id: string) => CrawlReport | undefined;
|
|
3495
|
-
delete: (id: string) => boolean;
|
|
3496
|
-
latest: (site?: string) => CrawlReport | undefined;
|
|
3497
|
-
};
|
|
3498
|
-
declare const sqliteCrawlReportStore: CrawlReportStoreAdapter;
|
|
3499
|
-
declare const crawlReportStore: CrawlReportStoreAdapter;
|
|
3500
|
-
declare function saveCrawlReport(report: CrawlReport, store?: CrawlReportStoreAdapter, options?: CrawlReportSaveOptions): CrawlReportMeta;
|
|
3501
|
-
declare function listCrawlReports(input?: {
|
|
3502
|
-
site?: string;
|
|
3503
|
-
limit?: number;
|
|
3504
|
-
}, store?: CrawlReportStoreAdapter): CrawlReportMeta[];
|
|
3505
|
-
declare function loadCrawlReport(id: string, store?: CrawlReportStoreAdapter): CrawlReport | undefined;
|
|
3506
|
-
declare function deleteCrawlReport(id: string, store?: CrawlReportStoreAdapter): boolean;
|
|
3507
|
-
declare function latestCrawlReport(site?: string, store?: CrawlReportStoreAdapter): CrawlReport | undefined;
|
|
3508
|
-
//#endregion
|
|
3509
|
-
//#region packages/core/src/fetch/crawler-identity.d.ts
|
|
3510
|
-
declare const SEO_CRAWLER_TOKEN = "SEO-Skill";
|
|
3511
|
-
declare const SEO_CRAWLER_USER_AGENT: string;
|
|
3512
|
-
declare const SEO_CRAWLER_IDENTITY: CrawlerIdentity;
|
|
3513
|
-
//#endregion
|
|
3514
|
-
//#region packages/core/src/fetch/http-client.d.ts
|
|
3515
|
-
type HttpProfile = 'browser' | 'bot';
|
|
3516
|
-
declare class ResponseSizeLimitError extends Error {
|
|
3517
|
-
readonly maxBytes: number;
|
|
3518
|
-
constructor(maxBytes: number, label?: string);
|
|
3519
|
-
}
|
|
3520
|
-
/** @deprecated Use SEO_CRAWLER_USER_AGENT. */
|
|
3521
|
-
declare const BROWSER_USER_AGENT: string;
|
|
3522
|
-
declare function requestHeaders(profile: HttpProfile): Headers$1;
|
|
3523
|
-
declare function publicHttpFetch(url: string, input?: RequestInit$1 & {
|
|
3524
|
-
profile?: HttpProfile;
|
|
3525
|
-
}): Promise<import("undici").Response>;
|
|
3526
|
-
declare function readBoundedResponseText(response: Awaited<ReturnType<typeof publicHttpFetch>>, maxBytes: number, label?: string): Promise<string>;
|
|
3527
|
-
//#endregion
|
|
3528
|
-
//#region packages/core/src/provider-extensions/contracts.d.ts
|
|
3529
|
-
declare const providerExtensionIdSchema: z.ZodString;
|
|
3530
|
-
declare const providerPackageNameSchema: z.ZodString;
|
|
3531
|
-
declare const providerExactVersionSchema: z.ZodString;
|
|
3532
|
-
declare const providerIntegritySchema: z.ZodString;
|
|
3533
|
-
declare const providerKindSchema: z.ZodEnum<{
|
|
3534
|
-
"local-search": "local-search";
|
|
3535
|
-
"traffic-analytics": "traffic-analytics";
|
|
3536
|
-
"search-results": "search-results";
|
|
3537
|
-
"keyword-data": "keyword-data";
|
|
3538
|
-
"domain-data": "domain-data";
|
|
3539
|
-
"link-data": "link-data";
|
|
3540
|
-
"ai-data": "ai-data";
|
|
3541
|
-
other: "other";
|
|
3542
|
-
}>;
|
|
3543
|
-
declare const providerConnectionFieldSchema: z.ZodObject<{
|
|
3544
|
-
id: z.ZodString;
|
|
3545
|
-
label: z.ZodString;
|
|
3546
|
-
description: z.ZodOptional<z.ZodString>;
|
|
3547
|
-
kind: z.ZodEnum<{
|
|
3548
|
-
account: "account";
|
|
3549
|
-
secret: "secret";
|
|
3550
|
-
}>;
|
|
3551
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
3552
|
-
envVar: z.ZodOptional<z.ZodString>;
|
|
3553
|
-
}, z.core.$strict>;
|
|
3554
|
-
declare const providerPackageManifestSchema: z.ZodObject<{
|
|
3555
|
-
apiVersion: z.ZodLiteral<1>;
|
|
3556
|
-
providers: z.ZodArray<z.ZodString>;
|
|
3557
|
-
}, z.core.$strict>;
|
|
3558
|
-
declare const installedProviderPackageSchema: z.ZodObject<{
|
|
3559
|
-
id: z.ZodString;
|
|
3560
|
-
package: z.ZodString;
|
|
3561
|
-
version: z.ZodString;
|
|
3562
|
-
integrity: z.ZodString;
|
|
3563
|
-
enabled: z.ZodBoolean;
|
|
3564
|
-
installedAt: z.ZodString;
|
|
3565
|
-
}, z.core.$strict>;
|
|
3566
|
-
declare const installedProviderPackagesSchema: z.ZodObject<{
|
|
3567
|
-
schemaVersion: z.ZodLiteral<1>;
|
|
3568
|
-
packages: z.ZodArray<z.ZodObject<{
|
|
3569
|
-
id: z.ZodString;
|
|
3570
|
-
package: z.ZodString;
|
|
3571
|
-
version: z.ZodString;
|
|
3572
|
-
integrity: z.ZodString;
|
|
3573
|
-
enabled: z.ZodBoolean;
|
|
3574
|
-
installedAt: z.ZodString;
|
|
3575
|
-
}, z.core.$strict>>;
|
|
3576
|
-
}, z.core.$strict>;
|
|
3577
|
-
declare const providerRegistrationSchema: z.ZodObject<{
|
|
3578
|
-
id: z.ZodString;
|
|
3579
|
-
displayName: z.ZodString;
|
|
3580
|
-
description: z.ZodString;
|
|
3581
|
-
kinds: z.ZodArray<z.ZodEnum<{
|
|
3582
|
-
"local-search": "local-search";
|
|
3583
|
-
"traffic-analytics": "traffic-analytics";
|
|
3584
|
-
"search-results": "search-results";
|
|
3585
|
-
"keyword-data": "keyword-data";
|
|
3586
|
-
"domain-data": "domain-data";
|
|
3587
|
-
"link-data": "link-data";
|
|
3588
|
-
"ai-data": "ai-data";
|
|
3589
|
-
other: "other";
|
|
3590
|
-
}>>;
|
|
3591
|
-
connection: z.ZodCustom<SeoProviderConnectionAdapter, SeoProviderConnectionAdapter>;
|
|
3592
|
-
capabilities: z.ZodArray<z.ZodType<SeoProviderCapabilityAdapter, unknown, z.core.$ZodTypeInternals<SeoProviderCapabilityAdapter, unknown>>>;
|
|
3593
|
-
actions: z.ZodOptional<z.ZodArray<z.ZodCustom<SeoProviderActionAdapter, SeoProviderActionAdapter>>>;
|
|
3594
|
-
}, z.core.$strict>;
|
|
3595
|
-
type ProviderPackageManifest = z.infer<typeof providerPackageManifestSchema>;
|
|
3596
|
-
type InstalledProviderPackage = z.infer<typeof installedProviderPackageSchema>;
|
|
3597
|
-
type InstalledProviderPackages = z.infer<typeof installedProviderPackagesSchema>;
|
|
3598
|
-
//#endregion
|
|
3599
|
-
//#region packages/core/src/provider-extensions/registry.d.ts
|
|
3600
|
-
type RegisteredProviderExtension = SeoProviderRegistration & {
|
|
3601
|
-
package: string;
|
|
3602
|
-
version: string;
|
|
3603
|
-
};
|
|
3604
|
-
declare class ProviderExtensionRegistry {
|
|
3605
|
-
#private;
|
|
3606
|
-
hostFor(input: {
|
|
3607
|
-
package: string;
|
|
3608
|
-
version: string;
|
|
3609
|
-
}): SeoProviderHost;
|
|
3610
|
-
get(id: string): RegisteredProviderExtension | undefined;
|
|
3611
|
-
capability<TId extends SeoProviderCapabilityId>(providerId: string, capabilityId: TId): Extract<SeoProviderCapabilityAdapter, {
|
|
3612
|
-
id: TId;
|
|
3613
|
-
}> | undefined;
|
|
3614
|
-
providersFor(capabilityId: SeoProviderCapabilityId): RegisteredProviderExtension[];
|
|
3615
|
-
action(providerId: string, actionId: string): SeoProviderActionAdapter | undefined;
|
|
3616
|
-
list(): RegisteredProviderExtension[];
|
|
3617
|
-
}
|
|
3618
|
-
//#endregion
|
|
3619
|
-
//#region packages/core/src/provider-extensions/loader.d.ts
|
|
3620
|
-
type ImportedProviderModule = {
|
|
3621
|
-
default?: unknown;
|
|
3622
|
-
};
|
|
3623
|
-
type ProviderExtensionLoadFailure = {
|
|
3624
|
-
id: string;
|
|
3625
|
-
package: string;
|
|
3626
|
-
message: string;
|
|
3627
|
-
};
|
|
3628
|
-
type LoadedProviderExtensions = {
|
|
3629
|
-
registry: ProviderExtensionRegistry;
|
|
3630
|
-
failures: ProviderExtensionLoadFailure[];
|
|
3631
|
-
};
|
|
3632
|
-
type ProviderExtensionLoaderOptions = {
|
|
3633
|
-
registry?: ProviderExtensionRegistry;
|
|
3634
|
-
packagesDir?: string;
|
|
3635
|
-
installed?: readonly InstalledProviderPackage[];
|
|
3636
|
-
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
3637
|
-
};
|
|
3638
|
-
declare function loadProviderPackage(input: {
|
|
3639
|
-
package: string;
|
|
3640
|
-
version: string;
|
|
3641
|
-
}, options: {
|
|
3642
|
-
packagesDir: string;
|
|
3643
|
-
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
3644
|
-
}): Promise<RegisteredProviderExtension[]>;
|
|
3645
|
-
declare function loadInstalledProviderExtensions(options?: ProviderExtensionLoaderOptions): Promise<LoadedProviderExtensions>;
|
|
3646
|
-
//#endregion
|
|
3647
|
-
//#region packages/core/src/providers/imports/research-columns.d.ts
|
|
3648
|
-
declare const RESEARCH_IMPORT_COLUMN_KEYS: readonly ["keyword", "url", "position", "absolutePosition", "searchVolume", "keywordDifficulty", "cpc", "paidCompetition", "intent", "resultCount", "estimatedTraffic", "resultType", "searchVolumeUpdatedAt"];
|
|
3649
|
-
type ResearchImportColumn = (typeof RESEARCH_IMPORT_COLUMN_KEYS)[number];
|
|
3650
|
-
type ResearchImportColumns = Partial<Record<ResearchImportColumn, string>>;
|
|
3651
|
-
declare function normalizedResearchColumnName(value: string): string;
|
|
3652
|
-
declare function researchImportColumns(value: ResearchImportColumns | undefined): ResearchImportColumns | undefined;
|
|
3653
|
-
declare function validateResearchImportColumnSources(columns: ResearchImportColumns | undefined, includedFields: Iterable<string>): void;
|
|
3654
|
-
//#endregion
|
|
3655
|
-
//#region packages/core/src/providers/contracts.d.ts
|
|
3656
|
-
declare const providerIdSchema: z.ZodString;
|
|
3657
|
-
type ProviderId = z.infer<typeof providerIdSchema>;
|
|
3658
|
-
type ExternalServiceId = string;
|
|
3659
|
-
declare const providerCapabilitySchema: z.ZodEnum<{
|
|
3660
|
-
"serp-snapshot": "serp-snapshot";
|
|
3661
|
-
"keyword-metrics": "keyword-metrics";
|
|
3662
|
-
"keyword-discovery": "keyword-discovery";
|
|
3663
|
-
"domain-overview": "domain-overview";
|
|
3664
|
-
"ranked-keywords": "ranked-keywords";
|
|
3665
|
-
"relevant-pages": "relevant-pages";
|
|
3666
|
-
"serp-competitors": "serp-competitors";
|
|
3667
|
-
"link-summary": "link-summary";
|
|
3668
|
-
"referring-domains": "referring-domains";
|
|
3669
|
-
backlinks: "backlinks";
|
|
3670
|
-
"domain-rating": "domain-rating";
|
|
3671
|
-
"local-search": "local-search";
|
|
3672
|
-
"ai-mentions": "ai-mentions";
|
|
3673
|
-
"ai-prompt-observation": "ai-prompt-observation";
|
|
3674
|
-
}>;
|
|
3675
|
-
type ProviderCapability = z.infer<typeof providerCapabilitySchema>;
|
|
3676
|
-
type ProviderValue<T> = {
|
|
3677
|
-
state: 'observed';
|
|
3678
|
-
value: T;
|
|
3679
|
-
} | {
|
|
3680
|
-
state: 'missing' | 'unavailable' | 'invalid';
|
|
3681
|
-
value: null;
|
|
3682
|
-
reason: string;
|
|
3683
|
-
};
|
|
3684
|
-
type ProviderWarning = {
|
|
3685
|
-
code: string;
|
|
3686
|
-
message: string;
|
|
3687
|
-
field?: string;
|
|
3688
|
-
row?: number;
|
|
3689
|
-
};
|
|
3690
|
-
type ProviderImportEvidence = {
|
|
3691
|
-
provider: ProviderId;
|
|
3692
|
-
path: string;
|
|
3693
|
-
format: 'csv' | 'json' | 'jsonl';
|
|
3694
|
-
encoding: 'utf-8' | 'utf-16be' | 'utf-16le';
|
|
3695
|
-
delimiter: ',' | ';' | '\t' | null;
|
|
3696
|
-
columnMapping: ResearchImportColumns | null;
|
|
3697
|
-
sha256: string;
|
|
3698
|
-
exportedAt: string;
|
|
3699
|
-
importedAt: string;
|
|
3700
|
-
includedFields: string[];
|
|
3701
|
-
fileBytes: number;
|
|
3702
|
-
bytesRead: number;
|
|
3703
|
-
fileRows: number;
|
|
3704
|
-
suppliedRows: number;
|
|
3705
|
-
validRows: number;
|
|
3706
|
-
filteredRows: number;
|
|
3707
|
-
invalidRows: number;
|
|
3708
|
-
duplicateRows: number;
|
|
3709
|
-
capped: boolean;
|
|
3710
|
-
rowLimit: number;
|
|
3711
|
-
};
|
|
3712
|
-
type KeywordMetric = {
|
|
3713
|
-
keyword: string;
|
|
3714
|
-
monthlySearchVolume: ProviderValue<number>;
|
|
3715
|
-
monthlySearches: ProviderValue<KeywordMonthlySearch[]>;
|
|
3716
|
-
searchVolumeUpdatedAt: ProviderValue<string>;
|
|
3717
|
-
cpcUsd: ProviderValue<number>;
|
|
3718
|
-
paidCompetition: ProviderValue<number>;
|
|
3719
|
-
keywordDifficulty: ProviderValue<number>;
|
|
3720
|
-
intent: ProviderValue<string>;
|
|
3721
|
-
resultCount: ProviderValue<number>;
|
|
3722
|
-
};
|
|
3723
|
-
type KeywordMonthlySearch = {
|
|
3724
|
-
year: number;
|
|
3725
|
-
month: number;
|
|
3726
|
-
searchVolume: number;
|
|
3727
|
-
};
|
|
3728
|
-
//#endregion
|
|
3729
|
-
//#region packages/core/src/providers/transport.d.ts
|
|
3730
|
-
type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
|
|
3731
|
-
type ProviderRequestInput = {
|
|
3732
|
-
provider: ExternalServiceId;
|
|
3733
|
-
operation: string;
|
|
3734
|
-
url: string | URL;
|
|
3735
|
-
init?: RequestInit$1;
|
|
3736
|
-
fetch: ProviderFetch;
|
|
3737
|
-
maxResponseBytes: number;
|
|
3738
|
-
timeoutMs: number;
|
|
3739
|
-
retry?: 'never' | 'safe';
|
|
3740
|
-
retryDelayMs?: number;
|
|
3741
|
-
onResponse?: (response: Response$1) => void;
|
|
3742
|
-
};
|
|
3743
|
-
declare function providerRequestText(input: ProviderRequestInput): Promise<string>;
|
|
3744
|
-
declare function providerRequestJson<T>(input: ProviderRequestInput & {
|
|
3745
|
-
schema: z.ZodType<T>;
|
|
3746
|
-
}): Promise<T>;
|
|
3747
|
-
//#endregion
|
|
3748
|
-
//#region packages/core/src/provider-extensions/runtime.d.ts
|
|
3749
|
-
type ProviderRuntimeOptions = {
|
|
3750
|
-
fetch?: ProviderFetch;
|
|
3751
|
-
maxRequests?: number;
|
|
3752
|
-
now?: () => Date;
|
|
3753
|
-
};
|
|
3754
|
-
declare function normalizeProviderExtensionAccount(provider: Pick<SeoProviderRegistration, 'displayName' | 'connection'>, account: Readonly<Record<string, string>>): Record<string, string>;
|
|
3755
|
-
declare function loadProviderExtensions(): Promise<LoadedProviderExtensions>;
|
|
3756
|
-
declare function safeProviderAdapterError(providerId: string, error: unknown, credentials: Readonly<Record<string, string>>): Error;
|
|
3757
|
-
declare function runtimeForProvider(provider: string, options?: ProviderRuntimeOptions): SeoProviderRuntime;
|
|
3758
|
-
declare function verifyProviderExtension(input: {
|
|
3759
|
-
providerId: string;
|
|
3760
|
-
account: Readonly<Record<string, string>>;
|
|
3761
|
-
credentials: Readonly<Record<string, string>>;
|
|
3762
|
-
runtime?: ProviderRuntimeOptions;
|
|
3763
|
-
}): Promise<void>;
|
|
3764
|
-
//#endregion
|
|
3765
|
-
//#region packages/core/src/provider-extensions/analytics.d.ts
|
|
3766
|
-
type AnalyticsProviderRuntimeOptions = ProviderRuntimeOptions;
|
|
3767
|
-
declare function verifyAnalyticsProvider(input: {
|
|
3768
|
-
providerId: string;
|
|
3769
|
-
account: Readonly<Record<string, string>>;
|
|
3770
|
-
credentials: Readonly<Record<string, string>>;
|
|
3771
|
-
runtime?: AnalyticsProviderRuntimeOptions;
|
|
3772
|
-
}): Promise<void>;
|
|
3773
|
-
declare function runAnalyticsProviderLandingPages(input: {
|
|
3774
|
-
providerId: string;
|
|
3775
|
-
account: Readonly<Record<string, string>>;
|
|
3776
|
-
credentials?: Readonly<Record<string, string>>;
|
|
3777
|
-
startDate: string;
|
|
3778
|
-
endDate: string;
|
|
3779
|
-
limit: number;
|
|
3780
|
-
refresh?: boolean;
|
|
3781
|
-
runtime?: AnalyticsProviderRuntimeOptions;
|
|
3782
|
-
}): Promise<SeoLandingPageVisitsResult>;
|
|
3783
|
-
//#endregion
|
|
3784
|
-
//#region packages/core/src/analyze/workflows/analytics-value.d.ts
|
|
3785
|
-
type LandingPageValue = {
|
|
3786
|
-
sessions: number;
|
|
3787
|
-
totalUsers?: number;
|
|
3788
|
-
conversions?: number;
|
|
3789
|
-
};
|
|
3790
|
-
type LandingPageValueSource = {
|
|
3791
|
-
provider?: string;
|
|
3792
|
-
observedMetrics?: Array<'sessions' | 'totalUsers' | 'conversions'>;
|
|
3793
|
-
dataStatus?: 'complete' | 'partial';
|
|
3794
|
-
returnedRows: number;
|
|
3795
|
-
availableRows?: number;
|
|
3796
|
-
retainedRowLimit: number;
|
|
3797
|
-
retainedRowLimitReached: boolean;
|
|
3798
|
-
qualityWarnings?: string[];
|
|
3799
|
-
};
|
|
3800
|
-
type LandingPageValueResult = {
|
|
3801
|
-
values: Map<string, LandingPageValue>;
|
|
3802
|
-
source?: LandingPageValueSource;
|
|
3803
|
-
warning?: string;
|
|
3804
|
-
};
|
|
3805
|
-
type LandingPageValueDependencies = {
|
|
3806
|
-
runGa4Report: typeof runGa4Report;
|
|
3807
|
-
analyticsLandingPages: typeof runAnalyticsProviderLandingPages;
|
|
3808
|
-
};
|
|
3809
|
-
declare function landingValueForUrl(values: Map<string, LandingPageValue>, url: string): LandingPageValue | undefined;
|
|
3810
|
-
declare function fetchLandingPageValues(input: {
|
|
3811
|
-
connection?: AnalyticsConnection;
|
|
3812
|
-
propertyId?: string;
|
|
3813
|
-
startDate: string;
|
|
3814
|
-
endDate: string;
|
|
3815
|
-
limit?: number;
|
|
3816
|
-
refresh?: boolean;
|
|
3817
|
-
}, dependencies?: Partial<LandingPageValueDependencies>): Promise<LandingPageValueResult>;
|
|
3818
|
-
//#endregion
|
|
3819
|
-
//#region packages/core/src/analyze/crawler/site-crawl-dependencies.d.ts
|
|
3820
|
-
type ResolvedCrawlSiteDependencies = {
|
|
3821
|
-
fetchPage: typeof crawlOne;
|
|
3822
|
-
fetchStatusPage: typeof crawlStatusOnly;
|
|
3823
|
-
fetchSitemapUrls: typeof fetchSitemapUrls;
|
|
3824
|
-
fetch: typeof publicHttpFetch;
|
|
3825
|
-
queryPageMetrics: typeof queryPageMetrics;
|
|
3826
|
-
queryPageTopQuery: typeof queryPageTopQuery;
|
|
3827
|
-
queryPagesMetrics?: typeof queryPagesMetrics;
|
|
3828
|
-
queryPagesTopQueries?: typeof queryPagesTopQueries;
|
|
3829
|
-
queryPagesMetricsBatch?: typeof queryPagesMetricsBatch;
|
|
3830
|
-
queryPagesTopQueriesBatch?: typeof queryPagesTopQueriesBatch;
|
|
3831
|
-
fetchLandingPageValues: typeof fetchLandingPageValues;
|
|
3832
|
-
landingValueForUrl: typeof landingValueForUrl;
|
|
3833
|
-
now: () => Date;
|
|
3834
|
-
memoryUsage: () => Pick<NodeJS.MemoryUsage, 'rss' | 'heapUsed' | 'external'>;
|
|
3835
|
-
totalMemory: () => number;
|
|
3836
|
-
};
|
|
3837
|
-
type CrawlSiteDependencies = Partial<ResolvedCrawlSiteDependencies>;
|
|
3838
|
-
//#endregion
|
|
3839
|
-
//#region packages/core/src/analyze/crawler/site-crawl.d.ts
|
|
3840
|
-
declare function crawlSite(input: CrawlConfigInput, dependencies?: CrawlSiteDependencies): Promise<CrawlReport>;
|
|
3841
|
-
//#endregion
|
|
3842
|
-
//#region packages/core/src/analyze/crawler/baseline.d.ts
|
|
3843
|
-
declare const REPORT_BASELINE_MAX_PAGES = 100;
|
|
3844
|
-
declare const REPORT_BASELINE_MAX_DEPTH = 4;
|
|
3845
|
-
declare const REPORT_BASELINE_MAX_AGE_MS: number;
|
|
3846
|
-
type TechnicalBaselineStatus = 'created' | 'refreshed' | 'reused' | 'skipped' | 'unavailable';
|
|
3847
|
-
type TechnicalBaseline = {
|
|
3848
|
-
status: TechnicalBaselineStatus;
|
|
3849
|
-
report?: CrawlReport;
|
|
3850
|
-
reason?: string;
|
|
3851
|
-
};
|
|
3852
|
-
type ResolveTechnicalBaselineInput = {
|
|
3853
|
-
/** Stable local identity used to find and save the crawl baseline. */
|
|
3854
|
-
site: string;
|
|
3855
|
-
/** Optional verified Search Console property used for Google data joins. */
|
|
3856
|
-
searchSite?: string;
|
|
3857
|
-
url?: string;
|
|
3858
|
-
projectId?: string;
|
|
3859
|
-
googleAnalyticsPropertyId?: string;
|
|
3860
|
-
analyticsConnection?: CrawlConfigInput['analyticsConnection'];
|
|
3861
|
-
crawl?: boolean;
|
|
3862
|
-
refresh?: boolean;
|
|
3863
|
-
maxPages?: number;
|
|
3864
|
-
maxDepth?: number;
|
|
3865
|
-
maxAgeMs?: number;
|
|
3866
|
-
};
|
|
3867
|
-
type TechnicalBaselineDependencies = {
|
|
3868
|
-
latestCrawlReport: typeof latestCrawlReport;
|
|
3869
|
-
crawlSite: typeof crawlSite;
|
|
3870
|
-
saveCrawlReport: typeof saveCrawlReport;
|
|
3871
|
-
now: () => Date;
|
|
3872
|
-
};
|
|
3873
|
-
declare function isCompatibleTechnicalBaseline(report: CrawlReport, input: Pick<ResolveTechnicalBaselineInput, 'url' | 'maxPages' | 'maxDepth' | 'googleAnalyticsPropertyId' | 'analyticsConnection'>): boolean;
|
|
3874
|
-
declare function isCurrentTechnicalBaseline(report: CrawlReport, input: Pick<ResolveTechnicalBaselineInput, 'maxAgeMs'> & {
|
|
3875
|
-
now: Date;
|
|
3876
|
-
}): boolean;
|
|
3877
|
-
declare function resolveTechnicalBaseline(input: ResolveTechnicalBaselineInput, dependencies?: TechnicalBaselineDependencies): Promise<TechnicalBaseline>;
|
|
3878
|
-
//#endregion
|
|
3879
3086
|
//#region packages/core/src/analyze/crawler/top-fixes.d.ts
|
|
3880
3087
|
type TopFixFilters = {
|
|
3881
3088
|
category?: RuleCategory | string;
|
|
3882
3089
|
severity?: RuleSeverity | string;
|
|
3883
3090
|
url?: string;
|
|
3884
|
-
projectId?: string;
|
|
3885
3091
|
limit?: number;
|
|
3886
3092
|
recommendation?: RuleRecommendation;
|
|
3887
3093
|
};
|
|
@@ -3921,136 +3127,6 @@ declare function renderCrawlJunit(report: CrawlReport): string;
|
|
|
3921
3127
|
declare function renderCrawlHtml(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3922
3128
|
declare function renderCrawlMarkdownTickets(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3923
3129
|
//#endregion
|
|
3924
|
-
//#region packages/core/src/analyze/crawler/history-provenance.d.ts
|
|
3925
|
-
type CrawlSnapshotCaps = {
|
|
3926
|
-
maxPages: number;
|
|
3927
|
-
maxDepth: number;
|
|
3928
|
-
timeoutMs: number;
|
|
3929
|
-
searchConsolePageLimit?: number;
|
|
3930
|
-
searchConsoleRetainedRowLimit?: number;
|
|
3931
|
-
analyticsRetainedRowLimit?: number;
|
|
3932
|
-
};
|
|
3933
|
-
type CrawlSnapshotRequestScope = {
|
|
3934
|
-
startUrl: string;
|
|
3935
|
-
mode: CrawlConfig['mode'];
|
|
3936
|
-
explicitUrls: string[];
|
|
3937
|
-
include: string[];
|
|
3938
|
-
exclude: string[];
|
|
3939
|
-
respectRobots: boolean;
|
|
3940
|
-
useSitemap: boolean;
|
|
3941
|
-
checkExternal: boolean;
|
|
3942
|
-
js: CrawlConfig['js'];
|
|
3943
|
-
};
|
|
3944
|
-
type CrawlSnapshotCompleteness = {
|
|
3945
|
-
status: 'complete' | 'partial' | 'failed';
|
|
3946
|
-
truncated: boolean;
|
|
3947
|
-
reasons: string[];
|
|
3948
|
-
requestEvidenceStatus: CrawlReport['requestEvidenceStatus'];
|
|
3949
|
-
pageLimitReached: boolean;
|
|
3950
|
-
skippedUrls: number;
|
|
3951
|
-
skipReasons: CrawlSkipReasonCount[];
|
|
3952
|
-
skippedUrlsByImpact: CrawlSkippedUrlsByImpact;
|
|
3953
|
-
failedRequests: number;
|
|
3954
|
-
abortedRequests: number;
|
|
3955
|
-
extractionFailures: number;
|
|
3956
|
-
dataSources?: CrawlReportDataSources;
|
|
3957
|
-
};
|
|
3958
|
-
type CrawlSnapshotInput = {
|
|
3959
|
-
id: string;
|
|
3960
|
-
definitionId: string;
|
|
3961
|
-
generatedAt: string;
|
|
3962
|
-
projectId?: string;
|
|
3963
|
-
site?: string;
|
|
3964
|
-
googleAnalyticsPropertyId?: string;
|
|
3965
|
-
analyticsConnection?: CrawlReport['analyticsConnection'];
|
|
3966
|
-
url: string;
|
|
3967
|
-
status: CrawlReport['status'];
|
|
3968
|
-
configHash: string;
|
|
3969
|
-
config: CrawlConfig;
|
|
3970
|
-
caps: CrawlSnapshotCaps;
|
|
3971
|
-
requestScope: CrawlSnapshotRequestScope;
|
|
3972
|
-
requestEvidenceStatus: CrawlReport['requestEvidenceStatus'];
|
|
3973
|
-
dataSources?: CrawlReportDataSources;
|
|
3974
|
-
warnings: string[];
|
|
3975
|
-
caveats: string[];
|
|
3976
|
-
completeness: CrawlSnapshotCompleteness;
|
|
3977
|
-
summary: CrawlReportSummary;
|
|
3978
|
-
};
|
|
3979
|
-
type CrawlComparisonMetadata = {
|
|
3980
|
-
before: CrawlSnapshotInput;
|
|
3981
|
-
after: CrawlSnapshotInput;
|
|
3982
|
-
comparability: {
|
|
3983
|
-
status: 'comparable' | 'review-required';
|
|
3984
|
-
sameDefinitionId: boolean;
|
|
3985
|
-
sameConfigHash: boolean;
|
|
3986
|
-
sameSite: boolean;
|
|
3987
|
-
sameStartUrl: boolean;
|
|
3988
|
-
sameMode: boolean;
|
|
3989
|
-
sameRequestScope: boolean;
|
|
3990
|
-
sameCaps: boolean;
|
|
3991
|
-
};
|
|
3992
|
-
completeness: {
|
|
3993
|
-
status: 'complete' | 'partial' | 'failed';
|
|
3994
|
-
truncated: boolean;
|
|
3995
|
-
before: CrawlSnapshotCompleteness;
|
|
3996
|
-
after: CrawlSnapshotCompleteness;
|
|
3997
|
-
};
|
|
3998
|
-
caveats: string[];
|
|
3999
|
-
};
|
|
4000
|
-
//#endregion
|
|
4001
|
-
//#region packages/core/src/analyze/crawler/history.d.ts
|
|
4002
|
-
type CrawlSnapshotPageChange = {
|
|
4003
|
-
url: string;
|
|
4004
|
-
kind: 'added' | 'removed' | 'changed';
|
|
4005
|
-
changes: string[];
|
|
4006
|
-
before?: Pick<CrawlPageSnapshot, 'url' | 'finalUrl' | 'status' | 'title' | 'metaDescription' | 'canonical' | 'h1' | 'indexable' | 'wordCount'>;
|
|
4007
|
-
after?: Pick<CrawlPageSnapshot, 'url' | 'finalUrl' | 'status' | 'title' | 'metaDescription' | 'canonical' | 'h1' | 'indexable' | 'wordCount'>;
|
|
4008
|
-
};
|
|
4009
|
-
type CrawlSnapshotIssueChange = {
|
|
4010
|
-
ruleId: string;
|
|
4011
|
-
title: string;
|
|
4012
|
-
severity: string;
|
|
4013
|
-
category: string;
|
|
4014
|
-
before: number;
|
|
4015
|
-
after: number;
|
|
4016
|
-
delta: number;
|
|
4017
|
-
};
|
|
4018
|
-
type CrawlSnapshotDiffReport = {
|
|
4019
|
-
schemaVersion: 1;
|
|
4020
|
-
before: CrawlComparisonMetadata['before'];
|
|
4021
|
-
after: CrawlComparisonMetadata['after'];
|
|
4022
|
-
comparability: CrawlComparisonMetadata['comparability'];
|
|
4023
|
-
completeness: CrawlComparisonMetadata['completeness'];
|
|
4024
|
-
caveats: string[];
|
|
4025
|
-
summary: {
|
|
4026
|
-
pageDelta: number;
|
|
4027
|
-
issueDelta: number;
|
|
4028
|
-
addedPages: number;
|
|
4029
|
-
removedPages: number;
|
|
4030
|
-
changedPages: number;
|
|
4031
|
-
newStatusErrors: number;
|
|
4032
|
-
fixedStatusErrors: number;
|
|
4033
|
-
indexabilityFlips: number;
|
|
4034
|
-
titleChanges: number;
|
|
4035
|
-
contentChanges: number;
|
|
4036
|
-
issueGroupsWorse: number;
|
|
4037
|
-
issueGroupsBetter: number;
|
|
4038
|
-
};
|
|
4039
|
-
headline: string;
|
|
4040
|
-
topActions: Array<{
|
|
4041
|
-
title: string;
|
|
4042
|
-
plainEnglish: string;
|
|
4043
|
-
action: string;
|
|
4044
|
-
urls?: string[];
|
|
4045
|
-
}>;
|
|
4046
|
-
pageChanges: CrawlSnapshotPageChange[];
|
|
4047
|
-
issueChanges: CrawlSnapshotIssueChange[];
|
|
4048
|
-
};
|
|
4049
|
-
declare function compareCrawlReports(input: {
|
|
4050
|
-
before: CrawlReport;
|
|
4051
|
-
after: CrawlReport;
|
|
4052
|
-
}): CrawlSnapshotDiffReport;
|
|
4053
|
-
//#endregion
|
|
4054
3130
|
//#region packages/core/src/analyze/crawler/schemas.d.ts
|
|
4055
3131
|
declare const crawlerRuleSeveritySchema: z.ZodEnum<{
|
|
4056
3132
|
high: "high";
|
|
@@ -5141,7 +4217,6 @@ declare const crawlReportSummarySchema: z.ZodObject<{
|
|
|
5141
4217
|
declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5142
4218
|
id: z.ZodString;
|
|
5143
4219
|
definitionId: z.ZodString;
|
|
5144
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
5145
4220
|
site: z.ZodOptional<z.ZodString>;
|
|
5146
4221
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
5147
4222
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -6384,7 +5459,6 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6384
5459
|
}, z.core.$strip>, z.ZodObject<{
|
|
6385
5460
|
id: z.ZodString;
|
|
6386
5461
|
definitionId: z.ZodString;
|
|
6387
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
6388
5462
|
site: z.ZodOptional<z.ZodString>;
|
|
6389
5463
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
6390
5464
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -7627,7 +6701,6 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7627
6701
|
}, z.core.$strip>, z.ZodObject<{
|
|
7628
6702
|
id: z.ZodString;
|
|
7629
6703
|
definitionId: z.ZodString;
|
|
7630
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
7631
6704
|
site: z.ZodOptional<z.ZodString>;
|
|
7632
6705
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
7633
6706
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -8872,7 +7945,6 @@ declare const crawlerSchemas: {
|
|
|
8872
7945
|
crawlReport: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
8873
7946
|
id: z.ZodString;
|
|
8874
7947
|
definitionId: z.ZodString;
|
|
8875
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
8876
7948
|
site: z.ZodOptional<z.ZodString>;
|
|
8877
7949
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
8878
7950
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -10115,7 +9187,6 @@ declare const crawlerSchemas: {
|
|
|
10115
9187
|
}, z.core.$strip>, z.ZodObject<{
|
|
10116
9188
|
id: z.ZodString;
|
|
10117
9189
|
definitionId: z.ZodString;
|
|
10118
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
10119
9190
|
site: z.ZodOptional<z.ZodString>;
|
|
10120
9191
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
10121
9192
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -11358,7 +10429,6 @@ declare const crawlerSchemas: {
|
|
|
11358
10429
|
}, z.core.$strip>, z.ZodObject<{
|
|
11359
10430
|
id: z.ZodString;
|
|
11360
10431
|
definitionId: z.ZodString;
|
|
11361
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
11362
10432
|
site: z.ZodOptional<z.ZodString>;
|
|
11363
10433
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
11364
10434
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -13529,7 +12599,6 @@ declare const crawlerJsonSchemas: {
|
|
|
13529
12599
|
crawlReport: z.core.ZodStandardJSONSchemaPayload<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13530
12600
|
id: z.ZodString;
|
|
13531
12601
|
definitionId: z.ZodString;
|
|
13532
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
13533
12602
|
site: z.ZodOptional<z.ZodString>;
|
|
13534
12603
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
13535
12604
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -14772,7 +13841,6 @@ declare const crawlerJsonSchemas: {
|
|
|
14772
13841
|
}, z.core.$strip>, z.ZodObject<{
|
|
14773
13842
|
id: z.ZodString;
|
|
14774
13843
|
definitionId: z.ZodString;
|
|
14775
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
14776
13844
|
site: z.ZodOptional<z.ZodString>;
|
|
14777
13845
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
14778
13846
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -16015,7 +15083,6 @@ declare const crawlerJsonSchemas: {
|
|
|
16015
15083
|
}, z.core.$strip>, z.ZodObject<{
|
|
16016
15084
|
id: z.ZodString;
|
|
16017
15085
|
definitionId: z.ZodString;
|
|
16018
|
-
projectId: z.ZodOptional<z.ZodString>;
|
|
16019
15086
|
site: z.ZodOptional<z.ZodString>;
|
|
16020
15087
|
googleAnalyticsPropertyId: z.ZodOptional<z.ZodString>;
|
|
16021
15088
|
analyticsConnection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -18183,6 +17250,339 @@ declare const crawlerJsonSchemas: {
|
|
|
18183
17250
|
}, z.core.$strip>>;
|
|
18184
17251
|
};
|
|
18185
17252
|
//#endregion
|
|
17253
|
+
//#region packages/core/src/fetch/crawler-identity.d.ts
|
|
17254
|
+
declare const SEO_CRAWLER_TOKEN = "SEO-Skill";
|
|
17255
|
+
declare const SEO_CRAWLER_USER_AGENT: string;
|
|
17256
|
+
declare const SEO_CRAWLER_IDENTITY: CrawlerIdentity;
|
|
17257
|
+
//#endregion
|
|
17258
|
+
//#region packages/core/src/fetch/http-client.d.ts
|
|
17259
|
+
type HttpProfile = 'browser' | 'bot';
|
|
17260
|
+
declare class ResponseSizeLimitError extends Error {
|
|
17261
|
+
readonly maxBytes: number;
|
|
17262
|
+
constructor(maxBytes: number, label?: string);
|
|
17263
|
+
}
|
|
17264
|
+
/** @deprecated Use SEO_CRAWLER_USER_AGENT. */
|
|
17265
|
+
declare const BROWSER_USER_AGENT: string;
|
|
17266
|
+
declare function requestHeaders(profile: HttpProfile): Headers$1;
|
|
17267
|
+
declare function publicHttpFetch(url: string, input?: RequestInit$1 & {
|
|
17268
|
+
profile?: HttpProfile;
|
|
17269
|
+
}): Promise<import("undici").Response>;
|
|
17270
|
+
declare function readBoundedResponseText(response: Awaited<ReturnType<typeof publicHttpFetch>>, maxBytes: number, label?: string): Promise<string>;
|
|
17271
|
+
//#endregion
|
|
17272
|
+
//#region packages/core/src/provider-extensions/contracts.d.ts
|
|
17273
|
+
declare const providerExtensionIdSchema: z.ZodString;
|
|
17274
|
+
declare const providerPackageNameSchema: z.ZodString;
|
|
17275
|
+
declare const providerExactVersionSchema: z.ZodString;
|
|
17276
|
+
declare const providerIntegritySchema: z.ZodString;
|
|
17277
|
+
declare const providerKindSchema: z.ZodEnum<{
|
|
17278
|
+
"traffic-analytics": "traffic-analytics";
|
|
17279
|
+
"search-results": "search-results";
|
|
17280
|
+
"keyword-data": "keyword-data";
|
|
17281
|
+
"domain-data": "domain-data";
|
|
17282
|
+
"link-data": "link-data";
|
|
17283
|
+
"local-search": "local-search";
|
|
17284
|
+
"ai-data": "ai-data";
|
|
17285
|
+
other: "other";
|
|
17286
|
+
}>;
|
|
17287
|
+
declare const providerConnectionFieldSchema: z.ZodObject<{
|
|
17288
|
+
id: z.ZodString;
|
|
17289
|
+
label: z.ZodString;
|
|
17290
|
+
description: z.ZodOptional<z.ZodString>;
|
|
17291
|
+
kind: z.ZodEnum<{
|
|
17292
|
+
account: "account";
|
|
17293
|
+
secret: "secret";
|
|
17294
|
+
}>;
|
|
17295
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
17296
|
+
envVar: z.ZodOptional<z.ZodString>;
|
|
17297
|
+
}, z.core.$strict>;
|
|
17298
|
+
declare const providerPackageManifestSchema: z.ZodObject<{
|
|
17299
|
+
apiVersion: z.ZodLiteral<1>;
|
|
17300
|
+
providers: z.ZodArray<z.ZodString>;
|
|
17301
|
+
}, z.core.$strict>;
|
|
17302
|
+
declare const installedProviderPackageSchema: z.ZodObject<{
|
|
17303
|
+
id: z.ZodString;
|
|
17304
|
+
package: z.ZodString;
|
|
17305
|
+
version: z.ZodString;
|
|
17306
|
+
integrity: z.ZodString;
|
|
17307
|
+
enabled: z.ZodBoolean;
|
|
17308
|
+
installedAt: z.ZodString;
|
|
17309
|
+
}, z.core.$strict>;
|
|
17310
|
+
declare const installedProviderPackagesSchema: z.ZodObject<{
|
|
17311
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
17312
|
+
packages: z.ZodArray<z.ZodObject<{
|
|
17313
|
+
id: z.ZodString;
|
|
17314
|
+
package: z.ZodString;
|
|
17315
|
+
version: z.ZodString;
|
|
17316
|
+
integrity: z.ZodString;
|
|
17317
|
+
enabled: z.ZodBoolean;
|
|
17318
|
+
installedAt: z.ZodString;
|
|
17319
|
+
}, z.core.$strict>>;
|
|
17320
|
+
}, z.core.$strict>;
|
|
17321
|
+
declare const providerRegistrationSchema: z.ZodObject<{
|
|
17322
|
+
id: z.ZodString;
|
|
17323
|
+
displayName: z.ZodString;
|
|
17324
|
+
description: z.ZodString;
|
|
17325
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
17326
|
+
"traffic-analytics": "traffic-analytics";
|
|
17327
|
+
"search-results": "search-results";
|
|
17328
|
+
"keyword-data": "keyword-data";
|
|
17329
|
+
"domain-data": "domain-data";
|
|
17330
|
+
"link-data": "link-data";
|
|
17331
|
+
"local-search": "local-search";
|
|
17332
|
+
"ai-data": "ai-data";
|
|
17333
|
+
other: "other";
|
|
17334
|
+
}>>;
|
|
17335
|
+
connection: z.ZodCustom<SeoProviderConnectionAdapter, SeoProviderConnectionAdapter>;
|
|
17336
|
+
capabilities: z.ZodArray<z.ZodType<SeoProviderCapabilityAdapter, unknown, z.core.$ZodTypeInternals<SeoProviderCapabilityAdapter, unknown>>>;
|
|
17337
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodCustom<SeoProviderActionAdapter, SeoProviderActionAdapter>>>;
|
|
17338
|
+
}, z.core.$strict>;
|
|
17339
|
+
type ProviderPackageManifest = z.infer<typeof providerPackageManifestSchema>;
|
|
17340
|
+
type InstalledProviderPackage = z.infer<typeof installedProviderPackageSchema>;
|
|
17341
|
+
type InstalledProviderPackages = z.infer<typeof installedProviderPackagesSchema>;
|
|
17342
|
+
//#endregion
|
|
17343
|
+
//#region packages/core/src/provider-extensions/registry.d.ts
|
|
17344
|
+
type RegisteredProviderExtension = SeoProviderRegistration & {
|
|
17345
|
+
package: string;
|
|
17346
|
+
version: string;
|
|
17347
|
+
};
|
|
17348
|
+
declare class ProviderExtensionRegistry {
|
|
17349
|
+
#private;
|
|
17350
|
+
hostFor(input: {
|
|
17351
|
+
package: string;
|
|
17352
|
+
version: string;
|
|
17353
|
+
}): SeoProviderHost;
|
|
17354
|
+
get(id: string): RegisteredProviderExtension | undefined;
|
|
17355
|
+
capability<TId extends SeoProviderCapabilityId>(providerId: string, capabilityId: TId): Extract<SeoProviderCapabilityAdapter, {
|
|
17356
|
+
id: TId;
|
|
17357
|
+
}> | undefined;
|
|
17358
|
+
providersFor(capabilityId: SeoProviderCapabilityId): RegisteredProviderExtension[];
|
|
17359
|
+
action(providerId: string, actionId: string): SeoProviderActionAdapter | undefined;
|
|
17360
|
+
list(): RegisteredProviderExtension[];
|
|
17361
|
+
}
|
|
17362
|
+
//#endregion
|
|
17363
|
+
//#region packages/core/src/provider-extensions/loader.d.ts
|
|
17364
|
+
type ImportedProviderModule = {
|
|
17365
|
+
default?: unknown;
|
|
17366
|
+
};
|
|
17367
|
+
type ProviderExtensionLoadFailure = {
|
|
17368
|
+
id: string;
|
|
17369
|
+
package: string;
|
|
17370
|
+
message: string;
|
|
17371
|
+
};
|
|
17372
|
+
type LoadedProviderExtensions = {
|
|
17373
|
+
registry: ProviderExtensionRegistry;
|
|
17374
|
+
failures: ProviderExtensionLoadFailure[];
|
|
17375
|
+
};
|
|
17376
|
+
type ProviderExtensionLoaderOptions = {
|
|
17377
|
+
registry?: ProviderExtensionRegistry;
|
|
17378
|
+
packagesDir?: string;
|
|
17379
|
+
installed?: readonly InstalledProviderPackage[];
|
|
17380
|
+
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
17381
|
+
};
|
|
17382
|
+
declare function loadProviderPackage(input: {
|
|
17383
|
+
package: string;
|
|
17384
|
+
version: string;
|
|
17385
|
+
}, options: {
|
|
17386
|
+
packagesDir: string;
|
|
17387
|
+
importModule?: (url: string) => Promise<ImportedProviderModule>;
|
|
17388
|
+
}): Promise<RegisteredProviderExtension[]>;
|
|
17389
|
+
declare function loadInstalledProviderExtensions(options?: ProviderExtensionLoaderOptions): Promise<LoadedProviderExtensions>;
|
|
17390
|
+
//#endregion
|
|
17391
|
+
//#region packages/core/src/providers/imports/research-columns.d.ts
|
|
17392
|
+
declare const RESEARCH_IMPORT_COLUMN_KEYS: readonly ["keyword", "url", "position", "absolutePosition", "searchVolume", "keywordDifficulty", "cpc", "paidCompetition", "intent", "resultCount", "estimatedTraffic", "resultType", "searchVolumeUpdatedAt"];
|
|
17393
|
+
type ResearchImportColumn = (typeof RESEARCH_IMPORT_COLUMN_KEYS)[number];
|
|
17394
|
+
type ResearchImportColumns = Partial<Record<ResearchImportColumn, string>>;
|
|
17395
|
+
declare function normalizedResearchColumnName(value: string): string;
|
|
17396
|
+
declare function researchImportColumns(value: ResearchImportColumns | undefined): ResearchImportColumns | undefined;
|
|
17397
|
+
declare function validateResearchImportColumnSources(columns: ResearchImportColumns | undefined, includedFields: Iterable<string>): void;
|
|
17398
|
+
//#endregion
|
|
17399
|
+
//#region packages/core/src/providers/contracts.d.ts
|
|
17400
|
+
declare const providerIdSchema: z.ZodString;
|
|
17401
|
+
type ProviderId = z.infer<typeof providerIdSchema>;
|
|
17402
|
+
type ExternalServiceId = string;
|
|
17403
|
+
declare const providerCapabilitySchema: z.ZodEnum<{
|
|
17404
|
+
"local-search": "local-search";
|
|
17405
|
+
"serp-snapshot": "serp-snapshot";
|
|
17406
|
+
"keyword-metrics": "keyword-metrics";
|
|
17407
|
+
"keyword-discovery": "keyword-discovery";
|
|
17408
|
+
"domain-overview": "domain-overview";
|
|
17409
|
+
"ranked-keywords": "ranked-keywords";
|
|
17410
|
+
"relevant-pages": "relevant-pages";
|
|
17411
|
+
"serp-competitors": "serp-competitors";
|
|
17412
|
+
"link-summary": "link-summary";
|
|
17413
|
+
"referring-domains": "referring-domains";
|
|
17414
|
+
backlinks: "backlinks";
|
|
17415
|
+
"domain-rating": "domain-rating";
|
|
17416
|
+
"ai-mentions": "ai-mentions";
|
|
17417
|
+
"ai-prompt-observation": "ai-prompt-observation";
|
|
17418
|
+
}>;
|
|
17419
|
+
type ProviderCapability = z.infer<typeof providerCapabilitySchema>;
|
|
17420
|
+
type ProviderValue<T> = {
|
|
17421
|
+
state: 'observed';
|
|
17422
|
+
value: T;
|
|
17423
|
+
} | {
|
|
17424
|
+
state: 'missing' | 'unavailable' | 'invalid';
|
|
17425
|
+
value: null;
|
|
17426
|
+
reason: string;
|
|
17427
|
+
};
|
|
17428
|
+
type ProviderWarning = {
|
|
17429
|
+
code: string;
|
|
17430
|
+
message: string;
|
|
17431
|
+
field?: string;
|
|
17432
|
+
row?: number;
|
|
17433
|
+
};
|
|
17434
|
+
type ProviderImportEvidence = {
|
|
17435
|
+
provider: ProviderId;
|
|
17436
|
+
path: string;
|
|
17437
|
+
format: 'csv' | 'json' | 'jsonl';
|
|
17438
|
+
encoding: 'utf-8' | 'utf-16be' | 'utf-16le';
|
|
17439
|
+
delimiter: ',' | ';' | '\t' | null;
|
|
17440
|
+
columnMapping: ResearchImportColumns | null;
|
|
17441
|
+
sha256: string;
|
|
17442
|
+
exportedAt: string;
|
|
17443
|
+
importedAt: string;
|
|
17444
|
+
includedFields: string[];
|
|
17445
|
+
fileBytes: number;
|
|
17446
|
+
bytesRead: number;
|
|
17447
|
+
fileRows: number;
|
|
17448
|
+
suppliedRows: number;
|
|
17449
|
+
validRows: number;
|
|
17450
|
+
filteredRows: number;
|
|
17451
|
+
invalidRows: number;
|
|
17452
|
+
duplicateRows: number;
|
|
17453
|
+
capped: boolean;
|
|
17454
|
+
rowLimit: number;
|
|
17455
|
+
};
|
|
17456
|
+
type KeywordMetric = {
|
|
17457
|
+
keyword: string;
|
|
17458
|
+
monthlySearchVolume: ProviderValue<number>;
|
|
17459
|
+
monthlySearches: ProviderValue<KeywordMonthlySearch[]>;
|
|
17460
|
+
searchVolumeUpdatedAt: ProviderValue<string>;
|
|
17461
|
+
cpcUsd: ProviderValue<number>;
|
|
17462
|
+
paidCompetition: ProviderValue<number>;
|
|
17463
|
+
keywordDifficulty: ProviderValue<number>;
|
|
17464
|
+
intent: ProviderValue<string>;
|
|
17465
|
+
resultCount: ProviderValue<number>;
|
|
17466
|
+
};
|
|
17467
|
+
type KeywordMonthlySearch = {
|
|
17468
|
+
year: number;
|
|
17469
|
+
month: number;
|
|
17470
|
+
searchVolume: number;
|
|
17471
|
+
};
|
|
17472
|
+
//#endregion
|
|
17473
|
+
//#region packages/core/src/providers/transport.d.ts
|
|
17474
|
+
type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
|
|
17475
|
+
type ProviderRequestInput = {
|
|
17476
|
+
provider: ExternalServiceId;
|
|
17477
|
+
operation: string;
|
|
17478
|
+
url: string | URL;
|
|
17479
|
+
init?: RequestInit$1;
|
|
17480
|
+
fetch: ProviderFetch;
|
|
17481
|
+
maxResponseBytes: number;
|
|
17482
|
+
timeoutMs: number;
|
|
17483
|
+
retry?: 'never' | 'safe';
|
|
17484
|
+
retryDelayMs?: number;
|
|
17485
|
+
onResponse?: (response: Response$1) => void;
|
|
17486
|
+
};
|
|
17487
|
+
declare function providerRequestText(input: ProviderRequestInput): Promise<string>;
|
|
17488
|
+
declare function providerRequestJson<T>(input: ProviderRequestInput & {
|
|
17489
|
+
schema: z.ZodType<T>;
|
|
17490
|
+
}): Promise<T>;
|
|
17491
|
+
//#endregion
|
|
17492
|
+
//#region packages/core/src/provider-extensions/runtime.d.ts
|
|
17493
|
+
type ProviderRuntimeOptions = {
|
|
17494
|
+
fetch?: ProviderFetch;
|
|
17495
|
+
maxRequests?: number;
|
|
17496
|
+
now?: () => Date;
|
|
17497
|
+
};
|
|
17498
|
+
declare function normalizeProviderExtensionAccount(provider: Pick<SeoProviderRegistration, 'displayName' | 'connection'>, account: Readonly<Record<string, string>>): Record<string, string>;
|
|
17499
|
+
declare function loadProviderExtensions(): Promise<LoadedProviderExtensions>;
|
|
17500
|
+
declare function safeProviderAdapterError(providerId: string, error: unknown, credentials: Readonly<Record<string, string>>): Error;
|
|
17501
|
+
declare function runtimeForProvider(provider: string, options?: ProviderRuntimeOptions): SeoProviderRuntime;
|
|
17502
|
+
declare function verifyProviderExtension(input: {
|
|
17503
|
+
providerId: string;
|
|
17504
|
+
account: Readonly<Record<string, string>>;
|
|
17505
|
+
credentials: Readonly<Record<string, string>>;
|
|
17506
|
+
runtime?: ProviderRuntimeOptions;
|
|
17507
|
+
}): Promise<void>;
|
|
17508
|
+
//#endregion
|
|
17509
|
+
//#region packages/core/src/provider-extensions/analytics.d.ts
|
|
17510
|
+
type AnalyticsProviderRuntimeOptions = ProviderRuntimeOptions;
|
|
17511
|
+
declare function verifyAnalyticsProvider(input: {
|
|
17512
|
+
providerId: string;
|
|
17513
|
+
account: Readonly<Record<string, string>>;
|
|
17514
|
+
credentials: Readonly<Record<string, string>>;
|
|
17515
|
+
runtime?: AnalyticsProviderRuntimeOptions;
|
|
17516
|
+
}): Promise<void>;
|
|
17517
|
+
declare function runAnalyticsProviderLandingPages(input: {
|
|
17518
|
+
providerId: string;
|
|
17519
|
+
account: Readonly<Record<string, string>>;
|
|
17520
|
+
credentials?: Readonly<Record<string, string>>;
|
|
17521
|
+
startDate: string;
|
|
17522
|
+
endDate: string;
|
|
17523
|
+
limit: number;
|
|
17524
|
+
refresh?: boolean;
|
|
17525
|
+
runtime?: AnalyticsProviderRuntimeOptions;
|
|
17526
|
+
}): Promise<SeoLandingPageVisitsResult>;
|
|
17527
|
+
//#endregion
|
|
17528
|
+
//#region packages/core/src/analyze/workflows/analytics-value.d.ts
|
|
17529
|
+
type LandingPageValue = {
|
|
17530
|
+
sessions: number;
|
|
17531
|
+
totalUsers?: number;
|
|
17532
|
+
conversions?: number;
|
|
17533
|
+
};
|
|
17534
|
+
type LandingPageValueSource = {
|
|
17535
|
+
provider?: string;
|
|
17536
|
+
observedMetrics?: Array<'sessions' | 'totalUsers' | 'conversions'>;
|
|
17537
|
+
dataStatus?: 'complete' | 'partial';
|
|
17538
|
+
returnedRows: number;
|
|
17539
|
+
availableRows?: number;
|
|
17540
|
+
retainedRowLimit: number;
|
|
17541
|
+
retainedRowLimitReached: boolean;
|
|
17542
|
+
qualityWarnings?: string[];
|
|
17543
|
+
};
|
|
17544
|
+
type LandingPageValueResult = {
|
|
17545
|
+
values: Map<string, LandingPageValue>;
|
|
17546
|
+
source?: LandingPageValueSource;
|
|
17547
|
+
warning?: string;
|
|
17548
|
+
};
|
|
17549
|
+
type LandingPageValueDependencies = {
|
|
17550
|
+
runGa4Report: typeof runGa4Report;
|
|
17551
|
+
analyticsLandingPages: typeof runAnalyticsProviderLandingPages;
|
|
17552
|
+
};
|
|
17553
|
+
declare function landingValueForUrl(values: Map<string, LandingPageValue>, url: string): LandingPageValue | undefined;
|
|
17554
|
+
declare function fetchLandingPageValues(input: {
|
|
17555
|
+
connection?: AnalyticsConnection;
|
|
17556
|
+
propertyId?: string;
|
|
17557
|
+
startDate: string;
|
|
17558
|
+
endDate: string;
|
|
17559
|
+
limit?: number;
|
|
17560
|
+
refresh?: boolean;
|
|
17561
|
+
}, dependencies?: Partial<LandingPageValueDependencies>): Promise<LandingPageValueResult>;
|
|
17562
|
+
//#endregion
|
|
17563
|
+
//#region packages/core/src/analyze/crawler/site-crawl-dependencies.d.ts
|
|
17564
|
+
type ResolvedCrawlSiteDependencies = {
|
|
17565
|
+
fetchPage: typeof crawlOne;
|
|
17566
|
+
fetchStatusPage: typeof crawlStatusOnly;
|
|
17567
|
+
fetchSitemapUrls: typeof fetchSitemapUrls;
|
|
17568
|
+
fetch: typeof publicHttpFetch;
|
|
17569
|
+
queryPageMetrics: typeof queryPageMetrics;
|
|
17570
|
+
queryPageTopQuery: typeof queryPageTopQuery;
|
|
17571
|
+
queryPagesMetrics?: typeof queryPagesMetrics;
|
|
17572
|
+
queryPagesTopQueries?: typeof queryPagesTopQueries;
|
|
17573
|
+
queryPagesMetricsBatch?: typeof queryPagesMetricsBatch;
|
|
17574
|
+
queryPagesTopQueriesBatch?: typeof queryPagesTopQueriesBatch;
|
|
17575
|
+
fetchLandingPageValues: typeof fetchLandingPageValues;
|
|
17576
|
+
landingValueForUrl: typeof landingValueForUrl;
|
|
17577
|
+
now: () => Date;
|
|
17578
|
+
memoryUsage: () => Pick<NodeJS.MemoryUsage, 'rss' | 'heapUsed' | 'external'>;
|
|
17579
|
+
totalMemory: () => number;
|
|
17580
|
+
};
|
|
17581
|
+
type CrawlSiteDependencies = Partial<ResolvedCrawlSiteDependencies>;
|
|
17582
|
+
//#endregion
|
|
17583
|
+
//#region packages/core/src/analyze/crawler/site-crawl.d.ts
|
|
17584
|
+
declare function crawlSite(input: CrawlConfigInput, dependencies?: CrawlSiteDependencies): Promise<CrawlReport>;
|
|
17585
|
+
//#endregion
|
|
18186
17586
|
//#region packages/core/src/analyze/query-quality.d.ts
|
|
18187
17587
|
type QueryFlag = 'likely-automated' | 'navigational-other';
|
|
18188
17588
|
declare const QUERY_FLAG_METHOD: {
|
|
@@ -19649,194 +19049,6 @@ declare function findOverlappingSearchUpdates(input: {
|
|
|
19649
19049
|
paddingDays?: number;
|
|
19650
19050
|
}): SearchUpdate[];
|
|
19651
19051
|
//#endregion
|
|
19652
|
-
//#region packages/core/src/analyze/experiments/types.d.ts
|
|
19653
|
-
type ContentGroupDimension = 'page' | 'query';
|
|
19654
|
-
type ContentGroupMatchType = 'equals' | 'contains' | 'regex';
|
|
19655
|
-
type ContentGroup = {
|
|
19656
|
-
id: string;
|
|
19657
|
-
site: string;
|
|
19658
|
-
name: string;
|
|
19659
|
-
dimension: ContentGroupDimension;
|
|
19660
|
-
matchType: ContentGroupMatchType;
|
|
19661
|
-
pattern: string;
|
|
19662
|
-
createdAt: string;
|
|
19663
|
-
};
|
|
19664
|
-
type ChangeScope = 'site' | 'page' | 'query' | 'group';
|
|
19665
|
-
type SeoChange = {
|
|
19666
|
-
id: string;
|
|
19667
|
-
site: string;
|
|
19668
|
-
scope: ChangeScope;
|
|
19669
|
-
target: string;
|
|
19670
|
-
title: string;
|
|
19671
|
-
description?: string;
|
|
19672
|
-
changedAt: string;
|
|
19673
|
-
createdAt: string;
|
|
19674
|
-
};
|
|
19675
|
-
type TestMetrics = {
|
|
19676
|
-
clicks: number;
|
|
19677
|
-
impressions: number;
|
|
19678
|
-
ctr: number;
|
|
19679
|
-
position: number;
|
|
19680
|
-
};
|
|
19681
|
-
type AnalyticsTestMetrics = {
|
|
19682
|
-
sessions: number;
|
|
19683
|
-
engagedSessions: number;
|
|
19684
|
-
conversions: number;
|
|
19685
|
-
totalRevenue: number;
|
|
19686
|
-
};
|
|
19687
|
-
type MetricDelta = {
|
|
19688
|
-
clicks: number | null;
|
|
19689
|
-
clickPct: number | null;
|
|
19690
|
-
impressions: number | null;
|
|
19691
|
-
impressionPct: number | null;
|
|
19692
|
-
ctr: number | null;
|
|
19693
|
-
position: number | null;
|
|
19694
|
-
};
|
|
19695
|
-
type AnalyticsMetricDelta = {
|
|
19696
|
-
sessions: number;
|
|
19697
|
-
sessionPct: number | null;
|
|
19698
|
-
engagedSessions: number;
|
|
19699
|
-
engagedSessionPct: number | null;
|
|
19700
|
-
conversions: number;
|
|
19701
|
-
conversionPct: number | null;
|
|
19702
|
-
totalRevenue: number;
|
|
19703
|
-
revenuePct: number | null;
|
|
19704
|
-
};
|
|
19705
|
-
type ChangeMeasurement = {
|
|
19706
|
-
schemaVersion: 1;
|
|
19707
|
-
methodology: 'equal-finalized-calendar-windows-v1';
|
|
19708
|
-
dataStatus: 'complete' | 'partial';
|
|
19709
|
-
change: SeoChange;
|
|
19710
|
-
window: {
|
|
19711
|
-
requestedDays: number;
|
|
19712
|
-
effectiveDays: number;
|
|
19713
|
-
afterWindowTruncated: boolean;
|
|
19714
|
-
gscTimezone: 'America/Los_Angeles';
|
|
19715
|
-
availableDateWindow: {
|
|
19716
|
-
earliestDate: string;
|
|
19717
|
-
latestFinalDate: string;
|
|
19718
|
-
};
|
|
19719
|
-
};
|
|
19720
|
-
source: {
|
|
19721
|
-
searchAnalytics: {
|
|
19722
|
-
status: 'complete' | 'partial';
|
|
19723
|
-
completeness: 'date-aggregates' | 'retained-query-date-aggregates';
|
|
19724
|
-
dimensions: ['date'];
|
|
19725
|
-
searchType: 'web';
|
|
19726
|
-
dataState: 'final';
|
|
19727
|
-
before: {
|
|
19728
|
-
calls: number;
|
|
19729
|
-
rowsFetched: number;
|
|
19730
|
-
returnedRows: number;
|
|
19731
|
-
invalidRows: number;
|
|
19732
|
-
duplicateRows: number;
|
|
19733
|
-
};
|
|
19734
|
-
after: {
|
|
19735
|
-
calls: number;
|
|
19736
|
-
rowsFetched: number;
|
|
19737
|
-
returnedRows: number;
|
|
19738
|
-
invalidRows: number;
|
|
19739
|
-
duplicateRows: number;
|
|
19740
|
-
};
|
|
19741
|
-
control?: {
|
|
19742
|
-
status: 'complete' | 'partial';
|
|
19743
|
-
completeness: 'date-aggregates' | 'retained-query-date-aggregates';
|
|
19744
|
-
before: ChangeMeasurement['source']['searchAnalytics']['before'];
|
|
19745
|
-
after: ChangeMeasurement['source']['searchAnalytics']['after'];
|
|
19746
|
-
};
|
|
19747
|
-
warnings: string[];
|
|
19748
|
-
};
|
|
19749
|
-
analytics?: {
|
|
19750
|
-
status: 'complete' | 'partial';
|
|
19751
|
-
before: {
|
|
19752
|
-
rows: number;
|
|
19753
|
-
rowCount: number;
|
|
19754
|
-
timeZone?: string;
|
|
19755
|
-
currencyCode?: string;
|
|
19756
|
-
};
|
|
19757
|
-
after: {
|
|
19758
|
-
rows: number;
|
|
19759
|
-
rowCount: number;
|
|
19760
|
-
timeZone?: string;
|
|
19761
|
-
currencyCode?: string;
|
|
19762
|
-
};
|
|
19763
|
-
warnings: string[];
|
|
19764
|
-
};
|
|
19765
|
-
};
|
|
19766
|
-
before: {
|
|
19767
|
-
startDate: string;
|
|
19768
|
-
endDate: string;
|
|
19769
|
-
metrics: TestMetrics | null;
|
|
19770
|
-
};
|
|
19771
|
-
after: {
|
|
19772
|
-
startDate: string;
|
|
19773
|
-
endDate: string;
|
|
19774
|
-
metrics: TestMetrics | null;
|
|
19775
|
-
};
|
|
19776
|
-
delta: MetricDelta;
|
|
19777
|
-
analytics?: {
|
|
19778
|
-
propertyId: string;
|
|
19779
|
-
before: {
|
|
19780
|
-
startDate: string;
|
|
19781
|
-
endDate: string;
|
|
19782
|
-
metrics: AnalyticsTestMetrics;
|
|
19783
|
-
};
|
|
19784
|
-
after: {
|
|
19785
|
-
startDate: string;
|
|
19786
|
-
endDate: string;
|
|
19787
|
-
metrics: AnalyticsTestMetrics;
|
|
19788
|
-
};
|
|
19789
|
-
delta: AnalyticsMetricDelta;
|
|
19790
|
-
note: string;
|
|
19791
|
-
};
|
|
19792
|
-
control?: {
|
|
19793
|
-
change: SeoChange;
|
|
19794
|
-
before: {
|
|
19795
|
-
startDate: string;
|
|
19796
|
-
endDate: string;
|
|
19797
|
-
metrics: TestMetrics | null;
|
|
19798
|
-
};
|
|
19799
|
-
after: {
|
|
19800
|
-
startDate: string;
|
|
19801
|
-
endDate: string;
|
|
19802
|
-
metrics: TestMetrics | null;
|
|
19803
|
-
};
|
|
19804
|
-
delta: MetricDelta;
|
|
19805
|
-
adjusted: {
|
|
19806
|
-
methodology: 'control-ratio-counterfactual-v1';
|
|
19807
|
-
clickDelta: number | null;
|
|
19808
|
-
clickPctPoints: number | null;
|
|
19809
|
-
impressionDelta: number | null;
|
|
19810
|
-
impressionPctPoints: number | null;
|
|
19811
|
-
};
|
|
19812
|
-
note: string;
|
|
19813
|
-
};
|
|
19814
|
-
verdict: 'positive' | 'negative' | 'mixed' | 'flat' | 'not-enough-data';
|
|
19815
|
-
confidence: 'high' | 'medium' | 'low';
|
|
19816
|
-
note: string;
|
|
19817
|
-
warnings: string[];
|
|
19818
|
-
caveats: string[];
|
|
19819
|
-
};
|
|
19820
|
-
type ContentGroupRow = {
|
|
19821
|
-
id: string;
|
|
19822
|
-
site_url: string;
|
|
19823
|
-
name: string;
|
|
19824
|
-
dimension: ContentGroupDimension;
|
|
19825
|
-
match_type: ContentGroupMatchType;
|
|
19826
|
-
pattern: string;
|
|
19827
|
-
created_at: number;
|
|
19828
|
-
};
|
|
19829
|
-
type ChangeRow = {
|
|
19830
|
-
id: string;
|
|
19831
|
-
site_url: string;
|
|
19832
|
-
scope: ChangeScope;
|
|
19833
|
-
target: string;
|
|
19834
|
-
title: string;
|
|
19835
|
-
description?: string | null;
|
|
19836
|
-
changed_at: string;
|
|
19837
|
-
created_at: number;
|
|
19838
|
-
};
|
|
19839
|
-
//#endregion
|
|
19840
19052
|
//#region packages/core/src/analyze/traffic-anomaly-analysis.d.ts
|
|
19841
19053
|
interface TrafficAnomaly {
|
|
19842
19054
|
site: string;
|
|
@@ -19851,10 +19063,41 @@ interface TrafficAnomaly {
|
|
|
19851
19063
|
comparisonTotal: number;
|
|
19852
19064
|
percentChange: number | null;
|
|
19853
19065
|
zScore: number | null;
|
|
19854
|
-
significanceMethod: 'z-score' | 'outside-flat-baseline' | 'none';
|
|
19066
|
+
significanceMethod: 'z-score' | 'outside-flat-baseline' | 'step-change' | 'none';
|
|
19855
19067
|
direction: 'drop' | 'spike' | 'normal';
|
|
19856
19068
|
significant: boolean;
|
|
19069
|
+
/**
|
|
19070
|
+
* How the comparison was chosen. `step-change`: the daily series has a
|
|
19071
|
+
* sustained level change, so the baseline is every day before it and the
|
|
19072
|
+
* comparison is every day from it. `recent-window`: no step change, so the
|
|
19073
|
+
* last recentDays are compared with the days before them. Optional only
|
|
19074
|
+
* for older fixtures.
|
|
19075
|
+
*/
|
|
19076
|
+
detection?: 'step-change' | 'recent-window';
|
|
19077
|
+
/** First observed day at the new level for a step change, else null. */
|
|
19078
|
+
changeDate?: string | null;
|
|
19857
19079
|
}
|
|
19080
|
+
/** The step-change heuristic and its thresholds, returned with the report. */
|
|
19081
|
+
declare const STEP_CHANGE_RULES: {
|
|
19082
|
+
readonly method: "best-split";
|
|
19083
|
+
readonly description: "Heuristic. The change date is the split of the daily series where the mean before and the mean after differ most, weighted by segment length. It counts as a step change only when it is sudden and sustained. Sudden: the median of up to localDays observed days after the date differs from the median of up to localDays days before it by at least minLocalShiftInStdDevs pooled within-segment standard deviations, so one unusual day is not a step and a slow trend is not a step. Sustained: the mean of every day from the date differs from the mean before it by a z-score of at least minZScore, stricter than the recent-window test because the date is chosen from the data. Otherwise the last recentDays are compared with the days before them.";
|
|
19084
|
+
readonly minDaysBefore: 7;
|
|
19085
|
+
readonly minDaysAfter: 3;
|
|
19086
|
+
readonly localDays: 7;
|
|
19087
|
+
readonly minLocalShiftInStdDevs: 2;
|
|
19088
|
+
readonly minZScore: 3;
|
|
19089
|
+
};
|
|
19090
|
+
type TrafficAnomalyDetection = typeof STEP_CHANGE_RULES & {
|
|
19091
|
+
recentDays: number;
|
|
19092
|
+
};
|
|
19093
|
+
/**
|
|
19094
|
+
* The dates to check against Google updates (before padding): the change
|
|
19095
|
+
* date of the first significant step change, else the comparison window.
|
|
19096
|
+
*/
|
|
19097
|
+
declare function changeWindow(anomalies: TrafficAnomaly[]): {
|
|
19098
|
+
start: string;
|
|
19099
|
+
end: string;
|
|
19100
|
+
} | undefined;
|
|
19858
19101
|
interface TrafficAnomalyCoverage {
|
|
19859
19102
|
status: 'complete' | 'partial';
|
|
19860
19103
|
requestedStart: string;
|
|
@@ -19865,6 +19108,10 @@ interface TrafficAnomalyCoverage {
|
|
|
19865
19108
|
duplicateRows: number;
|
|
19866
19109
|
expectedDays: number;
|
|
19867
19110
|
missingDays: number;
|
|
19111
|
+
/**
|
|
19112
|
+
* The recent-window split (last recentDays against the days before). A
|
|
19113
|
+
* metric with a step change uses its own dates, shown on its anomaly row.
|
|
19114
|
+
*/
|
|
19868
19115
|
baseline: {
|
|
19869
19116
|
start: string;
|
|
19870
19117
|
end: string;
|
|
@@ -19904,6 +19151,8 @@ interface TrafficAnomalyReport {
|
|
|
19904
19151
|
/** Row and day counts behind the anomaly test. Optional only for older fixtures. */
|
|
19905
19152
|
selection?: TrafficAnomalySelection;
|
|
19906
19153
|
coverage?: TrafficAnomalyCoverage;
|
|
19154
|
+
/** Detection method and thresholds. Optional only for older fixtures. */
|
|
19155
|
+
detection?: TrafficAnomalyDetection;
|
|
19907
19156
|
}
|
|
19908
19157
|
interface UpdateCorrelationReport {
|
|
19909
19158
|
site: string;
|
|
@@ -19925,19 +19174,9 @@ interface UpdateCorrelationReport {
|
|
|
19925
19174
|
};
|
|
19926
19175
|
}
|
|
19927
19176
|
type UpdateConfounder = {
|
|
19928
|
-
source: '
|
|
19177
|
+
source: 'manual';
|
|
19929
19178
|
title: string;
|
|
19930
|
-
date?: string;
|
|
19931
|
-
scope?: ChangeScope;
|
|
19932
|
-
target?: string;
|
|
19933
|
-
description?: string;
|
|
19934
19179
|
};
|
|
19935
|
-
declare function changesInWindow(input: {
|
|
19936
|
-
changes: SeoChange[];
|
|
19937
|
-
startDate?: string;
|
|
19938
|
-
endDate?: string;
|
|
19939
|
-
paddingDays: number;
|
|
19940
|
-
}): SeoChange[];
|
|
19941
19180
|
declare function interpretUpdateCorrelation(input: {
|
|
19942
19181
|
site: string;
|
|
19943
19182
|
anomalies: TrafficAnomaly[];
|
|
@@ -19957,6 +19196,7 @@ declare function analyzeTrafficAnomalyRows(input: {
|
|
|
19957
19196
|
}): {
|
|
19958
19197
|
anomalies: TrafficAnomaly[];
|
|
19959
19198
|
coverage: TrafficAnomalyCoverage;
|
|
19199
|
+
detection: TrafficAnomalyDetection;
|
|
19960
19200
|
};
|
|
19961
19201
|
//#endregion
|
|
19962
19202
|
//#region packages/core/src/analyze/traffic-anomaly-report.d.ts
|
|
@@ -19984,7 +19224,6 @@ declare function updateCorrelation(input: {
|
|
|
19984
19224
|
endDate?: string;
|
|
19985
19225
|
paddingDays?: number;
|
|
19986
19226
|
knownConfounders?: string[];
|
|
19987
|
-
includeChangeLog?: boolean;
|
|
19988
19227
|
refresh?: boolean;
|
|
19989
19228
|
trafficAnomalies?: TrafficAnomaly[];
|
|
19990
19229
|
}): Promise<UpdateCorrelationReport>;
|
|
@@ -20065,57 +19304,6 @@ declare function diagnoseProperty(input: {
|
|
|
20065
19304
|
progress?: ProgressReporter;
|
|
20066
19305
|
}, dependencies?: Partial<DiagnosePropertyDependencies>): Promise<DiagnosePropertyReport>;
|
|
20067
19306
|
//#endregion
|
|
20068
|
-
//#region packages/core/src/analyze/experiments/change-log.d.ts
|
|
20069
|
-
declare function recordChange(input: {
|
|
20070
|
-
site: string;
|
|
20071
|
-
scope: ChangeScope;
|
|
20072
|
-
target: string;
|
|
20073
|
-
title: string;
|
|
20074
|
-
description?: string;
|
|
20075
|
-
changedAt: string;
|
|
20076
|
-
}): SeoChange;
|
|
20077
|
-
declare function listChanges(input?: {
|
|
20078
|
-
site?: string;
|
|
20079
|
-
limit?: number;
|
|
20080
|
-
}): SeoChange[];
|
|
20081
|
-
declare function getChange(id: string): SeoChange | undefined;
|
|
20082
|
-
declare function deleteChange(id: string): boolean;
|
|
20083
|
-
//#endregion
|
|
20084
|
-
//#region packages/core/src/analyze/experiments/content-groups.d.ts
|
|
20085
|
-
declare function createContentGroup(input: {
|
|
20086
|
-
site: string;
|
|
20087
|
-
name: string;
|
|
20088
|
-
dimension?: ContentGroupDimension;
|
|
20089
|
-
matchType?: ContentGroupMatchType;
|
|
20090
|
-
pattern: string;
|
|
20091
|
-
}): ContentGroup;
|
|
20092
|
-
declare function listContentGroups(site?: string): ContentGroup[];
|
|
20093
|
-
declare function getContentGroup(id: string): ContentGroup | undefined;
|
|
20094
|
-
declare function deleteContentGroup(id: string): boolean;
|
|
20095
|
-
//#endregion
|
|
20096
|
-
//#region packages/core/src/analyze/experiments/measure-change.d.ts
|
|
20097
|
-
type MeasureChangeDependencies = {
|
|
20098
|
-
searchAnalytics: typeof querySearchAnalytics;
|
|
20099
|
-
googleAnalyticsReport: typeof runGa4Report;
|
|
20100
|
-
contentGroup: typeof getContentGroup;
|
|
20101
|
-
now: () => Date;
|
|
20102
|
-
};
|
|
20103
|
-
declare function measureChange(input: {
|
|
20104
|
-
id?: string;
|
|
20105
|
-
site?: string;
|
|
20106
|
-
scope?: ChangeScope;
|
|
20107
|
-
target?: string;
|
|
20108
|
-
title?: string;
|
|
20109
|
-
changedAt?: string;
|
|
20110
|
-
googleAnalyticsPropertyId?: string;
|
|
20111
|
-
controlScope?: ChangeScope;
|
|
20112
|
-
controlTarget?: string;
|
|
20113
|
-
controlTitle?: string;
|
|
20114
|
-
beforeDays?: number;
|
|
20115
|
-
afterDays?: number;
|
|
20116
|
-
refresh?: boolean;
|
|
20117
|
-
}, dependencies?: MeasureChangeDependencies): Promise<ChangeMeasurement>;
|
|
20118
|
-
//#endregion
|
|
20119
19307
|
//#region packages/core/src/analyze/internal-links-types.d.ts
|
|
20120
19308
|
type InternalLinkMatchKind = 'exact-query' | 'lexical-review';
|
|
20121
19309
|
interface InternalLinkQueryMatch {
|
|
@@ -20346,50 +19534,6 @@ interface InternalLinksDependencies {
|
|
|
20346
19534
|
}
|
|
20347
19535
|
declare function internalLinksReport(input: InternalLinksInput, dependencies?: InternalLinksDependencies): Promise<InternalLinksReport>;
|
|
20348
19536
|
//#endregion
|
|
20349
|
-
//#region packages/core/src/analyze/monitoring/crawl-diff.d.ts
|
|
20350
|
-
declare function compareCrawlPages(input: {
|
|
20351
|
-
current: CrawlPageSnapshot[];
|
|
20352
|
-
previous: CrawlPageSnapshot[];
|
|
20353
|
-
}): CrawlDiffItem[];
|
|
20354
|
-
declare function crawlDiff(input: {
|
|
20355
|
-
startUrl: string;
|
|
20356
|
-
site?: string;
|
|
20357
|
-
limit?: number;
|
|
20358
|
-
refresh?: boolean;
|
|
20359
|
-
js?: boolean | 'auto';
|
|
20360
|
-
}): Promise<CrawlDiffReport>;
|
|
20361
|
-
//#endregion
|
|
20362
|
-
//#region packages/core/src/analyze/monitoring/crawl-recommendations.d.ts
|
|
20363
|
-
declare function recommendCrawlDiffItem(item: CrawlDiffItem): CrawlDiffRecommendation | undefined;
|
|
20364
|
-
declare function attachCrawlRecommendations(items: CrawlDiffItem[]): CrawlDiffItem[];
|
|
20365
|
-
declare function topCrawlRecommendations(items: CrawlDiffItem[]): Array<CrawlDiffRecommendation & {
|
|
20366
|
-
url: string;
|
|
20367
|
-
}>;
|
|
20368
|
-
//#endregion
|
|
20369
|
-
//#region packages/core/src/analyze/monitoring/crawl-store.d.ts
|
|
20370
|
-
declare const CRAWL_RUN_RETENTION = 20;
|
|
20371
|
-
declare function getPreviousRun(input: {
|
|
20372
|
-
site: string;
|
|
20373
|
-
startUrl: string;
|
|
20374
|
-
currentRunId: string;
|
|
20375
|
-
}): CrawlRun | undefined;
|
|
20376
|
-
declare function getRunPages(runId: string): Map<string, CrawlPageSnapshot>;
|
|
20377
|
-
declare function insertCrawlRun(run: CrawlRun, pages: CrawlPageSnapshot[], recommendations?: Array<CrawlDiffRecommendation & {
|
|
20378
|
-
url: string;
|
|
20379
|
-
}>): void;
|
|
20380
|
-
declare function latestCrawlSummaries(site: string, limit?: number): Array<CrawlRun & {
|
|
20381
|
-
statusErrors: number;
|
|
20382
|
-
nonIndexable: number;
|
|
20383
|
-
recommendations: number;
|
|
20384
|
-
highPriorityRecommendations: number;
|
|
20385
|
-
topRecommendation?: {
|
|
20386
|
-
url: string;
|
|
20387
|
-
title: string;
|
|
20388
|
-
action: string;
|
|
20389
|
-
severity: string;
|
|
20390
|
-
};
|
|
20391
|
-
}>;
|
|
20392
|
-
//#endregion
|
|
20393
19537
|
//#region packages/core/src/analyze/url-templates.d.ts
|
|
20394
19538
|
type PseoTemplateCluster = {
|
|
20395
19539
|
id: string;
|
|
@@ -20563,7 +19707,8 @@ type SearchAnalytics = typeof querySearchAnalytics;
|
|
|
20563
19707
|
type FetchSitemap = typeof fetchSitemapUrls;
|
|
20564
19708
|
type IndexCoverageReportInput = {
|
|
20565
19709
|
site: string;
|
|
20566
|
-
|
|
19710
|
+
/** Start URL for the crawl. Defaults to the property's home page. */
|
|
19711
|
+
url?: string;
|
|
20567
19712
|
sitemaps?: string[];
|
|
20568
19713
|
days?: number;
|
|
20569
19714
|
rowLimit?: number;
|
|
@@ -20597,189 +19742,13 @@ type IndexCoverageReport = IndexCoverageSignalsReport & {
|
|
|
20597
19742
|
};
|
|
20598
19743
|
};
|
|
20599
19744
|
type IndexCoverageReportDependencies = {
|
|
20600
|
-
|
|
20601
|
-
latestCrawl: (site: string) => CrawlReport | undefined;
|
|
19745
|
+
crawl: (input: CrawlConfigInput) => Promise<CrawlReport>;
|
|
20602
19746
|
searchAnalytics: SearchAnalytics;
|
|
20603
19747
|
fetchSitemap: FetchSitemap;
|
|
20604
19748
|
now: () => Date;
|
|
20605
19749
|
};
|
|
20606
19750
|
declare function indexCoverageSignals(input: IndexCoverageReportInput, dependencies?: IndexCoverageReportDependencies): Promise<IndexCoverageReport>;
|
|
20607
19751
|
//#endregion
|
|
20608
|
-
//#region packages/core/src/analyze/monitoring/index-monitor.d.ts
|
|
20609
|
-
type DueUrl = {
|
|
20610
|
-
url: string;
|
|
20611
|
-
lastInspectedAt?: number;
|
|
20612
|
-
dueReason: 'never-attempted' | 'never-succeeded' | 'stale';
|
|
20613
|
-
};
|
|
20614
|
-
type DueIndexUrl = DueUrl & {
|
|
20615
|
-
property: string;
|
|
20616
|
-
};
|
|
20617
|
-
type DueIndexSelection = {
|
|
20618
|
-
selected: DueIndexUrl[];
|
|
20619
|
-
summary: {
|
|
20620
|
-
neverAttempted: number;
|
|
20621
|
-
neverSucceeded: number;
|
|
20622
|
-
retryWaiting: number;
|
|
20623
|
-
fresh: number;
|
|
20624
|
-
stale: number;
|
|
20625
|
-
due: number;
|
|
20626
|
-
unselectedDue: number;
|
|
20627
|
-
};
|
|
20628
|
-
};
|
|
20629
|
-
declare function planDueIndexUrls(input: {
|
|
20630
|
-
site: string;
|
|
20631
|
-
urls: string[];
|
|
20632
|
-
accountProperties: string[];
|
|
20633
|
-
dailyLimit: number;
|
|
20634
|
-
inspectLimit: number;
|
|
20635
|
-
staleAfterDays?: number;
|
|
20636
|
-
failureRetryHours?: number;
|
|
20637
|
-
now?: Date;
|
|
20638
|
-
}): DueIndexSelection;
|
|
20639
|
-
declare function selectDueIndexUrls(input: Parameters<typeof planDueIndexUrls>[0]): DueIndexUrl[];
|
|
20640
|
-
declare function indexMonitor(input: {
|
|
20641
|
-
site: string;
|
|
20642
|
-
sitemaps: string[];
|
|
20643
|
-
properties?: string[];
|
|
20644
|
-
dailyLimit?: number;
|
|
20645
|
-
inspectLimit?: number;
|
|
20646
|
-
maxUrls?: number;
|
|
20647
|
-
languageCode?: string;
|
|
20648
|
-
refresh?: boolean;
|
|
20649
|
-
}): Promise<IndexMonitorReport>;
|
|
20650
|
-
//#endregion
|
|
20651
|
-
//#region packages/core/src/analyze/monitoring/index-plan.d.ts
|
|
20652
|
-
type IndexPlanProperty = {
|
|
20653
|
-
property: string;
|
|
20654
|
-
urlCount: number;
|
|
20655
|
-
dailyLimit: number;
|
|
20656
|
-
cycleDays: number;
|
|
20657
|
-
sampleUrls: string[];
|
|
20658
|
-
};
|
|
20659
|
-
type IndexPlanSuggestion = {
|
|
20660
|
-
property: string;
|
|
20661
|
-
urlCount: number;
|
|
20662
|
-
currentProperty: string;
|
|
20663
|
-
estimatedCycleDays: number;
|
|
20664
|
-
sampleUrls: string[];
|
|
20665
|
-
reason: string;
|
|
20666
|
-
};
|
|
20667
|
-
type IndexCoveragePlan = {
|
|
20668
|
-
site: string;
|
|
20669
|
-
generatedAt: string;
|
|
20670
|
-
summary: {
|
|
20671
|
-
sitemapUrls: number;
|
|
20672
|
-
urlCount: number;
|
|
20673
|
-
properties: number;
|
|
20674
|
-
dailyCapacity: number;
|
|
20675
|
-
estimatedCycleDays: number;
|
|
20676
|
-
targetCycleDays: number;
|
|
20677
|
-
suggestedProperties: number;
|
|
20678
|
-
};
|
|
20679
|
-
properties: IndexPlanProperty[];
|
|
20680
|
-
suggestions: IndexPlanSuggestion[];
|
|
20681
|
-
warnings: string[];
|
|
20682
|
-
};
|
|
20683
|
-
type IndexPropertyUrlAllocation = {
|
|
20684
|
-
property: string;
|
|
20685
|
-
urls: string[];
|
|
20686
|
-
};
|
|
20687
|
-
type IndexCoveragePlanInput = {
|
|
20688
|
-
site: string;
|
|
20689
|
-
urls: string[];
|
|
20690
|
-
sitemaps?: string[];
|
|
20691
|
-
accountProperties: string[];
|
|
20692
|
-
dailyLimit?: number;
|
|
20693
|
-
targetCycleDays?: number;
|
|
20694
|
-
suggestionLimit?: number;
|
|
20695
|
-
warnings?: string[];
|
|
20696
|
-
};
|
|
20697
|
-
declare function propertyMatchesUrl(property: string, url: string): boolean;
|
|
20698
|
-
declare function allocateIndexUrlsToProperties(input: {
|
|
20699
|
-
site: string;
|
|
20700
|
-
urls: string[];
|
|
20701
|
-
accountProperties: string[];
|
|
20702
|
-
}): IndexPropertyUrlAllocation[];
|
|
20703
|
-
declare function indexCoveragePlan(input: {
|
|
20704
|
-
site: string;
|
|
20705
|
-
sitemaps: string[];
|
|
20706
|
-
properties?: string[];
|
|
20707
|
-
dailyLimit?: number;
|
|
20708
|
-
targetCycleDays?: number;
|
|
20709
|
-
maxUrls?: number;
|
|
20710
|
-
suggestionLimit?: number;
|
|
20711
|
-
refresh?: boolean;
|
|
20712
|
-
}): Promise<IndexCoveragePlan>;
|
|
20713
|
-
declare function planIndexCoverageFromUrls(input: IndexCoveragePlanInput): IndexCoveragePlan;
|
|
20714
|
-
//#endregion
|
|
20715
|
-
//#region packages/core/src/storage/sqlite.d.ts
|
|
20716
|
-
type TransactionFunction = (...params: never[]) => unknown;
|
|
20717
|
-
declare class Statement {
|
|
20718
|
-
private readonly statement;
|
|
20719
|
-
constructor(statement: Libsql.Statement);
|
|
20720
|
-
run(...params: unknown[]): SqliteDatabase.RunResult;
|
|
20721
|
-
get(...params: unknown[]): unknown;
|
|
20722
|
-
all(...params: unknown[]): unknown[];
|
|
20723
|
-
}
|
|
20724
|
-
declare class SqliteDatabase {
|
|
20725
|
-
private readonly database;
|
|
20726
|
-
constructor(filename: string | Buffer);
|
|
20727
|
-
prepare(source: string): Statement;
|
|
20728
|
-
transaction<F extends TransactionFunction>(fn: F): Libsql.Transaction<F>;
|
|
20729
|
-
exec(source: string): this;
|
|
20730
|
-
pragma(source: string): unknown;
|
|
20731
|
-
close(): this;
|
|
20732
|
-
}
|
|
20733
|
-
declare namespace SqliteDatabase {
|
|
20734
|
-
type Database = SqliteDatabase;
|
|
20735
|
-
type RunResult = {
|
|
20736
|
-
changes: number;
|
|
20737
|
-
lastInsertRowid: number | bigint;
|
|
20738
|
-
};
|
|
20739
|
-
}
|
|
20740
|
-
//#endregion
|
|
20741
|
-
//#region packages/core/src/storage/database.d.ts
|
|
20742
|
-
declare function ensurePrivateDatabaseFiles(path: string): void;
|
|
20743
|
-
declare function getDb(): SqliteDatabase.Database;
|
|
20744
|
-
declare function noteCacheWrite(sizeBytes?: number, database?: SqliteDatabase.Database): void;
|
|
20745
|
-
declare function checkDatabaseReadiness(): {
|
|
20746
|
-
dbPath: string;
|
|
20747
|
-
};
|
|
20748
|
-
declare function hashKey(parts: unknown[]): string;
|
|
20749
|
-
declare function getCacheStats(): CacheStats;
|
|
20750
|
-
declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'dataforseo' | 'ahrefs' | 'clicky' | 'http', olderThanMs?: number): number;
|
|
20751
|
-
//#endregion
|
|
20752
|
-
//#region packages/core/src/analyze/monitoring/index-watch.d.ts
|
|
20753
|
-
declare const INDEX_WATCH_ATTEMPT_RETENTION = 20;
|
|
20754
|
-
type InspectUrl = (input: UrlInspectionRequest) => Promise<UrlInspectionResult>;
|
|
20755
|
-
type IndexWatchStore = {
|
|
20756
|
-
latest(rootSite: string, url: string): IndexWatchPrevious | undefined;
|
|
20757
|
-
insert(item: IndexWatchItem): void;
|
|
20758
|
-
};
|
|
20759
|
-
type IndexWatchDependencies = {
|
|
20760
|
-
inspectUrl: InspectUrl;
|
|
20761
|
-
now: () => Date;
|
|
20762
|
-
store: IndexWatchStore;
|
|
20763
|
-
};
|
|
20764
|
-
declare function pruneIndexWatchSnapshots(rootSite: string, url: string, database?: ReturnType<typeof getDb>): number;
|
|
20765
|
-
declare function indexWatch(input: {
|
|
20766
|
-
site: string;
|
|
20767
|
-
rootSite?: string;
|
|
20768
|
-
urls: string[];
|
|
20769
|
-
languageCode?: string;
|
|
20770
|
-
dailyLimit?: number;
|
|
20771
|
-
continueOnPropertyError?: boolean;
|
|
20772
|
-
}, dependencies?: IndexWatchDependencies): Promise<IndexWatchReport>;
|
|
20773
|
-
declare function latestIndexWatchSummary(site: string): {
|
|
20774
|
-
inspectedUrls: number;
|
|
20775
|
-
earliestInspectedAt?: string;
|
|
20776
|
-
latestInspectedAt?: string;
|
|
20777
|
-
currentIssues: number;
|
|
20778
|
-
failed: number;
|
|
20779
|
-
nonPass: number;
|
|
20780
|
-
blocked: number;
|
|
20781
|
-
};
|
|
20782
|
-
//#endregion
|
|
20783
19752
|
//#region packages/core/src/analyze/monitoring/redirect-trace.d.ts
|
|
20784
19753
|
type RedirectTraceStep = {
|
|
20785
19754
|
url: string;
|
|
@@ -20867,63 +19836,6 @@ declare function linkRecover(input: {
|
|
|
20867
19836
|
js?: boolean | 'auto';
|
|
20868
19837
|
}): Promise<LinkRecoverReport>;
|
|
20869
19838
|
//#endregion
|
|
20870
|
-
//#region packages/core/src/analyze/monitoring/link-recover-store.d.ts
|
|
20871
|
-
declare const LINK_RECOVER_RUN_RETENTION = 20;
|
|
20872
|
-
type LinkRecoverSummary = {
|
|
20873
|
-
id: string;
|
|
20874
|
-
site: string;
|
|
20875
|
-
createdAt: string;
|
|
20876
|
-
range: {
|
|
20877
|
-
startDate: string;
|
|
20878
|
-
endDate: string;
|
|
20879
|
-
days: number;
|
|
20880
|
-
};
|
|
20881
|
-
checked: number;
|
|
20882
|
-
recoverable: number;
|
|
20883
|
-
high: number;
|
|
20884
|
-
medium: number;
|
|
20885
|
-
low: number;
|
|
20886
|
-
clicksAtRisk: number;
|
|
20887
|
-
impressionsAtRisk: number;
|
|
20888
|
-
topIssue?: string;
|
|
20889
|
-
topUrl?: string;
|
|
20890
|
-
topAction?: string;
|
|
20891
|
-
repeatedUrls: number;
|
|
20892
|
-
repeatedTopUrl?: string;
|
|
20893
|
-
};
|
|
20894
|
-
declare function insertLinkRecoverRun(report: LinkRecoverReport): string;
|
|
20895
|
-
declare function latestLinkRecoverSummary(site: string): LinkRecoverSummary | undefined;
|
|
20896
|
-
declare function getRepeatedLinkRecoverUrls(site: string, runLimit?: number): Array<{
|
|
20897
|
-
url: string;
|
|
20898
|
-
seenCount: number;
|
|
20899
|
-
}>;
|
|
20900
|
-
//#endregion
|
|
20901
|
-
//#region packages/core/src/analyze/monitoring/status.d.ts
|
|
20902
|
-
type CheckStatus = 'clear' | 'attention' | 'stale' | 'not-run';
|
|
20903
|
-
type MonitoringStatusCheck = {
|
|
20904
|
-
name: 'crawl' | 'index' | 'link-recovery';
|
|
20905
|
-
status: CheckStatus;
|
|
20906
|
-
lastRunAt?: string;
|
|
20907
|
-
summary: string;
|
|
20908
|
-
action?: string;
|
|
20909
|
-
};
|
|
20910
|
-
type MonitoringStatusReport = {
|
|
20911
|
-
site: string;
|
|
20912
|
-
generatedAt: string;
|
|
20913
|
-
health: CheckStatus;
|
|
20914
|
-
summary: {
|
|
20915
|
-
checks: number;
|
|
20916
|
-
attention: number;
|
|
20917
|
-
stale: number;
|
|
20918
|
-
notRun: number;
|
|
20919
|
-
};
|
|
20920
|
-
checks: MonitoringStatusCheck[];
|
|
20921
|
-
};
|
|
20922
|
-
declare function monitoringStatus(input: {
|
|
20923
|
-
site: string;
|
|
20924
|
-
staleAfterDays?: number;
|
|
20925
|
-
}): MonitoringStatusReport;
|
|
20926
|
-
//#endregion
|
|
20927
19839
|
//#region packages/core/src/analyze/performance-types.d.ts
|
|
20928
19840
|
type PerformanceRating = 'good' | 'needs-work' | 'poor' | 'unknown';
|
|
20929
19841
|
type PerformanceMetric = {
|
|
@@ -21152,45 +20064,11 @@ declare function buildQueryClusterReportFromRows(input: {
|
|
|
21152
20064
|
limit?: number;
|
|
21153
20065
|
}): QueryClusterReport;
|
|
21154
20066
|
//#endregion
|
|
21155
|
-
//#region packages/core/src/errors.d.ts
|
|
21156
|
-
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';
|
|
21157
|
-
declare class SeoError extends Error {
|
|
21158
|
-
readonly code: SeoErrorCode;
|
|
21159
|
-
readonly exitCode: number;
|
|
21160
|
-
readonly retryable: boolean;
|
|
21161
|
-
constructor(code: SeoErrorCode, message: string);
|
|
21162
|
-
}
|
|
21163
|
-
declare function toSeoError(error: unknown): SeoError;
|
|
21164
|
-
declare function isSkippableReportError(error: unknown): boolean;
|
|
21165
|
-
declare function seoErrorEnvelope(error: unknown): {
|
|
21166
|
-
ok: false;
|
|
21167
|
-
error: {
|
|
21168
|
-
code: SeoErrorCode;
|
|
21169
|
-
message: string;
|
|
21170
|
-
retryable: boolean;
|
|
21171
|
-
};
|
|
21172
|
-
};
|
|
21173
|
-
//#endregion
|
|
21174
20067
|
//#region packages/core/src/analyze/reports/types.d.ts
|
|
21175
20068
|
type NarrativeSection = {
|
|
21176
20069
|
title: string;
|
|
21177
20070
|
bullets: string[];
|
|
21178
20071
|
};
|
|
21179
|
-
type ChangeMeasurementAttempt = {
|
|
21180
|
-
status: 'measured';
|
|
21181
|
-
dataStatus: ChangeMeasurement['dataStatus'];
|
|
21182
|
-
change: SeoChange;
|
|
21183
|
-
measurement: ChangeMeasurement;
|
|
21184
|
-
} | {
|
|
21185
|
-
status: 'failed';
|
|
21186
|
-
dataStatus: 'unavailable';
|
|
21187
|
-
change: SeoChange;
|
|
21188
|
-
error: {
|
|
21189
|
-
code: SeoErrorCode;
|
|
21190
|
-
message: string;
|
|
21191
|
-
retryable: boolean;
|
|
21192
|
-
};
|
|
21193
|
-
};
|
|
21194
20072
|
type ReportNarrative = {
|
|
21195
20073
|
site: string;
|
|
21196
20074
|
generatedAt: string;
|
|
@@ -21209,13 +20087,6 @@ type ReportNarrative = {
|
|
|
21209
20087
|
action: string;
|
|
21210
20088
|
}>;
|
|
21211
20089
|
diagnosis: DiagnosePropertyReport;
|
|
21212
|
-
changeMeasurements: ChangeMeasurement[];
|
|
21213
|
-
changeMeasurementAttempts: ChangeMeasurementAttempt[];
|
|
21214
|
-
monitoring: {
|
|
21215
|
-
crawlRuns: ReturnType<typeof latestCrawlSummaries>;
|
|
21216
|
-
indexWatch: ReturnType<typeof latestIndexWatchSummary>;
|
|
21217
|
-
linkRecover: ReturnType<typeof latestLinkRecoverSummary>;
|
|
21218
|
-
};
|
|
21219
20090
|
};
|
|
21220
20091
|
//#endregion
|
|
21221
20092
|
//#region packages/core/src/analyze/reports/narrative.d.ts
|
|
@@ -21226,7 +20097,6 @@ declare function reportNarrative(input: {
|
|
|
21226
20097
|
startDate?: string;
|
|
21227
20098
|
endDate?: string;
|
|
21228
20099
|
limit?: number;
|
|
21229
|
-
changeLimit?: number;
|
|
21230
20100
|
brandTerms?: string[];
|
|
21231
20101
|
includeBrand?: boolean;
|
|
21232
20102
|
verifyContent?: boolean;
|
|
@@ -21480,32 +20350,6 @@ declare function refreshPrioritiesWorkflow(input: {
|
|
|
21480
20350
|
diagnosis: Awaited<ReturnType<typeof diagnoseProperty>>;
|
|
21481
20351
|
}>>;
|
|
21482
20352
|
//#endregion
|
|
21483
|
-
//#region packages/core/src/analyze/workflows/technical-watch.d.ts
|
|
21484
|
-
type TechnicalWatchIndexOutput = Awaited<ReturnType<typeof indexWatch>> | Awaited<ReturnType<typeof indexMonitor>>;
|
|
21485
|
-
declare function technicalWatchWorkflow(input: {
|
|
21486
|
-
site: string;
|
|
21487
|
-
startUrl?: string;
|
|
21488
|
-
urls?: string[];
|
|
21489
|
-
sitemaps?: string[];
|
|
21490
|
-
properties?: string[];
|
|
21491
|
-
limit?: number;
|
|
21492
|
-
refresh?: boolean;
|
|
21493
|
-
js?: boolean | 'auto';
|
|
21494
|
-
languageCode?: string;
|
|
21495
|
-
dailyLimit?: number;
|
|
21496
|
-
inspectLimit?: number;
|
|
21497
|
-
maxUrls?: number;
|
|
21498
|
-
recoverLinks?: boolean;
|
|
21499
|
-
recoverDays?: number;
|
|
21500
|
-
recoverLimit?: number;
|
|
21501
|
-
recoverMinClicks?: number;
|
|
21502
|
-
recoverMinImpressions?: number;
|
|
21503
|
-
}): Promise<WorkflowReport<{
|
|
21504
|
-
crawl?: Awaited<ReturnType<typeof crawlDiff>>;
|
|
21505
|
-
index?: TechnicalWatchIndexOutput;
|
|
21506
|
-
recovery?: Awaited<ReturnType<typeof linkRecover>>;
|
|
21507
|
-
}>>;
|
|
21508
|
-
//#endregion
|
|
21509
20353
|
//#region packages/core/src/analyze/workflows/segments.d.ts
|
|
21510
20354
|
type WorkflowSegmentCoverage = {
|
|
21511
20355
|
evidenceScope: 'matched-retained-segments';
|
|
@@ -21575,7 +20419,6 @@ declare function updatePostmortemWorkflow(input: {
|
|
|
21575
20419
|
brandTerms?: string[];
|
|
21576
20420
|
includeBrand?: boolean;
|
|
21577
20421
|
knownConfounders?: string[];
|
|
21578
|
-
includeChangeLog?: boolean;
|
|
21579
20422
|
refresh?: boolean;
|
|
21580
20423
|
}, dependencies?: {
|
|
21581
20424
|
updateCorrelation?: typeof updateCorrelation;
|
|
@@ -21674,36 +20517,28 @@ declare function readClickySiteKey(siteIdValue: string, input?: {
|
|
|
21674
20517
|
declare function writeClickySiteKey(siteIdValue: string, siteKeyValue: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
21675
20518
|
declare function deleteClickySiteKey(siteIdValue: string): Promise<void>;
|
|
21676
20519
|
//#endregion
|
|
21677
|
-
//#region packages/core/src/clients.d.ts
|
|
21678
|
-
type ClientProfileInput = {
|
|
21679
|
-
id?: string;
|
|
21680
|
-
name?: string;
|
|
21681
|
-
siteUrl: string;
|
|
21682
|
-
startUrl?: string;
|
|
21683
|
-
watchUrls?: string[];
|
|
21684
|
-
brandTerms?: string[];
|
|
21685
|
-
analytics?: ClientProfile['analytics'];
|
|
21686
|
-
googleAccounts?: ClientProfile['googleAccounts'];
|
|
21687
|
-
technicalWeekday?: number;
|
|
21688
|
-
isDefault?: boolean;
|
|
21689
|
-
};
|
|
21690
|
-
type ClientProfileUpdate = Omit<ClientProfileInput, 'id' | 'siteUrl'> & {
|
|
21691
|
-
siteUrl?: string;
|
|
21692
|
-
};
|
|
21693
|
-
declare function googleAnalyticsPropertyId(client: Pick<ClientProfile, 'analytics'> | undefined): string | undefined;
|
|
21694
|
-
declare function analyticsConnection(client: Pick<ClientProfile, 'analytics' | 'googleAccounts'> | undefined): AnalyticsConnection | undefined;
|
|
21695
|
-
declare function listClients(): ClientProfile[];
|
|
21696
|
-
declare function getClient(idOrName?: string): ClientProfile | undefined;
|
|
21697
|
-
declare function saveClient(input: ClientProfileInput): ClientProfile;
|
|
21698
|
-
declare function updateClient(idOrName: string, update: ClientProfileUpdate): ClientProfile;
|
|
21699
|
-
declare function setClientAnalyticsConnection(idOrName: string, connection: AnalyticsConnection): ClientProfile;
|
|
21700
|
-
declare function removeClientAnalyticsConnection(idOrName: string, provider: Exclude<AnalyticsConnection['provider'], 'extension'> | `extension:${string}`): ClientProfile;
|
|
21701
|
-
declare function deleteClient(idOrName: string): boolean;
|
|
21702
|
-
declare function setDefaultClient(idOrName: string): ClientProfile;
|
|
21703
|
-
//#endregion
|
|
21704
20520
|
//#region packages/core/src/bing/api.d.ts
|
|
21705
20521
|
type BingCall = (method: string, params?: Record<string, string>) => Promise<unknown>;
|
|
21706
20522
|
//#endregion
|
|
20523
|
+
//#region packages/core/src/errors.d.ts
|
|
20524
|
+
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';
|
|
20525
|
+
declare class SeoError extends Error {
|
|
20526
|
+
readonly code: SeoErrorCode;
|
|
20527
|
+
readonly exitCode: number;
|
|
20528
|
+
readonly retryable: boolean;
|
|
20529
|
+
constructor(code: SeoErrorCode, message: string);
|
|
20530
|
+
}
|
|
20531
|
+
declare function toSeoError(error: unknown): SeoError;
|
|
20532
|
+
declare function isSkippableReportError(error: unknown): boolean;
|
|
20533
|
+
declare function seoErrorEnvelope(error: unknown): {
|
|
20534
|
+
ok: false;
|
|
20535
|
+
error: {
|
|
20536
|
+
code: SeoErrorCode;
|
|
20537
|
+
message: string;
|
|
20538
|
+
retryable: boolean;
|
|
20539
|
+
};
|
|
20540
|
+
};
|
|
20541
|
+
//#endregion
|
|
21707
20542
|
//#region packages/core/src/google/api.d.ts
|
|
21708
20543
|
type GoogleFetch = (url: string, init?: RequestInit) => Promise<Response>;
|
|
21709
20544
|
type GoogleCallOptions = {
|
|
@@ -21799,14 +20634,6 @@ type CommandDeps = {
|
|
|
21799
20634
|
now?: () => Date;
|
|
21800
20635
|
};
|
|
21801
20636
|
//#endregion
|
|
21802
|
-
//#region packages/core/src/gsc/auth/account-context.d.ts
|
|
21803
|
-
type GoogleAccountContext = {
|
|
21804
|
-
searchConsole?: string;
|
|
21805
|
-
googleAnalytics?: string;
|
|
21806
|
-
};
|
|
21807
|
-
declare function selectGoogleAccounts(accounts: GoogleAccountContext | undefined): void;
|
|
21808
|
-
declare function selectedGoogleAccount(source: keyof GoogleAccountContext): string | undefined;
|
|
21809
|
-
//#endregion
|
|
21810
20637
|
//#region packages/core/src/storage/config.d.ts
|
|
21811
20638
|
type TokenStorageMode = 'keychain' | 'file';
|
|
21812
20639
|
type TokenStorageStatus = {
|
|
@@ -21942,6 +20769,43 @@ declare function resolveLocalSite(site: string, options?: {
|
|
|
21942
20769
|
declare function localError(error: unknown): unknown;
|
|
21943
20770
|
declare function localGoogleFetch(account?: string): Promise<GoogleFetch>;
|
|
21944
20771
|
//#endregion
|
|
20772
|
+
//#region packages/core/src/storage/sqlite.d.ts
|
|
20773
|
+
type TransactionFunction = (...params: never[]) => unknown;
|
|
20774
|
+
declare class Statement {
|
|
20775
|
+
private readonly statement;
|
|
20776
|
+
constructor(statement: Libsql.Statement);
|
|
20777
|
+
run(...params: unknown[]): SqliteDatabase.RunResult;
|
|
20778
|
+
get(...params: unknown[]): unknown;
|
|
20779
|
+
all(...params: unknown[]): unknown[];
|
|
20780
|
+
}
|
|
20781
|
+
declare class SqliteDatabase {
|
|
20782
|
+
private readonly database;
|
|
20783
|
+
constructor(filename: string | Buffer);
|
|
20784
|
+
prepare(source: string): Statement;
|
|
20785
|
+
transaction<F extends TransactionFunction>(fn: F): Libsql.Transaction<F>;
|
|
20786
|
+
exec(source: string): this;
|
|
20787
|
+
pragma(source: string): unknown;
|
|
20788
|
+
close(): this;
|
|
20789
|
+
}
|
|
20790
|
+
declare namespace SqliteDatabase {
|
|
20791
|
+
type Database = SqliteDatabase;
|
|
20792
|
+
type RunResult = {
|
|
20793
|
+
changes: number;
|
|
20794
|
+
lastInsertRowid: number | bigint;
|
|
20795
|
+
};
|
|
20796
|
+
}
|
|
20797
|
+
//#endregion
|
|
20798
|
+
//#region packages/core/src/storage/database.d.ts
|
|
20799
|
+
declare function ensurePrivateDatabaseFiles(path: string): void;
|
|
20800
|
+
declare function getDb(): SqliteDatabase.Database;
|
|
20801
|
+
declare function noteCacheWrite(sizeBytes?: number, database?: SqliteDatabase.Database): void;
|
|
20802
|
+
declare function checkDatabaseReadiness(): {
|
|
20803
|
+
dbPath: string;
|
|
20804
|
+
};
|
|
20805
|
+
declare function hashKey(parts: unknown[]): string;
|
|
20806
|
+
declare function getCacheStats(): CacheStats;
|
|
20807
|
+
declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'dataforseo' | 'ahrefs' | 'clicky' | 'http', olderThanMs?: number): number;
|
|
20808
|
+
//#endregion
|
|
21945
20809
|
//#region packages/core/src/doctor.d.ts
|
|
21946
20810
|
type DoctorCheck = {
|
|
21947
20811
|
id: string;
|
|
@@ -21976,21 +20840,6 @@ declare function refreshPrioritiesCsvFiles(report: WorkflowReport<{
|
|
|
21976
20840
|
diagnosis: DiagnosePropertyReport;
|
|
21977
20841
|
}>): CsvFile[];
|
|
21978
20842
|
//#endregion
|
|
21979
|
-
//#region packages/core/src/export/report-html.d.ts
|
|
21980
|
-
type ReportHtmlView = 'client' | 'analyst';
|
|
21981
|
-
type ReportHtmlSection = {
|
|
21982
|
-
title: string;
|
|
21983
|
-
summary?: string;
|
|
21984
|
-
items: string[];
|
|
21985
|
-
};
|
|
21986
|
-
type ReportHtmlInput = {
|
|
21987
|
-
report: ReportNarrative;
|
|
21988
|
-
title?: string;
|
|
21989
|
-
view?: ReportHtmlView;
|
|
21990
|
-
additionalSections?: ReportHtmlSection[];
|
|
21991
|
-
};
|
|
21992
|
-
declare function renderReportHtml(input: ReportHtmlInput): string;
|
|
21993
|
-
//#endregion
|
|
21994
20843
|
//#region packages/core/src/export/update-postmortem.d.ts
|
|
21995
20844
|
type PostmortemCsvReport = WorkflowReport<{
|
|
21996
20845
|
update: {
|
|
@@ -22687,5 +21536,5 @@ declare function isoDate(daysAgo?: number): string;
|
|
|
22687
21536
|
//#region packages/core/src/version.d.ts
|
|
22688
21537
|
declare const SEO_VERSION: string;
|
|
22689
21538
|
//#endregion
|
|
22690
|
-
export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, AgentFinding, AgentFindingStatus, AgentFindings, AgentFixFinding, AgentReportInventory, AgentReportOptions, AgentReviewFinding, AhrefsClient, AhrefsClientOptions, AhrefsLimitsAndUsage, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AnalyticsConnection, AnalyticsMetricDelta, AnalyticsProvider, AnalyticsProviderDetails, AnalyticsProviderRuntimeOptions, AnalyticsTestMetrics, type AnalyzeCannibalImportRowsInput, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CLICKY_SITEKEY_ENV, CLICKY_SITE_KEYS_SECRET, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalImportAnalysis, CannibalImportDependencies, type CannibalImportItem, type CannibalImportPage, type CannibalImportReport, CannibalImportReportInput, type CannibalImportSelection, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, CannibalSearchConsoleInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, ClientProfileUpdate, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlDiffItem, CrawlDiffRecommendation, CrawlDiffReport, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageRow, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportMeta, CrawlReportSaveOptions, CrawlReportStorageEnvelope, CrawlReportStoreAdapter, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRun, CrawlRunRow, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, type CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, CtrUnderperformersInput, CtrUnderperformersReport, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExternalServiceId, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, type Ga4AccountSummary, Ga4DataStream, type Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, type GoogleAccessTokenClient, GoogleAccountContext, GoogleApiError, GoogleCallOptions, GoogleFetch, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INCIDENTS_URL, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, InstalledProviderPackage, InstalledProviderPackages, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordMetric, KeywordMonthlySearch, LINK_RECOVER_RUN_RETENTION, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LoadedProviderExtensions, LocalCredentialsProvider, LogPruneResult, MANAGED_PROVIDER_SECRET_NAMES, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, MAX_SEARCH_CONSOLE_EXPORT_FILES, MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OpportunityBenchmarkRow, PROVIDER_SECRET_NAMES, PageExtractor, PageFetchDiagnostics, PageFetchResult, PageFetcher, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderActionResult, ProviderCapability, ProviderError, ProviderErrorCode, ProviderExtensionLoadFailure, ProviderExtensionLoaderOptions, ProviderExtensionRegistry, ProviderFetch, ProviderId, ProviderImportEvidence, ProviderInstallerOptions, ProviderPackageCommand, ProviderPackageCommandResult, ProviderPackageManifest, ProviderPackageRelease, ProviderRequestInput, ProviderRuntimeOptions, ProviderSecret, ProviderSecretSource, ProviderValue, ProviderWarning, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryContentVerifier, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsReport, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RESEARCH_IMPORT_COLUMN_KEYS, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RegisteredProviderExtension, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResearchImportColumn, ResearchImportColumns, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_PROVIDER_API_VERSION, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, SearchAnalyticsOptions, SearchAnalyticsQuery, SearchAnalyticsRequest, SearchAnalyticsResult, SearchConsoleExportEvidence, SearchConsoleExportFileImport, SearchConsoleExportPageRow, SearchConsoleExportQueryRow, SearchConsoleExportReconciliation, SearchConsoleSite, SearchDateWindow, SearchPageBatch, type SearchStatusIncident, type SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SeoAnalyticsConnection, SeoAnalyticsLandingPageResult, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoLandingPageVisitRow, SeoLandingPageVisitsCapability, SeoLandingPageVisitsResult, SeoProviderActionAdapter, SeoProviderActivate, SeoProviderApiVersion, SeoProviderCapabilityAdapter, SeoProviderCapabilityId, SeoProviderConnection, SeoProviderConnectionAdapter, SeoProviderConnectionField, SeoProviderHost, SeoProviderJson, SeoProviderJsonSchema, SeoProviderKind, SeoProviderRegistration, SeoProviderRequest, SeoProviderRuntime, SeoSearchMarket, SeoSerpLocalPackResult, SeoSerpOrganicResult, SeoSerpSnapshotCapability, SeoSerpSnapshotResult, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StorageAdapter, StoredAhrefsApiKey, StoredClickySiteKey, StoredDataForSeoCredentials, StoredTokenStore, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_FAILURE_CONTEXTS, TELEMETRY_FAILURE_REASONS, TELEMETRY_NOTICE, TELEMETRY_OPERATIONS, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, type TelemetryErrorCategory, TelemetryEvent, type TelemetryFailureClassification, type TelemetryFailureContext, type TelemetryFailureReason, type TelemetryOperation, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyDependencies, TrafficAnomalyInput, TrafficAnomalyReport, TrafficAnomalySelection, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, VerifyQueryContentInput, WorkflowAction, WorkflowReport, WorkflowStep, affectedUrls, agentActionsView, aiReferralSourceForValue, aiReferralsReport, allocateIndexUrlsToProperties, analyticsConnection, analyticsConnectionLabel, analyticsConnectionProviderId, analyticsConnectionSchema, analyticsConnectionsSchema, analyticsProviderDetails, analyticsProviderSchema, analyzeAiReferralRows, analyzeCannibalImportRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditPage, authStatus, bearerFetch, boundedSitemapInventory, buildAgentFindings, buildQueryClusterReportFromRows, buildTelemetryPayload, cannibalImportReport, cannibalReport, cannibalReportWith, changesInWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, clientProfileSchema, clusterQueryRows, combineRobotsValues, compareCrawlPages, compareCrawlReports, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, ctrUnderperformersReportWith, decayClusterDrafts, decayComparisonRange, decayingReport, decayingReportWith, deleteAhrefsApiKey, deleteBingApiKey, deleteChange, deleteClickySiteKey, deleteClient, deleteContentGroup, deleteCrawlReport, deleteDataForSeoCredentials, deleteManagedProviderSecrets, deleteProviderExtensionAccount, deleteProviderExtensionCredentials, deleteProviderSecret, deleteTokens, deriveBrandTerms, describeInstalledProviderExtension, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, ensurePrivateDatabaseFiles, ensureSeoCliDirs, estimateSerpTitleWidth, expectedCtrForPosition, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getPreviousRun, getPrivacySnapshot, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, googleJson, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectProviderPackage, inspectSearchConsoleUrl, inspectUrl, installProviderPackage, installedProviderPackageSchema, installedProviderPackagesSchema, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isSkippableReportError, isTelemetryCi, isTelemetryOperation, isTelemetryReport, isoDate, isoWeek, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkRecover, linkRecoverRecommendation, listAnalyticsAccounts, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listGoogleAccounts, listInstalledProviderExtensions, listRules, listSearchConsoleSites, listSearchUpdates, listSites, loadCrawlReport, loadInstalledProviderExtensions, loadProviderExtensions, loadProviderPackage, loadSearchConsoleExport, localBing, localCredentialsProvider, localError, localGoogleFetch, localResearchKeys, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, nodeCommandDeps, normalizeBrandText, normalizeClickySiteId, normalizeClickySiteKey, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, normalizeProviderExtensionAccount, normalizedResearchColumnName, noteCacheWrite, pageEvidenceRecommendation, pageOpportunitiesReport, parseOlderThan, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerCapabilitySchema, providerConnectionFieldSchema, providerExactVersionSchema, providerExtensionIdSchema, providerIdSchema, providerIntegritySchema, providerKindSchema, providerPackageManifestSchema, providerPackageNameSchema, providerPreferenceSchema, providerRegistrationSchema, providerRequestJson, providerRequestText, pruneIndexWatchSnapshots, pruneLogs, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, quickWinsReportWith, readAhrefsApiKey, readAllTokens, readBingApiKey, readBoundedResponseText, readClickySiteKey, readConfig, readDataForSeoCredentials, readInstalledProviderPackages, readJson, readJsonOrUndefined, readOauthClient, readProviderExtensionAccount, readProviderExtensionCredentials, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, reconcileExportPagesWithCrawl, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, registrableDomain, removeClientAnalyticsConnection, removeInstalledProviderPackage, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, requestHeaders, requirePageVerification, researchImportColumns, resetSeoData, resolveLocalSite, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runAnalyticsProviderLandingPages, runAnalyticsReport, runDoctor, runGa4Report, runProviderExtensionAction, runtimeForProvider, safeProviderAdapterError, saveClient, saveCrawlReport, saveInstalledProviderPackage, searchAnalyticsRows, searchUpdatesFromIncidents, secondPage, secondPageWith, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, selectGoogleAccounts, selectedGoogleAccount, seoErrorEnvelope, sessionSourceInListFilter, setActiveGoogleAccount, setClientAnalyticsConnection, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, strikingDistanceWith, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, toSeoError, tokenSchema, tokenStoreSchema, topCrawlRecommendations, topFixes, trackTelemetryCommandFailed, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, trafficAnomalyWith, unavailableSegmentImpactReport, unicodeTokens, uninstallProviderExtension, updateClient, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeTokens, xRobotsDirectives };
|
|
21539
|
+
export { AHREFS_API_KEY_ENV, AHREFS_API_KEY_SECRET, AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, ANALYTICS_PROVIDER_IDS, AUDIT_PAGE_RULE_IDS, AccessBlockEvidence, AgentFinding, AgentFindingStatus, AgentFindings, AgentFixFinding, AgentReportInventory, AgentReportOptions, AgentReviewFinding, AhrefsClient, AhrefsClientOptions, AhrefsLimitsAndUsage, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AnalyticsConnection, AnalyticsProvider, AnalyticsProviderDetails, AnalyticsProviderRuntimeOptions, type AnalyzeCannibalImportRowsInput, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CLICKY_SITEKEY_ENV, CLICKY_SITE_KEYS_SECRET, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalImportAnalysis, CannibalImportDependencies, type CannibalImportItem, type CannibalImportPage, type CannibalImportReport, CannibalImportReportInput, type CannibalImportSelection, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, CannibalSearchConsoleInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ContentExtractionDiagnostics, ContentExtractor, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlStatusEvent, CrawlStatusHandler, type CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, CtrUnderperformersInput, CtrUnderperformersReport, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, DEFAULT_UNREACHED_PAGE_LIMIT, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, EffectiveSnippetControl, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExternalServiceId, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, type Ga4AccountSummary, Ga4DataStream, type Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, type GoogleAccessTokenClient, GoogleApiError, GoogleCallOptions, GoogleFetch, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INCIDENTS_URL, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, InstalledProviderPackage, InstalledProviderPackages, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordMetric, KeywordMonthlySearch, LOCAL_BING_CONNECT, LOCAL_SIGN_IN, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LighthouseFailureCode, LinkRecoverItem, LinkRecoverReport, LoadedProviderExtensions, LocalCredentialsProvider, LogPruneResult, MANAGED_PROVIDER_SECRET_NAMES, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, MAX_SEARCH_CONSOLE_EXPORT_FILES, MAX_SEARCH_CONSOLE_EXPORT_ROW_LIMIT, NarrativeSection, type OAuthClientConfig, OpportunityBenchmarkRow, PROVIDER_SECRET_NAMES, PageExtractor, PageFetchDiagnostics, PageFetchResult, PageFetcher, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderActionResult, ProviderCapability, ProviderError, ProviderErrorCode, ProviderExtensionLoadFailure, ProviderExtensionLoaderOptions, ProviderExtensionRegistry, ProviderFetch, ProviderId, ProviderImportEvidence, ProviderInstallerOptions, ProviderPackageCommand, ProviderPackageCommandResult, ProviderPackageManifest, ProviderPackageRelease, ProviderRequestInput, ProviderRuntimeOptions, ProviderSecret, ProviderSecretSource, ProviderValue, ProviderWarning, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryContentVerifier, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsReport, RESEARCH_IMPORT_COLUMN_KEYS, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RegisteredProviderExtension, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportNarrative, ResearchImportColumn, ResearchImportColumns, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_PROVIDER_API_VERSION, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, STEP_CHANGE_RULES, SearchAnalyticsOptions, SearchAnalyticsQuery, SearchAnalyticsRequest, SearchAnalyticsResult, SearchConsoleExportEvidence, SearchConsoleExportFileImport, SearchConsoleExportPageRow, SearchConsoleExportQueryRow, SearchConsoleExportReconciliation, SearchConsoleSite, SearchDateWindow, SearchPageBatch, type SearchStatusIncident, type SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SeoAnalyticsConnection, SeoAnalyticsLandingPageResult, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoLandingPageVisitRow, SeoLandingPageVisitsCapability, SeoLandingPageVisitsResult, SeoProviderActionAdapter, SeoProviderActivate, SeoProviderApiVersion, SeoProviderCapabilityAdapter, SeoProviderCapabilityId, SeoProviderConnection, SeoProviderConnectionAdapter, SeoProviderConnectionField, SeoProviderHost, SeoProviderJson, SeoProviderJsonSchema, SeoProviderKind, SeoProviderRegistration, SeoProviderRequest, SeoProviderRuntime, SeoSearchMarket, SeoSerpLocalPackResult, SeoSerpOrganicResult, SeoSerpSnapshotCapability, SeoSerpSnapshotResult, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StorageAdapter, StoredAhrefsApiKey, StoredClickySiteKey, StoredDataForSeoCredentials, StoredTokenStore, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_FAILURE_CONTEXTS, TELEMETRY_FAILURE_REASONS, TELEMETRY_NOTICE, TELEMETRY_OPERATIONS, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TelemetryAgent, TelemetryDisableReason, type TelemetryErrorCategory, TelemetryEvent, type TelemetryFailureClassification, type TelemetryFailureContext, type TelemetryFailureReason, type TelemetryOperation, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyDependencies, TrafficAnomalyDetection, TrafficAnomalyInput, TrafficAnomalyReport, TrafficAnomalySelection, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, VerifyQueryContentInput, WorkflowAction, WorkflowReport, WorkflowStep, agentActionsView, aiReferralSourceForValue, aiReferralsReport, analyticsConnectionLabel, analyticsConnectionProviderId, analyticsConnectionSchema, analyticsProviderDetails, analyticsProviderSchema, analyzeAiReferralRows, analyzeCannibalImportRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, auditCrawlPages, auditCrawlRequests, auditPage, authStatus, bearerFetch, boundedSitemapInventory, buildAgentFindings, buildQueryClusterReportFromRows, buildTelemetryPayload, cannibalImportReport, cannibalReport, cannibalReportWith, changeWindow, checkDatabaseReadiness, classifyTelemetryFailure, clearCache, clusterQueryRows, combineRobotsValues, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, ctrUnderperformersReportWith, decayClusterDrafts, decayComparisonRange, decayingReport, decayingReportWith, deleteAhrefsApiKey, deleteBingApiKey, deleteClickySiteKey, deleteDataForSeoCredentials, deleteManagedProviderSecrets, deleteProviderExtensionAccount, deleteProviderExtensionCredentials, deleteProviderSecret, deleteTokens, deriveBrandTerms, describeInstalledProviderExtension, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, ensurePrivateDatabaseFiles, ensureSeoCliDirs, estimateSerpTitleWidth, expectedCtrForPosition, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, getAuthModeStatus, getCacheStats, getClientConfig, getDb, getPrivacySnapshot, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleJson, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, indexCoverageSignals, inferTemplateMovement, initializeTelemetry, inspectProviderPackage, inspectSearchConsoleUrl, inspectUrl, installProviderPackage, installedProviderPackageSchema, installedProviderPackagesSchema, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isSkippableReportError, isTelemetryCi, isTelemetryOperation, isTelemetryReport, isoDate, isoWeek, latestFinalGscDate, linkRecover, linkRecoverRecommendation, listAnalyticsAccounts, listGa4AccountSummaries, listGa4DataStreams, listGoogleAccounts, listInstalledProviderExtensions, listRules, listSearchConsoleSites, listSearchUpdates, listSites, loadInstalledProviderExtensions, loadProviderExtensions, loadProviderPackage, loadSearchConsoleExport, localBing, localCredentialsProvider, localError, localGoogleFetch, localResearchKeys, loginWithLoopback, makeRunId, matchGa4WebStreams, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, nodeCommandDeps, normalizeBrandText, normalizeClickySiteId, normalizeClickySiteKey, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, normalizeProviderExtensionAccount, normalizedResearchColumnName, noteCacheWrite, pageEvidenceRecommendation, pageOpportunitiesReport, parseOlderThan, performanceAudit, performanceReportIsCacheable, plural, providerCapabilitySchema, providerConnectionFieldSchema, providerExactVersionSchema, providerExtensionIdSchema, providerIdSchema, providerIntegritySchema, providerKindSchema, providerPackageManifestSchema, providerPackageNameSchema, providerPreferenceSchema, providerRegistrationSchema, providerRequestJson, providerRequestText, pruneLogs, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, quickWinsReportWith, readAhrefsApiKey, readAllTokens, readBingApiKey, readBoundedResponseText, readClickySiteKey, readConfig, readDataForSeoCredentials, readInstalledProviderPackages, readJson, readJsonOrUndefined, readOauthClient, readProviderExtensionAccount, readProviderExtensionCredentials, readProviderSecret, readTokens, recommendationForRule, reconcileExportPagesWithCrawl, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, registrableDomain, removeInstalledProviderPackage, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderWorkflowMarkdown, reportNarrative, requestHeaders, requirePageVerification, researchImportColumns, resetSeoData, resolveLocalSite, resolveSegmentRanges, resolveSeoCliPaths, reviewObservations, roundedPosition, runAnalyticsProviderLandingPages, runAnalyticsReport, runDoctor, runGa4Report, runProviderExtensionAction, runtimeForProvider, safeProviderAdapterError, saveInstalledProviderPackage, searchAnalyticsRows, searchUpdatesFromIncidents, secondPage, secondPageWith, segmentComparisonRange, segmentImpact, segmentRangeDays, seoErrorEnvelope, sessionSourceInListFilter, setActiveGoogleAccount, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, strikingDistance, strikingDistanceWith, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, telemetryErrorCategory, toSeoError, tokenSchema, tokenStoreSchema, topFixes, trackTelemetryCommandFailed, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, trafficAnomalyWith, unavailableSegmentImpactReport, unicodeTokens, uninstallProviderExtension, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateResearchImportColumnSources, verifyAnalyticsProvider, verifyProviderExtension, verifyQueryContent, verifyQueryContentWith, withAgentReportContract, workflowPresentation, writeAhrefsApiKey, writeBingApiKey, writeClickySiteKey, writeConfig, writeDataForSeoCredentials, writeInstalledProviderPackages, writeOauthClient, writeProviderExtensionAccount, writeProviderExtensionCredentials, writeProviderSecret, writeTokens, xRobotsDirectives };
|
|
22691
21540
|
//# sourceMappingURL=index.d.ts.map
|