@serpstat/serpstat-mcp-server 1.0.4 → 1.0.5

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 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmLxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAStB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BtB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAI1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBlB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBtB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAetB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAOhE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AASlF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBjC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,12 +1,105 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.anchorsSchema = exports.keywordTopSchema = exports.keywordCompetitorsSchema = exports.keywordTopUrlsSchema = exports.keywordFullTopSchema = exports.keywordSuggestionsSchema = exports.keywordsInfoSchema = exports.getRelatedKeywordsSchema = exports.keywordGetSchema = exports.domainUniqKeywordsSchema = exports.domainRegionsCountSchema = exports.domainUrlsSchema = exports.domainKeywordsSchema = exports.backlinksSummarySchema = exports.competitorsGetSchema = exports.domainsInfoSchema = void 0;
3
+ exports.getLostBacklinksSchema = exports.getReferringDomainsSchema = exports.getActiveBacklinksSchema = exports.anchorsSchema = exports.keywordTopSchema = exports.keywordCompetitorsSchema = exports.keywordTopUrlsSchema = exports.keywordFullTopSchema = exports.keywordSuggestionsSchema = exports.keywordsInfoSchema = exports.getRelatedKeywordsSchema = exports.keywordGetSchema = exports.domainUniqKeywordsSchema = exports.domainRegionsCountSchema = exports.domainUrlsSchema = exports.domainKeywordsSchema = exports.backlinksSummarySchema = exports.competitorsGetSchema = exports.domainsInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const serpstat_js_1 = require("../types/serpstat.js");
6
5
  const constants_js_1 = require("./constants.js");
7
- const searchEngineSchema = zod_1.z.enum(serpstat_js_1.SEARCH_ENGINES);
6
+ const searchEngineSchema = zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES);
8
7
  const sortOrderSchema = zod_1.z.enum(constants_js_1.SORT_ORDER);
9
8
  const keywordIntentsSchema = zod_1.z.enum(constants_js_1.KEYWORD_INTENTS);
