intelicoreact 2.0.9 → 2.0.10

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,9 +1,31 @@
1
- export default RESTAPI;
2
- declare class RESTAPI extends ApiBase {
3
- sendMessage: any;
4
- credentialsProcessing: CredentialsProcessing;
5
- doRequest(inputRequests: any, settings: any): Promise<any>;
6
- doMonoRequest(requestSettings: any): Promise<any>;
7
- }
1
+ import type { DoRequestSettings, RequestDescriptor, RequestInput, RESTAPISettings } from './partials/types';
8
2
  import ApiBase from './partials/ApiBase';
9
3
  import CredentialsProcessing from './partials/CredentialsProcessing';
4
+ /**
5
+ * Класс REST API поверх AbortableFetch: формирует и выполняет запросы (одиночные и мультизапросы),
6
+ * управляет токенами авторизации (через {@link CredentialsProcessing}) и информированием пользователя.
7
+ * Расширяется реквест-крейтерами, утилитами и константами через объект настроек.
8
+ */
9
+ declare class RESTAPI extends ApiBase {
10
+ /** Функция показа сообщений пользователю (или null, если информирование отключено). */
11
+ sendMessage: ((...args: unknown[]) => unknown) | null;
12
+ /** Обработчик учётных данных (создаётся при наличии настройки credentialsProcessing). */
13
+ credentialsProcessing?: CredentialsProcessing;
14
+ constructor(settings: RESTAPISettings);
15
+ /**
16
+ * Основной (базовый) метод API: выполняет мультизапрос (или одиночный запрос).
17
+ *
18
+ * @param inputRequests - путь, объект описания запроса или их массив.
19
+ * @param settings - общие настройки запроса (формат ответа, тосты, сообщения и т.п.).
20
+ * @returns Промис с результатом (форма зависит от isResponseAsObject).
21
+ */
22
+ doRequest(inputRequests: RequestInput, settings?: DoRequestSettings): Promise<unknown>;
23
+ /**
24
+ * Метод API для одиночных запросов: применяет крейтер по `type` и делегирует в {@link RESTAPI.doRequest}.
25
+ *
26
+ * @param requestSettings - объект описания одиночного запроса (с необязательным `type`).
27
+ * @returns Промис с результатом запроса.
28
+ */
29
+ doMonoRequest(requestSettings: RequestDescriptor): Promise<unknown>;
30
+ }
31
+ export default RESTAPI;
@@ -1,43 +1,48 @@
1
- export default AbortableFetch;
1
+ import type { HttpMethod, UnknownRecord } from './types';
2
+ type ResponseCallback = (this: AbortableFetch, response: unknown) => unknown;
3
+ export type AbortablePromise<T> = Promise<T> & {
4
+ abort: () => void;
5
+ };
2
6
  declare class AbortableFetch {
3
- constructor(input: any);
4
- getPathPrefix(): any;
5
- setPathPrefix(value: any): void;
6
- getMethod(): any;
7
- setMethod(value: any): void;
8
- getQueryParameters(): any;
9
- getQueryString(value: any): string;
10
- setQueryParameters(value: any): void;
11
- getHeaders(): any;
12
- getHeadersObj(obj: any): Headers;
13
- setHeaders(value: any): void;
14
- getBody(): any;
15
- setBody(value: any): void;
16
- getOptions(): any;
17
- setOptions(value: any): void;
18
- getCallback(): any;
19
- setCallback(value: any): void;
20
- getCatchCallback(): any;
21
- setCatchCallback(value: any): void;
22
- getEveryPromiseCallback(): any;
23
- setEveryPromiseCallback(value: any): void;
24
- getIsResponseAsObject(): boolean;
25
- setIsResponseAsObject(value: any): void;
26
- getProps(): {
27
- pathPrefix: any;
28
- method: any;
29
- queryParameters: any;
30
- headers: any;
31
- body: any;
32
- options: any;
33
- callback: any;
34
- everyPromiseCallback: any;
35
- isResponseAsObject: boolean;
36
- };
37
- setProps(input: any): void;
38
- request(props: any): Promise<any>;
39
- repeatRequest(): Promise<any>;
40
- requestInput: any;
41
- getQueryArray(value: any): any[];
42
7
  #private;
8
+ requestInput: string | UnknownRecord | Array<string | UnknownRecord>;
9
+ constructor(input?: UnknownRecord);
10
+ /**
11
+ * Выполняет один или несколько HTTP-запросов (нативный fetch) с возможностью отмены.
12
+ *
13
+ * Метод `abort()` навешивается на прототип возвращаемого промиса (как в исходной реализации),
14
+ * что позволяет отменить всю цепочку запросов вызовом `abort()` на возвращённом промисе.
15
+ *
16
+ * @param props - путь, объект описания запроса или их массив.
17
+ * @returns Промис с результатом (форма зависит от isResponseAsObject); на прототипе доступен `abort()`.
18
+ */
19
+ request(props: string | UnknownRecord | Array<string | UnknownRecord>): Promise<unknown>;
20
+ /** Повторяет последний выполненный запрос (ту же пачку). */
21
+ repeatRequest(): Promise<unknown>;
22
+ getPathPrefix(): string | null;
23
+ setPathPrefix(value?: string | null): void;
24
+ getMethod(): HttpMethod | null;
25
+ setMethod(value?: HttpMethod | null): void;
26
+ getQueryParameters(): string[] | null;
27
+ getQueryArray(value: unknown): string[];
28
+ getQueryString(value: string[] | null): string;
29
+ setQueryParameters(value?: string[] | null): void;
30
+ getHeaders(): UnknownRecord | null;
31
+ getHeadersObj(obj: UnknownRecord): Headers;
32
+ setHeaders(value?: UnknownRecord | null): void;
33
+ getBody(): unknown;
34
+ setBody(value: unknown): void;
35
+ getOptions(): UnknownRecord | null;
36
+ setOptions(value?: UnknownRecord | null): void;
37
+ getCallback(): ResponseCallback | null;
38
+ setCallback(value?: ResponseCallback | null): void;
39
+ getCatchCallback(): ResponseCallback | null;
40
+ setCatchCallback(value?: ResponseCallback | null): void;
41
+ getEveryPromiseCallback(): ResponseCallback | null;
42
+ setEveryPromiseCallback(value?: ResponseCallback | null): void;
43
+ getIsResponseAsObject(): boolean | 'always';
44
+ setIsResponseAsObject(value: unknown): void;
45
+ getProps(): UnknownRecord;
46
+ setProps(input: UnknownRecord): void;
43
47
  }
