jsonseo 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.
@@ -0,0 +1,361 @@
1
+ import type { AdultFilter, BingSafeSearch, Device, DirectPeriod, Flag, Freshness, GoogleSafeSearch, ImageColor, ImageFormat, ImageOrientation, ImageSize, ImageType, MobileDevice, ParamValue, RegionLanguage, VideoDuration, WordstatGraphType, WordstatKind, WordstatMapType, YandexZone } from './common.js';
2
+ /**
3
+ * Основа всех наборов параметров. Запись открыта не для удобства: вертикали
4
+ * принимают и родные параметры поисковиков — tbs, isize, qft, — перечислить
5
+ * которые нельзя, они меняются вместе с поисковиками.
6
+ */
7
+ export interface BaseParams {
8
+ [param: string]: ParamValue;
9
+ }
10
+ /** Параметры органической выдачи Яндекса. */
11
+ export interface YandexSearchParams extends BaseParams {
12
+ /** Поисковый запрос. */
13
+ text: string;
14
+ /** ID региона Яндекса из справочника `yandexRegions()`. По умолчанию 213 (Москва). */
15
+ region?: number;
16
+ /** Сколько страниц выдачи собрать, 1–20. */
17
+ pages?: number;
18
+ /** С какой страницы начать, нумерация с нуля. `page + pages` больше 20 — ошибка. */
19
+ page?: number;
20
+ /** Смещение в единицах Яндекса — номер страницы с нуля. Старше `page`. */
21
+ p?: number;
22
+ /** Фильтрация результатов поиска. */
23
+ filter?: AdultFilter;
24
+ /** Выделять слова запроса в title и passage тегами `<hlword>`. */
25
+ hlword?: Flag;
26
+ /** Отключить автоматическое исправление запроса. */
27
+ noreask?: Flag;
28
+ /** Доменная зона поиска. */
29
+ zone?: YandexZone;
30
+ /** Устройство. По умолчанию выдача мобильная. */
31
+ device?: Device;
32
+ /** Домен, на котором остановить поиск: дешевле и быстрее, когда нужна только позиция. */
33
+ break_domain?: string;
34
+ /** Забрать «Быстрый ответ Алисы AI». Только с первой страницы, +0.01 ₽ когда ответ есть. */
35
+ ai?: Flag;
36
+ /** Добавить рекламные блоки отдельным массивом `ads`. +0.01 ₽ за страницу с рекламой. */
37
+ ads?: Flag;
38
+ }
39
+ /** Параметры подсказок Яндекса. */
40
+ export interface YandexSuggestParams extends BaseParams {
41
+ /** Запрос-префикс, для которого нужны подсказки. */
42
+ text: string;
43
+ /** ID региона Яндекса: подсказки региональные. */
44
+ region?: number;
45
+ /** Доменная зона поиска. */
46
+ zone?: YandexZone;
47
+ }
48
+ /** Параметры справочников регионов — одинаковые у Яндекса и Google. */
49
+ export interface RegionsParams extends BaseParams {
50
+ /** Название города или области, можно частично. Число ищется как ID региона. */
51
+ name: string | number;
52
+ /** Язык названий в ответе. */
53
+ lang?: RegionLanguage;
54
+ }
55
+ /** Параметры поиска по картинкам у Яндекса. */
56
+ export interface YandexImagesParams extends BaseParams {
57
+ /** Поисковый запрос. */
58
+ q: string;
59
+ /** Сколько страниц вертикали собрать. Страница здесь — 20 карточек. */
60
+ pages?: number;
61
+ /** С какой страницы вертикали начать, нумерация с нуля. */
62
+ page?: number;
63
+ /** Смещение в единицах Яндекса. Старше `page`. */
64
+ p?: number;
65
+ /** ID региона Яндекса. По умолчанию 213 (Москва). */
66
+ region?: number;
67
+ /** Домен Яндекса: ru, com, kz, by, uz, tr, com.tr. */
68
+ zone?: string;
69
+ /** Семейный поиск. */
70
+ family?: Flag;
71
+ /** Фильтрация взрослого контента. */
72
+ filter?: AdultFilter;
73
+ /** Размер картинки. */
74
+ size?: ImageSize;
75
+ /** Ориентация картинки. */
76
+ orientation?: ImageOrientation;
77
+ /** Цвет. pink и brown у Яндекса отсутствуют и возвращают 422. */
78
+ color?: ImageColor;
79
+ /** Тип изображения. transparent у Яндекса отсутствует. */
80
+ type?: ImageType;
81
+ /** Формат файла. */
82
+ format?: ImageFormat;
83
+ /** Свежесть. У Яндекса поддерживаются только week и month. */
84
+ freshness?: Freshness;
85
+ /** Отбор по сайту: домен без протокола и пути. */
86
+ site?: string;
87
+ /** Добавить рекламные блоки отдельным массивом `ads`. */
88
+ ads?: Flag;
89
+ }
90
+ /** Параметры поиска по видео у Яндекса. */
91
+ export interface YandexVideoParams extends BaseParams {
92
+ /** Поисковый запрос. */
93
+ q: string;
94
+ /** Сколько страниц вертикали собрать. Страница здесь — 20 карточек. */
95
+ pages?: number;
96
+ /** С какой страницы вертикали начать, нумерация с нуля. */
97
+ page?: number;
98
+ /** Смещение в единицах Яндекса. Старше `page`. */
99
+ p?: number;
100
+ /** ID региона Яндекса. */
101
+ region?: number;
102
+ /** Домен Яндекса. */
103
+ zone?: string;
104
+ /** Семейный поиск. */
105
+ family?: Flag;
106
+ /** Фильтрация взрослого контента. */
107
+ filter?: AdultFilter;
108
+ /** Длительность ролика. */
109
+ duration?: VideoDuration;
110
+ /** Только в высоком качестве. */
111
+ hd?: Flag | string;
112
+ /** Свежесть. У Яндекса окно одно и не настраивается — любое значение вернёт 422. */
113
+ freshness?: Freshness;
114
+ /** Только эта площадка: домен без протокола и пути. */
115
+ site?: string;
116
+ }
117
+ /** Параметры органической выдачи Google. */
118
+ export interface GoogleSearchParams extends BaseParams {
119
+ /** Поисковый запрос. */
120
+ q: string;
121
+ /** ID региона Google из справочника `googleRegions()`: по нему строятся uule и gl. */
122
+ region?: number;
123
+ /** Сколько страниц выдачи собрать, 1–20. */
124
+ pages?: number;
125
+ /** С какой страницы начать, нумерация с нуля. */
126
+ page?: number;
127
+ /** Смещение в единицах Google: номер результата с нуля, кратный десяти. Старше `page`. */
128
+ start?: number;
129
+ /** Код страны ISO: ru, us, de. */
130
+ gl?: string;
131
+ /** Язык интерфейса: ru, en, de, принимается и en-US. */
132
+ hl?: string;
133
+ /** Закодированная геолокация Google. */
134
+ uule?: string;
135
+ /** Координаты в формате longitude,latitude. Работают, только если нет uule и region. */
136
+ ll?: string;
137
+ /** Отключить автоматическое исправление запроса. */
138
+ nfpr?: Flag;
139
+ /** Устройство. По умолчанию выдача мобильная. */
140
+ device?: MobileDevice;
141
+ /** `0` возвращает результаты, схлопнутые как «очень похожие». Причина обрезки — в `filter_description`. */
142
+ filter?: Flag;
143
+ /** Безопасный поиск. */
144
+ safe?: GoogleSafeSearch;
145
+ /** Домен, на котором остановить поиск. */
146
+ break_domain?: string;
147
+ /** Доменная зона Google (ccTLD), по умолчанию com. */
148
+ zone?: string;
149
+ /** Забрать AI Overview. Только с первой страницы, +0.01 ₽ когда обзор есть. */
150
+ ai?: Flag;
151
+ /** Добавить рекламные блоки отдельным массивом `ads`. */
152
+ ads?: Flag;
153
+ }
154
+ /** Параметры подсказок Google. */
155
+ export interface GoogleSuggestParams extends BaseParams {
156
+ /** Запрос-префикс. */
157
+ q: string;
158
+ /** ID региона Google. */
159
+ region?: number;
160
+ /** Код страны — главный рычаг региональности, если region не задан. */
161
+ gl?: string;
162
+ /** Язык интерфейса. */
163
+ hl?: string;
164
+ /** Закодированная геолокация Google. */
165
+ uule?: string;
166
+ /** Доменная зона Google. На подсказки почти не влияет. */
167
+ zone?: string;
168
+ }
169
+ /** Общие параметры вертикалей Google — картинок и видео. */
170
+ interface GoogleVerticalParams extends BaseParams {
171
+ /** Поисковый запрос. */
172
+ q: string;
173
+ /** Сколько страниц вертикали собрать. */
174
+ pages?: number;
175
+ /** С какой страницы вертикали начать, нумерация с нуля. */
176
+ page?: number;
177
+ /** Смещение в единицах Google. Старше `page`. */
178
+ start?: number;
179
+ /** ID региона Google: из него собираются uule и gl. */
180
+ region?: number;
181
+ /** Готовая строка UULE. Старше region. */
182
+ uule?: string;
183
+ /** Координаты longitude,latitude. */
184
+ ll?: string;
185
+ /** Язык интерфейса выдачи. */
186
+ hl?: string;
187
+ /** Код страны выдачи. */
188
+ gl?: string;
189
+ /** Национальный домен Google. */
190
+ zone?: string;
191
+ /** SafeSearch. */
192
+ safe?: GoogleSafeSearch;
193
+ /** Схлопывание «очень похожих» результатов. */
194
+ filter?: Flag;
195
+ }
196
+ /** Параметры поиска по картинкам у Google. Страница вертикали — 100 карточек. */
197
+ export interface GoogleImagesParams extends GoogleVerticalParams {
198
+ /** Размер картинки. Меньшая ступень у Google — значки ровно 256 px. */
199
+ size?: ImageSize;
200
+ /** Ориентация картинки. */
201
+ orientation?: ImageOrientation;
202
+ /** Цвет. */
203
+ color?: ImageColor;
204
+ /** Тип изображения. */
205
+ type?: ImageType;
206
+ /** Формат файла. */
207
+ format?: ImageFormat;
208
+ /** Свежесть. */
209
+ freshness?: Freshness;
210
+ /** Отбор по сайту: домен без протокола и пути. */
211
+ site?: string;
212
+ }
213
+ /** Параметры поиска по видео у Google. Страница вертикали — 10 карточек. */
214
+ export interface GoogleVideoParams extends GoogleVerticalParams {
215
+ /** Длительность ролика. */
216
+ duration?: VideoDuration;
217
+ /** Только в высоком качестве. */
218
+ hd?: Flag | string;
219
+ /** Свежесть ролика. */
220
+ freshness?: Freshness;
221
+ /** Только эта площадка. У Google задаётся строкой tbs=srcf:, поэтому вернёт 422. */
222
+ site?: string;
223
+ }
224
+ /** Параметры органической выдачи Bing. */
225
+ export interface BingSearchParams extends BaseParams {
226
+ /** Поисковый запрос. */
227
+ q: string;
228
+ /** Сколько страниц выдачи собрать, 1–20. */
229
+ pages?: number;
230
+ /** Рынок в формате язык-страна: ru-RU, en-US. */
231
+ mkt?: string;
232
+ /** Код страны: RU, US. */
233
+ cc?: string;
234
+ /** Координаты в формате latitude,longitude. */
235
+ ll?: string;
236
+ /** Язык интерфейса. Регион не меняет. */
237
+ setlang?: string;
238
+ /** Устройство. По умолчанию выдача мобильная. */
239
+ device?: MobileDevice;
240
+ /** Фильтрация результатов. */
241
+ safesearch?: BingSafeSearch;
242
+ /** Домен, на котором остановить поиск. Поддерживает маску `*.example.com`. */
243
+ break_domain?: string;
244
+ /** С какой страницы начать, нумерация с нуля. */
245
+ page?: number;
246
+ /** Смещение в единицах Bing: номер результата с единицы. Старше `page`. */
247
+ first?: number;
248
+ /** Забрать ответ Copilot. +0.01 ₽ когда ответ есть. */
249
+ ai?: Flag;
250
+ }
251
+ /** Параметры подсказок Bing. */
252
+ export interface BingSuggestParams extends BaseParams {
253
+ /** Запрос-префикс. */
254
+ q: string;
255
+ /** Координаты latitude,longitude — делают подсказки региональными. */
256
+ ll?: string;
257
+ /** Рынок. По умолчанию ru-RU. */
258
+ mkt?: string;
259
+ /** Код страны. */
260
+ cc?: string;
261
+ /** Язык интерфейса. */
262
+ setlang?: string;
263
+ }
264
+ /** Общие параметры вертикалей Bing — картинок и видео. */
265
+ interface BingVerticalParams extends BaseParams {
266
+ /** Поисковый запрос. */
267
+ q: string;
268
+ /** Сколько страниц вертикали собрать. Страница — `count` карточек. */
269
+ pages?: number;
270
+ /** С какой страницы вертикали начать. Дальше 700-й карточки Bing не листает. */
271
+ page?: number;
272
+ /** Смещение в единицах Bing: номер карточки с единицы. Старше `page`. */
273
+ first?: number;
274
+ /** Сколько карточек просить на страницу. Цена страницы от этого не зависит. */
275
+ count?: number;
276
+ /** Рынок. */
277
+ mkt?: string;
278
+ /** Код страны. */
279
+ cc?: string;
280
+ /** Язык интерфейса. */
281
+ setlang?: string;
282
+ /** Координаты latitude,longitude. */
283
+ ll?: string;
284
+ /** Фильтрация результатов. */
285
+ safesearch?: BingSafeSearch;
286
+ }
287
+ /** Параметры поиска по картинкам у Bing. Потолок `count` — 35. */
288
+ export interface BingImagesParams extends BingVerticalParams {
289
+ /** Размер картинки. */
290
+ size?: ImageSize;
291
+ /** Ориентация картинки. */
292
+ orientation?: ImageOrientation;
293
+ /** Цвет. */
294
+ color?: ImageColor;
295
+ /** Тип изображения. */
296
+ type?: ImageType;
297
+ /** Формат файла. У Bing выбирается только gif. */
298
+ format?: ImageFormat;
299
+ /** Свежесть. */
300
+ freshness?: Freshness;
301
+ /** Отбор по сайту. У Bing в картинках его нет — вернёт 422. */
302
+ site?: string;
303
+ }
304
+ /** Параметры поиска по видео у Bing. Потолок `count` — 105. */
305
+ export interface BingVideoParams extends BingVerticalParams {
306
+ /** Длительность ролика. */
307
+ duration?: VideoDuration;
308
+ /** Только в высоком качестве: у Bing это 720p и выше. */
309
+ hd?: Flag | string;
310
+ /** Свежесть ролика. */
311
+ freshness?: Freshness;
312
+ /** Только эта площадка. */
313
+ site?: string;
314
+ }
315
+ /** Общие параметры методов Вордстата. */
316
+ export interface WordstatParams extends BaseParams {
317
+ /** Ключевое слово или фраза. Операторы передаются как есть. */
318
+ text: string;
319
+ /** Вид частотности: операторы расставляются автоматически. */
320
+ kind?: WordstatKind;
321
+ /** ID регионов Яндекса. Массив склеивается запятой. */
322
+ region?: string | number | ReadonlyArray<string | number>;
323
+ /** Типы устройств: desktop, phone, tablet. */
324
+ device?: string | ReadonlyArray<string>;
325
+ }
326
+ /** Параметры динамики запроса. */
327
+ export interface WordstatGraphParams extends WordstatParams {
328
+ /** Шаг динамики. */
329
+ graph_type?: WordstatGraphType;
330
+ }
331
+ /** Параметры географии запроса. Параметр `region` здесь не применяется. */
332
+ export interface WordstatMapParams extends BaseParams {
333
+ /** Ключевое слово или фраза. */
334
+ text: string;
335
+ /** Вид частотности. */
336
+ kind?: WordstatKind;
337
+ /** Типы устройств. */
338
+ device?: string | ReadonlyArray<string>;
339
+ /** Разрез: по регионам, по городам или всё вместе. */
340
+ map_type?: WordstatMapType;
341
+ }
342
+ /** Параметры прогноза показов Яндекс Директа. */
343
+ export interface DirectParams extends BaseParams {
344
+ /**
345
+ * Ключевые фразы, не больше 1000 за запрос. Массив склеивается переводом
346
+ * строки. Вид частотности задаётся операторами прямо во фразе.
347
+ */
348
+ phrases: string | ReadonlyArray<string>;
349
+ /** ID региона Яндекса. По умолчанию 225 (Россия). */
350
+ region?: number;
351
+ /** Период прогноза. */
352
+ period?: DirectPeriod;
353
+ /** Номер периода — календарный, а не смещение вперёд. */
354
+ period_num?: number;
355
+ }
356
+ /** Параметры геолокации по IP. */
357
+ export interface GeoipParams extends BaseParams {
358
+ /** IPv4-адрес. */
359
+ ip: string;
360
+ }
361
+ export {};
@@ -0,0 +1 @@
1
+ export {};