9
+ const domainSchema = zod_1.z.string()
10
+ .min(constants_js_1.MIN_DOMAIN_LENGTH)
11
+ .max(constants_js_1.MAX_DOMAIN_LENGTH)
12
+ .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX));
13
+ const keywordSchema = zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH);
14
+ const keywordArraySchema = zod_1.z.array(keywordSchema);
15
+ const paginationSchema = zod_1.z.object({
16
+ page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
17
+ size: zod_1.z.number().int().min(1).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
18
+ });
19
+ const costFilterSchema = zod_1.z.object({
20
+ cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
21
+ cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
22
+ cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
23
+ });
24
+ const costFilterWithMaxSchema = zod_1.z.object({
25
+ cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
26
+ cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
27
+ cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
28
+ });
29
+ const difficultyFilterSchema = zod_1.z.object({
30
+ difficulty: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
31
+ difficulty_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
32
+ difficulty_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
33
+ });
34
+ const concurrencyFilterSchema = zod_1.z.object({
35
+ concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
36
+ concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
37
+ concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
38
+ });
39
+ const positionFilterSchema = zod_1.z.object({
40
+ position: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
41
+ position_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
42
+ position_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
43
+ });
44
+ const regionQueriesFilterSchema = zod_1.z.object({
45
+ region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
46
+ region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
47
+ region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
48
+ });
49
+ const regionQueriesFilterWithMaxSchema = zod_1.z.object({
50
+ region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
51
+ region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
52
+ region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
53
+ });
54
+ const keywordLengthFilterSchema = zod_1.z.object({
55
+ keyword_length: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
56
+ keyword_length_from: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
57
+ keyword_length_to: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
58
+ });
59
+ const intentsFilterSchema = zod_1.z.object({
60
+ intents_contain: zod_1.z.array(keywordIntentsSchema).optional(),
61
+ intents_not_contain: zod_1.z.array(keywordIntentsSchema).optional(),
62
+ });
63
+ const keywordContentFilterSchema = zod_1.z.object({
64
+ keyword_contain: zod_1.z.array(zod_1.z.string()).optional(),
65
+ keyword_not_contain: zod_1.z.array(zod_1.z.string()).optional(),
66
+ keyword_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
67
+ keyword_not_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
68
+ keyword_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
69
+ keyword_not_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
70
+ });
71
+ const createQueryValidationRefine = (allowUrlTypes = true) => (data) => {
72
+ if (allowUrlTypes && (data.searchType === 'url' || data.searchType === 'part_url')) {
73
+ const urlPattern = /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\/.*)?\??.*$/;
74
+ if (data.query.startsWith('http://') || data.query.startsWith('https://')) {
75
+ try {
76
+ new URL(data.query);
77
+ return true;
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ else {
84
+ return urlPattern.test(data.query);
85
+ }
86
+ }
87
+ else {
88
+ return data.query.length >= constants_js_1.MIN_DOMAIN_LENGTH &&
89
+ data.query.length <= constants_js_1.MAX_DOMAIN_LENGTH &&
90
+ new RegExp(constants_js_1.DOMAIN_NAME_REGEX).test(data.query);
91
+ }
92
+ };
93
+ const createComplexFilterSchema = (fieldsEnum) => zod_1.z.union([
94
+ zod_1.z.object({
95
+ field: zod_1.z.enum(fieldsEnum),
96
+ compareType: zod_1.z.enum(constants_js_1.COMPLEX_FILTER_COMPARE_TYPES),
97
+ value: zod_1.z.array(zod_1.z.union([zod_1.z.number().int(), zod_1.z.string()]))
98
+ }),
99
+ zod_1.z.object({
100
+ additional_filters: zod_1.z.enum(constants_js_1.ADDITIONAL_FILTERS)
101
+ })
102
+ ]);
10
103
  exports.domainsInfoSchema = zod_1.z.object({
11
104
  domains: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH)).min(constants_js_1.MIN_DOMAINS_ITEMS).max(constants_js_1.MAX_DOMAINS_INFO_ITEMS),
12
105
  se: searchEngineSchema,
@@ -20,38 +113,28 @@ exports.domainsInfoSchema = zod_1.z.object({
20
113
  }).optional(),
21
114
  });
22
115
  exports.competitorsGetSchema = zod_1.z.object({
23
- domain: zod_1.z.string()
24
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
25
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
26
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
27
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
116
+ domain: domainSchema,
117
+ se: searchEngineSchema,
28
118
  size: zod_1.z.number().int().min(constants_js_1.MIN_COMPETITORS_SIZE).max(constants_js_1.MAX_COMPETITORS_SIZE).default(constants_js_1.DEFAULT_COMPETITORS_HANDLER_SIZE),
29
119
  filters: zod_1.z.object({
30
120
  visible: zod_1.z.number().min(constants_js_1.MIN_VISIBLE_VALUE).optional(),
31
121
  traff: zod_1.z.number().int().min(constants_js_1.MIN_TRAFFIC_VALUE).optional(),
32
- minus_domains: zod_1.z.array(zod_1.z.string().regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX))).min(constants_js_1.MIN_MINUS_DOMAINS_ITEMS).max(constants_js_1.MAX_MINUS_DOMAINS_ITEMS).optional()
122
+ minus_domains: zod_1.z.array(domainSchema).min(constants_js_1.MIN_MINUS_DOMAINS_ITEMS).max(constants_js_1.MAX_MINUS_DOMAINS_ITEMS).optional()
33
123
  }).optional()
34
124
  }).strict();
35
125
  exports.backlinksSummarySchema = zod_1.z.object({
36
- query: zod_1.z.string()
37
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
38
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
39
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
126
+ query: domainSchema,
40
127
  searchType: zod_1.z.enum(constants_js_1.SEARCH_TYPES).default("domain")
41
128
  });
