@gscdump/contracts 5.5.0 → 5.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.
@@ -1,6 +1,7 @@
1
1
  import { siteHoldReasonSchema } from "../entitlements.mjs";
2
2
  import { watchedUrlsChangeRequestSchema, watchedUrlsChangeResponseSchema, watchedUrlsResponseSchema } from "../indexing-coverage.mjs";
3
3
  import { addPartnerTeamMemberSchema, bindPartnerSiteTeamSchema, bindPartnerTeamCatalogResponseSchema, bindPartnerTeamCatalogSchema, builderStateSchema, createPartnerTeamSchema, gscComparisonFilterSchema, gscdumpAnalysisBundleResponseSchema, gscdumpAnalysisPresetSchema, gscdumpAnalysisResponseSchema, gscdumpAvailableSiteSchema, gscdumpCanonicalMismatchesResponseSchema, gscdumpDataDetailResponseSchema, gscdumpDataResponseSchema, gscdumpDeletePartnerUserResponseSchema, gscdumpIndexPercentResponseSchema, gscdumpIndexingDiagnosticsResponseSchema, gscdumpIndexingResponseSchema, gscdumpIndexingTransitionFieldSchema, gscdumpKeywordSparklinesResponseSchema, gscdumpPageTrendResponseSchema, gscdumpQueryTrendResponseSchema, gscdumpSiteRegistrationSchema, gscdumpSitemapChangesResponseSchema, gscdumpSitemapExportQuerySchema, gscdumpSitemapExportResponseSchema, gscdumpSitemapMembershipParamsSchema, gscdumpSitemapMembershipResponseSchema, gscdumpSitemapUrlsQuerySchema, gscdumpSitemapUrlsResponseSchema, gscdumpSitemapsResponseSchema, gscdumpTeamRoleSchema, gscdumpTopAssociationResponseSchema, gscdumpUserRegistrationSchema, indexingUrlsResponseSchema, partnerSiteTeamBindingResponseSchema, partnerSitemapActionResponseSchema, partnerSitemapActionSchema, partnerTeamCreatedResponseSchema, partnerTeamDeletedResponseSchema, partnerTeamMemberAddedResponseSchema, partnerTeamMemberRemovedResponseSchema, partnerTeamMemberRoleResponseSchema, partnerTeamMembersResponseSchema, partnerTeamRenamedResponseSchema, registerPartnerSiteSchema, registerPartnerUserSchema, renamePartnerTeamSchema, searchTypeSchema, siteIntIdCrosswalkResponseSchema, sitemapChangesTruncationReasonSchema, teamCatalogRefSchema, updatePartnerUserTokensSchema } from "../schemas.mjs";
4
+ import { siteVersionBeginRequestSchema, siteVersionCandidateRequestSchema, siteVersionCandidateSchema, siteVersionIdentityResponseSchema, siteVersionPreviewRequestSchema, siteVersionPreviewSchema } from "../site-version.mjs";
4
5
  import "./version.mjs";
5
6
  import { HTTP_V1_ERROR_CODES, defineHttpOperation, defineHttpSurface, defineResponseObject, defineSuccessResponse } from "./http-core.mjs";
6
7
  import { analyticsCoverageQueryV1Schema, analyticsCoverageV1Schemas } from "./analytics-coverage.mjs";
@@ -778,6 +779,63 @@ function createGscdumpV1Protocol() {
778
779
  "internal_error",
779
780
  "contract_violation"
780
781
  ];
