@gscdump/contracts 2.0.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1841,36 +1841,6 @@ declare function createGscdumpV1Protocol(): {
1841
1841
  readonly version: z.ZodLiteral<"1.0">;
1842
1842
  }, z.core.$strip>;
1843
1843
  }, z.core.$strip>>;
1844
- keywordEnrichmentRequest: z.ZodObject<{
1845
- keywords: z.ZodArray<z.ZodString>;
1846
- }, z.core.$strict>;
1847
- keywordEnrichmentResponse: CompatibleResponseSchema<z.ZodObject<{
1848
- data: z.ZodObject<{
1849
- readonly metrics: z.ZodRecord<z.ZodString, z.ZodObject<{
1850
- difficulty: z.ZodNullable<z.ZodNumber>;
1851
- searchVolume: z.ZodNullable<z.ZodNumber>;
1852
- cpc: z.ZodNullable<z.ZodNumber>;
1853
- }, z.core.$loose>>;
1854
- }, z.core.$strip>;
1855
- meta: z.ZodObject<{
1856
- readonly requestId: z.ZodString;
1857
- readonly surface: z.ZodLiteral<"partner">;
1858
- readonly version: z.ZodLiteral<"1.0">;
1859
- }, z.core.$strip>;
1860
- }, z.core.$strip>, z.ZodObject<{
1861
- data: z.ZodObject<{
1862
- readonly metrics: z.ZodRecord<z.ZodString, z.ZodObject<{
1863
- difficulty: z.ZodNullable<z.ZodNumber>;
1864
- searchVolume: z.ZodNullable<z.ZodNumber>;
1865
- cpc: z.ZodNullable<z.ZodNumber>;
1866
- }, z.core.$loose>>;
1867
- }, z.core.$strip>;
1868
- meta: z.ZodObject<{
1869
- readonly requestId: z.ZodString;
1870
- readonly surface: z.ZodLiteral<"partner">;
1871
- readonly version: z.ZodLiteral<"1.0">;
1872
- }, z.core.$strip>;
1873
- }, z.core.$strip>>;
1874
1844
  lifecycleResponse: CompatibleResponseSchema<z.ZodObject<{
1875
1845
  data: z.ZodObject<{
1876
1846
  readonly userId: z.ZodString;
@@ -11578,275 +11548,6 @@ declare function createGscdumpV1Protocol(): {
11578
11548
  };
11579
11549
  };
11580
11550
  };
