@pushwoosh/http-client 1.5.0 → 2.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,231 @@
1
+ import { RequestDetails } from './http-client.types';
2
+ /**
3
+ * Класс описывает ошибку, связанную с HttpClient.
4
+ * Должен использоваться для описания всех остальных ошибок связанных с HttpClient, но никогда не использоваться как отдельный экземпляр.
5
+ */
6
+ export declare class HttpClientError extends Error {
7
+ /**
8
+ * Код ошибки.
9
+ */
10
+ readonly code: number;
11
+ /**
12
+ * Создать экземпляр ошибки.
13
+ *
14
+ * @param message - сообщение об ошибке.
15
+ * @param code - код ошибки.
16
+ */
17
+ protected constructor(message: string, code: number);
18
+ }
19
+ /**
20
+ * Класс описывает логическую ошибку HttpClient.
21
+ */
22
+ export declare class LogicError extends HttpClientError {
23
+ /**
24
+ * Создать экземпляр ошибки.
25
+ *
26
+ * @param message - сообщение об ошибке.
27
+ */
28
+ constructor(message: string);
29
+ }
30
+ /**
31
+ * Класс описывает категоризированные ошибки.
32
+ * Должен использоваться для описания всех остальных категоризированных ошибок, но никогда не использоваться как отдельный экземпляр.
33
+ *
34
+ * @extends HttpClientError
35
+ */
36
+ export declare class ClassifiedError extends HttpClientError {
37
+ /**
38
+ * Детали запроса.
39
+ */
40
+ readonly details: RequestDetails | null;
41
+ /**
42
+ * Создать экземпляр ошибки.
43
+ *
44
+ * @param message - сообщение об ошибке.
45
+ * @param code - код ошибки.
46
+ * @param details - детали запроса.
47
+ */
48
+ protected constructor(message: string, code: number, details: RequestDetails | null);
49
+ }
50
+ /**
51
+ * Ошибка, которая не попала ни в одну из категорий.
52
+ */
53
+ export declare class UntiledError extends ClassifiedError {
54
+ /**
55
+ * Создать экземпляр ошибки.
56
+ *
57
+ * @param message - сообщение об ошибке.
58
+ * @param code - код ошибки.
59
+ * @param details - детали запроса.
60
+ */
61
+ constructor(message: string, code: number, details: RequestDetails | null);
62
+ }
63
+ /**
64
+ * Класс описывает ошибку "Bad Request".
65
+ */
66
+ export declare class BadRequestError extends ClassifiedError {
67
+ /**
68
+ * Создать экземпляр ошибки.
69
+ *
70
+ * @param message - сообщение об ошибке.
71
+ * @param details - детали запроса.
72
+ */
73
+ constructor(message?: string, details?: RequestDetails | null);
74
+ }
75
+ /**
76
+ * Класс описывает ошибку "Unauthorized".
77
+ */
78
+ export declare class UnauthorizedError extends ClassifiedError {
79
+ /**
80
+ * Создать экземпляр ошибки.
81
+ *
82
+ * @param message - сообщение об ошибке.
83
+ * @param details - детали запроса.
84
+ */
85
+ constructor(message?: string, details?: RequestDetails | null);
86
+ }
87
+ /**
88
+ * Класс описывает ошибку "Forbidden".
89
+ */
90
+ export declare class ForbiddenError extends ClassifiedError {
91
+ /**
92
+ * Создать экземпляр ошибки.
93
+ *
94
+ * @param message - сообщение об ошибке.
95
+ * @param details - детали запроса.
96
+ */
97
+ constructor(message?: string, details?: RequestDetails | null);
98
+ }
99
+ /**
100
+ * Класс описывает ошибку "Not Found".
101
+ */
102
+ export declare class NotFoundError extends ClassifiedError {
103
+ /**
104
+ * Создать экземпляр ошибки.
105
+ *
106
+ * @param message - сообщение об ошибке.
107
+ * @param details - детали запроса.
108
+ */
109
+ constructor(message?: string, details?: RequestDetails | null);
110
+ }
111
+ /**
112
+ * Класс описывает ошибку "Method Not Allowed".
113
+ */
114
+ export declare class MethodNotAllowedError extends ClassifiedError {
115
+ /**
116
+ * Создать экземпляр ошибки.
117
+ *
118
+ * @param message - сообщение об ошибке.
119
+ * @param details - детали запроса.
120
+ */
121
+ constructor(message?: string, details?: RequestDetails | null);
122
+ }
123
+ /**
124
+ * Класс описывает ошибку "Payload Too Large".
125
+ */
126
+ export declare class PayloadTooLargeError extends ClassifiedError {
127
+ /**
128
+ * Создать экземпляр ошибки.
129
+ *
130
+ * @param message - сообщение об ошибке.
131
+ * @param details - детали запроса.
132
+ */
133
+ constructor(message?: string, details?: RequestDetails | null);
134
+ }
135
+ /**
136
+ * Класс описывает ошибку "Unsupported Media Type".
137
+ */
138
+ export declare class UnsupportedMediaTypeError extends ClassifiedError {
139
+ /**
140
+ * Создать экземпляр ошибки.
141
+ *
142
+ * @param message - сообщение об ошибке.
143
+ * @param details - детали запроса.
144
+ */
145
+ constructor(message?: string, details?: RequestDetails | null);
146
+ }
147
+ /**
148
+ * Класс описывает ошибку "Unprocessable Entity".
149
+ */
150
+ export declare class UnprocessableEntityError extends ClassifiedError {
151
+ /**
152
+ * Создать экземпляр ошибки.
153
+ *
154
+ * @param message - сообщение об ошибке.
155
+ * @param details - детали запроса.
156
+ */
157
+ constructor(message?: string, details?: RequestDetails | null);
158
+ }
159
+ /**
160
+ * Класс описывает ошибку "Too Many Requests".
161
+ */
162
+ export declare class TooManyRequestsError extends ClassifiedError {
163
+ /**
164
+ * Создать экземпляр ошибки.
165
+ *
166
+ * @param message - сообщение об ошибке.
167
+ * @param details - детали запроса.
168
+ */
169
+ constructor(message?: string, details?: RequestDetails | null);
170
+ }
171
+ /**
172
+ * Класс описывает ошибку "Internal Server Error".
173
+ */
174
+ export declare class InternalServerError extends ClassifiedError {
175
+ /**
176
+ * Создать экземпляр ошибки.
177
+ *
178
+ * @param message - сообщение об ошибке.
179
+ * @param details - детали запроса.
180
+ */
181
+ constructor(message?: string, details?: RequestDetails | null);
182
+ }
183
+ /**
184
+ * Класс описывает ошибку "Not Implemented".
185
+ */
186
+ export declare class NotImplementedError extends ClassifiedError {
187
+ /**
188
+ * Создать экземпляр ошибки.
189
+ *
190
+ * @param message - сообщение об ошибке.
191
+ * @param details - детали запроса.
192
+ */
193
+ constructor(message?: string, details?: RequestDetails | null);
194
+ }
195
+ /**
196
+ * Класс описывает ошибку "Bad Gateway".
197
+ */
198
+ export declare class BadGatewayError extends ClassifiedError {
199
+ /**
200
+ * Создать экземпляр ошибки.
201
+ *
202
+ * @param message - сообщение об ошибке.
203
+ * @param details - детали запроса.
204
+ */
205
+ constructor(message?: string, details?: RequestDetails | null);
206
+ }
207
+ /**
208
+ * Класс описывает ошибку "Service Unavailable".
209
+ */
210
+ export declare class ServiceUnavailableError extends ClassifiedError {
211
+ /**
212
+ * Создать экземпляр ошибки.
213
+ *
214
+ * @param message - сообщение об ошибке.
215
+ * @param details - детали запроса.
216
+ */
217
+ constructor(message?: string, details?: RequestDetails | null);
218
+ }
219
+ /**
220
+ * Класс описывает ошибку "Gateway Timeout".
221
+ */
222
+ export declare class GatewayTimeoutError extends ClassifiedError {
223
+ /**
224
+ * Создать экземпляр ошибки.
225
+ *
226
+ * @param message - сообщение об ошибке.
227
+ * @param details - детали запроса.
228
+ */
229
+ constructor(message?: string, details?: RequestDetails | null);
230
+ }
231
+ //# sourceMappingURL=http-client.errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.errors.d.ts","sourceRoot":"","sources":["../src/http-client.errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { History } from 'history';
2
+ import { AccessToken, BasicAuthorization, Body, Config, DeleteOptions, GetOptions, Introspect, Method, Params, PatchOptions, PostOptions, PutOptions, Query, RequestDetails, RequestOptions } from './http-client.types';
3
+ export declare class HttpClient {
4
+ /**
5
+ * Имя куки, используемое для сохранения состояния авторизации
6
+ * Для более подробной информации смотри https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1
7
+ */
8
+ static AUTHORIZATION_STATE_COOKIE_NAME: string;
9
+ /**
10
+ * Имя куки, используемое для сохранения адреса страницы перед авторизацией
11
+ */
12
+ static URL_BEFORE_AUTHORIZATION_COOKIE_NAME: string;
13
+ /**
14
+ * Экземпляр Axios
15
+ */
16
+ private readonly instance;
17
+ /**
18
+ * API для работы с навигацией
19
+ */
20
+ private readonly history;
21
+ /**
22
+ * Конфигурация Http Client
23
+ */
24
+ private readonly config;
25
+ /**
26
+ * Токен доступа, используемый для доступа к защищенным ресурсам
27
+ * Для более подробной информации смотри https://www.rfc-editor.org/rfc/rfc6749.html#section-1.4
28
+ */
29
+ private accessToken;
30
+ /**
31
+ * Токен обновления, используемый для обновления токена доступа.
32
+ * Для более подробной информации смотри https://www.rfc-editor.org/rfc/rfc6749.html#section-1.5
33
+ */
34
+ private refreshToken;
35
+ /**
36
+ * Происходит ли сейчас обновление токенов
37
+ */
38
+ private isRefreshing;
39
+ /**
40
+ * Проверить наличие авторизации
41
+ *
42
+ * @param details - детали запроса к защищенным ресурсам
43
+ */
44
+ private checkAuthorization;
45
+ /**
46
+ * Обновить токен доступа
47
+ * Для более подробной информации смотри:
48
+ * https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.3
49
+ * https://www.rfc-editor.org/rfc/rfc6749.html#section-6
50
+ *
51
+ * @param query - параметры запроса, участвующие в обновлении
52
+ */
53
+ private updateToken;
54
+ /**
55
+ * Обновить токен доступа с помощью кода авторизации
56
+ * Для более подробной информации смотри: https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.3
57
+ *
58
+ * @param authorizationCode - код авторизации, полученный от сервера авторизации
59
+ */
60
+ updateTokenByAuthorizationCode: (authorizationCode: string) => Promise<void>;
61
+ /**
62
+ * Обновить токен доступа с помощью токена обновления
63
+ * Для более подробной информации смотри: https://www.rfc-editor.org/rfc/rfc6749.html#section-6
64
+ *
65
+ * @param details - детали запроса к защищенным ресурсам
66
+ */
67
+ updateTokenByRefreshToken: (details: RequestDetails | null) => Promise<void>;
68
+ /**
69
+ * Создать экземпляр класса
70
+ *
71
+ * @param history - API для работы с навигацией
72
+ * @param config - конфигурация Http Client
73
+ */
74
+ constructor(history: History, config: Config);
75
+ /**
76
+ * Выполнить запрос
77
+ *
78
+ * @param url - адрес запроса
79
+ * @param method - метод запроса
80
+ * @param options - конфигурация запроса
81
+ */
82
+ request: <M extends Method, R extends unknown, P extends Params, Q extends Query, B extends Body>(url: string, method: M, options: RequestOptions<M, R, P, Q, B>) => Promise<R>;
83
+ /**
84
+ * Выполнить GET запрос
85
+ *
86
+ * @param url - адрес запроса
87
+ * @param options - конфигурация GET запроса
88
+ */
89
+ get: <R extends unknown, P extends Params, Q extends Query>(url: string, options: GetOptions<R, P, Q>) => Promise<R>;
90
+ /**
91
+ * Выполнить POST запрос
92
+ *
93
+ * @param url - адрес запроса
94
+ * @param options - конфигурация POST запроса
95
+ */
96
+ post: <R extends unknown, P extends Params, Q extends Query, B extends Body>(url: string, options: PostOptions<R, P, Q, B>) => Promise<R>;
97
+ /**
98
+ * Выполнить PUT запрос
99
+ *
100
+ * @param url - адрес запроса
101
+ * @param options - конфигурация PUT запроса
102
+ */
103
+ put: <R extends unknown, P extends Params, Q extends Query, B extends Body>(url: string, options: PutOptions<R, P, Q, B>) => Promise<R>;
104
+ /**
105
+ * Выполнить PATCH запрос
106
+ *
107
+ * @param url - адрес запроса
108
+ * @param options - конфигурация PATCH запроса
109
+ */
110
+ patch: <R extends unknown, P extends Params, Q extends Query, B extends Body>(url: string, options: PatchOptions<R, P, Q, B>) => Promise<R>;
111
+ /**
112
+ * Выполнить DELETE запрос
113
+ *
114
+ * @param url - адрес запроса
115
+ * @param options - конфигурация DELETE запроса
116
+ */
117
+ delete: <R extends unknown, P extends Params, Q extends Query, B extends Body>(url: string, options: DeleteOptions<R, P, Q, B>) => Promise<R>;
118
+ /**
119
+ * Выполнить первый шаг авторизации клиента (базовая авторизация)
120
+ * Для более подробной информации смотри https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1
121
+ */
122
+ login: () => Promise<void>;
123
+ /**
124
+ * Выполнить второй шаг авторизации клиента (получить access token и refresh token)
125
+ * Для более подробной информации смотри https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.3
126
+ *
127
+ * @param authorization - данные о базовой авторизации клиента.
128
+ */
129
+ authorize: <I extends Introspect>(authorization: BasicAuthorization) => Promise<I>;
130
+ /**
131
+ * Закончить сеанс
132
+ */
133
+ logout: () => Promise<void>;
134
+ /**
135
+ * Получить токен доступа
136
+ */
137
+ getAccessToken: () => Promise<AccessToken>;
138
+ /**
139
+ * Установить токен доступа вручную
140
+ *
141
+ * @param accessToken - токен доступа
142
+ */
143
+ setAccessToken: (accessToken: string) => void;
144
+ }
145
+ //# sourceMappingURL=http-client.main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.main.d.ts","sourceRoot":"","sources":["../src/http-client.main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAWlC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,UAAU,EACV,KAAK,EAEL,cAAc,EACd,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAsB7B,qBAAa,UAAU;IACrB;;;OAGG;IACH,OAAc,+BAA+B,SAA8B;IAE3E;;OAEG;IACH,OAAc,oCAAoC,SAAmC;IAErF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAqB;IAExC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAsB;IAE1C;;OAEG;IACH,OAAO,CAAC,YAAY,CAAU;IAE9B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAwBxB;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,CA8BjB;IAEF;;;;;OAKG;IACI,8BAA8B,sBAA6B,MAAM,KAAG,QAAQ,IAAI,CAAC,CAMtF;IAEF;;;;;OAKG;IACI,yBAAyB,YAAmB,cAAc,GAAG,IAAI,KAAG,QAAQ,IAAI,CAAC,CAUtF;IAEF;;;;;OAKG;gBACgB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAUnD;;;;;;OAMG;IACI,OAAO,gGAA8H,MAAM,mEAmFhJ;IAEF;;;;;OAKG;IACI,GAAG,8DAA8E,MAAM,8CAE5F;IAEF;;;;;OAKG;IACI,IAAI,8EAA8F,MAAM,kDAE7G;IAEF;;;;;OAKG;IACI,GAAG,8EAA8F,MAAM,iDAE5G;IAEF;;;;;OAKG;IACI,KAAK,8EAA8F,MAAM,mDAE9G;IAEF;;;;;OAKG;IACI,MAAM,8EAA8F,MAAM,oDAE/G;IAEF;;;OAGG;IACI,KAAK,QAAa,QAAQ,IAAI,CAAC,CAiBpC;IAEF;;;;;OAKG;IACI,SAAS,wCAA+C,kBAAkB,gBA0B/E;IAEF;;OAEG;IACI,MAAM,QAAa,QAAQ,IAAI,CAAC,CAWrC;IAEF;;OAEG;IACI,cAAc,QAAa,QAAQ,WAAW,CAAC,CAOpD;IAEF;;;;OAIG;IACI,cAAc,gBAAiB,MAAM,KAAG,IAAI,CAEjD;CACH"}
@@ -0,0 +1,89 @@
1
+ import { CookieAttributes } from 'js-cookie';
2
+ export declare type AccessToken = string;
3
+ export declare type RefreshToken = string;
4
+ export declare enum Method {
5
+ GET = "GET",
6
+ POST = "POST",
7
+ PUT = "PUT",
8
+ PATCH = "PATCH",
9
+ DELETE = "DELETE"
10
+ }
11
+ export declare type Headers = Record<string, string | number | boolean>;
12
+ export declare type Params = Record<string, string | number>;
13
+ export declare type Query = Record<string, string> | URLSearchParams | string;
14
+ export declare type Body = Record<string, unknown> | FormData;
15
+ export declare type Result = unknown;
16
+ export declare type RequestDetails = {
17
+ readonly url: string;
18
+ readonly method: Method;
19
+ readonly params: Params;
20
+ readonly query: Query;
21
+ readonly body: Body;
22
+ readonly withCredentials?: boolean;
23
+ readonly withAuthorization: boolean;
24
+ };
25
+ export declare type Response = {
26
+ readonly result: any;
27
+ readonly status: number;
28
+ readonly message?: string;
29
+ readonly details: RequestDetails;
30
+ };
31
+ export declare type CommonRequestOptions<R extends Result> = {
32
+ readonly headers?: Headers;
33
+ readonly withAuthorization: boolean;
34
+ readonly withCredentials?: boolean;
35
+ readonly responseMiddleware?: (response: Response) => Promise<R> | R;
36
+ readonly errorMiddleware?: (error: unknown) => Promise<never> | never;
37
+ };
38
+ export declare type RequestOptions<M extends Method, R extends Result, P extends Params | never, Q extends Query | never, B extends Body | never> = M extends Method.GET ? [P] extends [never] ? [Q] extends [never] ? CommonRequestOptions<R> : CommonRequestOptions<R> & {
39
+ readonly query: Q;
40
+ } : [Q] extends [never] ? CommonRequestOptions<R> & {
41
+ readonly params: P;
42
+ } : CommonRequestOptions<R> & {
43
+ readonly query: Q;
44
+ readonly params: P;
45
+ } : [P] extends [never] ? [Q] extends [never] ? [B] extends [never] ? CommonRequestOptions<R> : CommonRequestOptions<R> & {
46
+ readonly body: B;
47
+ } : [B] extends [never] ? CommonRequestOptions<R> & {
48
+ readonly query: Q;
49
+ } : CommonRequestOptions<R> & {
50
+ readonly query: Q;
51
+ readonly body: B;
52
+ } : [Q] extends [never] ? [B] extends [never] ? CommonRequestOptions<R> & {
53
+ readonly params: P;
54
+ } : CommonRequestOptions<R> & {
55
+ readonly params: P;
56
+ readonly body: B;
57
+ } : [B] extends [never] ? CommonRequestOptions<R> & {
58
+ readonly params: P;
59
+ readonly query: Q;
60
+ } : CommonRequestOptions<R> & {
61
+ readonly params: P;
62
+ readonly query: Q;
63
+ readonly body: B;
64
+ };
65
+ export declare type GetOptions<R extends Result, P extends Params | never, Q extends Query | never> = Omit<RequestOptions<Method.GET, R, P, Q, never>, 'method'>;
66
+ export declare type PostOptions<R extends Result, P extends Params | never, Q extends Query | never, B extends Body> = Omit<RequestOptions<Method.POST, R, P, Q, B>, 'method'>;
67
+ export declare type PutOptions<R extends Result, P extends Params | never, Q extends Query | never, B extends Body> = Omit<RequestOptions<Method.PUT, R, P, Q, B>, 'method'>;
68
+ export declare type PatchOptions<R extends Result, P extends Params | never, Q extends Query | never, B extends Body> = Omit<RequestOptions<Method.PATCH, R, P, Q, B>, 'method'>;
69
+ export declare type DeleteOptions<R extends Result, P extends Params | never, Q extends Query | never, B extends Body> = Omit<RequestOptions<Method.DELETE, R, P, Q, B>, 'method'>;
70
+ export declare type Config = {
71
+ readonly urls: {
72
+ readonly authorize: string;
73
+ readonly token: string;
74
+ readonly logout: string;
75
+ };
76
+ readonly clientId: string;
77
+ readonly scope: string;
78
+ readonly cookie: Omit<CookieAttributes, 'domain'> & {
79
+ readonly domain: string;
80
+ };
81
+ readonly basicResponseMiddleware: <R extends Result>(response: Response) => Promise<R> | R;
82
+ readonly basicErrorMiddleware: (error: unknown) => Promise<never> | never;
83
+ };
84
+ export declare type BasicAuthorization = {
85
+ readonly state: string;
86
+ readonly code: string;
87
+ };
88
+ export declare type Introspect = Record<string, unknown>;
89
+ //# sourceMappingURL=http-client.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.types.d.ts","sourceRoot":"","sources":["../src/http-client.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Response, Result } from './http-client.types';
2
+ /**
3
+ * Проверить, выполнился ли запрос успешно.
4
+ *
5
+ * @param response - ответ от сервера.
6
+ */
7
+ export declare function checkIsResponseSuccess(response: Response): boolean;
8
+ /**
9
+ * Обработчик ответа от сервера по умолчанию.
10
+ *
11
+ * @param response - ответ от сервера.
12
+ */
13
+ export declare function defaultResponseMiddleware<R extends Result>(response: Response): R;
14
+ /**
15
+ * Обработчик ошибки по умолчанию.
16
+ *
17
+ * @param error - ошибка.
18
+ */
19
+ export declare function defaultErrorMiddleware(error: unknown): never;
20
+ //# sourceMappingURL=http-client.utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.utilities.d.ts","sourceRoot":"","sources":["../src/http-client.utilities.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,QAAQ,EACR,MAAM,EACP,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAsCjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAE5D"}
@@ -2,3 +2,4 @@ export * from './http-client.errors';
2
2
  export * from './http-client.main';
3
3
  export * from './http-client.types';
4
4
  export * from './http-client.utilities';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}