42
129
  exports.domainKeywordsSchema = zod_1.z.object({
43
- domain: zod_1.z.string()
44
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
45
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
46
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
47
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
130
+ domain: domainSchema,
131
+ se: searchEngineSchema,
48
132
  withSubdomains: zod_1.z.boolean().optional(),
49
133
  withIntents: zod_1.z.boolean().optional(),
50
134
  url: zod_1.z.string().url().optional(),
51
- keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH)).max(constants_js_1.MAX_KEYWORDS_ITEMS).optional(),
52
- minusKeywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH)).max(constants_js_1.MAX_MINUS_KEYWORDS_ITEMS).optional(),
53
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
54
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
135
+ keywords: keywordArraySchema.max(constants_js_1.MAX_KEYWORDS_ITEMS).optional(),
136
+ minusKeywords: keywordArraySchema.max(constants_js_1.MAX_MINUS_KEYWORDS_ITEMS).optional(),
137
+ ...paginationSchema.shape,
55
138
  sort: zod_1.z.object({
56
139
  position: sortOrderSchema.optional(),
57
140
  region_queries_count: sortOrderSchema.optional(),
@@ -62,36 +145,22 @@ exports.domainKeywordsSchema = zod_1.z.object({
62
145
  concurrency: sortOrderSchema.optional(),
63
146
  }).partial().optional(),
64
147
  filters: zod_1.z.object({
65
- position: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
66
- position_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
67
- position_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
68
- cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
69
- cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
70
- cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
71
- region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
72
- region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
73
- region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
148
+ ...positionFilterSchema.shape,
149
+ ...costFilterSchema.shape,
150
+ ...regionQueriesFilterSchema.shape,
74
151
  traff: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
75
- difficulty: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
76
- difficulty_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
77
- difficulty_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
152
+ ...difficultyFilterSchema.shape,
78
153
  keyword_length: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
79
- concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
80
- concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
81
- concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
154
+ ...concurrencyFilterSchema.shape,
82
155
  right_spelling: zod_1.z.boolean().optional(),
83
156
  keyword_contain: zod_1.z.string().optional(),
84
157
  keyword_not_contain: zod_1.z.string().optional(),
85
- intents_contain: zod_1.z.array(keywordIntentsSchema).optional(),
86
- intents_not_contain: zod_1.z.array(keywordIntentsSchema).optional(),
158
+ ...intentsFilterSchema.shape,
87
159
  }).partial().optional(),
88
160
  }).strict();