11581
- readonly queryCrossSource: {
11582
- readonly id: "partner.sites.cross.source.query";
11583
- readonly method: "POST";
11584
- readonly path: "/sites/{siteId}/cross-source";
11585
- readonly visibility: "public";
11586
- readonly semantics: {
11587
- readonly kind: "query";
11588
- readonly sideEffects: "none";
11589
- readonly idempotent: true;
11590
- readonly retry: "idempotent";
11591
- readonly readConsistency: "primary";
11592
- };
11593
- readonly auth: {
11594
- readonly credentials: readonly ["partner_key"];
11595
- readonly scopes: readonly ["analytics:read"];
11596
- readonly ownership: readonly [{
11597
- readonly credential: "partner_key";
11598
- readonly rule: "authorized_site";
11599
- }];
11600
- };
11601
- readonly request: {
11602
- readonly params: z.ZodObject<{
11603
- siteId: z.ZodString;
11604
- }, z.core.$strict>;
11605
- readonly query: null;
11606
- readonly headers: z.ZodObject<{
11607
- 'x-request-id': z.ZodOptional<z.ZodString>;
11608
- }, z.core.$strict>;
11609
- readonly body: z.ZodObject<{
11610
- queryKey: z.ZodEnum<{
11611
- "crawl-error-losing-impressions": "crawl-error-losing-impressions";
11612
- "declining-clicks-poor-lcp": "declining-clicks-poor-lcp";
11613
- "striking-distance-slow-pages": "striking-distance-slow-pages";
11614
- "top-impressions-low-performance": "top-impressions-low-performance";
11615
- }>;
11616
- rangeDays: z.ZodOptional<z.ZodNumber>;
11617
- limit: z.ZodOptional<z.ZodNumber>;
11618
- }, z.core.$strict>;
11619
- };
11620
- readonly responses: {
11621
- readonly 200: CompatibleResponseSchema<z.ZodObject<{
11622
- data: z.ZodObject<{
11623
- readonly reason: z.ZodOptional<z.ZodString>;
11624
- readonly sources: z.ZodArray<z.ZodString>;
11625
- readonly rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
11626
- }, z.core.$strip>;
11627
- meta: z.ZodObject<{
11628
- readonly requestId: z.ZodString;
11629
- readonly surface: z.ZodLiteral<"partner">;
11630
- readonly version: z.ZodLiteral<"1.0">;
11631
- }, z.core.$strip>;
11632
- }, z.core.$strip>, z.ZodObject<{
11633
- data: z.ZodObject<{
11634
- readonly reason: z.ZodOptional<z.ZodString>;
11635
- readonly sources: z.ZodArray<z.ZodString>;
11636
- readonly rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
11637
- }, z.core.$strip>;
11638
- meta: z.ZodObject<{
11639
- readonly requestId: z.ZodString;
11640
- readonly surface: z.ZodLiteral<"partner">;
11641
- readonly version: z.ZodLiteral<"1.0">;
11642
- }, z.core.$strip>;
11643
- }, z.core.$strip>>;
11644
- };
11645
- readonly errors: readonly ["invalid_request", "unauthorized", "forbidden", "site_not_found", "rate_limited", "internal_error", "contract_violation"];
11646
- readonly errorResponse: CompatibleResponseSchema<z.ZodObject<{
11647
- readonly error: z.ZodObject<{
11648
- code: z.ZodEnum<{
11649
- internal_error: "internal_error";
11650
- invalid_request: "invalid_request";
11651
- unauthorized: "unauthorized";
11652
- forbidden: "forbidden";
11653
- site_not_found: "site_not_found";
11654
- rate_limited: "rate_limited";
11655
- contract_violation: "contract_violation";
11656
- }>;
11657
- message: z.ZodString;
11658
- requestId: z.ZodString;
11659
- retryable: z.ZodBoolean;
11660
- details: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
11661
- }, z.core.$strict>;
11662
- }, z.core.$strip>, z.ZodObject<{
11663
- readonly error: z.ZodObject<{
11664
- code: z.ZodEnum<{
11665
- internal_error: "internal_error";
11666
- invalid_request: "invalid_request";
11667
- unauthorized: "unauthorized";
11668
- forbidden: "forbidden";
11669
- site_not_found: "site_not_found";
11670
- rate_limited: "rate_limited";
11671
- contract_violation: "contract_violation";
11672
- }>;
11673
- message: z.ZodString;
11674
- requestId: z.ZodString;
11675
- retryable: z.ZodBoolean;
11676
- details: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
11677
- }, z.core.$loose>;
11678
- }, z.core.$strip>>;
11679
- readonly resources: {
11680
- readonly reads: readonly [{
11681
- readonly type: "site.analytics";
11682
- readonly idFrom: "params.siteId";
11683
- }];
11684
- readonly changes: readonly [];
11685
- };
11686
- readonly lifecycle: {
11687
- readonly introduced: "1.3.0";
11688
- };
11689
- readonly docs: {
11690
- readonly summary: "Query cross-source analysis";
11691
- readonly description: "Runs one predefined cross-source query joining crawl, CWV, and GSC signals for a site.";
11692
- readonly tags: readonly ["Analytics"];
11693
- readonly examples: {
11694
- readonly request: {
11695
- readonly params: {
11696
- readonly siteId: "s_01";
11697
- };
11698
- readonly body: {
11699
- readonly queryKey: "crawl-error-losing-impressions";
11700
- readonly rangeDays: 28;
11701
- readonly limit: 50;
11702
- };
11703
- };
11704
- readonly response: {
11705
- readonly data: {
11706
- readonly sources: readonly ["crawl", "gsc"];
11707
- readonly rows: readonly [];
11708
- };
11709
- readonly meta: {
11710
- readonly requestId: "req_01";
11711
- readonly surface: "partner";
11712
- readonly version: "1.0";
11713
- };
11714
- };
11715
- };
11716
- };
11717
- };
11718
- readonly enrichKeywords: {
11719
- readonly id: "partner.keywords.enrich.query";
11720
- readonly method: "POST";
11721
- readonly path: "/keywords/enrich";
11722
- readonly visibility: "public";
11723
- readonly semantics: {
11724
- readonly kind: "query";
11725
- readonly sideEffects: "none";
11726
- readonly idempotent: true;
11727
- readonly retry: "idempotent";
11728
- readonly readConsistency: "primary";
11729
- };
11730
- readonly auth: {
11731
- readonly credentials: readonly ["user_key", "partner_key"];
11732
- readonly scopes: readonly ["analytics:read"];
11733
- readonly ownership: readonly [{
11734
- readonly credential: "user_key";
11735
- readonly rule: "self";
11736
- }, {
11737
- readonly credential: "partner_key";
11738
- readonly rule: "partner_tenant";
11739
- }];
11740
- };
11741
- readonly request: {
11742
- readonly params: null;
11743
- readonly query: null;
11744
- readonly headers: z.ZodObject<{
11745
- 'x-request-id': z.ZodOptional<z.ZodString>;
11746
- }, z.core.$strict>;
11747
- readonly body: z.ZodObject<{
11748
- keywords: z.ZodArray<z.ZodString>;
11749
- }, z.core.$strict>;
11750
- };
11751
- readonly responses: {
11752
- readonly 200: CompatibleResponseSchema<z.ZodObject<{
11753
- data: z.ZodObject<{
11754
- readonly metrics: z.ZodRecord<z.ZodString, z.ZodObject<{
11755
- difficulty: z.ZodNullable<z.ZodNumber>;
11756
- searchVolume: z.ZodNullable<z.ZodNumber>;
11757
- cpc: z.ZodNullable<z.ZodNumber>;
11758
- }, z.core.$loose>>;
11759
- }, z.core.$strip>;
11760
- meta: z.ZodObject<{
11761
- readonly requestId: z.ZodString;
11762
- readonly surface: z.ZodLiteral<"partner">;
11763
- readonly version: z.ZodLiteral<"1.0">;
11764
- }, z.core.$strip>;
11765
- }, z.core.$strip>, z.ZodObject<{
11766
- data: z.ZodObject<{
11767
- readonly metrics: z.ZodRecord<z.ZodString, z.ZodObject<{
11768
- difficulty: z.ZodNullable<z.ZodNumber>;
11769
- searchVolume: z.ZodNullable<z.ZodNumber>;
11770
- cpc: z.ZodNullable<z.ZodNumber>;
11771
- }, z.core.$loose>>;
11772
- }, z.core.$strip>;
11773
- meta: z.ZodObject<{
11774
- readonly requestId: z.ZodString;
11775
- readonly surface: z.ZodLiteral<"partner">;
11776
- readonly version: z.ZodLiteral<"1.0">;
11777
- }, z.core.$strip>;
11778
- }, z.core.$strip>>;
11779
- };
11780
- readonly errors: readonly ["invalid_request", "unauthorized", "forbidden", "user_not_found", "rate_limited", "internal_error", "contract_violation"];
11781
- readonly errorResponse: CompatibleResponseSchema<z.ZodObject<{
11782
- readonly error: z.ZodObject<{
11783
- code: z.ZodEnum<{
11784
- internal_error: "internal_error";
11785
- invalid_request: "invalid_request";
11786
- unauthorized: "unauthorized";
11787
- forbidden: "forbidden";
11788
- user_not_found: "user_not_found";
11789
- rate_limited: "rate_limited";
11790
- contract_violation: "contract_violation";
11791
- }>;
11792
- message: z.ZodString;
11793
- requestId: z.ZodString;
11794
- retryable: z.ZodBoolean;
11795
- details: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
11796
- }, z.core.$strict>;
11797
- }, z.core.$strip>, z.ZodObject<{
11798
- readonly error: z.ZodObject<{
11799
- code: z.ZodEnum<{
11800
- internal_error: "internal_error";
11801
- invalid_request: "invalid_request";
11802
- unauthorized: "unauthorized";
11803
- forbidden: "forbidden";
11804
- user_not_found: "user_not_found";
11805
- rate_limited: "rate_limited";
11806
- contract_violation: "contract_violation";
11807
- }>;
11808
- message: z.ZodString;
11809
- requestId: z.ZodString;
11810
- retryable: z.ZodBoolean;
11811
- details: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
11812
- }, z.core.$loose>;
11813
- }, z.core.$strip>>;
11814
- readonly resources: {
11815
- readonly reads: readonly [];
11816
- readonly changes: readonly [];
11817
- };
11818
- readonly lifecycle: {
11819
- readonly introduced: "1.3.0";
11820
- };
11821
- readonly docs: {
11822
- readonly summary: "Enrich keywords with metrics";
11823
- readonly description: "Returns difficulty, search volume, and CPC estimates for up to 500 keywords.";
11824
- readonly tags: readonly ["Analytics"];
11825
- readonly examples: {
11826
- readonly request: {
11827
- readonly body: {
11828
- readonly keywords: readonly ["nuxt seo"];
11829
- };
11830
- };
11831
- readonly response: {
11832
- readonly data: {
11833
- readonly metrics: {
11834
- readonly 'nuxt seo': {
11835
- readonly difficulty: 40;
11836
- readonly searchVolume: 100;
11837
- readonly cpc: 1.2;
11838
- };
11839
- };
11840
- };
11841
- readonly meta: {
11842
- readonly requestId: "req_01";
11843
- readonly surface: "partner";
11844
- readonly version: "1.0";
11845
- };
11846
- };
11847
- };
11848
- };
11849
- };
11850
11551
  }>;