48
+ export default AbortableFetch;
@@ -1,10 +1,21 @@
1
- export default ApiBase;
1
+ import type { RESTAPISettings } from './types';
2
+ import ApiRequestCreators from './ApiRequestCreators';
3
+ /**
4
+ * Базовый класс API: разбирает и валидирует константы из настроек
5
+ * (API_PATH, тексты сообщений, REJECT_CODES) и раскладывает их на экземпляр.
6
+ * Кастомные константы прокидываются на экземпляр как есть.
7
+ */
2
8
  declare class ApiBase extends ApiRequestCreators {
3
- API_PATH: string;
9
+ /** Текст ошибки невалидных данных запроса. */
4
10
  BAD_REQUEST_DATA_TEXT: string;
11
+ /** Текст сообщения об успехе по умолчанию. */
5
12
  DEFAULT_SUCCESS_MESSAGE: string;
13
+ /** Текст сообщения об ошибке по умолчанию. */
6
14
  DEFAULT_ERROR_MESSAGE: string;
15
+ /** Текст сообщения об отсутствии сети. */
7
16
  NO_INET: string;
17
+ /** Коды ответа, по которым запрос считается отклонённым. */
8
18
  REJECT_CODES: number[];
19
+ constructor(settings: RESTAPISettings);
9
20
  }
