seo 0.15.2 → 0.16.1
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/cli.js +84 -84
- package/dist/cli.js.map +1 -1
- package/dist/{dist-DOJoZZ9W.js → dist-BZ5-V3qL.js} +1 -1
- package/dist/{dist-Dpl5hSMM.js → dist-CqzyPI3J.js} +140 -136
- package/dist/dist-CqzyPI3J.js.map +1 -0
- package/dist/{esm-Dt4JJZ0P.js → esm-Cvmg0qhZ.js} +2 -2
- package/dist/{esm-Dt4JJZ0P.js.map → esm-Cvmg0qhZ.js.map} +1 -1
- package/dist/index.d.ts +108 -46
- package/dist/index.js +1664 -807
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +1223 -372
- package/dist/mcp.js.map +1 -1
- package/package.json +1 -1
- package/skills/seo/SKILL.md +10 -1
- package/dist/dist-Dpl5hSMM.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -198,7 +198,7 @@ export interface PageFetchDiagnostics {
|
|
|
198
198
|
};
|
|
199
199
|
documentDifference?: RenderingDocumentDifference;
|
|
200
200
|
browser?: {
|
|
201
|
-
source: 'environment' | 'playwright-cache' | 'system';
|
|
201
|
+
source: 'environment' | 'playwright-cache' | 'agent-browser-cache' | 'system';
|
|
202
202
|
product: string;
|
|
203
203
|
version?: string;
|
|
204
204
|
};
|
|
@@ -680,6 +680,19 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
680
680
|
readonly evidenceFields: ["page.wordCount", "page.contentSample", "page.outgoingInternalCount", "page.fetchDiagnostics.rendering"];
|
|
681
681
|
readonly suggestedCommands: ["seo crawl <url> --max-pages 1 --json"];
|
|
682
682
|
};
|
|
683
|
+
}, {
|
|
684
|
+
readonly id: "crawl_single_page_reach";
|
|
685
|
+
readonly title: "Crawl could reach only the start page";
|
|
686
|
+
readonly category: "links";
|
|
687
|
+
readonly defaultSeverity: "high";
|
|
688
|
+
readonly whyItMatters: "The start page had no crawlable internal links and no sitemap returned URLs, so the crawl checked one page. Every other finding in this report covers that page only. The page probably builds its links with JavaScript.";
|
|
689
|
+
readonly howToFix: "Rerun with `--rendering on` so the crawler reads the links a browser sees, or pass the pages to check with `--mode list`. For crawlers that do not run JavaScript, put plain `<a href>` links in the initial HTML and publish a sitemap.";
|
|
690
|
+
readonly impactIfIgnored: "Crawlers and audits that do not run JavaScript can find only this page, so the rest of the site stays unchecked and harder to discover.";
|
|
691
|
+
readonly howToVerify: "Rerun the crawl and confirm it retains more than one page and the start page reports internal links.";
|
|
692
|
+
readonly agentHints: {
|
|
693
|
+
readonly evidenceFields: ["page.outgoingInternalCount", "report.sitemapDiscovery.urlsReturned", "page.fetchDiagnostics.rendering"];
|
|
694
|
+
readonly suggestedCommands: ["seo crawl <url> --rendering on --json", "seo crawl --mode list --urls <url>,<url> --json"];
|
|
695
|
+
};
|
|
683
696
|
}, {
|
|
684
697
|
readonly id: "soft_404";
|
|
685
698
|
readonly title: "Unknown URLs return a successful response";
|
|
@@ -688,7 +701,7 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
688
701
|
readonly whyItMatters: "Known-nonexistent URLs returned a successful response or redirected to another successful page. Search engines and users cannot reliably distinguish missing content from a real page.";
|
|
689
702
|
readonly howToFix: "Return 404 or 410 for missing URLs. If a replacement exists, redirect only the specific retired URL to its closest relevant replacement rather than sending every unknown path to a generic page.";
|
|
690
703
|
readonly impactIfIgnored: "Missing URLs can remain in crawl queues, waste crawl attention, and create confusing search or monitoring evidence.";
|
|
691
|
-
readonly howToVerify: "Request several
|
|
704
|
+
readonly howToVerify: "Request several made-up paths, including one at the site root and one nested path, and confirm each returns 404 or 410 without redirecting to a generic successful page.";
|
|
692
705
|
readonly agentHints: {
|
|
693
706
|
readonly evidenceFields: ["report.siteChecks.soft404"];
|
|
694
707
|
readonly suggestedCommands: ["seo crawl <url> --json"];
|
|
@@ -2818,7 +2831,7 @@ export declare function fetchSitemapUrls(input: {
|
|
|
2818
2831
|
limit?: number;
|
|
2819
2832
|
maxNested?: number;
|
|
2820
2833
|
}): Promise<SitemapFetchResult>;
|
|
2821
|
-
export declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
|
|
2834
|
+
export declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "cdn-utility-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "query-variant-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
|
|
2822
2835
|
export type CrawlSkipReason = (typeof CRAWL_SKIP_REASONS)[number];
|
|
2823
2836
|
export type CrawlSkipImpact = 'coverage-affecting' | 'non-impacting';
|
|
2824
2837
|
export type CrawlSkipReasonCount = {
|
|
@@ -3254,6 +3267,8 @@ export declare function reviewObservations(report: CrawlReport, filters?: Omit<T
|
|
|
3254
3267
|
export type CrawlOutputFormat = 'pretty' | 'json' | 'csv' | 'html' | 'markdown' | 'junit';
|
|
3255
3268
|
export declare function renderCrawlCsv(report: CrawlReport): string;
|
|
3256
3269
|
export declare function renderCrawlPagesCsv(report: CrawlReport): string;
|
|
3270
|
+
/** The caveat a report must lead with when the crawl read too little. */
|
|
3271
|
+
export declare function crawlCoverageCaveat(report: CrawlReport): string | undefined;
|
|
3257
3272
|
export declare function renderCrawlPretty(report: CrawlReport, fixes?: TopFix[]): string;
|
|
3258
3273
|
export declare function renderCrawlJunit(report: CrawlReport): string;
|
|
3259
3274
|
export declare function renderCrawlHtml(report: CrawlReport, fixes?: TopFix[]): string;
|
|
@@ -3568,6 +3583,7 @@ export declare const crawlPageSnapshotSchema: z.ZodObject<{
|
|
|
3568
3583
|
source: z.ZodEnum<{
|
|
3569
3584
|
environment: "environment";
|
|
3570
3585
|
"playwright-cache": "playwright-cache";
|
|
3586
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
3571
3587
|
system: "system";
|
|
3572
3588
|
}>;
|
|
3573
3589
|
product: z.ZodString;
|
|
@@ -3668,10 +3684,10 @@ export declare const crawlPageSnapshotSchema: z.ZodObject<{
|
|
|
3668
3684
|
raw: z.ZodString;
|
|
3669
3685
|
resolved: z.ZodOptional<z.ZodString>;
|
|
3670
3686
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
3687
|
+
"invalid-url": "invalid-url";
|
|
3671
3688
|
"outside-head": "outside-head";
|
|
3672
3689
|
"alternate-qualifier": "alternate-qualifier";
|
|
3673
3690
|
fragment: "fragment";
|
|
3674
|
-
"invalid-url": "invalid-url";
|
|
3675
3691
|
"non-http-url": "non-http-url";
|
|
3676
3692
|
}>>;
|
|
3677
3693
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -4305,15 +4321,17 @@ export declare const crawlReportSummarySchema: z.ZodObject<{
|
|
|
4305
4321
|
skippedUrls: z.ZodNumber;
|
|
4306
4322
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
4307
4323
|
reason: z.ZodEnum<{
|
|
4308
|
-
"invalid-url": "invalid-url";
|
|
4309
|
-
"robots-disallowed": "robots-disallowed";
|
|
4310
|
-
"origin-backpressure": "origin-backpressure";
|
|
4311
4324
|
"asset-url": "asset-url";
|
|
4325
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
4312
4326
|
"configured-exclusion": "configured-exclusion";
|
|
4313
4327
|
"duplicate-normalization": "duplicate-normalization";
|
|
4328
|
+
"invalid-url": "invalid-url";
|
|
4314
4329
|
"memory-pressure": "memory-pressure";
|
|
4315
4330
|
"off-origin": "off-origin";
|
|
4331
|
+
"origin-backpressure": "origin-backpressure";
|
|
4316
4332
|
"queue-safety-limit": "queue-safety-limit";
|
|
4333
|
+
"query-variant-limit": "query-variant-limit";
|
|
4334
|
+
"robots-disallowed": "robots-disallowed";
|
|
4317
4335
|
"robots-uncertain": "robots-uncertain";
|
|
4318
4336
|
"legacy-unclassified": "legacy-unclassified";
|
|
4319
4337
|
}>;
|
|
@@ -4471,15 +4489,17 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4471
4489
|
skippedUrls: z.ZodNumber;
|
|
4472
4490
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
4473
4491
|
reason: z.ZodEnum<{
|
|
4474
|
-
"invalid-url": "invalid-url";
|
|
4475
|
-
"robots-disallowed": "robots-disallowed";
|
|
4476
|
-
"origin-backpressure": "origin-backpressure";
|
|
4477
4492
|
"asset-url": "asset-url";
|
|
4493
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
4478
4494
|
"configured-exclusion": "configured-exclusion";
|
|
4479
4495
|
"duplicate-normalization": "duplicate-normalization";
|
|
4496
|
+
"invalid-url": "invalid-url";
|
|
4480
4497
|
"memory-pressure": "memory-pressure";
|
|
4481
4498
|
"off-origin": "off-origin";
|
|
4499
|
+
"origin-backpressure": "origin-backpressure";
|
|
4482
4500
|
"queue-safety-limit": "queue-safety-limit";
|
|
4501
|
+
"query-variant-limit": "query-variant-limit";
|
|
4502
|
+
"robots-disallowed": "robots-disallowed";
|
|
4483
4503
|
"robots-uncertain": "robots-uncertain";
|
|
4484
4504
|
"legacy-unclassified": "legacy-unclassified";
|
|
4485
4505
|
}>;
|
|
@@ -4751,6 +4771,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4751
4771
|
source: z.ZodEnum<{
|
|
4752
4772
|
environment: "environment";
|
|
4753
4773
|
"playwright-cache": "playwright-cache";
|
|
4774
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
4754
4775
|
system: "system";
|
|
4755
4776
|
}>;
|
|
4756
4777
|
product: z.ZodString;
|
|
@@ -4851,10 +4872,10 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4851
4872
|
raw: z.ZodString;
|
|
4852
4873
|
resolved: z.ZodOptional<z.ZodString>;
|
|
4853
4874
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
4875
|
+
"invalid-url": "invalid-url";
|
|
4854
4876
|
"outside-head": "outside-head";
|
|
4855
4877
|
"alternate-qualifier": "alternate-qualifier";
|
|
4856
4878
|
fragment: "fragment";
|
|
4857
|
-
"invalid-url": "invalid-url";
|
|
4858
4879
|
"non-http-url": "non-http-url";
|
|
4859
4880
|
}>>;
|
|
4860
4881
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -5786,15 +5807,17 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5786
5807
|
skippedUrls: z.ZodNumber;
|
|
5787
5808
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
5788
5809
|
reason: z.ZodEnum<{
|
|
5789
|
-
"invalid-url": "invalid-url";
|
|
5790
|
-
"robots-disallowed": "robots-disallowed";
|
|
5791
|
-
"origin-backpressure": "origin-backpressure";
|
|
5792
5810
|
"asset-url": "asset-url";
|
|
5811
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
5793
5812
|
"configured-exclusion": "configured-exclusion";
|
|
5794
5813
|
"duplicate-normalization": "duplicate-normalization";
|
|
5814
|
+
"invalid-url": "invalid-url";
|
|
5795
5815
|
"memory-pressure": "memory-pressure";
|
|
5796
5816
|
"off-origin": "off-origin";
|
|
5817
|
+
"origin-backpressure": "origin-backpressure";
|
|
5797
5818
|
"queue-safety-limit": "queue-safety-limit";
|
|
5819
|
+
"query-variant-limit": "query-variant-limit";
|
|
5820
|
+
"robots-disallowed": "robots-disallowed";
|
|
5798
5821
|
"robots-uncertain": "robots-uncertain";
|
|
5799
5822
|
"legacy-unclassified": "legacy-unclassified";
|
|
5800
5823
|
}>;
|
|
@@ -6066,6 +6089,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6066
6089
|
source: z.ZodEnum<{
|
|
6067
6090
|
environment: "environment";
|
|
6068
6091
|
"playwright-cache": "playwright-cache";
|
|
6092
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
6069
6093
|
system: "system";
|
|
6070
6094
|
}>;
|
|
6071
6095
|
product: z.ZodString;
|
|
@@ -6166,10 +6190,10 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6166
6190
|
raw: z.ZodString;
|
|
6167
6191
|
resolved: z.ZodOptional<z.ZodString>;
|
|
6168
6192
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
6193
|
+
"invalid-url": "invalid-url";
|
|
6169
6194
|
"outside-head": "outside-head";
|
|
6170
6195
|
"alternate-qualifier": "alternate-qualifier";
|
|
6171
6196
|
fragment: "fragment";
|
|
6172
|
-
"invalid-url": "invalid-url";
|
|
6173
6197
|
"non-http-url": "non-http-url";
|
|
6174
6198
|
}>>;
|
|
6175
6199
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -7101,15 +7125,17 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7101
7125
|
skippedUrls: z.ZodNumber;
|
|
7102
7126
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
7103
7127
|
reason: z.ZodEnum<{
|
|
7104
|
-
"invalid-url": "invalid-url";
|
|
7105
|
-
"robots-disallowed": "robots-disallowed";
|
|
7106
|
-
"origin-backpressure": "origin-backpressure";
|
|
7107
7128
|
"asset-url": "asset-url";
|
|
7129
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
7108
7130
|
"configured-exclusion": "configured-exclusion";
|
|
7109
7131
|
"duplicate-normalization": "duplicate-normalization";
|
|
7132
|
+
"invalid-url": "invalid-url";
|
|
7110
7133
|
"memory-pressure": "memory-pressure";
|
|
7111
7134
|
"off-origin": "off-origin";
|
|
7135
|
+
"origin-backpressure": "origin-backpressure";
|
|
7112
7136
|
"queue-safety-limit": "queue-safety-limit";
|
|
7137
|
+
"query-variant-limit": "query-variant-limit";
|
|
7138
|
+
"robots-disallowed": "robots-disallowed";
|
|
7113
7139
|
"robots-uncertain": "robots-uncertain";
|
|
7114
7140
|
"legacy-unclassified": "legacy-unclassified";
|
|
7115
7141
|
}>;
|
|
@@ -7381,6 +7407,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7381
7407
|
source: z.ZodEnum<{
|
|
7382
7408
|
environment: "environment";
|
|
7383
7409
|
"playwright-cache": "playwright-cache";
|
|
7410
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
7384
7411
|
system: "system";
|
|
7385
7412
|
}>;
|
|
7386
7413
|
product: z.ZodString;
|
|
@@ -7481,10 +7508,10 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7481
7508
|
raw: z.ZodString;
|
|
7482
7509
|
resolved: z.ZodOptional<z.ZodString>;
|
|
7483
7510
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
7511
|
+
"invalid-url": "invalid-url";
|
|
7484
7512
|
"outside-head": "outside-head";
|
|
7485
7513
|
"alternate-qualifier": "alternate-qualifier";
|
|
7486
7514
|
fragment: "fragment";
|
|
7487
|
-
"invalid-url": "invalid-url";
|
|
7488
7515
|
"non-http-url": "non-http-url";
|
|
7489
7516
|
}>>;
|
|
7490
7517
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -8418,15 +8445,17 @@ export declare const crawlerSchemas: {
|
|
|
8418
8445
|
skippedUrls: z.ZodNumber;
|
|
8419
8446
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
8420
8447
|
reason: z.ZodEnum<{
|
|
8421
|
-
"invalid-url": "invalid-url";
|
|
8422
|
-
"robots-disallowed": "robots-disallowed";
|
|
8423
|
-
"origin-backpressure": "origin-backpressure";
|
|
8424
8448
|
"asset-url": "asset-url";
|
|
8449
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
8425
8450
|
"configured-exclusion": "configured-exclusion";
|
|
8426
8451
|
"duplicate-normalization": "duplicate-normalization";
|
|
8452
|
+
"invalid-url": "invalid-url";
|
|
8427
8453
|
"memory-pressure": "memory-pressure";
|
|
8428
8454
|
"off-origin": "off-origin";
|
|
8455
|
+
"origin-backpressure": "origin-backpressure";
|
|
8429
8456
|
"queue-safety-limit": "queue-safety-limit";
|
|
8457
|
+
"query-variant-limit": "query-variant-limit";
|
|
8458
|
+
"robots-disallowed": "robots-disallowed";
|
|
8430
8459
|
"robots-uncertain": "robots-uncertain";
|
|
8431
8460
|
"legacy-unclassified": "legacy-unclassified";
|
|
8432
8461
|
}>;
|
|
@@ -8698,6 +8727,7 @@ export declare const crawlerSchemas: {
|
|
|
8698
8727
|
source: z.ZodEnum<{
|
|
8699
8728
|
environment: "environment";
|
|
8700
8729
|
"playwright-cache": "playwright-cache";
|
|
8730
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
8701
8731
|
system: "system";
|
|
8702
8732
|
}>;
|
|
8703
8733
|
product: z.ZodString;
|
|
@@ -8798,10 +8828,10 @@ export declare const crawlerSchemas: {
|
|
|
8798
8828
|
raw: z.ZodString;
|
|
8799
8829
|
resolved: z.ZodOptional<z.ZodString>;
|
|
8800
8830
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
8831
|
+
"invalid-url": "invalid-url";
|
|
8801
8832
|
"outside-head": "outside-head";
|
|
8802
8833
|
"alternate-qualifier": "alternate-qualifier";
|
|
8803
8834
|
fragment: "fragment";
|
|
8804
|
-
"invalid-url": "invalid-url";
|
|
8805
8835
|
"non-http-url": "non-http-url";
|
|
8806
8836
|
}>>;
|
|
8807
8837
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -9733,15 +9763,17 @@ export declare const crawlerSchemas: {
|
|
|
9733
9763
|
skippedUrls: z.ZodNumber;
|
|
9734
9764
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
9735
9765
|
reason: z.ZodEnum<{
|
|
9736
|
-
"invalid-url": "invalid-url";
|
|
9737
|
-
"robots-disallowed": "robots-disallowed";
|
|
9738
|
-
"origin-backpressure": "origin-backpressure";
|
|
9739
9766
|
"asset-url": "asset-url";
|
|
9767
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
9740
9768
|
"configured-exclusion": "configured-exclusion";
|
|
9741
9769
|
"duplicate-normalization": "duplicate-normalization";
|
|
9770
|
+
"invalid-url": "invalid-url";
|
|
9742
9771
|
"memory-pressure": "memory-pressure";
|
|
9743
9772
|
"off-origin": "off-origin";
|
|
9773
|
+
"origin-backpressure": "origin-backpressure";
|
|
9744
9774
|
"queue-safety-limit": "queue-safety-limit";
|
|
9775
|
+
"query-variant-limit": "query-variant-limit";
|
|
9776
|
+
"robots-disallowed": "robots-disallowed";
|
|
9745
9777
|
"robots-uncertain": "robots-uncertain";
|
|
9746
9778
|
"legacy-unclassified": "legacy-unclassified";
|
|
9747
9779
|
}>;
|
|
@@ -10013,6 +10045,7 @@ export declare const crawlerSchemas: {
|
|
|
10013
10045
|
source: z.ZodEnum<{
|
|
10014
10046
|
environment: "environment";
|
|
10015
10047
|
"playwright-cache": "playwright-cache";
|
|
10048
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
10016
10049
|
system: "system";
|
|
10017
10050
|
}>;
|
|
10018
10051
|
product: z.ZodString;
|
|
@@ -10113,10 +10146,10 @@ export declare const crawlerSchemas: {
|
|
|
10113
10146
|
raw: z.ZodString;
|
|
10114
10147
|
resolved: z.ZodOptional<z.ZodString>;
|
|
10115
10148
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
10149
|
+
"invalid-url": "invalid-url";
|
|
10116
10150
|
"outside-head": "outside-head";
|
|
10117
10151
|
"alternate-qualifier": "alternate-qualifier";
|
|
10118
10152
|
fragment: "fragment";
|
|
10119
|
-
"invalid-url": "invalid-url";
|
|
10120
10153
|
"non-http-url": "non-http-url";
|
|
10121
10154
|
}>>;
|
|
10122
10155
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -11048,15 +11081,17 @@ export declare const crawlerSchemas: {
|
|
|
11048
11081
|
skippedUrls: z.ZodNumber;
|
|
11049
11082
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
11050
11083
|
reason: z.ZodEnum<{
|
|
11051
|
-
"invalid-url": "invalid-url";
|
|
11052
|
-
"robots-disallowed": "robots-disallowed";
|
|
11053
|
-
"origin-backpressure": "origin-backpressure";
|
|
11054
11084
|
"asset-url": "asset-url";
|
|
11085
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
11055
11086
|
"configured-exclusion": "configured-exclusion";
|
|
11056
11087
|
"duplicate-normalization": "duplicate-normalization";
|
|
11088
|
+
"invalid-url": "invalid-url";
|
|
11057
11089
|
"memory-pressure": "memory-pressure";
|
|
11058
11090
|
"off-origin": "off-origin";
|
|
11091
|
+
"origin-backpressure": "origin-backpressure";
|
|
11059
11092
|
"queue-safety-limit": "queue-safety-limit";
|
|
11093
|
+
"query-variant-limit": "query-variant-limit";
|
|
11094
|
+
"robots-disallowed": "robots-disallowed";
|
|
11060
11095
|
"robots-uncertain": "robots-uncertain";
|
|
11061
11096
|
"legacy-unclassified": "legacy-unclassified";
|
|
11062
11097
|
}>;
|
|
@@ -11328,6 +11363,7 @@ export declare const crawlerSchemas: {
|
|
|
11328
11363
|
source: z.ZodEnum<{
|
|
11329
11364
|
environment: "environment";
|
|
11330
11365
|
"playwright-cache": "playwright-cache";
|
|
11366
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
11331
11367
|
system: "system";
|
|
11332
11368
|
}>;
|
|
11333
11369
|
product: z.ZodString;
|
|
@@ -11428,10 +11464,10 @@ export declare const crawlerSchemas: {
|
|
|
11428
11464
|
raw: z.ZodString;
|
|
11429
11465
|
resolved: z.ZodOptional<z.ZodString>;
|
|
11430
11466
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
11467
|
+
"invalid-url": "invalid-url";
|
|
11431
11468
|
"outside-head": "outside-head";
|
|
11432
11469
|
"alternate-qualifier": "alternate-qualifier";
|
|
11433
11470
|
fragment: "fragment";
|
|
11434
|
-
"invalid-url": "invalid-url";
|
|
11435
11471
|
"non-http-url": "non-http-url";
|
|
11436
11472
|
}>>;
|
|
11437
11473
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -12767,6 +12803,7 @@ export declare const crawlerSchemas: {
|
|
|
12767
12803
|
source: z.ZodEnum<{
|
|
12768
12804
|
environment: "environment";
|
|
12769
12805
|
"playwright-cache": "playwright-cache";
|
|
12806
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
12770
12807
|
system: "system";
|
|
12771
12808
|
}>;
|
|
12772
12809
|
product: z.ZodString;
|
|
@@ -12867,10 +12904,10 @@ export declare const crawlerSchemas: {
|
|
|
12867
12904
|
raw: z.ZodString;
|
|
12868
12905
|
resolved: z.ZodOptional<z.ZodString>;
|
|
12869
12906
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
12907
|
+
"invalid-url": "invalid-url";
|
|
12870
12908
|
"outside-head": "outside-head";
|
|
12871
12909
|
"alternate-qualifier": "alternate-qualifier";
|
|
12872
12910
|
fragment: "fragment";
|
|
12873
|
-
"invalid-url": "invalid-url";
|
|
12874
12911
|
"non-http-url": "non-http-url";
|
|
12875
12912
|
}>>;
|
|
12876
12913
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -13291,15 +13328,17 @@ export declare const crawlerJsonSchemas: {
|
|
|
13291
13328
|
skippedUrls: z.ZodNumber;
|
|
13292
13329
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
13293
13330
|
reason: z.ZodEnum<{
|
|
13294
|
-
"invalid-url": "invalid-url";
|
|
13295
|
-
"robots-disallowed": "robots-disallowed";
|
|
13296
|
-
"origin-backpressure": "origin-backpressure";
|
|
13297
13331
|
"asset-url": "asset-url";
|
|
13332
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
13298
13333
|
"configured-exclusion": "configured-exclusion";
|
|
13299
13334
|
"duplicate-normalization": "duplicate-normalization";
|
|
13335
|
+
"invalid-url": "invalid-url";
|
|
13300
13336
|
"memory-pressure": "memory-pressure";
|
|
13301
13337
|
"off-origin": "off-origin";
|
|
13338
|
+
"origin-backpressure": "origin-backpressure";
|
|
13302
13339
|
"queue-safety-limit": "queue-safety-limit";
|
|
13340
|
+
"query-variant-limit": "query-variant-limit";
|
|
13341
|
+
"robots-disallowed": "robots-disallowed";
|
|
13303
13342
|
"robots-uncertain": "robots-uncertain";
|
|
13304
13343
|
"legacy-unclassified": "legacy-unclassified";
|
|
13305
13344
|
}>;
|
|
@@ -13571,6 +13610,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
13571
13610
|
source: z.ZodEnum<{
|
|
13572
13611
|
environment: "environment";
|
|
13573
13612
|
"playwright-cache": "playwright-cache";
|
|
13613
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
13574
13614
|
system: "system";
|
|
13575
13615
|
}>;
|
|
13576
13616
|
product: z.ZodString;
|
|
@@ -13671,10 +13711,10 @@ export declare const crawlerJsonSchemas: {
|
|
|
13671
13711
|
raw: z.ZodString;
|
|
13672
13712
|
resolved: z.ZodOptional<z.ZodString>;
|
|
13673
13713
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
13714
|
+
"invalid-url": "invalid-url";
|
|
13674
13715
|
"outside-head": "outside-head";
|
|
13675
13716
|
"alternate-qualifier": "alternate-qualifier";
|
|
13676
13717
|
fragment: "fragment";
|
|
13677
|
-
"invalid-url": "invalid-url";
|
|
13678
13718
|
"non-http-url": "non-http-url";
|
|
13679
13719
|
}>>;
|
|
13680
13720
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -14606,15 +14646,17 @@ export declare const crawlerJsonSchemas: {
|
|
|
14606
14646
|
skippedUrls: z.ZodNumber;
|
|
14607
14647
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
14608
14648
|
reason: z.ZodEnum<{
|
|
14609
|
-
"invalid-url": "invalid-url";
|
|
14610
|
-
"robots-disallowed": "robots-disallowed";
|
|
14611
|
-
"origin-backpressure": "origin-backpressure";
|
|
14612
14649
|
"asset-url": "asset-url";
|
|
14650
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
14613
14651
|
"configured-exclusion": "configured-exclusion";
|
|
14614
14652
|
"duplicate-normalization": "duplicate-normalization";
|
|
14653
|
+
"invalid-url": "invalid-url";
|
|
14615
14654
|
"memory-pressure": "memory-pressure";
|
|
14616
14655
|
"off-origin": "off-origin";
|
|
14656
|
+
"origin-backpressure": "origin-backpressure";
|
|
14617
14657
|
"queue-safety-limit": "queue-safety-limit";
|
|
14658
|
+
"query-variant-limit": "query-variant-limit";
|
|
14659
|
+
"robots-disallowed": "robots-disallowed";
|
|
14618
14660
|
"robots-uncertain": "robots-uncertain";
|
|
14619
14661
|
"legacy-unclassified": "legacy-unclassified";
|
|
14620
14662
|
}>;
|
|
@@ -14886,6 +14928,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
14886
14928
|
source: z.ZodEnum<{
|
|
14887
14929
|
environment: "environment";
|
|
14888
14930
|
"playwright-cache": "playwright-cache";
|
|
14931
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
14889
14932
|
system: "system";
|
|
14890
14933
|
}>;
|
|
14891
14934
|
product: z.ZodString;
|
|
@@ -14986,10 +15029,10 @@ export declare const crawlerJsonSchemas: {
|
|
|
14986
15029
|
raw: z.ZodString;
|
|
14987
15030
|
resolved: z.ZodOptional<z.ZodString>;
|
|
14988
15031
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
15032
|
+
"invalid-url": "invalid-url";
|
|
14989
15033
|
"outside-head": "outside-head";
|
|
14990
15034
|
"alternate-qualifier": "alternate-qualifier";
|
|
14991
15035
|
fragment: "fragment";
|
|
14992
|
-
"invalid-url": "invalid-url";
|
|
14993
15036
|
"non-http-url": "non-http-url";
|
|
14994
15037
|
}>>;
|
|
14995
15038
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -15921,15 +15964,17 @@ export declare const crawlerJsonSchemas: {
|
|
|
15921
15964
|
skippedUrls: z.ZodNumber;
|
|
15922
15965
|
skipReasons: z.ZodArray<z.ZodObject<{
|
|
15923
15966
|
reason: z.ZodEnum<{
|
|
15924
|
-
"invalid-url": "invalid-url";
|
|
15925
|
-
"robots-disallowed": "robots-disallowed";
|
|
15926
|
-
"origin-backpressure": "origin-backpressure";
|
|
15927
15967
|
"asset-url": "asset-url";
|
|
15968
|
+
"cdn-utility-url": "cdn-utility-url";
|
|
15928
15969
|
"configured-exclusion": "configured-exclusion";
|
|
15929
15970
|
"duplicate-normalization": "duplicate-normalization";
|
|
15971
|
+
"invalid-url": "invalid-url";
|
|
15930
15972
|
"memory-pressure": "memory-pressure";
|
|
15931
15973
|
"off-origin": "off-origin";
|
|
15974
|
+
"origin-backpressure": "origin-backpressure";
|
|
15932
15975
|
"queue-safety-limit": "queue-safety-limit";
|
|
15976
|
+
"query-variant-limit": "query-variant-limit";
|
|
15977
|
+
"robots-disallowed": "robots-disallowed";
|
|
15933
15978
|
"robots-uncertain": "robots-uncertain";
|
|
15934
15979
|
"legacy-unclassified": "legacy-unclassified";
|
|
15935
15980
|
}>;
|
|
@@ -16201,6 +16246,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
16201
16246
|
source: z.ZodEnum<{
|
|
16202
16247
|
environment: "environment";
|
|
16203
16248
|
"playwright-cache": "playwright-cache";
|
|
16249
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
16204
16250
|
system: "system";
|
|
16205
16251
|
}>;
|
|
16206
16252
|
product: z.ZodString;
|
|
@@ -16301,10 +16347,10 @@ export declare const crawlerJsonSchemas: {
|
|
|
16301
16347
|
raw: z.ZodString;
|
|
16302
16348
|
resolved: z.ZodOptional<z.ZodString>;
|
|
16303
16349
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
16350
|
+
"invalid-url": "invalid-url";
|
|
16304
16351
|
"outside-head": "outside-head";
|
|
16305
16352
|
"alternate-qualifier": "alternate-qualifier";
|
|
16306
16353
|
fragment: "fragment";
|
|
16307
|
-
"invalid-url": "invalid-url";
|
|
16308
16354
|
"non-http-url": "non-http-url";
|
|
16309
16355
|
}>>;
|
|
16310
16356
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -17640,6 +17686,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
17640
17686
|
source: z.ZodEnum<{
|
|
17641
17687
|
environment: "environment";
|
|
17642
17688
|
"playwright-cache": "playwright-cache";
|
|
17689
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
17643
17690
|
system: "system";
|
|
17644
17691
|
}>;
|
|
17645
17692
|
product: z.ZodString;
|
|
@@ -17740,10 +17787,10 @@ export declare const crawlerJsonSchemas: {
|
|
|
17740
17787
|
raw: z.ZodString;
|
|
17741
17788
|
resolved: z.ZodOptional<z.ZodString>;
|
|
17742
17789
|
ignoredReason: z.ZodOptional<z.ZodEnum<{
|
|
17790
|
+
"invalid-url": "invalid-url";
|
|
17743
17791
|
"outside-head": "outside-head";
|
|
17744
17792
|
"alternate-qualifier": "alternate-qualifier";
|
|
17745
17793
|
fragment: "fragment";
|
|
17746
|
-
"invalid-url": "invalid-url";
|
|
17747
17794
|
"non-http-url": "non-http-url";
|
|
17748
17795
|
}>>;
|
|
17749
17796
|
streamedMetadata: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -18175,9 +18222,9 @@ export type ProviderId = z.infer<typeof providerIdSchema>;
|
|
|
18175
18222
|
export type ExternalServiceId = string;
|
|
18176
18223
|
export declare const providerCapabilitySchema: z.ZodEnum<{
|
|
18177
18224
|
"local-search": "local-search";
|
|
18178
|
-
"serp-snapshot": "serp-snapshot";
|
|
18179
18225
|
"keyword-metrics": "keyword-metrics";
|
|
18180
18226
|
"keyword-discovery": "keyword-discovery";
|
|
18227
|
+
"serp-snapshot": "serp-snapshot";
|
|
18181
18228
|
"domain-overview": "domain-overview";
|
|
18182
18229
|
"ranked-keywords": "ranked-keywords";
|
|
18183
18230
|
"relevant-pages": "relevant-pages";
|
|
@@ -18338,6 +18385,8 @@ type ResolvedCrawlSiteDependencies = {
|
|
|
18338
18385
|
fetchLandingPageValues: typeof fetchLandingPageValues;
|
|
18339
18386
|
landingValueForUrl: typeof landingValueForUrl;
|
|
18340
18387
|
now: () => Date;
|
|
18388
|
+
/** Waits out a rate-limit cool-down. Tests inject a zero delay. */
|
|
18389
|
+
sleep: (ms: number, signal?: AbortSignal) => Promise<void>;
|
|
18341
18390
|
memoryUsage: () => Pick<NodeJS.MemoryUsage, 'rss' | 'heapUsed' | 'external'>;
|
|
18342
18391
|
totalMemory: () => number;
|
|
18343
18392
|
};
|
|
@@ -21616,6 +21665,7 @@ type WeekSite = {
|
|
|
21616
21665
|
previous: number;
|
|
21617
21666
|
} | null;
|
|
21618
21667
|
opportunities?: WeekOpportunities | null;
|
|
21668
|
+
google_updates?: WeekGoogleUpdate[];
|
|
21619
21669
|
measured?: {
|
|
21620
21670
|
total: number;
|
|
21621
21671
|
items: (IssueMeasure & {
|
|
@@ -21653,6 +21703,18 @@ type WeekData = {
|
|
|
21653
21703
|
account: string;
|
|
21654
21704
|
sites: WeekSite[];
|
|
21655
21705
|
};
|
|
21706
|
+
type WeekGoogleUpdate = {
|
|
21707
|
+
name: string;
|
|
21708
|
+
start: string;
|
|
21709
|
+
end: string | null;
|
|
21710
|
+
ready: boolean;
|
|
21711
|
+
result: {
|
|
21712
|
+
verdict: 'within-normal' | 'outside-normal' | 'not-enough-data';
|
|
21713
|
+
clicks: number;
|
|
21714
|
+
previous: number;
|
|
21715
|
+
days: number;
|
|
21716
|
+
} | null;
|
|
21717
|
+
};
|
|
21656
21718
|
export declare const CLOUD_URL = "https://seoskill.dev";
|
|
21657
21719
|
type Pending = {
|
|
21658
21720
|
device: string;
|