@disruptorganic/mcp-google-search-console 1.0.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.
Files changed (108) hide show
  1. package/.env.example +141 -0
  2. package/LICENSE +21 -0
  3. package/README.md +0 -0
  4. package/dist/auth/index.d.ts +3 -0
  5. package/dist/auth/index.d.ts.map +1 -0
  6. package/dist/auth/index.js +2 -0
  7. package/dist/auth/index.js.map +1 -0
  8. package/dist/auth/oauth2.d.ts +31 -0
  9. package/dist/auth/oauth2.d.ts.map +1 -0
  10. package/dist/auth/oauth2.js +380 -0
  11. package/dist/auth/oauth2.js.map +1 -0
  12. package/dist/config/index.d.ts +36 -0
  13. package/dist/config/index.d.ts.map +1 -0
  14. package/dist/config/index.js +87 -0
  15. package/dist/config/index.js.map +1 -0
  16. package/dist/gsc/client.d.ts +72 -0
  17. package/dist/gsc/client.d.ts.map +1 -0
  18. package/dist/gsc/client.js +243 -0
  19. package/dist/gsc/client.js.map +1 -0
  20. package/dist/gsc/index.d.ts +3 -0
  21. package/dist/gsc/index.d.ts.map +1 -0
  22. package/dist/gsc/index.js +3 -0
  23. package/dist/gsc/index.js.map +1 -0
  24. package/dist/gsc/properties.d.ts +42 -0
  25. package/dist/gsc/properties.d.ts.map +1 -0
  26. package/dist/gsc/properties.js +393 -0
  27. package/dist/gsc/properties.js.map +1 -0
  28. package/dist/gsc/queries.d.ts +73 -0
  29. package/dist/gsc/queries.d.ts.map +1 -0
  30. package/dist/gsc/queries.js +390 -0
  31. package/dist/gsc/queries.js.map +1 -0
  32. package/dist/index.d.ts +3 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +186 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/tools/compare-date-ranges.d.ts +83 -0
  37. package/dist/tools/compare-date-ranges.d.ts.map +1 -0
  38. package/dist/tools/compare-date-ranges.js +462 -0
  39. package/dist/tools/compare-date-ranges.js.map +1 -0
  40. package/dist/tools/get-property-info.d.ts +30 -0
  41. package/dist/tools/get-property-info.d.ts.map +1 -0
  42. package/dist/tools/get-property-info.js +174 -0
  43. package/dist/tools/get-property-info.js.map +1 -0
  44. package/dist/tools/get-top-pages.d.ts +103 -0
  45. package/dist/tools/get-top-pages.d.ts.map +1 -0
  46. package/dist/tools/get-top-pages.js +254 -0
  47. package/dist/tools/get-top-pages.js.map +1 -0
  48. package/dist/tools/get-top-queries.d.ts +103 -0
  49. package/dist/tools/get-top-queries.d.ts.map +1 -0
  50. package/dist/tools/get-top-queries.js +254 -0
  51. package/dist/tools/get-top-queries.js.map +1 -0
  52. package/dist/tools/health-check.d.ts +12 -0
  53. package/dist/tools/health-check.d.ts.map +1 -0
  54. package/dist/tools/health-check.js +107 -0
  55. package/dist/tools/health-check.js.map +1 -0
  56. package/dist/tools/index.d.ts +1124 -0
  57. package/dist/tools/index.d.ts.map +1 -0
  58. package/dist/tools/index.js +70 -0
  59. package/dist/tools/index.js.map +1 -0
  60. package/dist/tools/list-properties.d.ts +50 -0
  61. package/dist/tools/list-properties.d.ts.map +1 -0
  62. package/dist/tools/list-properties.js +234 -0
  63. package/dist/tools/list-properties.js.map +1 -0
  64. package/dist/tools/query-advanced.d.ts +109 -0
  65. package/dist/tools/query-advanced.d.ts.map +1 -0
  66. package/dist/tools/query-advanced.js +378 -0
  67. package/dist/tools/query-advanced.js.map +1 -0
  68. package/dist/tools/query-by-keyword.d.ts +115 -0
  69. package/dist/tools/query-by-keyword.d.ts.map +1 -0
  70. package/dist/tools/query-by-keyword.js +339 -0
  71. package/dist/tools/query-by-keyword.js.map +1 -0
  72. package/dist/tools/query-by-url.d.ts +116 -0
  73. package/dist/tools/query-by-url.d.ts.map +1 -0
  74. package/dist/tools/query-by-url.js +366 -0
  75. package/dist/tools/query-by-url.js.map +1 -0
  76. package/dist/utils/cache.d.ts +22 -0
  77. package/dist/utils/cache.d.ts.map +1 -0
  78. package/dist/utils/cache.js +75 -0
  79. package/dist/utils/cache.js.map +1 -0
  80. package/dist/utils/index.d.ts +8 -0
  81. package/dist/utils/index.d.ts.map +1 -0
  82. package/dist/utils/index.js +8 -0
  83. package/dist/utils/index.js.map +1 -0
  84. package/dist/utils/logger.d.ts +4 -0
  85. package/dist/utils/logger.d.ts.map +1 -0
  86. package/dist/utils/logger.js +15 -0
  87. package/dist/utils/logger.js.map +1 -0
  88. package/dist/utils/metrics.d.ts +9 -0
  89. package/dist/utils/metrics.d.ts.map +1 -0
  90. package/dist/utils/metrics.js +54 -0
  91. package/dist/utils/metrics.js.map +1 -0
  92. package/dist/utils/rate-limiter.d.ts +24 -0
  93. package/dist/utils/rate-limiter.d.ts.map +1 -0
  94. package/dist/utils/rate-limiter.js +175 -0
  95. package/dist/utils/rate-limiter.js.map +1 -0
  96. package/dist/utils/token-estimator.d.ts +33 -0
  97. package/dist/utils/token-estimator.d.ts.map +1 -0
  98. package/dist/utils/token-estimator.js +226 -0
  99. package/dist/utils/token-estimator.js.map +1 -0
  100. package/dist/utils/types.d.ts +68 -0
  101. package/dist/utils/types.d.ts.map +1 -0
  102. package/dist/utils/types.js +13 -0
  103. package/dist/utils/types.js.map +1 -0
  104. package/dist/utils/validators.d.ts +579 -0
  105. package/dist/utils/validators.d.ts.map +1 -0
  106. package/dist/utils/validators.js +358 -0
  107. package/dist/utils/validators.js.map +1 -0
  108. package/package.json +73 -0