10
- import ApiRequestCreators from './ApiRequestCreators';
21
+ export default ApiBase;
@@ -1,9 +1,58 @@
1
- export default ApiRequestCreators;
1
+ import type { RequestDescriptor, RESTAPISettings, UnknownRecord } from './types';
2
+ import ApiUtils from './ApiUtils';
3
+ type CreatorResult = Promise<UnknownRecord | UnknownRecord[]>;
4
+ /**
5
+ * Слой реквест-крейтеров: методы `createRequest_<type>`, которые конфигурируют обработку ответа
6
+ * под конкретный сценарий (toJson, blob, sse и т.д.) и возвращают аргументы для doRequest.
7
+ * Пользовательские крейтеры подключаются через настройку `requestsCreators`.
8
+ */
2
9
  declare class ApiRequestCreators extends ApiUtils {
3
- createRequest_toJson(props: any, variant: any): Promise<any>;
4
- createRequest_toJsonAdvanced(props: any, variant: any): Promise<any>;
5
- createRequest_blob(props: any, variant: any): Promise<any>;
6
- createRequest_testBadResponse(props: any, variant: any): Promise<any>;
7
- createRequest_default(props: any, variant: any): Promise<any>;
10
+ constructor(settings?: RESTAPISettings);
11
+ /**
12
+ * Крейтер типа `toJson`: пользовательский callback получит тело ответа (Response.json()).
13
+ *
14
+ * @param props - объект описания запроса.
15
+ * @param variant - вариант обработки splitProperties.
16
+ */
17
+ createRequest_toJson(props: RequestDescriptor, variant?: string): CreatorResult;
18
+ /**
19
+ * Крейтер типа `toJsonAdvanced`: callback получит структуру `{ response, result }`.
20
+ *
21
+ * @param props - объект описания запроса.
22
+ * @param variant - вариант обработки splitProperties.
23
+ */
24
+ createRequest_toJsonAdvanced(props: RequestDescriptor, variant?: string): CreatorResult;
25
+ /**
26
+ * Крейтер типа `blob`: callback получит тело ответа (Response.blob()).
27
+ *
28
+ * @param props - объект описания запроса.
29
+ * @param variant - вариант обработки splitProperties.
30
+ */
31
+ createRequest_blob(props: RequestDescriptor, variant?: string): CreatorResult;
32
+ /**
33
+ * Крейтер типа `sse`: обрабатывает ответ как поток Server-Sent Events (text/event-stream).
34
+ *
35
+ * Дополнительные пропы объекта описания запроса: `onEvent`, `onChunk`, `handlers`, `parseJson`.
36
+ * По умолчанию добавляется заголовок `Accept: text/event-stream`. Метод doRequest резолвится
37
+ * массивом всех событий ПОСЛЕ закрытия потока; отмена — методом `.abort()` возвращённого промиса.
38
+ *
39
+ * @param props - объект описания запроса (плюс onEvent/onChunk/handlers/parseJson).
40
+ * @param variant - вариант обработки splitProperties.
41
+ */
42
+ createRequest_sse(props: RequestDescriptor, variant?: string): CreatorResult;
43
+ /**
44
+ * Крейтер типа `testBadResponse`: callback получит синтетический Response со статусом 401.
45
+ *
46
+ * @param props - объект описания запроса.
47
+ * @param variant - вариант обработки splitProperties.
48
+ */
49
+ createRequest_testBadResponse(props: RequestDescriptor, variant?: string): CreatorResult;
50
+ /**
51
+ * Крейтер по умолчанию: callback получит объект Response (или тело ответа при isGetBody: 'first').
52
+ *
53
+ * @param props - объект описания запроса.
54
+ * @param variant - вариант обработки splitProperties.
55
+ */
56
+ createRequest_default(props: RequestDescriptor, variant?: string): CreatorResult;
8
57
  }