782
+ const siteVersionErrors = [
783
+ ...partnerSiteErrors,
784
+ "conflict",
785
+ "service_unavailable"
786
+ ];
787
+ const siteVersionIdentityResponse = defineSuccessResponse({
788
+ producer: siteVersionIdentityResponseSchema,
789
+ client: siteVersionIdentityResponseSchema
790
+ }, partnerResponseMeta);
791
+ const siteVersionPreviewResponse = defineSuccessResponse({
792
+ producer: siteVersionPreviewSchema,
793
+ client: siteVersionPreviewSchema
794
+ }, partnerResponseMeta);
795
+ const siteVersionCandidateResponse = defineSuccessResponse({
796
+ producer: siteVersionCandidateSchema,
797
+ client: siteVersionCandidateSchema
798
+ }, partnerResponseMeta);
799
+ const siteVersionExampleIdentity = {
800
+ siteId: "s_01",
801
+ userId: "u_01",
802
+ teamId: "t_01",
803
+ requestedUrl: "https://example.com/",
804
+ catalogSiteId: 17,
805
+ warehouse: "team_catalog",
806
+ namespace: "gsc",
807
+ version: 0,
808
+ revision: 1,
809
+ catalogRevision: 1,
810
+ dataVersion: 1
811
+ };
812
+ const siteVersionExamplePreview = {
813
+ _tag: "eligible",
814
+ identity: siteVersionExampleIdentity,
815
+ requestedUrl: "https://www.example.com/",
816
+ window: {
817
+ startDate: "2026-09-05",
818
+ endDate: "2026-10-02"
819
+ },
820
+ requiredSlices: [{
821
+ table: "dates",
822
+ searchType: "web"
823
+ }],
824
+ candidateNamespace: "gsc_v1",
825
+ candidateVersion: 1
826
+ };
827
+ const siteVersionExampleCandidate = {
828
+ version: 1,
829
+ namespace: "gsc_v1",
830
+ requestedUrl: "https://www.example.com/",
831
+ window: siteVersionExamplePreview.window,
832
+ requiredSlices: siteVersionExamplePreview.requiredSlices
833
+ };
834
+ const siteVersionExampleMeta = {
835
+ requestId: "req_01",
836
+ surface: "partner",
837
+ version: "1.0"
838
+ };
781
839
  const partnerUserErrors = [
782
840
  "invalid_request",
783
841
  "unauthorized",
@@ -5799,6 +5857,421 @@ function createGscdumpV1Protocol() {
5799
5857
  }
5800
5858
  }
5801
5859
  }
