@nuxtseo/protocol 0.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.
- package/dist/analytics-codecs/analytics-row.d.ts +265 -0
- package/dist/analytics-codecs/analytics-row.js +175 -0
- package/dist/analytics-codecs/analytics-web-vitals.d.ts +57 -0
- package/dist/analytics-codecs/analytics-web-vitals.js +76 -0
- package/dist/analytics-codecs/capabilities.d.ts +35 -0
- package/dist/analytics-codecs/capabilities.js +76 -0
- package/dist/analytics-codecs/index.d.ts +3 -0
- package/dist/analytics-codecs/index.js +3 -0
- package/dist/cli-pairing.d.ts +67 -0
- package/dist/cli-pairing.js +52 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/v1/account.d.ts +715 -0
- package/dist/v1/account.js +123 -0
- package/dist/v1/actions.d.ts +2591 -0
- package/dist/v1/actions.js +460 -0
- package/dist/v1/analytics.d.ts +6145 -0
- package/dist/v1/analytics.js +296 -0
- package/dist/v1/audit.d.ts +4053 -0
- package/dist/v1/audit.js +609 -0
- package/dist/v1/backlinks.d.ts +1002 -0
- package/dist/v1/backlinks.js +239 -0
- package/dist/v1/content.d.ts +2745 -0
- package/dist/v1/content.js +326 -0
- package/dist/v1/core.d.ts +301 -0
- package/dist/v1/core.js +333 -0
- package/dist/v1/documents.d.ts +4 -0
- package/dist/v1/documents.js +216 -0
- package/dist/v1/gsc.d.ts +5172 -0
- package/dist/v1/gsc.js +583 -0
- package/dist/v1/index.d.ts +49 -0
- package/dist/v1/index.js +52 -0
- package/dist/v1/pages.d.ts +1404 -0
- package/dist/v1/pages.js +287 -0
- package/dist/v1/performance.d.ts +1379 -0
- package/dist/v1/performance.js +198 -0
- package/dist/v1/research.d.ts +1173 -0
- package/dist/v1/research.js +174 -0
- package/dist/v1/sitemaps.d.ts +1506 -0
- package/dist/v1/sitemaps.js +199 -0
- package/dist/v1/sites.d.ts +591 -0
- package/dist/v1/sites.js +101 -0
- package/generated/openapi.v1.json +1 -0
- package/package.json +131 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { gscdumpSitemapsResponseSchema, gscdumpSitemapUrlsQuerySchema, gscdumpSitemapUrlsResponseSchema, partnerSitemapActionResponseSchema, partnerSitemapActionSchema, } from '@gscdump/contracts';
|
|
2
|
+
import { z as schema } from 'zod';
|
|
3
|
+
import { defineOperation, defineRegistry, defineSuccessEnvelope, publicV1ErrorEnvelope, publicV1StandardRatePolicy, } from './core.js';
|
|
4
|
+
export const siteSitemapParamsSchema = schema.strictObject({ siteId: schema.string().min(1) });
|
|
5
|
+
const [submitSitemapSchema, deleteSitemapSchema] = partnerSitemapActionSchema.options;
|
|
6
|
+
export const siteSitemapActionBodySchema = schema.discriminatedUnion('action', [
|
|
7
|
+
submitSitemapSchema,
|
|
8
|
+
deleteSitemapSchema,
|
|
9
|
+
]);
|
|
10
|
+
const submittedOrDeletedSitemapSchema = partnerSitemapActionResponseSchema.options[0];
|
|
11
|
+
export const siteSitemapsResponseSchema = defineSuccessEnvelope({
|
|
12
|
+
producer: gscdumpSitemapsResponseSchema.strict(),
|
|
13
|
+
client: gscdumpSitemapsResponseSchema.loose(),
|
|
14
|
+
});
|
|
15
|
+
export const siteSitemapUrlsResponseSchema = defineSuccessEnvelope({
|
|
16
|
+
producer: gscdumpSitemapUrlsResponseSchema.strict(),
|
|
17
|
+
client: gscdumpSitemapUrlsResponseSchema.loose(),
|
|
18
|
+
});
|
|
19
|
+
export const siteSitemapActionResponseSchema = defineSuccessEnvelope({
|
|
20
|
+
producer: submittedOrDeletedSitemapSchema.strict(),
|
|
21
|
+
client: submittedOrDeletedSitemapSchema.loose(),
|
|
22
|
+
});
|
|
23
|
+
const readErrors = [
|
|
24
|
+
'invalid_request',
|
|
25
|
+
'unauthorized',
|
|
26
|
+
'auth_expired',
|
|
27
|
+
'forbidden',
|
|
28
|
+
'not_found',
|
|
29
|
+
'rate_limited',
|
|
30
|
+
'provider_unavailable',
|
|
31
|
+
'contract_violation',
|
|
32
|
+
'internal_error',
|
|
33
|
+
];
|
|
34
|
+
export const siteSitemapsListOperation = defineOperation({
|
|
35
|
+
id: 'sites.sitemaps.list',
|
|
36
|
+
method: 'GET',
|
|
37
|
+
path: '/api/v1/sites/{siteId}/sitemaps',
|
|
38
|
+
visibility: 'public',
|
|
39
|
+
semantics: {
|
|
40
|
+
kind: 'query',
|
|
41
|
+
sideEffects: 'none',
|
|
42
|
+
retry: 'idempotent',
|
|
43
|
+
readConsistency: 'primary',
|
|
44
|
+
},
|
|
45
|
+
auth: {
|
|
46
|
+
credentials: ['session', 'api_token'],
|
|
47
|
+
scopes: ['sites:read'],
|
|
48
|
+
minimumRole: 'viewer',
|
|
49
|
+
ownership: 'site',
|
|
50
|
+
},
|
|
51
|
+
request: { params: siteSitemapParamsSchema, query: null, headers: null, body: null },
|
|
52
|
+
responses: { 200: siteSitemapsResponseSchema },
|
|
53
|
+
errors: readErrors,
|
|
54
|
+
errorResponse: publicV1ErrorEnvelope,
|
|
55
|
+
resources: { reads: [{ type: 'site.sitemaps', idFrom: 'params.siteId' }], changes: [] },
|
|
56
|
+
policy: { rate: publicV1StandardRatePolicy, idempotency: { _tag: 'none' }, entitlement: null, meter: null },
|
|
57
|
+
lifecycle: { introduced: '1.0.0' },
|
|
58
|
+
docs: {
|
|
59
|
+
summary: 'List Site sitemaps',
|
|
60
|
+
description: 'Returns the Search Console sitemap snapshot and its upstream generation for a NuxtSEO Site.',
|
|
61
|
+
tags: ['Sites', 'Sitemaps'],
|
|
62
|
+
examples: [{
|
|
63
|
+
request: { params: { siteId: 'site_01JXYZ' } },
|
|
64
|
+
response: {
|
|
65
|
+
status: 200,
|
|
66
|
+
body: {
|
|
67
|
+
data: {
|
|
68
|
+
sitemaps: [],
|
|
69
|
+
history: [],
|
|
70
|
+
perSitemapHistory: {},
|
|
71
|
+
generation: null,
|
|
72
|
+
meta: {
|
|
73
|
+
siteUrl: 'sc-domain:example.com',
|
|
74
|
+
gscPropertyUrl: 'sc-domain:example.com',
|
|
75
|
+
syncStatus: 'synced',
|
|
76
|
+
sitemapScope: { excludedCount: 0, duplicateCount: 0 },
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
meta: { requestId: 'req_01JXYZ', version: '1.0' },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
}],
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
export const siteSitemapUrlsListOperation = defineOperation({
|
|
86
|
+
id: 'sites.sitemaps.urls.list',
|
|
87
|
+
method: 'GET',
|
|
88
|
+
path: '/api/v1/sites/{siteId}/sitemaps/urls',
|
|
89
|
+
visibility: 'public',
|
|
90
|
+
semantics: {
|
|
91
|
+
kind: 'query',
|
|
92
|
+
sideEffects: 'none',
|
|
93
|
+
retry: 'idempotent',
|
|
94
|
+
readConsistency: 'primary',
|
|
95
|
+
},
|
|
96
|
+
auth: {
|
|
97
|
+
credentials: ['session', 'api_token'],
|
|
98
|
+
scopes: ['sites:read'],
|
|
99
|
+
minimumRole: 'viewer',
|
|
100
|
+
ownership: 'site',
|
|
101
|
+
},
|
|
102
|
+
request: {
|
|
103
|
+
params: siteSitemapParamsSchema,
|
|
104
|
+
query: gscdumpSitemapUrlsQuerySchema,
|
|
105
|
+
headers: null,
|
|
106
|
+
body: null,
|
|
107
|
+
},
|
|
108
|
+
responses: { 200: siteSitemapUrlsResponseSchema },
|
|
109
|
+
errors: readErrors,
|
|
110
|
+
errorResponse: publicV1ErrorEnvelope,
|
|
111
|
+
resources: { reads: [{ type: 'site.sitemaps', idFrom: 'params.siteId' }], changes: [] },
|
|
112
|
+
policy: { rate: publicV1StandardRatePolicy, idempotency: { _tag: 'none' }, entitlement: null, meter: null },
|
|
113
|
+
lifecycle: { introduced: '1.0.0' },
|
|
114
|
+
docs: {
|
|
115
|
+
summary: 'List Site sitemap URLs',
|
|
116
|
+
description: 'Returns one cursor page of sitemap membership pinned to an exact upstream generation.',
|
|
117
|
+
tags: ['Sites', 'Sitemaps'],
|
|
118
|
+
examples: [{
|
|
119
|
+
request: { params: { siteId: 'site_01JXYZ' }, query: { limit: 500 } },
|
|
120
|
+
response: {
|
|
121
|
+
status: 200,
|
|
122
|
+
body: {
|
|
123
|
+
data: {
|
|
124
|
+
generation: {
|
|
125
|
+
id: 'generation_01JXYZ',
|
|
126
|
+
observedAt: 1786320000000,
|
|
127
|
+
publishedAt: 1786320000100,
|
|
128
|
+
completeness: { _tag: 'complete' },
|
|
129
|
+
membershipHistoryAvailableFrom: 1786320000000,
|
|
130
|
+
legacyImport: { _tag: 'none' },
|
|
131
|
+
},
|
|
132
|
+
items: [],
|
|
133
|
+
page: { nextCursor: null, limit: 500 },
|
|
134
|
+
},
|
|
135
|
+
meta: { requestId: 'req_01JXYZ', version: '1.0' },
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
}],
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
export const siteSitemapActionCreateOperation = defineOperation({
|
|
142
|
+
id: 'sites.sitemaps.action.create',
|
|
143
|
+
method: 'POST',
|
|
144
|
+
path: '/api/v1/sites/{siteId}/sitemaps/actions',
|
|
145
|
+
visibility: 'public',
|
|
146
|
+
semantics: {
|
|
147
|
+
kind: 'mutation',
|
|
148
|
+
sideEffects: 'state',
|
|
149
|
+
retry: 'never',
|
|
150
|
+
readConsistency: null,
|
|
151
|
+
},
|
|
152
|
+
auth: {
|
|
153
|
+
credentials: ['session', 'api_token'],
|
|
154
|
+
scopes: ['sites:write'],
|
|
155
|
+
minimumRole: 'member',
|
|
156
|
+
ownership: 'site',
|
|
157
|
+
},
|
|
158
|
+
request: { params: siteSitemapParamsSchema, query: null, headers: null, body: siteSitemapActionBodySchema },
|
|
159
|
+
responses: { 200: siteSitemapActionResponseSchema },
|
|
160
|
+
errors: readErrors,
|
|
161
|
+
errorResponse: publicV1ErrorEnvelope,
|
|
162
|
+
resources: {
|
|
163
|
+
reads: [{ type: 'site.sitemaps', idFrom: 'params.siteId' }],
|
|
164
|
+
changes: [{ type: 'site.sitemaps', idFrom: 'params.siteId' }],
|
|
165
|
+
},
|
|
166
|
+
policy: { rate: publicV1StandardRatePolicy, idempotency: { _tag: 'none' }, entitlement: null, meter: null },
|
|
167
|
+
lifecycle: { introduced: '1.0.0' },
|
|
168
|
+
docs: {
|
|
169
|
+
summary: 'Submit or delete a Site sitemap',
|
|
170
|
+
description: 'Submits or deletes one sitemap through the stored Search Console credential bound to the NuxtSEO Site.',
|
|
171
|
+
tags: ['Sites', 'Sitemaps'],
|
|
172
|
+
examples: [{
|
|
173
|
+
request: {
|
|
174
|
+
params: { siteId: 'site_01JXYZ' },
|
|
175
|
+
body: { action: 'submit', sitemapUrl: 'https://example.com/sitemap.xml' },
|
|
176
|
+
},
|
|
177
|
+
response: {
|
|
178
|
+
status: 200,
|
|
179
|
+
body: {
|
|
180
|
+
data: {
|
|
181
|
+
success: true,
|
|
182
|
+
action: 'submitted',
|
|
183
|
+
sitemapUrl: 'https://example.com/sitemap.xml',
|
|
184
|
+
sitemapCount: 1,
|
|
185
|
+
},
|
|
186
|
+
meta: { requestId: 'req_01JXYZ', version: '1.0' },
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
}],
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
export const sitemapsV1Registry = defineRegistry({
|
|
193
|
+
feature: 'sites',
|
|
194
|
+
operations: {
|
|
195
|
+
list: siteSitemapsListOperation,
|
|
196
|
+
listUrls: siteSitemapUrlsListOperation,
|
|
197
|
+
createAction: siteSitemapActionCreateOperation,
|
|
198
|
+
},
|
|
199
|
+
});
|