9
- import ApiUtils from './ApiUtils';
58
+ export default ApiRequestCreators;
@@ -1,12 +1,63 @@
1
- export default ApiUtils;
1
+ import type { AddAsCommonResult, RESTAPISettings, UnknownRecord } from './types';
2
+ import Utils from './Utils';
3
+ /**
4
+ * Утилитарный слой API: разбор настроек на части (splitProperties), извлечение тела ответа,
5
+ * проверка кода ответа и точки расширения (getRootPath / addAsCommon / processQueryParams).
6
+ * Поддерживает добавление пользовательских методов-утилит через настройку `utils`.
7
+ */
2
8
  declare class ApiUtils extends Utils {
3
- constructor(settings: any);
4
- splitProperties(apiParams: any, variant: any): Promise<any>;
5
- getRootPath(): Promise<any>;
6
- getResponseBody(response: any, getBodyAs: any): Promise<any>;
7
- getErrorMessage(res: any): Promise<any>;
8
- checkResponseCode(res: any, settings: any): Promise<any>;
9
- addAsCommon(): Promise<{}>;
10
- processQueryParams(queryParams: any): Promise<any>;
9
+ /** Корневой путь API (раскладывается в ApiBase из constants.API_PATH). */
10
+ API_PATH: string;
11
+ constructor(settings?: RESTAPISettings);
12
+ /**
13
+ * Разбирает единый объект параметров запроса на части в зависимости от варианта использования.
14
+ *
15
+ * @param apiParams - объединённые параметры запроса.
16
+ * @param variant - `'doRequestMapping'` для мультизапроса либо `undefined` для одиночного.
17
+ * @returns Для `doRequestMapping` — объект параметров; иначе кортеж `[параметры, настройки]`.
18
+ */
19
+ splitProperties(apiParams: UnknownRecord, variant?: string): Promise<UnknownRecord | UnknownRecord[]>;
20
+ /**
21
+ * Обработчик пропы `api` из объекта описания запроса — возвращает корневой путь API.
22
+ *
23
+ * @returns Корневой путь (по умолчанию — API_PATH).
24
+ */
25
+ getRootPath(): Promise<string>;
26
+ /**
27
+ * Извлекает тело ответа в нужном виде (json/blob/text/arrayBuffer/formData) либо по content-type.
28
+ *
29
+ * @param response - объект Response (иначе значение возвращается как есть).
30
+ * @param getBodyAs - желаемый способ извлечения тела.
31
+ * @returns Промис с телом ответа (или исходным значением / null при ошибке).
32
+ */
33
+ getResponseBody(response: unknown, getBodyAs?: string): Promise<unknown>;
34
+ /**
35
+ * Формирует структуру ошибки из тела ответа (точка расширения под формат бэкенда).
36
+ *
37
+ * @param res - уже извлечённое тело ответа.
38
+ * @returns Структура сообщения об ошибке.
39
+ */
40
+ getErrorMessage(res: unknown): Promise<unknown>;
41
+ /**
42
+ * Проверяет код ответа и (если задан sendMessage) информирует пользователя об успехе/ошибке.
43
+ *
44
+ * @param res - объект Response (или совместимый с полем `ok`).
45
+ * @param settings - сообщения и настройки тостов для данного запроса.
46
+ * @returns Исходный `res` (метод не меняет ответ, только сигналит сообщением).
47
+ */
48
+ checkResponseCode(res: unknown, settings?: UnknownRecord): Promise<unknown>;
49
+ /**
50
+ * Структуры, которые будут использоваться для КАЖДОГО запроса, сделанного экземпляром RESTAPI.
51
+ *
52
+ * @returns Объект `{ headers, queryParameters, options }` (по умолчанию пустой).
53
+ */
54
+ addAsCommon(): Promise<AddAsCommonResult>;
55
+ /**
56
+ * Общий обработчик query-параметров (точка расширения, напр. кодирование/приведение к массиву).
57
+ *
58
+ * @param queryParams - входные query-параметры.
59
+ * @returns Обработанные query-параметры (по умолчанию — без изменений).
60
+ */
61
+ processQueryParams(queryParams: unknown): Promise<unknown>;
11
62
  }
