seo 0.2.14 → 0.2.16
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/README.md +1 -1
- package/dist/cli.js +138 -134
- package/dist/cli.js.map +1 -1
- package/dist/{dist-sYeCtY3Q.js → dist-BeDz2qIL.js} +276 -85
- package/dist/dist-BeDz2qIL.js.map +1 -0
- package/dist/{dist-Bc8MJ1gT.js → dist-Hd0YW5ui.js} +1 -1
- package/dist/index.d.ts +1764 -63
- package/dist/index.js +6561 -1359
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +6791 -1473
- package/dist/mcp.js.map +1 -1
- package/dist/{package-Cp8DwqCy.js → package-D_ix15KL.js} +2 -2
- package/dist/{package-Cp8DwqCy.js.map → package-D_ix15KL.js.map} +1 -1
- package/evals/keyword-metrics.json +58 -0
- package/evals/keyword-opportunities.json +57 -0
- package/evals/keyword-research.json +41 -0
- package/evals/pseo-opportunities.json +57 -0
- package/evals/saved-keywords.json +28 -0
- package/evals/serp-results.json +41 -0
- package/package.json +4 -4
- package/dist/dist-sYeCtY3Q.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -244,6 +244,13 @@ declare const providerPreferenceSchema: z.ZodEnum<{
|
|
|
244
244
|
cheap: "cheap";
|
|
245
245
|
authoritative: "authoritative";
|
|
246
246
|
}>;
|
|
247
|
+
declare const providerSpendLimitOverridesSchema: z.ZodObject<{
|
|
248
|
+
dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
250
|
+
monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
251
|
+
maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
252
|
+
maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
253
|
+
}, z.core.$strict>;
|
|
247
254
|
declare const analyticsConnectionsSchema: z.ZodDefault<z.ZodObject<{
|
|
248
255
|
google: z.ZodOptional<z.ZodObject<{
|
|
249
256
|
propertyId: z.ZodString;
|
|
@@ -322,6 +329,29 @@ declare const configSchema: z.ZodObject<{
|
|
|
322
329
|
cheap: "cheap";
|
|
323
330
|
authoritative: "authoritative";
|
|
324
331
|
}>>;
|
|
332
|
+
costLimits: z.ZodOptional<z.ZodObject<{
|
|
333
|
+
dataforseo: z.ZodOptional<z.ZodObject<{
|
|
334
|
+
dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
|
|
335
|
+
dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
336
|
+
monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
337
|
+
maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
338
|
+
maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
339
|
+
}, z.core.$strict>>;
|
|
340
|
+
semrush: z.ZodOptional<z.ZodObject<{
|
|
341
|
+
dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
|
|
342
|
+
dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
343
|
+
monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
344
|
+
maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
345
|
+
maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
346
|
+
}, z.core.$strict>>;
|
|
347
|
+
ahrefs: z.ZodOptional<z.ZodObject<{
|
|
348
|
+
dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
|
|
349
|
+
dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
350
|
+
monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
351
|
+
maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
352
|
+
maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
|
|
353
|
+
}, z.core.$strict>>;
|
|
354
|
+
}, z.core.$strict>>;
|
|
325
355
|
}, z.core.$strip>>;
|
|
326
356
|
security: z.ZodDefault<z.ZodObject<{
|
|
327
357
|
useKeychain: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -658,6 +688,7 @@ interface ExtractedPage {
|
|
|
658
688
|
}
|
|
659
689
|
//#endregion
|
|
660
690
|
//#region packages/core/src/types/providers.d.ts
|
|
691
|
+
/** @deprecated Use ProviderCostEvidence from providers/contracts. */
|
|
661
692
|
interface CreditUsage {
|
|
662
693
|
provider: string;
|
|
663
694
|
units: number;
|
|
@@ -666,16 +697,19 @@ interface CreditUsage {
|
|
|
666
697
|
calls: number;
|
|
667
698
|
cacheHits?: number;
|
|
668
699
|
}
|
|
700
|
+
/** @deprecated Use ProviderEvidence from providers/contracts. */
|
|
669
701
|
interface ProviderResult<T> {
|
|
670
702
|
data: T;
|
|
671
703
|
usage: CreditUsage;
|
|
672
704
|
warnings?: string[];
|
|
673
705
|
cached?: boolean;
|
|
674
706
|
}
|
|
707
|
+
/** @deprecated Use a capability-specific request type. */
|
|
675
708
|
interface ProviderOpts {
|
|
676
709
|
database?: string;
|
|
677
710
|
refresh?: boolean;
|
|
678
711
|
}
|
|
712
|
+
/** @deprecated Use KeywordMetric from providers/contracts. */
|
|
679
713
|
interface KeywordOverview {
|
|
680
714
|
phrase: string;
|
|
681
715
|
volume?: number;
|
|
@@ -685,6 +719,7 @@ interface KeywordOverview {
|
|
|
685
719
|
intent?: string;
|
|
686
720
|
results?: number;
|
|
687
721
|
}
|
|
722
|
+
/** @deprecated Use a capability-specific row type from providers/contracts. */
|
|
688
723
|
interface KeywordRow {
|
|
689
724
|
phrase: string;
|
|
690
725
|
volume?: number;
|
|
@@ -695,6 +730,11 @@ interface KeywordRow {
|
|
|
695
730
|
domain?: string;
|
|
696
731
|
position?: number;
|
|
697
732
|
}
|
|
733
|
+
/**
|
|
734
|
+
* @deprecated Use the small capability interfaces from providers/contracts.
|
|
735
|
+
* This compatibility contract remains until the registered reports replace
|
|
736
|
+
* the provider-specific MCP passthrough.
|
|
737
|
+
*/
|
|
698
738
|
interface KeywordDataProvider {
|
|
699
739
|
readonly name: string;
|
|
700
740
|
readonly capabilities: {
|
|
@@ -725,9 +765,11 @@ interface KeywordDataProvider {
|
|
|
725
765
|
resetAt?: string;
|
|
726
766
|
}>;
|
|
727
767
|
}
|
|
768
|
+
/** @deprecated Use a capability-specific provider contract. */
|
|
728
769
|
interface SerpProvider {
|
|
729
770
|
readonly name: string;
|
|
730
771
|
}
|
|
772
|
+
/** @deprecated Use a capability-specific provider contract. */
|
|
731
773
|
interface BacklinkProvider {
|
|
732
774
|
readonly name: string;
|
|
733
775
|
}
|
|
@@ -2239,7 +2281,7 @@ declare function analyzePageOpportunitiesFromRows(input: PageOpportunityAnalysis
|
|
|
2239
2281
|
type PageOpportunityFocus = PageOpportunityType | 'no-data';
|
|
2240
2282
|
//#endregion
|
|
2241
2283
|
//#region packages/core/src/analyze/page-opportunities.d.ts
|
|
2242
|
-
type SearchAnalytics$
|
|
2284
|
+
type SearchAnalytics$11 = typeof querySearchAnalytics;
|
|
2243
2285
|
type FetchPage$4 = typeof fetchPage;
|
|
2244
2286
|
type ExtractPage$3 = typeof extractPage;
|
|
2245
2287
|
type PageOpportunityInput = {
|
|
@@ -2311,7 +2353,7 @@ type PageOpportunityReport = {
|
|
|
2311
2353
|
recommendations: string[];
|
|
2312
2354
|
};
|
|
2313
2355
|
type PageOpportunityDependencies = {
|
|
2314
|
-
searchAnalytics: SearchAnalytics$
|
|
2356
|
+
searchAnalytics: SearchAnalytics$11;
|
|
2315
2357
|
fetch: FetchPage$4;
|
|
2316
2358
|
extract: ExtractPage$3;
|
|
2317
2359
|
now: () => Date;
|
|
@@ -4816,8 +4858,8 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
|
|
|
4816
4858
|
status: z.ZodOptional<z.ZodNumber>;
|
|
4817
4859
|
error: z.ZodOptional<z.ZodString>;
|
|
4818
4860
|
state: z.ZodOptional<z.ZodEnum<{
|
|
4819
|
-
unavailable: "unavailable";
|
|
4820
4861
|
available: "available";
|
|
4862
|
+
unavailable: "unavailable";
|
|
4821
4863
|
"rate-limited": "rate-limited";
|
|
4822
4864
|
"confirmed-broken": "confirmed-broken";
|
|
4823
4865
|
transient: "transient";
|
|
@@ -5980,8 +6022,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5980
6022
|
status: z.ZodOptional<z.ZodNumber>;
|
|
5981
6023
|
error: z.ZodOptional<z.ZodString>;
|
|
5982
6024
|
state: z.ZodOptional<z.ZodEnum<{
|
|
5983
|
-
unavailable: "unavailable";
|
|
5984
6025
|
available: "available";
|
|
6026
|
+
unavailable: "unavailable";
|
|
5985
6027
|
"rate-limited": "rate-limited";
|
|
5986
6028
|
"confirmed-broken": "confirmed-broken";
|
|
5987
6029
|
transient: "transient";
|
|
@@ -6377,8 +6419,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6377
6419
|
deferredUrls: z.ZodNumber;
|
|
6378
6420
|
limit: z.ZodNumber;
|
|
6379
6421
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
6380
|
-
unavailable: "unavailable";
|
|
6381
6422
|
available: "available";
|
|
6423
|
+
unavailable: "unavailable";
|
|
6382
6424
|
"rate-limited": "rate-limited";
|
|
6383
6425
|
"confirmed-broken": "confirmed-broken";
|
|
6384
6426
|
transient: "transient";
|
|
@@ -7429,8 +7471,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7429
7471
|
status: z.ZodOptional<z.ZodNumber>;
|
|
7430
7472
|
error: z.ZodOptional<z.ZodString>;
|
|
7431
7473
|
state: z.ZodOptional<z.ZodEnum<{
|
|
7432
|
-
unavailable: "unavailable";
|
|
7433
7474
|
available: "available";
|
|
7475
|
+
unavailable: "unavailable";
|
|
7434
7476
|
"rate-limited": "rate-limited";
|
|
7435
7477
|
"confirmed-broken": "confirmed-broken";
|
|
7436
7478
|
transient: "transient";
|
|
@@ -7826,8 +7868,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7826
7868
|
deferredUrls: z.ZodNumber;
|
|
7827
7869
|
limit: z.ZodNumber;
|
|
7828
7870
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
7829
|
-
unavailable: "unavailable";
|
|
7830
7871
|
available: "available";
|
|
7872
|
+
unavailable: "unavailable";
|
|
7831
7873
|
"rate-limited": "rate-limited";
|
|
7832
7874
|
"confirmed-broken": "confirmed-broken";
|
|
7833
7875
|
transient: "transient";
|
|
@@ -8878,8 +8920,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
8878
8920
|
status: z.ZodOptional<z.ZodNumber>;
|
|
8879
8921
|
error: z.ZodOptional<z.ZodString>;
|
|
8880
8922
|
state: z.ZodOptional<z.ZodEnum<{
|
|
8881
|
-
unavailable: "unavailable";
|
|
8882
8923
|
available: "available";
|
|
8924
|
+
unavailable: "unavailable";
|
|
8883
8925
|
"rate-limited": "rate-limited";
|
|
8884
8926
|
"confirmed-broken": "confirmed-broken";
|
|
8885
8927
|
transient: "transient";
|
|
@@ -9275,8 +9317,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
9275
9317
|
deferredUrls: z.ZodNumber;
|
|
9276
9318
|
limit: z.ZodNumber;
|
|
9277
9319
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
9278
|
-
unavailable: "unavailable";
|
|
9279
9320
|
available: "available";
|
|
9321
|
+
unavailable: "unavailable";
|
|
9280
9322
|
"rate-limited": "rate-limited";
|
|
9281
9323
|
"confirmed-broken": "confirmed-broken";
|
|
9282
9324
|
transient: "transient";
|
|
@@ -10329,8 +10371,8 @@ declare const crawlerSchemas: {
|
|
|
10329
10371
|
status: z.ZodOptional<z.ZodNumber>;
|
|
10330
10372
|
error: z.ZodOptional<z.ZodString>;
|
|
10331
10373
|
state: z.ZodOptional<z.ZodEnum<{
|
|
10332
|
-
unavailable: "unavailable";
|
|
10333
10374
|
available: "available";
|
|
10375
|
+
unavailable: "unavailable";
|
|
10334
10376
|
"rate-limited": "rate-limited";
|
|
10335
10377
|
"confirmed-broken": "confirmed-broken";
|
|
10336
10378
|
transient: "transient";
|
|
@@ -10726,8 +10768,8 @@ declare const crawlerSchemas: {
|
|
|
10726
10768
|
deferredUrls: z.ZodNumber;
|
|
10727
10769
|
limit: z.ZodNumber;
|
|
10728
10770
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
10729
|
-
unavailable: "unavailable";
|
|
10730
10771
|
available: "available";
|
|
10772
|
+
unavailable: "unavailable";
|
|
10731
10773
|
"rate-limited": "rate-limited";
|
|
10732
10774
|
"confirmed-broken": "confirmed-broken";
|
|
10733
10775
|
transient: "transient";
|
|
@@ -11778,8 +11820,8 @@ declare const crawlerSchemas: {
|
|
|
11778
11820
|
status: z.ZodOptional<z.ZodNumber>;
|
|
11779
11821
|
error: z.ZodOptional<z.ZodString>;
|
|
11780
11822
|
state: z.ZodOptional<z.ZodEnum<{
|
|
11781
|
-
unavailable: "unavailable";
|
|
11782
11823
|
available: "available";
|
|
11824
|
+
unavailable: "unavailable";
|
|
11783
11825
|
"rate-limited": "rate-limited";
|
|
11784
11826
|
"confirmed-broken": "confirmed-broken";
|
|
11785
11827
|
transient: "transient";
|
|
@@ -12175,8 +12217,8 @@ declare const crawlerSchemas: {
|
|
|
12175
12217
|
deferredUrls: z.ZodNumber;
|
|
12176
12218
|
limit: z.ZodNumber;
|
|
12177
12219
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
12178
|
-
unavailable: "unavailable";
|
|
12179
12220
|
available: "available";
|
|
12221
|
+
unavailable: "unavailable";
|
|
12180
12222
|
"rate-limited": "rate-limited";
|
|
12181
12223
|
"confirmed-broken": "confirmed-broken";
|
|
12182
12224
|
transient: "transient";
|
|
@@ -13227,8 +13269,8 @@ declare const crawlerSchemas: {
|
|
|
13227
13269
|
status: z.ZodOptional<z.ZodNumber>;
|
|
13228
13270
|
error: z.ZodOptional<z.ZodString>;
|
|
13229
13271
|
state: z.ZodOptional<z.ZodEnum<{
|
|
13230
|
-
unavailable: "unavailable";
|
|
13231
13272
|
available: "available";
|
|
13273
|
+
unavailable: "unavailable";
|
|
13232
13274
|
"rate-limited": "rate-limited";
|
|
13233
13275
|
"confirmed-broken": "confirmed-broken";
|
|
13234
13276
|
transient: "transient";
|
|
@@ -13624,8 +13666,8 @@ declare const crawlerSchemas: {
|
|
|
13624
13666
|
deferredUrls: z.ZodNumber;
|
|
13625
13667
|
limit: z.ZodNumber;
|
|
13626
13668
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
13627
|
-
unavailable: "unavailable";
|
|
13628
13669
|
available: "available";
|
|
13670
|
+
unavailable: "unavailable";
|
|
13629
13671
|
"rate-limited": "rate-limited";
|
|
13630
13672
|
"confirmed-broken": "confirmed-broken";
|
|
13631
13673
|
transient: "transient";
|
|
@@ -14810,8 +14852,8 @@ declare const crawlerSchemas: {
|
|
|
14810
14852
|
status: z.ZodOptional<z.ZodNumber>;
|
|
14811
14853
|
error: z.ZodOptional<z.ZodString>;
|
|
14812
14854
|
state: z.ZodOptional<z.ZodEnum<{
|
|
14813
|
-
unavailable: "unavailable";
|
|
14814
14855
|
available: "available";
|
|
14856
|
+
unavailable: "unavailable";
|
|
14815
14857
|
"rate-limited": "rate-limited";
|
|
14816
14858
|
"confirmed-broken": "confirmed-broken";
|
|
14817
14859
|
transient: "transient";
|
|
@@ -15594,8 +15636,8 @@ declare const crawlerJsonSchemas: {
|
|
|
15594
15636
|
status: z.ZodOptional<z.ZodNumber>;
|
|
15595
15637
|
error: z.ZodOptional<z.ZodString>;
|
|
15596
15638
|
state: z.ZodOptional<z.ZodEnum<{
|
|
15597
|
-
unavailable: "unavailable";
|
|
15598
15639
|
available: "available";
|
|
15640
|
+
unavailable: "unavailable";
|
|
15599
15641
|
"rate-limited": "rate-limited";
|
|
15600
15642
|
"confirmed-broken": "confirmed-broken";
|
|
15601
15643
|
transient: "transient";
|
|
@@ -15991,8 +16033,8 @@ declare const crawlerJsonSchemas: {
|
|
|
15991
16033
|
deferredUrls: z.ZodNumber;
|
|
15992
16034
|
limit: z.ZodNumber;
|
|
15993
16035
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
15994
|
-
unavailable: "unavailable";
|
|
15995
16036
|
available: "available";
|
|
16037
|
+
unavailable: "unavailable";
|
|
15996
16038
|
"rate-limited": "rate-limited";
|
|
15997
16039
|
"confirmed-broken": "confirmed-broken";
|
|
15998
16040
|
transient: "transient";
|
|
@@ -17043,8 +17085,8 @@ declare const crawlerJsonSchemas: {
|
|
|
17043
17085
|
status: z.ZodOptional<z.ZodNumber>;
|
|
17044
17086
|
error: z.ZodOptional<z.ZodString>;
|
|
17045
17087
|
state: z.ZodOptional<z.ZodEnum<{
|
|
17046
|
-
unavailable: "unavailable";
|
|
17047
17088
|
available: "available";
|
|
17089
|
+
unavailable: "unavailable";
|
|
17048
17090
|
"rate-limited": "rate-limited";
|
|
17049
17091
|
"confirmed-broken": "confirmed-broken";
|
|
17050
17092
|
transient: "transient";
|
|
@@ -17440,8 +17482,8 @@ declare const crawlerJsonSchemas: {
|
|
|
17440
17482
|
deferredUrls: z.ZodNumber;
|
|
17441
17483
|
limit: z.ZodNumber;
|
|
17442
17484
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
17443
|
-
unavailable: "unavailable";
|
|
17444
17485
|
available: "available";
|
|
17486
|
+
unavailable: "unavailable";
|
|
17445
17487
|
"rate-limited": "rate-limited";
|
|
17446
17488
|
"confirmed-broken": "confirmed-broken";
|
|
17447
17489
|
transient: "transient";
|
|
@@ -18492,8 +18534,8 @@ declare const crawlerJsonSchemas: {
|
|
|
18492
18534
|
status: z.ZodOptional<z.ZodNumber>;
|
|
18493
18535
|
error: z.ZodOptional<z.ZodString>;
|
|
18494
18536
|
state: z.ZodOptional<z.ZodEnum<{
|
|
18495
|
-
unavailable: "unavailable";
|
|
18496
18537
|
available: "available";
|
|
18538
|
+
unavailable: "unavailable";
|
|
18497
18539
|
"rate-limited": "rate-limited";
|
|
18498
18540
|
"confirmed-broken": "confirmed-broken";
|
|
18499
18541
|
transient: "transient";
|
|
@@ -18889,8 +18931,8 @@ declare const crawlerJsonSchemas: {
|
|
|
18889
18931
|
deferredUrls: z.ZodNumber;
|
|
18890
18932
|
limit: z.ZodNumber;
|
|
18891
18933
|
outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
18892
|
-
unavailable: "unavailable";
|
|
18893
18934
|
available: "available";
|
|
18935
|
+
unavailable: "unavailable";
|
|
18894
18936
|
"rate-limited": "rate-limited";
|
|
18895
18937
|
"confirmed-broken": "confirmed-broken";
|
|
18896
18938
|
transient: "transient";
|
|
@@ -20075,8 +20117,8 @@ declare const crawlerJsonSchemas: {
|
|
|
20075
20117
|
status: z.ZodOptional<z.ZodNumber>;
|
|
20076
20118
|
error: z.ZodOptional<z.ZodString>;
|
|
20077
20119
|
state: z.ZodOptional<z.ZodEnum<{
|
|
20078
|
-
unavailable: "unavailable";
|
|
20079
20120
|
available: "available";
|
|
20121
|
+
unavailable: "unavailable";
|
|
20080
20122
|
"rate-limited": "rate-limited";
|
|
20081
20123
|
"confirmed-broken": "confirmed-broken";
|
|
20082
20124
|
transient: "transient";
|
|
@@ -20299,9 +20341,9 @@ declare function analyzeCtrUnderperformersFromRows(input: {
|
|
|
20299
20341
|
};
|
|
20300
20342
|
//#endregion
|
|
20301
20343
|
//#region packages/core/src/analyze/ctr-underperformers.d.ts
|
|
20302
|
-
type SearchAnalytics$
|
|
20344
|
+
type SearchAnalytics$10 = typeof querySearchAnalytics;
|
|
20303
20345
|
interface CtrUnderperformerDependencies {
|
|
20304
|
-
searchAnalytics: SearchAnalytics$
|
|
20346
|
+
searchAnalytics: SearchAnalytics$10;
|
|
20305
20347
|
now: () => Date;
|
|
20306
20348
|
}
|
|
20307
20349
|
declare function ctrUnderperformersReport(input: {
|
|
@@ -20499,7 +20541,7 @@ declare function resolveSegmentRanges(input: {
|
|
|
20499
20541
|
};
|
|
20500
20542
|
//#endregion
|
|
20501
20543
|
//#region packages/core/src/analyze/segment-impact.d.ts
|
|
20502
|
-
type SearchAnalytics$
|
|
20544
|
+
type SearchAnalytics$9 = typeof querySearchAnalytics;
|
|
20503
20545
|
interface SegmentImpactInput {
|
|
20504
20546
|
site: string;
|
|
20505
20547
|
dimension?: SegmentDimension;
|
|
@@ -20513,7 +20555,7 @@ interface SegmentImpactInput {
|
|
|
20513
20555
|
refresh?: boolean;
|
|
20514
20556
|
}
|
|
20515
20557
|
interface SegmentImpactDependencies {
|
|
20516
|
-
searchAnalytics: SearchAnalytics$
|
|
20558
|
+
searchAnalytics: SearchAnalytics$9;
|
|
20517
20559
|
now: () => Date;
|
|
20518
20560
|
}
|
|
20519
20561
|
declare function compareSegmentRows(input: {
|
|
@@ -20708,7 +20750,7 @@ declare const CANNIBAL_MINIMUM_PAGE_SHARE = 0.1;
|
|
|
20708
20750
|
declare const CANNIBAL_MAXIMUM_DOMINANT_SHARE = 0.8;
|
|
20709
20751
|
//#endregion
|
|
20710
20752
|
//#region packages/core/src/analyze/site-diagnostics/cannibal.d.ts
|
|
20711
|
-
type SearchAnalytics$
|
|
20753
|
+
type SearchAnalytics$8 = typeof querySearchAnalytics;
|
|
20712
20754
|
interface CannibalReportInput {
|
|
20713
20755
|
site: string;
|
|
20714
20756
|
days?: number;
|
|
@@ -20721,7 +20763,7 @@ interface CannibalReportInput {
|
|
|
20721
20763
|
refresh?: boolean;
|
|
20722
20764
|
}
|
|
20723
20765
|
interface CannibalDependencies {
|
|
20724
|
-
searchAnalytics: SearchAnalytics$
|
|
20766
|
+
searchAnalytics: SearchAnalytics$8;
|
|
20725
20767
|
now: () => Date;
|
|
20726
20768
|
}
|
|
20727
20769
|
declare function cannibalReport(input: CannibalReportInput, dependencies?: CannibalDependencies): Promise<CannibalReport>;
|
|
@@ -20889,7 +20931,7 @@ declare function decayComparisonRange(current: {
|
|
|
20889
20931
|
};
|
|
20890
20932
|
//#endregion
|
|
20891
20933
|
//#region packages/core/src/analyze/site-diagnostics/decaying.d.ts
|
|
20892
|
-
type SearchAnalytics$
|
|
20934
|
+
type SearchAnalytics$7 = typeof querySearchAnalytics;
|
|
20893
20935
|
interface DecayingReportInput {
|
|
20894
20936
|
site: string;
|
|
20895
20937
|
days?: number;
|
|
@@ -20905,7 +20947,7 @@ interface DecayingReportInput {
|
|
|
20905
20947
|
refresh?: boolean;
|
|
20906
20948
|
}
|
|
20907
20949
|
interface DecayingDependencies {
|
|
20908
|
-
searchAnalytics: SearchAnalytics$
|
|
20950
|
+
searchAnalytics: SearchAnalytics$7;
|
|
20909
20951
|
now: () => Date;
|
|
20910
20952
|
}
|
|
20911
20953
|
declare function decayingReport(input: DecayingReportInput, dependencies?: DecayingDependencies): Promise<DecayReport>;
|
|
@@ -21051,7 +21093,7 @@ type AnalyzeQuickWinsInput = {
|
|
|
21051
21093
|
declare function analyzeQuickWinsFromRows(input: AnalyzeQuickWinsInput): QuickWinAnalysis;
|
|
21052
21094
|
//#endregion
|
|
21053
21095
|
//#region packages/core/src/analyze/site-diagnostics/quick-wins.d.ts
|
|
21054
|
-
type SearchAnalytics$
|
|
21096
|
+
type SearchAnalytics$6 = typeof querySearchAnalytics;
|
|
21055
21097
|
type FetchPage$3 = typeof fetchPage;
|
|
21056
21098
|
type ExtractPage$2 = typeof extractPage;
|
|
21057
21099
|
type QuickWinsInput = {
|
|
@@ -21070,7 +21112,7 @@ type QuickWinsInput = {
|
|
|
21070
21112
|
refresh?: boolean;
|
|
21071
21113
|
};
|
|
21072
21114
|
type QuickWinsDependencies = {
|
|
21073
|
-
searchAnalytics: SearchAnalytics$
|
|
21115
|
+
searchAnalytics: SearchAnalytics$6;
|
|
21074
21116
|
fetch: FetchPage$3;
|
|
21075
21117
|
extract: ExtractPage$2;
|
|
21076
21118
|
now: () => Date;
|
|
@@ -21312,7 +21354,7 @@ type AnalyzeStrikingDistanceInput = {
|
|
|
21312
21354
|
declare function analyzeStrikingDistanceRows(input: AnalyzeStrikingDistanceInput): StrikingDistanceAnalysis;
|
|
21313
21355
|
//#endregion
|
|
21314
21356
|
//#region packages/core/src/analyze/striking-distance.d.ts
|
|
21315
|
-
type SearchAnalytics$
|
|
21357
|
+
type SearchAnalytics$5 = typeof querySearchAnalytics;
|
|
21316
21358
|
type VerifyQueryContent = typeof verifyQueryContent;
|
|
21317
21359
|
type StrikingDistanceInput = {
|
|
21318
21360
|
site: string;
|
|
@@ -21377,7 +21419,7 @@ type StrikingDistanceReport = {
|
|
|
21377
21419
|
recommendations: string[];
|
|
21378
21420
|
};
|
|
21379
21421
|
type StrikingDistanceDependencies = {
|
|
21380
|
-
searchAnalytics: SearchAnalytics$
|
|
21422
|
+
searchAnalytics: SearchAnalytics$5;
|
|
21381
21423
|
verifyContent: VerifyQueryContent;
|
|
21382
21424
|
now: () => Date;
|
|
21383
21425
|
};
|
|
@@ -22056,7 +22098,7 @@ interface InternalLinksAnalysis {
|
|
|
22056
22098
|
declare function analyzeInternalLinksFromRows(input: InternalLinksAnalysisInput): InternalLinksAnalysis;
|
|
22057
22099
|
//#endregion
|
|
22058
22100
|
//#region packages/core/src/analyze/internal-links.d.ts
|
|
22059
|
-
type SearchAnalytics$
|
|
22101
|
+
type SearchAnalytics$4 = typeof querySearchAnalytics;
|
|
22060
22102
|
type FetchPage$2 = typeof fetchPage;
|
|
22061
22103
|
type ExtractPage$1 = typeof extractPage;
|
|
22062
22104
|
interface InternalLinksInput {
|
|
@@ -22073,13 +22115,566 @@ interface InternalLinksInput {
|
|
|
22073
22115
|
refresh?: boolean;
|
|
22074
22116
|
}
|
|
22075
22117
|
interface InternalLinksDependencies {
|
|
22076
|
-
searchAnalytics: SearchAnalytics$
|
|
22118
|
+
searchAnalytics: SearchAnalytics$4;
|
|
22077
22119
|
fetch: FetchPage$2;
|
|
22078
22120
|
extract: ExtractPage$1;
|
|
22079
22121
|
now: () => Date;
|
|
22080
22122
|
}
|
|
22081
22123
|
declare function internalLinksReport(input: InternalLinksInput, dependencies?: InternalLinksDependencies): Promise<InternalLinksReport>;
|
|
22082
22124
|
//#endregion
|
|
22125
|
+
//#region packages/core/src/providers/contracts.d.ts
|
|
22126
|
+
declare const providerIdSchema: z.ZodEnum<{
|
|
22127
|
+
dataforseo: "dataforseo";
|
|
22128
|
+
semrush: "semrush";
|
|
22129
|
+
ahrefs: "ahrefs";
|
|
22130
|
+
}>;
|
|
22131
|
+
type ProviderId = z.infer<typeof providerIdSchema>;
|
|
22132
|
+
declare const providerCapabilitySchema: z.ZodEnum<{
|
|
22133
|
+
"keyword-metrics": "keyword-metrics";
|
|
22134
|
+
"keyword-discovery": "keyword-discovery";
|
|
22135
|
+
"serp-snapshot": "serp-snapshot";
|
|
22136
|
+
"domain-overview": "domain-overview";
|
|
22137
|
+
"ranked-keywords": "ranked-keywords";
|
|
22138
|
+
"relevant-pages": "relevant-pages";
|
|
22139
|
+
"serp-competitors": "serp-competitors";
|
|
22140
|
+
"link-summary": "link-summary";
|
|
22141
|
+
"referring-domains": "referring-domains";
|
|
22142
|
+
backlinks: "backlinks";
|
|
22143
|
+
"domain-rating": "domain-rating";
|
|
22144
|
+
"local-search": "local-search";
|
|
22145
|
+
"ai-mentions": "ai-mentions";
|
|
22146
|
+
"ai-prompt-observation": "ai-prompt-observation";
|
|
22147
|
+
}>;
|
|
22148
|
+
type ProviderCapability = z.infer<typeof providerCapabilitySchema>;
|
|
22149
|
+
declare const searchMarketSchema: z.ZodObject<{
|
|
22150
|
+
searchEngine: z.ZodDefault<z.ZodEnum<{
|
|
22151
|
+
google: "google";
|
|
22152
|
+
bing: "bing";
|
|
22153
|
+
}>>;
|
|
22154
|
+
countryCode: z.ZodString;
|
|
22155
|
+
languageCode: z.ZodString;
|
|
22156
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
22157
|
+
code: z.ZodOptional<z.ZodNumber>;
|
|
22158
|
+
name: z.ZodOptional<z.ZodString>;
|
|
22159
|
+
}, z.core.$strip>>;
|
|
22160
|
+
device: z.ZodOptional<z.ZodEnum<{
|
|
22161
|
+
mobile: "mobile";
|
|
22162
|
+
desktop: "desktop";
|
|
22163
|
+
}>>;
|
|
22164
|
+
}, z.core.$strict>;
|
|
22165
|
+
type SearchMarket = z.infer<typeof searchMarketSchema>;
|
|
22166
|
+
type ProviderValue<T> = {
|
|
22167
|
+
state: 'observed';
|
|
22168
|
+
value: T;
|
|
22169
|
+
} | {
|
|
22170
|
+
state: 'missing' | 'unavailable' | 'invalid';
|
|
22171
|
+
value: null;
|
|
22172
|
+
reason: string;
|
|
22173
|
+
};
|
|
22174
|
+
declare function observedValue<T>(value: T): ProviderValue<T>;
|
|
22175
|
+
declare function unavailableValue<T>(state: 'missing' | 'unavailable' | 'invalid', reason: string): ProviderValue<T>;
|
|
22176
|
+
type ProviderWarning = {
|
|
22177
|
+
code: string;
|
|
22178
|
+
message: string;
|
|
22179
|
+
field?: string;
|
|
22180
|
+
row?: number;
|
|
22181
|
+
};
|
|
22182
|
+
type ProviderCoverage = {
|
|
22183
|
+
requestedRows: number | null;
|
|
22184
|
+
returnedRows: number | null;
|
|
22185
|
+
retainedRows: number | null;
|
|
22186
|
+
invalidRows: number;
|
|
22187
|
+
providerTotalRows: number | null;
|
|
22188
|
+
completeness: 'complete' | 'partial' | 'capped' | 'filtered' | 'unavailable' | 'invalid' | 'unknown';
|
|
22189
|
+
nextCursor: string | null;
|
|
22190
|
+
};
|
|
22191
|
+
type ProviderCacheEvidence = {
|
|
22192
|
+
status: 'hit' | 'miss' | 'bypass';
|
|
22193
|
+
storedAt: string | null;
|
|
22194
|
+
expiresAt: string | null;
|
|
22195
|
+
};
|
|
22196
|
+
type ProviderCostEvidence = {
|
|
22197
|
+
currency: 'USD';
|
|
22198
|
+
estimatedMicros: number | null;
|
|
22199
|
+
actualMicros: number | null;
|
|
22200
|
+
taskIds: string[];
|
|
22201
|
+
};
|
|
22202
|
+
type ProviderRequestEvidence = {
|
|
22203
|
+
operation: string;
|
|
22204
|
+
endpoint: string;
|
|
22205
|
+
limit: number | null;
|
|
22206
|
+
filters: Record<string, string | number | boolean>;
|
|
22207
|
+
sort: string[];
|
|
22208
|
+
};
|
|
22209
|
+
type ProviderEvidence<T> = {
|
|
22210
|
+
schemaVersion: 1;
|
|
22211
|
+
provider: ProviderId;
|
|
22212
|
+
capability: ProviderCapability;
|
|
22213
|
+
data: T;
|
|
22214
|
+
observedAt: string;
|
|
22215
|
+
market: SearchMarket;
|
|
22216
|
+
coverage: ProviderCoverage;
|
|
22217
|
+
cache: ProviderCacheEvidence;
|
|
22218
|
+
cost: ProviderCostEvidence;
|
|
22219
|
+
request: ProviderRequestEvidence;
|
|
22220
|
+
warnings: ProviderWarning[];
|
|
22221
|
+
};
|
|
22222
|
+
type ProviderCapabilitySupport = {
|
|
22223
|
+
capability: ProviderCapability;
|
|
22224
|
+
status: 'available' | 'unavailable';
|
|
22225
|
+
reason?: string;
|
|
22226
|
+
markets: 'all' | readonly ProviderMarketSupport[];
|
|
22227
|
+
};
|
|
22228
|
+
type ProviderMarketSupport = {
|
|
22229
|
+
searchEngines?: readonly SearchMarket['searchEngine'][];
|
|
22230
|
+
countryCodes?: readonly string[];
|
|
22231
|
+
languageCodes?: readonly string[];
|
|
22232
|
+
devices?: readonly NonNullable<SearchMarket['device']>[];
|
|
22233
|
+
location?: 'any' | 'country-only' | 'canonical';
|
|
22234
|
+
};
|
|
22235
|
+
interface ProviderAdapter {
|
|
22236
|
+
readonly provider: ProviderId;
|
|
22237
|
+
readonly capabilitySupport: readonly ProviderCapabilitySupport[];
|
|
22238
|
+
}
|
|
22239
|
+
type KeywordMetric = {
|
|
22240
|
+
keyword: string;
|
|
22241
|
+
monthlySearchVolume: ProviderValue<number>;
|
|
22242
|
+
monthlySearches: ProviderValue<KeywordMonthlySearch[]>;
|
|
22243
|
+
searchVolumeUpdatedAt: ProviderValue<string>;
|
|
22244
|
+
cpcUsd: ProviderValue<number>;
|
|
22245
|
+
paidCompetition: ProviderValue<number>;
|
|
22246
|
+
keywordDifficulty: ProviderValue<number>;
|
|
22247
|
+
intent: ProviderValue<string>;
|
|
22248
|
+
resultCount: ProviderValue<number>;
|
|
22249
|
+
};
|
|
22250
|
+
type KeywordMonthlySearch = {
|
|
22251
|
+
year: number;
|
|
22252
|
+
month: number;
|
|
22253
|
+
searchVolume: number;
|
|
22254
|
+
};
|
|
22255
|
+
type ProviderRequestContext = {
|
|
22256
|
+
projectId?: string;
|
|
22257
|
+
reportId: string;
|
|
22258
|
+
reportRunId: string;
|
|
22259
|
+
};
|
|
22260
|
+
type KeywordMetricsRequest = {
|
|
22261
|
+
keywords: string[];
|
|
22262
|
+
market: SearchMarket;
|
|
22263
|
+
refresh?: boolean;
|
|
22264
|
+
context?: ProviderRequestContext;
|
|
22265
|
+
};
|
|
22266
|
+
interface KeywordMetricsProvider extends ProviderAdapter {
|
|
22267
|
+
keywordMetrics(input: KeywordMetricsRequest): Promise<ProviderEvidence<KeywordMetric[]>>;
|
|
22268
|
+
}
|
|
22269
|
+
type KeywordMetricsCostEstimate = {
|
|
22270
|
+
schemaVersion: 1;
|
|
22271
|
+
provider: ProviderId;
|
|
22272
|
+
capability: 'keyword-metrics';
|
|
22273
|
+
currency: 'USD';
|
|
22274
|
+
requestedRows: number;
|
|
22275
|
+
requestCount: number;
|
|
22276
|
+
estimatedMicros: number | null;
|
|
22277
|
+
observedAt: string;
|
|
22278
|
+
completeness: 'complete' | 'unavailable';
|
|
22279
|
+
basis: string;
|
|
22280
|
+
};
|
|
22281
|
+
interface KeywordMetricsCostEstimator extends ProviderAdapter {
|
|
22282
|
+
estimateKeywordMetricsCost(input: {
|
|
22283
|
+
requestedRows: number;
|
|
22284
|
+
market: SearchMarket;
|
|
22285
|
+
}): Promise<KeywordMetricsCostEstimate>;
|
|
22286
|
+
}
|
|
22287
|
+
declare const keywordDiscoverySourceSchema: z.ZodEnum<{
|
|
22288
|
+
ideas: "ideas";
|
|
22289
|
+
related: "related";
|
|
22290
|
+
suggestions: "suggestions";
|
|
22291
|
+
}>;
|
|
22292
|
+
type KeywordDiscoverySource = z.infer<typeof keywordDiscoverySourceSchema>;
|
|
22293
|
+
type KeywordIdeaSource = {
|
|
22294
|
+
seed: string;
|
|
22295
|
+
source: KeywordDiscoverySource;
|
|
22296
|
+
};
|
|
22297
|
+
type KeywordIdea = KeywordMetric & {
|
|
22298
|
+
sources: KeywordIdeaSource[];
|
|
22299
|
+
};
|
|
22300
|
+
type KeywordDiscoveryRequest = {
|
|
22301
|
+
seeds: string[];
|
|
22302
|
+
sources: KeywordDiscoverySource[];
|
|
22303
|
+
market: SearchMarket;
|
|
22304
|
+
limit: number;
|
|
22305
|
+
refresh?: boolean;
|
|
22306
|
+
context?: ProviderRequestContext;
|
|
22307
|
+
};
|
|
22308
|
+
interface KeywordDiscoveryProvider extends ProviderAdapter {
|
|
22309
|
+
discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
|
|
22310
|
+
}
|
|
22311
|
+
type SerpOrganicResult = {
|
|
22312
|
+
rankGroup: number;
|
|
22313
|
+
rankAbsolute: number;
|
|
22314
|
+
page: number;
|
|
22315
|
+
domain: string;
|
|
22316
|
+
url: string;
|
|
22317
|
+
title: string | null;
|
|
22318
|
+
description: string | null;
|
|
22319
|
+
isFeaturedSnippet: boolean | null;
|
|
22320
|
+
};
|
|
22321
|
+
type SerpSnapshot = {
|
|
22322
|
+
keyword: string;
|
|
22323
|
+
effectiveKeyword: string;
|
|
22324
|
+
searchEngineDomain: string | null;
|
|
22325
|
+
checkedAt: string;
|
|
22326
|
+
checkUrl: string | null;
|
|
22327
|
+
resultCount: number | null;
|
|
22328
|
+
pagesCount: number | null;
|
|
22329
|
+
features: string[];
|
|
22330
|
+
organicResults: SerpOrganicResult[];
|
|
22331
|
+
};
|
|
22332
|
+
type SerpSnapshotRequest = {
|
|
22333
|
+
keyword: string;
|
|
22334
|
+
market: SearchMarket;
|
|
22335
|
+
depth: number;
|
|
22336
|
+
refresh?: boolean;
|
|
22337
|
+
context?: ProviderRequestContext;
|
|
22338
|
+
};
|
|
22339
|
+
interface SerpSnapshotProvider extends ProviderAdapter {
|
|
22340
|
+
serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
|
|
22341
|
+
}
|
|
22342
|
+
//#endregion
|
|
22343
|
+
//#region packages/core/src/providers/resolver.d.ts
|
|
22344
|
+
type ProviderCandidate = {
|
|
22345
|
+
adapter: ProviderAdapter;
|
|
22346
|
+
connected: boolean;
|
|
22347
|
+
priority: number;
|
|
22348
|
+
};
|
|
22349
|
+
type ProviderResolution = {
|
|
22350
|
+
status: 'available';
|
|
22351
|
+
provider: ProviderAdapter;
|
|
22352
|
+
considered: ProviderId[];
|
|
22353
|
+
} | {
|
|
22354
|
+
status: 'unavailable';
|
|
22355
|
+
reason: 'provider-not-registered' | 'provider-not-connected' | 'capability-not-supported' | 'market-not-supported';
|
|
22356
|
+
considered: ProviderId[];
|
|
22357
|
+
};
|
|
22358
|
+
declare function resolveProvider(input: {
|
|
22359
|
+
capability: ProviderCapability;
|
|
22360
|
+
market: SearchMarket;
|
|
22361
|
+
candidates: readonly ProviderCandidate[];
|
|
22362
|
+
provider?: ProviderId;
|
|
22363
|
+
}): ProviderResolution;
|
|
22364
|
+
//#endregion
|
|
22365
|
+
//#region packages/core/src/analyze/keyword-metrics.d.ts
|
|
22366
|
+
type KeywordTrend = {
|
|
22367
|
+
state: 'observed';
|
|
22368
|
+
direction: 'increasing' | 'decreasing' | 'stable' | 'increased-from-zero';
|
|
22369
|
+
recentAverage: number;
|
|
22370
|
+
previousAverage: number;
|
|
22371
|
+
absoluteChange: number;
|
|
22372
|
+
percentChange: ProviderValue<number>;
|
|
22373
|
+
months: Array<{
|
|
22374
|
+
year: number;
|
|
22375
|
+
month: number;
|
|
22376
|
+
}>;
|
|
22377
|
+
methodology: string;
|
|
22378
|
+
} | {
|
|
22379
|
+
state: 'unavailable';
|
|
22380
|
+
reason: string;
|
|
22381
|
+
};
|
|
22382
|
+
type KeywordMetricAnalysis = {
|
|
22383
|
+
keyword: string;
|
|
22384
|
+
trend: KeywordTrend;
|
|
22385
|
+
};
|
|
22386
|
+
type KeywordMetricFinding = {
|
|
22387
|
+
code: 'recent-demand-increase' | 'recent-demand-decrease';
|
|
22388
|
+
keyword: string;
|
|
22389
|
+
evidenceRef: string;
|
|
22390
|
+
principle: string;
|
|
22391
|
+
detail: string;
|
|
22392
|
+
};
|
|
22393
|
+
type KeywordMetricsReport = {
|
|
22394
|
+
schemaVersion: 1;
|
|
22395
|
+
generatedAt: string;
|
|
22396
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
22397
|
+
market: SearchMarket;
|
|
22398
|
+
summary: {
|
|
22399
|
+
requestedKeywords: number;
|
|
22400
|
+
providerRows: number;
|
|
22401
|
+
keywordsWithObservedVolume: number;
|
|
22402
|
+
observedZeroVolume: number;
|
|
22403
|
+
missingOrInvalidVolume: number;
|
|
22404
|
+
increasingTrends: number;
|
|
22405
|
+
decreasingTrends: number;
|
|
22406
|
+
stableTrends: number;
|
|
22407
|
+
unavailableTrends: number;
|
|
22408
|
+
verdict: string;
|
|
22409
|
+
};
|
|
22410
|
+
evidence: ProviderEvidence<KeywordMetric[]>;
|
|
22411
|
+
analysis: KeywordMetricAnalysis[];
|
|
22412
|
+
findings: KeywordMetricFinding[];
|
|
22413
|
+
caveats: string[];
|
|
22414
|
+
nextSteps: string[];
|
|
22415
|
+
};
|
|
22416
|
+
type KeywordMetricsReportDependencies = {
|
|
22417
|
+
candidates?: readonly ProviderCandidate[];
|
|
22418
|
+
now?: () => Date;
|
|
22419
|
+
};
|
|
22420
|
+
declare function analyzeKeywordTrend(metric: KeywordMetric): KeywordTrend;
|
|
22421
|
+
declare function keywordMetricsReport(input: {
|
|
22422
|
+
keywords: string[];
|
|
22423
|
+
market: SearchMarket;
|
|
22424
|
+
provider?: ProviderId;
|
|
22425
|
+
projectId?: string;
|
|
22426
|
+
context?: Partial<ProviderRequestContext>;
|
|
22427
|
+
refresh?: boolean;
|
|
22428
|
+
}, dependencies?: KeywordMetricsReportDependencies): Promise<KeywordMetricsReport>;
|
|
22429
|
+
//#endregion
|
|
22430
|
+
//#region packages/core/src/analyze/pseo/query-insights.d.ts
|
|
22431
|
+
type PseoQueryPattern = {
|
|
22432
|
+
label: string;
|
|
22433
|
+
queryCount: number;
|
|
22434
|
+
clicks: number;
|
|
22435
|
+
impressions: number;
|
|
22436
|
+
examples: string[];
|
|
22437
|
+
};
|
|
22438
|
+
//#endregion
|
|
22439
|
+
//#region packages/core/src/analyze/second-page-analysis.d.ts
|
|
22440
|
+
declare function analyzeSecondPageRows(input: AnalyzeSecondPageInput): SecondPageAnalysis;
|
|
22441
|
+
//#endregion
|
|
22442
|
+
//#region packages/core/src/analyze/keyword-opportunity-contract.d.ts
|
|
22443
|
+
type KeywordOpportunitySource = 'quick-wins' | 'second-page' | 'striking-distance';
|
|
22444
|
+
type KeywordOpportunitiesInput = {
|
|
22445
|
+
site: string;
|
|
22446
|
+
days?: number;
|
|
22447
|
+
minImpressions?: number;
|
|
22448
|
+
limit?: number;
|
|
22449
|
+
keywordLimit?: number;
|
|
22450
|
+
queriesPerPage?: number;
|
|
22451
|
+
clusterLimit?: number;
|
|
22452
|
+
brandTerms?: string[];
|
|
22453
|
+
includeBrand?: boolean;
|
|
22454
|
+
includeExternal?: boolean;
|
|
22455
|
+
market?: SearchMarket;
|
|
22456
|
+
provider?: ProviderId;
|
|
22457
|
+
projectId?: string;
|
|
22458
|
+
refresh?: boolean;
|
|
22459
|
+
};
|
|
22460
|
+
type BoundedSecondPageItem = Omit<SecondPageItem, 'queries'> & {
|
|
22461
|
+
queries: SecondPageItem['queries'];
|
|
22462
|
+
queryCoverage: {
|
|
22463
|
+
available: number;
|
|
22464
|
+
returned: number;
|
|
22465
|
+
omitted: number;
|
|
22466
|
+
};
|
|
22467
|
+
};
|
|
22468
|
+
type QuickWinsSection = Omit<QuickWinAnalysis, 'eligibleItems'>;
|
|
22469
|
+
type SecondPageSection = Omit<SecondPageAnalysis, 'items'> & {
|
|
22470
|
+
items: BoundedSecondPageItem[];
|
|
22471
|
+
};
|
|
22472
|
+
type StrikingDistanceSection = Omit<StrikingDistanceAnalysis, 'groups'> & {
|
|
22473
|
+
groups: StrikingDistanceAnalysis['groups'];
|
|
22474
|
+
groupCoverage: {
|
|
22475
|
+
available: number;
|
|
22476
|
+
returned: number;
|
|
22477
|
+
omitted: number;
|
|
22478
|
+
};
|
|
22479
|
+
};
|
|
22480
|
+
type KeywordOpportunityFirstParty = {
|
|
22481
|
+
provider: 'google-search-console';
|
|
22482
|
+
dimensions: ['query', 'page'];
|
|
22483
|
+
searchType: 'web';
|
|
22484
|
+
dataState: 'final';
|
|
22485
|
+
rowsFetched: number;
|
|
22486
|
+
calls: number;
|
|
22487
|
+
maxRows: number;
|
|
22488
|
+
possiblyTruncated: boolean;
|
|
22489
|
+
completeness: 'retained-query-rows-only';
|
|
22490
|
+
quickWins: QuickWinsSection;
|
|
22491
|
+
secondPage: SecondPageSection;
|
|
22492
|
+
strikingDistance: StrikingDistanceSection;
|
|
22493
|
+
};
|
|
22494
|
+
type KeywordOpportunityExternal = {
|
|
22495
|
+
requested: boolean;
|
|
22496
|
+
status: 'not-requested' | 'skipped' | 'complete' | 'partial' | 'unavailable';
|
|
22497
|
+
selection: {
|
|
22498
|
+
availableKeywords: number;
|
|
22499
|
+
requestedKeywords: number;
|
|
22500
|
+
omittedKeywords: number;
|
|
22501
|
+
method: 'round-robin-first-party-sections';
|
|
22502
|
+
};
|
|
22503
|
+
report: KeywordMetricsReport | null;
|
|
22504
|
+
reason?: string;
|
|
22505
|
+
error?: {
|
|
22506
|
+
code: 'PROVIDER_UNAVAILABLE' | 'RATE_LIMITED';
|
|
22507
|
+
message: string;
|
|
22508
|
+
retryable: boolean;
|
|
22509
|
+
};
|
|
22510
|
+
};
|
|
22511
|
+
type KeywordOpportunityCombined = {
|
|
22512
|
+
keyword: string;
|
|
22513
|
+
sources: KeywordOpportunitySource[];
|
|
22514
|
+
firstParty: {
|
|
22515
|
+
clicks: number;
|
|
22516
|
+
impressions: number;
|
|
22517
|
+
ctr: number;
|
|
22518
|
+
averagePosition: number;
|
|
22519
|
+
urls: Array<{
|
|
22520
|
+
url: string;
|
|
22521
|
+
clicks: number;
|
|
22522
|
+
impressions: number;
|
|
22523
|
+
ctr: number;
|
|
22524
|
+
averagePosition: number;
|
|
22525
|
+
}>;
|
|
22526
|
+
urlCoverage: {
|
|
22527
|
+
available: number;
|
|
22528
|
+
returned: number;
|
|
22529
|
+
omitted: number;
|
|
22530
|
+
};
|
|
22531
|
+
};
|
|
22532
|
+
external?: {
|
|
22533
|
+
evidenceRef: string;
|
|
22534
|
+
monthlySearchVolume: KeywordMetric['monthlySearchVolume'];
|
|
22535
|
+
cpcUsd: KeywordMetric['cpcUsd'];
|
|
22536
|
+
keywordDifficulty: KeywordMetric['keywordDifficulty'];
|
|
22537
|
+
intent: KeywordMetric['intent'];
|
|
22538
|
+
resultCount: KeywordMetric['resultCount'];
|
|
22539
|
+
trend: KeywordTrend;
|
|
22540
|
+
};
|
|
22541
|
+
};
|
|
22542
|
+
type KeywordOpportunityCluster = QueryCluster & {
|
|
22543
|
+
externalContext: {
|
|
22544
|
+
selectedQueries: number;
|
|
22545
|
+
metricsWithObservedVolume: number;
|
|
22546
|
+
metricEvidenceRefs: string[];
|
|
22547
|
+
};
|
|
22548
|
+
};
|
|
22549
|
+
type KeywordOpportunityFinding = {
|
|
22550
|
+
code: 'provider-zero-with-first-party-impressions';
|
|
22551
|
+
keyword: string;
|
|
22552
|
+
evidenceRefs: [string, string];
|
|
22553
|
+
detail: string;
|
|
22554
|
+
action: string;
|
|
22555
|
+
} | {
|
|
22556
|
+
code: 'recent-demand-increase';
|
|
22557
|
+
keyword: string;
|
|
22558
|
+
evidenceRefs: [string, string];
|
|
22559
|
+
detail: string;
|
|
22560
|
+
action: string;
|
|
22561
|
+
} | {
|
|
22562
|
+
code: 'programmatic-template-cluster';
|
|
22563
|
+
keyword: string;
|
|
22564
|
+
evidenceRefs: [string];
|
|
22565
|
+
detail: string;
|
|
22566
|
+
action: string;
|
|
22567
|
+
};
|
|
22568
|
+
type KeywordOpportunityDataSourcePrompt = {
|
|
22569
|
+
clusterRef: string;
|
|
22570
|
+
queryLabel: string;
|
|
22571
|
+
instruction: string;
|
|
22572
|
+
requiredChecks: readonly ['stable entity IDs and join keys', 'required attributes and missing-value rules', 'source provenance and usage rights', 'update cadence and freshness checks', 'page uniqueness and duplicate prevention', 'representative output and internal-link review'];
|
|
22573
|
+
evidenceBoundary: string;
|
|
22574
|
+
};
|
|
22575
|
+
type KeywordOpportunitiesReport = {
|
|
22576
|
+
schemaVersion: 1;
|
|
22577
|
+
site: string;
|
|
22578
|
+
generatedAt: string;
|
|
22579
|
+
range: {
|
|
22580
|
+
startDate: string;
|
|
22581
|
+
endDate: string;
|
|
22582
|
+
};
|
|
22583
|
+
rangeDays: number;
|
|
22584
|
+
dataStatus: 'complete' | 'partial' | 'empty' | 'filtered';
|
|
22585
|
+
summary: {
|
|
22586
|
+
sourceRows: number;
|
|
22587
|
+
quickWinCandidates: number;
|
|
22588
|
+
secondPageCandidates: number;
|
|
22589
|
+
strikingDistanceCandidates: number;
|
|
22590
|
+
availableCandidateKeywords: number;
|
|
22591
|
+
returnedCandidateKeywords: number;
|
|
22592
|
+
externalMetricsObserved: number;
|
|
22593
|
+
candidateClusters: number;
|
|
22594
|
+
programmaticTemplateClusters: number;
|
|
22595
|
+
verdict: string;
|
|
22596
|
+
};
|
|
22597
|
+
methodology: {
|
|
22598
|
+
id: 'gsc_keyword_opportunities_v1';
|
|
22599
|
+
sourceAcquisition: 'one-bounded-query-page-acquisition';
|
|
22600
|
+
opportunityAnalyses: readonly ['gsc_quick_wins_v2', 'gsc_second_page_v2', 'gsc_striking_distance_v2'];
|
|
22601
|
+
externalSelection: 'round-robin-first-party-sections';
|
|
22602
|
+
externalChangesPriorityScore: false;
|
|
22603
|
+
clustersUse: 'returned-opportunity-keyword-subset';
|
|
22604
|
+
clusterMinImpressions: 25;
|
|
22605
|
+
};
|
|
22606
|
+
firstParty: KeywordOpportunityFirstParty;
|
|
22607
|
+
external: KeywordOpportunityExternal;
|
|
22608
|
+
combined: KeywordOpportunityCombined[];
|
|
22609
|
+
candidateClusters: KeywordOpportunityCluster[];
|
|
22610
|
+
programmaticPatterns: PseoQueryPattern[];
|
|
22611
|
+
findings: KeywordOpportunityFinding[];
|
|
22612
|
+
dataSourcePrompts: KeywordOpportunityDataSourcePrompt[];
|
|
22613
|
+
caveats: string[];
|
|
22614
|
+
nextSteps: string[];
|
|
22615
|
+
};
|
|
22616
|
+
//#endregion
|
|
22617
|
+
//#region packages/core/src/analyze/keyword-opportunities.d.ts
|
|
22618
|
+
type SearchAnalytics$3 = typeof querySearchAnalytics;
|
|
22619
|
+
type KeywordMetrics = typeof keywordMetricsReport;
|
|
22620
|
+
type KeywordOpportunitiesDependencies = {
|
|
22621
|
+
searchAnalytics?: SearchAnalytics$3;
|
|
22622
|
+
keywordMetrics?: KeywordMetrics;
|
|
22623
|
+
now?: () => Date;
|
|
22624
|
+
};
|
|
22625
|
+
declare function keywordOpportunitiesReport(input: KeywordOpportunitiesInput, dependencies?: KeywordOpportunitiesDependencies): Promise<KeywordOpportunitiesReport>;
|
|
22626
|
+
//#endregion
|
|
22627
|
+
//#region packages/core/src/analyze/keyword-research.d.ts
|
|
22628
|
+
type KeywordResearchAnalysis = {
|
|
22629
|
+
keyword: string;
|
|
22630
|
+
sourceCount: number;
|
|
22631
|
+
seedCount: number;
|
|
22632
|
+
trend: KeywordTrend;
|
|
22633
|
+
};
|
|
22634
|
+
type KeywordResearchFinding = {
|
|
22635
|
+
code: 'multi-source-keyword' | 'recent-demand-increase';
|
|
22636
|
+
keyword: string;
|
|
22637
|
+
evidenceRef: string;
|
|
22638
|
+
principle: string;
|
|
22639
|
+
detail: string;
|
|
22640
|
+
};
|
|
22641
|
+
type KeywordResearchReport = {
|
|
22642
|
+
schemaVersion: 1;
|
|
22643
|
+
generatedAt: string;
|
|
22644
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
22645
|
+
market: SearchMarket;
|
|
22646
|
+
summary: {
|
|
22647
|
+
requestedSeeds: number;
|
|
22648
|
+
requestedSources: number;
|
|
22649
|
+
discoveredKeywords: number;
|
|
22650
|
+
keywordsWithObservedVolume: number;
|
|
22651
|
+
observedZeroVolume: number;
|
|
22652
|
+
missingOrInvalidVolume: number;
|
|
22653
|
+
keywordsFoundBySeveralSources: number;
|
|
22654
|
+
increasingTrends: number;
|
|
22655
|
+
verdict: string;
|
|
22656
|
+
};
|
|
22657
|
+
evidence: ProviderEvidence<KeywordIdea[]>;
|
|
22658
|
+
analysis: KeywordResearchAnalysis[];
|
|
22659
|
+
findings: KeywordResearchFinding[];
|
|
22660
|
+
caveats: string[];
|
|
22661
|
+
nextSteps: string[];
|
|
22662
|
+
};
|
|
22663
|
+
type KeywordResearchReportDependencies = {
|
|
22664
|
+
candidates?: readonly ProviderCandidate[];
|
|
22665
|
+
now?: () => Date;
|
|
22666
|
+
};
|
|
22667
|
+
declare function keywordResearchReport(input: {
|
|
22668
|
+
seeds: string[];
|
|
22669
|
+
sources?: KeywordDiscoverySource[];
|
|
22670
|
+
market: SearchMarket;
|
|
22671
|
+
limit?: number;
|
|
22672
|
+
provider?: ProviderId;
|
|
22673
|
+
projectId?: string;
|
|
22674
|
+
context?: Partial<ProviderRequestContext>;
|
|
22675
|
+
refresh?: boolean;
|
|
22676
|
+
}, dependencies?: KeywordResearchReportDependencies): Promise<KeywordResearchReport>;
|
|
22677
|
+
//#endregion
|
|
22083
22678
|
//#region packages/core/src/analyze/monitoring/crawl-diff.d.ts
|
|
22084
22679
|
declare function compareCrawlPages(input: {
|
|
22085
22680
|
current: CrawlPageSnapshot[];
|
|
@@ -22484,14 +23079,15 @@ declare namespace SqliteDatabase {
|
|
|
22484
23079
|
}
|
|
22485
23080
|
//#endregion
|
|
22486
23081
|
//#region packages/core/src/storage/database.d.ts
|
|
23082
|
+
declare function ensurePrivateDatabaseFiles(path: string): void;
|
|
22487
23083
|
declare function getDb(): SqliteDatabase.Database;
|
|
22488
|
-
declare function noteCacheWrite(sizeBytes?: number): void;
|
|
23084
|
+
declare function noteCacheWrite(sizeBytes?: number, database?: SqliteDatabase.Database): void;
|
|
22489
23085
|
declare function checkDatabaseReadiness(): {
|
|
22490
23086
|
dbPath: string;
|
|
22491
23087
|
};
|
|
22492
23088
|
declare function hashKey(parts: unknown[]): string;
|
|
22493
23089
|
declare function getCacheStats(): CacheStats;
|
|
22494
|
-
declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'semrush' | 'http', olderThanMs?: number): number;
|
|
23090
|
+
declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'semrush' | 'dataforseo' | 'http', olderThanMs?: number): number;
|
|
22495
23091
|
//#endregion
|
|
22496
23092
|
//#region packages/core/src/analyze/monitoring/index-watch.d.ts
|
|
22497
23093
|
declare const INDEX_WATCH_ATTEMPT_RETENTION = 20;
|
|
@@ -22808,15 +23404,6 @@ declare function performanceAudit(input: {
|
|
|
22808
23404
|
now?: () => Date;
|
|
22809
23405
|
}): Promise<PerformanceAuditReport>;
|
|
22810
23406
|
//#endregion
|
|
22811
|
-
//#region packages/core/src/analyze/pseo/query-insights.d.ts
|
|
22812
|
-
type PseoQueryPattern = {
|
|
22813
|
-
label: string;
|
|
22814
|
-
queryCount: number;
|
|
22815
|
-
clicks: number;
|
|
22816
|
-
impressions: number;
|
|
22817
|
-
examples: string[];
|
|
22818
|
-
};
|
|
22819
|
-
//#endregion
|
|
22820
23407
|
//#region packages/core/src/analyze/pseo/types.d.ts
|
|
22821
23408
|
type PseoQueryPageRow = {
|
|
22822
23409
|
query: string;
|
|
@@ -23093,15 +23680,34 @@ declare function pseoAuditOptions(input: Omit<PseoAuditInput, 'site'>): {
|
|
|
23093
23680
|
rate?: FetchRateControls | undefined;
|
|
23094
23681
|
progress?: ProgressReporter | undefined;
|
|
23095
23682
|
};
|
|
23096
|
-
|
|
23097
|
-
|
|
23098
|
-
|
|
23099
|
-
|
|
23100
|
-
|
|
23101
|
-
|
|
23102
|
-
|
|
23103
|
-
|
|
23104
|
-
|
|
23683
|
+
type PseoAuditAcquisition = {
|
|
23684
|
+
options: ReturnType<typeof pseoAuditOptions>;
|
|
23685
|
+
generatedAt: string;
|
|
23686
|
+
range: {
|
|
23687
|
+
startDate: string;
|
|
23688
|
+
endDate: string;
|
|
23689
|
+
};
|
|
23690
|
+
warnings: string[];
|
|
23691
|
+
sitemapUrls: string[];
|
|
23692
|
+
pageRows: PseoPageRow[];
|
|
23693
|
+
queryPageRows: PseoQueryPageRow[];
|
|
23694
|
+
pageRowsFetched: number;
|
|
23695
|
+
queryPageRowsFetched: number;
|
|
23696
|
+
};
|
|
23697
|
+
declare function acquirePseoAuditEvidence(input: PseoAuditInput, dependencies?: PseoDependencies): Promise<PseoAuditAcquisition>;
|
|
23698
|
+
declare function buildPseoAuditFromAcquisition(input: PseoAuditInput, acquisition: PseoAuditAcquisition, evidence?: {
|
|
23699
|
+
crawl: PseoCrawlSample[];
|
|
23700
|
+
inspection: PseoInspectionSample[];
|
|
23701
|
+
}): PseoAuditReport;
|
|
23702
|
+
declare function pseoAuditReport(input: PseoAuditInput, dependencies?: PseoDependencies): Promise<PseoAuditReport>;
|
|
23703
|
+
//#endregion
|
|
23704
|
+
//#region packages/core/src/analyze/pseo/markdown.d.ts
|
|
23705
|
+
declare function renderPseoMarkdown(report: PseoAuditReport): string;
|
|
23706
|
+
//#endregion
|
|
23707
|
+
//#region packages/core/src/presentation.d.ts
|
|
23708
|
+
type PresentationScalar = boolean | number | string | null;
|
|
23709
|
+
type PresentationTableColumn = {
|
|
23710
|
+
key: string;
|
|
23105
23711
|
label: string;
|
|
23106
23712
|
type?: 'number' | 'string' | 'url';
|
|
23107
23713
|
};
|
|
@@ -23127,6 +23733,276 @@ type Presentation = {
|
|
|
23127
23733
|
//#region packages/core/src/analyze/pseo/presentation.d.ts
|
|
23128
23734
|
declare function pseoPresentation(report: PseoAuditReport): Presentation;
|
|
23129
23735
|
//#endregion
|
|
23736
|
+
//#region packages/core/src/analyze/pseo-opportunity-contract.d.ts
|
|
23737
|
+
type PseoOpportunitiesInput = Pick<PseoAuditInput, 'site' | 'days' | 'sitemaps' | 'maxSitemapUrls' | 'templateLimit' | 'minimumTemplateUrls' | 'minimumTemplateShare' | 'minimumTemplateImpressions' | 'brandTerms' | 'includeBrand' | 'refresh'> & {
|
|
23738
|
+
clusterLimit?: number;
|
|
23739
|
+
includeExternal?: boolean;
|
|
23740
|
+
market?: SearchMarket;
|
|
23741
|
+
provider?: ProviderId;
|
|
23742
|
+
discoverySources?: KeywordDiscoverySource[];
|
|
23743
|
+
discoveryLimit?: number;
|
|
23744
|
+
candidateLimit?: number;
|
|
23745
|
+
serpLimit?: number;
|
|
23746
|
+
serpDepth?: number;
|
|
23747
|
+
projectId?: string;
|
|
23748
|
+
};
|
|
23749
|
+
type PseoOpportunityTemplate = {
|
|
23750
|
+
signature: string;
|
|
23751
|
+
shape: PseoAuditTemplate['shape'];
|
|
23752
|
+
sampleUrls: string[];
|
|
23753
|
+
population: {
|
|
23754
|
+
discoveredUrls: number;
|
|
23755
|
+
gscVisibleUrls: number;
|
|
23756
|
+
untestedUrls: number;
|
|
23757
|
+
};
|
|
23758
|
+
searchEvidence: {
|
|
23759
|
+
clicks: number;
|
|
23760
|
+
impressions: number;
|
|
23761
|
+
averagePosition: number;
|
|
23762
|
+
topQueries: Array<{
|
|
23763
|
+
query: string;
|
|
23764
|
+
clicks: number;
|
|
23765
|
+
impressions: number;
|
|
23766
|
+
position: number;
|
|
23767
|
+
}>;
|
|
23768
|
+
queryPatterns: PseoAuditTemplate['metrics']['queryPatterns'];
|
|
23769
|
+
};
|
|
23770
|
+
evidenceClass: 'search-evidenced-template' | 'observed-template';
|
|
23771
|
+
auditVerdict: PseoAuditTemplate['verdict'];
|
|
23772
|
+
confidence: PseoAuditTemplate['confidence'];
|
|
23773
|
+
evidenceRef: string;
|
|
23774
|
+
};
|
|
23775
|
+
type PseoOpportunityCluster = Pick<QueryCluster, 'label' | 'intent' | 'totals' | 'template' | 'summary' | 'recommendation'> & {
|
|
23776
|
+
queries: QueryCluster['queries'];
|
|
23777
|
+
evidenceClass: 'template-mapped' | 'query-cluster';
|
|
23778
|
+
templateRef: string | null;
|
|
23779
|
+
evidenceRef: string;
|
|
23780
|
+
};
|
|
23781
|
+
type PseoResearchSeed = {
|
|
23782
|
+
keyword: string;
|
|
23783
|
+
source: 'template' | 'query-cluster';
|
|
23784
|
+
evidenceRef: string;
|
|
23785
|
+
templateRef: string | null;
|
|
23786
|
+
};
|
|
23787
|
+
type PseoExternalCandidate = {
|
|
23788
|
+
keyword: string;
|
|
23789
|
+
classification: 'existing-first-party-query' | 'search-evidenced-template-expansion' | 'new-template-research';
|
|
23790
|
+
seedRefs: string[];
|
|
23791
|
+
templateRefs: string[];
|
|
23792
|
+
sources: KeywordIdea['sources'];
|
|
23793
|
+
monthlySearchVolume: KeywordIdea['monthlySearchVolume'];
|
|
23794
|
+
keywordDifficulty: KeywordIdea['keywordDifficulty'];
|
|
23795
|
+
intent: KeywordIdea['intent'];
|
|
23796
|
+
resultCount: KeywordIdea['resultCount'];
|
|
23797
|
+
evidenceRef: string;
|
|
23798
|
+
};
|
|
23799
|
+
type PseoExternalAcquisition = Pick<ProviderEvidence<never>, 'provider' | 'observedAt' | 'market' | 'coverage' | 'cache' | 'cost' | 'request' | 'warnings'>;
|
|
23800
|
+
type PseoDiscoveryEvidence = {
|
|
23801
|
+
requested: boolean;
|
|
23802
|
+
status: 'not-requested' | 'skipped' | 'complete' | 'partial' | 'unavailable';
|
|
23803
|
+
seeds: PseoResearchSeed[];
|
|
23804
|
+
acquisition: PseoExternalAcquisition | null;
|
|
23805
|
+
availableCandidates: number;
|
|
23806
|
+
returnedCandidates: number;
|
|
23807
|
+
omittedCandidates: number;
|
|
23808
|
+
candidates: PseoExternalCandidate[];
|
|
23809
|
+
reason?: string;
|
|
23810
|
+
error?: {
|
|
23811
|
+
code: string;
|
|
23812
|
+
message: string;
|
|
23813
|
+
retryable: boolean;
|
|
23814
|
+
};
|
|
23815
|
+
};
|
|
23816
|
+
type PseoSerpObservation = {
|
|
23817
|
+
keyword: string;
|
|
23818
|
+
status: 'complete' | 'partial' | 'unavailable';
|
|
23819
|
+
acquisition: PseoExternalAcquisition | null;
|
|
23820
|
+
features: string[];
|
|
23821
|
+
organicResults: SerpOrganicResult[];
|
|
23822
|
+
resultCoverage: {
|
|
23823
|
+
available: number;
|
|
23824
|
+
returned: number;
|
|
23825
|
+
omitted: number;
|
|
23826
|
+
};
|
|
23827
|
+
reason?: string;
|
|
23828
|
+
error?: {
|
|
23829
|
+
code: string;
|
|
23830
|
+
message: string;
|
|
23831
|
+
retryable: boolean;
|
|
23832
|
+
};
|
|
23833
|
+
};
|
|
23834
|
+
type PseoSerpEvidence = {
|
|
23835
|
+
requested: boolean;
|
|
23836
|
+
requestedQueries: number;
|
|
23837
|
+
completedQueries: number;
|
|
23838
|
+
failedQueries: number;
|
|
23839
|
+
observations: PseoSerpObservation[];
|
|
23840
|
+
};
|
|
23841
|
+
type PseoCompetitorPattern = {
|
|
23842
|
+
domain: string;
|
|
23843
|
+
queryCount: number;
|
|
23844
|
+
resultCount: number;
|
|
23845
|
+
bestRank: number;
|
|
23846
|
+
queries: string[];
|
|
23847
|
+
sampleUrls: string[];
|
|
23848
|
+
repeatedTemplates: Array<{
|
|
23849
|
+
signature: string;
|
|
23850
|
+
urlCount: number;
|
|
23851
|
+
sampleUrls: string[];
|
|
23852
|
+
}>;
|
|
23853
|
+
evidenceRefs: string[];
|
|
23854
|
+
};
|
|
23855
|
+
type PseoDataSourceBrief = {
|
|
23856
|
+
candidateRef: string;
|
|
23857
|
+
proposalType: 'template-expansion' | 'new-template-research';
|
|
23858
|
+
instruction: string;
|
|
23859
|
+
requiredChecks: readonly ['entities and required fields', 'stable identifiers and join keys', 'geographic and language coverage', 'update cadence and stale-data handling', 'source provenance, licensing, and attribution', 'validation rules and missing-value stop conditions', 'bounded inventory and duplicate prevention', 'representative output, crawl, canonical, and internal-link review'];
|
|
23860
|
+
evidenceBoundary: string;
|
|
23861
|
+
};
|
|
23862
|
+
type PseoOpportunityFinding = {
|
|
23863
|
+
code: 'template-expansion-candidate';
|
|
23864
|
+
evidenceRefs: [string, string];
|
|
23865
|
+
detail: string;
|
|
23866
|
+
action: string;
|
|
23867
|
+
} | {
|
|
23868
|
+
code: 'new-template-research-candidate';
|
|
23869
|
+
evidenceRefs: [string];
|
|
23870
|
+
detail: string;
|
|
23871
|
+
action: string;
|
|
23872
|
+
} | {
|
|
23873
|
+
code: 'competitor-repeated-pattern';
|
|
23874
|
+
evidenceRefs: [string];
|
|
23875
|
+
detail: string;
|
|
23876
|
+
action: string;
|
|
23877
|
+
};
|
|
23878
|
+
type PseoKnownCost = {
|
|
23879
|
+
currency: 'USD';
|
|
23880
|
+
knownEstimatedMicros: number;
|
|
23881
|
+
knownActualMicros: number;
|
|
23882
|
+
unknownEstimatedRequests: number;
|
|
23883
|
+
unknownActualRequests: number;
|
|
23884
|
+
taskIds: string[];
|
|
23885
|
+
};
|
|
23886
|
+
type PseoOpportunitiesReport = {
|
|
23887
|
+
schemaVersion: 1;
|
|
23888
|
+
methodology: 'pseo_opportunities_v1';
|
|
23889
|
+
site: string;
|
|
23890
|
+
generatedAt: string;
|
|
23891
|
+
dataStatus: 'complete' | 'partial' | 'empty' | 'filtered';
|
|
23892
|
+
market: SearchMarket | null;
|
|
23893
|
+
summary: {
|
|
23894
|
+
observedTemplates: number;
|
|
23895
|
+
searchEvidencedTemplates: number;
|
|
23896
|
+
queryClusters: number;
|
|
23897
|
+
researchSeeds: number;
|
|
23898
|
+
discoveredCandidates: number;
|
|
23899
|
+
templateExpansionCandidates: number;
|
|
23900
|
+
newTemplateResearchCandidates: number;
|
|
23901
|
+
serpSnapshots: number;
|
|
23902
|
+
observedCompetitors: number;
|
|
23903
|
+
dataSourceBriefs: number;
|
|
23904
|
+
verdict: string;
|
|
23905
|
+
};
|
|
23906
|
+
source: {
|
|
23907
|
+
pseoAudit: {
|
|
23908
|
+
range: {
|
|
23909
|
+
startDate: string;
|
|
23910
|
+
endDate: string;
|
|
23911
|
+
};
|
|
23912
|
+
dataStatus: PseoAuditReport['dataStatus'];
|
|
23913
|
+
pageRows: number;
|
|
23914
|
+
queryPageRows: number;
|
|
23915
|
+
pageRowsPossiblyTruncated: boolean;
|
|
23916
|
+
queryPageRowsPossiblyTruncated: boolean;
|
|
23917
|
+
discoveredUrls: number;
|
|
23918
|
+
returnedTemplates: number;
|
|
23919
|
+
};
|
|
23920
|
+
queryClusters: {
|
|
23921
|
+
range: {
|
|
23922
|
+
startDate: string;
|
|
23923
|
+
endDate: string;
|
|
23924
|
+
};
|
|
23925
|
+
returnedClusters: number;
|
|
23926
|
+
returnedQueries: number;
|
|
23927
|
+
completeness: 'returned-clusters-only';
|
|
23928
|
+
minImpressions: number;
|
|
23929
|
+
limit: number;
|
|
23930
|
+
};
|
|
23931
|
+
external: {
|
|
23932
|
+
discovery: PseoDiscoveryEvidence;
|
|
23933
|
+
serps: PseoSerpEvidence;
|
|
23934
|
+
cost: PseoKnownCost;
|
|
23935
|
+
};
|
|
23936
|
+
};
|
|
23937
|
+
selection: {
|
|
23938
|
+
templateLimit: number;
|
|
23939
|
+
clusterLimit: number;
|
|
23940
|
+
seedLimit: 5;
|
|
23941
|
+
discoveryLimit: number;
|
|
23942
|
+
candidateLimit: number;
|
|
23943
|
+
serpLimit: number;
|
|
23944
|
+
serpDepth: number;
|
|
23945
|
+
organicResultsPerSnapshot: 10;
|
|
23946
|
+
competitorLimit: 10;
|
|
23947
|
+
dataSourceBriefLimit: 3;
|
|
23948
|
+
candidateOrder: 'classification-source-count-volume-keyword-v1';
|
|
23949
|
+
};
|
|
23950
|
+
templates: PseoOpportunityTemplate[];
|
|
23951
|
+
queryClusters: PseoOpportunityCluster[];
|
|
23952
|
+
competitors: PseoCompetitorPattern[];
|
|
23953
|
+
findings: PseoOpportunityFinding[];
|
|
23954
|
+
dataSourceBriefs: PseoDataSourceBrief[];
|
|
23955
|
+
caveats: string[];
|
|
23956
|
+
nextSteps: string[];
|
|
23957
|
+
};
|
|
23958
|
+
//#endregion
|
|
23959
|
+
//#region packages/core/src/analyze/serp-results.d.ts
|
|
23960
|
+
type SerpDomainSummary = {
|
|
23961
|
+
domain: string;
|
|
23962
|
+
resultCount: number;
|
|
23963
|
+
ranks: number[];
|
|
23964
|
+
};
|
|
23965
|
+
type SerpResultFinding = {
|
|
23966
|
+
code: 'query-correction' | 'repeated-domain';
|
|
23967
|
+
evidenceRef: string;
|
|
23968
|
+
principle: string;
|
|
23969
|
+
detail: string;
|
|
23970
|
+
};
|
|
23971
|
+
type SerpResultsReport = {
|
|
23972
|
+
schemaVersion: 1;
|
|
23973
|
+
generatedAt: string;
|
|
23974
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
23975
|
+
market: SearchMarket;
|
|
23976
|
+
summary: {
|
|
23977
|
+
keyword: string;
|
|
23978
|
+
effectiveKeyword: string;
|
|
23979
|
+
requestedDepth: number;
|
|
23980
|
+
organicResults: number;
|
|
23981
|
+
uniqueDomains: number;
|
|
23982
|
+
observedFeatures: number;
|
|
23983
|
+
correctedQuery: boolean;
|
|
23984
|
+
verdict: string;
|
|
23985
|
+
};
|
|
23986
|
+
evidence: ProviderEvidence<SerpSnapshot>;
|
|
23987
|
+
domains: SerpDomainSummary[];
|
|
23988
|
+
findings: SerpResultFinding[];
|
|
23989
|
+
caveats: string[];
|
|
23990
|
+
nextSteps: string[];
|
|
23991
|
+
};
|
|
23992
|
+
type SerpResultsReportDependencies = {
|
|
23993
|
+
candidates?: readonly ProviderCandidate[];
|
|
23994
|
+
now?: () => Date;
|
|
23995
|
+
};
|
|
23996
|
+
declare function serpResultsReport(input: {
|
|
23997
|
+
keyword: string;
|
|
23998
|
+
market: SearchMarket;
|
|
23999
|
+
depth?: number;
|
|
24000
|
+
provider?: ProviderId;
|
|
24001
|
+
projectId?: string;
|
|
24002
|
+
context?: Partial<ProviderRequestContext>;
|
|
24003
|
+
refresh?: boolean;
|
|
24004
|
+
}, dependencies?: SerpResultsReportDependencies): Promise<SerpResultsReport>;
|
|
24005
|
+
//#endregion
|
|
23130
24006
|
//#region packages/core/src/analyze/query-cluster-primitives.d.ts
|
|
23131
24007
|
type QueryClusterRow = {
|
|
23132
24008
|
query: string;
|
|
@@ -23186,8 +24062,10 @@ type QueryClusterReport = {
|
|
|
23186
24062
|
caveats: string[];
|
|
23187
24063
|
recommendations: string[];
|
|
23188
24064
|
};
|
|
24065
|
+
type QueryClusterSourceRow = Awaited<ReturnType<typeof querySearchAnalytics>>['rows'][number];
|
|
23189
24066
|
declare function queryClusterReport(input: {
|
|
23190
24067
|
site: string;
|
|
24068
|
+
days?: number;
|
|
23191
24069
|
scope?: string;
|
|
23192
24070
|
brand?: string;
|
|
23193
24071
|
brandTerms?: string[];
|
|
@@ -23196,6 +24074,54 @@ declare function queryClusterReport(input: {
|
|
|
23196
24074
|
limit?: number;
|
|
23197
24075
|
refresh?: boolean;
|
|
23198
24076
|
}): Promise<QueryClusterReport>;
|
|
24077
|
+
declare function buildQueryClusterReportFromRows(input: {
|
|
24078
|
+
site: string;
|
|
24079
|
+
days: number;
|
|
24080
|
+
range: {
|
|
24081
|
+
startDate: string;
|
|
24082
|
+
endDate: string;
|
|
24083
|
+
};
|
|
24084
|
+
generatedAt: string;
|
|
24085
|
+
rows: QueryClusterSourceRow[];
|
|
24086
|
+
scope?: string;
|
|
24087
|
+
brand?: string;
|
|
24088
|
+
brandTerms?: string[];
|
|
24089
|
+
includeBrand?: boolean;
|
|
24090
|
+
minImpressions?: number;
|
|
24091
|
+
limit?: number;
|
|
24092
|
+
}): QueryClusterReport;
|
|
24093
|
+
//#endregion
|
|
24094
|
+
//#region packages/core/src/analyze/pseo-opportunities/input.d.ts
|
|
24095
|
+
type ValidatedPseoOpportunitiesInput = Omit<PseoOpportunitiesInput, 'days' | 'templateLimit' | 'clusterLimit' | 'discoverySources' | 'discoveryLimit' | 'candidateLimit' | 'serpLimit' | 'serpDepth' | 'market' | 'provider'> & {
|
|
24096
|
+
days: number;
|
|
24097
|
+
templateLimit: number;
|
|
24098
|
+
clusterLimit: number;
|
|
24099
|
+
discoverySources: KeywordDiscoverySource[];
|
|
24100
|
+
discoveryLimit: number;
|
|
24101
|
+
candidateLimit: number;
|
|
24102
|
+
serpLimit: number;
|
|
24103
|
+
serpDepth: number;
|
|
24104
|
+
market?: SearchMarket;
|
|
24105
|
+
provider?: PseoOpportunitiesInput['provider'];
|
|
24106
|
+
};
|
|
24107
|
+
//#endregion
|
|
24108
|
+
//#region packages/core/src/analyze/pseo-opportunities/first-party-acquisition.d.ts
|
|
24109
|
+
type PseoOpportunityFirstPartyReport = {
|
|
24110
|
+
audit: PseoAuditReport;
|
|
24111
|
+
queryClusters: QueryClusterReport;
|
|
24112
|
+
};
|
|
24113
|
+
declare function pseoOpportunityFirstPartyReport(options: ValidatedPseoOpportunitiesInput, dependencies?: {
|
|
24114
|
+
acquirePseoAuditEvidence?: typeof acquirePseoAuditEvidence;
|
|
24115
|
+
}): Promise<PseoOpportunityFirstPartyReport>;
|
|
24116
|
+
//#endregion
|
|
24117
|
+
//#region packages/core/src/analyze/pseo-opportunities/report.d.ts
|
|
24118
|
+
type PseoOpportunitiesDependencies = {
|
|
24119
|
+
firstPartyReport?: typeof pseoOpportunityFirstPartyReport;
|
|
24120
|
+
keywordResearchReport?: typeof keywordResearchReport;
|
|
24121
|
+
serpResultsReport?: typeof serpResultsReport;
|
|
24122
|
+
now?: () => Date;
|
|
24123
|
+
};
|
|
24124
|
+
declare function pseoOpportunitiesReport(input: PseoOpportunitiesInput, dependencies?: PseoOpportunitiesDependencies): Promise<PseoOpportunitiesReport>;
|
|
23199
24125
|
//#endregion
|
|
23200
24126
|
//#region packages/core/src/errors.d.ts
|
|
23201
24127
|
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';
|
|
@@ -23306,8 +24232,259 @@ declare function reportNarrative(input: {
|
|
|
23306
24232
|
//#region packages/core/src/analyze/reports/presentation.d.ts
|
|
23307
24233
|
declare function reportPresentation(report: ReportNarrative): Presentation;
|
|
23308
24234
|
//#endregion
|
|
23309
|
-
//#region packages/core/src/
|
|
23310
|
-
declare
|
|
24235
|
+
//#region packages/core/src/keyword-sets/limits.d.ts
|
|
24236
|
+
declare const KEYWORD_SET_LIMITS: {
|
|
24237
|
+
readonly setsPerProject: 25;
|
|
24238
|
+
readonly totalSets: 100;
|
|
24239
|
+
readonly keywordsPerSet: 10000;
|
|
24240
|
+
readonly totalKeywords: 100000;
|
|
24241
|
+
readonly mutationKeywords: 1000;
|
|
24242
|
+
readonly tagsPerKeyword: 20;
|
|
24243
|
+
readonly outputRows: 1000;
|
|
24244
|
+
readonly logicalBytes: number;
|
|
24245
|
+
};
|
|
24246
|
+
declare const KEYWORD_SET_FIELD_LIMITS: {
|
|
24247
|
+
readonly name: 80;
|
|
24248
|
+
readonly projectId: 80;
|
|
24249
|
+
readonly sourceReport: 100;
|
|
24250
|
+
readonly keyword: 80;
|
|
24251
|
+
readonly keywordWords: 10;
|
|
24252
|
+
readonly tag: 40;
|
|
24253
|
+
readonly url: 2048;
|
|
24254
|
+
readonly metricJsonBytes: number;
|
|
24255
|
+
};
|
|
24256
|
+
//#endregion
|
|
24257
|
+
//#region packages/core/src/keyword-sets/types.d.ts
|
|
24258
|
+
type KeywordSetPageMapping = {
|
|
24259
|
+
kind: 'target' | 'proposed';
|
|
24260
|
+
url: string;
|
|
24261
|
+
};
|
|
24262
|
+
type SavedKeywordMetric = {
|
|
24263
|
+
schemaVersion: 1;
|
|
24264
|
+
provider: ProviderId;
|
|
24265
|
+
observedAt: string;
|
|
24266
|
+
metric: KeywordMetric;
|
|
24267
|
+
};
|
|
24268
|
+
type KeywordSet = {
|
|
24269
|
+
schemaVersion: 1;
|
|
24270
|
+
id: string;
|
|
24271
|
+
projectId: string;
|
|
24272
|
+
name: string;
|
|
24273
|
+
market: SearchMarket;
|
|
24274
|
+
provider: ProviderId | null;
|
|
24275
|
+
sourceReport: string | null;
|
|
24276
|
+
keywordCount: number;
|
|
24277
|
+
tagCount: number;
|
|
24278
|
+
createdAt: string;
|
|
24279
|
+
updatedAt: string;
|
|
24280
|
+
lastRefreshedAt: string | null;
|
|
24281
|
+
};
|
|
24282
|
+
type KeywordSetItem = {
|
|
24283
|
+
keyword: string;
|
|
24284
|
+
normalizedKeyword: string;
|
|
24285
|
+
tags: string[];
|
|
24286
|
+
page: KeywordSetPageMapping | null;
|
|
24287
|
+
latestMetric: SavedKeywordMetric | null;
|
|
24288
|
+
createdAt: string;
|
|
24289
|
+
updatedAt: string;
|
|
24290
|
+
};
|
|
24291
|
+
type KeywordSetDetail = {
|
|
24292
|
+
schemaVersion: 1;
|
|
24293
|
+
set: KeywordSet;
|
|
24294
|
+
items: KeywordSetItem[];
|
|
24295
|
+
pagination: {
|
|
24296
|
+
offset: number;
|
|
24297
|
+
limit: number;
|
|
24298
|
+
returned: number;
|
|
24299
|
+
total: number;
|
|
24300
|
+
nextOffset: number | null;
|
|
24301
|
+
};
|
|
24302
|
+
filter: {
|
|
24303
|
+
tag: string | null;
|
|
24304
|
+
};
|
|
24305
|
+
};
|
|
24306
|
+
type KeywordSetMutationItem = {
|
|
24307
|
+
keyword: string;
|
|
24308
|
+
tags?: string[];
|
|
24309
|
+
page?: KeywordSetPageMapping | null;
|
|
24310
|
+
latestMetric?: SavedKeywordMetric | null;
|
|
24311
|
+
};
|
|
24312
|
+
type KeywordSetMutationResult = {
|
|
24313
|
+
setId: string;
|
|
24314
|
+
requested: number;
|
|
24315
|
+
normalized: number;
|
|
24316
|
+
added: number;
|
|
24317
|
+
removed: number;
|
|
24318
|
+
existing: number;
|
|
24319
|
+
updated: number;
|
|
24320
|
+
keywordCount: number;
|
|
24321
|
+
};
|
|
24322
|
+
//#endregion
|
|
24323
|
+
//#region packages/core/src/keyword-sets/rows.d.ts
|
|
24324
|
+
type KeywordSetStoreOptions = {
|
|
24325
|
+
database?: SqliteDatabase.Database;
|
|
24326
|
+
now?: () => Date;
|
|
24327
|
+
id?: () => string;
|
|
24328
|
+
maxLogicalBytes?: number;
|
|
24329
|
+
};
|
|
24330
|
+
declare function keywordSetLogicalBytes(db?: SqliteDatabase.Database): number;
|
|
24331
|
+
//#endregion
|
|
24332
|
+
//#region packages/core/src/keyword-sets/mutations.d.ts
|
|
24333
|
+
declare function addKeywordsToSet(input: {
|
|
24334
|
+
projectId: string;
|
|
24335
|
+
idOrName: string;
|
|
24336
|
+
items: KeywordSetMutationItem[];
|
|
24337
|
+
}, options?: KeywordSetStoreOptions): KeywordSetMutationResult;
|
|
24338
|
+
declare function removeKeywordsFromSet(input: {
|
|
24339
|
+
projectId: string;
|
|
24340
|
+
idOrName: string;
|
|
24341
|
+
keywords: string[];
|
|
24342
|
+
}, options?: KeywordSetStoreOptions): KeywordSetMutationResult;
|
|
24343
|
+
declare function setKeywordSetRefreshTime(input: {
|
|
24344
|
+
projectId: string;
|
|
24345
|
+
idOrName: string;
|
|
24346
|
+
refreshedAt: string;
|
|
24347
|
+
}, options?: KeywordSetStoreOptions): KeywordSet;
|
|
24348
|
+
//#endregion
|
|
24349
|
+
//#region packages/core/src/keyword-sets/refresh.d.ts
|
|
24350
|
+
type KeywordSetRefreshReport = {
|
|
24351
|
+
schemaVersion: 1;
|
|
24352
|
+
generatedAt: string;
|
|
24353
|
+
mode: 'preview' | 'executed';
|
|
24354
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
24355
|
+
set: {
|
|
24356
|
+
id: string;
|
|
24357
|
+
name: string;
|
|
24358
|
+
projectId: string;
|
|
24359
|
+
totalKeywords: number;
|
|
24360
|
+
};
|
|
24361
|
+
selection: {
|
|
24362
|
+
offset: number;
|
|
24363
|
+
limit: number;
|
|
24364
|
+
selectedKeywords: number;
|
|
24365
|
+
nextOffset: number | null;
|
|
24366
|
+
completeness: 'complete' | 'capped';
|
|
24367
|
+
};
|
|
24368
|
+
cost: KeywordMetricsCostEstimate;
|
|
24369
|
+
execution: null | {
|
|
24370
|
+
attemptedBatches: number;
|
|
24371
|
+
completeBatches: number;
|
|
24372
|
+
partialBatches: number;
|
|
24373
|
+
failedBatches: number;
|
|
24374
|
+
savedSnapshots: number;
|
|
24375
|
+
actualMicros: number | null;
|
|
24376
|
+
warnings: Array<{
|
|
24377
|
+
batch: number;
|
|
24378
|
+
message: string;
|
|
24379
|
+
}>;
|
|
24380
|
+
errors: Array<{
|
|
24381
|
+
batch: number;
|
|
24382
|
+
message: string;
|
|
24383
|
+
}>;
|
|
24384
|
+
};
|
|
24385
|
+
caveats: string[];
|
|
24386
|
+
nextSteps: string[];
|
|
24387
|
+
};
|
|
24388
|
+
type KeywordSetRefreshDependencies = {
|
|
24389
|
+
candidates?: readonly ProviderCandidate[];
|
|
24390
|
+
keywordMetrics?: typeof keywordMetricsReport;
|
|
24391
|
+
now?: () => Date;
|
|
24392
|
+
store?: KeywordSetStoreOptions;
|
|
24393
|
+
};
|
|
24394
|
+
declare function refreshKeywordSet(input: {
|
|
24395
|
+
projectId: string;
|
|
24396
|
+
idOrName: string;
|
|
24397
|
+
provider?: ProviderId;
|
|
24398
|
+
limit?: number;
|
|
24399
|
+
offset?: number;
|
|
24400
|
+
execute?: boolean;
|
|
24401
|
+
}, dependencies?: KeywordSetRefreshDependencies): Promise<KeywordSetRefreshReport>;
|
|
24402
|
+
//#endregion
|
|
24403
|
+
//#region packages/core/src/keyword-sets/schema.d.ts
|
|
24404
|
+
declare const KEYWORD_SET_SCHEMA_SQL = "\nCREATE TABLE IF NOT EXISTS keyword_sets (\n id TEXT PRIMARY KEY,\n project_id TEXT NOT NULL,\n name TEXT NOT NULL,\n market_json TEXT NOT NULL,\n provider TEXT CHECK(provider IS NULL OR provider IN ('dataforseo', 'semrush', 'ahrefs')),\n source_report TEXT,\n created_at INTEGER NOT NULL,\n updated_at INTEGER NOT NULL,\n last_refreshed_at INTEGER,\n UNIQUE(project_id, name COLLATE NOCASE)\n);\nCREATE INDEX IF NOT EXISTS idx_keyword_sets_project\n ON keyword_sets(project_id, updated_at DESC, id);\n\nCREATE TABLE IF NOT EXISTS keyword_set_items (\n set_id TEXT NOT NULL,\n normalized_keyword TEXT NOT NULL,\n display_keyword TEXT NOT NULL,\n metric_json TEXT,\n metric_provider TEXT CHECK(metric_provider IS NULL OR metric_provider IN ('dataforseo', 'semrush', 'ahrefs')),\n metric_observed_at TEXT,\n page_kind TEXT CHECK(page_kind IS NULL OR page_kind IN ('target', 'proposed')),\n page_url TEXT,\n created_at INTEGER NOT NULL,\n updated_at INTEGER NOT NULL,\n PRIMARY KEY(set_id, normalized_keyword),\n FOREIGN KEY(set_id) REFERENCES keyword_sets(id) ON DELETE CASCADE\n) WITHOUT ROWID;\nCREATE INDEX IF NOT EXISTS idx_keyword_set_items_set\n ON keyword_set_items(set_id, normalized_keyword);\n\nCREATE TABLE IF NOT EXISTS keyword_set_tags (\n set_id TEXT NOT NULL,\n normalized_keyword TEXT NOT NULL,\n tag TEXT NOT NULL,\n PRIMARY KEY(set_id, normalized_keyword, tag),\n FOREIGN KEY(set_id, normalized_keyword)\n REFERENCES keyword_set_items(set_id, normalized_keyword) ON DELETE CASCADE\n) WITHOUT ROWID;\nCREATE INDEX IF NOT EXISTS idx_keyword_set_tags_lookup\n ON keyword_set_tags(set_id, tag, normalized_keyword);\n";
|
|
24405
|
+
//#endregion
|
|
24406
|
+
//#region packages/core/src/keyword-sets/store.d.ts
|
|
24407
|
+
declare function createKeywordSet(input: {
|
|
24408
|
+
projectId: string;
|
|
24409
|
+
name: string;
|
|
24410
|
+
market: unknown;
|
|
24411
|
+
provider?: unknown;
|
|
24412
|
+
sourceReport?: string;
|
|
24413
|
+
}, options?: KeywordSetStoreOptions): KeywordSet;
|
|
24414
|
+
declare function listKeywordSets(input: {
|
|
24415
|
+
projectId: string;
|
|
24416
|
+
limit?: number;
|
|
24417
|
+
offset?: number;
|
|
24418
|
+
}, options?: KeywordSetStoreOptions): KeywordSet[];
|
|
24419
|
+
declare function getKeywordSet(input: {
|
|
24420
|
+
projectId: string;
|
|
24421
|
+
idOrName: string;
|
|
24422
|
+
tag?: string;
|
|
24423
|
+
limit?: number;
|
|
24424
|
+
offset?: number;
|
|
24425
|
+
}, options?: KeywordSetStoreOptions): KeywordSetDetail;
|
|
24426
|
+
declare function deleteKeywordSet(input: {
|
|
24427
|
+
projectId: string;
|
|
24428
|
+
idOrName: string;
|
|
24429
|
+
}, options?: KeywordSetStoreOptions): boolean;
|
|
24430
|
+
//#endregion
|
|
24431
|
+
//#region packages/core/src/keyword-sets/validation.d.ts
|
|
24432
|
+
declare function normalizeSavedKeyword(value: string): string;
|
|
24433
|
+
//#endregion
|
|
24434
|
+
//#region packages/core/src/analyze/saved-keywords.d.ts
|
|
24435
|
+
type SavedKeywordSetReport = {
|
|
24436
|
+
schemaVersion: 1;
|
|
24437
|
+
generatedAt: string;
|
|
24438
|
+
dataStatus: 'complete' | 'partial' | 'unavailable';
|
|
24439
|
+
summary: {
|
|
24440
|
+
name: string;
|
|
24441
|
+
totalKeywords: number;
|
|
24442
|
+
matchedKeywords: number;
|
|
24443
|
+
returnedKeywords: number;
|
|
24444
|
+
metricSnapshots: number;
|
|
24445
|
+
observedVolumes: number;
|
|
24446
|
+
observedZeroVolumes: number;
|
|
24447
|
+
unavailableVolumeSnapshots: number;
|
|
24448
|
+
staleMetricSnapshots: number;
|
|
24449
|
+
mappedKeywords: number;
|
|
24450
|
+
targetPages: number;
|
|
24451
|
+
proposedPages: number;
|
|
24452
|
+
distinctTags: number;
|
|
24453
|
+
verdict: string;
|
|
24454
|
+
};
|
|
24455
|
+
evidence: KeywordSetDetail;
|
|
24456
|
+
analysis: {
|
|
24457
|
+
metricFreshnessDays: number;
|
|
24458
|
+
tagGroups: Array<{
|
|
24459
|
+
tag: string;
|
|
24460
|
+
keywordCount: number;
|
|
24461
|
+
}>;
|
|
24462
|
+
pageMappings: Array<{
|
|
24463
|
+
url: string;
|
|
24464
|
+
kind: 'target' | 'proposed';
|
|
24465
|
+
keywordCount: number;
|
|
24466
|
+
}>;
|
|
24467
|
+
};
|
|
24468
|
+
findings: Array<{
|
|
24469
|
+
code: 'missing-metrics' | 'unavailable-volume-evidence' | 'stale-metrics' | 'unmapped-keywords';
|
|
24470
|
+
evidenceRef: string;
|
|
24471
|
+
detail: string;
|
|
24472
|
+
action: string;
|
|
24473
|
+
}>;
|
|
24474
|
+
caveats: string[];
|
|
24475
|
+
nextSteps: string[];
|
|
24476
|
+
};
|
|
24477
|
+
declare function savedKeywordSetReport(input: {
|
|
24478
|
+
projectId: string;
|
|
24479
|
+
idOrName: string;
|
|
24480
|
+
tag?: string;
|
|
24481
|
+
limit?: number;
|
|
24482
|
+
offset?: number;
|
|
24483
|
+
staleDays?: number;
|
|
24484
|
+
}, dependencies?: {
|
|
24485
|
+
getKeywordSet?: typeof getKeywordSet;
|
|
24486
|
+
now?: () => Date;
|
|
24487
|
+
}): SavedKeywordSetReport;
|
|
23311
24488
|
//#endregion
|
|
23312
24489
|
//#region packages/core/src/analyze/second-page.d.ts
|
|
23313
24490
|
type SearchAnalytics = typeof querySearchAnalytics;
|
|
@@ -24947,18 +26124,542 @@ declare function fileSize(path: string): number;
|
|
|
24947
26124
|
declare function plural(count: number, singular: string, pluralLabel?: string): string;
|
|
24948
26125
|
declare function countLabel(count: number, singular: string, pluralLabel?: string): string;
|
|
24949
26126
|
//#endregion
|
|
26127
|
+
//#region packages/core/src/providers/cost-limits.d.ts
|
|
26128
|
+
type ProviderSpendLimits = {
|
|
26129
|
+
dailyNoticeMicros: number;
|
|
26130
|
+
dailyHardLimitMicros: number | null;
|
|
26131
|
+
monthlyHardLimitMicros: number | null;
|
|
26132
|
+
maxRequestsPerReport: number;
|
|
26133
|
+
maxRowsPerReport: number;
|
|
26134
|
+
};
|
|
26135
|
+
declare const DEFAULT_PROVIDER_SPEND_LIMITS: ProviderSpendLimits;
|
|
26136
|
+
declare function getProviderSpendLimits(provider: ProviderId): ProviderSpendLimits;
|
|
26137
|
+
declare function setProviderSpendLimits(provider: ProviderId, limits: ProviderSpendLimits): ProviderSpendLimits;
|
|
26138
|
+
//#endregion
|
|
26139
|
+
//#region packages/core/src/storage/provider-spend.d.ts
|
|
26140
|
+
declare const PROVIDER_SPEND_RETENTION_DAYS: number;
|
|
26141
|
+
declare const PROVIDER_SPEND_MAX_ROWS = 50000;
|
|
26142
|
+
declare const PROVIDER_SPEND_MAX_BYTES: number;
|
|
26143
|
+
type ProviderSpendState = 'reserved' | 'succeeded' | 'partial' | 'failed' | 'unknown';
|
|
26144
|
+
type ProviderSpendReservationInput = {
|
|
26145
|
+
provider: ProviderId;
|
|
26146
|
+
capability: ProviderCapability;
|
|
26147
|
+
endpoint: string;
|
|
26148
|
+
projectId?: string;
|
|
26149
|
+
reportId: string;
|
|
26150
|
+
reportRunId: string;
|
|
26151
|
+
requestedRows: number;
|
|
26152
|
+
estimatedCostMicros: number;
|
|
26153
|
+
};
|
|
26154
|
+
type ProviderSpendReservation = ProviderSpendReservationInput & {
|
|
26155
|
+
id: string;
|
|
26156
|
+
occurredAt: string;
|
|
26157
|
+
expiresAt: string;
|
|
26158
|
+
};
|
|
26159
|
+
type ProviderSpendFinalization = {
|
|
26160
|
+
provider: ProviderId;
|
|
26161
|
+
state: Exclude<ProviderSpendState, 'reserved' | 'unknown'>;
|
|
26162
|
+
actualCostMicros: number | null;
|
|
26163
|
+
returnedRows: number | null;
|
|
26164
|
+
taskIds: string[];
|
|
26165
|
+
};
|
|
26166
|
+
type ProviderSpendNotice = {
|
|
26167
|
+
provider: ProviderId;
|
|
26168
|
+
thresholdMicros: number;
|
|
26169
|
+
periodStart: string;
|
|
26170
|
+
spentMicros: number;
|
|
26171
|
+
};
|
|
26172
|
+
type ProviderSpendSummary = {
|
|
26173
|
+
provider: ProviderId;
|
|
26174
|
+
periodTimezone: 'UTC';
|
|
26175
|
+
today: {
|
|
26176
|
+
periodStart: string;
|
|
26177
|
+
effectiveCostMicros: number;
|
|
26178
|
+
actualCostMicros: number;
|
|
26179
|
+
estimatedOrUnknownCostMicros: number;
|
|
26180
|
+
requests: number;
|
|
26181
|
+
};
|
|
26182
|
+
month: {
|
|
26183
|
+
periodStart: string;
|
|
26184
|
+
effectiveCostMicros: number;
|
|
26185
|
+
actualCostMicros: number;
|
|
26186
|
+
estimatedOrUnknownCostMicros: number;
|
|
26187
|
+
requests: number;
|
|
26188
|
+
};
|
|
26189
|
+
retained: {
|
|
26190
|
+
effectiveCostMicros: number;
|
|
26191
|
+
actualCostMicros: number;
|
|
26192
|
+
estimatedOrUnknownCostMicros: number;
|
|
26193
|
+
requests: number;
|
|
26194
|
+
oldestAt: string | null;
|
|
26195
|
+
newestAt: string | null;
|
|
26196
|
+
};
|
|
26197
|
+
states: Record<ProviderSpendState, number>;
|
|
26198
|
+
limits: ProviderSpendLimits;
|
|
26199
|
+
retention: {
|
|
26200
|
+
days: number;
|
|
26201
|
+
maxRows: number;
|
|
26202
|
+
maxBytes: number;
|
|
26203
|
+
logicalBytes: number;
|
|
26204
|
+
};
|
|
26205
|
+
};
|
|
26206
|
+
declare function reserveProviderSpend(input: ProviderSpendReservationInput, options?: {
|
|
26207
|
+
database?: SqliteDatabase.Database;
|
|
26208
|
+
limits?: ProviderSpendLimits;
|
|
26209
|
+
now?: number;
|
|
26210
|
+
}): ProviderSpendReservation;
|
|
26211
|
+
declare function finalizeProviderSpend(reservationId: string, result: ProviderSpendFinalization, options?: {
|
|
26212
|
+
database?: SqliteDatabase.Database;
|
|
26213
|
+
limits?: ProviderSpendLimits;
|
|
26214
|
+
now?: number;
|
|
26215
|
+
}): ProviderSpendNotice | null;
|
|
26216
|
+
declare function getProviderSpendSummary(provider: ProviderId, options?: {
|
|
26217
|
+
database?: SqliteDatabase.Database;
|
|
26218
|
+
limits?: ProviderSpendLimits;
|
|
26219
|
+
now?: number;
|
|
26220
|
+
}): ProviderSpendSummary;
|
|
26221
|
+
//#endregion
|
|
26222
|
+
//#region packages/core/src/providers/transport.d.ts
|
|
26223
|
+
type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
|
|
26224
|
+
type ProviderRequestInput = {
|
|
26225
|
+
provider: ProviderId;
|
|
26226
|
+
operation: string;
|
|
26227
|
+
url: string | URL;
|
|
26228
|
+
init?: RequestInit$1;
|
|
26229
|
+
fetch: ProviderFetch;
|
|
26230
|
+
maxResponseBytes: number;
|
|
26231
|
+
timeoutMs: number;
|
|
26232
|
+
retry?: 'never' | 'safe';
|
|
26233
|
+
retryDelayMs?: number;
|
|
26234
|
+
};
|
|
26235
|
+
declare function providerRequestText(input: ProviderRequestInput): Promise<string>;
|
|
26236
|
+
declare function providerRequestJson<T>(input: ProviderRequestInput & {
|
|
26237
|
+
schema: z.ZodType<T>;
|
|
26238
|
+
}): Promise<T>;
|
|
26239
|
+
//#endregion
|
|
26240
|
+
//#region packages/core/src/providers/dataforseo/credentials.d.ts
|
|
26241
|
+
declare const DATAFORSEO_LOGIN_ENV = "SEO_DATAFORSEO_LOGIN";
|
|
26242
|
+
declare const DATAFORSEO_PASSWORD_ENV = "SEO_DATAFORSEO_PASSWORD";
|
|
26243
|
+
declare const DATAFORSEO_CREDENTIAL_SECRET = "dataforseo-credentials";
|
|
26244
|
+
type DataForSeoCredentials = {
|
|
26245
|
+
login: string;
|
|
26246
|
+
password: string;
|
|
26247
|
+
};
|
|
26248
|
+
type StoredDataForSeoCredentials = DataForSeoCredentials & {
|
|
26249
|
+
source: ProviderSecretSource;
|
|
26250
|
+
migrated: boolean;
|
|
26251
|
+
};
|
|
26252
|
+
declare function writeDataForSeoCredentials(credentials: DataForSeoCredentials): Promise<Exclude<ProviderSecretSource, 'environment'>>;
|
|
26253
|
+
declare function readDataForSeoCredentials(input?: {
|
|
26254
|
+
env?: NodeJS.ProcessEnv;
|
|
26255
|
+
}): Promise<StoredDataForSeoCredentials | undefined>;
|
|
26256
|
+
declare function deleteDataForSeoCredentials(): Promise<void>;
|
|
26257
|
+
//#endregion
|
|
26258
|
+
//#region packages/core/src/providers/dataforseo/discovery-schema.d.ts
|
|
26259
|
+
declare const dataForSeoDiscoveryResponseSchema: z.ZodObject<{
|
|
26260
|
+
status_code: z.ZodNumber;
|
|
26261
|
+
status_message: z.ZodString;
|
|
26262
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26263
|
+
tasks_count: z.ZodNumber;
|
|
26264
|
+
tasks_error: z.ZodNumber;
|
|
26265
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
26266
|
+
id: z.ZodOptional<z.ZodString>;
|
|
26267
|
+
status_code: z.ZodNumber;
|
|
26268
|
+
status_message: z.ZodString;
|
|
26269
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26270
|
+
result_count: z.ZodOptional<z.ZodNumber>;
|
|
26271
|
+
result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26272
|
+
seed_keyword: z.ZodOptional<z.ZodString>;
|
|
26273
|
+
seed_keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26274
|
+
total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26275
|
+
items_count: z.ZodOptional<z.ZodNumber>;
|
|
26276
|
+
offset_token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26277
|
+
items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
26278
|
+
keyword: z.ZodString;
|
|
26279
|
+
keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26280
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26281
|
+
cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26282
|
+
competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26283
|
+
monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26284
|
+
year: z.ZodNumber;
|
|
26285
|
+
month: z.ZodNumber;
|
|
26286
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26287
|
+
}, z.core.$loose>>>>;
|
|
26288
|
+
last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26289
|
+
}, z.core.$strip>>>;
|
|
26290
|
+
keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26291
|
+
keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26292
|
+
}, z.core.$strip>>>;
|
|
26293
|
+
serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26294
|
+
se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
|
|
26295
|
+
}, z.core.$strip>>>;
|
|
26296
|
+
search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26297
|
+
main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
26298
|
+
informational: "informational";
|
|
26299
|
+
navigational: "navigational";
|
|
26300
|
+
commercial: "commercial";
|
|
26301
|
+
transactional: "transactional";
|
|
26302
|
+
}>>>;
|
|
26303
|
+
}, z.core.$strip>>>;
|
|
26304
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
26305
|
+
keyword_data: z.ZodObject<{
|
|
26306
|
+
keyword: z.ZodString;
|
|
26307
|
+
keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26308
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26309
|
+
cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26310
|
+
competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26311
|
+
monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26312
|
+
year: z.ZodNumber;
|
|
26313
|
+
month: z.ZodNumber;
|
|
26314
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26315
|
+
}, z.core.$loose>>>>;
|
|
26316
|
+
last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26317
|
+
}, z.core.$strip>>>;
|
|
26318
|
+
keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26319
|
+
keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26320
|
+
}, z.core.$strip>>>;
|
|
26321
|
+
serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26322
|
+
se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
|
|
26323
|
+
}, z.core.$strip>>>;
|
|
26324
|
+
search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26325
|
+
main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
26326
|
+
informational: "informational";
|
|
26327
|
+
navigational: "navigational";
|
|
26328
|
+
commercial: "commercial";
|
|
26329
|
+
transactional: "transactional";
|
|
26330
|
+
}>>>;
|
|
26331
|
+
}, z.core.$strip>>>;
|
|
26332
|
+
}, z.core.$loose>;
|
|
26333
|
+
depth: z.ZodOptional<z.ZodNumber>;
|
|
26334
|
+
related_keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26335
|
+
}, z.core.$loose>]>>>>;
|
|
26336
|
+
}, z.core.$loose>>>>;
|
|
26337
|
+
}, z.core.$loose>>;
|
|
26338
|
+
}, z.core.$loose>;
|
|
26339
|
+
type DataForSeoDiscoveryResponse = z.infer<typeof dataForSeoDiscoveryResponseSchema>;
|
|
26340
|
+
//#endregion
|
|
26341
|
+
//#region packages/core/src/providers/dataforseo/paid-request.d.ts
|
|
26342
|
+
type DataForSeoUnitPrice = {
|
|
26343
|
+
perRequestMicros: number | null;
|
|
26344
|
+
perResultMicros: number | null;
|
|
26345
|
+
};
|
|
26346
|
+
//#endregion
|
|
26347
|
+
//#region packages/core/src/providers/dataforseo/schema.d.ts
|
|
26348
|
+
declare const dataForSeoKeywordOverviewResponseSchema: z.ZodObject<{
|
|
26349
|
+
status_code: z.ZodNumber;
|
|
26350
|
+
status_message: z.ZodString;
|
|
26351
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26352
|
+
tasks_count: z.ZodNumber;
|
|
26353
|
+
tasks_error: z.ZodNumber;
|
|
26354
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
26355
|
+
id: z.ZodOptional<z.ZodString>;
|
|
26356
|
+
status_code: z.ZodNumber;
|
|
26357
|
+
status_message: z.ZodString;
|
|
26358
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26359
|
+
result_count: z.ZodOptional<z.ZodNumber>;
|
|
26360
|
+
result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26361
|
+
items_count: z.ZodOptional<z.ZodNumber>;
|
|
26362
|
+
items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26363
|
+
keyword: z.ZodString;
|
|
26364
|
+
keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26365
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26366
|
+
cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26367
|
+
competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26368
|
+
monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26369
|
+
year: z.ZodNumber;
|
|
26370
|
+
month: z.ZodNumber;
|
|
26371
|
+
search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26372
|
+
}, z.core.$loose>>>>;
|
|
26373
|
+
last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26374
|
+
}, z.core.$strip>>>;
|
|
26375
|
+
keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26376
|
+
keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26377
|
+
}, z.core.$strip>>>;
|
|
26378
|
+
serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26379
|
+
se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
|
|
26380
|
+
}, z.core.$strip>>>;
|
|
26381
|
+
search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26382
|
+
main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
26383
|
+
informational: "informational";
|
|
26384
|
+
navigational: "navigational";
|
|
26385
|
+
commercial: "commercial";
|
|
26386
|
+
transactional: "transactional";
|
|
26387
|
+
}>>>;
|
|
26388
|
+
}, z.core.$strip>>>;
|
|
26389
|
+
}, z.core.$loose>>>>;
|
|
26390
|
+
}, z.core.$loose>>>>;
|
|
26391
|
+
}, z.core.$loose>>;
|
|
26392
|
+
}, z.core.$loose>;
|
|
26393
|
+
type DataForSeoKeywordOverviewResponse = z.infer<typeof dataForSeoKeywordOverviewResponseSchema>;
|
|
26394
|
+
//#endregion
|
|
26395
|
+
//#region packages/core/src/providers/dataforseo/serp-schema.d.ts
|
|
26396
|
+
declare const dataForSeoSerpResponseSchema: z.ZodObject<{
|
|
26397
|
+
status_code: z.ZodNumber;
|
|
26398
|
+
status_message: z.ZodString;
|
|
26399
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26400
|
+
tasks_count: z.ZodNumber;
|
|
26401
|
+
tasks_error: z.ZodNumber;
|
|
26402
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
26403
|
+
id: z.ZodOptional<z.ZodString>;
|
|
26404
|
+
status_code: z.ZodNumber;
|
|
26405
|
+
status_message: z.ZodString;
|
|
26406
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
26407
|
+
result_count: z.ZodOptional<z.ZodNumber>;
|
|
26408
|
+
result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
26409
|
+
keyword: z.ZodString;
|
|
26410
|
+
se_domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26411
|
+
check_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26412
|
+
datetime: z.ZodString;
|
|
26413
|
+
spell: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
26414
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
26415
|
+
type: z.ZodOptional<z.ZodString>;
|
|
26416
|
+
}, z.core.$loose>>>;
|
|
26417
|
+
item_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26418
|
+
se_results_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26419
|
+
pages_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26420
|
+
items_count: z.ZodOptional<z.ZodNumber>;
|
|
26421
|
+
items: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
26422
|
+
type: z.ZodString;
|
|
26423
|
+
rank_group: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26424
|
+
rank_absolute: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26425
|
+
page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26426
|
+
domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26427
|
+
url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26428
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26429
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26430
|
+
is_featured_snippet: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
26431
|
+
}, z.core.$loose>>>;
|
|
26432
|
+
}, z.core.$loose>>>>;
|
|
26433
|
+
}, z.core.$loose>>;
|
|
26434
|
+
}, z.core.$loose>;
|
|
26435
|
+
type DataForSeoSerpResponse = z.infer<typeof dataForSeoSerpResponseSchema>;
|
|
26436
|
+
//#endregion
|
|
26437
|
+
//#region packages/core/src/providers/dataforseo/client-types.d.ts
|
|
26438
|
+
type DataForSeoAccountSnapshot = {
|
|
26439
|
+
provider: 'dataforseo';
|
|
26440
|
+
login: string;
|
|
26441
|
+
timezone: string | null;
|
|
26442
|
+
balanceMicros: number | null;
|
|
26443
|
+
depositedMicros: number | null;
|
|
26444
|
+
accountDailySpendMicros: number | null;
|
|
26445
|
+
accountDailySpendPeriod: string | null;
|
|
26446
|
+
accountDailyLimitMicros: number | null;
|
|
26447
|
+
keywordOverviewPrice: DataForSeoUnitPrice;
|
|
26448
|
+
keywordDiscoveryPrices: Record<KeywordDiscoverySource, DataForSeoUnitPrice>;
|
|
26449
|
+
serpLiveAdvancedPrice: DataForSeoUnitPrice;
|
|
26450
|
+
backlinksSubscriptionExpiresAt: string | null;
|
|
26451
|
+
aiMentionsSubscriptionExpiresAt: string | null;
|
|
26452
|
+
apiVersion: string | null;
|
|
26453
|
+
requestCostMicros: number;
|
|
26454
|
+
taskIds: string[];
|
|
26455
|
+
observedAt: string;
|
|
26456
|
+
};
|
|
26457
|
+
type DataForSeoClientOptions = {
|
|
26458
|
+
fetch?: ProviderFetch;
|
|
26459
|
+
credentials?: () => DataForSeoCredentials | undefined | Promise<DataForSeoCredentials | undefined>;
|
|
26460
|
+
baseUrl?: string;
|
|
26461
|
+
timeoutMs?: number;
|
|
26462
|
+
maxResponseBytes?: number;
|
|
26463
|
+
now?: () => Date;
|
|
26464
|
+
database?: SqliteDatabase.Database;
|
|
26465
|
+
keywordOverviewTtlMs?: number;
|
|
26466
|
+
keywordDiscoveryTtlMs?: number;
|
|
26467
|
+
serpTtlMs?: number;
|
|
26468
|
+
accountPricingTtlMs?: number;
|
|
26469
|
+
spendLimits?: ProviderSpendLimits;
|
|
26470
|
+
};
|
|
26471
|
+
type DataForSeoKeywordOverviewRequest = {
|
|
26472
|
+
keywords: string[];
|
|
26473
|
+
languageCode: string;
|
|
26474
|
+
locationCode?: number;
|
|
26475
|
+
locationName?: string;
|
|
26476
|
+
includeSerpInfo?: boolean;
|
|
26477
|
+
includeClickstreamData?: boolean;
|
|
26478
|
+
refresh?: boolean;
|
|
26479
|
+
projectId?: string;
|
|
26480
|
+
reportId: string;
|
|
26481
|
+
reportRunId: string;
|
|
26482
|
+
};
|
|
26483
|
+
type DataForSeoKeywordOverviewSnapshot = {
|
|
26484
|
+
response: DataForSeoKeywordOverviewResponse;
|
|
26485
|
+
observedAt: string;
|
|
26486
|
+
returnedRows: number;
|
|
26487
|
+
cache: ProviderCacheEvidence;
|
|
26488
|
+
cost: ProviderCostEvidence;
|
|
26489
|
+
spendNotice: ProviderSpendNotice | null;
|
|
26490
|
+
warnings: ProviderWarning[];
|
|
26491
|
+
};
|
|
26492
|
+
type DataForSeoKeywordDiscoveryRequest = {
|
|
26493
|
+
source: KeywordDiscoverySource;
|
|
26494
|
+
seeds: string[];
|
|
26495
|
+
languageCode: string;
|
|
26496
|
+
locationCode?: number;
|
|
26497
|
+
locationName?: string;
|
|
26498
|
+
limit: number;
|
|
26499
|
+
refresh?: boolean;
|
|
26500
|
+
context: ProviderRequestContext;
|
|
26501
|
+
};
|
|
26502
|
+
type DataForSeoKeywordDiscoverySnapshot = {
|
|
26503
|
+
response: DataForSeoDiscoveryResponse;
|
|
26504
|
+
observedAt: string;
|
|
26505
|
+
returnedRows: number;
|
|
26506
|
+
providerTotalRows: number | null;
|
|
26507
|
+
nextCursor: string | null;
|
|
26508
|
+
cache: ProviderCacheEvidence;
|
|
26509
|
+
cost: ProviderCostEvidence;
|
|
26510
|
+
spendNotice: ProviderSpendNotice | null;
|
|
26511
|
+
warnings: ProviderWarning[];
|
|
26512
|
+
};
|
|
26513
|
+
type DataForSeoSerpRequest = {
|
|
26514
|
+
keyword: string;
|
|
26515
|
+
languageCode: string;
|
|
26516
|
+
locationCode?: number;
|
|
26517
|
+
locationName?: string;
|
|
26518
|
+
device: 'desktop' | 'mobile';
|
|
26519
|
+
depth: number;
|
|
26520
|
+
refresh?: boolean;
|
|
26521
|
+
context: ProviderRequestContext;
|
|
26522
|
+
};
|
|
26523
|
+
type DataForSeoSerpSnapshot = {
|
|
26524
|
+
response: DataForSeoSerpResponse;
|
|
26525
|
+
observedAt: string;
|
|
26526
|
+
returnedRows: number;
|
|
26527
|
+
cache: ProviderCacheEvidence;
|
|
26528
|
+
cost: ProviderCostEvidence;
|
|
26529
|
+
spendNotice: ProviderSpendNotice | null;
|
|
26530
|
+
warnings: ProviderWarning[];
|
|
26531
|
+
};
|
|
26532
|
+
//#endregion
|
|
26533
|
+
//#region packages/core/src/providers/dataforseo/client.d.ts
|
|
26534
|
+
declare class DataForSeoClient {
|
|
26535
|
+
private readonly fetch;
|
|
26536
|
+
private readonly credentials;
|
|
26537
|
+
private readonly baseUrl;
|
|
26538
|
+
private readonly timeoutMs;
|
|
26539
|
+
private readonly maxResponseBytes;
|
|
26540
|
+
private readonly now;
|
|
26541
|
+
private readonly database;
|
|
26542
|
+
private readonly keywordOverviewTtlMs;
|
|
26543
|
+
private readonly keywordDiscoveryTtlMs;
|
|
26544
|
+
private readonly serpTtlMs;
|
|
26545
|
+
private readonly accountPricingTtlMs;
|
|
26546
|
+
private readonly spendLimits;
|
|
26547
|
+
private accountPricing;
|
|
26548
|
+
private accountPricingRequest;
|
|
26549
|
+
constructor(options?: DataForSeoClientOptions);
|
|
26550
|
+
private getCredentials;
|
|
26551
|
+
private authorization;
|
|
26552
|
+
private userDataForCredentials;
|
|
26553
|
+
userData(): Promise<DataForSeoAccountSnapshot>;
|
|
26554
|
+
private pricingForCredentials;
|
|
26555
|
+
private paidPost;
|
|
26556
|
+
keywordOverview(input: DataForSeoKeywordOverviewRequest): Promise<DataForSeoKeywordOverviewSnapshot>;
|
|
26557
|
+
keywordDiscovery(input: DataForSeoKeywordDiscoveryRequest): Promise<DataForSeoKeywordDiscoverySnapshot>;
|
|
26558
|
+
serpLive(input: DataForSeoSerpRequest): Promise<DataForSeoSerpSnapshot>;
|
|
26559
|
+
}
|
|
26560
|
+
//#endregion
|
|
26561
|
+
//#region packages/core/src/providers/dataforseo/keyword-discovery.d.ts
|
|
26562
|
+
type KeywordDiscoveryClient = Pick<DataForSeoClient, 'keywordDiscovery'>;
|
|
26563
|
+
type DataForSeoKeywordDiscoveryProviderOptions = DataForSeoClientOptions & {
|
|
26564
|
+
client?: KeywordDiscoveryClient;
|
|
26565
|
+
};
|
|
26566
|
+
declare class DataForSeoKeywordDiscoveryProvider implements KeywordDiscoveryProvider {
|
|
26567
|
+
readonly provider: "dataforseo";
|
|
26568
|
+
readonly capabilitySupport: readonly [{
|
|
26569
|
+
readonly capability: "keyword-discovery";
|
|
26570
|
+
readonly status: "available";
|
|
26571
|
+
readonly markets: readonly [{
|
|
26572
|
+
readonly searchEngines: readonly ["google"];
|
|
26573
|
+
readonly location: "country-only";
|
|
26574
|
+
}];
|
|
26575
|
+
}];
|
|
26576
|
+
private readonly client;
|
|
26577
|
+
constructor(options?: DataForSeoKeywordDiscoveryProviderOptions);
|
|
26578
|
+
discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
|
|
26579
|
+
}
|
|
26580
|
+
//#endregion
|
|
26581
|
+
//#region packages/core/src/providers/dataforseo/keyword-metrics.d.ts
|
|
26582
|
+
type KeywordMetricsClient = Pick<DataForSeoClient, 'keywordOverview'> & Partial<Pick<DataForSeoClient, 'userData'>>;
|
|
26583
|
+
type DataForSeoKeywordMetricsProviderOptions = DataForSeoClientOptions & {
|
|
26584
|
+
client?: KeywordMetricsClient;
|
|
26585
|
+
};
|
|
26586
|
+
declare class DataForSeoKeywordMetricsProvider implements KeywordMetricsProvider, KeywordMetricsCostEstimator {
|
|
26587
|
+
readonly provider: "dataforseo";
|
|
26588
|
+
readonly capabilitySupport: readonly [{
|
|
26589
|
+
readonly capability: "keyword-metrics";
|
|
26590
|
+
readonly status: "available";
|
|
26591
|
+
readonly markets: readonly [{
|
|
26592
|
+
readonly searchEngines: readonly ["google"];
|
|
26593
|
+
readonly location: "country-only";
|
|
26594
|
+
}];
|
|
26595
|
+
}];
|
|
26596
|
+
private readonly client;
|
|
26597
|
+
constructor(options?: DataForSeoKeywordMetricsProviderOptions);
|
|
26598
|
+
estimateKeywordMetricsCost(input: {
|
|
26599
|
+
requestedRows: number;
|
|
26600
|
+
market: SearchMarket;
|
|
26601
|
+
}): Promise<KeywordMetricsCostEstimate>;
|
|
26602
|
+
keywordMetrics(input: KeywordMetricsRequest): Promise<ProviderEvidence<KeywordMetric[]>>;
|
|
26603
|
+
}
|
|
26604
|
+
//#endregion
|
|
26605
|
+
//#region packages/core/src/providers/dataforseo/serp-snapshot.d.ts
|
|
26606
|
+
type SerpClient = Pick<DataForSeoClient, 'serpLive'>;
|
|
26607
|
+
type DataForSeoSerpSnapshotProviderOptions = DataForSeoClientOptions & {
|
|
26608
|
+
client?: SerpClient;
|
|
26609
|
+
};
|
|
26610
|
+
declare class DataForSeoSerpSnapshotProvider implements SerpSnapshotProvider {
|
|
26611
|
+
readonly provider: "dataforseo";
|
|
26612
|
+
readonly capabilitySupport: readonly [{
|
|
26613
|
+
readonly capability: "serp-snapshot";
|
|
26614
|
+
readonly status: "available";
|
|
26615
|
+
readonly markets: readonly [{
|
|
26616
|
+
readonly searchEngines: readonly ["google"];
|
|
26617
|
+
readonly devices: readonly ["desktop", "mobile"];
|
|
26618
|
+
readonly location: "any";
|
|
26619
|
+
}];
|
|
26620
|
+
}];
|
|
26621
|
+
private readonly client;
|
|
26622
|
+
constructor(options?: DataForSeoSerpSnapshotProviderOptions);
|
|
26623
|
+
serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
|
|
26624
|
+
}
|
|
26625
|
+
//#endregion
|
|
24950
26626
|
//#region packages/core/src/providers/dataforseo.d.ts
|
|
26627
|
+
type DataForSeoProviderOptions = DataForSeoClientOptions;
|
|
24951
26628
|
declare class DataForSeoProvider implements KeywordDataProvider {
|
|
24952
26629
|
readonly name = "dataforseo";
|
|
24953
26630
|
readonly capabilities: {
|
|
24954
26631
|
overview: boolean;
|
|
24955
26632
|
};
|
|
24956
|
-
private
|
|
26633
|
+
private readonly client;
|
|
26634
|
+
constructor(options?: DataForSeoProviderOptions);
|
|
24957
26635
|
keywordOverview(phrase: string, opts?: ProviderOpts): Promise<ProviderResult<KeywordOverview>>;
|
|
24958
26636
|
}
|
|
24959
26637
|
//#endregion
|
|
26638
|
+
//#region packages/core/src/providers/errors.d.ts
|
|
26639
|
+
type ProviderErrorCode = 'configuration' | 'authentication' | 'budget-limit' | 'rate-limit' | 'timeout' | 'response-too-large' | 'invalid-response' | 'remote-error';
|
|
26640
|
+
declare class ProviderError extends Error {
|
|
26641
|
+
readonly provider: ProviderId;
|
|
26642
|
+
readonly operation: string;
|
|
26643
|
+
readonly code: ProviderErrorCode;
|
|
26644
|
+
readonly status: number | null;
|
|
26645
|
+
readonly retryable: boolean;
|
|
26646
|
+
constructor(input: {
|
|
26647
|
+
provider: ProviderId;
|
|
26648
|
+
operation: string;
|
|
26649
|
+
code: ProviderErrorCode;
|
|
26650
|
+
message: string;
|
|
26651
|
+
status?: number;
|
|
26652
|
+
retryable?: boolean;
|
|
26653
|
+
cause?: unknown;
|
|
26654
|
+
});
|
|
26655
|
+
toJSON(): Record<string, unknown>;
|
|
26656
|
+
}
|
|
26657
|
+
//#endregion
|
|
24960
26658
|
//#region packages/core/src/providers/router.d.ts
|
|
24961
|
-
declare function getKeywordProvider(prefer?: 'cheap' | 'authoritative'
|
|
26659
|
+
declare function getKeywordProvider(prefer?: 'cheap' | 'authoritative', dependencies?: {
|
|
26660
|
+
readConfig?: () => AppConfig;
|
|
26661
|
+
hasDataForSeoCredentials?: () => boolean | Promise<boolean>;
|
|
26662
|
+
}): Promise<KeywordDataProvider | undefined>;
|
|
24962
26663
|
//#endregion
|
|
24963
26664
|
//#region packages/core/src/providers/semrush.d.ts
|
|
24964
26665
|
declare class SemrushProvider implements KeywordDataProvider {
|
|
@@ -25235,7 +26936,7 @@ declare const TELEMETRY_TIMEOUT_MS = 2000;
|
|
|
25235
26936
|
declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
|
|
25236
26937
|
declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
|
|
25237
26938
|
declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "unknown"];
|
|
25238
|
-
declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "bing-webmaster-overview", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "link-evidence", "server-log-analysis", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
|
|
26939
|
+
declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "bing-webmaster-overview", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "keyword-metrics", "keyword-opportunities", "keyword-research", "saved-keywords", "link-evidence", "server-log-analysis", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "pseo-opportunities", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "serp-results", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
|
|
25239
26940
|
type TelemetryEvent = (typeof TELEMETRY_EVENTS)[number];
|
|
25240
26941
|
type TelemetryAgent = (typeof TELEMETRY_AGENTS)[number];
|
|
25241
26942
|
type TelemetryErrorCategory = (typeof TELEMETRY_ERROR_CATEGORIES)[number];
|
|
@@ -25310,5 +27011,5 @@ declare function isoDate(daysAgo?: number): string;
|
|
|
25310
27011
|
//#region packages/core/src/version.d.ts
|
|
25311
27012
|
declare const SEO_VERSION: string;
|
|
25312
27013
|
//#endregion
|
|
25313
|
-
export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, 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, BacklinkProvider, BingCrawlRow, BingDimensionRow, BingLinkCountRow, BingLinkPage, BingRows, BingTrafficRow, BingUrlLinkRow, BingWebmasterClient, BingWebmasterCredentials, BingWebmasterSite, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, 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, CrawlStatusPhase, CrawlStrategy, CrawlerCategory, CrawlerIdentity, CrawlerPathSummary, CrawlerSummary, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DataForSeoProvider, 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, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEXNOW_ENDPOINT, INDEXNOW_KEYS_SECRET, INDEXNOW_KEY_ENV, INDEXNOW_MAX_URLS, 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, IndexNowKey, IndexNowKeySource, IndexNowSubmission, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordDataProvider, KeywordOverview, KeywordRow, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkEvidenceProvenance, LinkEvidenceProvider, LinkEvidenceRow, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LinkTargetCount, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PageFetchDiagnostics, PageFetchResult, 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, ProviderOpts, ProviderResult, ProviderSecret, ProviderSecretSource, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCrawlSample, type PseoCrawlTechnicalStatus, PseoDependencies, type PseoEntityFit, type PseoIndexStatus, type PseoInspectionSample, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, type QueryClusterRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RawLinkEvidenceRow, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchPageBatch, SearchStatusIncident, 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, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpProvider, ServerLogEvidence, ServerLogFormat, ServerLogRecord, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StatusBreakdown, StorageAdapter, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, addStatus, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeBingCrawl, analyzeBingDimensions, analyzeBingTraffic, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, bingAnalysisDefaults, bingWebmasterOverview, bingWebmasterSiteUrl, boundedSitemapInventory, buildOkfBundle, buildPseoAuditReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, classifyCrawler, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, collectBingLinkEvidence, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareLinkEvidence, 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, createBingWebmasterClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createIndexNowKey, createIndexNowKeyRecord, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getPreviousRun, getPrivacySnapshot, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, importLinkEvidence, importServerLog, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, noteCacheWrite, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerPreferenceSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, removeIndexNowKey, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, resolveIndexNowKey, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, saveIndexNowKey, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, submitIndexNow, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateIndexNowKey, validateIndexNowKeyRecord, validateOkfFiles, verifyIndexNowKey, verifyQueryContent, workflowPresentation, writeConfig, writeOauthClient, writeProviderSecret, writeTokens, xRobotsDirectives };
|
|
27014
|
+
export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, 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, BacklinkProvider, BingCrawlRow, BingDimensionRow, BingLinkCountRow, BingLinkPage, BingRows, BingTrafficRow, BingUrlLinkRow, BingWebmasterClient, BingWebmasterCredentials, BingWebmasterSite, BoundedSecondPageItem, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, 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, CrawlStatusPhase, CrawlStrategy, CrawlerCategory, CrawlerIdentity, CrawlerPathSummary, CrawlerSummary, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_PROVIDER_SPEND_LIMITS, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, DataForSeoKeywordDiscoveryProvider, DataForSeoKeywordDiscoveryProviderOptions, type DataForSeoKeywordDiscoveryRequest, type DataForSeoKeywordDiscoverySnapshot, DataForSeoKeywordMetricsProvider, DataForSeoKeywordMetricsProviderOptions, type DataForSeoKeywordOverviewRequest, type DataForSeoKeywordOverviewSnapshot, DataForSeoProvider, type DataForSeoSerpRequest, type DataForSeoSerpSnapshot, DataForSeoSerpSnapshotProvider, DataForSeoSerpSnapshotProviderOptions, 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, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEXNOW_ENDPOINT, INDEXNOW_KEYS_SECRET, INDEXNOW_KEY_ENV, INDEXNOW_MAX_URLS, 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, IndexNowKey, IndexNowKeySource, IndexNowSubmission, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KEYWORD_SET_FIELD_LIMITS, KEYWORD_SET_LIMITS, KEYWORD_SET_SCHEMA_SQL, KeywordDataProvider, KeywordDiscoveryProvider, KeywordDiscoveryRequest, KeywordDiscoverySource, KeywordIdea, KeywordIdeaSource, KeywordMetric, KeywordMetricAnalysis, KeywordMetricFinding, KeywordMetricsCostEstimate, KeywordMetricsCostEstimator, KeywordMetricsProvider, KeywordMetricsReport, KeywordMetricsReportDependencies, KeywordMetricsRequest, KeywordMonthlySearch, KeywordOpportunitiesDependencies, KeywordOpportunitiesInput, KeywordOpportunitiesReport, KeywordOpportunityCluster, KeywordOpportunityCombined, KeywordOpportunityDataSourcePrompt, KeywordOpportunityExternal, KeywordOpportunityFinding, KeywordOpportunityFirstParty, KeywordOpportunitySource, KeywordOverview, KeywordResearchAnalysis, KeywordResearchFinding, KeywordResearchReport, KeywordResearchReportDependencies, KeywordRow, KeywordSet, KeywordSetDetail, KeywordSetItem, KeywordSetMutationItem, KeywordSetMutationResult, KeywordSetPageMapping, KeywordSetRefreshDependencies, KeywordSetRefreshReport, type KeywordSetStoreOptions, KeywordTrend, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkEvidenceProvenance, LinkEvidenceProvider, LinkEvidenceRow, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LinkTargetCount, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PROVIDER_SPEND_MAX_BYTES, PROVIDER_SPEND_MAX_ROWS, PROVIDER_SPEND_RETENTION_DAYS, PageFetchDiagnostics, PageFetchResult, 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, ProviderAdapter, ProviderCacheEvidence, ProviderCandidate, ProviderCapability, ProviderCapabilitySupport, ProviderCostEvidence, ProviderCoverage, ProviderError, ProviderErrorCode, ProviderEvidence, ProviderFetch, ProviderId, ProviderMarketSupport, ProviderOpts, ProviderRequestContext, ProviderRequestEvidence, ProviderRequestInput, ProviderResolution, ProviderResult, ProviderSecret, ProviderSecretSource, ProviderSpendFinalization, ProviderSpendLimits, ProviderSpendNotice, ProviderSpendReservation, ProviderSpendReservationInput, ProviderSpendState, ProviderSpendSummary, ProviderValue, ProviderWarning, PseoAuditAcquisition, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCompetitorPattern, type PseoCrawlSample, type PseoCrawlTechnicalStatus, type PseoDataSourceBrief, PseoDependencies, type PseoDiscoveryEvidence, type PseoEntityFit, type PseoExternalAcquisition, type PseoExternalCandidate, type PseoIndexStatus, type PseoInspectionSample, type PseoKnownCost, PseoOpportunitiesDependencies, type PseoOpportunitiesInput, type PseoOpportunitiesReport, type PseoOpportunityCluster, type PseoOpportunityFinding, type PseoOpportunityTemplate, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, type PseoResearchSeed, type PseoSerpEvidence, type PseoSerpObservation, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsSection, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RawLinkEvidenceRow, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, SavedKeywordMetric, SavedKeywordSetReport, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchMarket, SearchPageBatch, SearchStatusIncident, SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, SecondPageSection, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpDomainSummary, SerpOrganicResult, SerpProvider, SerpResultFinding, SerpResultsReport, SerpResultsReportDependencies, SerpSnapshot, SerpSnapshotProvider, SerpSnapshotRequest, ServerLogEvidence, ServerLogFormat, ServerLogRecord, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StatusBreakdown, StorageAdapter, StoredDataForSeoCredentials, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, StrikingDistanceSection, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, acquirePseoAuditEvidence, addKeywordsToSet, addStatus, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeBingCrawl, analyzeBingDimensions, analyzeBingTraffic, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzeKeywordTrend, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, bingAnalysisDefaults, bingWebmasterOverview, bingWebmasterSiteUrl, boundedSitemapInventory, buildOkfBundle, buildPseoAuditFromAcquisition, buildPseoAuditReportFromRows, buildQueryClusterReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, classifyCrawler, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, collectBingLinkEvidence, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareLinkEvidence, 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, createBingWebmasterClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createIndexNowKey, createIndexNowKeyRecord, createKeywordSet, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteDataForSeoCredentials, deleteKeywordSet, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, ensurePrivateDatabaseFiles, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, finalizeProviderSpend, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getKeywordSet, getPreviousRun, getPrivacySnapshot, getProviderSpendLimits, getProviderSpendSummary, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, importLinkEvidence, importServerLog, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, keywordDiscoverySourceSchema, keywordMetricsReport, keywordOpportunitiesReport, keywordResearchReport, keywordSetLogicalBytes, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listKeywordSets, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, normalizeSavedKeyword, noteCacheWrite, observedValue, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerCapabilitySchema, providerIdSchema, providerPreferenceSchema, providerRequestJson, providerRequestText, providerSpendLimitOverridesSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoOpportunitiesReport, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readDataForSeoCredentials, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshKeywordSet, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, removeIndexNowKey, removeKeywordsFromSet, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, reserveProviderSpend, resolveIndexNowKey, resolveProvider, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, saveIndexNowKey, savedKeywordSetReport, searchMarketSchema, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serpResultsReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setKeywordSetRefreshTime, setProviderSpendLimits, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, submitIndexNow, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unavailableValue, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateIndexNowKey, validateIndexNowKeyRecord, validateOkfFiles, verifyIndexNowKey, verifyQueryContent, workflowPresentation, writeConfig, writeDataForSeoCredentials, writeOauthClient, writeProviderSecret, writeTokens, xRobotsDirectives };
|
|
25314
27015
|
//# sourceMappingURL=index.d.ts.map
|