seo 0.2.9 → 0.2.12

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/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- import { Headers, RequestInit as RequestInit$1, fetch as fetch$1 } from "undici";
2
+ import { Headers, RequestInit as RequestInit$1, Response as Response$1, fetch as fetch$1 } from "undici";
3
3
  import { z } from "zod";
4
4
  import Libsql from "libsql";
5
5
  import pino from "pino";
@@ -261,6 +261,11 @@ declare const clientProfileSchema: z.ZodObject<{
261
261
  propertyId: z.ZodString;
262
262
  }, z.core.$strip>>;
263
263
  }, z.core.$strip>>;
264
+ searchEngines: z.ZodOptional<z.ZodObject<{
265
+ bing: z.ZodOptional<z.ZodObject<{
266
+ siteUrl: z.ZodString;
267
+ }, z.core.$strip>>;
268
+ }, z.core.$strip>>;
264
269
  reportDay: z.ZodOptional<z.ZodNumber>;
265
270
  technicalWeekday: z.ZodOptional<z.ZodNumber>;
266
271
  isDefault: z.ZodOptional<z.ZodBoolean>;
@@ -288,6 +293,11 @@ declare const configSchema: z.ZodObject<{
288
293
  propertyId: z.ZodString;
289
294
  }, z.core.$strip>>;
290
295
  }, z.core.$strip>>;
296
+ searchEngines: z.ZodOptional<z.ZodObject<{
297
+ bing: z.ZodOptional<z.ZodObject<{
298
+ siteUrl: z.ZodString;
299
+ }, z.core.$strip>>;
300
+ }, z.core.$strip>>;
291
301
  reportDay: z.ZodOptional<z.ZodNumber>;
292
302
  technicalWeekday: z.ZodOptional<z.ZodNumber>;
293
303
  isDefault: z.ZodOptional<z.ZodBoolean>;