12
- import Utils from './Utils';
63
+ export default ApiUtils;
@@ -1,24 +1,79 @@
1
- export function decodeJWT(token: any): any;
2
- export default CredentialsProcessing;
1
+ import type { CredentialsState, RESTAPISettings, UnknownRecord } from './types';
2
+ /**
3
+ * Декодирует payload JWT-токена.
4
+ *
5
+ * @param token - JWT-строка вида `header.payload.signature`.
6
+ * @returns Распарсенный payload (объект) либо `null`, если декодирование не удалось.
7
+ */
8
+ export declare function decodeJWT(token: string): UnknownRecord | null;
9
+ /**
10
+ * Обработчик учётных данных (токенов): добавляет токен в запросы и (опционально) реализует
11
+ * флоу рефреша токенов. Конфигурируется через настройку `credentialsProcessing`.
12
+ */
3
13
  declare class CredentialsProcessing {
4
- constructor(settings: any);
5
- isUseRefreshTokensPropcessing: any;
6
- DEFAULT_CREDENTIALS: {};
7
- getCredentialsByOuter: any;
8
- getHeadersForAuthorize: any;
9
- importCredentials: any;
10
- saveCredentials: any;
11
- refreshCredentialsByOuter: any;
12
- REFRESH_TOKEN_PATH: any;
13
- CODES_USING_THE_REFRESH_ATTEMPT: number[];
14
+ [key: string]: unknown;
15
+ /** Включён ли флоу рефреша токенов. */
16
+ isUseRefreshTokensPropcessing: boolean;
17
+ /** Учётные данные по умолчанию (пустые). */
18
+ DEFAULT_CREDENTIALS: CredentialsState;
19
+ /** Внешний метод получения учётных данных. */
20
+ getCredentialsByOuter: () => unknown;
21
+ /** Внешний метод формирования заголовков авторизации по токену. */
22
+ getHeadersForAuthorize: (token: string) => UnknownRecord;
23
+ /** Необязательный преобразователь учётных данных после getCredentials. */
24
+ importCredentials?: (cred: unknown) => unknown;
25
+ /** Необязательный метод сохранения учётных данных (обязателен для флоу рефреша). */
26
+ saveCredentials?: (cred: unknown) => unknown;
27
+ /** Внешний метод рефреша учётных данных. */
28
+ refreshCredentialsByOuter?: (cred: CredentialsState) => unknown;
29
+ /** Полный путь до эндпоинта рефреша токена. */
30
+ REFRESH_TOKEN_PATH?: string;
31
+ /** Коды ответа, по которым триггерится попытка рефреша. */
32
+ CODES_USING_THE_REFRESH_ATTEMPT?: number[];
33
+ /** Ключ флага «рефреш начат» в localStorage. */
14
34
  REFRESH_TOKEN_FLAG: string;
35
+ /** Интервал опроса флага обновления токена, мс. */
15
36
  INTERVAL_FOR_CHECKING_TOKEN_UPDATE: number;
16
- callbackAfterRejectRefresh: any;
17
- getIsTokenStartRefresh(): string;
37
+ /** Колбэк, вызываемый после неудачного рефреша. */
38
+ callbackAfterRejectRefresh?: () => unknown;
39
+ /** Доступ к верхнему контексту RESTAPI (навешивается из конструктора RESTAPI). */
40
+ getRESTAPIContext?: () => unknown;
41
+ constructor(settings: RESTAPISettings);
42
+ /** Возвращает значение флага «рефреш начат» из localStorage. */
43
+ getIsTokenStartRefresh(): string | null;
44
+ /** Выставляет флаг «рефреш начат» в localStorage. */
18
45
  setIsTokenStartRefresh(): void;
46
+ /** Снимает флаг «рефреш начат» из localStorage. */
19
47
  removeIsTokenStartRefresh(): void;
20
- getCredentials(isCatchCallbackProcess: any, callback: any): Promise<any>;
21
- refreshCredentials(currentCredentials: any, callback: any): Promise<any>;
22
- waitRefresh(isNeedRefresh: any): Promise<any>;
23
- processCredentials(cred: any): Promise<any>;
48
+ /**
49
+ * Возвращает текущие учётные данные (с учётом importCredentials и проверки истечения JWT).
50
+ *
51
+ * @param isCatchCallbackProcess - флаг процесса обработки ошибки (отключает проверку истечения).
52
+ * @param callback - необязательный колбэк, получающий итоговые учётные данные.
53
+ * @returns Промис с учётными данными.
54
+ */
55
+ getCredentials(isCatchCallbackProcess?: boolean, callback?: (cred: CredentialsState) => unknown): Promise<CredentialsState>;
56
+ /**
57
+ * Выполняет рефреш учётных данных (внешним методом либо дефолтным OAuth-флоу).
58
+ *
59
+ * @param currentCredentials - текущие учётные данные.
60
+ * @param callback - необязательный колбэк сохранения новых учётных данных.
61
+ * @returns Промис с новыми учётными данными.
62
+ */
63
+ refreshCredentials(currentCredentials: CredentialsState, callback?: (cred: CredentialsState) => unknown): Promise<CredentialsState>;
64
+ /**
65
+ * Ожидает завершения рефреша токена (или запускает его флаг при необходимости).
66
+ *
67
+ * @param isNeedRefresh - выставить ли флаг «рефреш начат» при отсутствии активного рефреша.
68
+ * @returns Промис, который резолвится по завершении ожидания.
69
+ */
70
+ waitRefresh(isNeedRefresh?: boolean): Promise<void>;
71
+ /**
72
+ * Обрабатывает учётные данные: при необходимости рефрешит токен и возвращает актуальные данные.
73
+ *
74
+ * @param cred - текущие учётные данные.
75
+ * @returns Промис с актуальными учётными данными (с флагом isRefreshFailed при неудаче).
76
+ */
77
+ processCredentials(cred: CredentialsState): Promise<CredentialsState>;
24
78
  }