@@ -0,0 +1,579 @@
1
+ import { z } from 'zod';
2
+ export declare const dateSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
3
+ export declare const dateRangeSchema: z.ZodEffects<z.ZodObject<{
4
+ startDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
5
+ endDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ startDate: string;
8
+ endDate: string;
9
+ }, {
10
+ startDate: string;
11
+ endDate: string;
12
+ }>, {
13
+ startDate: string;
14
+ endDate: string;
15
+ }, {
16
+ startDate: string;
17
+ endDate: string;
18
+ }>;
19
+ export declare const propertyUrlSchema: z.ZodEffects<z.ZodString, string, string>;
20
+ export declare const dimensionSchema: z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>;
21
+ export declare const dimensionsSchema: z.ZodArray<z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>, "many">;
22
+ export declare const searchTypeSchema: z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>;
23
+ export declare const filterOperatorSchema: z.ZodEnum<["equals", "notEquals", "contains", "notContains", "includingRegex", "excludingRegex"]>;
24
+ export declare const filterSchema: z.ZodObject<{
25
+ dimension: z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>;
26
+ operator: z.ZodEnum<["equals", "notEquals", "contains", "notContains", "includingRegex", "excludingRegex"]>;
27
+ expression: z.ZodString;
28
+ }, "strip", z.ZodTypeAny, {
29
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
30
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
31
+ expression: string;
32
+ }, {
33
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
34
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
35
+ expression: string;
36
+ }>;
37
+ export declare const filterGroupSchema: z.ZodObject<{
38
+ filters: z.ZodArray<z.ZodObject<{
39
+ dimension: z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>;
40
+ operator: z.ZodEnum<["equals", "notEquals", "contains", "notContains", "includingRegex", "excludingRegex"]>;
41
+ expression: z.ZodString;
42
+ }, "strip", z.ZodTypeAny, {
43
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
44
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
45
+ expression: string;
46
+ }, {
47
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
48
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
49
+ expression: string;
50
+ }>, "many">;
51
+ groupType: z.ZodOptional<z.ZodLiteral<"and">>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ filters: {
54
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
55
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
56
+ expression: string;
57
+ }[];
58
+ groupType?: "and" | undefined;
59
+ }, {
60
+ filters: {
61
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
62
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
63
+ expression: string;
64
+ }[];
65
+ groupType?: "and" | undefined;
66
+ }>;
67
+ export declare const rowLimitSchema: z.ZodNumber;
68
+ export declare const deviceTypeSchema: z.ZodEnum<["desktop", "mobile", "tablet"]>;
69
+ export declare const countryCodeSchema: z.ZodEffects<z.ZodString, string, string>;
70
+ export declare const aggregationTypeSchema: z.ZodEnum<["auto", "byProperty", "byPage"]>;
71
+ export declare const sortOrderSchema: z.ZodEnum<["asc", "desc"]>;
72
+ export declare const sortByMetricSchema: z.ZodEnum<["clicks", "impressions", "ctr", "position"]>;
73
+ export declare const baseQueryParamsSchema: z.ZodEffects<z.ZodObject<{
74
+ property: z.ZodEffects<z.ZodString, string, string>;
75
+ startDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
76
+ endDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
77
+ searchType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>>;
78
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet"]>>;
79
+ country: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ startDate: string;
82
+ endDate: string;
83
+ property: string;
84
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
85
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
86
+ country?: string | undefined;
87
+ }, {
88
+ startDate: string;
89
+ endDate: string;
90
+ property: string;
91
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
92
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
93
+ country?: string | undefined;
94
+ }>, {
95
+ startDate: string;
96
+ endDate: string;
97
+ property: string;
98
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
99
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
100
+ country?: string | undefined;
101
+ }, {
102
+ startDate: string;
103
+ endDate: string;
104
+ property: string;
105
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
106
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
107
+ country?: string | undefined;
108
+ }>;
109
+ export declare const keywordSchema: z.ZodString;
110
+ export declare const keywordsSchema: z.ZodArray<z.ZodString, "many">;
111
+ export declare const pageUrlSchema: z.ZodEffects<z.ZodString, string, string>;
112
+ export declare function validateDateRange(startDate: string, endDate: string): boolean;
113
+ export declare function validateDateRangeStrict(startDate: string, endDate: string): void;
114
+ export declare function validateDimensions(dimensions: string[], maxDimensions?: number): void;
115
+ export declare function isWithin16Months(date: string): boolean;
116
+ export declare function isValidPropertyUrl(url: string): boolean;
117
+ export declare function formatDate(date: Date): string;
118
+ export declare function getDaysAgo(days: number): string;
119
+ export declare function getSixteenMonthsAgo(): string;
120
+ export declare function getToday(): string;
121
+ export declare function formatValidationErrors(error: z.ZodError): string;
122
+ export declare function safeValidate<T>(schema: z.ZodSchema<T>, data: unknown): {
123
+ success: true;
124
+ data: T;
125
+ } | {
126
+ success: false;
127
+ error: string;
128
+ };
129
+ export declare const comparisonSortBySchema: z.ZodEnum<["clicks", "impressions", "ctr", "position", "clicks_change", "clicks_percent_change", "impressions_change", "impressions_percent_change", "position_change"]>;
130
+ export declare const positionRangeSchema: z.ZodEffects<z.ZodObject<{
131
+ min: z.ZodNumber;
132
+ max: z.ZodNumber;
133
+ }, "strip", z.ZodTypeAny, {
134
+ min: number;
135
+ max: number;
136
+ }, {
137
+ min: number;
138
+ max: number;
139
+ }>, {
140
+ min: number;
141
+ max: number;
142
+ }, {
143
+ min: number;
144
+ max: number;
145
+ }>;
146
+ export declare const topNLimitSchema: z.ZodDefault<z.ZodNumber>;
147
+ export declare const minClicksSchema: z.ZodOptional<z.ZodNumber>;
148
+ export declare const minImpressionsSchema: z.ZodOptional<z.ZodNumber>;
149
+ export declare const queryAdvancedParamsSchema: z.ZodEffects<z.ZodObject<{
150
+ property: z.ZodEffects<z.ZodString, string, string>;
151
+ startDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
152
+ endDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
153
+ dimensions: z.ZodArray<z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>, "many">;
154
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
155
+ dimension: z.ZodEnum<["query", "page", "country", "device", "searchAppearance", "date"]>;
156
+ operator: z.ZodEnum<["equals", "notEquals", "contains", "notContains", "includingRegex", "excludingRegex"]>;
157
+ expression: z.ZodString;
158
+ }, "strip", z.ZodTypeAny, {
159
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
160
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
161
+ expression: string;
162
+ }, {
163
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
164
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
165
+ expression: string;
166
+ }>, "many">>;
167
+ rowLimit: z.ZodDefault<z.ZodNumber>;
168
+ sortBy: z.ZodDefault<z.ZodEnum<["clicks", "impressions", "ctr", "position"]>>;
169
+ sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
170
+ searchType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>>;
171
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
172
+ limit: z.ZodOptional<z.ZodNumber>;
173
+ }, "strip", z.ZodTypeAny, {
174
+ startDate: string;
175
+ endDate: string;
176
+ dimensions: ("query" | "page" | "country" | "device" | "searchAppearance" | "date")[];
177
+ rowLimit: number;
178
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
179
+ sortOrder: "asc" | "desc";
180
+ property: string;
181
+ offset: number;
182
+ filters?: {
183
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
184
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
185
+ expression: string;
186
+ }[] | undefined;
187
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
188
+ limit?: number | undefined;
189
+ }, {
190
+ startDate: string;
191
+ endDate: string;
192
+ dimensions: ("query" | "page" | "country" | "device" | "searchAppearance" | "date")[];
193
+ property: string;
194
+ filters?: {
195
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
196
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
197
+ expression: string;
198
+ }[] | undefined;
199
+ rowLimit?: number | undefined;
200
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
201
+ limit?: number | undefined;
202
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
203
+ sortOrder?: "asc" | "desc" | undefined;
204
+ offset?: number | undefined;
205
+ }>, {
206
+ startDate: string;
207
+ endDate: string;
208
+ dimensions: ("query" | "page" | "country" | "device" | "searchAppearance" | "date")[];
209
+ rowLimit: number;
210
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
211
+ sortOrder: "asc" | "desc";
212
+ property: string;
213
+ offset: number;
214
+ filters?: {
215
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
216
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
217
+ expression: string;
218
+ }[] | undefined;
219
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
220
+ limit?: number | undefined;
221
+ }, {
222
+ startDate: string;
223
+ endDate: string;
224
+ dimensions: ("query" | "page" | "country" | "device" | "searchAppearance" | "date")[];
225
+ property: string;
226
+ filters?: {
227
+ dimension: "query" | "page" | "country" | "device" | "searchAppearance" | "date";
228
+ operator: "equals" | "notEquals" | "contains" | "notContains" | "includingRegex" | "excludingRegex";
229
+ expression: string;
230
+ }[] | undefined;
231
+ rowLimit?: number | undefined;
232
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
233
+ limit?: number | undefined;
234
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
235
+ sortOrder?: "asc" | "desc" | undefined;
236
+ offset?: number | undefined;
237
+ }>;
238
+ export declare const getTopQueriesParamsSchema: z.ZodEffects<z.ZodObject<{
239
+ property: z.ZodEffects<z.ZodString, string, string>;
240
+ startDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
241
+ endDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
242
+ limit: z.ZodDefault<z.ZodNumber>;
243
+ sortBy: z.ZodDefault<z.ZodEnum<["clicks", "impressions", "ctr", "position"]>>;
244
+ sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
245
+ searchType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>>;
246
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet"]>>;
247
+ country: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
248
+ minClicks: z.ZodOptional<z.ZodNumber>;
249
+ minImpressions: z.ZodOptional<z.ZodNumber>;
250
+ positionRange: z.ZodOptional<z.ZodEffects<z.ZodObject<{
251
+ min: z.ZodNumber;
252
+ max: z.ZodNumber;
253
+ }, "strip", z.ZodTypeAny, {
254
+ min: number;
255
+ max: number;
256
+ }, {
257
+ min: number;
258
+ max: number;
259
+ }>, {
260
+ min: number;
261
+ max: number;
262
+ }, {
263
+ min: number;
264
+ max: number;
265
+ }>>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ startDate: string;
268
+ endDate: string;
269
+ limit: number;
270
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
271
+ sortOrder: "asc" | "desc";
272
+ property: string;
273
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
274
+ minClicks?: number | undefined;
275
+ minImpressions?: number | undefined;
276
+ positionRange?: {
277
+ min: number;
278
+ max: number;
279
+ } | undefined;
280
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
281
+ country?: string | undefined;
282
+ }, {
283
+ startDate: string;
284
+ endDate: string;
285
+ property: string;
286
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
287
+ limit?: number | undefined;
288
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
289
+ sortOrder?: "asc" | "desc" | undefined;
290
+ minClicks?: number | undefined;
291
+ minImpressions?: number | undefined;
292
+ positionRange?: {
293
+ min: number;
294
+ max: number;
295
+ } | undefined;
296
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
297
+ country?: string | undefined;
298
+ }>, {
299
+ startDate: string;
300
+ endDate: string;
301
+ limit: number;
302
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
303
+ sortOrder: "asc" | "desc";
304
+ property: string;
305
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
306
+ minClicks?: number | undefined;
307
+ minImpressions?: number | undefined;
308
+ positionRange?: {
309
+ min: number;
310
+ max: number;
311
+ } | undefined;
312
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
313
+ country?: string | undefined;
314
+ }, {
315
+ startDate: string;
316
+ endDate: string;
317
+ property: string;
318
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
319
+ limit?: number | undefined;
320
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
321
+ sortOrder?: "asc" | "desc" | undefined;
322
+ minClicks?: number | undefined;
323
+ minImpressions?: number | undefined;
324
+ positionRange?: {
325
+ min: number;
326
+ max: number;
327
+ } | undefined;
328
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
329
+ country?: string | undefined;
330
+ }>;
331
+ export declare const getTopPagesParamsSchema: z.ZodEffects<z.ZodObject<{
332
+ property: z.ZodEffects<z.ZodString, string, string>;
333
+ startDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
334
+ endDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
335
+ limit: z.ZodDefault<z.ZodNumber>;
336
+ sortBy: z.ZodDefault<z.ZodEnum<["clicks", "impressions", "ctr", "position"]>>;
337
+ sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
338
+ searchType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>>;
339
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet"]>>;
340
+ country: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
341
+ minClicks: z.ZodOptional<z.ZodNumber>;
342
+ minImpressions: z.ZodOptional<z.ZodNumber>;
343
+ positionRange: z.ZodOptional<z.ZodEffects<z.ZodObject<{
344
+ min: z.ZodNumber;
345
+ max: z.ZodNumber;
346
+ }, "strip", z.ZodTypeAny, {
347
+ min: number;
348
+ max: number;
349
+ }, {
350
+ min: number;
351
+ max: number;
352
+ }>, {
353
+ min: number;
354
+ max: number;
355
+ }, {
356
+ min: number;
357
+ max: number;
358
+ }>>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ startDate: string;
361
+ endDate: string;
362
+ limit: number;
363
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
364
+ sortOrder: "asc" | "desc";
365
+ property: string;
366
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
367
+ minClicks?: number | undefined;
368
+ minImpressions?: number | undefined;
369
+ positionRange?: {
370
+ min: number;
371
+ max: number;
372
+ } | undefined;
373
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
374
+ country?: string | undefined;
375
+ }, {
376
+ startDate: string;
377
+ endDate: string;
378
+ property: string;
379
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
380
+ limit?: number | undefined;
381
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
382
+ sortOrder?: "asc" | "desc" | undefined;
383
+ minClicks?: number | undefined;
384
+ minImpressions?: number | undefined;
385
+ positionRange?: {
386
+ min: number;
387
+ max: number;
388
+ } | undefined;
389
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
390
+ country?: string | undefined;
391
+ }>, {
392
+ startDate: string;
393
+ endDate: string;
394
+ limit: number;
395
+ sortBy: "clicks" | "impressions" | "ctr" | "position";
396
+ sortOrder: "asc" | "desc";
397
+ property: string;
398
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
399
+ minClicks?: number | undefined;
400
+ minImpressions?: number | undefined;
401
+ positionRange?: {
402
+ min: number;
403
+ max: number;
404
+ } | undefined;
405
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
406
+ country?: string | undefined;
407
+ }, {
408
+ startDate: string;
409
+ endDate: string;
410
+ property: string;
411
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
412
+ limit?: number | undefined;
413
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | undefined;
414
+ sortOrder?: "asc" | "desc" | undefined;
415
+ minClicks?: number | undefined;
416
+ minImpressions?: number | undefined;
417
+ positionRange?: {
418
+ min: number;
419
+ max: number;
420
+ } | undefined;
421
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
422
+ country?: string | undefined;
423
+ }>;
424
+ export declare const compareDateRangesParamsSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
425
+ property: z.ZodEffects<z.ZodString, string, string>;
426
+ dimension: z.ZodEnum<["query", "page"]>;
427
+ currentStartDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
428
+ currentEndDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
429
+ previousStartDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
430
+ previousEndDate: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
431
+ limit: z.ZodDefault<z.ZodDefault<z.ZodNumber>>;
432
+ sortBy: z.ZodDefault<z.ZodEnum<["clicks", "impressions", "ctr", "position", "clicks_change", "clicks_percent_change", "impressions_change", "impressions_percent_change", "position_change"]>>;
433
+ searchType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["web", "image", "video", "news", "discover", "googleNews"]>>>;
434
+ minCurrentClicks: z.ZodOptional<z.ZodNumber>;
435
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet"]>>;
436
+ country: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
437
+ }, "strip", z.ZodTypeAny, {
438
+ limit: number;
439
+ sortBy: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change";
440
+ dimension: "query" | "page";
441
+ property: string;
442
+ currentStartDate: string;
443
+ currentEndDate: string;
444
+ previousStartDate: string;
445
+ previousEndDate: string;
446
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
447
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
448
+ country?: string | undefined;
449
+ minCurrentClicks?: number | undefined;
450
+ }, {
451
+ dimension: "query" | "page";
452
+ property: string;
453
+ currentStartDate: string;
454
+ currentEndDate: string;
455
+ previousStartDate: string;
456
+ previousEndDate: string;
457
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
458
+ limit?: number | undefined;
459
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change" | undefined;
460
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
461
+ country?: string | undefined;
462
+ minCurrentClicks?: number | undefined;
463
+ }>, {
464
+ limit: number;
465
+ sortBy: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change";
466
+ dimension: "query" | "page";
467
+ property: string;
468
+ currentStartDate: string;
469
+ currentEndDate: string;
470
+ previousStartDate: string;
471
+ previousEndDate: string;
472
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
473
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
474
+ country?: string | undefined;
475
+ minCurrentClicks?: number | undefined;
476
+ }, {
477
+ dimension: "query" | "page";
478
+ property: string;
479
+ currentStartDate: string;
480
+ currentEndDate: string;
481
+ previousStartDate: string;
482
+ previousEndDate: string;
483
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
484
+ limit?: number | undefined;
485
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change" | undefined;
486
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
487
+ country?: string | undefined;
488
+ minCurrentClicks?: number | undefined;
489
+ }>, {
490
+ limit: number;
491
+ sortBy: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change";
492
+ dimension: "query" | "page";
493
+ property: string;
494
+ currentStartDate: string;
495
+ currentEndDate: string;
496
+ previousStartDate: string;
497
+ previousEndDate: string;
498
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
499
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
500
+ country?: string | undefined;
501
+ minCurrentClicks?: number | undefined;
502
+ }, {
503
+ dimension: "query" | "page";
504
+ property: string;
505
+ currentStartDate: string;
506
+ currentEndDate: string;
507
+ previousStartDate: string;
508
+ previousEndDate: string;
509
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
510
+ limit?: number | undefined;
511
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change" | undefined;
512
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
513
+ country?: string | undefined;
514
+ minCurrentClicks?: number | undefined;
515
+ }>, {
516
+ limit: number;
517
+ sortBy: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change";
518
+ dimension: "query" | "page";
519
+ property: string;
520
+ currentStartDate: string;
521
+ currentEndDate: string;
522
+ previousStartDate: string;
523
+ previousEndDate: string;
524
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
525
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
526
+ country?: string | undefined;
527
+ minCurrentClicks?: number | undefined;
528
+ }, {
529
+ dimension: "query" | "page";
530
+ property: string;
531
+ currentStartDate: string;
532
+ currentEndDate: string;
533
+ previousStartDate: string;
534
+ previousEndDate: string;
535
+ searchType?: "web" | "image" | "video" | "news" | "discover" | "googleNews" | undefined;
536
+ limit?: number | undefined;
537
+ sortBy?: "clicks" | "impressions" | "ctr" | "position" | "clicks_change" | "clicks_percent_change" | "impressions_change" | "impressions_percent_change" | "position_change" | undefined;
538
+ deviceType?: "desktop" | "mobile" | "tablet" | undefined;
539
+ country?: string | undefined;
540
+ minCurrentClicks?: number | undefined;
541
+ }>;
542
+ export declare const getPropertyInfoParamsSchema: z.ZodObject<{
543
+ propertyUrl: z.ZodEffects<z.ZodString, string, string>;
544
+ }, "strip", z.ZodTypeAny, {
545
+ propertyUrl: string;
546
+ }, {
547
+ propertyUrl: string;
548
+ }>;
549
+ export declare const VALID_GSC_DIMENSIONS: readonly ["query", "page", "country", "device", "searchAppearance", "date"];
550
+ export declare const VALID_FILTER_OPERATORS: readonly ["equals", "notEquals", "contains", "notContains", "includingRegex", "excludingRegex"];
551
+ export declare const VALID_SORT_METRICS: readonly ["clicks", "impressions", "ctr", "position"];
552
+ export declare const VALID_COMPARISON_SORT_METRICS: readonly ["clicks", "impressions", "ctr", "position", "clicks_change", "clicks_percent_change", "impressions_change", "impressions_percent_change", "position_change"];
553
+ export type GSCDimension = typeof VALID_GSC_DIMENSIONS[number];
554
+ export type ValidFilterOperator = typeof VALID_FILTER_OPERATORS[number];
555
+ export type ValidSortMetric = typeof VALID_SORT_METRICS[number];
556
+ export type ComparisonSortMetric = typeof VALID_COMPARISON_SORT_METRICS[number];
557
+ export type DateRange = z.infer<typeof dateRangeSchema>;
558
+ export type PropertyUrl = z.infer<typeof propertyUrlSchema>;
559
+ export type Dimension = z.infer<typeof dimensionSchema>;
560
+ export type Dimensions = z.infer<typeof dimensionsSchema>;
561
+ export type SearchType = z.infer<typeof searchTypeSchema>;
562
+ export type FilterOperator = z.infer<typeof filterOperatorSchema>;
563
+ export type Filter = z.infer<typeof filterSchema>;
564
+ export type FilterGroup = z.infer<typeof filterGroupSchema>;
565
+ export type DeviceType = z.infer<typeof deviceTypeSchema>;
566
+ export type CountryCode = z.infer<typeof countryCodeSchema>;
567
+ export type AggregationType = z.infer<typeof aggregationTypeSchema>;
568
+ export type SortOrder = z.infer<typeof sortOrderSchema>;
569
+ export type SortByMetric = z.infer<typeof sortByMetricSchema>;
570
+ export type BaseQueryParams = z.infer<typeof baseQueryParamsSchema>;
571
+ export type Keywords = z.infer<typeof keywordsSchema>;
572
+ export type PageUrl = z.infer<typeof pageUrlSchema>;
573
+ export type PositionRange = z.infer<typeof positionRangeSchema>;
574
+ export type QueryAdvancedParams = z.infer<typeof queryAdvancedParamsSchema>;
575
+ export type GetTopQueriesParams = z.infer<typeof getTopQueriesParamsSchema>;
576
+ export type GetTopPagesParams = z.infer<typeof getTopPagesParamsSchema>;
577
+ export type CompareDateRangesParams = z.infer<typeof compareDateRangesParamsSchema>;
578
+ export type GetPropertyInfoParams = z.infer<typeof getPropertyInfoParamsSchema>;
579
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}