89
161
  exports.domainUrlsSchema = zod_1.z.object({
90
- domain: zod_1.z.string()
91
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
92
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
93
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
94
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
162
+ domain: domainSchema,
163
+ se: searchEngineSchema,
95
164
  filters: zod_1.z.object({
96
165
  url_prefix: zod_1.z.string().max(constants_js_1.MAX_URL_PREFIX_LENGTH).optional(),
97
166
  url_contain: zod_1.z.string().max(constants_js_1.MAX_URL_CONTAIN_LENGTH).optional(),
@@ -100,72 +169,50 @@ exports.domainUrlsSchema = zod_1.z.object({
100
169
  sort: zod_1.z.object({
101
170
  keywords: sortOrderSchema.optional(),
102
171
  }).optional(),
103
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
104
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
172
+ ...paginationSchema.shape,
105
173
  }).strict();
106
174
  exports.domainRegionsCountSchema = zod_1.z.object({
107
- domain: zod_1.z.string()
108
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
109
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
110
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
175
+ domain: domainSchema,
111
176
  sort: zod_1.z.enum(constants_js_1.DOMAIN_REGIONS_SORT_FIELDS).optional(),
112
177
  order: sortOrderSchema.optional(),
113
178
  }).strict();
114
179
  exports.domainUniqKeywordsSchema = zod_1.z.object({
115
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
116
- domains: zod_1.z.array(zod_1.z.string()
117
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
118
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
119
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX))).min(constants_js_1.MIN_UNIQ_DOMAINS).max(constants_js_1.MAX_UNIQ_DOMAINS).refine(arr => new Set(arr).size === arr.length, {
180
+ se: searchEngineSchema,
181
+ domains: zod_1.z.array(domainSchema).min(constants_js_1.MIN_UNIQ_DOMAINS).max(constants_js_1.MAX_UNIQ_DOMAINS).refine(arr => new Set(arr).size === arr.length, {
120
182
  message: 'domains must be unique',
121
183
  }),
122
- minusDomain: zod_1.z.string()
123
- .min(constants_js_1.MIN_DOMAIN_LENGTH)
124
- .max(constants_js_1.MAX_DOMAIN_LENGTH)
125
- .regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX)),
126
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
127
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
184
+ minusDomain: domainSchema,
185
+ ...paginationSchema.shape,
128
186
  filters: zod_1.z.object({
129
187
  right_spelling: zod_1.z.boolean().optional(),
130
188
  misspelled: zod_1.z.boolean().optional(),
131
- keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH)).max(constants_js_1.MAX_UNIQ_KEYWORDS_ITEMS).optional(),
132
- minus_keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH)).max(constants_js_1.MAX_UNIQ_KEYWORDS_MINUS_ITEMS).optional(),
189
+ keywords: keywordArraySchema.max(constants_js_1.MAX_UNIQ_KEYWORDS_ITEMS).optional(),
190
+ minus_keywords: keywordArraySchema.max(constants_js_1.MAX_UNIQ_KEYWORDS_MINUS_ITEMS).optional(),
133
191
  queries: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
134
192
  queries_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
135
193
  queries_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
136
- region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
137
- region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
138
- region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
194
+ ...regionQueriesFilterSchema.shape,
139
195
  region_queries_count_wide: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
140
196
  region_queries_count_wide_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
141
197
  region_queries_count_wide_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
142
- cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
143
- cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
144
- cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
145
- concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
146
- concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
147
- concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
198
+ ...costFilterSchema.shape,
199
+ ...concurrencyFilterSchema.shape,
148
200
  difficulty: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
149
201
  difficulty_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
150
202
  difficulty_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
151
- keyword_length: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
152
- keyword_length_from: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
153
- keyword_length_to: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
203
+ ...keywordLengthFilterSchema.shape,
154
204
  traff: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
155
205
  traff_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
156
206
  traff_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
157
- position: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
158
- position_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
159
- position_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
207
+ ...positionFilterSchema.shape,
160
208
  }).strict().optional(),
161
209
  }).strict();
162
210
  exports.keywordGetSchema = zod_1.z.object({
163
- keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH),
164
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
165
- minusKeywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_KEYWORD_LENGTH)).max(constants_js_1.MAX_MINUS_KEYWORDS_ITEMS).optional(),
211
+ keyword: keywordSchema,
212
+ se: searchEngineSchema,
213
+ minusKeywords: keywordArraySchema.max(constants_js_1.MAX_MINUS_KEYWORDS_ITEMS).optional(),
166
214
  withIntents: zod_1.z.boolean().optional(),
