itd-api 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/events/index.cjs +27 -25
- package/dist/events/index.d.cts +3 -3
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.js +5 -5
- package/dist/index.cjs +136 -116
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -7
- package/dist/index.d.ts +18 -7
- package/dist/index.js +46 -30
- package/dist/index.js.map +1 -1
- package/dist/node/index.cjs +13 -13
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +5 -5
- package/dist/rest/index.cjs +43 -40
- package/dist/rest/index.cjs.map +1 -1
- package/dist/rest/index.d.cts +3 -3
- package/dist/rest/index.d.ts +3 -3
- package/dist/rest/index.js +6 -6
- package/dist/shared/{events-B8cjz_Ed.cjs → events-C6tmj8aW.cjs} +63 -59
- package/dist/shared/events-C6tmj8aW.cjs.map +1 -0
- package/dist/shared/{events-DGdU8q1X.d.ts → events-CAb9G7Sf.d.ts} +2 -2
- package/dist/shared/{events-D2n7Yu1P.js → events-MWNcnfrq.js} +19 -15
- package/dist/shared/events-MWNcnfrq.js.map +1 -0
- package/dist/shared/{events-CK3zHntT.d.cts → events-Sc75x6rT.d.cts} +2 -2
- package/dist/shared/{key-value-store-B5GYVEYZ.cjs → key-value-store-DYSPsqwq.cjs} +11 -14
- package/dist/shared/key-value-store-DYSPsqwq.cjs.map +1 -0
- package/dist/shared/{key-value-store-Bt2PSMxY.js → key-value-store-w1Dn5Pjb.js} +5 -8
- package/dist/shared/key-value-store-w1Dn5Pjb.js.map +1 -0
- package/dist/shared/{multi-storage-C3Ngtop1.js → multi-storage-BLBrGN9Q.js} +6 -6
- package/dist/shared/multi-storage-BLBrGN9Q.js.map +1 -0
- package/dist/shared/{multi-storage-s-fPtjoy.cjs → multi-storage-C7-Gz6Z7.cjs} +8 -8
- package/dist/shared/multi-storage-C7-Gz6Z7.cjs.map +1 -0
- package/dist/shared/{options-DjEtbVaf.cjs → options-5tywTYId.cjs} +13 -13
- package/dist/shared/{options-DjEtbVaf.cjs.map → options-5tywTYId.cjs.map} +1 -1
- package/dist/shared/{options-i4LrKfqx.js → options-BerKicCs.js} +3 -3
- package/dist/shared/{options-i4LrKfqx.js.map → options-BerKicCs.js.map} +1 -1
- package/dist/shared/{redact-DJV0XM3n.js → redact-C5oxIvcc.js} +79 -18
- package/dist/shared/redact-C5oxIvcc.js.map +1 -0
- package/dist/shared/{redact-lAmck1Z6.cjs → redact-DoC7lSsp.cjs} +109 -24
- package/dist/shared/redact-DoC7lSsp.cjs.map +1 -0
- package/dist/shared/{render-UsOGMRzS.d.ts → render-CBroJPcV.d.ts} +178 -252
- package/dist/shared/{render-9F_kR6sq.d.cts → render-DM7AhTZW.d.cts} +178 -252
- package/dist/shared/{render-C6CJ343E.js → render-DRh5_aRe.js} +128 -135
- package/dist/shared/render-DRh5_aRe.js.map +1 -0
- package/dist/shared/{render-BrrZOSV5.cjs → render-Dnc84B4M.cjs} +234 -241
- package/dist/shared/render-Dnc84B4M.cjs.map +1 -0
- package/dist/shared/{storage-DiDe0PZM.js → storage-86wiHeXD.js} +3 -3
- package/dist/shared/{storage-DiDe0PZM.js.map → storage-86wiHeXD.js.map} +1 -1
- package/dist/shared/{storage-CZJZoaz9.cjs → storage-CIjejZDt.cjs} +4 -4
- package/dist/shared/{storage-CZJZoaz9.cjs.map → storage-CIjejZDt.cjs.map} +1 -1
- package/dist/shared/{url-yB6T_H_-.d.ts → url-BOi-_mJT.d.cts} +143 -79
- package/dist/shared/{url-yB6T_H_-.d.cts → url-BOi-_mJT.d.ts} +143 -79
- package/dist/shared/{url-Dc7wLikf.js → url-Bg61sk_Y.js} +723 -590
- package/dist/shared/url-Bg61sk_Y.js.map +1 -0
- package/dist/shared/{url-BNTKqBMB.cjs → url-DTgkCWv5.cjs} +830 -709
- package/dist/shared/url-DTgkCWv5.cjs.map +1 -0
- package/dist/shared/{errors-BmP3TKoW.cjs → validate-CFx2dISs.cjs} +84 -5
- package/dist/shared/validate-CFx2dISs.cjs.map +1 -0
- package/dist/shared/{errors-GI10kZxk.js → validate-D7_kq3g5.js} +55 -6
- package/dist/shared/validate-D7_kq3g5.js.map +1 -0
- package/dist/web/index.cjs +4 -4
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.js +3 -3
- package/package.json +1 -1
- package/dist/shared/errors-BmP3TKoW.cjs.map +0 -1
- package/dist/shared/errors-GI10kZxk.js.map +0 -1
- package/dist/shared/events-B8cjz_Ed.cjs.map +0 -1
- package/dist/shared/events-D2n7Yu1P.js.map +0 -1
- package/dist/shared/key-value-store-B5GYVEYZ.cjs.map +0 -1
- package/dist/shared/key-value-store-Bt2PSMxY.js.map +0 -1
- package/dist/shared/multi-storage-C3Ngtop1.js.map +0 -1
- package/dist/shared/multi-storage-s-fPtjoy.cjs.map +0 -1
- package/dist/shared/redact-DJV0XM3n.js.map +0 -1
- package/dist/shared/redact-lAmck1Z6.cjs.map +0 -1
- package/dist/shared/render-BrrZOSV5.cjs.map +0 -1
- package/dist/shared/render-C6CJ343E.js.map +0 -1
- package/dist/shared/url-BNTKqBMB.cjs.map +0 -1
- package/dist/shared/url-Dc7wLikf.js.map +0 -1
|
@@ -1041,6 +1041,28 @@ interface ItdClock {
|
|
|
1041
1041
|
/** Системные часы, используемые клиентом по умолчанию. */
|
|
1042
1042
|
declare const systemClock: ItdClock;
|
|
1043
1043
|
//#endregion
|
|
1044
|
+
//#region src/core/logger.d.ts
|
|
1045
|
+
/**
|
|
1046
|
+
* Логгер библиотеки. Совместим с `console`: к сообщению прилагается не больше одного
|
|
1047
|
+
* аргумента — объект с деталями либо ошибка.
|
|
1048
|
+
*/
|
|
1049
|
+
interface Logger {
|
|
1050
|
+
debug(message: string, ...args: unknown[]): void;
|
|
1051
|
+
info(message: string, ...args: unknown[]): void;
|
|
1052
|
+
warn(message: string, ...args: unknown[]): void;
|
|
1053
|
+
error(message: string, ...args: unknown[]): void;
|
|
1054
|
+
/** Пишет ли логгер этот уровень; без метода считается, что пишет все. Есть у winston и pino. */
|
|
1055
|
+
isLevelEnabled?(level: LogLevel): boolean;
|
|
1056
|
+
}
|
|
1057
|
+
/** Уровень записи журнала. */
|
|
1058
|
+
declare const LogLevel: Readonly<{
|
|
1059
|
+
readonly Debug: "debug";
|
|
1060
|
+
readonly Info: "info";
|
|
1061
|
+
readonly Warn: "warn";
|
|
1062
|
+
readonly Error: "error";
|
|
1063
|
+
}>;
|
|
1064
|
+
type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|
|
1065
|
+
//#endregion
|
|
1044
1066
|
//#region src/core/runtime.d.ts
|
|
1045
1067
|
/**
|
|
1046
1068
|
* Как библиотека обращается с cookie.
|
|
@@ -1096,13 +1118,6 @@ type QueryValue = string | number | boolean | null | undefined | readonly (strin
|
|
|
1096
1118
|
type QueryParams = Record<string, QueryValue>;
|
|
1097
1119
|
//#endregion
|
|
1098
1120
|
//#region src/core/options.d.ts
|
|
1099
|
-
/** Логгер библиотеки. Совместим с `console`. */
|
|
1100
|
-
interface Logger {
|
|
1101
|
-
debug(message: string, ...args: unknown[]): void;
|
|
1102
|
-
info(message: string, ...args: unknown[]): void;
|
|
1103
|
-
warn(message: string, ...args: unknown[]): void;
|
|
1104
|
-
error(message: string, ...args: unknown[]): void;
|
|
1105
|
-
}
|
|
1106
1121
|
/** Настройки повторных попыток. */
|
|
1107
1122
|
interface RetryOptions {
|
|
1108
1123
|
/** Сколько всего попыток, включая первую. По умолчанию 3. */
|
|
@@ -1186,39 +1201,39 @@ interface RateLimitOptions {
|
|
|
1186
1201
|
*/
|
|
1187
1202
|
retryDelays?: readonly number[] | undefined;
|
|
1188
1203
|
}
|
|
1189
|
-
/** Данные о запросе, доступные хукам. */
|
|
1204
|
+
/** Данные о запросе, доступные хукам. Изменяем только объект `headers`. */
|
|
1190
1205
|
interface RequestContext {
|
|
1191
1206
|
/** Стабильная семантическая операция; `raw` у низкоуровневого вызова без явного ID. */
|
|
1192
|
-
operationId: OperationId;
|
|
1193
|
-
/** Общий сигнал пользовательской отмены,
|
|
1194
|
-
signal: AbortSignal | undefined;
|
|
1195
|
-
method: string;
|
|
1207
|
+
readonly operationId: OperationId;
|
|
1208
|
+
/** Общий сигнал пользовательской отмены, истёкших сроков и освобождения клиента. */
|
|
1209
|
+
readonly signal: AbortSignal | undefined;
|
|
1210
|
+
readonly method: string;
|
|
1196
1211
|
/** Путь без базового URL, например `/api/posts`. */
|
|
1197
|
-
path: string;
|
|
1212
|
+
readonly path: string;
|
|
1198
1213
|
/** Итоговый URL со строкой запроса. */
|
|
1199
|
-
url: string;
|
|
1200
|
-
headers: Headers;
|
|
1214
|
+
readonly url: string;
|
|
1215
|
+
readonly headers: Headers;
|
|
1201
1216
|
/** Номер попытки, начиная с 1. */
|
|
1202
|
-
attempt: number;
|
|
1217
|
+
readonly attempt: number;
|
|
1203
1218
|
}
|
|
1204
1219
|
/** Данные об успешном ответе. */
|
|
1205
1220
|
interface ResponseContext extends RequestContext {
|
|
1206
|
-
status: number;
|
|
1221
|
+
readonly status: number;
|
|
1207
1222
|
/** Длительность запроса в мс. */
|
|
1208
|
-
duration: number;
|
|
1223
|
+
readonly duration: number;
|
|
1209
1224
|
/** Отдельная копия ответа: её тело можно прочитать, не мешая разбору внутри SDK. */
|
|
1210
|
-
response: Response;
|
|
1225
|
+
readonly response: Response;
|
|
1211
1226
|
}
|
|
1212
1227
|
/** Данные об ошибке запроса. */
|
|
1213
1228
|
interface ErrorContextHook extends RequestContext {
|
|
1214
|
-
duration: number;
|
|
1215
|
-
error: unknown;
|
|
1229
|
+
readonly duration: number;
|
|
1230
|
+
readonly error: unknown;
|
|
1216
1231
|
}
|
|
1217
1232
|
/** Данные о предстоящем повторе. */
|
|
1218
1233
|
interface RetryContext extends RequestContext {
|
|
1219
|
-
error: unknown;
|
|
1234
|
+
readonly error: unknown;
|
|
1220
1235
|
/** Пауза перед следующей попыткой в мс. */
|
|
1221
|
-
delay: number;
|
|
1236
|
+
readonly delay: number;
|
|
1222
1237
|
}
|
|
1223
1238
|
/**
|
|
1224
1239
|
* Хуки запроса.
|
|
@@ -1273,8 +1288,24 @@ interface RuntimeOptions {
|
|
|
1273
1288
|
* ```
|
|
1274
1289
|
*/
|
|
1275
1290
|
services?: Record<string, string | Omit<ServiceDefinition, 'name'>> | undefined;
|
|
1276
|
-
/**
|
|
1291
|
+
/**
|
|
1292
|
+
* Таймаут одной транспортной попытки в мс. По умолчанию 30000 — столько же использует
|
|
1293
|
+
* сайт итд.com. `0` снимает ограничение.
|
|
1294
|
+
*
|
|
1295
|
+
* Охватывает сборку заголовков, хуки `onRequest` и `onResponse`, перехватчики попытки,
|
|
1296
|
+
* запрос и чтение тела ответа. Ожидание очереди, паузы между повторами и хук `onError`
|
|
1297
|
+
* в него не входят. Истечение даёт {@link ItdTimeoutError} с `budget: 'attempt'`;
|
|
1298
|
+
* safe- и idempotent-операции повторяются.
|
|
1299
|
+
*/
|
|
1277
1300
|
timeout?: number | undefined;
|
|
1301
|
+
/**
|
|
1302
|
+
* Общий срок логической операции в мс: очередь, повторы, обновление авторизации, плагины
|
|
1303
|
+
* и хуки. По умолчанию не ограничен.
|
|
1304
|
+
*
|
|
1305
|
+
* Истечение даёт {@link ItdTimeoutError} с `budget: 'deadline'` и не повторяется. Тот же
|
|
1306
|
+
* эффект даёт `signal: AbortSignal.timeout(ms)`, но с {@link ItdAbortError}.
|
|
1307
|
+
*/
|
|
1308
|
+
deadline?: number | undefined;
|
|
1278
1309
|
/**
|
|
1279
1310
|
* Сколько `close()` и `dispose()` ждут чужой код, мс. По умолчанию 10000.
|
|
1280
1311
|
*
|
|
@@ -1305,8 +1336,8 @@ interface RuntimeOptions {
|
|
|
1305
1336
|
userAgent?: string | false | undefined;
|
|
1306
1337
|
/** Хуки запросов. */
|
|
1307
1338
|
hooks?: ClientHooks | undefined;
|
|
1308
|
-
/** Логгер. `true` —
|
|
1309
|
-
logger?: Logger | boolean | undefined;
|
|
1339
|
+
/** Логгер. `true` — консоль с уровня `info`, `LogLevel` — с указанного уровня, объект — свой. */
|
|
1340
|
+
logger?: Logger | LogLevel | boolean | undefined;
|
|
1310
1341
|
}
|
|
1311
1342
|
/**
|
|
1312
1343
|
* Настройки плагинов для отдельной операции.
|
|
@@ -1318,11 +1349,16 @@ interface RequestExtensions {}
|
|
|
1318
1349
|
interface RequestOptions {
|
|
1319
1350
|
/** Отмена запроса извне. */
|
|
1320
1351
|
signal?: AbortSignal | undefined;
|
|
1321
|
-
/** Таймаут только для этого запроса, мс. */
|
|
1352
|
+
/** Таймаут одной транспортной попытки только для этого запроса, мс. */
|
|
1322
1353
|
timeout?: number | undefined;
|
|
1354
|
+
/** Общий срок только для этого запроса, мс. См. {@link RuntimeOptions.deadline}. */
|
|
1355
|
+
deadline?: number | undefined;
|
|
1323
1356
|
/** Дополнительные заголовки. */
|
|
1324
1357
|
headers?: Record<string, string> | undefined;
|
|
1325
|
-
/**
|
|
1358
|
+
/**
|
|
1359
|
+
* Повторы только для этого запроса. Переопределяют глобальную настройку `retry`.
|
|
1360
|
+
* Лестницу пауз после `429` не затрагивают — как и глобальное `retry: false`.
|
|
1361
|
+
*/
|
|
1326
1362
|
retry?: RetryOptions | false | undefined;
|
|
1327
1363
|
/**
|
|
1328
1364
|
* Явно переопределяет безопасность повтора операции.
|
|
@@ -1400,7 +1436,14 @@ interface OperationRequestOptions extends RawRequestOptions {
|
|
|
1400
1436
|
//#endregion
|
|
1401
1437
|
//#region src/core/operation.d.ts
|
|
1402
1438
|
/** HTTP-метод операции. */
|
|
1403
|
-
|
|
1439
|
+
declare const OperationMethod: Readonly<{
|
|
1440
|
+
readonly Get: "GET";
|
|
1441
|
+
readonly Post: "POST";
|
|
1442
|
+
readonly Put: "PUT";
|
|
1443
|
+
readonly Patch: "PATCH";
|
|
1444
|
+
readonly Delete: "DELETE";
|
|
1445
|
+
}>;
|
|
1446
|
+
type OperationMethod = (typeof OperationMethod)[keyof typeof OperationMethod];
|
|
1404
1447
|
/** ID операции подключаемого модуля: `<featureName>.<operationName>`. */
|
|
1405
1448
|
type FeatureOperationId<TFeatureName extends string = string, TOperationName extends string = string> = `${TFeatureName}.${TOperationName}`;
|
|
1406
1449
|
/** Семантическая безопасность автоматического повтора операции. */
|
|
@@ -1450,7 +1493,7 @@ interface OperationDefinition extends OperationMetadata {
|
|
|
1450
1493
|
//#endregion
|
|
1451
1494
|
//#region src/core/version.d.ts
|
|
1452
1495
|
/** Версия библиотеки. Попадает в `User-Agent`. */
|
|
1453
|
-
declare const LIBRARY_VERSION = "0.
|
|
1496
|
+
declare const LIBRARY_VERSION = "0.11.0";
|
|
1454
1497
|
//#endregion
|
|
1455
1498
|
//#region src/core/config.d.ts
|
|
1456
1499
|
/** Базовый URL API итд.com. Домен записан в punycode: `итд.com`. */
|
|
@@ -1458,49 +1501,6 @@ declare const DEFAULT_BASE_URL = "https://xn--d1ah4a.com";
|
|
|
1458
1501
|
/** Имя встроенного сервиса статуса. */
|
|
1459
1502
|
declare const STATUS_SERVICE = "status";
|
|
1460
1503
|
//#endregion
|
|
1461
|
-
//#region src/core/emitter.d.ts
|
|
1462
|
-
/** Обработчик события. */
|
|
1463
|
-
type Listener<T> = (payload: T) => void;
|
|
1464
|
-
/** Функция отписки, которую возвращает подписка на событие. */
|
|
1465
|
-
type Unsubscribe = () => void;
|
|
1466
|
-
/**
|
|
1467
|
-
* Минимальный типизированный источник событий.
|
|
1468
|
-
*
|
|
1469
|
-
* Своя реализация вместо `EventTarget` и `EventEmitter`: первый есть не везде и требует
|
|
1470
|
-
* обёрток `CustomEvent`, второй существует только в Node. Нужны ровно подписка и рассылка.
|
|
1471
|
-
*
|
|
1472
|
-
* Исключение в обработчике не прерывает рассылку остальным и не роняет библиотеку.
|
|
1473
|
-
*
|
|
1474
|
-
* @typeParam Events карта «имя события → тип полезной нагрузки». Задаётся интерфейсом,
|
|
1475
|
-
* поэтому ограничение на индексную сигнатуру намеренно не накладывается.
|
|
1476
|
-
*/
|
|
1477
|
-
declare class Emitter<Events> {
|
|
1478
|
-
#private;
|
|
1479
|
-
constructor(onListenerError?: (error: unknown) => void);
|
|
1480
|
-
/**
|
|
1481
|
-
* Подписывается на событие.
|
|
1482
|
-
*
|
|
1483
|
-
* @returns функция отписки
|
|
1484
|
-
*
|
|
1485
|
-
* @example
|
|
1486
|
-
* ```ts
|
|
1487
|
-
* const off = events.on('notification', (event) => console.log(event));
|
|
1488
|
-
* off();
|
|
1489
|
-
* ```
|
|
1490
|
-
*/
|
|
1491
|
-
on<K extends keyof Events>(event: K, listener: Listener<Events[K]>): Unsubscribe;
|
|
1492
|
-
/** Подписывается на одно срабатывание. */
|
|
1493
|
-
once<K extends keyof Events>(event: K, listener: Listener<Events[K]>): Unsubscribe;
|
|
1494
|
-
/** Отписывается от события. */
|
|
1495
|
-
off<K extends keyof Events>(event: K, listener: Listener<Events[K]>): void;
|
|
1496
|
-
/** Рассылает событие подписчикам. */
|
|
1497
|
-
emit<K extends keyof Events>(event: K, payload: Events[K]): void;
|
|
1498
|
-
/** Сколько подписчиков у события. */
|
|
1499
|
-
listenerCount(event: keyof Events): number;
|
|
1500
|
-
/** Снимает все подписки. */
|
|
1501
|
-
removeAllListeners(): void;
|
|
1502
|
-
}
|
|
1503
|
-
//#endregion
|
|
1504
1504
|
//#region src/core/auth-provider.d.ts
|
|
1505
1505
|
/** Области аккаунта и конкретной сессии для локального состояния плагинов. */
|
|
1506
1506
|
interface AuthIdentity {
|
|
@@ -1535,7 +1535,7 @@ interface AuthProvider {
|
|
|
1535
1535
|
*/
|
|
1536
1536
|
preflight?(allowRefresh: boolean): Promise<void>;
|
|
1537
1537
|
/** Перед каждой попыткой читает внешний источник токена до захвата слота очереди. */
|
|
1538
|
-
prepare(): Promise<void>;
|
|
1538
|
+
prepare?(): Promise<void>;
|
|
1539
1539
|
/**
|
|
1540
1540
|
* Заголовки уже подготовленной авторизации.
|
|
1541
1541
|
*
|
|
@@ -1615,6 +1615,49 @@ interface ClientConnection {
|
|
|
1615
1615
|
refreshAuth(): Promise<boolean>;
|
|
1616
1616
|
}
|
|
1617
1617
|
//#endregion
|
|
1618
|
+
//#region src/core/emitter.d.ts
|
|
1619
|
+
/** Обработчик события. */
|
|
1620
|
+
type Listener<T> = (payload: T) => void;
|
|
1621
|
+
/** Функция отписки, которую возвращает подписка на событие. */
|
|
1622
|
+
type Unsubscribe = () => void;
|
|
1623
|
+
/**
|
|
1624
|
+
* Минимальный типизированный источник событий.
|
|
1625
|
+
*
|
|
1626
|
+
* Своя реализация вместо `EventTarget` и `EventEmitter`: первый есть не везде и требует
|
|
1627
|
+
* обёрток `CustomEvent`, второй существует только в Node. Нужны ровно подписка и рассылка.
|
|
1628
|
+
*
|
|
1629
|
+
* Исключение в обработчике не прерывает рассылку остальным и не роняет библиотеку.
|
|
1630
|
+
*
|
|
1631
|
+
* @typeParam Events карта «имя события → тип полезной нагрузки». Задаётся интерфейсом,
|
|
1632
|
+
* поэтому ограничение на индексную сигнатуру намеренно не накладывается.
|
|
1633
|
+
*/
|
|
1634
|
+
declare class Emitter<Events> {
|
|
1635
|
+
#private;
|
|
1636
|
+
constructor(onListenerError?: (error: unknown) => void);
|
|
1637
|
+
/**
|
|
1638
|
+
* Подписывается на событие.
|
|
1639
|
+
*
|
|
1640
|
+
* @returns функция отписки
|
|
1641
|
+
*
|
|
1642
|
+
* @example
|
|
1643
|
+
* ```ts
|
|
1644
|
+
* const off = events.on('notification', (event) => console.log(event));
|
|
1645
|
+
* off();
|
|
1646
|
+
* ```
|
|
1647
|
+
*/
|
|
1648
|
+
on<K extends keyof Events>(event: K, listener: Listener<Events[K]>): Unsubscribe;
|
|
1649
|
+
/** Подписывается на одно срабатывание. */
|
|
1650
|
+
once<K extends keyof Events>(event: K, listener: Listener<Events[K]>): Unsubscribe;
|
|
1651
|
+
/** Отписывается от события. */
|
|
1652
|
+
off<K extends keyof Events>(event: K, listener: Listener<Events[K]>): void;
|
|
1653
|
+
/** Рассылает событие подписчикам. */
|
|
1654
|
+
emit<K extends keyof Events>(event: K, payload: Events[K]): void;
|
|
1655
|
+
/** Сколько подписчиков у события. */
|
|
1656
|
+
listenerCount(event: keyof Events): number;
|
|
1657
|
+
/** Снимает все подписки. */
|
|
1658
|
+
removeAllListeners(): void;
|
|
1659
|
+
}
|
|
1660
|
+
//#endregion
|
|
1618
1661
|
//#region src/core/errors.d.ts
|
|
1619
1662
|
/** Бренд, по которому ошибки библиотеки распознаются надёжнее, чем через `instanceof`. */
|
|
1620
1663
|
declare const ITD_ERROR: unique symbol;
|
|
@@ -1786,7 +1829,12 @@ declare class ItdApiError extends ItdError {
|
|
|
1786
1829
|
* ```
|
|
1787
1830
|
*/
|
|
1788
1831
|
hasCode(...codes: ItdErrorCode[]): boolean;
|
|
1789
|
-
/**
|
|
1832
|
+
/**
|
|
1833
|
+
* Временная ошибка сервера, которую политика повторов считает повторяемой: `429` или `5xx`.
|
|
1834
|
+
*
|
|
1835
|
+
* Повторит ли библиотека саму операцию, зависит ещё от её `retrySafety`: `5xx` на
|
|
1836
|
+
* небезопасной операции не повторяется, `429` — повторяется всегда.
|
|
1837
|
+
*/
|
|
1790
1838
|
get isRetryable(): boolean;
|
|
1791
1839
|
}
|
|
1792
1840
|
/** `400` / `422` — данные не прошли валидацию. Подробности в {@link ItdApiError.fieldErrors}. */
|
|
@@ -1883,18 +1931,34 @@ declare class ItdNetworkError extends ItdError {
|
|
|
1883
1931
|
cause?: unknown;
|
|
1884
1932
|
});
|
|
1885
1933
|
}
|
|
1886
|
-
/**
|
|
1934
|
+
/** Какой бюджет времени исчерпан. */
|
|
1935
|
+
declare const TimeoutBudget: Readonly<{
|
|
1936
|
+
/** Срок одной транспортной попытки — опция `timeout`. */
|
|
1937
|
+
readonly Attempt: "attempt";
|
|
1938
|
+
/** Общий срок логической операции — опция `deadline`. */
|
|
1939
|
+
readonly Deadline: "deadline";
|
|
1940
|
+
}>;
|
|
1941
|
+
type TimeoutBudget = (typeof TimeoutBudget)[keyof typeof TimeoutBudget];
|
|
1942
|
+
/**
|
|
1943
|
+
* Истёк срок, заданный опцией `timeout` (одна попытка) или `deadline` (операция целиком).
|
|
1944
|
+
*
|
|
1945
|
+
* Истёкший `timeout` для safe- и idempotent-операций повторяется; истёкший `deadline` —
|
|
1946
|
+
* нет.
|
|
1947
|
+
*/
|
|
1887
1948
|
declare class ItdTimeoutError extends ItdError {
|
|
1888
|
-
/**
|
|
1949
|
+
/** Истёкший срок в миллисекундах. */
|
|
1889
1950
|
readonly timeout: number;
|
|
1890
1951
|
/** HTTP-метод запроса. */
|
|
1891
1952
|
readonly method: string;
|
|
1892
1953
|
/** Путь запроса без базового URL. */
|
|
1893
1954
|
readonly path: string;
|
|
1955
|
+
/** Какой из двух сроков истёк. */
|
|
1956
|
+
readonly budget: TimeoutBudget;
|
|
1894
1957
|
constructor(init: {
|
|
1895
1958
|
timeout: number;
|
|
1896
1959
|
method: string;
|
|
1897
1960
|
path: string;
|
|
1961
|
+
budget?: TimeoutBudget | undefined;
|
|
1898
1962
|
});
|
|
1899
1963
|
}
|
|
1900
1964
|
/** Запрос отменён через переданный `AbortSignal`. */
|
|
@@ -2298,5 +2362,5 @@ declare function isKnownNotificationType(type: string): boolean;
|
|
|
2298
2362
|
*/
|
|
2299
2363
|
declare function resolveNotificationUrl(notification: Notification): string;
|
|
2300
2364
|
//#endregion
|
|
2301
|
-
export {
|
|
2302
|
-
//# sourceMappingURL=url-
|
|
2365
|
+
export { isItdServerError as $, operationRetrySafety as $t, ItdErrorKind as A, RequestOptions as At, ItdStateError as B, RuntimeMode as Bt, ItdApiError as C, ReportTargetType as Cn, PaginationOptions as Ct, ItdConfigError as D, ViewSource as Dn, RawRequestOptions as Dt, ItdAuthError as E, ViewReason as En, RateLimitOptions as Et, ItdNetworkError as F, RuntimeOptions as Ft, isItdAuthError as G, BuiltInOperationId as Gt, ItdValidationError as H, Logger as Ht, ItdNotFoundError as I, QueryParams as It, isItdFileError as J, OPERATIONS as Jt, isItdConflictError as K, CustomOperationId as Kt, ItdPhoneVerificationError as L, QueryValue as Lt, ItdFileError as M, RetryContext as Mt, ItdFileErrorReason as N, RetryDecisionContext as Nt, ItdConflictError as O, WallAccess as On, RequestContext as Ot, ItdForbiddenError as P, RetryOptions as Pt, isItdRateLimitError as Q, operationMethod as Qt, ItdRateLimitError as R, ServiceDefinition as Rt, ItdAbortError as S, ReportReason as Sn, OperationRequestOptions as St, ItdApiErrorKind as T, SpanType as Tn, RateLimitBucketOverride as Tt, TimeoutBudget as U, ItdClock as Ut, ItdTimeoutError as V, LogLevel as Vt, isItdApiError as W, systemClock as Wt, isItdNotFoundError as X, isBuiltInOperationId as Xt, isItdForbiddenError as Y, OperationId as Yt, isItdPhoneVerificationError as Z, operationBucket as Zt, PrivacySettings as _, ItdErrorCode as _n, OperationMetadata as _t, NotificationEvent as a, UserId as an, ClientConnection as at, SubscriptionState as b, NotificationType as bn, ClientHooks as bt, NotificationSettings as c, AttachmentType as cn, anonymousAuth as ct, AuthUser as d, CaptchaType as dn, DEFAULT_BASE_URL as dt, BUCKET_LIMITS as en, isItdStateError as et, Author as f, CommentSort as fn, STATUS_SERVICE as ft, PinsResult as g, InteractionType as gn, OperationContract as gt, Pin as h, IncidentKind as hn, OperationAnnotations as ht, formatNotificationText as i, Span as in, Unsubscribe as it, ItdFieldErrors as j, ResponseContext as jt, ItdError as k, RequestExtensions as kt, Actor as l, CaptchaChoice as ln, bearerToken as lt, MyProfile as m, FeedTab as mn, FeatureOperationId as mt, canonicalNotificationType as n, RateLimitBucket as nn, Emitter as nt, normalizeNotification as o, UserRef as on, AuthIdentity as ot, FollowResult as p, EventChannelStatus as pn, LIBRARY_VERSION as pt, isItdError as q, ItdOperationDefinition as qt, isKnownNotificationType as r, IsoDate as rn, Listener as rt, Notification as s, AccessType as sn, AuthProvider as st, resolveNotificationUrl as t, DEFAULT_RATE_LIMIT_BUCKET as tn, isItdValidationError as tt, AuthState as u, CaptchaField as un, tokenProvider as ut, Profile as v, LikesVisibility as vn, OperationMethod as vt, ItdApiErrorInit as w, ServiceState as wn, RateLimitBucketContext as wt, UserSummary as x, QrLocationPrecision as xn, ErrorContextHook as xt, PublicProfile as y, Loose as yn, RetrySafety as yt, ItdServerError as z, RateLimitPacing as zt };
|
|
2366
|
+
//# sourceMappingURL=url-BOi-_mJT.d.ts.map
|