@@ -1617,6 +1627,8 @@ interface FetchPageOptions {
1617
1627
  */
1618
1628
  js?: JavaScriptRenderingInput;
1619
1629
  refresh?: boolean;
1630
+ /** Read existing cached responses but do not retain this response body. */
1631
+ writeCache?: boolean;
1620
1632
  timeoutMs?: number;
1621
1633
  rate?: FetchRateControls;
1622
1634
  signal?: AbortSignal;
@@ -1653,7 +1665,7 @@ type RobotsResult = {
1653
1665
  type RobotsResolver = (origin: string, targetUrl: string) => Promise<RobotsResult>;
1654
1666
  //#endregion
1655
1667
  //#region packages/core/src/fetch/page-fetcher/plain.d.ts
1656
- declare function fetchPlain(url: string, refresh: boolean | undefined, timeoutMs: number | undefined, rate: NormalizedFetchRateControls, signal?: AbortSignal, respectRobots?: boolean): Promise<PageFetchResult>;
1668
+ declare function fetchPlain(url: string, refresh: boolean | undefined, timeoutMs: number | undefined, rate: NormalizedFetchRateControls, signal?: AbortSignal, respectRobots?: boolean, writeCache?: boolean): Promise<PageFetchResult>;
1657
1669
  //#endregion
1658
1670
  //#region packages/core/src/fetch/page-fetcher/rendered.d.ts
1659
1671
  /**
@@ -1934,7 +1946,28 @@ interface MainContentDependencies {
1934
1946
  }
1935
1947
  //#endregion
1936
1948
  //#region packages/core/src/extract/page-extractor.d.ts
1937
- declare function extractPage(fetchResult: PageFetchResult, extractor?: ContentExtractor, dependencies?: MainContentDependencies): Promise<ExtractedPage>;
1949
+ type CrawlerExtractionEvidence = {
1950
+ h1?: string;
1951
+ h1Count: number;
1952
+ h2Count: number;
1953
+ h3Count: number;
1954
+ questionHeadings: number;
1955
+ internalLinks: string[];
1956
+ externalLinks: string[];
1957
+ internalAnchorSamples: Array<{
1958
+ href: string;
1959
+ text: string;
1960
+ }>;
1961
+ externalAnchorSamples: Array<{
1962
+ href: string;
1963
+ text: string;
1964
+ }>;
1965
+ socialProfileLinks: string[];
1966
+ };
1967
+ type PageExtraction = ExtractedPage & {
1968
+ crawlerEvidence?: CrawlerExtractionEvidence;
1969
+ };
1970
+ declare function extractPage(fetchResult: PageFetchResult, extractor?: ContentExtractor, dependencies?: MainContentDependencies): Promise<PageExtraction>;
1938
1971
  //#endregion
1939
1972
  //#region packages/core/src/analyze/content-coverage.d.ts
1940
1973
  declare function normalizeForCoverage(value: string): string;
@@ -3037,7 +3070,7 @@ declare function collectAgentDiscovery(input: {
3037
3070
  }): Promise<CrawlAgentDiscovery>;
3038
3071
  //#endregion
3039
3072
  //#region packages/core/src/analyze/crawler/crawl-skip-reasons.d.ts
3040
- declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "off-origin", "origin-backpressure", "queue-safety-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
3073
+ declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
3041
3074
  type CrawlSkipReason = (typeof CRAWL_SKIP_REASONS)[number];
3042
3075
  type CrawlSkipImpact = 'coverage-affecting' | 'non-impacting';
3043
3076
  type CrawlSkipReasonCount = {
@@ -3762,6 +3795,8 @@ type ResolvedCrawlSiteDependencies = {
3762
3795
  landingValueForUrl: typeof landingValueForUrl;
3763
3796
  collectAgentDiscovery: typeof collectAgentDiscovery;
3764
3797
  now: () => Date;
3798
+ memoryUsage: () => Pick<NodeJS.MemoryUsage, 'rss' | 'heapUsed' | 'external'>;
3799
+ totalMemory: () => number;
3765
3800
  };
3766
3801
  type CrawlSiteDependencies = Partial<ResolvedCrawlSiteDependencies>;
3767
3802
  //#endregion
@@ -4128,8 +4163,8 @@ declare const crawlerRuleSeveritySchema: z.ZodEnum<{
4128
4163
  medium: "medium";
4129
4164
  }>;
4130
4165
  declare const crawlerRuleRecommendationSchema: z.ZodEnum<{
4131
- fix: "fix";
4132
4166
  review: "review";
4167
+ fix: "fix";
4133
4168
  }>;
4134
4169
  declare const crawlerRuleCategorySchema: z.ZodEnum<{
4135
4170
  metadata: "metadata";
@@ -4179,8 +4214,8 @@ declare const crawlerRuleInfoSchema: z.ZodObject<{
4179
4214
  medium: "medium";
4180
4215
  }>;
4181
4216
  recommendation: z.ZodEnum<{
4182
- fix: "fix";
4183
4217
  review: "review";
4218
+ fix: "fix";
4184
4219
  }>;
4185
4220
  whyItMatters: z.ZodString;
4186
4221
  howToFix: z.ZodString;
@@ -4305,12 +4340,12 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4305
4340
  off: "off";
4306
4341
  }>;
4307
4342
  status: z.ZodEnum<{
4343
+ unavailable: "unavailable";
4308
4344
  failed: "failed";
4309
4345
  rendered: "rendered";
4310
4346
  "not-requested": "not-requested";
4311
4347
  "not-needed": "not-needed";
4312
4348
  skipped: "skipped";
4313
- unavailable: "unavailable";
4314
4349
  }>;
4315
4350
  raw: z.ZodOptional<z.ZodObject<{
4316
4351
  source: z.ZodEnum<{
@@ -4629,9 +4664,9 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4629
4664
  status: z.ZodOptional<z.ZodNumber>;
4630
4665
  error: z.ZodOptional<z.ZodString>;
4631
4666
  state: z.ZodOptional<z.ZodEnum<{
4667
+ unavailable: "unavailable";
4632
4668
  available: "available";
4633
4669
  "rate-limited": "rate-limited";
4634
- unavailable: "unavailable";
4635
4670
  "confirmed-broken": "confirmed-broken";
4636
4671
  transient: "transient";
4637
4672
  "provider-blocked": "provider-blocked";
@@ -5041,8 +5076,8 @@ declare const crawlTopFixSchema: z.ZodObject<{
5041
5076
  count: z.ZodNumber;
5042
5077
  sampleUrls: z.ZodArray<z.ZodString>;
5043
5078
  recommendation: z.ZodEnum<{
5044
- fix: "fix";
5045
5079
  review: "review";
5080
+ fix: "fix";
5046
5081
  }>;
5047
5082
  score: z.ZodNumber;
5048
5083
  scoreFactors: z.ZodObject<{
@@ -5131,6 +5166,7 @@ declare const crawlReportSummarySchema: z.ZodObject<{
5131
5166
  "configured-exclusion": "configured-exclusion";
5132
5167
  "duplicate-normalization": "duplicate-normalization";
5133
5168
  "invalid-url": "invalid-url";
5169
+ "memory-pressure": "memory-pressure";
5134
5170
  "off-origin": "off-origin";
5135
5171
  "origin-backpressure": "origin-backpressure";
5136
5172
  "queue-safety-limit": "queue-safety-limit";
@@ -5286,6 +5322,7 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5286
5322
  "configured-exclusion": "configured-exclusion";
5287
5323
  "duplicate-normalization": "duplicate-normalization";
5288
5324
  "invalid-url": "invalid-url";
5325
+ "memory-pressure": "memory-pressure";
5289
5326
  "off-origin": "off-origin";
5290
5327
  "origin-backpressure": "origin-backpressure";
5291
5328
  "queue-safety-limit": "queue-safety-limit";
@@ -5434,12 +5471,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5434
5471
  off: "off";
5435
5472
  }>;
5436
5473
  status: z.ZodEnum<{
5474
+ unavailable: "unavailable";
5437
5475
  failed: "failed";
5438
5476
  rendered: "rendered";
5439
5477
  "not-requested": "not-requested";
5440
5478
  "not-needed": "not-needed";
5441
5479
  skipped: "skipped";
5442
- unavailable: "unavailable";
5443
5480
  }>;
5444
5481
  raw: z.ZodOptional<z.ZodObject<{
5445
5482
  source: z.ZodEnum<{
@@ -5758,9 +5795,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5758
5795
  status: z.ZodOptional<z.ZodNumber>;
5759
5796
  error: z.ZodOptional<z.ZodString>;
5760
5797
  state: z.ZodOptional<z.ZodEnum<{
5798
+ unavailable: "unavailable";
5761
5799
  available: "available";
5762
5800
  "rate-limited": "rate-limited";
5763
- unavailable: "unavailable";
5764
5801
  "confirmed-broken": "confirmed-broken";
5765
5802
  transient: "transient";
5766
5803
  "provider-blocked": "provider-blocked";
@@ -5984,8 +6021,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5984
6021
  searchConsole: z.ZodObject<{
5985
6022
  status: z.ZodEnum<{
5986
6023
  partial: "partial";
5987
- skipped: "skipped";
5988
6024
  unavailable: "unavailable";
6025
+ skipped: "skipped";
5989
6026
  joined: "joined";
5990
6027
  none: "none";
5991
6028
  }>;
@@ -6009,8 +6046,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6009
6046
  analytics: z.ZodObject<{
6010
6047
  status: z.ZodEnum<{
6011
6048
  partial: "partial";
6012
- skipped: "skipped";
6013
6049
  unavailable: "unavailable";
6050
+ skipped: "skipped";
6014
6051
  joined: "joined";
6015
6052
  none: "none";
6016
6053
  }>;
@@ -6155,9 +6192,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6155
6192
  deferredUrls: z.ZodNumber;
6156
6193
  limit: z.ZodNumber;
6157
6194
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
6195
+ unavailable: "unavailable";
6158
6196
  available: "available";
6159
6197
  "rate-limited": "rate-limited";
6160
- unavailable: "unavailable";
6161
6198
  "confirmed-broken": "confirmed-broken";
6162
6199
  transient: "transient";
6163
6200
  "provider-blocked": "provider-blocked";
@@ -6663,6 +6700,7 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6663
6700
  "configured-exclusion": "configured-exclusion";
6664
6701
  "duplicate-normalization": "duplicate-normalization";
6665
6702
  "invalid-url": "invalid-url";
6703
+ "memory-pressure": "memory-pressure";
6666
6704
  "off-origin": "off-origin";
6667
6705
  "origin-backpressure": "origin-backpressure";
6668
6706
  "queue-safety-limit": "queue-safety-limit";
@@ -6811,12 +6849,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6811
6849
  off: "off";
6812
6850
  }>;
6813
6851
  status: z.ZodEnum<{
6852
+ unavailable: "unavailable";
6814
6853
  failed: "failed";
6815
6854
  rendered: "rendered";
6816
6855
  "not-requested": "not-requested";
6817
6856
  "not-needed": "not-needed";
6818
6857
  skipped: "skipped";
6819
- unavailable: "unavailable";
6820
6858
  }>;
6821
6859
  raw: z.ZodOptional<z.ZodObject<{
6822
6860
  source: z.ZodEnum<{
@@ -7135,9 +7173,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7135
7173
  status: z.ZodOptional<z.ZodNumber>;
7136
7174
  error: z.ZodOptional<z.ZodString>;
7137
7175
  state: z.ZodOptional<z.ZodEnum<{
7176
+ unavailable: "unavailable";
7138
7177
  available: "available";
7139
7178
  "rate-limited": "rate-limited";
7140
- unavailable: "unavailable";
7141
7179
  "confirmed-broken": "confirmed-broken";
7142
7180
  transient: "transient";
7143
7181
  "provider-blocked": "provider-blocked";
@@ -7361,8 +7399,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7361
7399
  searchConsole: z.ZodObject<{
7362
7400
  status: z.ZodEnum<{
7363
7401
  partial: "partial";
7364
- skipped: "skipped";
7365
7402
  unavailable: "unavailable";
7403
+ skipped: "skipped";
7366
7404
  joined: "joined";
7367
7405
  none: "none";
7368
7406
  }>;
@@ -7386,8 +7424,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7386
7424
  analytics: z.ZodObject<{
7387
7425
  status: z.ZodEnum<{
7388
7426
  partial: "partial";
7389
- skipped: "skipped";
7390
7427
  unavailable: "unavailable";
7428
+ skipped: "skipped";
7391
7429
  joined: "joined";
7392
7430
  none: "none";
7393
7431
  }>;
@@ -7532,9 +7570,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7532
7570
  deferredUrls: z.ZodNumber;
7533
7571
  limit: z.ZodNumber;
7534
7572
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
7573
+ unavailable: "unavailable";
7535
7574
  available: "available";
7536
7575
  "rate-limited": "rate-limited";
7537
- unavailable: "unavailable";
7538
7576
  "confirmed-broken": "confirmed-broken";
7539
7577
  transient: "transient";
7540
7578
  "provider-blocked": "provider-blocked";
@@ -8040,6 +8078,7 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8040
8078
  "configured-exclusion": "configured-exclusion";
8041
8079
  "duplicate-normalization": "duplicate-normalization";
8042
8080
  "invalid-url": "invalid-url";
8081
+ "memory-pressure": "memory-pressure";
8043
8082
  "off-origin": "off-origin";
8044
8083
  "origin-backpressure": "origin-backpressure";
8045
8084
  "queue-safety-limit": "queue-safety-limit";
@@ -8188,12 +8227,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8188
8227
  off: "off";
8189
8228
  }>;
8190
8229
  status: z.ZodEnum<{
8230
+ unavailable: "unavailable";
8191
8231
  failed: "failed";
8192
8232
  rendered: "rendered";
8193
8233
  "not-requested": "not-requested";
8194
8234
  "not-needed": "not-needed";
8195
8235
  skipped: "skipped";
8196
- unavailable: "unavailable";
8197
8236
  }>;
8198
8237
  raw: z.ZodOptional<z.ZodObject<{
8199
8238
  source: z.ZodEnum<{
@@ -8512,9 +8551,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8512
8551
  status: z.ZodOptional<z.ZodNumber>;
8513
8552
  error: z.ZodOptional<z.ZodString>;
8514
8553
  state: z.ZodOptional<z.ZodEnum<{
8554
+ unavailable: "unavailable";
8515
8555
  available: "available";
8516
8556
  "rate-limited": "rate-limited";
8517
- unavailable: "unavailable";
8518
8557
  "confirmed-broken": "confirmed-broken";
8519
8558
  transient: "transient";
8520
8559
  "provider-blocked": "provider-blocked";
@@ -8738,8 +8777,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8738
8777
  searchConsole: z.ZodObject<{
8739
8778
  status: z.ZodEnum<{
8740
8779
  partial: "partial";
8741
- skipped: "skipped";
8742
8780
  unavailable: "unavailable";
8781
+ skipped: "skipped";
8743
8782
  joined: "joined";
8744
8783
  none: "none";
8745
8784
  }>;
@@ -8763,8 +8802,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8763
8802
  analytics: z.ZodObject<{
8764
8803
  status: z.ZodEnum<{
8765
8804
  partial: "partial";
8766
- skipped: "skipped";
8767
8805
  unavailable: "unavailable";
8806
+ skipped: "skipped";
8768
8807
  joined: "joined";
8769
8808
  none: "none";
8770
8809
  }>;
@@ -8909,9 +8948,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8909
8948
  deferredUrls: z.ZodNumber;
8910
8949
  limit: z.ZodNumber;
8911
8950
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
8951
+ unavailable: "unavailable";
8912
8952
  available: "available";
8913
8953
  "rate-limited": "rate-limited";
8914
- unavailable: "unavailable";
8915
8954
  "confirmed-broken": "confirmed-broken";
8916
8955
  transient: "transient";
8917
8956
  "provider-blocked": "provider-blocked";
@@ -9419,6 +9458,7 @@ declare const crawlerSchemas: {
9419
9458
  "configured-exclusion": "configured-exclusion";
9420
9459
  "duplicate-normalization": "duplicate-normalization";
9421
9460
  "invalid-url": "invalid-url";
9461
+ "memory-pressure": "memory-pressure";
9422
9462
  "off-origin": "off-origin";
9423
9463
  "origin-backpressure": "origin-backpressure";
9424
9464
  "queue-safety-limit": "queue-safety-limit";
@@ -9567,12 +9607,12 @@ declare const crawlerSchemas: {
9567
9607
  off: "off";
9568
9608
  }>;
9569
9609
  status: z.ZodEnum<{
9610
+ unavailable: "unavailable";
9570
9611
  failed: "failed";
9571
9612
  rendered: "rendered";
9572
9613
  "not-requested": "not-requested";
9573
9614
  "not-needed": "not-needed";
9574
9615
  skipped: "skipped";
9575
- unavailable: "unavailable";
9576
9616
  }>;
9577
9617
  raw: z.ZodOptional<z.ZodObject<{
9578
9618
  source: z.ZodEnum<{
@@ -9891,9 +9931,9 @@ declare const crawlerSchemas: {
9891
9931
  status: z.ZodOptional<z.ZodNumber>;
9892
9932
  error: z.ZodOptional<z.ZodString>;
9893
9933
  state: z.ZodOptional<z.ZodEnum<{
9934
+ unavailable: "unavailable";
9894
9935
  available: "available";
9895
9936
  "rate-limited": "rate-limited";
9896
- unavailable: "unavailable";
9897
9937
  "confirmed-broken": "confirmed-broken";
9898
9938
  transient: "transient";
9899
9939
  "provider-blocked": "provider-blocked";
@@ -10117,8 +10157,8 @@ declare const crawlerSchemas: {
10117
10157
  searchConsole: z.ZodObject<{
10118
10158
  status: z.ZodEnum<{
10119
10159
  partial: "partial";
10120
- skipped: "skipped";
10121
10160
  unavailable: "unavailable";
10161
+ skipped: "skipped";
10122
10162
  joined: "joined";
10123
10163
  none: "none";
10124
10164
  }>;
@@ -10142,8 +10182,8 @@ declare const crawlerSchemas: {
10142
10182
  analytics: z.ZodObject<{
10143
10183
  status: z.ZodEnum<{
10144
10184
  partial: "partial";
10145
- skipped: "skipped";
10146
10185
  unavailable: "unavailable";
10186
+ skipped: "skipped";
10147
10187
  joined: "joined";
10148
10188
  none: "none";
10149
10189
  }>;
@@ -10288,9 +10328,9 @@ declare const crawlerSchemas: {
10288
10328
  deferredUrls: z.ZodNumber;
10289
10329
  limit: z.ZodNumber;
10290
10330
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
10331
+ unavailable: "unavailable";
10291
10332
  available: "available";
10292
10333
  "rate-limited": "rate-limited";
10293
- unavailable: "unavailable";
10294
10334
  "confirmed-broken": "confirmed-broken";
10295
10335
  transient: "transient";
10296
10336
  "provider-blocked": "provider-blocked";
@@ -10796,6 +10836,7 @@ declare const crawlerSchemas: {
10796
10836
  "configured-exclusion": "configured-exclusion";
10797
10837
  "duplicate-normalization": "duplicate-normalization";
10798
10838
  "invalid-url": "invalid-url";
10839
+ "memory-pressure": "memory-pressure";
10799
10840
  "off-origin": "off-origin";
10800
10841
  "origin-backpressure": "origin-backpressure";
10801
10842
  "queue-safety-limit": "queue-safety-limit";
@@ -10944,12 +10985,12 @@ declare const crawlerSchemas: {
10944
10985
  off: "off";
10945
10986
  }>;
10946
10987
  status: z.ZodEnum<{
10988
+ unavailable: "unavailable";
10947
10989
  failed: "failed";
10948
10990
  rendered: "rendered";
10949
10991
  "not-requested": "not-requested";
10950
10992
  "not-needed": "not-needed";
10951
10993
  skipped: "skipped";
10952
- unavailable: "unavailable";
10953
10994
  }>;
10954
10995
  raw: z.ZodOptional<z.ZodObject<{
10955
10996
  source: z.ZodEnum<{
@@ -11268,9 +11309,9 @@ declare const crawlerSchemas: {
11268
11309
  status: z.ZodOptional<z.ZodNumber>;
11269
11310
  error: z.ZodOptional<z.ZodString>;
11270
11311
  state: z.ZodOptional<z.ZodEnum<{
11312
+ unavailable: "unavailable";
11271
11313
  available: "available";
11272
11314
  "rate-limited": "rate-limited";
11273
- unavailable: "unavailable";
11274
11315
  "confirmed-broken": "confirmed-broken";
11275
11316
  transient: "transient";
11276
11317
  "provider-blocked": "provider-blocked";
@@ -11494,8 +11535,8 @@ declare const crawlerSchemas: {
11494
11535
  searchConsole: z.ZodObject<{
11495
11536
  status: z.ZodEnum<{
11496
11537
  partial: "partial";
11497
- skipped: "skipped";
11498
11538
  unavailable: "unavailable";
11539
+ skipped: "skipped";
11499
11540
  joined: "joined";
11500
11541
  none: "none";
11501
11542
  }>;
@@ -11519,8 +11560,8 @@ declare const crawlerSchemas: {
11519
11560
  analytics: z.ZodObject<{
11520
11561
  status: z.ZodEnum<{
11521
11562
  partial: "partial";
11522
- skipped: "skipped";
11523
11563
  unavailable: "unavailable";
11564
+ skipped: "skipped";
11524
11565
  joined: "joined";
11525
11566
  none: "none";
11526
11567
  }>;
@@ -11665,9 +11706,9 @@ declare const crawlerSchemas: {
11665
11706
  deferredUrls: z.ZodNumber;
11666
11707
  limit: z.ZodNumber;
11667
11708
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
11709
+ unavailable: "unavailable";
11668
11710
  available: "available";
11669
11711
  "rate-limited": "rate-limited";
11670
- unavailable: "unavailable";
11671
11712
  "confirmed-broken": "confirmed-broken";
11672
11713
  transient: "transient";
11673
11714
  "provider-blocked": "provider-blocked";
@@ -12173,6 +12214,7 @@ declare const crawlerSchemas: {
12173
12214
  "configured-exclusion": "configured-exclusion";
12174
12215
  "duplicate-normalization": "duplicate-normalization";
12175
12216
  "invalid-url": "invalid-url";
12217
+ "memory-pressure": "memory-pressure";
12176
12218
  "off-origin": "off-origin";
12177
12219
  "origin-backpressure": "origin-backpressure";
12178
12220
  "queue-safety-limit": "queue-safety-limit";
@@ -12321,12 +12363,12 @@ declare const crawlerSchemas: {
12321
12363
  off: "off";
12322
12364
  }>;
12323
12365
  status: z.ZodEnum<{
12366
+ unavailable: "unavailable";
12324
12367
  failed: "failed";
12325
12368
  rendered: "rendered";
12326
12369
  "not-requested": "not-requested";
12327
12370
  "not-needed": "not-needed";
12328
12371
  skipped: "skipped";
12329
- unavailable: "unavailable";
12330
12372
  }>;
12331
12373
  raw: z.ZodOptional<z.ZodObject<{
12332
12374
  source: z.ZodEnum<{
@@ -12645,9 +12687,9 @@ declare const crawlerSchemas: {
12645
12687
  status: z.ZodOptional<z.ZodNumber>;
12646
12688
  error: z.ZodOptional<z.ZodString>;
12647
12689
  state: z.ZodOptional<z.ZodEnum<{
12690
+ unavailable: "unavailable";
12648
12691
  available: "available";
12649
12692
  "rate-limited": "rate-limited";
12650
- unavailable: "unavailable";
12651
12693
  "confirmed-broken": "confirmed-broken";
12652
12694
  transient: "transient";
12653
12695
  "provider-blocked": "provider-blocked";
@@ -12871,8 +12913,8 @@ declare const crawlerSchemas: {
12871
12913
  searchConsole: z.ZodObject<{
12872
12914
  status: z.ZodEnum<{
12873
12915
  partial: "partial";
12874
- skipped: "skipped";
12875
12916
  unavailable: "unavailable";
12917
+ skipped: "skipped";
12876
12918
  joined: "joined";
12877
12919
  none: "none";
12878
12920
  }>;
@@ -12896,8 +12938,8 @@ declare const crawlerSchemas: {
12896
12938
  analytics: z.ZodObject<{
12897
12939
  status: z.ZodEnum<{
12898
12940
  partial: "partial";
12899
- skipped: "skipped";
12900
12941
  unavailable: "unavailable";
12942
+ skipped: "skipped";
12901
12943
  joined: "joined";
12902
12944
  none: "none";
12903
12945
  }>;
@@ -13042,9 +13084,9 @@ declare const crawlerSchemas: {
13042
13084
  deferredUrls: z.ZodNumber;
13043
13085
  limit: z.ZodNumber;
13044
13086
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
13087
+ unavailable: "unavailable";
13045
13088
  available: "available";
13046
13089
  "rate-limited": "rate-limited";
13047
- unavailable: "unavailable";
13048
13090
  "confirmed-broken": "confirmed-broken";
13049
13091
  transient: "transient";
13050
13092
  "provider-blocked": "provider-blocked";
@@ -13490,8 +13532,8 @@ declare const crawlerSchemas: {
13490
13532
  count: z.ZodNumber;
13491
13533
  sampleUrls: z.ZodArray<z.ZodString>;
13492
13534
  recommendation: z.ZodEnum<{
13493
- fix: "fix";
13494
13535
  review: "review";
13536
+ fix: "fix";
13495
13537
  }>;
13496
13538
  score: z.ZodNumber;
13497
13539
  scoreFactors: z.ZodObject<{
@@ -13547,8 +13589,8 @@ declare const crawlerSchemas: {
13547
13589
  medium: "medium";
13548
13590
  }>;
13549
13591
  recommendation: z.ZodEnum<{
13550
- fix: "fix";
13551
13592
  review: "review";
13593
+ fix: "fix";
13552
13594
  }>;
13553
13595
  whyItMatters: z.ZodString;
13554
13596
  howToFix: z.ZodString;
@@ -13833,12 +13875,12 @@ declare const crawlerSchemas: {
13833
13875
  off: "off";
13834
13876
  }>;
13835
13877
  status: z.ZodEnum<{
13878
+ unavailable: "unavailable";
13836
13879
  failed: "failed";
13837
13880
  rendered: "rendered";
13838
13881
  "not-requested": "not-requested";
13839
13882
  "not-needed": "not-needed";
13840
13883
  skipped: "skipped";
13841
- unavailable: "unavailable";
13842
13884
  }>;
13843
13885
  raw: z.ZodOptional<z.ZodObject<{
13844
13886
  source: z.ZodEnum<{
@@ -14157,9 +14199,9 @@ declare const crawlerSchemas: {
14157
14199
  status: z.ZodOptional<z.ZodNumber>;
14158
14200
  error: z.ZodOptional<z.ZodString>;
14159
14201
  state: z.ZodOptional<z.ZodEnum<{
14202
+ unavailable: "unavailable";
14160
14203
  available: "available";
14161
14204
  "rate-limited": "rate-limited";
14162
- unavailable: "unavailable";
14163
14205
  "confirmed-broken": "confirmed-broken";
14164
14206
  transient: "transient";
14165
14207
  "provider-blocked": "provider-blocked";
@@ -14435,6 +14477,7 @@ declare const crawlerJsonSchemas: {
14435
14477
  "configured-exclusion": "configured-exclusion";
14436
14478
  "duplicate-normalization": "duplicate-normalization";
14437
14479
  "invalid-url": "invalid-url";
14480
+ "memory-pressure": "memory-pressure";
14438
14481
  "off-origin": "off-origin";
14439
14482
  "origin-backpressure": "origin-backpressure";
14440
14483
  "queue-safety-limit": "queue-safety-limit";
@@ -14583,12 +14626,12 @@ declare const crawlerJsonSchemas: {
14583
14626
  off: "off";
14584
14627
  }>;
14585
14628
  status: z.ZodEnum<{
14629
+ unavailable: "unavailable";
14586
14630
  failed: "failed";
14587
14631
  rendered: "rendered";
14588
14632
  "not-requested": "not-requested";
14589
14633
  "not-needed": "not-needed";
14590
14634
  skipped: "skipped";
14591
- unavailable: "unavailable";
14592
14635
  }>;
14593
14636
  raw: z.ZodOptional<z.ZodObject<{
14594
14637
  source: z.ZodEnum<{
@@ -14907,9 +14950,9 @@ declare const crawlerJsonSchemas: {
14907
14950
  status: z.ZodOptional<z.ZodNumber>;
14908
14951
  error: z.ZodOptional<z.ZodString>;
14909
14952
  state: z.ZodOptional<z.ZodEnum<{
14953
+ unavailable: "unavailable";
14910
14954
  available: "available";
14911
14955
  "rate-limited": "rate-limited";
14912
- unavailable: "unavailable";
14913
14956
  "confirmed-broken": "confirmed-broken";
14914
14957
  transient: "transient";
14915
14958
  "provider-blocked": "provider-blocked";
@@ -15133,8 +15176,8 @@ declare const crawlerJsonSchemas: {
15133
15176
  searchConsole: z.ZodObject<{
15134
15177
  status: z.ZodEnum<{
15135
15178
  partial: "partial";
15136
- skipped: "skipped";
15137
15179
  unavailable: "unavailable";
15180
+ skipped: "skipped";
15138
15181
  joined: "joined";
15139
15182
  none: "none";
15140
15183
  }>;
@@ -15158,8 +15201,8 @@ declare const crawlerJsonSchemas: {
15158
15201
  analytics: z.ZodObject<{
15159
15202
  status: z.ZodEnum<{
15160
15203
  partial: "partial";
15161
- skipped: "skipped";
15162
15204
  unavailable: "unavailable";
15205
+ skipped: "skipped";
15163
15206
  joined: "joined";
15164
15207
  none: "none";
15165
15208
  }>;
@@ -15304,9 +15347,9 @@ declare const crawlerJsonSchemas: {
15304
15347
  deferredUrls: z.ZodNumber;
15305
15348
  limit: z.ZodNumber;
15306
15349
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
15350
+ unavailable: "unavailable";
15307
15351
  available: "available";
15308
15352
  "rate-limited": "rate-limited";
15309
- unavailable: "unavailable";
15310
15353
  "confirmed-broken": "confirmed-broken";
15311
15354
  transient: "transient";
15312
15355
  "provider-blocked": "provider-blocked";
@@ -15812,6 +15855,7 @@ declare const crawlerJsonSchemas: {
15812
15855
  "configured-exclusion": "configured-exclusion";
15813
15856
  "duplicate-normalization": "duplicate-normalization";
15814
15857
  "invalid-url": "invalid-url";
15858
+ "memory-pressure": "memory-pressure";
15815
15859
  "off-origin": "off-origin";
15816
15860
  "origin-backpressure": "origin-backpressure";
15817
15861
  "queue-safety-limit": "queue-safety-limit";
@@ -15960,12 +16004,12 @@ declare const crawlerJsonSchemas: {
15960
16004
  off: "off";
15961
16005
  }>;
15962
16006
  status: z.ZodEnum<{
16007
+ unavailable: "unavailable";
15963
16008
  failed: "failed";
15964
16009
  rendered: "rendered";
15965
16010
  "not-requested": "not-requested";
15966
16011
  "not-needed": "not-needed";
15967
16012
  skipped: "skipped";
15968
- unavailable: "unavailable";
15969
16013
  }>;
15970
16014
  raw: z.ZodOptional<z.ZodObject<{
15971
16015
  source: z.ZodEnum<{
@@ -16284,9 +16328,9 @@ declare const crawlerJsonSchemas: {
16284
16328
  status: z.ZodOptional<z.ZodNumber>;
16285
16329
  error: z.ZodOptional<z.ZodString>;
16286
16330
  state: z.ZodOptional<z.ZodEnum<{
16331
+ unavailable: "unavailable";
16287
16332
  available: "available";
16288
16333
  "rate-limited": "rate-limited";
16289
- unavailable: "unavailable";
16290
16334
  "confirmed-broken": "confirmed-broken";
16291
16335
  transient: "transient";
16292
16336
  "provider-blocked": "provider-blocked";
@@ -16510,8 +16554,8 @@ declare const crawlerJsonSchemas: {
16510
16554
  searchConsole: z.ZodObject<{
16511
16555
  status: z.ZodEnum<{
16512
16556
  partial: "partial";
16513
- skipped: "skipped";
16514
16557
  unavailable: "unavailable";
16558
+ skipped: "skipped";
16515
16559
  joined: "joined";
16516
16560
  none: "none";
16517
16561
  }>;
@@ -16535,8 +16579,8 @@ declare const crawlerJsonSchemas: {
16535
16579
  analytics: z.ZodObject<{
16536
16580
  status: z.ZodEnum<{
16537
16581
  partial: "partial";
16538
- skipped: "skipped";
16539
16582
  unavailable: "unavailable";
16583
+ skipped: "skipped";
16540
16584
  joined: "joined";
16541
16585
  none: "none";
16542
16586
  }>;
@@ -16681,9 +16725,9 @@ declare const crawlerJsonSchemas: {
16681
16725
  deferredUrls: z.ZodNumber;
16682
16726
  limit: z.ZodNumber;
16683
16727
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
16728
+ unavailable: "unavailable";
16684
16729
  available: "available";
16685
16730
  "rate-limited": "rate-limited";
16686
- unavailable: "unavailable";
16687
16731
  "confirmed-broken": "confirmed-broken";
16688
16732
  transient: "transient";
16689
16733
  "provider-blocked": "provider-blocked";
@@ -17189,6 +17233,7 @@ declare const crawlerJsonSchemas: {
17189
17233
  "configured-exclusion": "configured-exclusion";
17190
17234
  "duplicate-normalization": "duplicate-normalization";
17191
17235
  "invalid-url": "invalid-url";
17236
+ "memory-pressure": "memory-pressure";
17192
17237
  "off-origin": "off-origin";
17193
17238
  "origin-backpressure": "origin-backpressure";
17194
17239
  "queue-safety-limit": "queue-safety-limit";
@@ -17337,12 +17382,12 @@ declare const crawlerJsonSchemas: {
17337
17382
  off: "off";
17338
17383
  }>;
17339
17384
  status: z.ZodEnum<{
17385
+ unavailable: "unavailable";
17340
17386
  failed: "failed";
17341
17387
  rendered: "rendered";
17342
17388
  "not-requested": "not-requested";
17343
17389
  "not-needed": "not-needed";
17344
17390
  skipped: "skipped";
17345
- unavailable: "unavailable";
17346
17391
  }>;
17347
17392
  raw: z.ZodOptional<z.ZodObject<{
17348
17393
  source: z.ZodEnum<{
@@ -17661,9 +17706,9 @@ declare const crawlerJsonSchemas: {
17661
17706
  status: z.ZodOptional<z.ZodNumber>;
17662
17707
  error: z.ZodOptional<z.ZodString>;
17663
17708
  state: z.ZodOptional<z.ZodEnum<{
17709
+ unavailable: "unavailable";
17664
17710
  available: "available";
17665
17711
  "rate-limited": "rate-limited";
17666
- unavailable: "unavailable";
17667
17712
  "confirmed-broken": "confirmed-broken";
17668
17713
  transient: "transient";
17669
17714
  "provider-blocked": "provider-blocked";
@@ -17887,8 +17932,8 @@ declare const crawlerJsonSchemas: {
17887
17932
  searchConsole: z.ZodObject<{
17888
17933
  status: z.ZodEnum<{
17889
17934
  partial: "partial";
17890
- skipped: "skipped";
17891
17935
  unavailable: "unavailable";
17936
+ skipped: "skipped";
17892
17937
  joined: "joined";
17893
17938
  none: "none";
17894
17939
  }>;
@@ -17912,8 +17957,8 @@ declare const crawlerJsonSchemas: {
17912
17957
  analytics: z.ZodObject<{
17913
17958
  status: z.ZodEnum<{
17914
17959
  partial: "partial";
17915
- skipped: "skipped";
17916
17960
  unavailable: "unavailable";
17961
+ skipped: "skipped";
17917
17962
  joined: "joined";
17918
17963
  none: "none";
17919
17964
  }>;
@@ -18058,9 +18103,9 @@ declare const crawlerJsonSchemas: {
18058
18103
  deferredUrls: z.ZodNumber;
18059
18104
  limit: z.ZodNumber;
18060
18105
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
18106
+ unavailable: "unavailable";
18061
18107
  available: "available";
18062
18108
  "rate-limited": "rate-limited";
18063
- unavailable: "unavailable";
18064
18109
  "confirmed-broken": "confirmed-broken";
18065
18110
  transient: "transient";
18066
18111
  "provider-blocked": "provider-blocked";
@@ -18506,8 +18551,8 @@ declare const crawlerJsonSchemas: {
18506
18551
  count: z.ZodNumber;
18507
18552
  sampleUrls: z.ZodArray<z.ZodString>;
18508
18553
  recommendation: z.ZodEnum<{
18509
- fix: "fix";
18510
18554
  review: "review";
18555
+ fix: "fix";
18511
18556
  }>;
18512
18557
  score: z.ZodNumber;
18513
18558
  scoreFactors: z.ZodObject<{
@@ -18563,8 +18608,8 @@ declare const crawlerJsonSchemas: {
18563
18608
  medium: "medium";
18564
18609
  }>;
18565
18610
  recommendation: z.ZodEnum<{
18566
- fix: "fix";
18567
18611
  review: "review";
18612
+ fix: "fix";
18568
18613
  }>;
18569
18614
  whyItMatters: z.ZodString;
18570
18615
  howToFix: z.ZodString;
@@ -18849,12 +18894,12 @@ declare const crawlerJsonSchemas: {
18849
18894
  off: "off";
18850
18895
  }>;
18851
18896
  status: z.ZodEnum<{
18897
+ unavailable: "unavailable";
18852
18898
  failed: "failed";
18853
18899
  rendered: "rendered";
18854
18900
  "not-requested": "not-requested";
18855
18901
  "not-needed": "not-needed";
18856
18902
  skipped: "skipped";
18857
- unavailable: "unavailable";
18858
18903
  }>;
18859
18904
  raw: z.ZodOptional<z.ZodObject<{
18860
18905
  source: z.ZodEnum<{
@@ -19173,9 +19218,9 @@ declare const crawlerJsonSchemas: {
19173
19218
  status: z.ZodOptional<z.ZodNumber>;
19174
19219
  error: z.ZodOptional<z.ZodString>;
19175
19220
  state: z.ZodOptional<z.ZodEnum<{
19221
+ unavailable: "unavailable";
19176
19222
  available: "available";
19177
19223
  "rate-limited": "rate-limited";
19178
- unavailable: "unavailable";
19179
19224
  "confirmed-broken": "confirmed-broken";
19180
19225
  transient: "transient";
19181
19226
  "provider-blocked": "provider-blocked";
@@ -22774,6 +22819,769 @@ declare function updatePostmortemWorkflow(input: {
22774
22819
  segmentImpact?: typeof segmentImpact;
22775
22820
  }): Promise<WorkflowReport<PostmortemOutput>>;
22776
22821
  //#endregion
22822
+ //#region packages/core/src/bing/client.d.ts
22823
+ type BingWebmasterCredentials = {
22824
+ apiKey: string;
22825
+ accessToken?: never;
22826
+ } | {
22827
+ accessToken: string;
22828
+ apiKey?: never;
22829
+ };
22830
+ type BingWebmasterSite = {
22831
+ url: string;
22832
+ isVerified: boolean;
22833
+ };
22834
+ type BingTrafficRow = {
22835
+ date: string;
22836
+ clicks: number;
22837
+ impressions: number;
22838
+ };
22839
+ type BingCrawlRow = {
22840
+ date: string;
22841
+ crawledPages?: number;
22842
+ inIndex?: number;
22843
+ inLinks?: number;
22844
+ code2xx?: number;
22845
+ code301?: number;
22846
+ code302?: number;
22847
+ code4xx?: number;
22848
+ code5xx?: number;
22849
+ blockedByRobotsTxt?: number;
22850
+ crawlErrors?: number;
22851
+ connectionTimeout?: number;
22852
+ dnsFailures?: number;
22853
+ containsMalware?: number;
22854
+ allOtherCodes?: number;
22855
+ };
22856
+ type BingDimensionRow = {
22857
+ date: string;
22858
+ value: string;
22859
+ clicks: number;
22860
+ impressions: number;
22861
+ avgClickPosition?: number;
22862
+ avgImpressionPosition?: number;
22863
+ };
22864
+ type BingRows<T> = {
22865
+ rows: T[];
22866
+ invalidRows: number;
22867
+ capped: boolean;
22868
+ returnedRows: number;
22869
+ };
22870
+ type BingLinkCountRow = {
22871
+ url: string;
22872
+ count: number;
22873
+ };
22874
+ type BingUrlLinkRow = {
22875
+ url: string;
22876
+ anchorText?: string;
22877
+ };
22878
+ type BingLinkPage<T> = {
22879
+ rows: T[];
22880
+ totalPages: number;
22881
+ invalidRows: number;
22882
+ capped: boolean;
22883
+ returnedRows: number;
22884
+ };
22885
+ type BingFetch = (url: string, init?: RequestInit$1) => Promise<Response$1>;
22886
+ type BingClientOptions = {
22887
+ baseUrl?: string;
22888
+ fetchImpl?: BingFetch;
22889
+ timeoutMs?: number;
22890
+ };
22891
+ declare class BingWebmasterClient {
22892
+ private readonly credentials;
22893
+ readonly authentication: 'api-key' | 'oauth';
22894
+ private readonly baseUrl;
22895
+ private readonly fetchImpl;
22896
+ private readonly timeoutMs;
22897
+ constructor(credentials: BingWebmasterCredentials, options?: BingClientOptions);
22898
+ private request;
22899
+ listSites(): Promise<{
22900
+ sites: BingWebmasterSite[];
22901
+ invalidRows: number;
22902
+ }>;
22903
+ getTraffic(siteUrl: string): Promise<BingRows<BingTrafficRow>>;
22904
+ getCrawlStats(siteUrl: string): Promise<BingRows<BingCrawlRow>>;
22905
+ getQueryStats(siteUrl: string): Promise<BingRows<BingDimensionRow>>;
22906
+ getPageStats(siteUrl: string): Promise<BingRows<BingDimensionRow>>;
22907
+ private getDimensionStats;
22908
+ getLinkCounts(siteUrl: string, page: number): Promise<BingLinkPage<BingLinkCountRow>>;
22909
+ getUrlLinks(siteUrl: string, link: string, page: number): Promise<BingLinkPage<BingUrlLinkRow>>;
22910
+ }
22911
+ //#endregion
22912
+ //#region packages/core/src/bing/analysis.d.ts
22913
+ declare function analyzeBingTraffic(rows: BingTrafficRow[], comparisonDays?: number): {
22914
+ comparisonDays: number;
22915
+ current: {
22916
+ startDate: string;
22917
+ endDate: string;
22918
+ expectedDays: number;
22919
+ observedDays: number;
22920
+ missingDays: number;
22921
+ clicks: number;
22922
+ impressions: number;
22923
+ ctr: number | null;
22924
+ };
22925
+ previous: {
22926
+ startDate: string;
22927
+ endDate: string;
22928
+ expectedDays: number;
22929
+ observedDays: number;
22930
+ missingDays: number;
22931
+ clicks: number;
22932
+ impressions: number;
22933
+ ctr: number | null;
22934
+ };
22935
+ changes: {
22936
+ clicks: number;
22937
+ clicksPercent: number | null;
22938
+ impressions: number;
22939
+ impressionsPercent: number | null;
22940
+ ctrPercentagePoints: number | null;
22941
+ };
22942
+ } | undefined;
22943
+ declare function analyzeBingCrawl(rows: BingCrawlRow[], comparisonDays?: number): {
22944
+ comparisonDays: number;
22945
+ targetDate: string;
22946
+ current: BingCrawlRow;
22947
+ previous: undefined;
22948
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
22949
+ previous: number;
22950
+ current: number;
22951
+ absolute: number;
22952
+ percent: number | null;
22953
+ }>>;
22954
+ } | {
22955
+ comparisonDays: number;
22956
+ targetDate: string;
22957
+ current: BingCrawlRow;
22958
+ previous: BingCrawlRow;
22959
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
22960
+ previous: number;
22961
+ current: number;
22962
+ absolute: number;
22963
+ percent: number | null;
22964
+ }>>;
22965
+ } | undefined;
22966
+ type Aggregate = {
22967
+ value: string;
22968
+ observedWeeks: number;
22969
+ clicks: number;
22970
+ impressions: number;
22971
+ avgClickPosition: number | null;
22972
+ avgImpressionPosition: number | null;
22973
+ };
22974
+ declare function analyzeBingDimensions(rows: BingDimensionRow[], kind: 'query' | 'page'): {
22975
+ kind: "query" | "page";
22976
+ sourceSemantics: string;
22977
+ periods: {
22978
+ weeksPerPeriod: number;
22979
+ currentDates: string[];
22980
+ previousDates: string[];
22981
+ };
22982
+ coverage: {
22983
+ sourceRows: number;
22984
+ currentDimensions: number;
22985
+ previousDimensions: number;
22986
+ matchedDimensions: number;
22987
+ comparableDimensions: number;
22988
+ incompleteMatchedDimensions: number;
22989
+ currentOnlyDimensions: number;
22990
+ previousOnlyDimensions: number;
22991
+ };
22992
+ thresholds: {
22993
+ heuristic: true;
22994
+ opportunityMinImpressions: number;
22995
+ opportunityPositionRange: readonly [4, 20];
22996
+ resultLimit: number;
22997
+ };
22998
+ movements: {
22999
+ value: string;
23000
+ current: Aggregate;
23001
+ previous: Aggregate;
23002
+ changes: {
23003
+ clicks: number;
23004
+ clicksPercent: number | null;
23005
+ impressions: number;
23006
+ impressionsPercent: number | null;
23007
+ };
23008
+ }[];
23009
+ opportunities: Aggregate[];
23010
+ };
23011
+ declare const bingAnalysisDefaults: {
23012
+ readonly comparisonDays: 28;
23013
+ readonly weeklyPeriods: 4;
23014
+ readonly resultLimit: 10;
23015
+ };
23016
+ //#endregion
23017
+ //#region packages/core/src/storage/provider-secrets.d.ts
23018
+ type ProviderSecretSource = 'environment' | 'keychain' | 'file';
23019
+ type ProviderSecret = {
23020
+ value: string;
23021
+ source: ProviderSecretSource;
23022
+ };
23023
+ declare function readProviderSecret(input: {
23024
+ name: string;
23025
+ envVar?: string;
23026
+ env?: NodeJS.ProcessEnv;
23027
+ }): Promise<ProviderSecret | undefined>;
23028
+ declare function writeProviderSecret(name: string, value: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
23029
+ declare function deleteProviderSecret(name: string): Promise<void>;
23030
+ //#endregion
23031
+ //#region packages/core/src/bing/credentials.d.ts
23032
+ declare const BING_API_KEY_SECRET = "bing-api-key";
23033
+ declare const BING_API_KEY_ENV = "SEO_BING_API_KEY";
23034
+ declare function createBingWebmasterClient(input?: {
23035
+ env?: NodeJS.ProcessEnv;
23036
+ }): Promise<{
23037
+ client: BingWebmasterClient;
23038
+ credentialSource: ProviderSecretSource;
23039
+ }>;
23040
+ //#endregion
23041
+ //#region packages/core/src/bing/overview.d.ts
23042
+ type Finding = {
23043
+ code: string;
23044
+ severity: 'info' | 'review' | 'warning';
23045
+ title: string;
23046
+ evidence: Record<string, unknown>;
23047
+ interpretation: string;
23048
+ verification: string;
23049
+ };
23050
+ declare function bingWebmasterOverview(input: {
23051
+ site: string;
23052
+ client?: BingWebmasterClient;
23053
+ credentialSource?: 'environment' | 'keychain' | 'file';
23054
+ }): Promise<{
23055
+ schemaVersion: 2;
23056
+ site: string;
23057
+ generatedAt: string;
23058
+ dataStatus: string;
23059
+ summary: {
23060
+ findings: number;
23061
+ warnings: number;
23062
+ reviewItems: number;
23063
+ };
23064
+ findings: Finding[];
23065
+ outputBudget: {
23066
+ maxFindings: number;
23067
+ maxDailyRowsPerSection: number;
23068
+ maxDailyRowsTotal: number;
23069
+ maxDimensionItemsPerList: number;
23070
+ maxDimensionItemsTotal: number;
23071
+ };
23072
+ provenance: {
23073
+ provider: "bing-webmaster";
23074
+ authentication: "api-key" | "oauth";
23075
+ credentialSource: "file" | "environment" | "keychain";
23076
+ observedAt: string;
23077
+ cached: false;
23078
+ rowLimits: {
23079
+ traffic: number;
23080
+ crawl: number;
23081
+ queries: number;
23082
+ pages: number;
23083
+ };
23084
+ methods: string[];
23085
+ };
23086
+ traffic: {
23087
+ status: "unavailable";
23088
+ warning: string;
23089
+ } | {
23090
+ data: {
23091
+ range: {
23092
+ startDate: string;
23093
+ endDate: string;
23094
+ } | undefined;
23095
+ clicks: number;
23096
+ impressions: number;
23097
+ analysis: {
23098
+ comparisonDays: number;
23099
+ current: {
23100
+ startDate: string;
23101
+ endDate: string;
23102
+ expectedDays: number;
23103
+ observedDays: number;
23104
+ missingDays: number;
23105
+ clicks: number;
23106
+ impressions: number;
23107
+ ctr: number | null;
23108
+ };
23109
+ previous: {
23110
+ startDate: string;
23111
+ endDate: string;
23112
+ expectedDays: number;
23113
+ observedDays: number;
23114
+ missingDays: number;
23115
+ clicks: number;
23116
+ impressions: number;
23117
+ ctr: number | null;
23118
+ };
23119
+ changes: {
23120
+ clicks: number;
23121
+ clicksPercent: number | null;
23122
+ impressions: number;
23123
+ impressionsPercent: number | null;
23124
+ ctrPercentagePoints: number | null;
23125
+ };
23126
+ } | undefined;
23127
+ rows: BingTrafficRow[] & {
23128
+ date: string;
23129
+ }[];
23130
+ invalidRows: number;
23131
+ capped: boolean;
23132
+ returnedRows: number;
23133
+ retainedRows: number;
23134
+ outputSelection: {
23135
+ strategy: "most-recent";
23136
+ availableRows: number;
23137
+ returnedRows: number;
23138
+ omittedRows: number;
23139
+ };
23140
+ };
23141
+ status: "complete";
23142
+ } | {
23143
+ data: {
23144
+ range: {
23145
+ startDate: string;
23146
+ endDate: string;
23147
+ } | undefined;
23148
+ clicks: number;
23149
+ impressions: number;
23150
+ analysis: {
23151
+ comparisonDays: number;
23152
+ current: {
23153
+ startDate: string;
23154
+ endDate: string;
23155
+ expectedDays: number;
23156
+ observedDays: number;
23157
+ missingDays: number;
23158
+ clicks: number;
23159
+ impressions: number;
23160
+ ctr: number | null;
23161
+ };
23162
+ previous: {
23163
+ startDate: string;
23164
+ endDate: string;
23165
+ expectedDays: number;
23166
+ observedDays: number;
23167
+ missingDays: number;
23168
+ clicks: number;
23169
+ impressions: number;
23170
+ ctr: number | null;
23171
+ };
23172
+ changes: {
23173
+ clicks: number;
23174
+ clicksPercent: number | null;
23175
+ impressions: number;
23176
+ impressionsPercent: number | null;
23177
+ ctrPercentagePoints: number | null;
23178
+ };
23179
+ } | undefined;
23180
+ rows: BingTrafficRow[] & {
23181
+ date: string;
23182
+ }[];
23183
+ invalidRows: number;
23184
+ capped: boolean;
23185
+ returnedRows: number;
23186
+ retainedRows: number;
23187
+ outputSelection: {
23188
+ strategy: "most-recent";
23189
+ availableRows: number;
23190
+ returnedRows: number;
23191
+ omittedRows: number;
23192
+ };
23193
+ };
23194
+ status: "partial";
23195
+ warning: string;
23196
+ };
23197
+ crawl: {
23198
+ status: "unavailable";
23199
+ warning: string;
23200
+ } | {
23201
+ data: {
23202
+ range: {
23203
+ startDate: string;
23204
+ endDate: string;
23205
+ } | undefined;
23206
+ latest: BingCrawlRow | undefined;
23207
+ analysis: {
23208
+ comparisonDays: number;
23209
+ targetDate: string;
23210
+ current: BingCrawlRow;
23211
+ previous: undefined;
23212
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23213
+ previous: number;
23214
+ current: number;
23215
+ absolute: number;
23216
+ percent: number | null;
23217
+ }>>;
23218
+ } | {
23219
+ comparisonDays: number;
23220
+ targetDate: string;
23221
+ current: BingCrawlRow;
23222
+ previous: BingCrawlRow;
23223
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23224
+ previous: number;
23225
+ current: number;
23226
+ absolute: number;
23227
+ percent: number | null;
23228
+ }>>;
23229
+ } | undefined;
23230
+ rows: BingCrawlRow[] & {
23231
+ date: string;
23232
+ }[];
23233
+ invalidRows: number;
23234
+ capped: boolean;
23235
+ returnedRows: number;
23236
+ retainedRows: number;
23237
+ outputSelection: {
23238
+ strategy: "most-recent";
23239
+ availableRows: number;
23240
+ returnedRows: number;
23241
+ omittedRows: number;
23242
+ };
23243
+ };
23244
+ status: "complete";
23245
+ } | {
23246
+ data: {
23247
+ range: {
23248
+ startDate: string;
23249
+ endDate: string;
23250
+ } | undefined;
23251
+ latest: BingCrawlRow | undefined;
23252
+ analysis: {
23253
+ comparisonDays: number;
23254
+ targetDate: string;
23255
+ current: BingCrawlRow;
23256
+ previous: undefined;
23257
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23258
+ previous: number;
23259
+ current: number;
23260
+ absolute: number;
23261
+ percent: number | null;
23262
+ }>>;
23263
+ } | {
23264
+ comparisonDays: number;
23265
+ targetDate: string;
23266
+ current: BingCrawlRow;
23267
+ previous: BingCrawlRow;
23268
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23269
+ previous: number;
23270
+ current: number;
23271
+ absolute: number;
23272
+ percent: number | null;
23273
+ }>>;
23274
+ } | undefined;
23275
+ rows: BingCrawlRow[] & {
23276
+ date: string;
23277
+ }[];
23278
+ invalidRows: number;
23279
+ capped: boolean;
23280
+ returnedRows: number;
23281
+ retainedRows: number;
23282
+ outputSelection: {
23283
+ strategy: "most-recent";
23284
+ availableRows: number;
23285
+ returnedRows: number;
23286
+ omittedRows: number;
23287
+ };
23288
+ };
23289
+ status: "partial";
23290
+ warning: string;
23291
+ };
23292
+ queries: {
23293
+ status: "unavailable";
23294
+ warning: string;
23295
+ } | {
23296
+ data: {
23297
+ returnedRows: number;
23298
+ retainedRows: number;
23299
+ invalidRows: number;
23300
+ capped: boolean;
23301
+ range: {
23302
+ startDate: string;
23303
+ endDate: string;
23304
+ } | undefined;
23305
+ analysis: {
23306
+ kind: "query" | "page";
23307
+ sourceSemantics: string;
23308
+ periods: {
23309
+ weeksPerPeriod: number;
23310
+ currentDates: string[];
23311
+ previousDates: string[];
23312
+ };
23313
+ coverage: {
23314
+ sourceRows: number;
23315
+ currentDimensions: number;
23316
+ previousDimensions: number;
23317
+ matchedDimensions: number;
23318
+ comparableDimensions: number;
23319
+ incompleteMatchedDimensions: number;
23320
+ currentOnlyDimensions: number;
23321
+ previousOnlyDimensions: number;
23322
+ };
23323
+ thresholds: {
23324
+ heuristic: true;
23325
+ opportunityMinImpressions: number;
23326
+ opportunityPositionRange: readonly [4, 20];
23327
+ resultLimit: number;
23328
+ };
23329
+ movements: {
23330
+ value: string;
23331
+ current: {
23332
+ value: string;
23333
+ observedWeeks: number;
23334
+ clicks: number;
23335
+ impressions: number;
23336
+ avgClickPosition: number | null;
23337
+ avgImpressionPosition: number | null;
23338
+ };
23339
+ previous: {
23340
+ value: string;
23341
+ observedWeeks: number;
23342
+ clicks: number;
23343
+ impressions: number;
23344
+ avgClickPosition: number | null;
23345
+ avgImpressionPosition: number | null;
23346
+ };
23347
+ changes: {
23348
+ clicks: number;
23349
+ clicksPercent: number | null;
23350
+ impressions: number;
23351
+ impressionsPercent: number | null;
23352
+ };
23353
+ }[];
23354
+ opportunities: {
23355
+ value: string;
23356
+ observedWeeks: number;
23357
+ clicks: number;
23358
+ impressions: number;
23359
+ avgClickPosition: number | null;
23360
+ avgImpressionPosition: number | null;
23361
+ }[];
23362
+ } | undefined;
23363
+ };
23364
+ status: "complete";
23365
+ } | {
23366
+ data: {
23367
+ returnedRows: number;
23368
+ retainedRows: number;
23369
+ invalidRows: number;
23370
+ capped: boolean;
23371
+ range: {
23372
+ startDate: string;
23373
+ endDate: string;
23374
+ } | undefined;
23375
+ analysis: {
23376
+ kind: "query" | "page";
23377
+ sourceSemantics: string;
23378
+ periods: {
23379
+ weeksPerPeriod: number;
23380
+ currentDates: string[];
23381
+ previousDates: string[];
23382
+ };
23383
+ coverage: {
23384
+ sourceRows: number;
23385
+ currentDimensions: number;
23386
+ previousDimensions: number;
23387
+ matchedDimensions: number;
23388
+ comparableDimensions: number;
23389
+ incompleteMatchedDimensions: number;
23390
+ currentOnlyDimensions: number;
23391
+ previousOnlyDimensions: number;
23392
+ };
23393
+ thresholds: {
23394
+ heuristic: true;
23395
+ opportunityMinImpressions: number;
23396
+ opportunityPositionRange: readonly [4, 20];
23397
+ resultLimit: number;
23398
+ };
23399
+ movements: {
23400
+ value: string;
23401
+ current: {
23402
+ value: string;
23403
+ observedWeeks: number;
23404
+ clicks: number;
23405
+ impressions: number;
23406
+ avgClickPosition: number | null;
23407
+ avgImpressionPosition: number | null;
23408
+ };
23409
+ previous: {
23410
+ value: string;
23411
+ observedWeeks: number;
23412
+ clicks: number;
23413
+ impressions: number;
23414
+ avgClickPosition: number | null;
23415
+ avgImpressionPosition: number | null;
23416
+ };
23417
+ changes: {
23418
+ clicks: number;
23419
+ clicksPercent: number | null;
23420
+ impressions: number;
23421
+ impressionsPercent: number | null;
23422
+ };
23423
+ }[];
23424
+ opportunities: {
23425
+ value: string;
23426
+ observedWeeks: number;
23427
+ clicks: number;
23428
+ impressions: number;
23429
+ avgClickPosition: number | null;
23430
+ avgImpressionPosition: number | null;
23431
+ }[];
23432
+ } | undefined;
23433
+ };
23434
+ status: "partial";
23435
+ warning: string;
23436
+ };
23437
+ pages: {
23438
+ status: "unavailable";
23439
+ warning: string;
23440
+ } | {
23441
+ data: {
23442
+ returnedRows: number;
23443
+ retainedRows: number;
23444
+ invalidRows: number;
23445
+ capped: boolean;
23446
+ range: {
23447
+ startDate: string;
23448
+ endDate: string;
23449
+ } | undefined;
23450
+ analysis: {
23451
+ kind: "query" | "page";
23452
+ sourceSemantics: string;
23453
+ periods: {
23454
+ weeksPerPeriod: number;
23455
+ currentDates: string[];
23456
+ previousDates: string[];
23457
+ };
23458
+ coverage: {
23459
+ sourceRows: number;
23460
+ currentDimensions: number;
23461
+ previousDimensions: number;
23462
+ matchedDimensions: number;
23463
+ comparableDimensions: number;
23464
+ incompleteMatchedDimensions: number;
23465
+ currentOnlyDimensions: number;
23466
+ previousOnlyDimensions: number;
23467
+ };
23468
+ thresholds: {
23469
+ heuristic: true;
23470
+ opportunityMinImpressions: number;
23471
+ opportunityPositionRange: readonly [4, 20];
23472
+ resultLimit: number;
23473
+ };
23474
+ movements: {
23475
+ value: string;
23476
+ current: {
23477
+ value: string;
23478
+ observedWeeks: number;
23479
+ clicks: number;
23480
+ impressions: number;
23481
+ avgClickPosition: number | null;
23482
+ avgImpressionPosition: number | null;
23483
+ };
23484
+ previous: {
23485
+ value: string;
23486
+ observedWeeks: number;
23487
+ clicks: number;
23488
+ impressions: number;
23489
+ avgClickPosition: number | null;
23490
+ avgImpressionPosition: number | null;
23491
+ };
23492
+ changes: {
23493
+ clicks: number;
23494
+ clicksPercent: number | null;
23495
+ impressions: number;
23496
+ impressionsPercent: number | null;
23497
+ };
23498
+ }[];
23499
+ opportunities: {
23500
+ value: string;
23501
+ observedWeeks: number;
23502
+ clicks: number;
23503
+ impressions: number;
23504
+ avgClickPosition: number | null;
23505
+ avgImpressionPosition: number | null;
23506
+ }[];
23507
+ } | undefined;
23508
+ };
23509
+ status: "complete";
23510
+ } | {
23511
+ data: {
23512
+ returnedRows: number;
23513
+ retainedRows: number;
23514
+ invalidRows: number;
23515
+ capped: boolean;
23516
+ range: {
23517
+ startDate: string;
23518
+ endDate: string;
23519
+ } | undefined;
23520
+ analysis: {
23521
+ kind: "query" | "page";
23522
+ sourceSemantics: string;
23523
+ periods: {
23524
+ weeksPerPeriod: number;
23525
+ currentDates: string[];
23526
+ previousDates: string[];
23527
+ };
23528
+ coverage: {
23529
+ sourceRows: number;
23530
+ currentDimensions: number;
23531
+ previousDimensions: number;
23532
+ matchedDimensions: number;
23533
+ comparableDimensions: number;
23534
+ incompleteMatchedDimensions: number;
23535
+ currentOnlyDimensions: number;
23536
+ previousOnlyDimensions: number;
23537
+ };
23538
+ thresholds: {
23539
+ heuristic: true;
23540
+ opportunityMinImpressions: number;
23541
+ opportunityPositionRange: readonly [4, 20];
23542
+ resultLimit: number;
23543
+ };
23544
+ movements: {
23545
+ value: string;
23546
+ current: {
23547
+ value: string;
23548
+ observedWeeks: number;
23549
+ clicks: number;
23550
+ impressions: number;
23551
+ avgClickPosition: number | null;
23552
+ avgImpressionPosition: number | null;
23553
+ };
23554
+ previous: {
23555
+ value: string;
23556
+ observedWeeks: number;
23557
+ clicks: number;
23558
+ impressions: number;
23559
+ avgClickPosition: number | null;
23560
+ avgImpressionPosition: number | null;
23561
+ };
23562
+ changes: {
23563
+ clicks: number;
23564
+ clicksPercent: number | null;
23565
+ impressions: number;
23566
+ impressionsPercent: number | null;
23567
+ };
23568
+ }[];
23569
+ opportunities: {
23570
+ value: string;
23571
+ observedWeeks: number;
23572
+ clicks: number;
23573
+ impressions: number;
23574
+ avgClickPosition: number | null;
23575
+ avgImpressionPosition: number | null;
23576
+ }[];
23577
+ } | undefined;
23578
+ };
23579
+ status: "partial";
23580
+ warning: string;
23581
+ };
23582
+ caveats: string[];
23583
+ }>;
23584
+ //#endregion
22777
23585
  //#region packages/core/src/brand.d.ts
22778
23586
  declare function deriveBrandTerms(input: {
22779
23587
  id?: string;
@@ -22824,14 +23632,17 @@ type ClientProfileInput = {
22824
23632
  watchUrls?: string[];
22825
23633
  brandTerms?: string[];
22826
23634
  analytics?: ClientProfile['analytics'];
23635
+ searchEngines?: ClientProfile['searchEngines'];
22827
23636
  reportDay?: number;
22828
23637
  technicalWeekday?: number;
22829
23638
  isDefault?: boolean;
22830
23639
  };
22831
23640
  declare function googleAnalyticsPropertyId(client: Pick<ClientProfile, 'analytics'> | undefined): string | undefined;
23641
+ declare function bingWebmasterSiteUrl(client: Pick<ClientProfile, 'searchEngines'> | undefined): string | undefined;
22832
23642
  declare function listClients(): ClientProfile[];
22833
23643
  declare function getClient(idOrName?: string): ClientProfile | undefined;
22834
23644
  declare function saveClient(input: ClientProfileInput): ClientProfile;
23645
+ declare function setClientBingSite(idOrName: string, siteUrl: string): ClientProfile;
22835
23646
  declare function deleteClient(idOrName: string): boolean;
22836
23647
  declare function setDefaultClient(idOrName: string): ClientProfile;
22837
23648
  //#endregion
@@ -22872,6 +23683,21 @@ declare function refreshPrioritiesCsvFiles(report: WorkflowReport<{
22872
23683
  }>): CsvFile[];
22873
23684
  declare function pseoCsvFiles(report: PseoAuditReport): CsvFile[];
22874
23685
  //#endregion
23686
+ //#region packages/core/src/export/report-html.d.ts
23687
+ type ReportHtmlView = 'client' | 'analyst';
23688
+ type ReportHtmlSection = {
23689
+ title: string;
23690
+ summary?: string;
23691
+ items: string[];
23692
+ };
23693
+ type ReportHtmlInput = {
23694
+ report: ReportNarrative;
23695
+ title?: string;
23696
+ view?: ReportHtmlView;
23697
+ additionalSections?: ReportHtmlSection[];
23698
+ };
23699
+ declare function renderReportHtml(input: ReportHtmlInput): string;
23700
+ //#endregion
22875
23701
  //#region packages/core/src/export/update-postmortem.d.ts
22876
23702
  type PostmortemCsvReport = WorkflowReport<{
22877
23703
  update: {
@@ -23055,6 +23881,181 @@ declare function finalGscDateRange(days?: number, now?: Date): {
23055
23881
  declare function normalizeHttpUrl(value: string): string;
23056
23882
  declare function assertUrlMatchesGscProperty(property: string, value: string): string;
23057
23883
  //#endregion
23884
+ //#region packages/core/src/indexnow/types.d.ts
23885
+ declare const INDEXNOW_ENDPOINT = "https://api.indexnow.org/indexnow";
23886
+ declare const INDEXNOW_MAX_URLS = 1000;
23887
+ declare const INDEXNOW_KEY_ENV = "SEO_INDEXNOW_KEY";
23888
+ declare const INDEXNOW_KEYS_SECRET = "indexnow-keys";
23889
+ type IndexNowKey = {
23890
+ host: string;
23891
+ key: string;
23892
+ keyLocation: string;
23893
+ createdAt: string;
23894
+ };
23895
+ type IndexNowKeySource = 'environment' | 'keychain' | 'file';
23896
+ type IndexNowSubmission = {
23897
+ schemaVersion: 1;
23898
+ generatedAt: string;
23899
+ dryRun: boolean;
23900
+ status: 'validated' | 'submitted' | 'pending-validation';
23901
+ endpoint: typeof INDEXNOW_ENDPOINT;
23902
+ host: string;
23903
+ keyLocation: string;
23904
+ submittedUrls: number;
23905
+ responseStatus?: 200 | 202;
23906
+ caveats: string[];
23907
+ };
23908
+ //#endregion
23909
+ //#region packages/core/src/indexnow/client.d.ts
23910
+ type IndexNowFetch = (url: string, init?: RequestInit$1) => Promise<Response$1>;
23911
+ declare function verifyIndexNowKey(input: {
23912
+ record: IndexNowKey;
23913
+ fetchImpl?: IndexNowFetch;
23914
+ timeoutMs?: number;
23915
+ }): Promise<{
23916
+ verified: boolean;
23917
+ status: number;
23918
+ keyLocation: string;
23919
+ }>;
23920
+ declare function submitIndexNow(input: {
23921
+ record: IndexNowKey;
23922
+ urls: string[];
23923
+ dryRun?: boolean;
23924
+ fetchImpl?: IndexNowFetch;
23925
+ now?: Date;
23926
+ }): Promise<IndexNowSubmission>;
23927
+ //#endregion
23928
+ //#region packages/core/src/indexnow/keys.d.ts
23929
+ declare function parseIndexNowSite(value: string): URL;
23930
+ declare function validateIndexNowKey(value: string): string;
23931
+ declare function createIndexNowKey(): string;
23932
+ declare function createIndexNowKeyRecord(input: {
23933
+ site: string;
23934
+ key?: string;
23935
+ keyLocation?: string;
23936
+ now?: Date;
23937
+ }): IndexNowKey;
23938
+ declare function validateIndexNowKeyRecord(record: IndexNowKey): IndexNowKey;
23939
+ declare function saveIndexNowKey(record: IndexNowKey): Promise<Exclude<IndexNowKeySource, 'environment'>>;
23940
+ declare function resolveIndexNowKey(input: {
23941
+ site: string;
23942
+ env?: NodeJS.ProcessEnv;
23943
+ }): Promise<{
23944
+ record: IndexNowKey;
23945
+ source: IndexNowKeySource;
23946
+ }>;
23947
+ declare function listIndexNowKeys(): Promise<Array<Omit<IndexNowKey, 'key'>>>;
23948
+ declare function removeIndexNowKey(siteValue: string): Promise<boolean>;
23949
+ //#endregion
23950
+ //#region packages/core/src/links/types.d.ts
23951
+ type LinkEvidenceProvider = 'bing-webmaster' | 'csv-import' | 'json-import' | 'jsonl-import';
23952
+ type LinkEvidenceRow = {
23953
+ sourceUrl: string;
23954
+ sourceDomain: string;
23955
+ targetUrl: string;
23956
+ anchorText?: string;
23957
+ firstSeenAt?: string;
23958
+ lastSeenAt?: string;
23959
+ nofollow?: boolean;
23960
+ };
23961
+ type LinkTargetCount = {
23962
+ targetUrl: string;
23963
+ providerReportedLinks?: number;
23964
+ observedLinks: number;
23965
+ };
23966
+ type LinkEvidenceProvenance = {
23967
+ provider: LinkEvidenceProvider;
23968
+ observedAt: string;
23969
+ cached: false;
23970
+ suppliedRows: number;
23971
+ validRows: number;
23972
+ invalidRows: number;
23973
+ duplicateRows: number;
23974
+ capped: boolean;
23975
+ rowLimit: number;
23976
+ completeness: 'complete' | 'partial' | 'unknown';
23977
+ file?: {
23978
+ path: string;
23979
+ format: 'csv' | 'json' | 'jsonl';
23980
+ bytesRead: number;
23981
+ fileBytes: number;
23982
+ };
23983
+ providerRequests?: {
23984
+ methods: string[];
23985
+ targetPagesRequested: number;
23986
+ detailPagesRequested: number;
23987
+ maxConcurrentRequests: number;
23988
+ };
23989
+ providerCoverage?: {
23990
+ targetCountRows: {
23991
+ returnedRows: number;
23992
+ retainedRows: number;
23993
+ invalidRows: number;
23994
+ };
23995
+ detailRows: {
23996
+ returnedRows: number;
23997
+ retainedRows: number;
23998
+ invalidRows: number;
23999
+ };
24000
+ };
24001
+ };
24002
+ type CollectedLinkEvidence = {
24003
+ rows: LinkEvidenceRow[];
24004
+ targetCounts: LinkTargetCount[];
24005
+ provenance: LinkEvidenceProvenance;
24006
+ warnings: string[];
24007
+ };
24008
+ //#endregion
24009
+ //#region packages/core/src/links/bing.d.ts
24010
+ declare function collectBingLinkEvidence(input: {
24011
+ site: string;
24012
+ client?: BingWebmasterClient;
24013
+ targetLimit?: number;
24014
+ detailPagesPerTarget?: number;
24015
+ rowLimit?: number;
24016
+ }): Promise<CollectedLinkEvidence>;
24017
+ //#endregion
24018
+ //#region packages/core/src/links/import.d.ts
24019
+ type ImportFormat = 'csv' | 'json' | 'jsonl';
24020
+ declare function importLinkEvidence(input: {
24021
+ file: string;
24022
+ format?: ImportFormat;
24023
+ rowLimit?: number;
24024
+ }): Promise<CollectedLinkEvidence>;
24025
+ //#endregion
24026
+ //#region packages/core/src/links/normalize.d.ts
24027
+ type RawLinkEvidenceRow = Record<string, unknown>;
24028
+ declare function normalizeLinkEvidenceRow(raw: RawLinkEvidenceRow): LinkEvidenceRow | undefined;
24029
+ declare function linkEvidenceKey(row: LinkEvidenceRow): string;
24030
+ declare function compareLinkEvidence(a: LinkEvidenceRow, b: LinkEvidenceRow): number;
24031
+ //#endregion
24032
+ //#region packages/core/src/links/report.d.ts
24033
+ declare function linkEvidenceReport(input: {
24034
+ evidence: CollectedLinkEvidence;
24035
+ limit?: number;
24036
+ }): {
24037
+ schemaVersion: 1;
24038
+ generatedAt: string;
24039
+ dataStatus: "partial" | "complete";
24040
+ summary: {
24041
+ observedLinks: number;
24042
+ referringDomains: number;
24043
+ targetPages: number;
24044
+ providerTargetPages: number;
24045
+ };
24046
+ provenance: LinkEvidenceProvenance;
24047
+ selection: {
24048
+ availableRows: number;
24049
+ returnedRows: number;
24050
+ omittedRows: number;
24051
+ limit: number;
24052
+ };
24053
+ targetCounts: LinkTargetCount[];
24054
+ links: LinkEvidenceRow[];
24055
+ warnings: string[];
24056
+ caveats: string[];
24057
+ };
24058
+ //#endregion
23058
24059
  //#region packages/core/src/logger.d.ts
23059
24060
  declare function createLogger(runId: string): pino.Logger;
23060
24061
  declare function makeRunId(): string;
@@ -23070,6 +24071,7 @@ interface SeoCliPaths {
23070
24071
  configFile: string;
23071
24072
  tokensFile: string;
23072
24073
  oauthClientFile: string;
24074
+ providerSecretsFile: string;
23073
24075
  telemetryStateFile: string;
23074
24076
  cacheDbFile: string;
23075
24077
  }
@@ -23156,6 +24158,163 @@ declare class JsonFileStorageAdapter implements StorageAdapter {
23156
24158
  }
23157
24159
  declare const localCredentialsProvider: LocalCredentialsProvider;
23158
24160
  //#endregion
24161
+ //#region packages/core/src/server-logs/types.d.ts
24162
+ type ServerLogFormat = 'combined' | 'jsonl';
24163
+ type CrawlerCategory = 'search' | 'ai';
24164
+ type ServerLogRecord = {
24165
+ timestamp: string;
24166
+ method: string;
24167
+ path: string;
24168
+ status: number;
24169
+ bytes?: number;
24170
+ userAgent?: string;
24171
+ crawler?: {
24172
+ family: string;
24173
+ category: CrawlerCategory;
24174
+ };
24175
+ };
24176
+ type StatusBreakdown = {
24177
+ success: number;
24178
+ redirect: number;
24179
+ clientError: number;
24180
+ serverError: number;
24181
+ other: number;
24182
+ };
24183
+ type CrawlerSummary = StatusBreakdown & {
24184
+ family: string;
24185
+ category: CrawlerCategory;
24186
+ requests: number;
24187
+ lastSeenAt: string;
24188
+ };
24189
+ type CrawlerPathSummary = StatusBreakdown & {
24190
+ family: string;
24191
+ category: CrawlerCategory;
24192
+ path: string;
24193
+ requests: number;
24194
+ lastSeenAt: string;
24195
+ };
24196
+ type ServerLogEvidence = {
24197
+ summary: {
24198
+ suppliedRows: number;
24199
+ parsedRows: number;
24200
+ invalidRows: number;
24201
+ crawlerRows: number;
24202
+ nonCrawlerRows: number;
24203
+ responseBytes: number;
24204
+ firstSeenAt?: string;
24205
+ lastSeenAt?: string;
24206
+ };
24207
+ statusCodes: Array<{
24208
+ status: number;
24209
+ requests: number;
24210
+ }>;
24211
+ crawlers: CrawlerSummary[];
24212
+ crawlerPaths: CrawlerPathSummary[];
24213
+ provenance: {
24214
+ source: 'local-server-log';
24215
+ observedAt: string;
24216
+ cached: false;
24217
+ file: {
24218
+ path: string;
24219
+ format: ServerLogFormat;
24220
+ bytesRead: number;
24221
+ fileBytes: number;
24222
+ };
24223
+ limits: {
24224
+ rowLimit: number;
24225
+ pathLimit: number;
24226
+ byteLimit: number;
24227
+ maxLineBytes: number;
24228
+ };
24229
+ coverage: {
24230
+ fileReadCompletely: boolean;
24231
+ rowsCapped: boolean;
24232
+ bytesCapped: boolean;
24233
+ pathsCapped: boolean;
24234
+ untrackedCrawlerPathRows: number;
24235
+ };
24236
+ completeness: 'complete' | 'partial';
24237
+ };
24238
+ warnings: string[];
24239
+ };
24240
+ //#endregion
24241
+ //#region packages/core/src/server-logs/import.d.ts
24242
+ declare function importServerLog(input: {
24243
+ file: string;
24244
+ format?: ServerLogFormat;
24245
+ rowLimit?: number;
24246
+ pathLimit?: number;
24247
+ }): Promise<ServerLogEvidence>;
24248
+ //#endregion
24249
+ //#region packages/core/src/server-logs/parse.d.ts
24250
+ declare function classifyCrawler(userAgent?: string): {
24251
+ family: string;
24252
+ category: CrawlerCategory;
24253
+ } | undefined;
24254
+ declare function parseCombinedLogLine(line: string): ServerLogRecord | undefined;
24255
+ declare function parseJsonLogLine(line: string): ServerLogRecord | undefined;
24256
+ declare function emptyStatusBreakdown(): StatusBreakdown;
24257
+ declare function addStatus(breakdown: StatusBreakdown, status: number): void;
24258
+ //#endregion
24259
+ //#region packages/core/src/server-logs/report.d.ts
24260
+ declare function serverLogReport(input: {
24261
+ evidence: ServerLogEvidence;
24262
+ limit?: number;
24263
+ }): {
24264
+ schemaVersion: 1;
24265
+ generatedAt: string;
24266
+ dataStatus: "partial" | "complete";
24267
+ summary: {
24268
+ suppliedRows: number;
24269
+ parsedRows: number;
24270
+ invalidRows: number;
24271
+ crawlerRows: number;
24272
+ nonCrawlerRows: number;
24273
+ responseBytes: number;
24274
+ firstSeenAt?: string;
24275
+ lastSeenAt?: string;
24276
+ };
24277
+ statusCodes: {
24278
+ status: number;
24279
+ requests: number;
24280
+ }[];
24281
+ crawlers: CrawlerSummary[];
24282
+ crawlerPaths: CrawlerPathSummary[];
24283
+ selection: {
24284
+ availableCrawlerPaths: number;
24285
+ returnedCrawlerPaths: number;
24286
+ omittedCrawlerPaths: number;
24287
+ limit: number;
24288
+ };
24289
+ provenance: {
24290
+ source: "local-server-log";
24291
+ observedAt: string;
24292
+ cached: false;
24293
+ file: {
24294
+ path: string;
24295
+ format: ServerLogFormat;
24296
+ bytesRead: number;
24297
+ fileBytes: number;
24298
+ };
24299
+ limits: {
24300
+ rowLimit: number;
24301
+ pathLimit: number;
24302
+ byteLimit: number;
24303
+ maxLineBytes: number;
24304
+ };
24305
+ coverage: {
24306
+ fileReadCompletely: boolean;
24307
+ rowsCapped: boolean;
24308
+ bytesCapped: boolean;
24309
+ pathsCapped: boolean;
24310
+ untrackedCrawlerPathRows: number;
24311
+ };
24312
+ completeness: "complete" | "partial";
24313
+ };
24314
+ warnings: string[];
24315
+ caveats: string[];
24316
+ };
24317
+ //#endregion
23159
24318
  //#region packages/core/src/storage/config.d.ts
23160
24319
  type TokenStorageMode = 'keychain' | 'file';
23161
24320
  type TokenStorageStatus = {
@@ -23219,7 +24378,7 @@ declare const TELEMETRY_TIMEOUT_MS = 2000;
23219
24378
  declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
23220
24379
  declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
23221
24380
  declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "unknown"];
23222
- declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "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-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"];
24381
+ 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"];
23223
24382
  type TelemetryEvent = (typeof TELEMETRY_EVENTS)[number];
23224
24383
  type TelemetryAgent = (typeof TELEMETRY_AGENTS)[number];
23225
24384
  type TelemetryErrorCategory = (typeof TELEMETRY_ERROR_CATEGORIES)[number];
@@ -23294,5 +24453,5 @@ declare function isoDate(daysAgo?: number): string;
23294
24453
  //#region packages/core/src/version.d.ts
23295
24454
  declare const SEO_VERSION: string;
23296
24455
  //#endregion
23297
- 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, BROWSER_USER_AGENT, BacklinkProvider, 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, 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 CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, 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, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, 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, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, 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, 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, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, 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, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, 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, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, boundedSitemapInventory, buildOkfBundle, buildPseoAuditReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, 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, 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, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, noteCacheWrite, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, 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, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, sessionSourceInListFilter, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateOkfFiles, verifyQueryContent, workflowPresentation, writeConfig, writeOauthClient, writeTokens, xRobotsDirectives };
24456
+ 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 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 };
23298
24457
  //# sourceMappingURL=index.d.ts.map