11851
11552
  analytics: HttpV1Surface<{
11852
11553
  readonly queryRows: {
@@ -53,7 +53,7 @@ function createGscdumpV1Protocol() {
53
53
  });
54
54
  const requestHeaders = z.strictObject({ "x-request-id": realtimeSchemas.publicRequestId.optional() });
55
55
  const errorEnvelope = errorEnvelopeSchemas(HTTP_V1_ERROR_CODES, realtimeSchemas.publicRequestId);
56
- const { analyticsRowsRequest, analyticsRowsResponse, keywordEnrichmentRequest, keywordEnrichmentResponse, lifecycleResponse } = browserSchemas;
56
+ const { analyticsRowsRequest, analyticsRowsResponse, lifecycleResponse } = browserSchemas;
57
57
  const dimensions = GSCDUMP_V1_ANALYTICS_DIMENSIONS;
58
58
  const analyticsMeta = defineResponseObject({
59
59
  requestId: realtimeSchemas.publicRequestId,
@@ -562,21 +562,6 @@ function createGscdumpV1Protocol() {
562
562
  verified: z.literal(true),
563
563
  owners: z.array(z.string()).optional()
564
564
  }), partnerResponseMeta);
565
- const crossSourceRequest = z.strictObject({
566
- queryKey: z.enum([
567
- "crawl-error-losing-impressions",
568
- "declining-clicks-poor-lcp",
569
- "striking-distance-slow-pages",
570
- "top-impressions-low-performance"
571
- ]),
572
- rangeDays: z.number().int().positive().max(180).optional(),
573
- limit: z.number().int().positive().max(500).optional()
574
- });
575
- const crossSourceResponse = defineSuccessResponse(defineResponseObject({
576
- reason: z.string().optional(),
577
- sources: z.array(z.string()),
578
- rows: z.array(z.record(z.string(), z.json()))
579
- }), partnerResponseMeta);
580
565
  const responseStreamHead = defineResponseObject({
581
566
  streamId: realtimeSchemas.streamId,
582
567
  sequence: realtimeSchemas.sequence
@@ -3869,128 +3854,6 @@ function createGscdumpV1Protocol() {
3869
3854
  }
3870
3855
  }
3871
3856
  }
3872
- }),
3873
- queryCrossSource: defineHttpOperation({
3874
- id: "partner.sites.cross.source.query",
3875
- method: "POST",
3876
- path: "/sites/{siteId}/cross-source",
3877
- visibility: "public",
3878
- semantics: {
3879
- kind: "query",
3880
- sideEffects: "none",
3881
- idempotent: true,
3882
- retry: "idempotent",
3883
- readConsistency: "primary"
3884
- },
3885
- auth: {
3886
- credentials: ["partner_key"],
3887
- scopes: ["analytics:read"],
3888
- ownership: [{
3889
- credential: "partner_key",
3890
- rule: "authorized_site"
3891
- }]
3892
- },
3893
- request: {
3894
- params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
3895
- query: null,
3896
- headers: requestHeaders,
3897
- body: crossSourceRequest
3898
- },
3899
- responses: { 200: crossSourceResponse },
3900
- errors: partnerSiteErrors,
3901
- errorResponse: errorEnvelopeSchemas(partnerSiteErrors, realtimeSchemas.publicRequestId),
3902
- resources: {
3903
- reads: [{
3904
- type: "site.analytics",
3905
- idFrom: "params.siteId"
3906
- }],
3907
- changes: []
3908
- },
3909
- lifecycle: { introduced: "1.3.0" },
3910
- docs: {
3911
- summary: "Query cross-source analysis",
3912
- description: "Runs one predefined cross-source query joining crawl, CWV, and GSC signals for a site.",
3913
- tags: ["Analytics"],
3914
- examples: {
3915
- request: {
3916
- params: { siteId: "s_01" },
3917
- body: {
3918
- queryKey: "crawl-error-losing-impressions",
3919
- rangeDays: 28,
3920
- limit: 50
3921
- }
3922
- },
3923
- response: {
3924
- data: {
3925
- sources: ["crawl", "gsc"],
3926
- rows: []
3927
- },
3928
- meta: {
3929
- requestId: "req_01",
3930
- surface: "partner",
3931
- version: "1.0"
3932
- }
3933
- }
3934
- }
3935
- }
3936
- }),
3937
- enrichKeywords: defineHttpOperation({
3938
- id: "partner.keywords.enrich.query",
3939
- method: "POST",
3940
- path: "/keywords/enrich",
3941
- visibility: "public",
3942
- semantics: {
3943
- kind: "query",
3944
- sideEffects: "none",
3945
- idempotent: true,
3946
- retry: "idempotent",
3947
- readConsistency: "primary"
3948
- },
3949
- auth: {
3950
- credentials: ["user_key", "partner_key"],
3951
- scopes: ["analytics:read"],
3952
- ownership: [{
3953
- credential: "user_key",
3954
- rule: "self"
3955
- }, {
3956
- credential: "partner_key",
3957
- rule: "partner_tenant"
3958
- }]
3959
- },
3960
- request: {
3961
- params: null,
3962
- query: null,
3963
- headers: requestHeaders,
3964
- body: keywordEnrichmentRequest
3965
- },
3966
- responses: { 200: keywordEnrichmentResponse },
3967
- errors: partnerUserErrors,
3968
- errorResponse: errorEnvelopeSchemas(partnerUserErrors, realtimeSchemas.publicRequestId),
3969
- resources: {
3970
- reads: [],
3971
- changes: []
3972
- },
3973
- lifecycle: { introduced: "1.3.0" },
3974
- docs: {
3975
- summary: "Enrich keywords with metrics",
3976
- description: "Returns difficulty, search volume, and CPC estimates for up to 500 keywords.",
3977
- tags: ["Analytics"],
3978
- examples: {
3979
- request: { body: { keywords: ["nuxt seo"] } },
3980
- response: {
3981
- data: { metrics: { "nuxt seo": {
3982
- difficulty: 40,
3983
- searchVolume: 100,
3984
- cpc: 1.2
3985
- } } },
3986
- meta: {
3987
- requestId: "req_01",
3988
- surface: "partner",
3989
- version: "1.0"
3990
- }
3991
- }
3992
- }
3993
- }
3994
3857
  })
3995
3858
  }
3996
3859
  });
@@ -4405,8 +4268,6 @@ function createGscdumpV1Protocol() {
4405
4268
  indexingTransitionsResponse,
4406
4269
  indexingUrlsQuery,
4407
4270
  indexingUrlsResponse,
4408
- keywordEnrichmentRequest,
4409
- keywordEnrichmentResponse,
4410
4271
  lifecycleResponse,
4411
4272
  registerSiteRequest,
4412
4273
  sitemapChangesQuery,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/contracts",
3
3
  "type": "module",
4
- "version": "2.0.6",
4
+ "version": "2.1.0",
5
5
  "description": "Shared gscdump.com API, webhook, realtime, and lifecycle contracts.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",