@gscdump/contracts 1.5.4 → 2.0.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/schemas.mjs CHANGED
@@ -84,14 +84,6 @@ const siteListItemSchema = z.object({
84
84
  propertyType: z.enum(["domain", "url-prefix"]),
85
85
  readBackend: z.enum(["d1", "r2"]).optional()
86
86
  }).loose();
87
- const sitemapHistoryRecordSchema = z.object({
88
- path: z.string(),
89
- capturedAt: z.string()
90
- }).loose();
91
- const sitemapHistoryResponseSchema = z.object({
92
- path: z.string().nullable(),
93
- snapshots: z.array(sitemapHistoryRecordSchema)
94
- }).loose();
95
87
  const scheduleStateSchema = z.object({
96
88
  nextAt: z.number(),
97
89
  consecutiveUnchanged: z.number(),
@@ -131,10 +123,6 @@ const inspectionHistoryResponseSchema = z.object({
131
123
  url: z.string().nullable(),
132
124
  records: z.array(inspectionHistoryRecordSchema)
133
125
  }).loose();
134
- const sitemapIndexSchema = z.object({
135
- version: z.literal(1),
136
- records: z.record(z.string(), sitemapHistoryRecordSchema)
137
- }).loose();
138
126
  const inspectionIndexSchema = z.object({
139
127
  version: z.literal(1),
140
128
  records: z.record(z.string(), inspectionHistoryRecordSchema)
@@ -282,7 +270,9 @@ const indexingInspectAnyResponseSchema = z.union([indexingInspectResponseSchema,
282
270
  const sitemapChangesTruncationReasonSchema = z.enum([
283
271
  "scan_limit",
284
272
  "added_limit",
285
- "removed_limit"
273
+ "removed_limit",
274
+ "updated_limit",
275
+ "history_unavailable"
286
276
  ]);
287
277
  const sitemapChangesCompletenessSchema = z.discriminatedUnion("_tag", [z.object({
288
278
  _tag: z.literal("complete"),
@@ -291,10 +281,12 @@ const sitemapChangesCompletenessSchema = z.discriminatedUnion("_tag", [z.object(
291
281
  _tag: z.literal("truncated"),
292
282
  scannedUrls: z.number().int().nonnegative(),
293
283
  reasons: z.array(sitemapChangesTruncationReasonSchema).min(1),
284
+ historyAvailableFrom: z.number().int().nonnegative().optional(),
294
285
  limits: z.object({
295
286
  scannedUrls: z.number().int().positive(),
296
287
  added: z.number().int().positive(),
297
- removed: z.number().int().positive()
288
+ removed: z.number().int().positive(),
289
+ updated: z.number().int().positive()
298
290
  }).loose()
299
291
  }).loose()]);
300
292
  const sitemapChangesResponseSchema = z.object({
@@ -311,6 +303,7 @@ const sitemapChangesResponseSchema = z.object({
311
303
  summary: z.object({
312
304
  totalAdded: z.number(),
313
305
  totalRemoved: z.number(),
306
+ totalUpdated: z.number(),
314
307
  period: z.object({ days: z.number() })
315
308
  }).loose(),
316
309
  completeness: sitemapChangesCompletenessSchema
@@ -703,6 +696,19 @@ const gscdumpAnalysisBundleResponseSchema = z.object({
703
696
  })),
704
697
  meta: gscdumpAnalysisMetaSchema
705
698
  }).loose();
699
+ const gscdumpSitemapGenerationSchema = z.object({
700
+ id: z.string().min(1),
701
+ observedAt: z.number().int().nonnegative(),
702
+ publishedAt: z.number().int().nonnegative(),
703
+ completeness: z.object({ _tag: z.literal("complete") }).strict(),
704
+ membershipHistoryAvailableFrom: z.number().int().nonnegative().nullable(),
705
+ legacyImport: z.discriminatedUnion("_tag", [z.object({ _tag: z.literal("none") }).strict(), z.object({
706
+ _tag: z.literal("metadata_only"),
707
+ importedAt: z.number().int().nonnegative(),
708
+ recordCount: z.number().int().nonnegative(),
709
+ source: z.literal("gsc_sitemaps")
710
+ }).strict()])
711
+ }).strict();
706
712
  const gscdumpSitemapsResponseSchema = z.object({
707
713
  sitemaps: z.array(z.object({
708
714
  path: z.string(),
@@ -737,7 +743,8 @@ const gscdumpSitemapsResponseSchema = z.object({
737
743
  excludedCount: z.number().int().nonnegative(),
738
744
  duplicateCount: z.number().int().nonnegative()
739
745
  })
740
- }).loose()
746
+ }).loose(),
747
+ generation: z.lazy(() => gscdumpSitemapGenerationSchema).nullable()
741
748
  }).loose();
742
749
  const gscdumpSitemapChangesResponseSchema = z.object({
743
750
  added: z.array(z.object({
@@ -750,12 +757,21 @@ const gscdumpSitemapChangesResponseSchema = z.object({
750
757
  sitemap: z.string(),
751
758
  removedAt: z.number()
752
759
  }).loose()),
760
+ updated: z.array(z.object({
761
+ url: z.string(),
762
+ sitemap: z.string(),
763
+ previousLastmod: z.string().nullable(),
764
+ lastmod: z.string().nullable(),
765
+ observedAt: z.number()
766
+ }).loose()),
753
767
  summary: z.object({
754
768
  totalAdded: z.number(),
755
769
  totalRemoved: z.number(),
770
+ totalUpdated: z.number(),
756
771
  period: z.object({ days: z.number() })
757
772
  }).optional(),
758
- completeness: sitemapChangesCompletenessSchema
773
+ completeness: sitemapChangesCompletenessSchema,
774
+ generation: z.lazy(() => gscdumpSitemapGenerationSchema).nullable()
759
775
  }).loose();
760
776
  const indexingUrlsParamsSchema = z.object({
761
777
  limit: z.number().optional(),
@@ -1454,8 +1470,6 @@ const analyticsEndpointSchemas = {
1454
1470
  analyticsSites: { response: z.array(siteListItemSchema) },
1455
1471
  analyticsCountries: { response: countriesResponseSchema },
1456
1472
  analyticsSearchAppearance: { response: searchAppearanceResponseSchema },
1457
- analyticsSitemapHistory: { response: sitemapHistoryResponseSchema },
1458
- analyticsSitemaps: { response: sitemapIndexSchema },
1459
1473
  analyticsInspectionHistory: { response: inspectionHistoryResponseSchema },
1460
1474
  analyticsInspections: { response: inspectionIndexSchema },
1461
1475
  analyticsRollup: { response: rollupEnvelopeSchema },
@@ -1472,7 +1486,6 @@ const analyticsEndpointSchemas = {
1472
1486
  body: indexingInspectRequestSchema,
1473
1487
  response: indexingInspectAnyResponseSchema
1474
1488
  },
1475
- analyticsSitemapChanges: { response: sitemapChangesResponseSchema },
1476
1489
  analyticsAnalysisSources: { response: gscdumpAnalysisSourcesResponseSchema },
1477
1490
  analyticsQueryDimSource: { response: queryDimSourceResponseSchema },
1478
1491
  analyticsBulkSources: { response: bulkFileResolutionResponseSchema },
@@ -1513,33 +1526,80 @@ const partnerSitemapActionResponseSchema = z.discriminatedUnion("action", [
1513
1526
  ]);
1514
1527
  const gscdumpSitemapMembershipParamsSchema = z.object({
1515
1528
  urls: z.array(z.string().min(1).max(2048)).max(500),
1516
- maxAgeDays: z.number().int().positive().max(365).optional()
1517
- });
1518
- const gscdumpSitemapMembershipUrlSchema = z.object({
1519
- url: z.string(),
1520
- normalized: z.string(),
1521
- inSitemap: z.boolean(),
1522
- sitemapUrl: z.string().nullable().optional(),
1523
- lastSeenAt: z.string().nullable().optional(),
1524
- lastmod: z.string().nullable().optional(),
1525
- sitemapFetchedAt: z.string().nullable().optional()
1526
- }).loose();
1529
+ generationId: z.string().min(1).optional()
1530
+ }).strict();
1531
+ const gscdumpSitemapMembershipEvidenceSchema = z.discriminatedUnion("_tag", [
1532
+ z.object({
1533
+ _tag: z.literal("present"),
1534
+ url: z.string(),
1535
+ feedpath: z.string(),
1536
+ lastmod: z.string().nullable(),
1537
+ firstSeenAt: z.number().int().nonnegative(),
1538
+ lastSeenAt: z.number().int().nonnegative()
1539
+ }).strict(),
1540
+ z.object({
1541
+ _tag: z.literal("absent"),
1542
+ url: z.string(),
1543
+ observedAt: z.number().int().nonnegative()
1544
+ }).strict(),
1545
+ z.object({
1546
+ _tag: z.literal("unknown"),
1547
+ url: z.string(),
1548
+ reason: z.enum([
1549
+ "no_generation",
1550
+ "generation_not_found",
1551
+ "generation_incomplete",
1552
+ "history_pruned",
1553
+ "invalid_url"
1554
+ ])
1555
+ }).strict()
1556
+ ]);
1527
1557
  const gscdumpSitemapMembershipResponseSchema = z.object({
1528
- urls: z.array(gscdumpSitemapMembershipUrlSchema),
1558
+ generation: gscdumpSitemapGenerationSchema.nullable(),
1559
+ evidence: z.array(gscdumpSitemapMembershipEvidenceSchema),
1529
1560
  meta: z.object({
1530
- available: z.boolean(),
1531
- reason: z.enum([
1532
- "empty",
1533
- "endpoint_unavailable",
1534
- "site_url_cap_exceeded",
1535
- "stale_sitemaps"
1536
- ]).nullable(),
1537
1561
  requested: z.number().int().nonnegative(),
1538
1562
  checked: z.number().int().nonnegative(),
1539
- matched: z.number().int().nonnegative(),
1540
- newestFetchedAt: z.string().nullable()
1541
- }).loose()
1542
- }).loose();
1563
+ matched: z.number().int().nonnegative()
1564
+ }).strict()
1565
+ }).strict();
1566
+ const gscdumpSitemapUrlsQuerySchema = z.object({
1567
+ generationId: z.string().min(1).optional(),
1568
+ feedpath: z.string().min(1).optional(),
1569
+ cursor: z.string().min(1).optional(),
1570
+ limit: z.coerce.number().int().min(1).max(1e4).optional()
1571
+ }).strict();
1572
+ const gscdumpSitemapUrlsResponseSchema = z.object({
1573
+ generation: gscdumpSitemapGenerationSchema,
1574
+ items: z.array(z.object({
1575
+ url: z.string(),
1576
+ feedpath: z.string(),
1577
+ lastmod: z.string().nullable(),
1578
+ firstSeenAt: z.number().int().nonnegative(),
1579
+ lastSeenAt: z.number().int().nonnegative()
1580
+ }).strict()),
1581
+ page: z.object({
1582
+ nextCursor: z.string().nullable(),
1583
+ limit: z.number().int().positive()
1584
+ }).strict()
1585
+ }).strict();
1586
+ const gscdumpSitemapExportQuerySchema = z.object({
1587
+ generationId: z.string().min(1).optional(),
1588
+ feedpath: z.string().min(1).optional()
1589
+ }).strict();
1590
+ const gscdumpSitemapExportResponseSchema = z.object({
1591
+ generation: gscdumpSitemapGenerationSchema,
1592
+ export: z.discriminatedUnion("_tag", [z.object({
1593
+ _tag: z.literal("url"),
1594
+ url: z.url(),
1595
+ expiresAt: z.number().int().nonnegative(),
1596
+ contentType: z.literal("application/x-ndjson"),
1597
+ contentEncoding: z.enum(["identity", "gzip"])
1598
+ }).strict(), z.object({
1599
+ _tag: z.literal("unavailable"),
1600
+ reason: z.enum(["generation_not_found", "export_unavailable"])
1601
+ }).strict()])
1602
+ }).strict();
1543
1603
  const partnerControlEndpointSchemas = {
1544
1604
  appUser: { response: gscdumpUserMeResponseSchema },
1545
1605
  appHealth: { response: gscdumpHealthResponseSchema },
@@ -1581,16 +1641,6 @@ const partnerControlEndpointSchemas = {
1581
1641
  options: dataDetailOptionsSchema,
1582
1642
  response: gscdumpDataDetailResponseSchema
1583
1643
  },
1584
- getSitemaps: { response: gscdumpSitemapsResponseSchema },
1585
- getSitemapChanges: { response: gscdumpSitemapChangesResponseSchema },
1586
- postSitemaps: {
1587
- body: partnerSitemapActionSchema,
1588
- response: partnerSitemapActionResponseSchema
1589
- },
1590
- getSitemapMembership: {
1591
- body: gscdumpSitemapMembershipParamsSchema,
1592
- response: gscdumpSitemapMembershipResponseSchema
1593
- },
1594
1644
  getIndexing: { response: gscdumpIndexingResponseSchema },
1595
1645
  getIndexingUrls: {
1596
1646
  query: indexingUrlsParamsSchema,
@@ -1676,4 +1726,4 @@ const partnerEndpointSchemas = {
1676
1726
  ...analyticsEndpointSchemas,
1677
1727
  ...partnerControlEndpointSchemas
1678
1728
  };
1679
- export { GSCDUMP_INDEXING_TRANSITION_FIELDS, SEARCH_TYPE_CAPABILITIES, addPartnerTeamMemberSchema, analyticsEndpointSchemas, backfillRangeSchema, backfillResponseSchema, bindPartnerSiteTeamSchema, bindPartnerTeamCatalogResponseSchema, bindPartnerTeamCatalogSchema, builderStateSchema, bulkFileResolutionResponseSchema, bulkRegisterPartnerSitesResponseSchema, bulkRegisterPartnerSitesSchema, canonicalDifferenceKindSchema, canonicalWebhookEventTypeSchema, countriesResponseSchema, countryRowSchema, createPartnerTeamSchema, dataDetailOptionsSchema, dataQueryOptionsSchema, gscAddAndVerifyResponseSchema, gscApiRangeSchema, gscComparisonFilterSchema, gscRowQueryMetaSchema, gscRowQueryResponseSchema, gscVerificationDnsRecordSchema, gscVerificationMethodSchema, gscVerificationRequestSchema, gscVerificationSiteSchema, gscVerificationTokenResponseSchema, gscdumpAnalysisBaseParamsSchema, gscdumpAnalysisBundleResponseSchema, gscdumpAnalysisMetaSchema, gscdumpAnalysisParamsSchema, gscdumpAnalysisPresetSchema, gscdumpAnalysisResponseSchema, gscdumpAnalysisSourcesResponseSchema, gscdumpAvailableSiteSchema, gscdumpCanonicalMismatchesResponseSchema, gscdumpDataDetailResponseSchema, gscdumpDataResponseSchema, gscdumpDataRowSchema, gscdumpDeletePartnerUserResponseSchema, gscdumpHealthResponseSchema, gscdumpIndexPercentParamsSchema, gscdumpIndexPercentResponseSchema, gscdumpIndexingDiagnosticsResponseSchema, gscdumpIndexingResponseSchema, gscdumpIndexingTransitionFieldSchema, gscdumpIndexingUrlsResponseSchema, gscdumpKeywordSparklinesParamsSchema, gscdumpKeywordSparklinesResponseSchema, gscdumpMetaSchema, gscdumpPageTrendParamsSchema, gscdumpPageTrendResponseSchema, gscdumpPermissionRecoverySchema, gscdumpQueryTrendParamsSchema, gscdumpQueryTrendResponseSchema, gscdumpSiteRegistrationSchema, gscdumpSiteReportResponseSchema, gscdumpSitemapChangesResponseSchema, gscdumpSitemapMembershipParamsSchema, gscdumpSitemapMembershipResponseSchema, gscdumpSitemapMembershipUrlSchema, gscdumpSitemapsResponseSchema, gscdumpSyncJobsResponseSchema, gscdumpSyncProgressResponseSchema, gscdumpTeamMemberRowSchema, gscdumpTeamRoleSchema, gscdumpTeamRowSchema, gscdumpTopAssociationParamsSchema, gscdumpTopAssociationResponseSchema, gscdumpTotalsSchema, gscdumpUserMeResponseSchema, gscdumpUserRegistrationSchema, gscdumpUserSettingsSchema, gscdumpUserSiteSchema, gscdumpUserStatusSchema, indexingDiagnosticsParamsSchema, indexingDiagnosticsSchema, indexingInspectAnyResponseSchema, indexingInspectRateLimitedSchema, indexingInspectRequestSchema, indexingInspectResponseSchema, indexingInspectResultSchema, indexingIssueSchema, indexingUrlRowSchema, indexingUrlsParamsSchema, indexingUrlsResponseSchema, inspectionHistoryRecordSchema, inspectionHistoryResponseSchema, inspectionIndexSchema, inspectionRecordRawSchema, lifecycleErrorSchema, lifecycleProgressSchema, partnerControlEndpointSchemas, partnerEndpointSchemas, partnerLifecycleAccountSchema, partnerLifecycleResponseSchema, partnerLifecycleSiteSchema, partnerRealtimeEventSchema, partnerSiteTeamBindingResponseSchema, partnerSitemapActionResponseSchema, partnerSitemapActionSchema, partnerTeamCreatedResponseSchema, partnerTeamDeletedResponseSchema, partnerTeamMemberAddedResponseSchema, partnerTeamMemberRemovedResponseSchema, partnerTeamMemberRoleResponseSchema, partnerTeamMembersResponseSchema, partnerTeamRenamedResponseSchema, partnerWebhookDataSchema, partnerWebhookEnvelopeSchema, queryDimSourceResponseSchema, registerPartnerSiteSchema, registerPartnerUserSchema, renamePartnerTeamSchema, rollupEnvelopeSchema, scheduleStateSchema, searchAppearanceResponseSchema, searchAppearanceRowSchema, searchTypeSchema, searchTypeSupportsDimensions, searchTypeSupportsQueries, siteIntIdCrosswalkResponseSchema, siteListItemSchema, sitemapChangesCompletenessSchema, sitemapChangesResponseSchema, sitemapChangesTruncationReasonSchema, sitemapHistoryRecordSchema, sitemapHistoryResponseSchema, sitemapIndexSchema, sourceInfoResponseSchema, teamCatalogRefSchema, updatePartnerUserTokensSchema, whoamiResponseSchema };
1729
+ export { GSCDUMP_INDEXING_TRANSITION_FIELDS, SEARCH_TYPE_CAPABILITIES, addPartnerTeamMemberSchema, analyticsEndpointSchemas, backfillRangeSchema, backfillResponseSchema, bindPartnerSiteTeamSchema, bindPartnerTeamCatalogResponseSchema, bindPartnerTeamCatalogSchema, builderStateSchema, bulkFileResolutionResponseSchema, bulkRegisterPartnerSitesResponseSchema, bulkRegisterPartnerSitesSchema, canonicalDifferenceKindSchema, canonicalWebhookEventTypeSchema, countriesResponseSchema, countryRowSchema, createPartnerTeamSchema, dataDetailOptionsSchema, dataQueryOptionsSchema, gscAddAndVerifyResponseSchema, gscApiRangeSchema, gscComparisonFilterSchema, gscRowQueryMetaSchema, gscRowQueryResponseSchema, gscVerificationDnsRecordSchema, gscVerificationMethodSchema, gscVerificationRequestSchema, gscVerificationSiteSchema, gscVerificationTokenResponseSchema, gscdumpAnalysisBaseParamsSchema, gscdumpAnalysisBundleResponseSchema, gscdumpAnalysisMetaSchema, gscdumpAnalysisParamsSchema, gscdumpAnalysisPresetSchema, gscdumpAnalysisResponseSchema, gscdumpAnalysisSourcesResponseSchema, gscdumpAvailableSiteSchema, gscdumpCanonicalMismatchesResponseSchema, gscdumpDataDetailResponseSchema, gscdumpDataResponseSchema, gscdumpDataRowSchema, gscdumpDeletePartnerUserResponseSchema, gscdumpHealthResponseSchema, gscdumpIndexPercentParamsSchema, gscdumpIndexPercentResponseSchema, gscdumpIndexingDiagnosticsResponseSchema, gscdumpIndexingResponseSchema, gscdumpIndexingTransitionFieldSchema, gscdumpIndexingUrlsResponseSchema, gscdumpKeywordSparklinesParamsSchema, gscdumpKeywordSparklinesResponseSchema, gscdumpMetaSchema, gscdumpPageTrendParamsSchema, gscdumpPageTrendResponseSchema, gscdumpPermissionRecoverySchema, gscdumpQueryTrendParamsSchema, gscdumpQueryTrendResponseSchema, gscdumpSiteRegistrationSchema, gscdumpSiteReportResponseSchema, gscdumpSitemapChangesResponseSchema, gscdumpSitemapExportQuerySchema, gscdumpSitemapExportResponseSchema, gscdumpSitemapGenerationSchema, gscdumpSitemapMembershipEvidenceSchema, gscdumpSitemapMembershipParamsSchema, gscdumpSitemapMembershipResponseSchema, gscdumpSitemapUrlsQuerySchema, gscdumpSitemapUrlsResponseSchema, gscdumpSitemapsResponseSchema, gscdumpSyncJobsResponseSchema, gscdumpSyncProgressResponseSchema, gscdumpTeamMemberRowSchema, gscdumpTeamRoleSchema, gscdumpTeamRowSchema, gscdumpTopAssociationParamsSchema, gscdumpTopAssociationResponseSchema, gscdumpTotalsSchema, gscdumpUserMeResponseSchema, gscdumpUserRegistrationSchema, gscdumpUserSettingsSchema, gscdumpUserSiteSchema, gscdumpUserStatusSchema, indexingDiagnosticsParamsSchema, indexingDiagnosticsSchema, indexingInspectAnyResponseSchema, indexingInspectRateLimitedSchema, indexingInspectRequestSchema, indexingInspectResponseSchema, indexingInspectResultSchema, indexingIssueSchema, indexingUrlRowSchema, indexingUrlsParamsSchema, indexingUrlsResponseSchema, inspectionHistoryRecordSchema, inspectionHistoryResponseSchema, inspectionIndexSchema, inspectionRecordRawSchema, lifecycleErrorSchema, lifecycleProgressSchema, partnerControlEndpointSchemas, partnerEndpointSchemas, partnerLifecycleAccountSchema, partnerLifecycleResponseSchema, partnerLifecycleSiteSchema, partnerRealtimeEventSchema, partnerSiteTeamBindingResponseSchema, partnerSitemapActionResponseSchema, partnerSitemapActionSchema, partnerTeamCreatedResponseSchema, partnerTeamDeletedResponseSchema, partnerTeamMemberAddedResponseSchema, partnerTeamMemberRemovedResponseSchema, partnerTeamMemberRoleResponseSchema, partnerTeamMembersResponseSchema, partnerTeamRenamedResponseSchema, partnerWebhookDataSchema, partnerWebhookEnvelopeSchema, queryDimSourceResponseSchema, registerPartnerSiteSchema, registerPartnerUserSchema, renamePartnerTeamSchema, rollupEnvelopeSchema, scheduleStateSchema, searchAppearanceResponseSchema, searchAppearanceRowSchema, searchTypeSchema, searchTypeSupportsDimensions, searchTypeSupportsQueries, siteIntIdCrosswalkResponseSchema, siteListItemSchema, sitemapChangesCompletenessSchema, sitemapChangesResponseSchema, sitemapChangesTruncationReasonSchema, sourceInfoResponseSchema, teamCatalogRefSchema, updatePartnerUserTokensSchema, whoamiResponseSchema };
package/dist/types.d.mts CHANGED
@@ -81,30 +81,6 @@ interface ScheduleState {
81
81
  consecutiveUnchanged: number;
82
82
  policyVersion: number;
83
83
  }
84
- interface SitemapHistoryRecord {
85
- path: string;
86
- capturedAt: string;
87
- lastDownloaded?: string;
88
- lastSubmitted?: string;
89
- type?: string;
90
- isPending?: boolean;
91
- isSitemapsIndex?: boolean;
92
- errors?: string;
93
- warnings?: string;
94
- contents?: Array<{
95
- type?: string;
96
- submitted?: string;
97
- indexed?: string;
98
- }>;
99
- raw?: unknown;
100
- urlCount?: number;
101
- contentHash?: string;
102
- schedule?: ScheduleState;
103
- }
104
- interface SitemapHistoryResponse {
105
- path: string | null;
106
- snapshots: SitemapHistoryRecord[];
107
- }
108
84
  /**
109
85
  * Wire-format extension carried under `InspectionHistoryRecord.raw`.
110
86
  *
@@ -155,10 +131,6 @@ interface InspectionHistoryResponse {
155
131
  url: string | null;
156
132
  records: InspectionHistoryRecord[];
157
133
  }
158
- interface SitemapIndex {
159
- version: 1;
160
- records: Record<string, SitemapHistoryRecord>;
161
- }
162
134
  interface InspectionIndex {
163
135
  version: 1;
164
136
  records: Record<string, InspectionHistoryRecord>;
@@ -313,11 +285,13 @@ type SitemapChangesCompleteness = {
313
285
  } | {
314
286
  _tag: 'truncated';
315
287
  scannedUrls: number;
316
- reasons: Array<'scan_limit' | 'added_limit' | 'removed_limit'>;
288
+ reasons: Array<'scan_limit' | 'added_limit' | 'removed_limit' | 'updated_limit' | 'history_unavailable'>;
289
+ historyAvailableFrom?: number;
317
290
  limits: {
318
291
  scannedUrls: number;
319
292
  added: number;
320
293
  removed: number;
294
+ updated: number;
321
295
  };
322
296
  };
323
297
  interface SitemapChangesResponse {
@@ -326,6 +300,7 @@ interface SitemapChangesResponse {
326
300
  summary: {
327
301
  totalAdded: number;
328
302
  totalRemoved: number;
303
+ totalUpdated: number;
329
304
  period: {
330
305
  days: number;
331
306
  };
@@ -645,6 +620,7 @@ interface GscdumpSitemapsResponse {
645
620
  duplicateCount: number;
646
621
  };
647
622
  };
623
+ generation: GscdumpSitemapGeneration | null;
648
624
  }
649
625
  interface GscdumpSitemapChangesResponse {
650
626
  added: {
@@ -657,14 +633,40 @@ interface GscdumpSitemapChangesResponse {
657
633
  sitemap: string;
658
634
  removedAt: number;
659
635
  }[];
636
+ updated: {
637
+ url: string;
638
+ sitemap: string;
639
+ previousLastmod: string | null;
640
+ lastmod: string | null;
641
+ observedAt: number;
642
+ }[];
660
643
  summary?: {
661
644
  totalAdded: number;
662
645
  totalRemoved: number;
646
+ totalUpdated: number;
663
647
  period: {
664
648
  days: number;
665
649
  };
666
650
  };
667
651
  completeness: SitemapChangesCompleteness;
652
+ generation: GscdumpSitemapGeneration | null;
653
+ }
654
+ interface GscdumpSitemapGeneration {
655
+ id: string;
656
+ observedAt: number;
657
+ publishedAt: number;
658
+ completeness: {
659
+ _tag: 'complete';
660
+ };
661
+ membershipHistoryAvailableFrom: number | null;
662
+ legacyImport: {
663
+ _tag: 'none';
664
+ } | {
665
+ _tag: 'metadata_only';
666
+ importedAt: number;
667
+ recordCount: number;
668
+ source: 'gsc_sitemaps';
669
+ };
668
670
  }
669
671
  type PartnerSitemapAction = {
670
672
  action: 'submit' | 'delete';
@@ -692,27 +694,58 @@ type PartnerSitemapActionResponse = {
692
694
  };
693
695
  interface GscdumpSitemapMembershipParams {
694
696
  urls: string[];
695
- maxAgeDays?: number;
697
+ generationId?: string;
696
698
  }
697
- type GscdumpSitemapMembershipUnavailableReason = 'empty' | 'endpoint_unavailable' | 'site_url_cap_exceeded' | 'stale_sitemaps';
698
- interface GscdumpSitemapMembershipUrl {
699
+ type GscdumpSitemapMembershipEvidence = {
700
+ _tag: 'present';
699
701
  url: string;
700
- normalized: string;
701
- inSitemap: boolean;
702
- sitemapUrl?: string | null;
703
- lastSeenAt?: string | null;
704
- lastmod?: string | null;
705
- sitemapFetchedAt?: string | null;
706
- }
702
+ feedpath: string;
703
+ lastmod: string | null;
704
+ firstSeenAt: number;
705
+ lastSeenAt: number;
706
+ } | {
707
+ _tag: 'absent';
708
+ url: string;
709
+ observedAt: number;
710
+ } | {
711
+ _tag: 'unknown';
712
+ url: string;
713
+ reason: 'no_generation' | 'generation_not_found' | 'generation_incomplete' | 'history_pruned' | 'invalid_url';
714
+ };
707
715
  interface GscdumpSitemapMembershipResponse {
708
- urls: GscdumpSitemapMembershipUrl[];
716
+ generation: GscdumpSitemapGeneration | null;
717
+ evidence: GscdumpSitemapMembershipEvidence[];
709
718
  meta: {
710
- available: boolean;
711
- reason: GscdumpSitemapMembershipUnavailableReason | null;
712
719
  requested: number;
713
720
  checked: number;
714
721
  matched: number;
715
- newestFetchedAt: string | null;
722
+ };
723
+ }
724
+ interface GscdumpSitemapUrlsResponse {
725
+ generation: GscdumpSitemapGeneration;
726
+ items: Array<{
727
+ url: string;
728
+ feedpath: string;
729
+ lastmod: string | null;
730
+ firstSeenAt: number;
731
+ lastSeenAt: number;
732
+ }>;
733
+ page: {
734
+ nextCursor: string | null;
735
+ limit: number;
736
+ };
737
+ }
738
+ interface GscdumpSitemapExportResponse {
739
+ generation: GscdumpSitemapGeneration;
740
+ export: {
741
+ _tag: 'url';
742
+ url: string;
743
+ expiresAt: number;
744
+ contentType: 'application/x-ndjson';
745
+ contentEncoding: 'identity' | 'gzip';
746
+ } | {
747
+ _tag: 'unavailable';
748
+ reason: 'generation_not_found' | 'export_unavailable';
716
749
  };
717
750
  }
718
751
  interface GscdumpIndexingTrendPoint {
@@ -1390,4 +1423,4 @@ interface PartnerWebhookHeaders {
1390
1423
  timestamp?: string | null;
1391
1424
  signature?: string | null;
1392
1425
  }
1393
- export { AddPartnerTeamMemberParams, AnalysisSourcesOptions, AnalysisSourcesResponse, BackfillRange, BackfillResponse, BindPartnerSiteTeamParams, BindPartnerTeamCatalogParams, BindPartnerTeamCatalogResponse, BuilderStateWire, BulkRegisterPartnerSiteResult, BulkRegisterPartnerSitesParams, BulkRegisterPartnerSitesResponse, CanonicalWebhookEventType, ColumnDef, ColumnType, CountriesResponse, CountryRow, CreatePartnerTeamParams, CreateWebhookEnvelopeOptions, DataDetailOptions, DataQueryOptions, DeletePartnerUserResponse, Dimension, Filter, Grain, GscAddAndVerifyResponse, GscApiRange, GscComparisonFilter, GscRowQueryMeta, GscRowQueryResponse, GscSearchType, GscVerificationDnsRecord, GscVerificationMethod, GscVerificationRequest, GscVerificationSite, GscVerificationTokenResponse, GscdumpAnalysisBundleParams, GscdumpAnalysisBundleResponse, GscdumpAnalysisParams, GscdumpAnalysisPreset, GscdumpAnalysisResponse, GscdumpAnalysisSourcesResponse, GscdumpAvailableSite, GscdumpCanonicalDifferenceKind, GscdumpCanonicalMismatchRow, GscdumpCanonicalMismatchesResponse, GscdumpDataDetailResponse, GscdumpDataResponse, GscdumpDataRow, GscdumpHealthResponse, GscdumpIndexPercentResponse, GscdumpIndexPercentSitemap, GscdumpIndexPercentTrendPoint, GscdumpIndexingDiagnosticsResponse, GscdumpIndexingInspectRateLimited, GscdumpIndexingInspectRequest, GscdumpIndexingInspectResponse, GscdumpIndexingInspectResult, GscdumpIndexingIssueSeverity, GscdumpIndexingResponse, GscdumpIndexingTrendPoint, GscdumpIndexingUrl, GscdumpIndexingUrlStatus, GscdumpIndexingUrlsResponse, GscdumpInvisibleUrlRow, GscdumpKeywordSparklinesParams, GscdumpKeywordSparklinesResponse, GscdumpMeta, GscdumpOrphanPageRow, GscdumpPageTrendParams, GscdumpPageTrendResponse, GscdumpPerSitemapHistoryEntry, GscdumpPermissionRecovery, GscdumpQueryTrendParams, GscdumpQueryTrendResponse, GscdumpRichResultItem, GscdumpSiteIntIdCrosswalkEntry, GscdumpSiteIntIdCrosswalkResponse, GscdumpSiteRegistration, GscdumpSiteReportResponse, GscdumpSitemap, GscdumpSitemapChangesResponse, GscdumpSitemapHistory, GscdumpSitemapMembershipParams, GscdumpSitemapMembershipResponse, GscdumpSitemapMembershipUnavailableReason, GscdumpSitemapMembershipUrl, GscdumpSitemapsResponse, GscdumpSyncJobItem, GscdumpSyncJobStatus, GscdumpSyncJobsQueueCounts, GscdumpSyncJobsResponse, GscdumpSyncProgressDateStatus, GscdumpSyncProgressPhaseCounts, GscdumpSyncProgressResponse, GscdumpSyncProgressSite, GscdumpSyncStatusResponse, GscdumpTeamCatalogRef, GscdumpTeamMemberRow, GscdumpTeamRow, GscdumpTopAssociationParams, GscdumpTopAssociationResponse, GscdumpTotals, GscdumpUserMeResponse, GscdumpUserRegistration, GscdumpUserSettings, GscdumpUserSite, GscdumpUserStatus, GscdumpUserTokenUpdate, IndexingDiagnostics, IndexingDiagnosticsParams, IndexingInspectRateLimit, IndexingInspectRateLimited, IndexingInspectRequest, IndexingInspectResponse, IndexingInspectResult, IndexingIssue, IndexingIssueSeverity, IndexingUrlRow, IndexingUrlStatus, IndexingUrlsParams, IndexingUrlsResponse, InspectionHistoryRecord, InspectionHistoryResponse, InspectionIndex, InspectionRecordRaw, Metric, type PartnerLifecycleAccount, type PartnerLifecycleResponse, type PartnerLifecycleSite, PartnerSitemapAction, PartnerSitemapActionResponse, PartnerWebhookData, PartnerWebhookHeaders, RegisterPartnerSiteParams, RegisterPartnerUserParams, RollupEnvelope, Row, ScheduleState, SearchAppearanceResponse, SearchAppearanceRow, SearchTypeOptions, SiteListItem, SitemapAddedRow, SitemapChangesCompleteness, SitemapChangesResponse, SitemapHistoryRecord, SitemapHistoryResponse, SitemapIndex, SitemapRemovedRow, SourceInfoOptions, SourceInfoResponse, TableName, TableSchema, TenantCtx, UpdatePartnerUserTokensParams, WebhookEnvelope, WebhookEventType, WhoamiResponse };
1426
+ export { AddPartnerTeamMemberParams, AnalysisSourcesOptions, AnalysisSourcesResponse, BackfillRange, BackfillResponse, BindPartnerSiteTeamParams, BindPartnerTeamCatalogParams, BindPartnerTeamCatalogResponse, BuilderStateWire, BulkRegisterPartnerSiteResult, BulkRegisterPartnerSitesParams, BulkRegisterPartnerSitesResponse, CanonicalWebhookEventType, ColumnDef, ColumnType, CountriesResponse, CountryRow, CreatePartnerTeamParams, CreateWebhookEnvelopeOptions, DataDetailOptions, DataQueryOptions, DeletePartnerUserResponse, Dimension, Filter, Grain, GscAddAndVerifyResponse, GscApiRange, GscComparisonFilter, GscRowQueryMeta, GscRowQueryResponse, GscSearchType, GscVerificationDnsRecord, GscVerificationMethod, GscVerificationRequest, GscVerificationSite, GscVerificationTokenResponse, GscdumpAnalysisBundleParams, GscdumpAnalysisBundleResponse, GscdumpAnalysisParams, GscdumpAnalysisPreset, GscdumpAnalysisResponse, GscdumpAnalysisSourcesResponse, GscdumpAvailableSite, GscdumpCanonicalDifferenceKind, GscdumpCanonicalMismatchRow, GscdumpCanonicalMismatchesResponse, GscdumpDataDetailResponse, GscdumpDataResponse, GscdumpDataRow, GscdumpHealthResponse, GscdumpIndexPercentResponse, GscdumpIndexPercentSitemap, GscdumpIndexPercentTrendPoint, GscdumpIndexingDiagnosticsResponse, GscdumpIndexingInspectRateLimited, GscdumpIndexingInspectRequest, GscdumpIndexingInspectResponse, GscdumpIndexingInspectResult, GscdumpIndexingIssueSeverity, GscdumpIndexingResponse, GscdumpIndexingTrendPoint, GscdumpIndexingUrl, GscdumpIndexingUrlStatus, GscdumpIndexingUrlsResponse, GscdumpInvisibleUrlRow, GscdumpKeywordSparklinesParams, GscdumpKeywordSparklinesResponse, GscdumpMeta, GscdumpOrphanPageRow, GscdumpPageTrendParams, GscdumpPageTrendResponse, GscdumpPerSitemapHistoryEntry, GscdumpPermissionRecovery, GscdumpQueryTrendParams, GscdumpQueryTrendResponse, GscdumpRichResultItem, GscdumpSiteIntIdCrosswalkEntry, GscdumpSiteIntIdCrosswalkResponse, GscdumpSiteRegistration, GscdumpSiteReportResponse, GscdumpSitemap, GscdumpSitemapChangesResponse, GscdumpSitemapExportResponse, GscdumpSitemapGeneration, GscdumpSitemapHistory, GscdumpSitemapMembershipEvidence, GscdumpSitemapMembershipParams, GscdumpSitemapMembershipResponse, GscdumpSitemapUrlsResponse, GscdumpSitemapsResponse, GscdumpSyncJobItem, GscdumpSyncJobStatus, GscdumpSyncJobsQueueCounts, GscdumpSyncJobsResponse, GscdumpSyncProgressDateStatus, GscdumpSyncProgressPhaseCounts, GscdumpSyncProgressResponse, GscdumpSyncProgressSite, GscdumpSyncStatusResponse, GscdumpTeamCatalogRef, GscdumpTeamMemberRow, GscdumpTeamRow, GscdumpTopAssociationParams, GscdumpTopAssociationResponse, GscdumpTotals, GscdumpUserMeResponse, GscdumpUserRegistration, GscdumpUserSettings, GscdumpUserSite, GscdumpUserStatus, GscdumpUserTokenUpdate, IndexingDiagnostics, IndexingDiagnosticsParams, IndexingInspectRateLimit, IndexingInspectRateLimited, IndexingInspectRequest, IndexingInspectResponse, IndexingInspectResult, IndexingIssue, IndexingIssueSeverity, IndexingUrlRow, IndexingUrlStatus, IndexingUrlsParams, IndexingUrlsResponse, InspectionHistoryRecord, InspectionHistoryResponse, InspectionIndex, InspectionRecordRaw, Metric, type PartnerLifecycleAccount, type PartnerLifecycleResponse, type PartnerLifecycleSite, PartnerSitemapAction, PartnerSitemapActionResponse, PartnerWebhookData, PartnerWebhookHeaders, RegisterPartnerSiteParams, RegisterPartnerUserParams, RollupEnvelope, Row, ScheduleState, SearchAppearanceResponse, SearchAppearanceRow, SearchTypeOptions, SiteListItem, SitemapAddedRow, SitemapChangesCompleteness, SitemapChangesResponse, SitemapRemovedRow, SourceInfoOptions, SourceInfoResponse, TableName, TableSchema, TenantCtx, UpdatePartnerUserTokensParams, WebhookEnvelope, WebhookEventType, WhoamiResponse };