167
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
168
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
215
+ ...paginationSchema.shape,
169
216
  sort: zod_1.z.object({
170
217
  region_queries_count: sortOrderSchema.optional(),
171
218
  cost: sortOrderSchema.optional(),
@@ -175,39 +222,22 @@ exports.keywordGetSchema = zod_1.z.object({
175
222
  keyword_length: sortOrderSchema.optional(),
176
223
  }).partial().optional(),
177
224
  filters: zod_1.z.object({
178
- cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
179
- cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
180
- cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
181
- region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
182
- region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
183
- region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
184
- keyword_length: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
185
- keyword_length_from: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
186
- keyword_length_to: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
187
- difficulty: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
188
- difficulty_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
189
- difficulty_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
190
- concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
191
- concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
192
- concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
225
+ ...costFilterWithMaxSchema.shape,
226
+ ...regionQueriesFilterWithMaxSchema.shape,
227
+ ...keywordLengthFilterSchema.shape,
228
+ ...difficultyFilterSchema.shape,
229
+ ...concurrencyFilterSchema.shape,
193
230
  right_spelling: zod_1.z.boolean().optional(),
194
- keyword_contain: zod_1.z.array(zod_1.z.string()).optional(),
195
- keyword_not_contain: zod_1.z.array(zod_1.z.string()).optional(),
196
- keyword_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
197
- keyword_not_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
198
- keyword_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
199
- keyword_not_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
231
+ ...keywordContentFilterSchema.shape,
200
232
  lang: zod_1.z.string().optional(),
201
- intents_contain: zod_1.z.array(keywordIntentsSchema).optional(),
202
- intents_not_contain: zod_1.z.array(keywordIntentsSchema).optional(),
233
+ ...intentsFilterSchema.shape,
203
234
  }).strict().optional(),
204
235
  }).strict();
205
236
  exports.getRelatedKeywordsSchema = zod_1.z.object({
206
237
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_RELATED_KEYWORD_LENGTH),
207
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
238
+ se: searchEngineSchema,
208
239
  withIntents: zod_1.z.boolean().default(false).optional(),
209
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
210
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
240
+ ...paginationSchema.shape,
211
241
  sort: zod_1.z.object({
212
242
  region_queries_count: sortOrderSchema.optional(),
213
243
  cost: sortOrderSchema.optional(),
@@ -217,31 +247,16 @@ exports.getRelatedKeywordsSchema = zod_1.z.object({
217
247
  keyword: sortOrderSchema.optional(),
218
248
  }).strict().optional(),
219
249
  filters: zod_1.z.object({
220
- cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
221
- cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
222
- cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_COST).optional(),
223
- region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
224
- region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
225
- region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_QUERIES_COUNT).optional(),
226
- keyword_length: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
227
- keyword_length_from: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
228
- keyword_length_to: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).optional(),
229
- difficulty: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
230
- difficulty_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
231
- difficulty_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_DIFFICULTY).optional(),
232
- concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
233
- concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
234
- concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_CONCURRENCY).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
250
+ ...costFilterWithMaxSchema.shape,
251
+ ...regionQueriesFilterWithMaxSchema.shape,
252
+ ...keywordLengthFilterSchema.shape,
253
+ ...difficultyFilterSchema.shape,
254
+ ...concurrencyFilterSchema.shape,
235
255
  weight: zod_1.z.number().int().min(constants_js_1.MIN_WEIGHT).optional(),
236
256
  weight_from: zod_1.z.number().min(constants_js_1.MIN_WEIGHT).optional(),
237
257
  weight_to: zod_1.z.number().min(constants_js_1.MIN_WEIGHT).optional(),
238
258
  right_spelling: zod_1.z.boolean().optional(),
239
- keyword_contain: zod_1.z.array(zod_1.z.string()).optional(),
240
- keyword_not_contain: zod_1.z.array(zod_1.z.string()).optional(),
241
- keyword_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
242
- keyword_not_contain_one_of: zod_1.z.array(zod_1.z.string()).optional(),
243
- keyword_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
244
- keyword_not_contain_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
259
+ ...keywordContentFilterSchema.shape,
245
260
  keyword_contain_one_of_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
246
261
  keyword_not_contain_one_of_broad_match: zod_1.z.array(zod_1.z.string()).optional(),
247
262
  geo_names: zod_1.z.enum(["contain", "not_contain"]).optional(),
@@ -251,7 +266,7 @@ exports.getRelatedKeywordsSchema = zod_1.z.object({
251
266
  }).strict();