79
+ export default CredentialsProcessing;
@@ -1,4 +1,20 @@
1
- export default Utils;
1
+ import type { UnknownRecord } from './types';
2
+ interface NormalizeQueryParamsSettings {
3
+ isEncode?: boolean;
4
+ outputAs?: 'string' | 'object' | 'array';
5
+ }
2
6
  declare class Utils {
3
- normalizeQueryParams(queryParams: any, settings: any): {};
7
+ [key: string]: unknown;
8
+ /**
9
+ * Нормализатор сложных query-параметров.
10
+ *
11
+ * Например: `&key1=&&&===&&&key2====&&&&&&&&key3=...`. Для корректной работы на вход нужно подавать
12
+ * НЕ кодированные значения. По умолчанию выходные значения query-параметров НЕ кодируются.
13
+ *
14
+ * @param queryParams - query в виде строки, массива или объекта.
15
+ * @param settings - формат вывода (`array` | `string` | `object`) и флаг кодирования.
16
+ * @returns Нормализованные query-параметры в выбранном формате.
17
+ */
18
+ normalizeQueryParams(queryParams: unknown, settings?: NormalizeQueryParamsSettings): string | UnknownRecord | string[];
4
19
  }
20
+ export default Utils;
@@ -1,9 +1,54 @@
1
- export function getIsOnlyAnObject(input: any): boolean;
2
- export function addCustomMethods(data: any, prefix: any): void;
3
- export class addCustomMethods {
4
- constructor(data: any, prefix: any);
5
- }
6
- export function getInstanceOfFetchSystem(isGetBody: any): Promise<any>;
7
- export function clone(input: any): any;
8
- export function omitKeys(obj?: {}, keys?: any[]): any;
9
- export function getResponseClone(res: any): Promise<any>;
1
+ import type { FetchSystemContext, UnknownRecord } from './types';
2
+ import AbortableFetch from './AbortableFetch';
3
+ /**
4
+ * Type-guard: значение является «чистым» объектом-словарём.
5
+ * Отсекает примитивы, функции, null, массивы, Set и Map.
6
+ *
7
+ * @param input - проверяемое значение.
8
+ * @returns `true`, если значение — обычный объект (с сужением типа до {@link UnknownRecord}).
9
+ */
10
+ export declare function getIsOnlyAnObject(input: unknown): input is UnknownRecord;
11
+ /**
12
+ * Рекурсивно клонирует значение (примитивы возвращаются как есть, массивы и объекты — глубоко).
13
+ *
14
+ * @param input - клонируемое значение.
15
+ * @returns Глубокая копия значения.
16
+ */
17
+ export declare function clone(input: unknown): unknown;
18
+ /**
19
+ * Возвращает копию объекта без указанных ключей.
20
+ * (принимает обьект и массив ключей обьекта, возвращает обьект с теми полями, которых нет в массиве ключей)
21
+ *
22
+ * @param obj - исходный объект.
23
+ * @param keys - ключи, которые нужно исключить.
24
+ * @returns Новый объект без перечисленных ключей.
25
+ */
26
+ export declare function omitKeys(obj?: UnknownRecord, keys?: string[]): UnknownRecord;
27
+ /**
28
+ * Клонирует Response через нативный `clone()`, а прочие значения — глубоким {@link clone}.
29
+ *
30
+ * @param res - объект Response либо произвольное значение.
31
+ * @returns Промис с клоном значения.
32
+ */
33
+ export declare function getResponseClone(res: unknown): Promise<unknown>;
34
+ /**
35
+ * Добавляет на экземпляр (`this`) пользовательские методы из объекта `data` (опционально с префиксом).
36
+ * Копируются только значения-функции.
37
+ *
38
+ * @param this - целевой экземпляр (передаётся через `.call`).
39
+ * @param data - словарь методов для добавления.
40
+ * @param prefix - необязательный префикс имени метода.
41
+ */
42
+ export declare function addCustomMethods(this: UnknownRecord, data: UnknownRecord, prefix?: string): void;
43
+ /**
44
+ * Готовит и настраивает экземпляр {@link AbortableFetch} для текущего контекста API.
45
+ *
46
+ * Подмешивает токены авторизации (если включён credentialsProcessing), общие заголовки/опции
47
+ * из `addAsCommon`, а также навешивает everyPromiseCallback (обработка кодов ответа) и
48
+ * catchCallback (флоу рефреша токенов).
49
+ *
50
+ * @param this - контекст экземпляра API (см. {@link FetchSystemContext}).
51
+ * @param isGetBody - извлекать ли тело ответа в everyPromiseCallback.
52
+ * @returns Промис с экземпляром {@link AbortableFetch} либо `null`, если рефреш токена не удался.
53
+ */
54
+ export declare function getInstanceOfFetchSystem(this: FetchSystemContext, isGetBody?: boolean): Promise<AbortableFetch | null>;
@@ -0,0 +1,27 @@
1
+ import type { SSEEvent, SSEReadOptions, StreamResponseLike } from './types';
2
+ /**
3
+ * Парсит один блок SSE (текст между пустыми строками) в объект события.
4
+ *
5
+ * Возвращает `null`, если в блоке не оказалось ни одного значимого поля
6
+ * (например, блок состоял только из комментариев/heartbeat-а).
7
+ *
8
+ * @param block - сырой текстовый блок SSE (без завершающей пустой строки).
9
+ * @returns Разобранное событие {@link SSEEvent} либо `null`.
10
+ */
11
+ export declare function parseSSEEvent(block: string): SSEEvent | null;
12
+ /**
13
+ * Читает тело Response как поток Server-Sent Events.
14
+ *
15
+ * Резолвится массивом всех полученных событий ПОСЛЕ закрытия потока.
16
+ * Прерывание потока через `AbortController` трактуется как штатное завершение
17
+ * (возвращается то, что успели собрать); любая иная ошибка чтения пробрасывается выше.
18
+ *
19
+ * @param response - объект Response (или duck-typed с `body.getReader()`).
20
+ * @param options - колбэки и опции обработки потока (см. {@link SSEReadOptions}).
21
+ * @param options.onEvent - вызывается на каждое распарсенное событие.
22
+ * @param options.onChunk - вызывается на полезную нагрузку (поле data) каждого события.
23
+ * @param options.handlers - карта `{ имяСобытия: cb }` для обработки по полю `event`.
24
+ * @param options.parseJson - если `true`, поле `data` прогоняется через `JSON.parse`.
25
+ * @returns Промис с массивом всех распарсенных событий {@link SSEEvent}.
26
+ */
27
+ export declare function readSSE(response: StreamResponseLike, { onEvent, onChunk, handlers, parseJson }?: SSEReadOptions): Promise<SSEEvent[]>;