5860
+ }),
5861
+ getRegisteredHostIdentity: defineHttpOperation({
5862
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.identity.get"),
5863
+ visibility: "public",
5864
+ semantics: {
5865
+ kind: "query",
5866
+ sideEffects: "none",
5867
+ idempotent: true,
5868
+ retry: "idempotent",
5869
+ readConsistency: "primary"
5870
+ },
5871
+ auth: {
5872
+ credentials: ["partner_key"],
5873
+ scopes: ["sites:read"],
5874
+ ownership: [{
5875
+ credential: "partner_key",
5876
+ rule: "authorized_site"
5877
+ }]
5878
+ },
5879
+ request: {
5880
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
5881
+ query: null,
5882
+ headers: requestHeaders,
5883
+ body: null
5884
+ },
5885
+ responses: { 200: siteVersionIdentityResponse },
5886
+ errors: siteVersionErrors,
5887
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
5888
+ resources: {
5889
+ reads: [{
5890
+ type: "site.registration",
5891
+ idFrom: "params.siteId"
5892
+ }],
5893
+ changes: []
5894
+ },
5895
+ lifecycle: { introduced: "5.6.0" },
5896
+ docs: {
5897
+ summary: "Get registered host identity",
5898
+ description: "Returns the authorized Site version and its effective Team Catalog binding.",
5899
+ tags: ["Sites"],
5900
+ examples: {
5901
+ request: { params: { siteId: "s_01" } },
5902
+ response: {
5903
+ data: {
5904
+ identity: siteVersionExampleIdentity,
5905
+ coverage: { _tag: "legacy" }
5906
+ },
5907
+ meta: siteVersionExampleMeta
5908
+ }
5909
+ }
5910
+ }
5911
+ }),
5912
+ previewRegisteredHost: defineHttpOperation({
5913
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.preview"),
5914
+ visibility: "public",
5915
+ semantics: {
5916
+ kind: "query",
5917
+ sideEffects: "none",
5918
+ idempotent: true,
5919
+ retry: "idempotent",
5920
+ readConsistency: "primary"
5921
+ },
5922
+ auth: {
5923
+ credentials: ["partner_key"],
5924
+ scopes: ["sites:read"],
5925
+ ownership: [{
5926
+ credential: "partner_key",
5927
+ rule: "authorized_site"
5928
+ }]
5929
+ },
5930
+ request: {
5931
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
5932
+ query: null,
5933
+ headers: requestHeaders,
5934
+ body: siteVersionPreviewRequestSchema
5935
+ },
5936
+ responses: { 200: siteVersionPreviewResponse },
5937
+ errors: siteVersionErrors,
5938
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
5939
+ resources: {
5940
+ reads: [{
5941
+ type: "site.registration",
5942
+ idFrom: "params.siteId"
5943
+ }],
5944
+ changes: []
5945
+ },
5946
+ lifecycle: { introduced: "5.6.0" },
5947
+ docs: {
5948
+ summary: "Preview registered host correction",
5949
+ description: "Checks exact-host correction eligibility without creating resources or changing the Site.",
5950
+ tags: ["Sites"],
5951
+ examples: {
5952
+ request: {
5953
+ params: { siteId: "s_01" },
5954
+ body: {
5955
+ requestedUrl: siteVersionExamplePreview.requestedUrl,
5956
+ catalogSiteId: 17,
5957
+ window: siteVersionExamplePreview.window
5958
+ }
5959
+ },
5960
+ response: {
5961
+ data: siteVersionExamplePreview,
5962
+ meta: siteVersionExampleMeta
5963
+ }
5964
+ }
5965
+ }
5966
+ }),
5967
+ beginRegisteredHost: defineHttpOperation({
5968
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.begin"),
5969
+ visibility: "public",
5970
+ semantics: {
5971
+ kind: "mutation",
5972
+ sideEffects: "state",
5973
+ idempotent: false,
5974
+ retry: "never",
5975
+ readConsistency: null
5976
+ },
5977
+ auth: {
5978
+ credentials: ["partner_key"],
5979
+ scopes: ["sites:write"],
5980
+ ownership: [{
5981
+ credential: "partner_key",
5982
+ rule: "authorized_site"
5983
+ }]
5984
+ },
5985
+ request: {
5986
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
5987
+ query: null,
5988
+ headers: requestHeaders,
5989
+ body: siteVersionBeginRequestSchema
5990
+ },
5991
+ responses: { 200: siteVersionCandidateResponse },
5992
+ errors: siteVersionErrors,
5993
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
5994
+ resources: {
5995
+ reads: [{
5996
+ type: "site.registration",
5997
+ idFrom: "params.siteId"
5998
+ }],
5999
+ changes: [{
6000
+ type: "site.lifecycle",
6001
+ idFrom: "params.siteId"
6002
+ }]
6003
+ },
6004
+ lifecycle: { introduced: "5.6.0" },
6005
+ docs: {
6006
+ summary: "Begin registered host correction",
6007
+ description: "Reserves an isolated candidate. Current registration and current reads keep their existing version.",
6008
+ tags: ["Sites"],
6009
+ examples: {
6010
+ request: {
6011
+ params: { siteId: "s_01" },
6012
+ body: { preview: siteVersionExamplePreview }
6013
+ },
6014
+ response: {
6015
+ data: {
6016
+ ...siteVersionExampleCandidate,
6017
+ state: "collecting"
6018
+ },
6019
+ meta: siteVersionExampleMeta
6020
+ }
6021
+ }
6022
+ }
6023
+ }),
6024
+ verifyRegisteredHost: defineHttpOperation({
6025
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.verify"),
6026
+ visibility: "public",
6027
+ semantics: {
6028
+ kind: "mutation",
6029
+ sideEffects: "state",
6030
+ idempotent: true,
6031
+ retry: "idempotent",
6032
+ readConsistency: null
6033
+ },
6034
+ auth: {
6035
+ credentials: ["partner_key"],
6036
+ scopes: ["sites:write"],
6037
+ ownership: [{
6038
+ credential: "partner_key",
6039
+ rule: "authorized_site"
6040
+ }]
6041
+ },
6042
+ request: {
6043
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
6044
+ query: null,
6045
+ headers: requestHeaders,
6046
+ body: siteVersionCandidateRequestSchema
6047
+ },
6048
+ responses: { 200: siteVersionCandidateResponse },
6049
+ errors: siteVersionErrors,
6050
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
6051
+ resources: {
6052
+ reads: [{
6053
+ type: "site.analytics",
6054
+ idFrom: "params.siteId"
6055
+ }],
6056
+ changes: [{
6057
+ type: "site.lifecycle",
6058
+ idFrom: "params.siteId"
6059
+ }]
6060
+ },
6061
+ lifecycle: { introduced: "5.6.0" },
6062
+ docs: {
6063
+ summary: "Verify registered host correction",
6064
+ description: "Requires completed Google collection and matching physical coverage for every required slice.",
6065
+ tags: ["Sites"],
6066
+ examples: {
6067
+ request: {
6068
+ params: { siteId: "s_01" },
6069
+ body: {
6070
+ version: 1,
6071
+ identity: siteVersionExampleIdentity
6072
+ }
6073
+ },
6074
+ response: {
6075
+ data: {
6076
+ ...siteVersionExampleCandidate,
6077
+ state: "verified"
6078
+ },
6079
+ meta: siteVersionExampleMeta
6080
+ }
6081
+ }
6082
+ }
6083
+ }),
6084
+ promoteRegisteredHost: defineHttpOperation({
6085
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.promote"),
6086
+ visibility: "public",
6087
+ semantics: {
6088
+ kind: "mutation",
6089
+ sideEffects: "state",
6090
+ idempotent: true,
6091
+ retry: "idempotent",
6092
+ readConsistency: null
6093
+ },
6094
+ auth: {
6095
+ credentials: ["partner_key"],
6096
+ scopes: ["sites:write"],
6097
+ ownership: [{
6098
+ credential: "partner_key",
6099
+ rule: "authorized_site"
6100
+ }]
6101
+ },
6102
+ request: {
6103
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
6104
+ query: null,
6105
+ headers: requestHeaders,
6106
+ body: siteVersionCandidateRequestSchema
6107
+ },
6108
+ responses: { 200: siteVersionCandidateResponse },
6109
+ errors: siteVersionErrors,
6110
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
6111
+ resources: {
6112
+ reads: [{
6113
+ type: "site.registration",
6114
+ idFrom: "params.siteId"
6115
+ }],
6116
+ changes: [{
6117
+ type: "site.registration",
6118
+ idFrom: "params.siteId"
6119
+ }, {
6120
+ type: "site.analytics",
6121
+ idFrom: "params.siteId"
6122
+ }]
6123
+ },
6124
+ lifecycle: { introduced: "5.6.0" },
6125
+ docs: {
6126
+ summary: "Promote registered host correction",
6127
+ description: "Atomically promotes a verified candidate while preserving Source and Catalog identities.",
6128
+ tags: ["Sites"],
6129
+ examples: {
6130
+ request: {
6131
+ params: { siteId: "s_01" },
6132
+ body: {
6133
+ version: 1,
6134
+ identity: siteVersionExampleIdentity
6135
+ }
6136
+ },
6137
+ response: {
6138
+ data: {
6139
+ ...siteVersionExampleCandidate,
6140
+ state: "active"
6141
+ },
6142
+ meta: siteVersionExampleMeta
6143
+ }
6144
+ }
6145
+ }
6146
+ }),
6147
+ abortRegisteredHost: defineHttpOperation({
6148
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.abort"),
6149
+ visibility: "public",
6150
+ semantics: {
6151
+ kind: "mutation",
6152
+ sideEffects: "state",
6153
+ idempotent: true,
6154
+ retry: "idempotent",
6155
+ readConsistency: null
6156
+ },
6157
+ auth: {
6158
+ credentials: ["partner_key"],
6159
+ scopes: ["sites:write"],
6160
+ ownership: [{
6161
+ credential: "partner_key",
6162
+ rule: "authorized_site"
6163
+ }]
6164
+ },
6165
+ request: {
6166
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
6167
+ query: null,
6168
+ headers: requestHeaders,
6169
+ body: siteVersionCandidateRequestSchema
6170
+ },
6171
+ responses: { 200: siteVersionCandidateResponse },
6172
+ errors: siteVersionErrors,
6173
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
6174
+ resources: {
6175
+ reads: [{
6176
+ type: "site.registration",
6177
+ idFrom: "params.siteId"
6178
+ }],
6179
+ changes: [{
6180
+ type: "site.lifecycle",
6181
+ idFrom: "params.siteId"
6182
+ }]
6183
+ },
6184
+ lifecycle: { introduced: "5.6.0" },
6185
+ docs: {
6186
+ summary: "Abort registered host correction",
6187
+ description: "Excludes the candidate. Historical tables and the active Site version remain preserved.",
6188
+ tags: ["Sites"],
6189
+ examples: {
6190
+ request: {
6191
+ params: { siteId: "s_01" },
6192
+ body: {
6193
+ version: 1,
6194
+ identity: siteVersionExampleIdentity
6195
+ }
6196
+ },
6197
+ response: {
6198
+ data: {
6199
+ ...siteVersionExampleCandidate,
6200
+ state: "aborted"
6201
+ },
6202
+ meta: siteVersionExampleMeta
6203
+ }
6204
+ }
6205
+ }
6206
+ }),
6207
+ rollbackRegisteredHost: defineHttpOperation({
6208
+ ...gscdumpV1OperationRoute("partner.sites.registered_host.rollback"),
6209
+ visibility: "public",
6210
+ semantics: {
6211
+ kind: "mutation",
6212
+ sideEffects: "state",
6213
+ idempotent: true,
6214
+ retry: "idempotent",
6215
+ readConsistency: null
6216
+ },
6217
+ auth: {
6218
+ credentials: ["partner_key"],
6219
+ scopes: ["sites:write"],
6220
+ ownership: [{
6221
+ credential: "partner_key",
6222
+ rule: "authorized_site"
6223
+ }]
6224
+ },
6225
+ request: {
6226
+ params: z.strictObject({ siteId: realtimeSchemas.publicSiteId }),
6227
+ query: null,
6228
+ headers: requestHeaders,
6229
+ body: siteVersionCandidateRequestSchema
6230
+ },
6231
+ responses: { 200: siteVersionCandidateResponse },
6232
+ errors: siteVersionErrors,
6233
+ errorResponse: errorEnvelopeSchemas(siteVersionErrors, realtimeSchemas.publicRequestId),
6234
+ resources: {
6235
+ reads: [{
6236
+ type: "site.registration",
6237
+ idFrom: "params.siteId"
6238
+ }],
6239
+ changes: [{
6240
+ type: "site.lifecycle",
6241
+ idFrom: "params.siteId"
6242
+ }, {
6243
+ type: "site.analytics",
6244
+ idFrom: "params.siteId"
6245
+ }]
6246
+ },
6247
+ lifecycle: { introduced: "5.6.0" },
6248
+ docs: {
6249
+ summary: "Roll back registered host correction",
6250
+ description: "Suspends current analytics for the promoted version. The registered host and collected history remain preserved.",
6251
+ tags: ["Sites"],
6252
+ examples: {
6253
+ request: {
6254
+ params: { siteId: "s_01" },
6255
+ body: {
6256
+ version: 1,
6257
+ identity: {
6258
+ ...siteVersionExampleIdentity,
6259
+ requestedUrl: siteVersionExampleCandidate.requestedUrl,
6260
+ namespace: siteVersionExampleCandidate.namespace,
6261
+ version: 1,
6262
+ revision: 2
6263
+ }
6264
+ }
6265
+ },
6266
+ response: {
6267
+ data: {
6268
+ ...siteVersionExampleCandidate,
6269
+ state: "aborted"
6270
+ },
6271
+ meta: siteVersionExampleMeta
6272
+ }
6273
+ }
6274
+ }
5802
6275
  })
