@gscdump/contracts 3.5.0 → 3.6.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.
@@ -2,18 +2,18 @@ import { UnknownHttpV1OperationError, isUnknownHttpV1OperationError } from "./ht
2
2
  import { HttpV1RouteSurfaceName } from "./route-surfaces.mjs";
3
3
  import { GSCDUMP_V1_ROUTE_CATALOG, GscdumpV1Route, GscdumpV1RouteOperationId, HttpV1RouteMethod } from "./route-catalog.mjs";
4
4
  type PathParameterNames<TTemplate extends string> = TTemplate extends `${string}{${infer TName}}${infer TRest}` ? TName | PathParameterNames<TRest> : never;
5
- type GscdumpV1PathParams<TId extends GscdumpV1RouteOperationId> = [PathParameterNames<GscdumpV1Route<TId>['template']>] extends [never] ? undefined : { [TName in PathParameterNames<GscdumpV1Route<TId>['template']>]: string | number; };
6
- type GscdumpV1PathArguments<TId extends GscdumpV1RouteOperationId> = GscdumpV1PathParams<TId> extends undefined ? [params?: undefined] : [params: GscdumpV1PathParams<TId>];
7
- interface GscdumpV1PathsOptions {
5
+ export type GscdumpV1PathParams<TId extends GscdumpV1RouteOperationId> = [PathParameterNames<GscdumpV1Route<TId>['template']>] extends [never] ? undefined : { [TName in PathParameterNames<GscdumpV1Route<TId>['template']>]: string | number; };
6
+ export type GscdumpV1PathArguments<TId extends GscdumpV1RouteOperationId> = GscdumpV1PathParams<TId> extends undefined ? [params?: undefined] : [params: GscdumpV1PathParams<TId>];
7
+ export interface GscdumpV1PathsOptions {
8
8
  /** Root replacing the contract's `/api` segment. */
9
9
  apiRoot?: string;
10
10
  }
11
- type GscdumpV1PathOperation<TId extends GscdumpV1RouteOperationId = GscdumpV1RouteOperationId> = GscdumpV1Route<TId> & {
11
+ export type GscdumpV1PathOperation<TId extends GscdumpV1RouteOperationId = GscdumpV1RouteOperationId> = GscdumpV1Route<TId> & {
12
12
  prefix: typeof GSCDUMP_V1_ROUTE_CATALOG.surfaces[GscdumpV1Route<TId>['surface']]['prefix'];
13
13
  };
14
- interface GscdumpV1Paths {
14
+ export interface GscdumpV1Paths {
15
15
  operation: <const TId extends GscdumpV1RouteOperationId>(id: TId) => GscdumpV1PathOperation<TId>;
16
16
  path: <const TId extends GscdumpV1RouteOperationId>(id: TId, ...args: GscdumpV1PathArguments<TId>) => string;
17
17
  }
18
- declare function createGscdumpV1Paths(options?: GscdumpV1PathsOptions): GscdumpV1Paths;
19
- export { GscdumpV1PathArguments, GscdumpV1PathOperation, GscdumpV1PathParams, GscdumpV1Paths, GscdumpV1PathsOptions, type GscdumpV1Route, type GscdumpV1RouteOperationId, type HttpV1RouteMethod, type HttpV1RouteSurfaceName, type UnknownHttpV1OperationError, createGscdumpV1Paths, isUnknownHttpV1OperationError };
18
+ export declare function createGscdumpV1Paths(options?: GscdumpV1PathsOptions): GscdumpV1Paths;
19
+ export { type GscdumpV1Route, type GscdumpV1RouteOperationId, type HttpV1RouteMethod, type HttpV1RouteSurfaceName, type UnknownHttpV1OperationError, isUnknownHttpV1OperationError };
@@ -1,14 +1,14 @@
1
1
  import { z } from "zod";
2
- declare const GSCDUMP_REALTIME_PROTOCOL_VERSION: 1;
3
- declare const GSCDUMP_REALTIME_SUBPROTOCOL: "gscdump.v1";
4
- declare const GSCDUMP_REALTIME_TICKET_PREFIX: "gscdump.ticket.v1";
5
- declare const GSCDUMP_REALTIME_TICKET_ISSUER: "https://gscdump.com";
6
- declare const GSCDUMP_REALTIME_TICKET_AUDIENCE: "https://gscdump.com/ws/v1";
7
- declare const GSCDUMP_REALTIME_PING: "ping";
8
- declare const GSCDUMP_REALTIME_PONG: "pong";
9
- declare const GSCDUMP_REALTIME_TICKET_TTL_SECONDS: 60;
10
- declare const GSCDUMP_REALTIME_MAX_CONNECTION_SECONDS: 900;
11
- declare const GSCDUMP_REALTIME_TICKET_POLICY: {
2
+ export declare const GSCDUMP_REALTIME_PROTOCOL_VERSION: 1;
3
+ export declare const GSCDUMP_REALTIME_SUBPROTOCOL: "gscdump.v1";
4
+ export declare const GSCDUMP_REALTIME_TICKET_PREFIX: "gscdump.ticket.v1";
5
+ export declare const GSCDUMP_REALTIME_TICKET_ISSUER: "https://gscdump.com";
6
+ export declare const GSCDUMP_REALTIME_TICKET_AUDIENCE: "https://gscdump.com/ws/v1";
7
+ export declare const GSCDUMP_REALTIME_PING: "ping";
8
+ export declare const GSCDUMP_REALTIME_PONG: "pong";
9
+ export declare const GSCDUMP_REALTIME_TICKET_TTL_SECONDS: 60;
10
+ export declare const GSCDUMP_REALTIME_MAX_CONNECTION_SECONDS: 900;
11
+ export declare const GSCDUMP_REALTIME_TICKET_POLICY: {
12
12
  readonly algorithm: "HMAC-SHA-256";
13
13
  readonly minimumSigningKeyBytes: 32;
14
14
  readonly jtiRandomBits: 128;
@@ -19,7 +19,7 @@ declare const GSCDUMP_REALTIME_TICKET_POLICY: {
19
19
  readonly maxBytes: 2048;
20
20
  readonly singleUse: true;
21
21
  };
22
- declare const GSCDUMP_REALTIME_CONNECTION_POLICY: {
22
+ export declare const GSCDUMP_REALTIME_CONNECTION_POLICY: {
23
23
  readonly helloDeadlineMs: 10000;
24
24
  readonly maxLifetimeMs: 900000;
25
25
  readonly connectionRefreshBeforeExpiryMs: 30000;
@@ -29,11 +29,11 @@ declare const GSCDUMP_REALTIME_CONNECTION_POLICY: {
29
29
  readonly reconnectMaxDelayMs: 30000;
30
30
  readonly reconnectJitter: "equal";
31
31
  };
32
- declare const GSCDUMP_REALTIME_REPLAY_POLICY: {
32
+ export declare const GSCDUMP_REALTIME_REPLAY_POLICY: {
33
33
  readonly maxAgeMs: 86400000;
34
34
  readonly maxEventsPerStream: 10000;
35
35
  };
36
- declare const GSCDUMP_REALTIME_LIMITS: {
36
+ export declare const GSCDUMP_REALTIME_LIMITS: {
37
37
  readonly clientFrameMaxBytes: 16384;
38
38
  readonly durableEventMaxBytes: 65536;
39
39
  readonly ephemeralEventMaxBytes: 16384;
@@ -42,7 +42,7 @@ declare const GSCDUMP_REALTIME_LIMITS: {
42
42
  readonly batchMaxBytes: 262144;
43
43
  readonly connectionAttachmentMaxBytes: 2048;
44
44
  };
45
- declare const GSCDUMP_REALTIME_ACK_POLICY: {
45
+ export declare const GSCDUMP_REALTIME_ACK_POLICY: {
46
46
  readonly softLagEvents: 100;
47
47
  readonly softLagBytes: 1048576;
48
48
  readonly hardLagEvents: 500;
@@ -50,7 +50,7 @@ declare const GSCDUMP_REALTIME_ACK_POLICY: {
50
50
  readonly hardLagCloseCode: 1013;
51
51
  readonly effectRetryBeforeUnsafeResync: 3;
52
52
  };
53
- declare const GSCDUMP_REALTIME_CLOSE_CODES: {
53
+ export declare const GSCDUMP_REALTIME_CLOSE_CODES: {
54
54
  readonly normal: 1000;
55
55
  readonly protocolError: 1002;
56
56
  readonly policyViolation: 1008;
@@ -59,9 +59,9 @@ declare const GSCDUMP_REALTIME_CLOSE_CODES: {
59
59
  readonly overloadedOrAckLag: 1013;
60
60
  readonly maximumLifetime: 4001;
61
61
  };
62
- declare const REALTIME_V1_RESOURCE_TYPES: readonly ["partner.user", "partner.team", "user.sites", "site.registration", "site.lifecycle", "site.analytics", "site.sitemaps", "site.indexing", "site.auth"];
63
- declare const REALTIME_V1_EVENT_NAMES: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.lifecycle.progress", "site.analytics.ready", "site.sitemaps.ready", "site.indexing.ready", "site.auth.failed", "site.lifecycle.failed", "site.registration.changed"];
64
- declare const REALTIME_V1_EVENT_SEMANTICS: {
62
+ export declare const REALTIME_V1_RESOURCE_TYPES: readonly ["partner.user", "partner.team", "user.sites", "site.registration", "site.lifecycle", "site.analytics", "site.sitemaps", "site.indexing", "site.auth"];
63
+ export declare const REALTIME_V1_EVENT_NAMES: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.lifecycle.progress", "site.analytics.ready", "site.sitemaps.ready", "site.indexing.ready", "site.auth.failed", "site.lifecycle.failed", "site.registration.changed"];
64
+ export declare const REALTIME_V1_EVENT_SEMANTICS: {
65
65
  readonly 'user.lifecycle.changed': {
66
66
  readonly delivery: "durable";
67
67
  readonly baseChanges: readonly ["partner.user", "user.sites"];
@@ -99,7 +99,7 @@ declare const REALTIME_V1_EVENT_SEMANTICS: {
99
99
  readonly baseChanges: readonly ["site.registration", "user.sites"];
100
100
  };
101
101
  };
102
- declare function createRealtimeV1Schemas(): {
102
+ export declare function createRealtimeV1Schemas(): {
103
103
  opaquePublicId: z.ZodString;
104
104
  userStreamId: z.ZodString;
105
105
  partnerStreamId: z.ZodString;
@@ -656,15 +656,14 @@ declare function createRealtimeV1Schemas(): {
656
656
  }, z.core.$strict>;
657
657
  }, z.core.$strict>]>;
658
658
  };
659
- type RealtimeV1Schemas = ReturnType<typeof createRealtimeV1Schemas>;
660
- type RealtimeV1StreamId = z.infer<RealtimeV1Schemas['streamId']>;
661
- type RealtimeV1Cursor = z.infer<RealtimeV1Schemas['cursor']>;
662
- type RealtimeV1StreamHead = z.infer<RealtimeV1Schemas['streamHead']>;
663
- type RealtimeTicketV1Response = z.infer<RealtimeV1Schemas['ticketResponseClient']>;
664
- type RealtimeV1TicketRequest = z.infer<RealtimeV1Schemas['ticketRequest']>;
665
- type RealtimeV1TicketClaims = z.infer<RealtimeV1Schemas['ticketClaims']>;
666
- type RealtimeV1ResourceChange = z.infer<RealtimeV1Schemas['resourceChange']>;
667
- type RealtimeV1Event = z.infer<RealtimeV1Schemas['event']>;
668
- type RealtimeV1ClientFrame = z.infer<RealtimeV1Schemas['clientFrame']>;
669
- type RealtimeV1ServerFrame = z.infer<RealtimeV1Schemas['serverFrame']>;
670
- export { GSCDUMP_REALTIME_ACK_POLICY, GSCDUMP_REALTIME_CLOSE_CODES, GSCDUMP_REALTIME_CONNECTION_POLICY, GSCDUMP_REALTIME_LIMITS, GSCDUMP_REALTIME_MAX_CONNECTION_SECONDS, GSCDUMP_REALTIME_PING, GSCDUMP_REALTIME_PONG, GSCDUMP_REALTIME_PROTOCOL_VERSION, GSCDUMP_REALTIME_REPLAY_POLICY, GSCDUMP_REALTIME_SUBPROTOCOL, GSCDUMP_REALTIME_TICKET_AUDIENCE, GSCDUMP_REALTIME_TICKET_ISSUER, GSCDUMP_REALTIME_TICKET_POLICY, GSCDUMP_REALTIME_TICKET_PREFIX, GSCDUMP_REALTIME_TICKET_TTL_SECONDS, REALTIME_V1_EVENT_NAMES, REALTIME_V1_EVENT_SEMANTICS, REALTIME_V1_RESOURCE_TYPES, RealtimeTicketV1Response, RealtimeV1ClientFrame, RealtimeV1Cursor, RealtimeV1Event, RealtimeV1ResourceChange, RealtimeV1Schemas, RealtimeV1ServerFrame, RealtimeV1StreamHead, RealtimeV1StreamId, RealtimeV1TicketClaims, RealtimeV1TicketRequest, createRealtimeV1Schemas };
659
+ export type RealtimeV1Schemas = ReturnType<typeof createRealtimeV1Schemas>;
660
+ export type RealtimeV1StreamId = z.infer<RealtimeV1Schemas['streamId']>;
661
+ export type RealtimeV1Cursor = z.infer<RealtimeV1Schemas['cursor']>;
662
+ export type RealtimeV1StreamHead = z.infer<RealtimeV1Schemas['streamHead']>;
663
+ export type RealtimeTicketV1Response = z.infer<RealtimeV1Schemas['ticketResponseClient']>;
664
+ export type RealtimeV1TicketRequest = z.infer<RealtimeV1Schemas['ticketRequest']>;
665
+ export type RealtimeV1TicketClaims = z.infer<RealtimeV1Schemas['ticketClaims']>;
666
+ export type RealtimeV1ResourceChange = z.infer<RealtimeV1Schemas['resourceChange']>;
667
+ export type RealtimeV1Event = z.infer<RealtimeV1Schemas['event']>;
668
+ export type RealtimeV1ClientFrame = z.infer<RealtimeV1Schemas['clientFrame']>;
669
+ export type RealtimeV1ServerFrame = z.infer<RealtimeV1Schemas['serverFrame']>;
@@ -1,6 +1,6 @@
1
1
  import { HttpV1RouteSurfaceName } from "./route-surfaces.mjs";
2
- type HttpV1RouteMethod = 'DELETE' | 'GET' | 'PATCH' | 'POST';
3
- declare const GSCDUMP_V1_ROUTE_CATALOG: {
2
+ export type HttpV1RouteMethod = 'DELETE' | 'GET' | 'PATCH' | 'POST';
3
+ export declare const GSCDUMP_V1_ROUTE_CATALOG: {
4
4
  readonly surfaces: {
5
5
  readonly partner: {
6
6
  readonly prefix: "/api/partner/v1";
@@ -293,8 +293,7 @@ declare const GSCDUMP_V1_ROUTE_CATALOG: {
293
293
  };
294
294
  };
295
295
  };
296
- type GscdumpV1RouteOperationId = keyof typeof GSCDUMP_V1_ROUTE_CATALOG.operations;
297
- type GscdumpV1Route<TId extends GscdumpV1RouteOperationId = GscdumpV1RouteOperationId> = TId extends GscdumpV1RouteOperationId ? {
296
+ export type GscdumpV1RouteOperationId = keyof typeof GSCDUMP_V1_ROUTE_CATALOG.operations;
297
+ export type GscdumpV1Route<TId extends GscdumpV1RouteOperationId = GscdumpV1RouteOperationId> = TId extends GscdumpV1RouteOperationId ? {
298
298
  id: TId;
299
- } & typeof GSCDUMP_V1_ROUTE_CATALOG.operations[TId] : never;
300
- export { GSCDUMP_V1_ROUTE_CATALOG, GscdumpV1Route, GscdumpV1RouteOperationId, HttpV1RouteMethod };
299
+ } & typeof GSCDUMP_V1_ROUTE_CATALOG.operations[TId] : never;
@@ -1,3 +1,2 @@
1
- declare const HTTP_V1_ROUTE_SURFACE_NAMES: readonly ["partner", "analytics", "realtime"];
2
- type HttpV1RouteSurfaceName = typeof HTTP_V1_ROUTE_SURFACE_NAMES[number];
3
- export { HTTP_V1_ROUTE_SURFACE_NAMES, HttpV1RouteSurfaceName };
1
+ export declare const HTTP_V1_ROUTE_SURFACE_NAMES: readonly ["partner", "analytics", "realtime"];
2
+ export type HttpV1RouteSurfaceName = typeof HTTP_V1_ROUTE_SURFACE_NAMES[number];
@@ -1,2 +1 @@
1
- declare const GSCDUMP_HTTP_V1_VERSION: "1.0";
2
- export { GSCDUMP_HTTP_V1_VERSION };
1
+ export declare const GSCDUMP_HTTP_V1_VERSION: "1.0";
@@ -1,9 +1,8 @@
1
- declare const WEBHOOK_CONTRACT_VERSION = "2026-05-11";
2
- declare const WEBHOOK_SIGNATURE_HEADER = "X-GSCDump-Signature";
3
- declare const WEBHOOK_EVENT_HEADER = "X-GSCDump-Event";
4
- declare const WEBHOOK_DELIVERY_HEADER = "X-GSCDump-Delivery";
5
- declare const WEBHOOK_CONTRACT_VERSION_HEADER = "X-GSCDump-Contract-Version";
6
- declare const WEBHOOK_TIMESTAMP_HEADER = "X-GSCDump-Timestamp";
7
- declare const CANONICAL_WEBHOOK_EVENTS: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.analytics.ready", "site.indexing.ready", "site.auth.failed", "job.failed"];
8
- declare const VALID_WEBHOOK_EVENTS: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.analytics.ready", "site.indexing.ready", "site.auth.failed", "job.failed"];
9
- export { CANONICAL_WEBHOOK_EVENTS, VALID_WEBHOOK_EVENTS, WEBHOOK_CONTRACT_VERSION, WEBHOOK_CONTRACT_VERSION_HEADER, WEBHOOK_DELIVERY_HEADER, WEBHOOK_EVENT_HEADER, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER };
1
+ export declare const WEBHOOK_CONTRACT_VERSION = "2026-05-11";
2
+ export declare const WEBHOOK_SIGNATURE_HEADER = "X-GSCDump-Signature";
3
+ export declare const WEBHOOK_EVENT_HEADER = "X-GSCDump-Event";
4
+ export declare const WEBHOOK_DELIVERY_HEADER = "X-GSCDump-Delivery";
5
+ export declare const WEBHOOK_CONTRACT_VERSION_HEADER = "X-GSCDump-Contract-Version";
6
+ export declare const WEBHOOK_TIMESTAMP_HEADER = "X-GSCDump-Timestamp";
7
+ export declare const CANONICAL_WEBHOOK_EVENTS: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.analytics.ready", "site.indexing.ready", "site.auth.failed", "job.failed"];
8
+ export declare const VALID_WEBHOOK_EVENTS: readonly ["user.lifecycle.changed", "site.lifecycle.changed", "site.analytics.ready", "site.indexing.ready", "site.auth.failed", "job.failed"];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/contracts",
3
3
  "type": "module",
4
- "version": "3.5.0",
4
+ "version": "3.6.0",
5
5
  "description": "Shared gscdump.com API, webhook, realtime, and lifecycle contracts.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -81,11 +81,11 @@
81
81
  "node": ">=22"
82
82
  },
83
83
  "dependencies": {
84
- "zod": "^4.5.4"
84
+ "zod": "^4.6.1"
85
85
  },
86
86
  "devDependencies": {
87
- "typescript": "^7.0.2",
88
- "vitest": "^4.1.11"
87
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
88
+ "vitest": "^5.0.0"
89
89
  },
90
90
  "scripts": {
91
91
  "build": "obuild",