252
267
  exports.keywordsInfoSchema = zod_1.z.object({
253
268
  keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH)).min(constants_js_1.MIN_KEYWORDS_INFO_ITEMS).max(constants_js_1.MAX_KEYWORDS_INFO_ITEMS),
254
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
269
+ se: searchEngineSchema,
255
270
  withIntents: zod_1.z.boolean().optional(),
256
271
  sort: zod_1.z.object({
257
272
  region_queries_count: sortOrderSchema.optional(),
@@ -262,39 +277,33 @@ exports.keywordsInfoSchema = zod_1.z.object({
262
277
  difficulty: sortOrderSchema.optional(),
263
278
  }).strict().optional(),
264
279
  filters: zod_1.z.object({
265
- cost: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
266
- cost_from: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
267
- cost_to: zod_1.z.number().min(constants_js_1.MIN_FILTER_VALUE).optional(),
280
+ ...costFilterSchema.shape,
268
281
  concurrency: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
269
282
  concurrency_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
270
283
  concurrency_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).max(constants_js_1.MAX_FILTER_CONCURRENCY).optional(),
271
284
  found_results: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
272
285
  found_results_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
273
286
  found_results_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
274
- region_queries_count: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
275
- region_queries_count_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
276
- region_queries_count_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
287
+ ...regionQueriesFilterSchema.shape,
277
288
  region_queries_count_wide: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
278
289
  region_queries_count_wide_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
279
290
  region_queries_count_wide_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_VALUE).optional(),
280
- intents_contain: zod_1.z.array(keywordIntentsSchema).optional(),
281
- intents_not_contain: zod_1.z.array(keywordIntentsSchema).optional(),
291
+ ...intentsFilterSchema.shape,
282
292
  right_spelling: zod_1.z.boolean().optional(),
283
293
  minus_keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH)).optional(),
284
294
  }).strict().optional(),
285
295
  }).strict();
286
296
  exports.keywordSuggestionsSchema = zod_1.z.object({
287
297
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_RELATED_KEYWORD_LENGTH),
288
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
298
+ se: searchEngineSchema,
289
299
  filters: zod_1.z.object({
290
300
  minus_keywords: zod_1.z.array(zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH)).optional(),
291
301
  }).strict().optional(),
292
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
293
- size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
302
+ ...paginationSchema.shape,
294
303
  }).strict();