5803
6276
  }
5804
6277
  });
@@ -16,6 +16,41 @@ export declare const GSCDUMP_V1_ROUTE_CATALOG: {
16
16
  };
17
17
  };
18
18
  readonly operations: {
19
+ readonly 'partner.sites.registered_host.identity.get': {
20
+ readonly surface: "partner";
21
+ readonly method: "GET";
22
+ readonly template: "/sites/{siteId}/registered-host";
23
+ };
24
+ readonly 'partner.sites.registered_host.preview': {
25
+ readonly surface: "partner";
26
+ readonly method: "POST";
27
+ readonly template: "/sites/{siteId}/registered-host/preview";
28
+ };
29
+ readonly 'partner.sites.registered_host.begin': {
30
+ readonly surface: "partner";
31
+ readonly method: "POST";
32
+ readonly template: "/sites/{siteId}/registered-host/begin";
33
+ };
34
+ readonly 'partner.sites.registered_host.verify': {
35
+ readonly surface: "partner";
36
+ readonly method: "POST";
37
+ readonly template: "/sites/{siteId}/registered-host/verify";
38
+ };
39
+ readonly 'partner.sites.registered_host.promote': {
40
+ readonly surface: "partner";
41
+ readonly method: "POST";
42
+ readonly template: "/sites/{siteId}/registered-host/promote";
43
+ };
44
+ readonly 'partner.sites.registered_host.abort': {
45
+ readonly surface: "partner";
46
+ readonly method: "POST";
47
+ readonly template: "/sites/{siteId}/registered-host/abort";
48
+ };
49
+ readonly 'partner.sites.registered_host.rollback': {
50
+ readonly surface: "partner";
51
+ readonly method: "POST";
52
+ readonly template: "/sites/{siteId}/registered-host/rollback";
53
+ };
19
54
  readonly 'partner.sites.analytics.coverage.get': {
20
55
  readonly surface: "partner";
21
56
  readonly method: "GET";
@@ -3,6 +3,41 @@ import { GSCDUMP_V1_ROUTE_SURFACES } from "./route-surfaces.mjs";
3
3
  const GSCDUMP_V1_ROUTE_CATALOG = {
4
4
  surfaces: GSCDUMP_V1_ROUTE_SURFACES,
5
5
  operations: {
6
+ "partner.sites.registered_host.identity.get": {
7
+ surface: "partner",
8
+ method: "GET",
9
+ template: "/sites/{siteId}/registered-host"
10
+ },
11
+ "partner.sites.registered_host.preview": {
12
+ surface: "partner",
13
+ method: "POST",
14
+ template: "/sites/{siteId}/registered-host/preview"
15
+ },
16
+ "partner.sites.registered_host.begin": {
17
+ surface: "partner",
18
+ method: "POST",
19
+ template: "/sites/{siteId}/registered-host/begin"
20
+ },
21
+ "partner.sites.registered_host.verify": {
22
+ surface: "partner",
23
+ method: "POST",
24
+ template: "/sites/{siteId}/registered-host/verify"
25
+ },
26
+ "partner.sites.registered_host.promote": {
27
+ surface: "partner",
28
+ method: "POST",
29
+ template: "/sites/{siteId}/registered-host/promote"
30
+ },
31
+ "partner.sites.registered_host.abort": {
32
+ surface: "partner",
33
+ method: "POST",
34
+ template: "/sites/{siteId}/registered-host/abort"
35
+ },
36
+ "partner.sites.registered_host.rollback": {
37
+ surface: "partner",
38
+ method: "POST",
39
+ template: "/sites/{siteId}/registered-host/rollback"
40
+ },
6
41
  "partner.sites.analytics.coverage.get": {
7
42
  surface: "partner",
8
43
  method: "GET",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/contracts",
3
3
  "type": "module",
4
- "version": "5.5.0",
4
+ "version": "5.6.0",
5
5
  "description": "Shared gscdump.com API, webhook, realtime, and lifecycle contracts.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",