295
304
  exports.keywordFullTopSchema = zod_1.z.object({
296
305
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH),
297
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
306
+ se: searchEngineSchema,
298
307
  sort: zod_1.z.object({
299
308
  position: sortOrderSchema.optional(),
300
309
  url_keywords_count: sortOrderSchema.optional(),
@@ -312,7 +321,7 @@ exports.keywordFullTopSchema = zod_1.z.object({
312
321
  }).strict();
313
322
  exports.keywordTopUrlsSchema = zod_1.z.object({
314
323
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH),
315
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES).optional(),
324
+ se: searchEngineSchema.optional(),
316
325
  sort: zod_1.z.string().optional(),
317
326
  order: sortOrderSchema.optional(),
318
327
  page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).optional(),
@@ -328,10 +337,10 @@ exports.keywordTopUrlsSchema = zod_1.z.object({
328
337
  }).strict();
329
338
  exports.keywordCompetitorsSchema = zod_1.z.object({
330
339
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH),
331
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
340
+ se: searchEngineSchema,
332
341
  filters: zod_1.z.object({
333
- domain: zod_1.z.array(zod_1.z.string().regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX))).optional(),
334
- minus_domain: zod_1.z.array(zod_1.z.string().regex(new RegExp(constants_js_1.DOMAIN_NAME_REGEX))).optional(),
342
+ domain: zod_1.z.array(domainSchema).optional(),
343
+ minus_domain: zod_1.z.array(domainSchema).optional(),
335
344
  visible: zod_1.z.number().int().optional(),
336
345
  visible_from: zod_1.z.number().int().optional(),
337
346
  visible_to: zod_1.z.number().int().optional(),
@@ -350,12 +359,10 @@ exports.keywordCompetitorsSchema = zod_1.z.object({
350
359
  }).strict();
351
360
  exports.keywordTopSchema = zod_1.z.object({
352
361
  keyword: zod_1.z.string().min(constants_js_1.MIN_KEYWORD_LENGTH),
353
- se: zod_1.z.enum(constants_js_1.MAIN_SEARCH_ENGINES),
362
+ se: searchEngineSchema,
354
363
  filters: zod_1.z.object({
355
364
  top_size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_TOP_SIZE).default(constants_js_1.DEFAULT_TOP_SIZE).optional(),
356
- position: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
357
- position_from: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
358
- position_to: zod_1.z.number().int().min(constants_js_1.MIN_FILTER_POSITION).max(constants_js_1.MAX_FILTER_POSITION).optional(),
365
+ ...positionFilterSchema.shape,
359
366
  url: zod_1.z.string().url().optional(),
360
367
  exact_url: zod_1.z.string().url().optional(),
361
368
  domain: zod_1.z.string().optional(),
@@ -364,16 +371,9 @@ exports.keywordTopSchema = zod_1.z.object({
364
371
  }).strict().optional(),
365
372
  size: zod_1.z.number().int().min(constants_js_1.MIN_KEYWORD_LENGTH).max(constants_js_1.MAX_PAGE_SIZE).optional(),
366
373
  }).strict();
367
- const complexFilterItemSchema = zod_1.z.union([
368
- zod_1.z.object({
369
- field: zod_1.z.enum(constants_js_1.ANCHORS_COMPLEX_FILTER_FIELDS),
370
- compareType: zod_1.z.enum(constants_js_1.COMPLEX_FILTER_COMPARE_TYPES),
371
- value: zod_1.z.array(zod_1.z.union([zod_1.z.number().int(), zod_1.z.string()]))
372
- }),
373
- zod_1.z.object({
374
- additional_filters: zod_1.z.enum(constants_js_1.ADDITIONAL_FILTERS)
375
- })
376
- ]);
374
+ const complexFilterItemSchema = createComplexFilterSchema(constants_js_1.ANCHORS_COMPLEX_FILTER_FIELDS);
375
+ const backlinksComplexFilterItemSchema = createComplexFilterSchema(constants_js_1.BACKLINKS_COMPLEX_FILTER_FIELDS);
376
+ const referringDomainsComplexFilterItemSchema = createComplexFilterSchema(constants_js_1.REFERRING_DOMAINS_COMPLEX_FILTER_FIELDS);
377
377
  exports.anchorsSchema = zod_1.z.object({
378
378
  query: zod_1.z.string(),
379
379
  searchType: zod_1.z.enum(constants_js_1.SEARCH_TYPES_URL),
@@ -381,32 +381,55 @@ exports.anchorsSchema = zod_1.z.object({
381
381
  count: zod_1.z.string().optional(),
382
382
  sort: zod_1.z.enum(constants_js_1.ANCHORS_SORT_FIELDS).default("refDomains").optional(),
383
383
  order: sortOrderSchema.default("desc").optional(),
384
- page: zod_1.z.number().int().min(constants_js_1.MIN_PAGE).default(1).optional(),
385
- size: zod_1.z.number().int().min(1).max(constants_js_1.MAX_PAGE_SIZE).default(constants_js_1.DEFAULT_PAGE_SIZE).optional(),
384
+ ...paginationSchema.shape,
386
385
  complexFilter: zod_1.z.array(zod_1.z.array(complexFilterItemSchema)).optional()
386
+ }).strict().refine(createQueryValidationRefine(true), {
387
+ message: "Invalid query format for the specified search type",
388
+ path: ["query"]
389
+ });
390
+ exports.getActiveBacklinksSchema = zod_1.z.object({
391
+ query: zod_1.z.string(),
392
+ searchType: zod_1.z.enum(constants_js_1.SEARCH_TYPES_URL).default("domain"),
393
+ sort: zod_1.z.enum(constants_js_1.BACKLINKS_SORT_FIELDS).default("check").optional(),
394
+ order: sortOrderSchema.optional(),
395
+ linkPerDomain: zod_1.z.number().int().min(1).max(1).optional(),
396
+ complexFilter: zod_1.z.array(zod_1.z.array(backlinksComplexFilterItemSchema)).optional(),
397
+ ...paginationSchema.shape,
398
+ }).strict().refine(createQueryValidationRefine(true), {
399
+ message: "Invalid query format for the specified search type",
400
+ path: ["query"]
401
+ });
402
+ exports.getReferringDomainsSchema = zod_1.z.object({
403
+ query: domainSchema,
404
+ searchType: zod_1.z.enum(constants_js_1.SEARCH_TYPES).default("domain"),
405
+ sort: zod_1.z.enum(constants_js_1.REFERRING_DOMAINS_SORT_FIELDS).default("check").optional(),
406
+ order: sortOrderSchema.optional(),
407
+ complexFilter: zod_1.z.array(zod_1.z.array(referringDomainsComplexFilterItemSchema)).optional(),
408
+ ...paginationSchema.shape,
409
+ }).strict();
410
+ const lostBacklinksComplexFilterItemSchema = zod_1.z.object({
411
+ name: zod_1.z.enum(constants_js_1.LOST_BACKLINKS_COMPLEX_FILTER_FIELDS),
412
+ operator: zod_1.z.enum(constants_js_1.COMPLEX_FILTER_COMPARE_TYPES),
413
+ value: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number()]))])
414
+ });
415
+ exports.getLostBacklinksSchema = zod_1.z.object({
416
+ query: zod_1.z.string()
417
+ .min(constants_js_1.MIN_DOMAIN_LENGTH)
418
+ .max(constants_js_1.MAX_DOMAIN_LENGTH),
419
+ searchType: zod_1.z.enum(constants_js_1.SEARCH_TYPES_URL).default("domain"),
420
+ sort: zod_1.z.enum(constants_js_1.LOST_BACKLINKS_SORT_FIELDS).default("check").optional(),
421
+ order: sortOrderSchema.optional(),
422
+ complexFilter: zod_1.z.array(zod_1.z.array(lostBacklinksComplexFilterItemSchema)).optional(),
423
+ additionalFilters: zod_1.z.array(zod_1.z.enum(constants_js_1.ADDITIONAL_FILTERS)).optional(),
424
+ ...paginationSchema.shape,
387
425
  }).strict().refine((data) => {
388
- if (data.searchType === 'url' || data.searchType === 'part_url') {
389
- const urlPattern = /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\/.*)?\??.*$/;
390
- if (data.query.startsWith('http://') || data.query.startsWith('https://')) {
391
- try {
392
- new URL(data.query);
393
- return true;
394
- }
395
- catch {
396
- return false;
397
- }
398
- }
399
- else {
400
- return urlPattern.test(data.query);
401
- }
426
+ if (data.searchType === "url" || data.searchType === "part_url") {
427
+ return true;
402
428
  }
403
429
  else {
404
- return data.query.length >= constants_js_1.MIN_DOMAIN_LENGTH &&
405
- data.query.length <= constants_js_1.MAX_DOMAIN_LENGTH &&
406
- new RegExp(constants_js_1.DOMAIN_NAME_REGEX).test(data.query);
430
+ return new RegExp(constants_js_1.DOMAIN_NAME_REGEX).test(data.query);
407
431
  }
408
432
  }, {
409
- message: "Invalid query format for the specified search type",
410
- path: ["query"]
433
+ message: "Invalid domain format for domain search type"
411
434
  });
412
435
  //# sourceMappingURL=validation.js.map